Откат изменений

This commit is contained in:
TotMaxim
2025-11-26 14:45:21 +03:00
parent e6ea873294
commit 37eb6f75a4
2 changed files with 5 additions and 23 deletions

View File

@@ -119,13 +119,9 @@ func on_interfer_new(ecm, table_index):
$table.set_row_editable(i_row, false)
$table.set_node_user_data(0, i_row, ecm)
table_index[ecm.ispp] = i_row
$table.cleanup_invalid_selectors()
# Будем надеяться, что отложенные вызовы производятся в том же порядке
var selected_rows = []
$table.get_selected_rows(selected_rows)
for old_row in selected_rows:
$table.set_row_selected(old_row, false)
$table.set_row_selected(i_row, true)
$table.call_deferred('clear_rows_selected')
$table.call_deferred('set_row_selected', i_row, true)
if not interfer.auto_enabled:
signaller.emit_signal('interfer_selected', ecm)

View File

@@ -301,16 +301,6 @@ func default_selector_size_proc(i_row: int, rect: Array) -> void:
rect[3] += node_gap.y
## Очищает в словаре nodes от невалидных ссылок
func cleanup_invalid_selectors():
var keys_to_remove = []
for key in nodes:
if key.begins_with(SLCT_PREFIX) and not is_instance_valid(nodes[key]):
keys_to_remove.append(key)
for key in keys_to_remove:
nodes.erase(key)
print_debug("Удален невалидный селектор: ", key)
##
func clear_rows_selected():
var rows_count: = get_rows_count()
@@ -333,6 +323,7 @@ func _set_row_selected(i_row: int, selected: bool = true) -> void:
return
if nodes.has(selector_key) and (not selected):
var selector = nodes[selector_key]
nodes.erase(selector_key)
if is_instance_valid(selector):
var prnt = selector.get_parent_control()
if prnt:
@@ -340,7 +331,6 @@ func _set_row_selected(i_row: int, selected: bool = true) -> void:
selector.queue_free()
else:
push_warning('обращение к удалённому элементу \"%s\"' % selector_key)
nodes.erase(selector_key)
elif (not nodes.has(selector_key)) and selected:
var selector = ScnSelector.instantiate()
var rect: = [0, 0, 0, 0]
@@ -459,7 +449,6 @@ func remove_row(i_row: int):
if nodes.has(sel_key):
var selector = nodes[sel_key]
if selector == null: return
var prnt = selector.get_parent()
prnt.remove_child(selector)
selector.queue_free()
@@ -496,11 +485,8 @@ func next_index(indexes: Array) -> void:
func swap_nodes(nodes_copy, node_key_format, i0, i1) -> void:
var key0 = node_key_format % [i0.y, i0.x]
var key1 = node_key_format % [i1.y, i1.x]
if is_instance_valid(nodes[key0]):
nodes_copy[key1] = nodes[key0]
nodes_copy[key1].name = key1
else:
print_debug("Ошибка: нод ", key0, " был освобожден")
nodes_copy[key1] = nodes[key0]
nodes_copy[key1].name = key1
## Переназначает ключи в соответствии с размерами таблицы.