diff --git a/Changelog.md b/Changelog.md index 698038214..24a5780de 100644 --- a/Changelog.md +++ b/Changelog.md @@ -13,20 +13,20 @@ sapient-cogbag, Kinwailo, Igor Santarek (jegor377), Dávid Gábor BODOR (dragonf - Cels are now in the timeline. Each cel refers to a specific layer AND a frame. Frames are a collection of cels for every layer. - Cel linking is now possible. This way, layers can be "shared" in multiple frames. - You can now group multiple frames with tags. -- You can now export your projects to .gif files. +- You can now export your projects to `.gif` files. - A new rotation method has been added, "Upscale, Rotate and Downscale". It's similar to Rotsprite. - An HSV Adjust dialog has been added in the Images menu. - Pattern filling is now possible. The bucket tool can now use Patterns to fill areas, instead of a single color. - An autosave feature that keeps backups of unsaved projects have been added. In the case of a software crash, the users can restore their work with this system. - Users can now change keyboard shortcut bindings for tools, in the Preferences. - Pixel Perfect mode has been added for pencil, eraser and lighten/darken tools. -- Importing .pngs as palettes is now possible. +- Importing `.pngs` as palettes is now possible. - A confirmation message now appears when the user quits Pixelorama, if there are unsaved changes. - The last edited project gets loaded at startup (toggleable in the Preferences), along with a new option in the File menu that also does this. - Templates and a lock aspect ratio option have been added to the "Create new image" dialog. - Locking layers is now possible. When a layer is locked, no changes can be made to it. Layers are unlocked by default. - Ability to get color for palette buttons, when editing a palette, from the currently selected left and right colors. -- Esperanto & Indonesian translation. +- Esperanto, Indonesian & Czech translation. - When the image is unsaved and the user tries to make a new one, a new warning dialog will appear to ask for confirmation. - A new zoom tool has been added, and you can also zoom in with the `+` key, and zoom out with `-`. - You can now move the canvas with the `Arrow keys`. `Shift + Arrows` make it move with medium speed, and `Ctrl + Shift + Arrows` makes it move with high speed. @@ -48,7 +48,7 @@ sapient-cogbag, Kinwailo, Igor Santarek (jegor377), Dávid Gábor BODOR (dragonf - Animation now loops by default. - Onion skinning settings have been moved to a popup window, and 2 new buttons were added. One that toggles onion skinning, and one that opens the settings window. - The default window size is now 1280x720, and the minimum window size is 1024x576. -- .pxo files now use ZSTD compression to result in smaller file sizes. +- `.pxo` files now use ZSTD compression to result in smaller file sizes. - Palettes/Brushes get loaded/saved in appropriate locations as specified by the XDG basedir standard, for easier usage of standard linux/bsd packaging methods and for better per-user usability. - The splash screen has been revamped and is no longer purple, it now gets affected by the chosen theme. - The brush selection popup now closes when a brush is selected. @@ -66,6 +66,7 @@ sapient-cogbag, Kinwailo, Igor Santarek (jegor377), Dávid Gábor BODOR (dragonf - It's no longer possible for frames to have different amounts of layers. All frames have the same amount. - The guides no longer work with undo/redo. + ## [v0.6.2] - 17-02-2020 ### Added @@ -103,6 +104,7 @@ sapient-cogbag, Kinwailo, Igor Santarek (jegor377), Dávid Gábor BODOR (dragonf - Fixed ruler markings cutting off before they should - Thanks to YeldhamDev! - Fixed bug where resizing the image on export and moving selection content were not working on Godot 3.2 - Issues #161 and #162 + ## [v0.6.1] - 13-01-2020 ### Added @@ -133,6 +135,7 @@ sapient-cogbag, Kinwailo, Igor Santarek (jegor377), Dávid Gábor BODOR (dragonf - Fixed a rare crash with straight lines. It was possible that the variable `is_making_line` could be true, even if the line itself has been freed from memory. - Fixed issue where undo/redo was not working properly for straight lines that went outside the canvas. + ## [v0.6] - 06-01-2020 ### Added diff --git a/Prefabs/AnimationTimeline.tscn b/Prefabs/AnimationTimeline.tscn index 000ed0982..c78e5d726 100644 --- a/Prefabs/AnimationTimeline.tscn +++ b/Prefabs/AnimationTimeline.tscn @@ -318,9 +318,9 @@ anchor_top = 0.5 anchor_right = 0.5 anchor_bottom = 0.5 margin_left = -5.0 -margin_top = -6.0 +margin_top = -7.0 margin_right = 5.0 -margin_bottom = 6.0 +margin_bottom = 7.0 texture = ExtResource( 27 ) __meta__ = { "_edit_use_anchors_": false diff --git a/Prefabs/Dialogs/PreferencesDialog.tscn b/Prefabs/Dialogs/PreferencesDialog.tscn index 24440aaa3..d78b7133e 100644 --- a/Prefabs/Dialogs/PreferencesDialog.tscn +++ b/Prefabs/Dialogs/PreferencesDialog.tscn @@ -154,6 +154,7 @@ text = "Open last project on startup" margin_top = 128.0 margin_right = 306.0 margin_bottom = 152.0 +mouse_default_cursor_shape = 2 text = "Enable autosave" __meta__ = { "_edit_use_anchors_": false diff --git a/Scripts/OpenSave.gd b/Scripts/OpenSave.gd index fabff87c0..185b6649d 100644 --- a/Scripts/OpenSave.gd +++ b/Scripts/OpenSave.gd @@ -3,11 +3,12 @@ extends Node var current_save_path := "" # Stores a filename of a backup file in user:// until user saves manually var backup_save_path = "" - -onready var autosave_timer : Timer var default_autosave_interval := 5 # Minutes -func _ready(): +onready var autosave_timer : Timer + + +func _ready() -> void: autosave_timer = Timer.new() autosave_timer.one_shot = false autosave_timer.process_mode = Timer.TIMER_PROCESS_IDLE diff --git a/Themes & Styles/Dark Theme/Dark Theme.tres b/Themes & Styles/Dark Theme/Dark Theme.tres index 78c3dc812..79ef45eda 100644 --- a/Themes & Styles/Dark Theme/Dark Theme.tres +++ b/Themes & Styles/Dark Theme/Dark Theme.tres @@ -1,4 +1,4 @@ -[gd_resource type="Theme" load_steps=38 format=2] +[gd_resource type="Theme" load_steps=39 format=2] [ext_resource path="res://Assets/Fonts/Roboto-Regular.tres" type="DynamicFont" id=1] [ext_resource path="res://Assets/Graphics/Dark Themes/Misc/Grabber.png" type="Texture" id=2] @@ -57,6 +57,9 @@ bg_color = Color( 0.6, 0.6, 0.6, 0 ) [sub_resource type="StyleBoxFlat" id=7] bg_color = Color( 0.6, 0.6, 0.6, 0 ) +[sub_resource type="StyleBoxFlat" id=33] +bg_color = Color( 0.2, 0.2, 0.2, 0 ) + [sub_resource type="StyleBoxFlat" id=8] bg_color = Color( 0.768627, 0.768627, 0.768627, 1 ) border_width_left = 2 @@ -318,6 +321,24 @@ CheckBox/styles/hover = SubResource( 4 ) CheckBox/styles/hover_pressed = SubResource( 5 ) CheckBox/styles/normal = SubResource( 6 ) CheckBox/styles/pressed = SubResource( 7 ) +CheckButton/colors/font_color = Color( 0.88, 0.88, 0.88, 1 ) +CheckButton/colors/font_color_disabled = Color( 0.9, 0.9, 0.9, 0.2 ) +CheckButton/colors/font_color_hover = Color( 0.94, 0.94, 0.94, 1 ) +CheckButton/colors/font_color_hover_pressed = Color( 1, 1, 1, 1 ) +CheckButton/colors/font_color_pressed = Color( 1, 1, 1, 1 ) +CheckButton/constants/check_vadjust = 0 +CheckButton/constants/hseparation = 4 +CheckButton/fonts/font = null +CheckButton/icons/off = null +CheckButton/icons/off_disabled = null +CheckButton/icons/on = null +CheckButton/icons/on_disabled = null +CheckButton/styles/disabled = SubResource( 33 ) +CheckButton/styles/focus = SubResource( 33 ) +CheckButton/styles/hover = SubResource( 33 ) +CheckButton/styles/hover_pressed = SubResource( 33 ) +CheckButton/styles/normal = SubResource( 33 ) +CheckButton/styles/pressed = SubResource( 33 ) ColorPicker/constants/h_width = 30 ColorPicker/constants/label_width = 10 ColorPicker/constants/margin = 4 diff --git a/project.godot b/project.godot index e2ad48fe1..63c981632 100644 --- a/project.godot +++ b/project.godot @@ -325,6 +325,36 @@ switch_colors={ "events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":88,"unicode":0,"echo":false,"script":null) ] } +go_to_first_frame={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":true,"meta":false,"command":true,"pressed":false,"scancode":16777229,"unicode":0,"echo":false,"script":null) + ] +} +go_to_last_frame={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":true,"meta":false,"command":true,"pressed":false,"scancode":16777230,"unicode":0,"echo":false,"script":null) + ] +} +go_to_previous_frame={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":true,"meta":false,"command":true,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) + ] +} +go_to_next_frame={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":true,"meta":false,"command":true,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) + ] +} +play_backwards={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777247,"unicode":0,"echo":false,"script":null) + ] +} +play_forward={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777248,"unicode":0,"echo":false,"script":null) + ] +} [locale]