From 4f1b31cb265f10f10ae5aa540e806f325c599a28 Mon Sep 17 00:00:00 2001 From: don-tnowe <67479453+don-tnowe@users.noreply.github.com> Date: Fri, 23 Sep 2022 22:16:13 +0300 Subject: [PATCH] Fix inspector no undo, minor array editing improvements --- addons/resources_speadsheet_view/editor_view.gd | 14 +++----------- .../typed_editors/dock_array.gd | 9 +++++---- .../typed_editors/dock_array.tscn | 9 ++------- 3 files changed, 10 insertions(+), 22 deletions(-) diff --git a/addons/resources_speadsheet_view/editor_view.gd b/addons/resources_speadsheet_view/editor_view.gd index 46983d6..2d0b1ce 100644 --- a/addons/resources_speadsheet_view/editor_view.gd +++ b/addons/resources_speadsheet_view/editor_view.gd @@ -379,7 +379,7 @@ func _try_open_docks(cell : Control): x.get_node(x.path_property_name).text = columns[column_index] -func set_edited_cells_values(new_cell_values : Array, update_whole_row : bool = false): +func set_edited_cells_values(new_cell_values : Array): var column = _get_cell_column(edited_cells[0]) var edited_cells_resources = _get_edited_cells_resources() @@ -400,11 +400,6 @@ func set_edited_cells_values(new_cell_values : Array, update_whole_row : bool = self, "_update_selected_cells_text" ) - for i in new_cell_values.size(): - column_editors[column].set_value(edited_cells[i], new_cell_values[i]) - if update_whole_row: - _update_row(_get_cell_row(edited_cells[i]) + 1) - editor_plugin.undo_redo.add_do_method( self, "_update_resources", @@ -636,12 +631,8 @@ func set_cell(cell, value): func _update_resources(update_rows : Array, update_cells : Array, update_column : int, values : Array): - var cells := get_node(path_table_root).get_children() for i in update_rows.size(): - if undo_redo_version > editor_plugin.undo_redo.get_version(): - # Set cell values, but only when undoing/redoing (set_cell() normally fills these in) - column_editors[update_column].set_value(update_cells[i], values[i]) - + column_editors[update_column].set_value(update_cells[i], values[i]) values[i] = _try_convert(values[i], column_types[update_column]) if values[i] == null: continue @@ -709,6 +700,7 @@ func _on_ProcessExpr_text_entered(new_text : String): func _on_inspector_property_edited(property : String): if !visible: return if inspector_resource == null: return + if undo_redo_version > editor_plugin.undo_redo.get_version(): return var value = inspector_resource.get(property) var values = [] diff --git a/addons/resources_speadsheet_view/typed_editors/dock_array.gd b/addons/resources_speadsheet_view/typed_editors/dock_array.gd index 4d06b5d..e415e82 100644 --- a/addons/resources_speadsheet_view/typed_editors/dock_array.gd +++ b/addons/resources_speadsheet_view/typed_editors/dock_array.gd @@ -11,10 +11,11 @@ var _stored_type := 0 func _ready(): - recent_container.get_child(1).add_item("Add") - recent_container.get_child(1).add_item("Erase") - recent_container.get_child(1).add_item("Delete From Recent") - recent_container.get_child(1).select(0) + if recent_container.get_child(1).get_item_count() < 3: + recent_container.get_child(1).add_item("Add") + recent_container.get_child(1).add_item("Erase") + recent_container.get_child(1).add_item("Delete From Recent") + recent_container.get_child(1).select(0) func try_edit_value(value, type, propert_hint) -> bool: diff --git a/addons/resources_speadsheet_view/typed_editors/dock_array.tscn b/addons/resources_speadsheet_view/typed_editors/dock_array.tscn index 51f0b73..f54f51b 100644 --- a/addons/resources_speadsheet_view/typed_editors/dock_array.tscn +++ b/addons/resources_speadsheet_view/typed_editors/dock_array.tscn @@ -73,18 +73,13 @@ margin_right = 320.0 margin_bottom = 52.0 size_flags_horizontal = 3 -[node name="Panel" type="Panel" parent="HBoxContainer/HBoxContainer/Panel"] -margin_right = 320.0 -margin_bottom = 52.0 - -[node name="Label" type="Label" parent="HBoxContainer/HBoxContainer/Panel"] +[node name="Label" type="TextEdit" parent="HBoxContainer/HBoxContainer/Panel"] margin_right = 320.0 margin_bottom = 52.0 rect_min_size = Vector2( 128, 0 ) size_flags_vertical = 5 text = "[]" -align = 2 -autowrap = true +readonly = true [node name="VSeparator2" type="VSeparator" parent="HBoxContainer/HBoxContainer"] margin_left = 324.0