* Add share config button
* fill parameter now saves with curve tool
* rename _fill to _fill_inside for sync consistency (fill in pencil and shape tools basically represent the same thing)
* add icon
* Move the option to the preferences
* Add string to Translations.pot
* Re-introduce `is_syncing`
---------
Co-authored-by: Emmanouil Papadeas <35376950+OverloadedOrama@users.noreply.github.com>
Closes #1061, fixes issue where when Pixelorama's window loses focus, the dialogs disappeared, but the dialogs can no longer close when pressing outside of them.
* Add setting for Godots low processor usage mode
* Update name and description of low processor usage mode setting in preferences
* Fix a tiny mistake
A few buttons and labels in Pixelorama weren't getting updated when changing languages, they'd just remain at the language the program started up with or only update when changing projects.
This fixes that and ensures they get updated as soon as the user changes languages.
This has no effect on non-Steam builds. Steam achievements are mostly for fun, but can also be educational because they can let users know of certain features and functionalities. It's using the GodotSteam GDExtension, but because I do not want to bloat the GitHub repository with things that are not needed for most builds, I decided not to include the GDExtension files, and instead check if the `Steam` class exists in `ClassDB`. The new SteamManager class pretty much does nothing on non-Steam builds, so do not worry about bloat.
In the future we could even take advantage of more of Steam's features, such as Cloud storage for pxo files.
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!
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.
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.
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.
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.
* 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
* 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
* don't delete extensions permanently
* some further improvements to the previous commit
* add a tab to make log reading easier
* move to bin on uninstall
* attemp fix formatting
* attemp fix formatting
* attemp fix formatting
* attempt fix formatting
* attempt fix formatting
* attempt fix formatting
* attempt fix formatting
* Ask user if they prefer their extensions fried or disintegrated
* removed accidental change
* formatting
* fix uninstall dialog not apearing
(missed it due to a small blunder)