UndoRedo vol 6 - Scale Image now has undo/redo

This commit is contained in:
OverloadedOrama 2019-11-04 21:54:39 +02:00
parent 4ba2f3280a
commit 18d109f959
2 changed files with 28 additions and 14 deletions

View file

@ -497,15 +497,21 @@ func _on_ScaleImage_confirmed() -> void:
var width = $ScaleImage/VBoxContainer/WidthCont/WidthValue.value
var height = $ScaleImage/VBoxContainer/HeightCont/HeightValue.value
var interpolation = $ScaleImage/VBoxContainer/InterpolationContainer/InterpolationType.selected
for i in range(Global.canvas.layers.size() - 1, -1, -1):
var sprite := Image.new()
sprite = Global.canvas.layers[i][1].get_data()
sprite.resize(width, height, interpolation)
Global.canvas.layers[i][0] = sprite
Global.canvas.layers[i][0].lock()
Global.canvas.update_texture(i)
Global.undos += 1
Global.undo_redo.create_action("Scale")
Global.undo_redo.add_do_property(Global.canvas, "size", Vector2(width, height).floor())
Global.canvas.size = Vector2(width, height).floor()
for i in range(Global.canvas.layers.size() - 1, -1, -1):
var sprite : Image = Global.canvas.layers[i][1].get_data()
sprite.resize(width, height, interpolation)
Global.undo_redo.add_do_property(Global.canvas.layers[i][0], "data", sprite.data)
Global.undo_redo.add_undo_property(Global.canvas.layers[i][0], "data", Global.canvas.layers[i][0].data)
Global.canvas.layers[i][0].lock()
Global.undo_redo.add_undo_property(Global.canvas, "size", Global.canvas.size)
Global.undo_redo.add_undo_method(Global, "undo", Global.canvas)
Global.undo_redo.add_do_method(Global, "redo", Global.canvas)
Global.undo_redo.commit_action()
Global.canvas.camera_zoom()
func add_layer(is_new := true) -> void: