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

57 commits

Author SHA1 Message Date
Manolis Papadeas 05c9ef70d4 Put frame duration as a member of the Frame class
Instead of having a frame_duration[] array in the Project class. This makes the code much more readable and understandable, using less lines of code and, by avoiding an extra array, we also avoid potential out-of-bound array crashes.

The functionality for the user has not changed, and by testing so far I didn't find any issues.
2020-12-16 22:54:08 +02:00
Manolis Papadeas 15994fb818 Fixed crash when importing spritesheets 2020-12-09 18:18:00 +02:00
Manolis Papadeas de6f78b058 Fix crash when importing an image file as a new frame 2020-12-09 18:07:12 +02:00
Manolis Papadeas 4be0740170 Fixed crash when loading a pxo older of 0.8.1 and selecting a frame other than the first
Had to do with Project.frame_duration not having as array members as it should.
2020-11-12 02:16:08 +02:00
Manolis Papadeas cff3f9f6b2 Fixed issue where imported projects were not remembering the directory_path and file_name when switching tabs. 2020-10-29 22:35:20 +02:00
Manolis Papadeas 7dd9b36cdc Move "Recent projects" up, just below "Open last project" in the File menu 2020-10-29 22:33:15 +02:00
Manolis Papadeas 4415f86c56 Update CHANGELOG & AboutDialog, trim trailing whitespaces 2020-10-27 23:03:43 +02:00
dasimonde 7126074a0e
Add feature request #276 (#370)
* Add request #276

* Remove a warning message

* Some fixes

* Bug fix. Remove Global.save_project_to_recent_list() from src/Main.gd

Co-authored-by: Daniel Simon <dasimon@gmx.org>
2020-10-26 13:51:55 -07:00
Manolis Papadeas ab6bebd6d4 When there are errors in opening and saving files, the errors appear in the form of a popup dialog, instead of a notification or an OS alert. 2020-10-25 18:02:51 +02:00
Manolis Papadeas 4e33476a4d Fixed "Export" option in the File menu not working properly when switching between projects
Export.was_reported was keeping its value when switching projects, instead of being project-specific. Also fixed issue where imported images were not remembering the directory_path and file_name when switching projects.
2020-10-25 00:58:37 +03:00
OverloadedOrama e94bcf50e0 Made pxo saving a bit safer
It now first attempts to serialize the project data and turn them to JSON, and then opens the file. This is a lto safer because, if a crash happens in the serialization, the file is not already open, and therefore it does not get corrupt. Earlier, if a crash happened, the file would be empty. This meant that if that file existed previously, all of the data would be lost.
2020-10-20 03:27:38 +03:00
OverloadedOrama e5c371cf88 Added error code to pxo open/save error messages 2020-10-06 04:37:43 +03:00
OverloadedOrama e0fb942c7c An even better fix for loading backups 2020-09-05 22:27:11 +03:00
OverloadedOrama 497f0e03cb Fixes issue when saving a pxo and removing its backup
Supersedes #327
2020-09-05 21:55:12 +03:00
OverloadedOrama aa3637cc41 Fixed crash when loading backups
backup_paths can have more elements that backup_save_paths, which caused crashes if a backup file did not exist.
2020-09-05 19:13:43 +03:00
OverloadedOrama e673888529 Import pal palette files by dropping them into the app 2020-08-27 01:37:14 +03:00
Martin Novák 6f645d996d
Refactor export dialog (#288)
* Split export code from export dialog to Export.gd autoload
Clean access to child nodes of export dialog

* Fix export variables set in Main.gd

* Fix more wrong variable assignments

Co-authored-by: alexhayoo <65853178+alexhayoo@users.noreply.github.com>
2020-07-31 23:26:52 +03:00
OverloadedOrama 0f82be765e Replaced the _min and _max Project variables with Project.selected_pixels
This will allow us to create more selection tools in the future, that aren't necessarily rectangular (See #129) and even enhance the current rectangle selection tool (See #56)

Current issues spotted so far:
Drawing is slower for large images, and bucket filling is also considerably slower even on a 64x64 image. Optimizations are required.
2020-07-20 22:15:34 +03:00
OverloadedOrama d31509035f Add a "Use ZSTD Compression" checkbox on Save Sprite dialog 2020-07-11 02:09:17 +03:00
Kinwailo 4a668f71f5
Refactoring tools (#281)
* Refactoring tools

* Remove unused code

* Fixed some inferring errors and added translations

* Attempt to fix some Script Errors found in the CI workflow

* Fix bucket crash.

* Fix static type convert.

Co-authored-by: OverloadedOrama <35376950+OverloadedOrama@users.noreply.github.com>
2020-07-09 15:22:17 +03:00
OverloadedOrama 0713342c0f Change "err" variable for HTML5 in OpenSave.save_pro_file() 2020-07-05 02:22:48 +03:00
OverloadedOrama 7e3436d3ba Loading image files is now possible in HTML5
Had to move some palette png code around in order to make it possible to use these image files as palettes. Hopefully loading .pxo files should be next. Addresses #280
2020-06-30 22:29:24 +03:00
OverloadedOrama 637a60d9ee Saving .pxo files in HTML5 is now possible
Addresses #280
2020-06-30 20:25:43 +03:00
OverloadedOrama 047561b95a Added options for when importing an image as a new frame or layer
The user can now choose which layer they want the new frame to be, and, similarly, which frame they want the new layer to be when importing an image.
2020-06-22 15:57:42 +03:00
OverloadedOrama 76b7014d84 Added UndoRedo support for importing images as frames and layers 2020-06-21 21:39:16 +03:00
OverloadedOrama 40a01f1da3 Added import image as a new layer of the current project
Just realized that I forgot to add undo/redo support of importing images as new frame/layer, oops. Will fix next.
2020-06-21 21:20:39 +03:00
OverloadedOrama f260971056 Added import image as a new frame of the current project
Will also add a way to let the user choose which layer the new cel of the imported image will be.
2020-06-21 21:02:03 +03:00
OverloadedOrama 25d9aca0c4 Drag and drop palette files to open them 2020-06-17 16:47:24 +03:00
OverloadedOrama f7cc9a8104 Added ability to import images as palettes 2020-06-17 03:56:46 +03:00
OverloadedOrama 28818171d4 Call Global.dialog_open when a PreviewDialog pops up/gets hidden 2020-06-17 02:58:24 +03:00
OverloadedOrama 13613703fc Importing spritesheets is possible again 2020-06-16 17:59:56 +03:00
OverloadedOrama 57d4156341 Added a preview dialog that opens every time the user imports an image file
The dialog does not appear on .pxo files. Import options will be added on it soon.
2020-06-13 20:58:43 +03:00
OverloadedOrama 2e587e3634 Made TopMenuContainer.gd and moved all the menu code there from Main.gd
Main.gd is now easier to read
2020-06-13 17:59:57 +03:00
OverloadedOrama 2371238ec0 Removed Import option from the file menu
The "Open" option will handle importing of .pxo files and image files from now on. The "ImportSprites" file dialog node and script are scheduled to be deleted too. Importing spritesheets option will return soon. Next thing I'm going to work on is a preview window that will appear when importing image files.
2020-06-12 01:11:58 +03:00
OverloadedOrama b0338ab09a Changed structure of .pxo files
The structure of the .pxo files is now consisted of a JSON-structured metadata part, where all the data that can be stored as text are, and a binary part, that contain all the actual image data for each cel and project brush.

This makes it easier for users to understand the .pxo structure, easier to add more changes without having to check versions for backwards compatibility, easier to be opened by third-party apps and it allows us to make an "Export JSON metadata" option, that will export just the metadata in JSON format, without the binary image data.

It's backwards compatible and .pxo files from as far as v0.5 are still supported.
2020-06-10 04:17:39 +03:00
OverloadedOrama 01ce3a3932 When opening a project and the current tab is empty, open it in that tab
If the current project is empty (only 1 layer and frame, no tags and the image has no content - is invisible) and the user is opening a project, then the opened project will not open a new tab of its own, and will use the currently opened one instead.
2020-06-07 01:48:35 +03:00
OverloadedOrama 5fda35c2d8 Fixed issues with saving and backups 2020-06-06 02:52:17 +03:00
OverloadedOrama 709a401373 Save backups for all opened projects
current_save_paths and backup_save_paths in OpenSave.gd are arrays now, have paths for every project
2020-06-06 02:16:53 +03:00
OverloadedOrama 9ffce37c0b An asterisk is added to the tab name if there are changes
The window title also changes when switching tabs. And yes, "has_changed_changed" is a stupid method name, I'll find another one sometime later.
2020-06-05 20:15:40 +03:00
OverloadedOrama 6d87901056 Imported image files now open in an new tab
Keep in mind that opening an image file as a new frame might not work properly yet, if the target image has a different size.
2020-06-05 19:51:06 +03:00
OverloadedOrama 1b1c7f844f .pxo files now get opened in a new tab 2020-06-05 18:54:11 +03:00
OverloadedOrama 4af130bc61 Project brushes change when switching projects
A new Global.file_brushes array is used for the file brushes, and the Project class has its own brushes array for the project brushes
2020-06-05 17:21:35 +03:00
OverloadedOrama f9bd590d20 Moved size variable from Canvas.gd to Project.gd 2020-06-04 23:20:20 +03:00
OverloadedOrama 4e111a7ac0 Created a Projects class
A Project class contains project-specific data like name, undo_redo, frames, layers, tags and brushes. These variables have been moved from Global. This is the first step towards multiple tab support, where each tab will be a different Project.
2020-06-04 21:05:36 +03:00
OverloadedOrama 54b628f6cb Made a Frame class, no longer use multiple Canvases for multiple frames
The Canvas is now single node, instead of having multiple canvases for each frame. This should also be a performance optimization, since there are less canvas nodes, so there are less _input() calls. It should also fix a rare Undo/Redo issue with motion drawing and making lines. Could be unstable, needs more testing.

As a side effect, the guides are now the same for all frames, so this should also close #246.
2020-06-03 02:14:24 +03:00
OverloadedOrama 34bc528e97 Added AnimationTag class
Replaces nested Global.animation_tags arrays. Also replaced array.duplicate(true) with looping through the array and creating a new class for each array element, because duplicate(true) does not create new classes, unfortunately, which was causing issues with undo/redo.
2020-06-02 05:14:05 +03:00
OverloadedOrama df0032c515 Created a new Cel class, to handle cel information
Like the Layer class, it is used in place of Canvas.layers nested array mess. It hasn't been tested thoroughly yet, so there may be crashes.
2020-06-01 18:50:31 +03:00
OverloadedOrama a9ca858303 Use a new Layer class to handle layer information
This replaces the old Global.layers nested array mess, and makes the code easier to read and to understand.
2020-06-01 16:42:53 +03:00
OverloadedOrama 9b4956b4f1 Even more Global left/right variables became arrays
ColorAndToolOptions has now the same code for left and right tool options, with more similar refactoring coming soon to places like Canvas and DrawingAlgos
2020-06-01 00:44:53 +03:00
Kinwailo 69f08e90fd
Refactoring perferences dialog (#251) 2020-05-31 23:04:59 +03:00