Emmanouil Papadeas
774786ab44
Remove unused variables
2024-07-21 21:17:18 +03:00
Emmanouil Papadeas
b8af094529
Add the 1.0 splash screen artworks
2024-07-21 03:23:25 +03:00
Variable
3df7a67b9b
fix some stuff in extension explorer, and changed (open logs folder) to (open editor data folder) ( #1038 )
2024-07-20 23:09:38 +03:00
Emmanouil Papadeas
6b23c51e12
Fix some typos
2024-07-19 19:41:31 +03:00
Emmanouil Papadeas
64ced35bac
Move the dynamics-related code into a new script
...
This also fixes the dynamics previews not working, as `_input()` is now handled locally in the dynamics popup panel.
2024-07-19 19:39:13 +03:00
Emmanouil Papadeas
506004b2a3
Fix checker background not appearing in the drop shadow dialog
2024-07-19 19:23:46 +03:00
Emmanouil Papadeas
b3133130ad
Include tag name even if we're exporting a single file
2024-07-19 17:24:58 +03:00
Variable
237eeef4d1
show extension info on hover ( #1037 )
...
* show extension info on hover
* formatting
2024-07-19 00:48:23 +03:00
Emmanouil Papadeas
4bc4ed1299
Change the extension repository link
2024-07-16 17:33:31 +03:00
Emmanouil Papadeas
3ea0ef0b5a
Make the size of the text of rulers and guides be affected by the font size
2024-07-15 00:31:52 +03:00
Emmanouil Papadeas
bcbd0ea7da
Fix crash when the theme has no default font, by using Godot's fallback font instead
2024-07-14 16:08:18 +03:00
Emmanouil Papadeas
5d06af39b2
Fix rulers being incorrect at the start
2024-07-14 16:02:16 +03:00
Emmanouil Papadeas
919d0117ca
Update AboutDialog.gd
2024-07-14 01:30:56 +03:00
Emmanouil Papadeas
3358d59f6f
Implement filling while moving the mouse in the bucket tool
...
Probably the last new feature for version 1.0
2024-07-14 00:15:38 +03:00
Emmanouil Papadeas
b4e54afa76
Fix bug where the exported files had the wrong tag name, if "Include frame tags in the file name" is enabled
2024-07-14 00:15:03 +03:00
Variable
e1649a064e
Fixes to perspective editor ( #1034 )
...
* removed some redundant code
(not sure how it got there), made tracker toggle obey the variable
* Changed perspective editor from Control to PanelContainer to avoid some UI issues
2024-07-13 20:52:32 +03:00
Emmanouil Papadeas
b4384f4085
When using the canvas, release focus of other GUI elements of the application
2024-07-13 20:38:29 +03:00
Emmanouil Papadeas
d685177918
Restore diagonal movement of selections with arrow keys
2024-07-13 20:38:04 +03:00
Emmanouil Papadeas
d50ae3b00e
Fix canvas no longer remaining in the drag state even when the mouse is outside of it
2024-07-12 14:49:11 +03:00
Emmanouil Papadeas
f4f0e4047e
Fix gradient map layer effect being purple when it's first created
2024-07-12 14:45:24 +03:00
Emmanouil Papadeas
fae89ed2a1
Increase the slider bounds of the crop tool and the scale slider max value of the 3DShapeEdit tool
2024-07-12 12:53:37 +03:00
Emmanouil Papadeas
547f307b53
Fix crash on Godot 4.3 when the mouse is inside the window when Pixelorama is starting
2024-07-09 15:04:16 +03:00
Emmanouil Papadeas
158e0fa18b
Validate the extension file SHA-256 hash when downloading for security purposes
...
This is just an added step for security. Now, if an extension file gets compromised, Pixelorama can detect the mismatch between the file's SHA256 and the SHA256 from the extension repository, and refuse to install the extension.
For example, someone with malicious intent could gain access in the repository where the extension file is hosted, and replace it with a different file. Before this commit, the malicious file would be downloaded normally, but now, since the file will change, so will its SHA-256 hash, so Pixelorama will be able detect the mismatch and recognize that it is potentially malicious.
2024-07-07 18:29:10 +03:00
Emmanouil Papadeas
b04c502470
Fix bug in import preview dialog of the apply all button being unpressed when the import options change
...
Most likely caused by #957 . The line `setup_smart_slice(false)` was caused the bug, hopefully I'm not breaking anything by removing it.
2024-07-07 16:26:23 +03:00
Emmanouil Papadeas
e0a6727223
If the OS is sandboxed, set Global.use_native_file_dialogs
to true and remove the option entirely from the Preferences
2024-07-03 20:53:01 +03:00
Emmanouil Papadeas
dd6332b75a
[skip ci] Fix Voxelorama link
2024-07-01 18:03:40 +03:00
Emmanouil Papadeas
6601f83332
Rename store_info.md to extension_repository.md, add Voxelorama and remove other store links
...
The reason for removing the other store link is because I am worried that adding more links by default, can make it easier to compromise security. Extensions can be dangerous, and even if one link gets injected by malware, users are in danger, so I think it's better to keep the extensions is one, centralized place. I included all of the extensions listed in Variable's store link in this file.
I also renamed it from store to repository, as I think it's a more fitting name.
2024-07-01 17:49:59 +03:00
Emmanouil Papadeas
0601a4481a
Make Voxelorama work
2024-07-01 17:22:32 +03:00
Emmanouil Papadeas
896d714a9e
Make "similar colors" mode in the Bucket tool change the same color in all selected cels
2024-06-30 13:27:15 +03:00
Emmanouil Papadeas
7a13e4c3eb
Refactor SplashDialog.gd to make a class for the artworks, update the version text in the splash screen
2024-06-29 20:41:56 +03:00
Emmanouil Papadeas
b146c88a5e
Fix shape tools indicator being reset after drawing
2024-06-27 01:25:17 +03:00
Emmanouil Papadeas
d73ab82e04
Remember display layer effects and snap settings between sessions
2024-06-15 15:58:10 +03:00
Emmanouil Papadeas
bc26557219
Remove Renderer from the Preferences
...
Not currently needed, as it's not possible to change between OpenGL and Vulkan drivers. We could implement this is https://github.com/godotengine/godot/issues/80565 is fixed.
2024-06-14 17:00:26 +03:00
Emmanouil Papadeas
fc10d600a5
Remove Crop tool's apply button shortcut
...
The issue is that by default it's mapped to Enter, which is also used to confirm editing of a slider. If we want to keep the shortcut, we need to check if something else does not have focus first.
2024-06-14 16:33:52 +03:00
Emmanouil Papadeas
f3823ef6dd
Replace strings with StringNames in initialize_keychain()
2024-06-11 00:15:36 +03:00
Anaminus
f69e2d06eb
Implement Columns field of imported .gpl palettes. ( #1025 )
...
* Implement Columns field of imported .gpl palettes.
- Fixes Columns field being ignored when imported.
- _fill_imported_palette_with_colors is modified to accept an optional
width parameter, which defaults to Palette.DEFAULT_WIDTH instead of
a hard-coded 8.
- A maximum of width of 16384 is enforced to mitigate maliciously large
values.
* Run gdformat.
* Run gdlint.
* Consume all whitespace between field and value.
2024-06-09 14:19:06 +03:00
Emmanouil Papadeas
8ec5653d67
Make the backup confirmation dialog slightly bigger
2024-06-08 23:29:05 +03:00
Emmanouil Papadeas
f79ae7e333
Fix canvas not updating when switching between projects that have the same size and amount of cels
...
Also fixes issue with tile mode not being updated properly when switching project
2024-06-07 14:49:08 +03:00
Emmanouil Papadeas
1a0f82753e
Actually fix pixel perfect and alpha lock buttons having different shortcuts
2024-06-04 00:41:42 +03:00
Emmanouil Papadeas
556fc4b467
Remove unused "manage_frame_tags" shortcut
2024-06-04 00:41:27 +03:00
Emmanouil Papadeas
aa2a2bdce8
Immediately disable the delete layer button when locking a layer
2024-06-03 20:41:48 +03:00
Emmanouil Papadeas
14e73ae33b
Fix palette swatch white border being shown on non-selected swatches, if the user has scrolled down
2024-06-03 20:36:39 +03:00
Emmanouil Papadeas
8c073dbe63
Fix the palette swatch white border not being shown when selecting a color that exists in the active palette
2024-06-03 19:18:25 +03:00
Emmanouil Papadeas
0b96e3aa6f
Make zoom slider slightly bigger to prevent the percentage from overlapping with the buttons
2024-06-03 19:15:58 +03:00
Emmanouil Papadeas
debbbf34d1
Try to fix Pixelorama's locale not loading when the OS locale is not set to English
2024-06-03 15:23:33 +03:00
Emmanouil Papadeas
1c3780c94c
Change the locale by finding the nearest loaded locale instead of looking for a hard match
...
Should fix issues where the OS was returning, for example, "fr" for the system locale, and it was not mapped to "fr_FR".
2024-06-01 23:21:23 +03:00
Emmanouil Papadeas
fecb9b5803
Fix changing the tablet driver on Windows
...
Plus, it should also no longer require a restart
2024-06-01 23:13:50 +03:00
Emmanouil Papadeas
429d3469fd
Fix issue with layers on the timeline having the wrong size on Greek
2024-06-01 18:29:38 +03:00
Emmanouil Papadeas
26da9070f8
Make the create new image a bit taller
2024-06-01 18:28:16 +03:00
Emmanouil Papadeas
770e04c550
Fix issue where Pixelorama was quitting on save, if the user attempted to save on exit before and cancelled the save file dialog
...
And replace instances of `Global.save_sprites_dialog` with a local `save_sprite_dialog` variable
2024-06-01 17:56:50 +03:00
Emmanouil Papadeas
b7a77a2ceb
Clear polygon select tool when switching projects
2024-06-01 16:03:39 +03:00
Emmanouil Papadeas
006be19464
Switch Square and Circle patterns in the outline effect
...
Not sure how they got out of order in the first place, they were fine in v0.11.4
2024-06-01 13:09:55 +03:00
Emmanouil Papadeas
260c906d92
Update docstring of ExtensionsAPI's add_export_option()
method
2024-06-01 13:01:30 +03:00
Emmanouil Papadeas
2afb087b7a
When switching projects and the curve tool is active, clear it
...
Instead of applying it. This also fixes a crash when the curve tool is active and the current project closes
2024-06-01 12:59:22 +03:00
Emmanouil Papadeas
e1a53ed905
Fix alpha lock having the same shortcut as pixel perfect
2024-06-01 00:49:01 +03:00
Emmanouil Papadeas
d8a17abd1d
Use the default Godot 4 version property in project.godot
...
The custom one we used was because Godot 3 has no version property, but this is no longer the case.
2024-05-31 16:01:36 +03:00
Emmanouil Papadeas
6c8e058164
Fix recorder mode button do the opposite from what it suggests
2024-05-31 14:40:05 +03:00
Emmanouil Papadeas
10d3eac253
Add a confirmation dialog to confirm whether a user wants to enable an extension
...
For security purposes. Extensions can be dangerous, the user must know what they are doing. Better safe than sorry.
2024-05-29 03:27:54 +03:00
Kiisu_Master
2613e02cd2
Fix ruler text not getting clipped ( #1023 )
2024-05-28 00:38:35 +03:00
Emmanouil Papadeas
d070f8c5f5
Put the effects menu shortcuts under an "Effects" group
2024-05-27 15:32:01 +03:00
Emmanouil Papadeas
b9c289e742
[Curve tool] Don't draw a circle when hovering over the first point, if there is only one point in the curve
2024-05-26 14:27:02 +03:00
Emmanouil Papadeas
7b17262c85
Show a confirmation dialog when attempting to drag and drop an image from a browser, for security purposes
2024-05-25 16:16:32 +03:00
Emmanouil Papadeas
8c5aba0083
Implement dragging and dropping images directly from the browser to download them and import them
2024-05-25 15:02:13 +03:00
Emmanouil Papadeas
b25ae8b4cc
Fix curve being immediately applied if the user presses and releases immediately
2024-05-25 00:42:34 +03:00
Emmanouil Papadeas
72a2c59986
Fix codespell errors
2024-05-25 00:41:57 +03:00
Emmanouil Papadeas
dc94f76d6a
Update the ratio of the AspectRatioContainer in the Import Preview dialog, plus some code cleaning
2024-05-23 01:29:16 +03:00
Emmanouil Papadeas
0a38345376
[Curve tool] Only control the out control point when holding Shift
...
Needed to make curves with sharp edges. Inspired by Krita's Bezier curve tool
2024-05-21 19:37:47 +03:00
Emmanouil Papadeas
e5d0a661f7
Properly fix polygon select tool circle radius not scaling properly with zoom
...
For real this time
2024-05-21 03:01:23 +03:00
Emmanouil Papadeas
3f8799f25a
When hovering above the first position when using the curve tool, apply the curve shape
2024-05-21 02:59:37 +03:00
Emmanouil Papadeas
318b381938
Add a fill shape checkbox in the curve tool options
...
Now the curve tool can also be used as a polygon tool
2024-05-21 02:28:40 +03:00
Variable
601c25f2dd
Curve tool implementation ( #1019 )
...
* curve tool
* formatting
* formatting
* saving my progress
* update to kirita mode
* Formatting
* fixes for mirror mode
* added way to remove point, added tool shortcut
* Add translation strings
* Use Curve2D instead of a control_points array
---------
Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
2024-05-20 03:46:40 +03:00
Emmanouil Papadeas
fe4fc8b0a2
[skip ci] Set a default name for the CollapsibleContainers, if they have none
...
Mostly useful for debugging CollapsibleContainers made with code
2024-05-19 23:35:27 +03:00
Emmanouil Papadeas
0fc60168e8
Fix polygon select tool circle radius not scaling properly with zoom
2024-05-18 15:01:21 +03:00
Emmanouil Papadeas
7cc820fcf4
Change the accent color of the dark theme to a lighter gray
2024-05-17 02:11:17 +03:00
Emmanouil Papadeas
a8440b80cc
Rename config file from cache.ini to config.ini
2024-05-16 00:07:38 +03:00
Emmanouil Papadeas
3a4517abf4
[skip ci] Update the Lospec Palette Importer extension version
2024-05-13 19:32:31 +03:00
Emmanouil Papadeas
0fb89bf888
[skip ci] Minor static typing and docstring improvements
2024-05-11 17:02:33 +03:00
Emmanouil Papadeas
6b1329ff1f
Set color picker's expand button focus mode to none
2024-05-09 02:45:48 +03:00
Emmanouil Papadeas
4ec7259c63
Optimize non-shader rotation by clearing non-selected pixels with masking
2024-05-09 01:36:11 +03:00
Emmanouil Papadeas
e15b207993
Pass a transformation matrix in CommonRotation shaders instead of an angle
...
This will allow us to implement shearing more easily. Also, for the non-SmearRotxel shaders, normalize their pivot in GDScript, before passing it to the script. Should probably be faster this way
2024-05-09 00:44:52 +03:00
Emmanouil Papadeas
25f7192573
Pass angles in radians in SmearRotxel
...
Should be a slight optimization, since angles are being converted to radians only once, and that calculation is done in the CPU
2024-05-08 23:31:03 +03:00
Emmanouil Papadeas
fe54f943e9
Change the color picker panel's expand button to be bigger and have text
2024-05-08 16:32:51 +03:00
Emmanouil Papadeas
a2539c34f8
Add a minimum size to the Color Picker panel
2024-05-08 15:46:08 +03:00
Emmanouil Papadeas
e3ee931059
Move and resize tags by dragging their edges
2024-05-08 03:44:26 +03:00
Emmanouil Papadeas
5a64dde3e5
Remove frame tag button & make onion skinning settings into general timeline settings
...
The "Animation plays only on frames of the same tag" button has been moved to the general timeline settings, along with a new slider that resizes the cel buttons in the timeline.
2024-05-08 01:09:20 +03:00
Emmanouil Papadeas
ecb1890024
Change AnimationTagUI to be a Control instead of a VBoxContainer
2024-05-07 23:20:15 +03:00
Emmanouil Papadeas
592260ef93
Minor tag code improvements
2024-05-07 17:38:45 +03:00
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
Emmanouil Papadeas
e7a469fa4d
Refactor scale methods of DrawingAlgos
2024-01-23 19:25:32 +02:00
Emmanouil Papadeas
6448b7ee7c
Remove unnecessary Array casting in DrawingAlgos
2024-01-23 19:07:35 +02:00
Emmanouil Papadeas
519fa77791
Add a recent colors section to the color picker
...
Sort-of implements #859
2024-01-23 03:57:31 +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
Variable
ddce0393dd
Fixed some issues with perspective lines and removed unneeded code from the rotate image dialog ( #979 )
...
* fix drag gizmo of perspectice lines
* fix more stuff
2024-01-22 00:09:57 +02:00
Emmanouil Papadeas
bec7ceb974
Fix Global.can_draw being set to true all the time
...
Note for the future, perhaps using _unhandled_input() might remove the need of this variable.
2024-01-21 19:46:01 +02:00
Variable
561a374cc0
Fixed rotation gixmo ( #976 )
2024-01-20 02:06:44 +02:00
Emmanouil Papadeas
bc8fadb67c
Fix cel button image texture breaking when the image gets resized
2024-01-19 18:25:50 +02:00
Emmanouil Papadeas
73e40ed127
Add a ShaderInclude file for common shader rotation code
2024-01-18 00:19:30 +02:00
Emmanouil Papadeas
aa77dcb61f
Selection rotation with gizmo improvements, still not usable and not exposed
2024-01-17 20:04:19 +02:00
Emmanouil Papadeas
9631527da6
Always show panel tabs if there are more than one
...
Bringing this feature back from 0.x. Not very happy that we're once again not synced with upstream dockable_container, so hopefully https://github.com/gilzoide/godot-dockable-container/pull/27 is merged soon.
2024-01-12 20:56:35 +02:00
Emmanouil Papadeas
80bcfe200d
Don't use Global.main_viewport on guides, plus some static typing improvements
2024-01-11 16:23:00 +02:00
Emmanouil Papadeas
72bec41e63
Add icons to some Help menu items, add a new "Support Pixelorama's Development" item and remove "Donate" from the About dialog
2024-01-10 00:30:27 +02:00
Emmanouil Papadeas
3dd288f32f
Hide PasteTagPopup
2024-01-09 20:47:00 +02:00
Emmanouil Papadeas
404aa190cf
Fix AddExtensionFileDialog
2024-01-09 20:46:39 +02:00
Emmanouil Papadeas
4d113dbc75
Change some method names in the SignalsAPI, improve docs of some signals in Global
2024-01-09 16:32:17 +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
Emmanouil Papadeas
ae9449500a
[AboutDialog] Remove "Developers", rename "Contributors" into "Authors" and put Erevoid's and mine names there
...
There's no need for our two names to be on their own, they should be together with the rest of the people who contributed to the project.
2024-01-08 22:13:54 +02:00
TheLsbt
782cc62c6e
Update 3DShapeEdit.tscn ( #970 )
...
Change the menu button to flat to indicate that it is a button that you can press and not a label
2024-01-08 18:49:49 +02:00
Emmanouil Papadeas
4f54ffc987
Rename "Crop Image" to "Crop to Selection" and "Trim Image" to "Crop to Content"
...
Same names as the GNU Image Manipulation Program, much more clear as to what each option does.
2024-01-04 16:28:39 +02:00
Emmanouil Papadeas
97a588bfdd
Fix formatting
2024-01-04 15:58:57 +02:00
Emmanouil Papadeas
e377813a73
Export palettes as images on the Web version
2024-01-04 15:46:28 +02:00
Emmanouil Papadeas
33ffa88a5b
Remove unneeded signal connect from the rulers
2024-01-01 02:00:56 +02:00
Emmanouil Papadeas
08db10faad
Clean Canvas.gd's _input() method a bit
2024-01-01 01:52:21 +02:00
TheLsbt
c8f37943d8
Reference Image Improvements ( #961 )
...
* Reference Image Updates
* Fixed static typing
Fixed static typing in "src\UI
\ReferenceImages\ReferenceEditPanel.gd"
Changed "ri == null" to "!ri" in "src\UI\Canvas\ReferenceImages.gd"
* Tried fixing the static typing again
Removed lambda functions for the confirmation dialog.
Removed irrelevant print statement.
* Tried fixing static typing again
I think its fixed now
* Changed Spacing
* Fixed Trailing Whitespaces and tabs
* Fixed Final Trailing Whitespace
* Fixed styling and removed useless enum
* Removed double tabs left over from previous commit
* Fixed remove ConfirmDialog Showing on startusp
* Tried Fixing gdlint issues
* Fixed Linting
* Fixed Spelling issues
* Drag and drop to rearrange reference images
Added the ability to drag and drop Reference Images similar to dragging and dropping layers. These can be dragged or used with buttons (similar to the buttons that move frames). With full undo/redo support.
Added tool buttons these should help people who draw on tablets that cannot use keyboard shortcuts (icons still need to be created)
Renamed ReferenceEditPanel.gd to ReferenceEdit.gd (because it is no longer the script of a panel) and changed the base class of the Reference Panel.
Added some more translations.
Remade ReferenceImageButton.tscn to allow for drag and drop
Added drag highlight
* Added Icons
Added icons for the tools of the Reference Images
* Applied the icons to the UI
* Fix Scripting Issues
* Fixed Linting
* Rename Move.png to move.png
* Update Canvas.gd
* Updated the tooltips
Also added the correct translations
* Rename Select.png to select.png
* Rename Select.png.import to select.png.import
* Rename Move.png.import to move.png.import
* Rename Rotate.png to rotate.png
* Rename Rotate.png.import to rotate.png.import
* Fixed import files
* Rename Scale.png to scale.png
* Rename Scale.png.import to scale.png.import
* Added logic to update the reference panel when the project changes
Also fixed visual bugs related to highlighting the current reference image.
Made it so the reference image that was selected in a project get selected again when the project opens instead of going back to -1 (nothing)
* Update Project.gd
2023-12-31 14:12:37 +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
bcdefe66ce
[skip ci] Add the sort palette button to the UIButtons node group
2023-12-27 02:43:28 +02:00
Clara Hobbs
3d2d9e47a8
Add support for InputEventMouseMotion.pen_inverted ( #966 )
...
* Add support for InputEventMouseMotion.pen_inverted
This commit adds support for stylus erasers, both for drawing and
choosing tools. This may be supported on some styli by inverting them
as the property name suggests, or by holding a button while drawing with
the nib.
* Formatting fixes
2023-12-25 02:50:10 +02:00
Emmanouil Papadeas
dffaf1d504
Fix bug where the wrong cel would be drawn on the canvas when undoing
2023-12-24 14:47:35 +02:00
Emmanouil Papadeas
d36f89365c
Change "Crop Image" to "Trim Image" and add a new "Crop Image" that actually crops the image based on the active selection
2023-12-24 01:11:12 +02:00
Emmanouil Papadeas
866de8b6ae
Add transparent backgrounds to the color buttons
2023-12-23 22:05:51 +02:00
Emmanouil Papadeas
893b2a8c7f
Make palette swatches use TransparentChecker.tscn
2023-12-23 22:03:44 +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
165217acc3
Fix palette swatch highlight not being shown
2023-12-23 21:44:38 +02:00
Emmanouil Papadeas
06b405dae8
Implements palette sorting
2023-12-23 19:00:24 +02:00
Emmanouil Papadeas
9bf8eb13c4
Align tool buttons to the center
2023-12-23 13:30:01 +02:00
Emmanouil Papadeas
65ab504e22
Add a MarginContainer in the onion skinning settings dialog
2023-12-23 13:26:38 +02:00
Emmanouil Papadeas
0cb98f6e2e
Revert palette file format back to JSON ( #967 )
...
* Some static typing and use notification to check if the theme has changed in swatches
* Use Vector2i for scrolling, hide scrollbars in the node properties
* More static typing improvements
* More static typing & docstring improvements, remove some methods from Palettes.gd
* [WIP] Go back to json for palettes instead of tres
* Revert back to using dictionaries for palette colors instead of array
Reverts part of the previous commit
* Read width & height from files, don't store the name
* Fix palette renaming
* Copy non-json palettes into json files
* Fix palette duplication
* Add a new _fill_imported_palette_with_colors() to avoid duplicate code in import file methods
* Fix palette file importing when not initialising
* Export palettes as images
* Replace "tres" with "json" filter in the open sprite dialog
* When exporting a palette as an image, automatically set the file name to the palette name
* Replace default palette files with json
* Remove the Global.palette_panel variable, use signals instead.
* Static typing in signals
* Fix warning in Palettes.gd
* Fix formatting
* Add missing comments to the palette files
* Update Palettes.gd
* A few more static typing improvements
2023-12-23 00:28:35 +02:00
Variable
54604fa0af
Allow Internal extensions ( #963 )
...
* Moved tools to Extension
* removed accidental change
* code re-arrangement
* some improvements
* Restored tools and some improvements
* typo
* re-arranged tools
* formatting
2023-12-20 16:23:20 +02:00
Emmanouil Papadeas
65c2a770d7
Set is_quitting_on_save = false after saving while quitting
...
Just in case a project gets saved while quitting, and for the next project, the user cancels.
2023-12-18 21:30:30 +02:00
Emmanouil Papadeas
42e8c8cb50
When saving, don't include ".pxo" in the project name
2023-12-18 20:56:38 +02:00
Emmanouil Papadeas
10ca31b916
Add "include blended images" in SaveSpriteHTML5.tscn, and use save_project()
for both desktop and web platforms
2023-12-18 20:55:40 +02:00
Emmanouil Papadeas
89b17177a1
Show multiple save confirmation dialogs on quit for each project that has changes
2023-12-18 20:23:55 +02:00
Emmanouil Papadeas
be2245ca76
Put add/remove swatch color on the same horizontal container as the palette select and add/edit palette buttons
...
This allows for horizontal placement of the palette panel without any wasted space
2023-12-16 23:13:11 +02:00
Emmanouil Papadeas
9034b32d44
Use a MenuBar node in the top menu container
...
I didn't know this was a new node in Godot 4, very cool
2023-12-16 22:25:06 +02:00
Emmanouil Papadeas
0996d0405e
Fix create and edit palette dialogs being very long
2023-12-16 22:07:11 +02:00
Emmanouil Papadeas
b42c2d4cae
Fix crash reported in #960
2023-12-15 18:54:10 +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
Variable
17ee10a131
[ExtensionsAPI] Implement an Import API ( #957 )
...
* Added ImportAPI
* Delete src/UI/Dialogs/PreviewDialog.gd
* Delete src/UI/Dialogs/PreviewDialog.tscn
2023-12-12 16:04:49 +02:00
Emmanouil Papadeas
6b5ba2bf0f
Fix brush and palette importing not working
2023-12-10 14:23:14 +02:00
Emmanouil Papadeas
a5e73e1fcd
Fix layers not being rendered on certain devices
...
Looks like some kind of textureSize() bug with sampler2DArrays when accessing the z member. I have only confirmed this bug on an AMD GPU. Nevertheless, it should be fixed now with this workaround.
2023-12-10 02:59:30 +02:00
Emmanouil Papadeas
495c3b8ebe
Don't call project_changed()
whenever a reference image gets imported
2023-12-07 16:09:00 +02:00
Emmanouil Papadeas
91bf44c4fb
Make the RGB buttons pressed by default in Invert Colors & Desaturate dialogs
2023-12-07 00:21:58 +02:00
Emmanouil Papadeas
df0cbe0bc2
Add margins to the palette container
2023-12-06 22:32:24 +02:00
Emmanouil Papadeas
30827461fd
Add margins to the tool options
2023-12-06 21:55:13 +02:00
Emmanouil Papadeas
dc06e3aa06
Change dark theme colors and remove unneeded items
2023-12-06 20:34: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
aacd41f2e5
More z-index layer ordering fixes
2023-12-06 15:11:04 +02:00
Emmanouil Papadeas
b40fef2c97
Fix the layer order being wrong
2023-12-06 04:29:35 +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
c8bead14b2
Fix crash when the palette directory doesn't exist
2023-12-06 03:57:26 +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