Emmanouil Papadeas
e60ec8528b
Fix issue with the export dialog closing when the path dialog closes and native file dialogs are enabled
2024-05-07 01:27:51 +03:00
Emmanouil Papadeas
7b7da476b6
Various small translation-related fixes
2024-05-07 01:09:26 +03:00
Emmanouil Papadeas
cabe6234b1
Set the menu's MarginContainer horizontal grow direction to right
2024-05-07 00:41:51 +03:00
Emmanouil Papadeas
002d5cae86
Add a "New Tag" option in the frame menu to easily create new tags
2024-05-06 20:50:12 +03:00
Emmanouil Papadeas
c6e9b1621d
Implement the ability to edit a tag by clicking on it from the timeline
...
Editing tags now is faster! Just click on it from the timeline to bring out the edit dialog.
2024-05-06 20:29:37 +03:00
Emmanouil Papadeas
02f85ade06
Make TagOptions its own scene
2024-05-06 20:13:09 +03:00
Emmanouil Papadeas
d8704fdf5d
Change tag color, text and size in AnimationTagUI.gd
2024-05-06 16:30:10 +03:00
Emmanouil Papadeas
8414f3deaf
Fix integer camera zoom going smaller than 100%
2024-05-05 18:14:17 +03:00
Emmanouil Papadeas
645e09701e
Add snap step to the zoom and rotation canvas sliders
2024-05-05 18:13:50 +03:00
Emmanouil Papadeas
d734ae24a5
Allow negative values in shading as requested in #1015
2024-05-04 15:08:21 +03:00
Emmanouil Papadeas
b1857fea7c
Update names of donors, contributors & translators
2024-05-01 15:52:02 +03:00
Emmanouil Papadeas
aa47a47b3c
Make patterns not be copied on the main directory - Fixes #1010
2024-05-01 03:04:02 +03:00
Ivan Kruger
8e9ba696f1
Make default palettes available for clean installs on MacOS ( #1008 )
...
* resolved issue where pixelorama_data folder is to registered on MacOS builds
* Reverted changes to workflows and added Mac Resource directory to search path for palettes
* format Global.gd with gdtoolkit
2024-04-30 14:21:19 +03:00
Emmanouil Papadeas
489344866b
Hide some preferences in non-desktop versions
...
Properties such as FFMPEG, native file dialog & single window don't make sense to exist in Web & potentially mobile platforms.
2024-04-30 01:57:20 +03:00
OverloadedOrama
05d08c661f
Enable aspect ratio in scale image dialog by default
2024-04-25 19:44:11 +03:00
Emmanouil Papadeas
324fdc9fc8
Hide Split Layers checkbox on the Export dialog when the Spritesheet tab is selected
...
Spritesheet exporting does not currently support layer splitting
2024-04-22 17:15:25 +03:00
Emmanouil Papadeas
074fed10bf
[skip ci] Fix typos and replace tabs with a single space in store_info.md
2024-04-21 15:04:37 +03:00
Emmanouil Papadeas
1d89064efb
[skip ci] Fix wrong tag in store_info.md
2024-04-20 20:02:21 +03:00
Emmanouil Papadeas
b3ef4f1ff3
Add OpenDyslexicFont to the Extensions explorer
2024-04-20 19:57:15 +03:00
Emmanouil Papadeas
d75c2be6c5
[skip ci] Update store_info.md
2024-04-19 21:06:16 +03:00
Emmanouil Papadeas
d0c58e249a
Add LospecPaletteImporter extension in store_info.md
2024-04-19 21:00:58 +03:00
Emmanouil Papadeas
85d73bdb5d
Allow extensions to create new palettes
2024-04-19 18:50:27 +03:00
Emmanouil Papadeas
9fa9c01a93
Fix extensions not being listed in the Preferences
2024-04-19 16:08:13 +03:00
Emmanouil Papadeas
6c002756c7
Move all selected layers with drag & drop
...
Similar to 7507206726
but for layers. Layer swapping (with control) only works when one layer is selected. The move up/down buttons in the timeline only work with one layer as of this commit.
2024-04-15 02:10:52 +03:00
Emmanouil Papadeas
4ddcf37d0b
Fix crash when dropping frames to re-arrange them
...
Also don't allow dropping on a selected frame
2024-04-14 16:03:22 +03:00
Emmanouil Papadeas
0d375631b8
Better static typing in the timeline related methods in Project
2024-04-14 00:57:53 +03:00
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
9184b25c01
Fix Lasso Vector2 appending to array of type Vector2i error
2024-04-13 15:39:42 +03:00
Emmanouil Papadeas
1e83173697
Fix regression where interecting selections was not working
2024-04-13 15:34:36 +03:00
Emmanouil Papadeas
79b18fc242
Fix brushes being able to get drawn outside of the selection, if the selection is outside the canvas
2024-04-13 14:31:48 +03:00
Emmanouil Papadeas
edf7b1f5e5
Set the selection texture's filter to nearest in shaders
2024-04-12 01:26:46 +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
97a1de6db2
Fix bug where images with width or height 1 are unable to be exported/affected by image effects
...
For some reason, ShaderImageEffect does not like images with width/height of 1.
2024-04-10 02:15:11 +03:00
Emmanouil Papadeas
018f95158e
If there's already a 3D object with the same name in the 3DShapeEdit selected object OptionButton, add a number next to it
2024-04-10 02:09:18 +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
971fb67db1
When running in headless mode, don't set a custom cursor and don't save window data on exit
2024-04-05 20:36:03 +03:00
Emmanouil Papadeas
1062f88e4c
Automatically load an image as a new project, when there is only one empty project
...
This is also useful for the CLI
2024-04-05 20:16:54 +03:00
Emmanouil Papadeas
0ac7789bf9
Store image data in undo/redo of the move tool, reverts 4f5f37a522
...
This fixes an issue where, if the user moves pixels outside the canvas and then undos, those cut pixels will not be restored.
2024-04-05 18:02:46 +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
bc4b4dff0f
Fix CLI exporting even though an unknown option has been provided
...
Allowing exporting even if an unknown option has been provided could lead to unexpected results
2024-04-04 00:27:20 +03:00
Variable
04caa5f7f5
Experimental refactor of the CLI ( #1006 )
...
* experimental refactor
* some fixes, some improvements
* some formatting and add check for invalid argument
* formatting
* added similarity option
* linting
2024-04-04 00:22:05 +03:00
Emmanouil Papadeas
1c8d81d1b7
[CLI] Make arguments case sensitive, add support for OS.get_cmdline_user_args()
, add short form flags as alternatives for the long form arguments
2024-04-03 16:25:34 +03:00
Emmanouil Papadeas
af01234470
Implement a basic CLI
...
Supports exporting images & spritesheets with frame, direction, scale and output file name specification. Also added some informative arguments that simply print out some data.
2024-04-02 00:36:33 +03:00
Emmanouil Papadeas
183bee6a0f
Load preferences from the config file before waiting for process_frame
2024-04-02 00:02:20 +03:00
Emmanouil Papadeas
53e4ebc668
Fix spritesheet exporting from bug introduced in 6fa4a27589
2024-04-01 23:50:50 +03:00
Emmanouil Papadeas
ea8748ca55
Use a dictionary in Export to group FileFormat enums and their respective file extensions and descriptions
2024-04-01 23:16:12 +03:00
Emmanouil Papadeas
473dabf004
Replace "{name}" with the project name when exporting
2024-04-01 21:45:39 +03:00
Emmanouil Papadeas
bf14ac1565
Add an ExportFrames enum in Export to make code clearer
2024-04-01 21:45:11 +03:00
Emmanouil Papadeas
1d262c62f7
Don't include the ".pxo" extension in the project's name, when opening or saving
2024-04-01 20:11:27 +03:00
Emmanouil Papadeas
6fa4a27589
Directly export the final blended images from the pxo, if they exist
...
This only happens when the pxo file contains the final blended images (happens when "include blended" is enabled when saving), project has been saved, it hasn't been changed and "Visible layers" is selected.
2024-04-01 19:39:10 +03:00
Emmanouil Papadeas
77bea9a6e3
Re-add old layer blending logic from 0.x, if running on headless mode
...
Only meant to prevent crashes when trying to export from headless mode. This blending logic does not support blend modes, clipping masks, and layer effects.
2024-04-01 17:31:10 +03:00
Emmanouil Papadeas
1cb4d22233
Fix the same frames being exported multiple times when "Selected frames" is selected, and multiple cels of the same frames are currently selected on the timeline - Fixes #1001
2024-03-31 00:55:55 +02:00
Emmanouil Papadeas
11a1428eef
Add an Apply button to the font size slider in the Preferences, fix display scale not being applied on startup
2024-03-30 01:25:01 +02:00
Emmanouil Papadeas
963819a71a
Fix color picker selecting fully transparent pixels that are not black
2024-03-26 02:11:21 +02: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
11fb2c2b65
Move language handling code in Global, remove HandleLanguages.gd
...
This makes it possible to handle language without having the preferences dialog be in the middle.
2024-03-24 01:41:19 +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
54142eb048
Add serialize()
to AnimationTag
2024-03-23 02:17:55 +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
42bce917dc
Never change window title and save path when loading a backup
2024-03-22 15:54:00 +02:00
Emmanouil Papadeas
2c985027b9
Fix backup dialog not appearing
2024-03-22 15:30:28 +02:00
Emmanouil Papadeas
6e0d4eb660
Fix Project.export_directory_path
being set incorrectly in open_pxo_file()
2024-03-22 15:30:00 +02:00
Emmanouil Papadeas
4d077594ad
Remove old Ubuntu Touch code, as it's no longer supported
2024-03-22 15:14:58 +02:00
Emmanouil Papadeas
ad85c8dd3e
Minor open/save dialog path related code cleaning
2024-03-22 15:12:27 +02:00
Emmanouil Papadeas
60af6b27e3
Remove duplicate code in Main's load_last_project()
2024-03-22 14:44:11 +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
fd4c7078b2
Lazy load create & edit palette dialogs
2024-03-21 17:29:00 +02:00
Emmanouil Papadeas
07fa1266d3
Remove three calls to Global.preferences_dialog
2024-03-21 03:00:21 +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
3fb2877b73
Fix pattern sampler2D in shaders not repeating
...
When using the Bucket tool to fill with pattern in "Similar colors" and "Whole selection" modes, the pattern was not being repeated.
2024-03-10 14:59:55 +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
Emmanouil Papadeas
c225553042
Fix linked cels not working when importing a pxo file
...
Godot 4 has changed how ImageTexture works, as now it doesn't work when the Image is empty. Thus, we need to add Images to PixelCels right when they are created, before the linked cel logic is being handled.
2024-03-08 02:15:58 +02:00
Emmanouil Papadeas
90f7df0f5d
Exporting each layer as a different file is now possible
2024-03-07 16:08:20 +02:00
Emmanouil Papadeas
cb58cf7163
Minor refactor of Export & ExportDialog to combine processed_images and durations into a single ProcessedImage class
2024-03-07 02:10:21 +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
Emmanouil Papadeas
20fecc5a7a
Export spritesheets based on animation tags
2024-03-06 19:49:05 +02:00
Emmanouil Papadeas
55df23e400
Fix exporting not including the last frame of a tag and "Selected layers" not including the non-selected frames
2024-03-06 01:47:00 +02:00
Emmanouil Papadeas
36d4b0fa18
Fix crash when importing a corrupt pxo
2024-03-05 16:05:13 +02:00
Emmanouil Papadeas
e726dcfc09
Fix static typing
2024-03-04 18:27:58 +02:00
Emmanouil Papadeas
2e9c4eb1b9
Add a timeline_updated()
signal in Project
...
Used by https://github.com/Orama-Interactive/TeledrawingPixelorama extension
2024-03-04 18:25:03 +02:00
Emmanouil Papadeas
b0a8ad17d4
Revert using Image.rotate_90() from the previous commit
...
Image.rotate_90() is also changing the size of the image, which we don't want to, at least not yet
2024-03-02 18:03:06 +02:00
Emmanouil Papadeas
4a404b2883
Use Image.rotate_90() and Image.rotate_180() on CPU rotation algorithms when the angle is 90, 180 or 270 degrees
2024-03-01 20:25:37 +02:00
Emmanouil Papadeas
57856ed327
Update ExtensionsApi.gd
2024-02-29 23:54:19 +02:00
Emmanouil Papadeas
9b439327b8
Fix ExtensionsAPI's new_project()
not working, and add a new new_empty_project()
method
2024-02-24 15:25:54 +02:00
Emmanouil Papadeas
03ce5d40a2
Set the window's minimum size only once in Main.gd
2024-02-23 20:24:37 +02:00
Emmanouil Papadeas
d3db8f5be7
Rename project_changed
to project_data_changed
signal, add a new method for this signal in ExtensionsAPI
2024-02-22 17:43:47 +02:00
Emmanouil Papadeas
a06d6a2909
Improve static typing in the ExtensionsAPI
2024-02-22 00:46:28 +02:00
Emmanouil Papadeas
22ddc96962
Use getters to lazy-load cleanEdge and OmniScale shaders
2024-02-19 02:09:35 +02:00
Emmanouil Papadeas
66ea1fcfe9
Update the DockableContainer plugin
2024-02-18 19:47:21 +02:00
Variable
81dbc0177d
Moved live preview code to ImageEffect Dialog ( #978 )
...
* live fixes
* added accidentally disconected signals
* Update RotateImage.tscn
* improved code
* Formatting
2024-02-17 00:23:31 +02:00
Emmanouil Papadeas
9a313821dc
When exporting, Pixelorama now remembers the last exported path
2024-02-15 18:41:24 +02:00
Emmanouil Papadeas
b3fa8870f8
Fix null instance error causing a crash on startup, originating from #974
2024-02-14 20:58:21 +02:00
Variable
909f38bd0c
Further Reference UI Improvements ( #974 )
...
* references UI refactor
* changed select icon
* fixed a bug
2024-02-14 19:53:35 +02:00
Emmanouil Papadeas
f56d536b36
Create a get_mirrored_positions()
method in Tools
...
Reduces some code replication across tools
2024-02-13 02:31:48 +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
9f82c85b73
Fix issue when uploading a shader on the Web version
2024-02-12 00:29:30 +02:00
Emmanouil Papadeas
0a63664391
Remove some dialog parent nodes
...
Also removes the GIF warning in the ExportDialog, as #697 no longer occurs in 1.0
2024-02-12 00:28:50 +02:00
Emmanouil Papadeas
5c58562d6b
Fix theme color preview spacing in the Preferences
2024-02-11 19:12:09 +02:00
Emmanouil Papadeas
85b255032f
Keep the aspect ratio correctly in the image effect dialog previews
2024-02-11 18:44:22 +02:00
Emmanouil Papadeas
2b4d85ac3e
Fix PointCollapseContainer's TextureRect being rotated incorrectly
2024-02-11 18:21:35 +02:00
Emmanouil Papadeas
0e4c9bad20
Remove CollapsibleContainer.tscn, only keep it as a script/node type
2024-02-11 18:20:46 +02:00
Emmanouil Papadeas
8d8a147142
Lazy load the window opacity dialog
2024-02-11 16:20:04 +02:00
Emmanouil Papadeas
be7427fd9c
Fix memory leak when previewing layouts in the ManageLayouts dialog
2024-02-11 16:02:15 +02:00
Emmanouil Papadeas
c4a4bd4602
Implement lazy loading for some dialogs to make the initial loading of Pixelorama faster
...
Only load dialogs when they are needed and not at the start of the program. Right now only the new image, about, manage layouts and image effects dialogs are being loaded on demand, but more dialogs can be handled this way in future commits.
2024-02-11 16:01:59 +02:00
Emmanouil Papadeas
a6060d9ff6
Remove unused variable from ReferencesPanel
2024-02-11 02:20:44 +02:00
Emmanouil Papadeas
8448dbd4ba
Various theme improvements
2024-02-10 15:11:53 +02:00
Emmanouil Papadeas
8b91d95258
Make alpha affect all of the blend modes besides Normal and Screen
2024-02-09 20:09:25 +02:00
Emmanouil Papadeas
bec6dfc256
Fix semi-transparent pixels being blended incorrectly in the BlendLayers shader
...
There may still be some semi-transparency issues in blend modes, some extra testing is required
2024-02-09 19:45:26 +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
3935bfd2d3
Control + wheel works on the line tool's thickness now
2024-02-09 14:42:10 +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
d8d05c73de
Add a new Rose theme, made changes to the other themes
...
Made by @Erevoid
2024-02-08 22:30:14 +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
Emmanouil Papadeas
a5a0ac103c
Enable gestures and treat long press as right click for Android
...
Gestures are not yet working very smoothly, but that's something that can be improved after 1.0
2024-02-06 02:50:55 +02:00
Emmanouil Papadeas
c9ddde7194
Use FFMPEG to import videos and gifs
...
Haven't tried large videos, but I imagine Pixelorama would run out of memory quickly. Maybe we should safeguard against that somehow. We also need to get the fps from the imported video and use it in the new project.
2024-02-05 03:32:43 +02:00
Emmanouil Papadeas
85ac0897a9
Remove unused method parameter in Palettes' copy_palette()
2024-02-05 00:17:56 +02:00
Emmanouil Papadeas
fb948c33b4
Add a "Create a new palette" option on the sort palette button
...
Enabled by default, every time you sort a palette it creates a copy of the original palette and it sorts that, instead of sorting the original palette directly. This reduces the risk of destructive change, as the palette system does not have undo/redo support. If disabled, sorting affects the original palette directly, without creating a new one.
2024-02-05 00:16:22 +02:00
Emmanouil Papadeas
afaae8ee4b
Simplify guard conditions in Bucket's draw_start()
2024-02-04 14:45:16 +02:00
Emmanouil Papadeas
5dfe1cc271
Set Selection.gd process input false by default, fix cursor still being set to a cross when entering the canvas if it's disabled in the preferences
2024-02-04 00:12:19 +02:00
Emmanouil Papadeas
6a7e060f73
Set the cursor to cross when entering the canvas and to resize when hovering selection gizmos
2024-02-04 00:05:20 +02:00
Emmanouil Papadeas
647ec29ab0
The crop tool can now be applied by pressing enter
2024-02-03 15:16:21 +02:00
Emmanouil Papadeas
978ddf3b45
Fix 3DShapeEdit import object not using native dialog
2024-02-03 13:57:05 +02:00
Emmanouil Papadeas
4c39e29b67
Fix UI not staying dimmed after opening a native file dialog
2024-02-03 13:55:17 +02:00
Emmanouil Papadeas
9a842ad33e
Sort layouts alphabetically when adding a new one so that Pixelorama will remember the correct last used layout when opening again
2024-02-02 03:50:28 +02:00
Emmanouil Papadeas
5824d2a0eb
Choose which layout to copy from when adding a new layout
2024-02-02 02:59:07 +02:00
Emmanouil Papadeas
534a7fd356
Change the selected UI layout every time it changes
...
This way, Pixelorama remembers the changes users make to the UI, without them having to go to Window, Manage Layouts and clicking on Edit, which was an unintuitive and slow way. Needs testing because bugs may linger.
This commit also adds a new `save_on_change` variable and a `save` method on layout.gd of the dockable_container plugin. Perhaps I should also add this upstream as well.
I also need to add a way to create new layouts based off the default ones (which are permanently stored within Pixelorama's pck file and cannot be modified), so users will always have the option to resort to the default layouts.
2024-02-02 02:31:29 +02:00
Emmanouil Papadeas
da0066259e
[WIP] Copy default layouts to the layout directory so they can be modified
...
Moved some logic away from TopMenuContainer to Main.gd and the layout array to Global.gd.
2024-02-02 01:42:29 +02:00
Emmanouil Papadeas
ffd729486f
Expose window transparency as an option in the preferences, keep it disabled by default
...
I had to disable it, because for some reason having it be enabled by default does not seem to be working. This may be a good idea anyway, as many people will not need this feature, and having this enabled affects performance.
This commit also allows for changing project setting related options in the preferences to also work when running Pixelorama inside Godot.
2024-02-02 00:19:53 +02:00
Emmanouil Papadeas
ed072de84e
Change the layouts array in TopMenuContainer to only contain DockableLayouts instead of being an array of arrays
2024-02-01 22:10:18 +02:00
Emmanouil Papadeas
606ce965f6
Remove unneeded layout code from TopMenuContainer
2024-02-01 21:41:32 +02:00
Emmanouil Papadeas
276a872f73
Rename "ui" variable to "main_ui" in Main.gd and TopMenuContainer.gd
2024-02-01 20:53:52 +02:00
Emmanouil Papadeas
2e8cf6a30a
Minor code improvements in WindowOpacityDialog.gd
2024-02-01 20:51:26 +02:00
Emmanouil Papadeas
e648d0d612
Some code improvements in DrawingAlgos
...
Should also result in minor optimizations
2024-01-31 02:26:49 +02:00
Emmanouil Papadeas
399fc8dfbd
Make similar_colors() in DrawingAlgos faster
...
We finally found some use for Godot 4's new Vector4, let Godot's built-in functions handle the math, since they run in native C++.
2024-01-31 01:41:58 +02:00
Emmanouil Papadeas
63691cacaf
Load pxo files from the Web version - Fixes #820
2024-01-30 21:17:31 +02:00
Emmanouil Papadeas
1dce3ebe22
Change get_tree().get_root() to get_window() in TransparentChecker.gd
2024-01-29 16:37:56 +02:00
Emmanouil Papadeas
6345c52b5f
Fix override.cfg being created in the wrong location if Pixelorama is launched through a launcher or a shortcut
2024-01-29 16:35:23 +02:00
OverloadedOrama
a7cf93d1e5
Fix not being able to draw when closing the splash screen
...
Regression from b08420d0
2024-01-26 04:05:37 +02:00
Emmanouil Papadeas
508f8f0d15
Minor simplifications of some parts in Selection.gd
2024-01-26 02:31:38 +02:00
Emmanouil Papadeas
b126e95b64
Almost made selection rotation with gizmos functional
...
Not exposed yet
2024-01-25 02:33:41 +02:00
Emmanouil Papadeas
3d04a8d276
Selection rotation with gizmos works on selections without content now
...
Still not ready and thus not exposed
2024-01-25 01:35:42 +02:00
Emmanouil Papadeas
964e9fbd26
Don't set the selection_map of the project to the original_bitmap, if the latter is empty
...
Shouldn't happen, but best to check in case it does. Setting empty data to the selection_map breaks selections.
2024-01-25 01:06:30 +02:00
Emmanouil Papadeas
de5db85345
When resizing a selection with gizmos or from the tool options, only set the original_bitmap when we're not already transforming content
2024-01-25 00:59:53 +02:00
Emmanouil Papadeas
f8b32762a1
Fix canceling selection content resizing breaking the selection
2024-01-25 00:45:49 +02:00
Emmanouil Papadeas
56fe1840e0
Make selections scale properly even if they don't transform any image content
...
Fixes #774 .
2024-01-25 00:40:53 +02:00
Emmanouil Papadeas
3a0977ce21
Some code cleanup in Selection.gd
2024-01-25 00:11:19 +02:00
Emmanouil Papadeas
ce7a5e77ba
Add a single window mode setting in the preferences
...
True by default, when set to false the UI uses multiple windows
2024-01-24 18:31:22 +02:00
Emmanouil Papadeas
f0a5637d8a
Some recorder UI improvements
...
Removed the fps option completely as it doesn't have any effects to exported static images. Should be re-introduced once we add video exporting with ffmpeg though.
2024-01-24 14:41:15 +02:00
Emmanouil Papadeas
5297fe6a80
Forgot to format the previous commit :(
2024-01-24 04:22:45 +02:00
Emmanouil Papadeas
d640b6a979
Add a setting to allow usage of native file dialogs in the preferences
...
Closes #274 and implements #568 , at long last! Some issues remain:
- The native save pxo dialog doesn't have an "Include blended images" option. This will be fixed once https://github.com/godotengine/godot/pull/83480 is merged.
- When a native file dialog closes, the interface still remains dimmed.
- In the export dialog, the "Browse" file dialog will also close the export dialog itself when it closes, when it's native.
2024-01-24 04:20:46 +02:00
Emmanouil Papadeas
4bc0fba941
Add a variable in Global for setting file dialogs as native, and add a "FileDialogs" node group
...
This settings is not exposed in the preferences in this commit
2024-01-24 03:57:40 +02:00
Emmanouil Papadeas
b08420d09d
Don't change the value of can_draw in Global.dialog_open()
...
In Godot 4 dialogs seem to be blocking the input to the rest of the UI, so this may not be needed
2024-01-24 03:19:57 +02:00
Emmanouil Papadeas
4e9b657077
Remove Global.has_focus completely
...
Might be a risky change, but I haven't noticed any bugs so far
2024-01-24 03:14:11 +02:00
Emmanouil Papadeas
42de5ccb29
Remove unneeded has_focus checks
2024-01-24 03:06:09 +02:00
Emmanouil Papadeas
d9c0cd7546
Remove Global.can_draw conditions from TopMenuContainer
...
These were needed with Godot 3 to ensure that you couldn't open any other dialog when a dialog is already open, by using keyboard shortcuts. This no longer seems to be required in Godot 4.
2024-01-24 02:37:28 +02:00
Emmanouil Papadeas
3a852e44ff
Add a popup_error() method in Global
...
Just to reduce code duplication and make error appearing easier
2024-01-24 02:27:57 +02:00
Emmanouil Papadeas
43d241a5c2
Video exporting by calling FFMPEG externally ( #980 )
...
* Basic mp4 exporting, needs ffmpeg
* Add avi, ogv and mkv file exporting
* Add webm exporting
* Set ffmpeg path in the preferences
* Show an error message if the video fails to export
* Make sure to delete the temp files even if video exporting fails
2024-01-24 02:00:17 +02:00
Emmanouil Papadeas
204eff8184
Fix selection being incorrect when the image is being scaled (mostly when being made smaller).
2024-01-23 19:38:21 +02:00