From 07b62c9fd8a4992f188ee9db7d2c7b51a198a6fa Mon Sep 17 00:00:00 2001 From: OverloadedOrama <35376950+OverloadedOrama@users.noreply.github.com> Date: Wed, 18 Mar 2020 02:57:23 +0200 Subject: [PATCH] Added "Unlink Cell" to FrameButton's PopupMenu (appears on right click) Behavior may be changed because it's not set to work with UndoRedo. Not sure if it should, yet. --- Prefabs/FrameButton.tscn | 5 ++++- Scripts/FrameButton.gd | 10 +++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Prefabs/FrameButton.tscn b/Prefabs/FrameButton.tscn index 33443f4f1..37d5eb747 100644 --- a/Prefabs/FrameButton.tscn +++ b/Prefabs/FrameButton.tscn @@ -27,12 +27,15 @@ size_flags_horizontal = 0 size_flags_vertical = 0 expand = true stretch_mode = 6 +__meta__ = { +"_edit_use_anchors_": false +} [node name="PopupMenu" type="PopupMenu" parent="."] margin_right = 20.0 margin_bottom = 20.0 mouse_default_cursor_shape = 2 -items = [ "Remove Frame", null, 0, false, true, -1, 0, null, "", false, "Clone Frame", null, 0, false, false, -1, 0, null, "", false, "Move Left", null, 0, false, true, -1, 0, null, "", false, "Move Right", null, 0, false, true, -1, 0, null, "", false ] +items = [ "Remove Frame", null, 0, false, true, -1, 0, null, "", false, "Clone Frame", null, 0, false, false, -1, 0, null, "", false, "Move Left", null, 0, false, true, -1, 0, null, "", false, "Move Right", null, 0, false, true, -1, 0, null, "", false, "Unlink Cell", null, 0, false, true, 4, 0, null, "", false ] [node name="LinkedIndicator" type="Polygon2D" parent="."] visible = false diff --git a/Scripts/FrameButton.gd b/Scripts/FrameButton.gd index 7c457479c..e24b38f90 100644 --- a/Scripts/FrameButton.gd +++ b/Scripts/FrameButton.gd @@ -7,8 +7,12 @@ onready var popup_menu := $PopupMenu func _ready() -> void: hint_tooltip = "Frame: %s, Layer: %s" % [frame, layer] - if frame in Global.layers[layer][5]: + if Global.canvases[frame] in Global.layers[layer][5]: get_node("LinkedIndicator").visible = true + popup_menu.set_item_disabled(4, false) # Unlink cell + else: + get_node("LinkedIndicator").visible = false + popup_menu.set_item_disabled(4, true) # Unlink cell func _on_FrameButton_pressed() -> void: if Input.is_action_just_released("left_mouse"): @@ -83,6 +87,10 @@ func _on_PopupMenu_id_pressed(ID : int) -> void: change_frame_order(-1) 3: # Move Right change_frame_order(1) + 4: # Unlink Cell + var cell_index : int = Global.layers[layer][5].find(Global.canvases[frame]) + Global.layers[layer][5].remove(cell_index) + _ready() func remove_frame() -> void: var canvas : Canvas = Global.canvases[frame]