1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-02-08 11:29:47 +00:00
Commit graph

191 commits

Author SHA1 Message Date
Emmanouil Papadeas dbfd4d8412 When merging layers, automatically make the bottom layer visible
If the bottom layer is invisible, it becomes visible now. Consistent with behavior seen in Krita and Photopea.
2024-04-09 02:30:50 +03:00
Emmanouil Papadeas 8f395b2be7 Create a new Effects menu and move all of the cel-specific effects there, away from the Image menu
Also moves Project properties into Image
2024-04-09 01:52:12 +03:00
Emmanouil Papadeas 25a69a99d6 Fix texture loading in LayerEffectsSettings 2024-04-08 02:43:01 +03:00
Emmanouil Papadeas c5c421bd28 Add layer properties 2024-04-04 03:21:07 +03:00
Emmanouil Papadeas 2cdd426a45 Update Translations and minor UI improvement in cel, frame and tag properties 2024-04-04 02:46:50 +03:00
Emmanouil Papadeas 14a13a2161 Add user data for cels, frames and tags
Projects and layers are next, once I add project and layer setting dialogs respectively.
2024-04-04 01:27:50 +03:00
Emmanouil Papadeas 8c9a01feae Move theme handling code in a new Themes autoload
The preferences code only handles the UI related stuff, while the Themes autoload is now solely responsible for theme adding, removing and changing. This makes it possible to handle themes without having the preferences dialog be in the middle.
2024-03-24 02:08:54 +02:00
Emmanouil Papadeas ebfc3c04fe Lazy load the frame tag dialog 2024-03-24 00:14:57 +02:00
Emmanouil Papadeas 6d2d09d222 More static typing improvements 2024-03-23 04:36:26 +02:00
Emmanouil Papadeas 48145b7f61 Use signals to move some code away from Project.change_project()
WIP, more code can be moved
2024-03-22 21:05:00 +02:00
Emmanouil Papadeas 377c24c981 Make Pixelorama load slightly faster by not calling some setters of Global's variables if the value is the same 2024-03-21 00:02:54 +02:00
Emmanouil Papadeas 722cb1a1e4 Lazy load the layer fx settings dialog 2024-03-20 19:03:46 +02:00
Emmanouil Papadeas 03b173b76e Optimize cel switching by avoiding changing the stylebox of every CelButton 2024-03-15 01:31:12 +02:00
Emmanouil Papadeas d3be746290 Change UI of layer buttons - bring the small buttons out of the main button
This makes the visible/lock/linked/expand buttons more clear that they are indeed buttons. This commit also slightly changes the look of child layers, as they only appear intended and they no longer change color.
2024-03-14 20:13:42 +02:00
Emmanouil Papadeas c1b78e4c01 Implement basic clipping masks
A very simple implementation, not as complex as something like #768 yet, but it can be done in the future.

The main current limitation is that it doesn't work with group layers as of right now.
2024-03-14 01:08:57 +02:00
Emmanouil Papadeas fdc92ccfc3 Fix group layer expand button not working 2024-03-13 01:22:46 +02:00
Emmanouil Papadeas cd2787b373 Set opacity of multiple layers at once 2024-03-07 01:16:43 +02:00
Emmanouil Papadeas d17a151f8d Delete and change properties of multiple cels at once 2024-03-07 01:06:46 +02:00
OverloadedOrama 47fc659170 Add yet another MarginContainer in the timeline
To fix the outline of the first frame (when selected) from being cut off, while also keeping frames & cels glued to the layers
2024-02-12 05:02:07 +02:00
Emmanouil Papadeas a05dbabf98 Slightly increase the layer container minimum size to match the layer buttons 2024-02-09 14:50:18 +02:00
Emmanouil Papadeas b75573d19c Make CelProperties its own scene and put it in Main.tscn instead of having it as a child of each CelButton
This drastically reduces the number of nodes. Before, each cel would have its own property node which, when the project had many cels, drove the node count quite high.
2024-02-09 04:01:01 +02:00
Emmanouil Papadeas 7f1aad280c Fix cel buttons not changing colors when switching themes 2024-02-09 03:33:34 +02:00
OverloadedOrama 12036364b5 Timeline UI improvements, better visual indication of the cels that are selected and the cels that are linked 2024-02-08 20:46:07 +02:00
OverloadedOrama e11ecb2e8d Add get_position() and get_minimum_size() methods to AnimationTag 2024-02-07 03:17:39 +02:00
Variable f43f80cee0
Integrate Extension Explorer (#910)
* Integration of ExtensionExplorer

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
Co-authored-by: Emmanouil Papadeas <manoschool@yahoo.gr>
2024-01-23 03:25:37 +02:00
Emmanouil Papadeas 3dd288f32f Hide PasteTagPopup 2024-01-09 20:47:00 +02:00
TheLsbt f373dae714
Better signal representation (#971)
* Update 3DShapeEdit.tscn

Change the menu button to flat to indicate that it is a button that you can press and not a label

* Changed Signal names to make sense

Note: I did not change functions in the ExtensionsAPI

Changed signals in Global.gd (and everywhere else they are referenced) from *_changed to *_switched

* Bonus Signal

Added a signal in Global.gd that gets emitted just before the project is changed.

Added project_changed to Global.gd which also emits what project was changed by an action (not switched).

* Formatting
2024-01-09 00:22:56 +02:00
Variable 87b5a818bb
Improved the Paste tag system (#946)
* cloned frames only keep original selected cels as selected

* Fixed PasteTagPopup dialog, fixed tag created immediately after starting pixelorama not placed correctly

* formatting

* typo

* Pase tag popup 2.0

* improved code

* formatting

* Update PasteTagPopup.gd

* fixed code messed up while resolving conflict

* group sync achieved

* linting

* quality of life additions

* fixed projects not updating

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2023-12-30 14:53:45 +02:00
Emmanouil Papadeas 1b9e0c1ea0 Hide transparent background in cel buttons if they are empty
Since changing the self_modulate no longer seems to have any effect. Changing the alpha in the shader itself would be a bad idea, since it would require every button background to have its own material, instead of sharing the same one.
2023-12-23 21:57:18 +02:00
Emmanouil Papadeas 65ab504e22 Add a MarginContainer in the onion skinning settings dialog 2023-12-23 13:26:38 +02:00
Variable 8d09713774
ExtensionApi Improvements (#959)
* Improved signal api

* added two more signals

* Improved debug messaging system

* fix typo
2023-12-14 03:44:50 +02:00
Emmanouil Papadeas f801b5bc07 Minor UI improvements
Replaced the "FX" text with a texture in the timeline's FX button, added left and right margins in the DockableContainer
2023-12-06 17:34:03 +02:00
Emmanouil Papadeas 8ca0e12b90 Attempt to fix the "add layer" button not working when pressed 2023-12-06 04:16:53 +02:00
Emmanouil Papadeas 359f509d57 Make the opacity slider affect layer opacity instead of cel opacity
And move cel opacity inside the cel properties.
2023-12-06 03:44:55 +02:00
Emmanouil Papadeas c0a8202145 Add cel properties and z-index to individual cels 2023-12-06 03:22:33 +02:00
Emmanouil Papadeas f893e68d59 Move even more code away from Global and Project to AnimationTimeline
This time related to layer buttons
2023-12-05 02:04:34 +02:00
Emmanouil Papadeas 80e351a2a1 Move some code away from Global and Project to AnimationTimeline 2023-12-05 01:46:42 +02:00
Emmanouil Papadeas f40ef6f329 Some more LayerButton.gd code improvements 2023-12-05 01:11:51 +02:00
Emmanouil Papadeas 5ece616a9a Only use one LayerButton scene instead of using inheritence
And make some code improvements in LayerButton.gd
2023-12-05 01:08:26 +02:00
Emmanouil Papadeas a627cff107 Only have one CelButton scene instead of using inheritance 2023-12-05 00:40:16 +02:00
Emmanouil Papadeas 1b22e75034 Some timeline UI improvements 2023-12-01 21:13:28 +02:00
Emmanouil Papadeas 4b84803456 Loop through frames when clicking on go to previous/next frame buttons on the timeline 2023-11-29 02:47:33 +02:00
Emmanouil Papadeas bc8a9de4db Optimize layer blending modes and make them work on all GPUs (hopefully) - Fixes #938 2023-11-25 00:10:19 +02:00
Emmanouil Papadeas 4024858292 Set the minimum size of the layer buttons container to be the same as the size of the layer options container 2023-11-22 17:44:38 +02:00
Emmanouil Papadeas d5c520643b Fix layer button hierarchy lines being drawn in the wrong position 2023-11-22 17:12:30 +02:00
Emmanouil Papadeas d84c2dd6f3 Fix crash when deleting a layer that is being renamed 2023-11-22 15:18:55 +02:00
Emmanouil Papadeas 74273d5b59 Fix frame duration being set to x1.01 instead of x1.0 by default 2023-11-22 03:59:21 +02:00
Emmanouil Papadeas 08b03ae0e5
Implement layer effects (#940)
* Basic logic for layer effects

* Add an FX button and the ability to add effects, no way to remove or change properties of effects yet

* Basic and ugly UI for adding and removing effects, no property changing yet

* Swap effects

* Fix preload shader paths

* Change parameters for layer effects

* Change gradient parameter in layer effect shaders, and other fixes

* Use CollapsibleContainers for the shader properties

* Set the correct gradient interpolation mode and color space in the UI

* Make effects of group layers apply to children

* Change `apply_fx` to `apply_effects`, formatting, some extra doc comments

* Apply effects to other canvases, when merging layers and when exporting

* Display humanized names of the shader unifrms

* Some UI improvements to the LayerEffectsSettings

* Add an Enabled button in the layer effects window, and change checkboxes to checkbuttons

* Change BaseLayer.apply_effects() to take a cel as a parameter instead

* Make layer effect buttons be affected by the modulate icon color

* Add option in the View menu whether layer effects are displayed in the canvas or not

* Rename `apply_effects()` to `display_effects()`

* Add translation strings

* Add nearest filter to the gradient map

* Don't change Main.tscn

* Fix more translations

* Change the default cursor shape of the generated UI elements of the layer effects

* Add undo/redo and effect application (apply effect destructively)

There are some errors due to the usage of anonymous lambda methods in undo/redo, but it seems to be working well regardless.

* Make layer effect application work on all cels
2023-11-22 01:06:25 +02:00
Variable 60d4b1fd81
Make cloned frames only select a cel if it's coresponding original cel was selected as well (#942)
* cloned frames only keep original selected cels as selected

* Fixed PasteTagPopup dialog, fixed tag created immediately after starting pixelorama not placed correctly

* formatting

* typo
2023-11-21 16:48:48 +02:00
Emmanouil Papadeas 2c5ece53dd [Undo/Redo] Compress images when replacing cels and merging layers 2023-11-14 17:08:09 +02:00