mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-01-31 23:49:47 +00:00
1fa34d7196
* Fixed issues with Shading tool Saturation and Value not always being right in Hue Shading mode * Shading tool hue shifting fixes and tweaks * Bringing over changes from layer groups brach, without any changes to layer blending * Some quick fixes to make it work again * Fixed some of the places where GroupLayers cause errors. Cel Buttons are now hidden when groups are collapsed * Layer drag highlighting (need to actually drop them correctly, also need to do cels) * Added more layer hierarchy related functions, organized the function order in the Layer classes a bit * Switched the layer type changing from string to int * Moved layer type enum to Global * Added get_layer_type_name(), currently used for the default layer name * Renamed the layer get_children/is_a_parent_of functions * changed get_layer_type_name() to get_default_name(number) * New layer drag and dropping behavior * Added read/write_image_data_from/to_pxo functions to Cel classes to handle saving/loading the binary image data for each cel type * Fixed warning * Added a line to child layers wich makes it easier to see where they are in the hierarchy * Fixed debugger warning * Fixed all cel types loading as PixelCels * Fixed spacing issue with cels when collapsing groups * Fixed bug when dropping a child layer to the bottom region of its parent group, where it would end up to far down (maybe disappearing) * updated temporary todo comments * Created a base scene for layer buttons and merged layer button script into one * Prevent the case of parenting to itself in layer drag and drop, fixed static reference to LayerButton still being BaseLayerButton * Use a base scene for CelButtons * First bit of the refactoring work * Several bits of refactoring * Fixed moving cels * Cleaned up Project.move_cel function * Fixed project_layer_removed * Updated change_frame_order on FrameButton. Some (not all) work on getting the layer UI updated when pressing buttons such as collapse/visible/lock * Bug fixes. Updating layer button's buttons * Fixed timeline selection issues when creating a new project. Some code cleanup * tweaks * Removed a bunch of commented out code * Removing more commented out code * Fixed bugs with timeline selectio. Fixed cels being placed in the reverse layer order when adding a frame * Changed add/remove_frame to add/remove_frames (multiple support) * Refactored copy_frames in animation timeline * added copy function to cel classes * added layer copy function * simplifed copy_frames a tiny bit * Updated TODO comments to categorize them and remove any that were already done * Turned Project.add/remove_layer into Project.add/remove_layers (multiple support), not yet tested * Seperated the layer cloning functionality in timeline's add_layer to its own function, since they're only used by one button, renamed to _on_Button_pressed naming scheme, added children support to the delete layer button * some TODOs * Added layer swapping * Added priorities to refactor TODOs * Simplified layer swapping code a little * Fixed performance regression on changing project, updated TODOs * Included _on_MergeDownLayer_pressed in timeline refactor * Cleaned up _on_MergeDownLayer_pressed refactor * If all frames are selected, prevent being able to remove all of them * Fixed cel linking when cloning layers/frames. Moved the copy function from cel classes to layer classes, splitting into copy_cel and copy_all_cels * Combined and rewrote the 2 project _toggle_layer_buttons_.. functions into 1 simpler _toggle_layer_buttons function * Simplified _toggle_layer_buttons some more * Added hierarchy support for move up/down layer buttons * Added toggle_frame_buttons method to project (extracted from _frame_changed). Called from main when setting up startup project. Removed _ from start of _toggle_layer_buttons name * Fixed duplicate_layers parent references being to the original layers * cleaned up project.move_layers method a bit * TODOs * moved the transform_content_confirm calls for the layer buttons in AnimationTimeline (Add/remove/clone) to the project layer modification functions * animation first/last_frame tweaks and un-press play buttons when the first/last_frame are the same in _on_AnimationTimer_timeout in AnimationTimeline * Cleaned up project_changed in ANimationTimeline a bit * Cleaned up project_layer_added in AnimationTimeline * Changed Layer classes get_default_name to set_name_to_default * Cleaned up LayerButton.drop_data slightly * Looked at some of my TODOs * cleaned up copying cels * Fixed CelButton linked_indicator not showing up right away when becoming linked * Cleand up link/unlink cel menu option a little. Fixed situatoin where trying to call button_setup on cel_button that doesn't exist anymore due to undo/redo * Fixed regression with copy_cel (linked) in when cloning a frame * Minor cleanup, more detailed comments, updated TODOs * more improved comments * Made focus_mode on Cel/Layer/FrameButton NONE to fix bug where it looks like one is selected after pressing it and adding a new Layer/Frame (but its just in the focus state, not the pressed state * Made AnimationTimeline.change_layer_order work a little more consistantly with LayerButton.drop_data, and fixed a minor bug in it * Updated comments and TODOs * cleanup * removed some code that should no longer be needed * updated comment * removed Project's frames and layers setters _frames_changed and _layers_changed * Made some 'for x in range(array.size())' just 'for x in array.size()' * updated comments/TODOs * Cel content changes intial * Added 'content' methods to Cel classes * Removed image var from PixelCelButton * Reusing PixelCelButton.gd on GroupCelButton scene * Renamed PixelCelButton.gd to CelButton.gd (as it will be used for all Cel Buttons) and deleted GroupCelButton.gd * Hide the TransparentChecker on GroupCelButton.tscn until a preview texture is added for GroupCels * TODOs, prevent memory leak when closing projects * Link/unlink cel cleanup : * Added _project param to _init methods of Layer classes * Added update_texture method to Cel classes (moving part from the update_texture and update_selected_cels_textures methods from Canvas.gd * Removed a temporary check (which also fixed another bug) * Clone child layers when cloning a layer * Added temp dummy get_image method to GroupCel, and use get_image when copying or picking colors * TODOs * Made open_image_as_spritesheet_layer work after the timeline refactor (still doesn't work with groups yet though). TODO comment updates * Added create_new_cel methods to Layer classes * Updated TODOs and comments * Renamed Layer class's create_empty_cel to new_empty_cel to match Project's new_emtpy_frame * Renamed create_layer/cel_button to instantiate_layer/cel_button * updated TODOs * prioritized TODOs * Fixed some warnings * removed commented out code from previous commit * Fixed export * Made open_image_as_new_frame work after timeline refactor * Fixed open_image_as_new_layer after timeline refactor * Some linked cel fixes * More linked cels fixes * cleanup * Optimized importing spreadsheet as new layer * Fixed Scale Image crash with Groups * Fixed onion skin with groups * Removed blend_mode from BaseLayer for now * Mostly fixed image effects * Fixed resize canvas * Fixed drag and drop not working with Cel Buttons on Group Layers * updated TODOs * Renamed Replace Frame (in open image) to Replace Cel * Continued renaming Replace Frame to Replace Cel * Made open_image_at_cels work after timeline refactor * Added get_layer_path method to BaseLayer * Replaced AtLayerSpinbox with AtLayerOption for Open Image as New Frame or Replace Cel * Updated TODOs * updated TODOs * Comments for cel content methods * fixed right clicking group cel button deselecting the button (even though cel is still selected * frame/layer modification methods comments * Removed unneeded size flags * TODO updates * Removed a loop that would never run from open_image_as_spritesheet_tab * TODO update * Combined BaseLayer.get_children_direct and get_children_recursive into a single get_children method with a bool for recursive. Added a get_child_count method * Removed unneeded frame paramaters from _on_DeleteFrame_pressed and _on_CopyFrame_pressed * TODO Updates * Removed unneeded code from delete_frames * Made delete_frames variable names more consistent with my other changes * Continuation * made variable names in copy_frames more consistent with rest of changes * Update TODOs * Removed TODOs for after this PR (moved to my notes) * Fixed crash when pasting image on Group * Fixed layer .visible check to be is_visible_in_hierarchy() * Removed some drag highlight polish code that didn't work * Removed code from Canvas update_texture and update_selected_cels_textures that was redundant * gdformat * gdformat * gdlint fixes * Fixed Cel button not having its linked indicator show when enabling new cels linked on a layer other than the current layer * Fixed crop image and centralize image * Added '# gdlint: ignore=max-public-methods' to the top of Project' * Fixed dragging cels to layer of different type crash * Formatted CelButton.gd Co-authored-by: MrTriPie <MrTriPie>
273 lines
8 KiB
Plaintext
273 lines
8 KiB
Plaintext
[gd_scene load_steps=2 format=2]
|
||
|
||
[ext_resource path="res://src/UI/Dialogs/PreviewDialog.gd" type="Script" id=1]
|
||
|
||
[node name="PreviewDialog" type="ConfirmationDialog"]
|
||
margin_right = 550.0
|
||
margin_bottom = 410.0
|
||
rect_min_size = Vector2( 550, 70 )
|
||
popup_exclusive = true
|
||
window_title = "Import Options"
|
||
resizable = true
|
||
script = ExtResource( 1 )
|
||
__meta__ = {
|
||
"_edit_use_anchors_": false
|
||
}
|
||
|
||
[node name="VBoxContainer" type="VBoxContainer" parent="."]
|
||
anchor_right = 1.0
|
||
anchor_bottom = 1.0
|
||
margin_left = 8.0
|
||
margin_top = 8.0
|
||
margin_right = -8.0
|
||
margin_bottom = -36.0
|
||
__meta__ = {
|
||
"_edit_use_anchors_": false
|
||
}
|
||
|
||
[node name="CenterContainer" type="CenterContainer" parent="VBoxContainer"]
|
||
margin_right = 534.0
|
||
margin_bottom = 324.0
|
||
size_flags_vertical = 3
|
||
__meta__ = {
|
||
"_edit_use_anchors_": false
|
||
}
|
||
|
||
[node name="TextureRect" type="TextureRect" parent="VBoxContainer/CenterContainer"]
|
||
margin_left = 117.0
|
||
margin_top = 12.0
|
||
margin_right = 417.0
|
||
margin_bottom = 312.0
|
||
rect_min_size = Vector2( 300, 300 )
|
||
expand = true
|
||
stretch_mode = 6
|
||
__meta__ = {
|
||
"_edit_use_anchors_": false
|
||
}
|
||
|
||
[node name="HorizLines" type="Control" parent="VBoxContainer/CenterContainer/TextureRect"]
|
||
__meta__ = {
|
||
"_edit_use_anchors_": false
|
||
}
|
||
|
||
[node name="VerticalLines" type="Control" parent="VBoxContainer/CenterContainer/TextureRect"]
|
||
|
||
[node name="ApplyAll" type="CheckBox" parent="VBoxContainer"]
|
||
visible = false
|
||
margin_top = 304.0
|
||
margin_right = 534.0
|
||
margin_bottom = 324.0
|
||
text = "Apply to all"
|
||
|
||
[node name="SizeContainer" type="HBoxContainer" parent="VBoxContainer"]
|
||
margin_top = 328.0
|
||
margin_right = 534.0
|
||
margin_bottom = 342.0
|
||
custom_constants/separation = 32
|
||
|
||
[node name="ImageSizeLabel" type="Label" parent="VBoxContainer/SizeContainer"]
|
||
margin_right = 118.0
|
||
margin_bottom = 14.0
|
||
text = "Image Size: 64×64"
|
||
|
||
[node name="FrameSizeLabel" type="Label" parent="VBoxContainer/SizeContainer"]
|
||
visible = false
|
||
margin_left = 149.0
|
||
margin_right = 266.0
|
||
margin_bottom = 14.0
|
||
text = "Frame size: 64×64"
|
||
|
||
[node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"]
|
||
margin_top = 346.0
|
||
margin_right = 534.0
|
||
margin_bottom = 366.0
|
||
|
||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer"]
|
||
margin_top = 3.0
|
||
margin_right = 66.0
|
||
margin_bottom = 17.0
|
||
text = "Import as:"
|
||
|
||
[node name="ImportOption" type="OptionButton" parent="VBoxContainer/HBoxContainer"]
|
||
margin_left = 70.0
|
||
margin_right = 151.0
|
||
margin_bottom = 20.0
|
||
mouse_default_cursor_shape = 2
|
||
text = "New tab"
|
||
|
||
[node name="SpritesheetTabOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
|
||
visible = false
|
||
margin_left = 155.0
|
||
margin_right = 533.0
|
||
margin_bottom = 24.0
|
||
|
||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/SpritesheetTabOptions"]
|
||
margin_top = 5.0
|
||
margin_right = 118.0
|
||
margin_bottom = 19.0
|
||
text = "Horizontal frames:"
|
||
|
||
[node name="HorizontalFrames" type="SpinBox" parent="VBoxContainer/HBoxContainer/SpritesheetTabOptions"]
|
||
margin_left = 122.0
|
||
margin_right = 196.0
|
||
margin_bottom = 24.0
|
||
mouse_default_cursor_shape = 2
|
||
min_value = 1.0
|
||
value = 1.0
|
||
|
||
[node name="Label2" type="Label" parent="VBoxContainer/HBoxContainer/SpritesheetTabOptions"]
|
||
margin_left = 200.0
|
||
margin_top = 5.0
|
||
margin_right = 300.0
|
||
margin_bottom = 19.0
|
||
text = "Vertical frames:"
|
||
|
||
[node name="VerticalFrames" type="SpinBox" parent="VBoxContainer/HBoxContainer/SpritesheetTabOptions"]
|
||
margin_left = 304.0
|
||
margin_right = 378.0
|
||
margin_bottom = 24.0
|
||
mouse_default_cursor_shape = 2
|
||
min_value = 1.0
|
||
value = 1.0
|
||
|
||
[node name="SpritesheetLayerOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
|
||
visible = false
|
||
margin_left = 155.0
|
||
margin_right = 307.0
|
||
margin_bottom = 24.0
|
||
|
||
[node name="Label3" type="Label" parent="VBoxContainer/HBoxContainer/SpritesheetLayerOptions"]
|
||
margin_top = 5.0
|
||
margin_right = 74.0
|
||
margin_bottom = 19.0
|
||
text = "Start frame:"
|
||
|
||
[node name="AtFrameSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/SpritesheetLayerOptions"]
|
||
margin_left = 78.0
|
||
margin_right = 152.0
|
||
margin_bottom = 24.0
|
||
min_value = 1.0
|
||
value = 1.0
|
||
|
||
[node name="NewFrameOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
|
||
visible = false
|
||
margin_left = 155.0
|
||
margin_right = 286.0
|
||
margin_bottom = 24.0
|
||
|
||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/NewFrameOptions"]
|
||
margin_top = 5.0
|
||
margin_right = 53.0
|
||
margin_bottom = 19.0
|
||
text = "At layer:"
|
||
|
||
[node name="AtLayerOption" type="OptionButton" parent="VBoxContainer/HBoxContainer/NewFrameOptions"]
|
||
margin_left = 57.0
|
||
margin_right = 86.0
|
||
margin_bottom = 20.0
|
||
mouse_default_cursor_shape = 2
|
||
align = 2
|
||
|
||
[node name="ReplaceCelOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
|
||
visible = false
|
||
margin_left = 155.0
|
||
margin_right = 427.0
|
||
margin_bottom = 24.0
|
||
|
||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/ReplaceCelOptions"]
|
||
margin_top = 5.0
|
||
margin_right = 53.0
|
||
margin_bottom = 19.0
|
||
text = "At layer:"
|
||
|
||
[node name="AtLayerOption" type="OptionButton" parent="VBoxContainer/HBoxContainer/ReplaceCelOptions"]
|
||
margin_left = 57.0
|
||
margin_right = 86.0
|
||
margin_bottom = 20.0
|
||
mouse_default_cursor_shape = 2
|
||
align = 2
|
||
|
||
[node name="Label2" type="Label" parent="VBoxContainer/HBoxContainer/ReplaceCelOptions"]
|
||
margin_left = 135.0
|
||
margin_top = 5.0
|
||
margin_right = 194.0
|
||
margin_bottom = 19.0
|
||
text = "At frame:"
|
||
|
||
[node name="AtFrameSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/ReplaceCelOptions"]
|
||
margin_left = 198.0
|
||
margin_right = 272.0
|
||
margin_bottom = 24.0
|
||
mouse_default_cursor_shape = 2
|
||
min_value = 1.0
|
||
max_value = 0.0
|
||
value = 1.0
|
||
|
||
[node name="NewLayerOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
|
||
visible = false
|
||
margin_left = 155.0
|
||
margin_right = 292.0
|
||
margin_bottom = 24.0
|
||
|
||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/NewLayerOptions"]
|
||
margin_top = 5.0
|
||
margin_right = 59.0
|
||
margin_bottom = 19.0
|
||
text = "At frame:"
|
||
|
||
[node name="AtFrameSpinbox" type="SpinBox" parent="VBoxContainer/HBoxContainer/NewLayerOptions"]
|
||
margin_left = 63.0
|
||
margin_right = 137.0
|
||
margin_bottom = 24.0
|
||
mouse_default_cursor_shape = 2
|
||
min_value = 1.0
|
||
max_value = 1.0
|
||
value = 1.0
|
||
|
||
[node name="NewBrushOptions" type="HBoxContainer" parent="VBoxContainer/HBoxContainer"]
|
||
visible = false
|
||
margin_left = 155.0
|
||
margin_right = 324.0
|
||
margin_bottom = 20.0
|
||
|
||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/NewBrushOptions"]
|
||
margin_top = 3.0
|
||
margin_right = 73.0
|
||
margin_bottom = 17.0
|
||
text = "Brush type:"
|
||
|
||
[node name="BrushTypeOption" type="OptionButton" parent="VBoxContainer/HBoxContainer/NewBrushOptions"]
|
||
margin_left = 77.0
|
||
margin_right = 169.0
|
||
margin_bottom = 20.0
|
||
mouse_default_cursor_shape = 2
|
||
text = "File brush"
|
||
items = [ "File brush", null, false, 0, null, "Project brush", null, false, 1, null, "Random brush", null, false, 2, null ]
|
||
selected = 0
|
||
|
||
[node name="BrushName" type="HBoxContainer" parent="VBoxContainer/HBoxContainer/NewBrushOptions"]
|
||
visible = false
|
||
margin_left = 173.0
|
||
margin_right = 316.0
|
||
margin_bottom = 24.0
|
||
|
||
[node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/NewBrushOptions/BrushName"]
|
||
margin_top = 5.0
|
||
margin_right = 81.0
|
||
margin_bottom = 19.0
|
||
text = "Brush name:"
|
||
|
||
[node name="BrushNameLineEdit" type="LineEdit" parent="VBoxContainer/HBoxContainer/NewBrushOptions/BrushName"]
|
||
margin_left = 85.0
|
||
margin_right = 143.0
|
||
margin_bottom = 24.0
|
||
|
||
[connection signal="about_to_show" from="." to="." method="_on_PreviewDialog_about_to_show"]
|
||
[connection signal="confirmed" from="." to="." method="_on_PreviewDialog_confirmed"]
|
||
[connection signal="popup_hide" from="." to="." method="_on_PreviewDialog_popup_hide"]
|
||
[connection signal="toggled" from="VBoxContainer/ApplyAll" to="." method="_on_ApplyAll_toggled"]
|
||
[connection signal="item_selected" from="VBoxContainer/HBoxContainer/ImportOption" to="." method="_on_ImportOption_item_selected"]
|
||
[connection signal="value_changed" from="VBoxContainer/HBoxContainer/SpritesheetTabOptions/HorizontalFrames" to="." method="_on_HorizontalFrames_value_changed"]
|
||
[connection signal="value_changed" from="VBoxContainer/HBoxContainer/SpritesheetTabOptions/VerticalFrames" to="." method="_on_VerticalFrames_value_changed"]
|
||
[connection signal="item_selected" from="VBoxContainer/HBoxContainer/NewBrushOptions/BrushTypeOption" to="." method="_on_BrushTypeOption_item_selected"]
|