Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pixelorama for openSUSE:Factory checked in at 2023-11-07 21:27:48 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pixelorama (Old) and /work/SRC/openSUSE:Factory/.pixelorama.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pixelorama" Tue Nov 7 21:27:48 2023 rev:2 rq:1123928 version:0.11.3 Changes: -------- --- /work/SRC/openSUSE:Factory/pixelorama/pixelorama.changes 2023-10-10 20:52:37.897404013 +0200 +++ /work/SRC/openSUSE:Factory/.pixelorama.new.17445/pixelorama.changes 2023-11-07 21:28:38.868571724 +0100 @@ -1,0 +2,12 @@ +Wed Nov 1 12:00:00 UTC 2023 - cu...@mail.de + +- Update to 0.11.3 + * When deleting a palette, a confirmation window now appears that + lets users either delete the palette permanently, move it to trash + or cancel + * Fixed undo/redo history not working when the tool changes + * Pixelorama no longer closes when the project fails to be saved + if "Save & Exit" is selected + * Projects with 3D cels saved in 1.x can now be opened in 0.11.3 + +------------------------------------------------------------------- Old: ---- Pixelorama-0.11.2.tar.gz New: ---- Pixelorama-0.11.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pixelorama.spec ++++++ --- /var/tmp/diff_new_pack.bP0Ntx/_old 2023-11-07 21:28:39.672601332 +0100 +++ /var/tmp/diff_new_pack.bP0Ntx/_new 2023-11-07 21:28:39.672601332 +0100 @@ -19,7 +19,7 @@ %define nameupper Pixelorama Name: pixelorama -Version: 0.11.2 +Version: 0.11.3 Release: 0 Summary: 2D sprite editor License: MIT ++++++ Pixelorama-0.11.2.tar.gz -> Pixelorama-0.11.3.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/.github/workflows/dev-desktop-builds.yml new/Pixelorama-0.11.3/.github/workflows/dev-desktop-builds.yml --- old/Pixelorama-0.11.2/.github/workflows/dev-desktop-builds.yml 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/.github/workflows/dev-desktop-builds.yml 2023-10-30 14:42:51.000000000 +0100 @@ -2,9 +2,9 @@ on: push: - branches: [ master ] + branches: [ 0.x ] pull_request: - branches: [ master ] + branches: [ 0.x ] paths-ignore: - "Translations/*" - "installer/*.pot" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/.github/workflows/release.yml new/Pixelorama-0.11.3/.github/workflows/release.yml --- old/Pixelorama-0.11.2/.github/workflows/release.yml 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/.github/workflows/release.yml 2023-10-30 14:42:51.000000000 +0100 @@ -9,7 +9,7 @@ GODOT_VERSION_MAC: 3.5.2 RASPBERRY_PI_BUILDS_VERSION: 1.15.0 EXPORT_NAME: Pixelorama - TAG: v0.11.2 + TAG: v0.11.3 BUTLER_API_KEY: ${{ secrets.BUTLER_API_KEY }} jobs: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/.github/workflows/static-checks.yml new/Pixelorama-0.11.3/.github/workflows/static-checks.yml --- old/Pixelorama-0.11.2/.github/workflows/static-checks.yml 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/.github/workflows/static-checks.yml 2023-10-30 14:42:51.000000000 +0100 @@ -26,7 +26,8 @@ - name: Linting checks run: gdlint . - name: Spell checks via codespell - uses: codespell-project/actions-codespell@v1 + uses: codespell-project/actions-codespell@v2 with: skip: ./addons,*.po - ignore_words_list: chello,doubleclick + exclude_file: src/UI/Dialogs/AboutDialog.gd + ignore_words_list: chello,doubleclick,Manuel diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/CHANGELOG.md new/Pixelorama-0.11.3/CHANGELOG.md --- old/Pixelorama-0.11.2/CHANGELOG.md 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/CHANGELOG.md 2023-10-30 14:42:51.000000000 +0100 @@ -4,6 +4,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). All the dates are in YYYY-MM-DD format. <br><br> +## [v0.11.3] - 2023-10-30 +This update has been brought to you by the contributions of: +Fayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)) + +Built using Godot 3.5.2 + +### Changed +- When deleting a palette, a confirmation window now appears that lets users either to delete the palette permanently, move it to trash, or cancel. [#914](https://github.com/Orama-Interactive/Pixelorama/pull/914) + +### Fixed +- Fixed undo/redo history not working when the tool changes. [#916](https://github.com/Orama-Interactive/Pixelorama/pull/916) +- Pixelorama no longer closes when the project fails to be saved if "Save & Exit" is selected. [#920](https://github.com/Orama-Interactive/Pixelorama/pull/920) +- Projects with 3D cels saved in 1.x can now be opened in 0.11.3. [#928](https://github.com/Orama-Interactive/Pixelorama/pull/928) + ## [v0.11.2] - 2023-08-31 This update has been brought to you by the contributions of: [@Lsbt1](https://github.com/Lsbt1), Fayez Akhtar ([@Variable-ind](https://github.com/Variable-ind)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/Misc/Linux/com.orama_interactive.Pixelorama.appdata.xml new/Pixelorama-0.11.3/Misc/Linux/com.orama_interactive.Pixelorama.appdata.xml --- old/Pixelorama-0.11.2/Misc/Linux/com.orama_interactive.Pixelorama.appdata.xml 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/Misc/Linux/com.orama_interactive.Pixelorama.appdata.xml 2023-10-30 14:42:51.000000000 +0100 @@ -37,6 +37,7 @@ </screenshots> <content_rating type="oars-1.1"/> <releases> + <release version="0.11.3" date="2023-10-30"/> <release version="0.11.2" date="2023-08-31"/> <release version="0.11.1" date="2023-08-12"/> <release version="0.11" date="2023-06-13"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/export_presets.cfg new/Pixelorama-0.11.3/export_presets.cfg --- old/Pixelorama-0.11.2/export_presets.cfg 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/export_presets.cfg 2023-10-30 14:42:51.000000000 +0100 @@ -33,8 +33,8 @@ codesign/custom_options=PoolStringArray( ) application/modify_resources=true application/icon="res://assets/graphics/icons/icon.ico" -application/file_version="0.11.2.0" -application/product_version="0.11.2.0" +application/file_version="0.11.3.0" +application/product_version="0.11.3.0" application/company_name="Orama Interactive" application/product_name="Pixelorama" application/file_description="Pixelorama - Your free & open-source sprite editor" @@ -89,8 +89,8 @@ application/identifier="com.orama-interactive.pixelorama" application/signature="" application/app_category="Graphics-design" -application/short_version="0.11.2" -application/version="0.11.2" +application/short_version="0.11.3" +application/version="0.11.3" application/copyright="Orama Interactive and contributors 2019-present" display/high_res=false privacy/microphone_usage_description="" @@ -210,8 +210,8 @@ codesign/custom_options=PoolStringArray( ) application/modify_resources=true application/icon="res://assets/graphics/icons/icon.ico" -application/file_version="0.11.2.0" -application/product_version="0.11.2.0" +application/file_version="0.11.3.0" +application/product_version="0.11.3.0" application/company_name="Orama Interactive" application/product_name="Pixelorama" application/file_description="Pixelorama - Your free & open-source sprite editor" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/installer/pixelorama.nsi new/Pixelorama-0.11.3/installer/pixelorama.nsi --- old/Pixelorama-0.11.2/installer/pixelorama.nsi 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/installer/pixelorama.nsi 2023-10-30 14:42:51.000000000 +0100 @@ -6,7 +6,7 @@ ; Helper variables so that we don't change 20 instances of the version for every update !define APPNAME "Pixelorama" - !define APPVERSION "v0.11.2" + !define APPVERSION "v0.11.3" !define COMPANYNAME "Orama Interactive" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/project.godot new/Pixelorama-0.11.3/project.godot --- old/Pixelorama-0.11.2/project.godot 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/project.godot 2023-10-30 14:42:51.000000000 +0100 @@ -343,7 +343,7 @@ config/macos_native_icon="res://assets/graphics/icons/icon.icns" config/windows_native_icon="res://assets/graphics/icons/icon.ico" config/custom_user_dir_name.X11="pixelorama" -config/Version="v0.11.2-stable" +config/Version="v0.11.3-stable" config/ExtensionsAPI_Version=3 config/Pxo_Version=2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Autoload/Global.gd new/Pixelorama-0.11.3/src/Autoload/Global.gd --- old/Pixelorama-0.11.2/src/Autoload/Global.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Autoload/Global.gd 2023-10-30 14:42:51.000000000 +0100 @@ -272,7 +272,7 @@ else: zoom_slider.snap_step = 1 zoom_slider.step = 1 - zoom_slider.value = zoom_slider.value # to trigger signal emmission + zoom_slider.value = zoom_slider.value # to trigger signal emission func _initialize_keychain() -> void: @@ -617,3 +617,7 @@ dict[key] = str2var("Vector2" + dict[key]) elif "size" in key or "center_offset" in key: # Convert a String to a Vector3 dict[key] = str2var("Vector3" + dict[key]) + + +func undo_redo_draw_op(image: Object, compressed_image_data: Dictionary, buffer_size: int) -> void: + image["data"]["data"] = compressed_image_data["data"].decompress(buffer_size) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Autoload/HTML5FileExchange.gd new/Pixelorama-0.11.3/src/Autoload/HTML5FileExchange.gd --- old/Pixelorama-0.11.2/src/Autoload/HTML5FileExchange.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Autoload/HTML5FileExchange.gd 2023-10-30 14:42:51.000000000 +0100 @@ -72,7 +72,7 @@ # If (load_directly = false) then image info (image and its name) -# will not be directly farwarded it to OpenSave +# will not be directly forwarded it to OpenSave func load_image(load_directly := true): if OS.get_name() != "HTML5" or !OS.has_feature("JavaScript"): return diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Autoload/OpenSave.gd new/Pixelorama-0.11.3/src/Autoload/OpenSave.gd --- old/Pixelorama-0.11.2/src/Autoload/OpenSave.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Autoload/OpenSave.gd 2023-10-30 14:42:51.000000000 +0100 @@ -214,7 +214,7 @@ autosave: bool, use_zstd_compression := true, project: Project = Global.current_project -) -> void: +) -> bool: if !autosave: project.name = path.get_file() var serialized_data := project.serialize() @@ -224,7 +224,7 @@ ) Global.error_dialog.popup_centered() Global.dialog_open(true) - return + return false var to_save := JSON.print(serialized_data) if !to_save: Global.error_dialog.set_text( @@ -232,7 +232,7 @@ ) Global.error_dialog.popup_centered() Global.dialog_open(true) - return + return false # Check if a file with the same name exists. If it does, rename the new file temporarily. # Needed in case of a crash, so that the old file won't be replaced with an empty one. @@ -250,14 +250,15 @@ if err != OK: if temp_path.is_valid_filename(): - return + return false Global.error_dialog.set_text( tr("File failed to save. Error code %s") % str(err, ErrorManager.parse(err, " (", ")")) ) Global.error_dialog.popup_centered() Global.dialog_open(true) - file.close() - return + if file: # Failsafe + file.close() + return false if !autosave: current_save_paths[Global.current_project_index] = path @@ -308,6 +309,7 @@ ) save_project_to_recent_list(path) + return true func open_image_as_new_tab(path: String, image: Image) -> void: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Autoload/Palettes.gd new/Pixelorama-0.11.3/src/Autoload/Palettes.gd --- old/Pixelorama-0.11.2/src/Autoload/Palettes.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Autoload/Palettes.gd 2023-10-30 14:42:51.000000000 +0100 @@ -211,14 +211,17 @@ palettes[palette_path] = current_palette -func _delete_palette(path: String) -> void: - var dir = Directory.new() - dir.remove(path) +func _delete_palette(path: String, permanent := true) -> void: + if permanent: + var dir = Directory.new() + dir.remove(path) + else: + OS.move_to_trash(path) palettes.erase(path) -func current_palete_delete() -> void: - _delete_palette(current_palette.resource_path) +func current_palete_delete(permanent := true) -> void: + _delete_palette(current_palette.resource_path, permanent) if palettes.size() > 0: select_palette(palettes.keys()[0]) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Classes/Cel3D.gd new/Pixelorama-0.11.3/src/Classes/Cel3D.gd --- old/Pixelorama-0.11.2/src/Classes/Cel3D.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Classes/Cel3D.gd 2023-10-30 14:42:51.000000000 +0100 @@ -177,6 +177,9 @@ func deserialize(dict: Dictionary) -> void: + if dict.has("pxo_version"): + if dict["pxo_version"] == 3: # It's a 1.x project convert it to 0.x format + convert_1x_to_0x(dict) .deserialize(dict) scene_properties = dict["scene_properties"] var objects_copy = dict["object_properties"] @@ -195,6 +198,70 @@ _add_object_node(object) +## Used to convert 3d cels found in projects exported from a 0.x version to 1.x +func convert_1x_to_0x(dict: Dictionary) -> void: + # Converting the scene dictionary + var scene_dict: Dictionary = dict["scene_properties"] + scene_dict["camera_transform"] = str2var( + scene_dict["camera_transform"].replace("Transform3D", "Transform") + ) + scene_dict["camera_projection"] = str2var(scene_dict["camera_projection"]) + scene_dict["camera_fov"] = str2var(scene_dict["camera_fov"]) + scene_dict["camera_size"] = str2var(scene_dict["camera_size"]) + scene_dict["ambient_light_color"] = str2var(scene_dict["ambient_light_color"]) + scene_dict["ambient_light_energy"] = str2var(scene_dict["ambient_light_energy"]) + # Converting the objects dictionary + var objects_copy: Dictionary = dict["object_properties"] + for object_id_as_str in objects_copy.keys(): + objects_copy[object_id_as_str] = str2var( + objects_copy[object_id_as_str].replace("Transform3D", "Transform") + ) + # we are using a separate variable to make it easy to write + var object_info: Dictionary = objects_copy[object_id_as_str] + # Special operations to adjust gizmo + # take note of origin + var origin = object_info["transform"].origin + match object_info["type"]: + 0: # BOX + object_info["transform"] = object_info["transform"].scaled(Vector3.ONE / 2) + object_info["transform"].origin = origin + object_info["mesh_size"] *= 2 + 1: # SPHERE + object_info["transform"] = object_info["transform"].scaled(Vector3.ONE / 2) + object_info["transform"].origin = origin + object_info["mesh_radius"] *= 2 + object_info["mesh_height"] *= 2 + 2: # CAPSULE + object_info["transform"] = object_info["transform"].scaled(-(Vector3.ONE / 2)) + var basis = object_info["transform"].basis + var new_transform: Transform = Transform(basis.x, -basis.z, -basis.y, origin) + object_info["transform"] = new_transform + object_info["transform"].origin = origin + object_info["mesh_radius"] *= 2 + object_info["mesh_mid_height"] = ( + object_info["mesh_height"] + - (object_info["mesh_radius"] / 2) + ) + 3: # CYLINDER + object_info["transform"] = object_info["transform"].scaled(Vector3.ONE / 2) + object_info["transform"].origin = origin + object_info["mesh_height"] *= 2 + object_info["mesh_bottom_radius"] *= 2 + object_info["mesh_top_radius"] *= 2 + 4: # PRISM + object_info["transform"] = object_info["transform"].scaled(Vector3.ONE / 2) + object_info["transform"].origin = origin + object_info["mesh_size"] *= 2 + 6: # PLANE + object_info["transform"] = object_info["transform"].scaled(Vector3.ONE / 2) + object_info["transform"].origin = origin + object_info["mesh_sizev2"] *= 2 + _: + if not "shadow_color" in object_info.keys(): + object_info["shadow_color"] = Color.black + objects_copy[object_id_as_str] = objects_copy[object_id_as_str] + + func on_remove() -> void: if is_instance_valid(viewport): viewport.queue_free() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Classes/Project.gd new/Pixelorama-0.11.3/src/Classes/Project.gd --- old/Pixelorama-0.11.2/src/Classes/Project.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Classes/Project.gd 2023-10-30 14:42:51.000000000 +0100 @@ -380,6 +380,8 @@ cels.append(GroupCel.new()) Global.LayerTypes.THREE_D: cels.append(Cel3D.new(size, true)) + if dict.has("pxo_version"): + cel["pxo_version"] = dict["pxo_version"] cels[cel_i].deserialize(cel) _deserialize_metadata(cels[cel_i], cel) cel_i += 1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Main.gd new/Pixelorama-0.11.3/src/Main.gd --- old/Pixelorama-0.11.2/src/Main.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Main.gd 2023-10-30 14:42:51.000000000 +0100 @@ -287,12 +287,13 @@ func save_project(path: String) -> void: var zstd: bool = Global.save_sprites_dialog.get_vbox().get_node("ZSTDCompression").pressed - OpenSave.save_pxo_file(path, false, zstd) - Global.open_sprites_dialog.current_dir = path.get_base_dir() - Global.config_cache.set_value("data", "current_dir", path.get_base_dir()) + var success = OpenSave.save_pxo_file(path, false, zstd) + if success: + Global.open_sprites_dialog.current_dir = path.get_base_dir() + Global.config_cache.set_value("data", "current_dir", path.get_base_dir()) - if is_quitting_on_save: - _quit() + if is_quitting_on_save: + _quit() func _on_SaveSpriteHTML5_confirmed() -> void: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Palette/EditPaletteDialog.gd new/Pixelorama-0.11.3/src/Palette/EditPaletteDialog.gd --- old/Pixelorama-0.11.2/src/Palette/EditPaletteDialog.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Palette/EditPaletteDialog.gd 2023-10-30 14:42:51.000000000 +0100 @@ -5,6 +5,7 @@ signal deleted const DELETE_ACTION := "delete" +const BIN_ACTION := "trash" # Keeps original size of edited palette var origin_width := 0 @@ -20,11 +21,14 @@ onready var size_reduced_warning := $VBoxContainer/SizeReducedWarning onready var already_exists_warning := $VBoxContainer/AlreadyExistsWarning +onready var delete_confirmation := $DeleteConfirmation func _ready() -> void: # Add delete button to edit palette dialog add_button(tr("Delete"), false, DELETE_ACTION) + delete_confirmation.get_ok().text = tr("Delete Permanently") + delete_confirmation.add_button(tr("Move to Trash"), false, BIN_ACTION) func open(current_palette: Palette) -> void: @@ -78,8 +82,20 @@ func _on_EditPaletteDialog_custom_action(action: String) -> void: if action == DELETE_ACTION: + delete_confirmation.popup_centered() + + +func _on_delete_confirmation_confirmed() -> void: + emit_signal("deleted", true) + delete_confirmation.hide() + hide() + + +func _on_delete_confirmation_custom_action(action: String) -> void: + if action == BIN_ACTION: + emit_signal("deleted", false) + delete_confirmation.hide() hide() - emit_signal("deleted") func _on_size_value_changed(_value): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Palette/EditPaletteDialog.tscn new/Pixelorama-0.11.3/src/Palette/EditPaletteDialog.tscn --- old/Pixelorama-0.11.2/src/Palette/EditPaletteDialog.tscn 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Palette/EditPaletteDialog.tscn 2023-10-30 14:42:51.000000000 +0100 @@ -5,6 +5,7 @@ [node name="EditPaletteDialog" type="ConfirmationDialog"] margin_right = 409.0 margin_bottom = 535.0 +rect_min_size = Vector2( 170, 59.5 ) window_title = "Edit Palette" resizable = true script = ExtResource( 1 ) @@ -25,7 +26,7 @@ [node name="PaletteMetadata" type="GridContainer" parent="VBoxContainer"] margin_right = 393.0 -margin_bottom = 188.0 +margin_bottom = 213.0 columns = 2 __meta__ = { "_edit_use_anchors_": false @@ -46,9 +47,9 @@ size_flags_horizontal = 3 [node name="CommentLabel" type="Label" parent="VBoxContainer/PaletteMetadata"] -margin_top = 46.0 +margin_top = 58.0 margin_right = 67.0 -margin_bottom = 60.0 +margin_bottom = 72.0 rect_min_size = Vector2( 50, 0 ) text = "Comment:" @@ -56,21 +57,21 @@ margin_left = 71.0 margin_top = 28.0 margin_right = 393.0 -margin_bottom = 78.0 +margin_bottom = 103.0 rect_min_size = Vector2( 0, 75 ) size_flags_horizontal = 3 [node name="WidthLabel" type="Label" parent="VBoxContainer/PaletteMetadata"] -margin_top = 87.0 +margin_top = 112.0 margin_right = 67.0 -margin_bottom = 101.0 +margin_bottom = 126.0 text = "Width:" [node name="Width" type="SpinBox" parent="VBoxContainer/PaletteMetadata"] margin_left = 71.0 -margin_top = 82.0 +margin_top = 107.0 margin_right = 393.0 -margin_bottom = 106.0 +margin_bottom = 131.0 rect_min_size = Vector2( 0, 24 ) size_flags_horizontal = 3 min_value = 1.0 @@ -79,16 +80,16 @@ align = 2 [node name="HeightLabel" type="Label" parent="VBoxContainer/PaletteMetadata"] -margin_top = 115.0 +margin_top = 140.0 margin_right = 67.0 -margin_bottom = 129.0 +margin_bottom = 154.0 text = "Height:" [node name="Height" type="SpinBox" parent="VBoxContainer/PaletteMetadata"] margin_left = 71.0 -margin_top = 110.0 +margin_top = 135.0 margin_right = 393.0 -margin_bottom = 134.0 +margin_bottom = 159.0 rect_min_size = Vector2( 0, 24 ) size_flags_horizontal = 3 min_value = 1.0 @@ -97,25 +98,25 @@ align = 2 [node name="PathLabel" type="Label" parent="VBoxContainer/PaletteMetadata"] -margin_top = 156.0 +margin_top = 181.0 margin_right = 67.0 -margin_bottom = 170.0 +margin_bottom = 195.0 text = "Path:" [node name="Path" type="TextEdit" parent="VBoxContainer/PaletteMetadata"] margin_left = 71.0 -margin_top = 138.0 +margin_top = 163.0 margin_right = 393.0 -margin_bottom = 188.0 +margin_bottom = 213.0 rect_min_size = Vector2( 0, 50 ) size_flags_horizontal = 3 readonly = true wrap_enabled = true [node name="SizeReducedWarning" type="Label" parent="VBoxContainer"] -margin_top = 192.0 +margin_top = 217.0 margin_right = 393.0 -margin_bottom = 223.0 +margin_bottom = 248.0 custom_colors/font_color = Color( 1, 0.603922, 0.603922, 1 ) text = "Reducing palette size will reset positions of colors. Colors that don't fit in new palette size will be lost!" align = 1 @@ -126,9 +127,9 @@ } [node name="AlreadyExistsWarning" type="Label" parent="VBoxContainer"] -margin_top = 227.0 +margin_top = 252.0 margin_right = 393.0 -margin_bottom = 241.0 +margin_bottom = 266.0 custom_colors/font_color = Color( 1, 0.603922, 0.603922, 1 ) text = "Palette with the same name and path already exists!" align = 1 @@ -138,9 +139,27 @@ "_edit_use_anchors_": false } +[node name="DeleteConfirmation" type="ConfirmationDialog" parent="."] +margin_right = 170.0 +margin_bottom = 60.0 +rect_min_size = Vector2( 170, 59.5 ) + +[node name="Label2" type="Label" parent="DeleteConfirmation"] +anchor_right = 1.0 +anchor_bottom = 1.0 +margin_left = 8.0 +margin_top = 8.0 +margin_right = -8.0 +margin_bottom = -36.0 +text = "Delete Palette?" +align = 1 +valign = 1 + [connection signal="confirmed" from="." to="." method="_on_EditPaletteDialog_confirmed"] [connection signal="custom_action" from="." to="." method="_on_EditPaletteDialog_custom_action"] [connection signal="popup_hide" from="." to="." method="_on_EditPaletteDialog_popup_hide"] [connection signal="text_changed" from="VBoxContainer/PaletteMetadata/Name" to="." method="_on_Name_text_changed"] [connection signal="value_changed" from="VBoxContainer/PaletteMetadata/Width" to="." method="_on_size_value_changed"] [connection signal="value_changed" from="VBoxContainer/PaletteMetadata/Height" to="." method="_on_size_value_changed"] +[connection signal="confirmed" from="DeleteConfirmation" to="." method="_on_delete_confirmation_confirmed"] +[connection signal="custom_action" from="DeleteConfirmation" to="." method="_on_delete_confirmation_custom_action"] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Palette/PalettePanel.gd new/Pixelorama-0.11.3/src/Palette/PalettePanel.gd --- old/Pixelorama-0.11.2/src/Palette/PalettePanel.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Palette/PalettePanel.gd 2023-10-30 14:42:51.000000000 +0100 @@ -204,8 +204,8 @@ Palettes.current_palette_set_color(edited_swatch_index, edited_swatch_color) -func _on_EditPaletteDialog_deleted() -> void: - Palettes.current_palete_delete() +func _on_EditPaletteDialog_deleted(permanent: bool) -> void: + Palettes.current_palete_delete(permanent) setup_palettes_selector() redraw_current_palette() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Palette/PaletteScroll.gd new/Pixelorama-0.11.3/src/Palette/PaletteScroll.gd --- old/Pixelorama-0.11.2/src/Palette/PaletteScroll.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Palette/PaletteScroll.gd 2023-10-30 14:42:51.000000000 +0100 @@ -11,7 +11,7 @@ func _ready() -> void: - # Hide default scollbars + # Hide default scrollbars scroll_container.get_h_scrollbar().rect_scale = Vector2.ZERO scroll_container.get_v_scrollbar().rect_scale = Vector2.ZERO diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/Tools/Draw.gd new/Pixelorama-0.11.3/src/Tools/Draw.gd --- old/Pixelorama-0.11.2/src/Tools/Draw.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/Tools/Draw.gd 2023-10-30 14:42:51.000000000 +0100 @@ -213,7 +213,7 @@ var buffer_size = compressed_data["data"].size() compressed_data["data"] = compressed_data["data"].compress() project.undo_redo.add_do_method( - self, "undo_redo_draw_op", image, compressed_data, buffer_size + Global, "undo_redo_draw_op", image, compressed_data, buffer_size ) image.unlock() for image in _undo_data: @@ -221,7 +221,7 @@ var buffer_size = compressed_data["data"].size() compressed_data["data"] = compressed_data["data"].compress() project.undo_redo.add_undo_method( - self, "undo_redo_draw_op", image, compressed_data, buffer_size + Global, "undo_redo_draw_op", image, compressed_data, buffer_size ) project.undo_redo.add_do_method(Global, "undo_or_redo", false, frame, layer) project.undo_redo.add_undo_method(Global, "undo_or_redo", true, frame, layer) @@ -230,10 +230,6 @@ _undo_data.clear() -func undo_redo_draw_op(image: Object, compressed_image_data: Dictionary, buffer_size: int) -> void: - image["data"]["data"] = compressed_image_data["data"].decompress(buffer_size) - - func draw_tool(position: Vector2) -> void: if Global.mirror_view: # Even brushes are not perfectly centred and are offsetted by 1 px so we add it diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Pixelorama-0.11.2/src/UI/TopMenuContainer/TopMenuContainer.gd new/Pixelorama-0.11.3/src/UI/TopMenuContainer/TopMenuContainer.gd --- old/Pixelorama-0.11.2/src/UI/TopMenuContainer/TopMenuContainer.gd 2023-08-31 10:38:47.000000000 +0200 +++ new/Pixelorama-0.11.3/src/UI/TopMenuContainer/TopMenuContainer.gd 2023-10-30 14:42:51.000000000 +0100 @@ -734,7 +734,7 @@ OS.shell_open(ProjectSettings.globalize_path("user://logs")) Global.HelpMenu.CHANGELOG: OS.shell_open( - "https://github.com/Orama-Interactive/Pixelorama/blob/master/CHANGELOG.md#v0112---2023-08-31" + "https://github.com/Orama-Interactive/Pixelorama/blob/master/CHANGELOG.md#v0113---2023-10-30" ) Global.HelpMenu.ABOUT_PIXELORAMA: _popup_dialog(Global.control.get_node("Dialogs/AboutDialog"))