1
0
Fork 0
mirror of https://github.com/Orama-Interactive/Pixelorama.git synced 2025-01-31 15:39:49 +00:00
Commit graph

1005 commits

Author SHA1 Message Date
Emmanouil Papadeas dc6efe02bb Fix issue where shader-based effects were not respecting the selection bounds, when the selection was out of the canvas 2024-04-13 19:51:12 +03:00
Emmanouil Papadeas c3bb85f6c9 Fix dimension label showing fractions in the final image size in the Export dialog 2024-04-13 19:15:37 +03:00
Emmanouil Papadeas 9a1464f73b Move selection offset code inside SelectionMap.is_pixel_selected() 2024-04-13 17:57:51 +03:00
Emmanouil Papadeas 1e83173697 Fix regression where interecting selections was not working 2024-04-13 15:34:36 +03:00
Emmanouil Papadeas 7507206726 Move all selected frames - implements #743
This only works for frames at the moment, not layers and cels. Layers may be harder to support because they also have children. Supports both the "move left/right" options and drag and dropping. Frame swapping (with control) only works when one frame is selected, because I am unsure how they should be handled, especially when the selected frames are not continuous.

Didn't encounter any issues on my testing, but more testing is always welcome.
2024-04-11 18:03:43 +03:00
Emmanouil Papadeas 529962f91f Layer effect UI improvements & implement dragging to re-arrange 2024-04-11 00:31:50 +03:00
Emmanouil Papadeas 92e8666da2 Change layers with Control + Up/Down arrow keys
We already have Control + Left/Right for changing frames, so it makes sense to have Up/Down for layers
2024-04-10 16:58:04 +03:00
Emmanouil Papadeas 4e8a02c1a4 Fix issue with the TopMenuContainer where menu options weren't clickable in some languages 2024-04-10 16:42:23 +03:00
Emmanouil Papadeas 64b2b7b9af Make 3D rotation gizmos lines a bit thinner 2024-04-10 02:24:21 +03:00
Emmanouil Papadeas a4f06d8cbe Fix 3D layer buttons not having the same offset as the other layer type buttons 2024-04-10 01:25:57 +03:00
Emmanouil Papadeas 1c9c8bf4e3 Add Palettize and Pixelize effects
Pixelize makes the image pixelated, and Palettize maps the color of the input to the nearest color in the selected palette. Useful for limiting color in pixel art and for artistic effects.
2024-04-10 01:20:28 +03:00
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 785701b093 Add an option to export a JSON file with the project data
Probably temporary, it might be a good idea to add a third "Data" tab in the export dialog, if we add stuff like exporting to Godot resources, such as AnimatedSprite, AnimationPlayer etc.
2024-04-06 03:30:50 +03:00
Emmanouil Papadeas 8c0a194468 Update camera when the viewport size changes 2024-04-06 00:09:58 +03:00
Emmanouil Papadeas 596c174c92 Add a project properties dialog
Allows users to change project name and add custom user data. I was not sure where to put this, so I put it under the Edit menu. It might be a good idea to add a new "Project" menu in the future, and perhaps Scale Image, Resize Canvas and Crop to Content/Selection could be placed there, as they always affect the entire project.
2024-04-05 02:24:47 +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 d9888036f2 Hide the dynamics popup
Oops
2024-03-25 00:32:00 +02:00
Emmanouil Papadeas 94fdfd8f02 Hide and show dynamics properties when dynamics are enabled 2024-03-24 15:35:40 +02:00
Emmanouil Papadeas b620cf2a9e Lazy load the preferences dialog
Speeds up the initial loading time of Pixelorama. It's now almost as fast as 0.x on my computer (a bit more than 2 seconds). Lazy loading the preferences dialog also drastically reduces memory usage and node count (when preferences have not been opened), from 150MB, 13634 objects and 3680 nodes, to 94MB, 8207 objects and 1823 nodes. This essentially cuts the initial node count to half!
2024-03-24 02:46:57 +02: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 f3ca6d1c33 Separate extension handling code from the Preferences UI
The preferences code only handles the UI related stuff, while HandleExtensions is now solely responsible for extension enabling, loading and uninstalling. This makes it possible to handle extensions without having the preferences dialog be in the middle.
2024-03-24 01:20:51 +02:00
Emmanouil Papadeas ebfc3c04fe Lazy load the frame tag dialog 2024-03-24 00:14:57 +02:00
RorotoSic 8bfd474613
Add flip X and Flip Y, and Rotation (90, 180, 270) buttons to BaseTool (#988)
* Add Flip X, Flip Y, Rotate 90, Rotate 180, Rotate 270

* node placement

* flip_rotate for BrushButton

* flip corrected for BrushButton (x, y was reversed)

* code changed for github static checks

* github static checks

* github static checks 2

* remove " _ " before my variable name

hope this was the problem

* var brush_texture_rotation

* Hide Flip/Rotate buttons where it is unnecessary

* btns flip/rotate  hide when a non-image brush is selected

* rotate ButtonGroup (radio btn)

* expand button for flip/rotate

* radio btn grp 2

* expand button (forgot to add the tscn )

* cursor shape to pointing hand

* tooltip R90 R180 R270

i dont add txt to the Translations.pot bc not sure to understand and dont want to make mistake

* shading.tscn  (nodes placement debreaking)

back as before

* Revert "expand button (forgot to add the tscn )"

This reverts commit 3062afe73f.

* Revert "expand button for flip/rotate"

This reverts commit 51189ac793.

* Collapsible Container

change "expend buton" to the pixelorama custum node "CollapsibleContainer"

* remove thick white outline when CollapseContainer is pressed and focus

* styleboxflat when CollapseContainer is pressed and empty for checkbox

* Revert "styleboxflat when CollapseContainer is pressed and empty for checkbox"

This reverts commit 0af0e1f427.

* StyleboxEmpty for normal /  keep hover unchanged

* Revert "StyleboxEmpty for normal /  keep hover unchanged"

This reverts commit 14b3745053.

* Revert "remove thick white outline when CollapseContainer is pressed and focus"

This reverts commit b80ab1ad5c.

* "flip_rotateD" + "Flat CollapsibleContainer'"

* conflicts Resolved

signal color_changed(color: Color, button: int)

---------

Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2024-03-23 16:39:44 +02:00
Emmanouil Papadeas 6d2d09d222 More static typing improvements 2024-03-23 04:36:26 +02:00
Emmanouil Papadeas 572fabbe66 Remove Global.reference_panel
Slowly trying to remove nodes from Global
2024-03-23 02:52:27 +02:00
Emmanouil Papadeas acce1dda2e Move even more code away from Project.change_project()
Making Pixelorama more modular by relying more on signals
2024-03-23 02:12:28 +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 dd8145d369 Greatly simplify backup code, got rid of OpenSave's current_save_paths and backup_save_paths
The previous backup code was unnecessarily complicated, hard to read/understand and prone to errors. The new system simply stores the save and backup paths in the `Project` class, and stores the backup files inside `user://backups`, instead of having their file paths be in `cache.ini`.
2024-03-22 18:24:41 +02:00
Emmanouil Papadeas 6c8b2ae36b Rename Project.directory_path to Project.export_directory_path 2024-03-22 14:42:47 +02:00
Emmanouil Papadeas 64983b0404 Some static typing improvements 2024-03-22 03:07:21 +02:00
Emmanouil Papadeas 8f8e6b7e32 Lazy load Recorder's FileDialog 2024-03-22 02:49:31 +02:00
Emmanouil Papadeas 491d81f393 Minor config file section key re-organization 2024-03-21 01:51:19 +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 c45ac70d2b Lazy load the splash dialog 2024-03-20 20:20:47 +02:00
Emmanouil Papadeas 722cb1a1e4 Lazy load the layer fx settings dialog 2024-03-20 19:03:46 +02:00
Emmanouil Papadeas 6f3796627f Add a flat property to CollapsibleContainer 2024-03-20 15:49:53 +02:00
Emmanouil Papadeas f1ef01bb87 Replace Camera2D with a custom CanvasCamera to reduce idle GPU usage
Necessary workaround because of https://github.com/godotengine/godot/issues/89514
2024-03-19 15:39:34 +02:00
Emmanouil Papadeas 9fa90ab3b1 Set license text in the About dialog to be uneditable 2024-03-16 22:49:22 +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 3c5c659f01 Disable 3D for the SubViewports
This doesn't affect 3D layers, as they are being rendered on another Viewport
2024-03-12 22:18:15 +02:00
Emmanouil Papadeas 6ea6df0e26 Fix size label not being updated on the Export dialog's spritesheet tab when the direction changes 2024-03-11 19:19:27 +02:00
Emmanouil Papadeas 4614a648d1 Update hint tooltip of the alpha lock button 2024-03-09 02:51:29 +02:00
Emmanouil Papadeas dc9ba6dd9c Implement alpha lock as a global tool option 2024-03-09 02:47:13 +02:00