From 2c5ece53ddcbc091f0421981d401633b55098635 Mon Sep 17 00:00:00 2001 From: Emmanouil Papadeas Date: Tue, 14 Nov 2023 17:08:09 +0200 Subject: [PATCH] [Undo/Redo] Compress images when replacing cels and merging layers --- src/Autoload/OpenSave.gd | 5 +++-- src/UI/Timeline/AnimationTimeline.gd | 11 +++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Autoload/OpenSave.gd b/src/Autoload/OpenSave.gd index a69982fa4..efb530bcc 100644 --- a/src/Autoload/OpenSave.gd +++ b/src/Autoload/OpenSave.gd @@ -546,8 +546,9 @@ func open_image_at_cel(image: Image, layer_index := 0, frame_index := 0) -> void continue var cel_image := Image.create(project_width, project_height, false, Image.FORMAT_RGBA8) cel_image.blit_rect(image, Rect2i(Vector2i.ZERO, image.get_size()), Vector2i.ZERO) - project.undo_redo.add_do_property(cel, "image", cel_image) - project.undo_redo.add_undo_property(cel, "image", cel.get_image()) + Global.undo_redo_compress_images( + {cel.image: cel_image.data}, {cel.image: cel.image.data}, project + ) project.undo_redo.add_do_property(project, "selected_cels", []) project.undo_redo.add_do_method(project.change_cel.bind(frame_index, layer_index)) diff --git a/src/UI/Timeline/AnimationTimeline.gd b/src/UI/Timeline/AnimationTimeline.gd index 0efcd332b..18e5ae321 100644 --- a/src/UI/Timeline/AnimationTimeline.gd +++ b/src/UI/Timeline/AnimationTimeline.gd @@ -923,15 +923,14 @@ func _on_MergeDownLayer_pressed() -> void: project.undo_redo.add_undo_method( bottom_layer.link_cel.bind(bottom_cel, bottom_cel.link_set) ) - project.undo_redo.add_do_property(bottom_cel, "image_texture", ImageTexture.new()) - project.undo_redo.add_undo_property( - bottom_cel, "image_texture", bottom_cel.image_texture - ) project.undo_redo.add_do_property(bottom_cel, "image", bottom_image) project.undo_redo.add_undo_property(bottom_cel, "image", bottom_cel.image) else: - project.undo_redo.add_do_property(bottom_cel.image, "data", bottom_image.data) - project.undo_redo.add_undo_property(bottom_cel.image, "data", bottom_cel.image.data) + Global.undo_redo_compress_images( + {bottom_cel.image: bottom_image.data}, + {bottom_cel.image: bottom_cel.image.data}, + project + ) project.undo_redo.add_do_method(project.remove_layers.bind([top_layer.index])) project.undo_redo.add_undo_method(