Доработка работы с ecms в контроле + форматирование пробелов

This commit is contained in:
TotMaxim
2025-11-25 12:31:45 +03:00
parent 5eb44fd20a
commit bfb9d3a4e8
11 changed files with 234 additions and 207 deletions

View File

@@ -301,6 +301,16 @@ 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("Удален невалидный селектор: ", key)
##
func clear_rows_selected():
var rows_count: = get_rows_count()
@@ -323,7 +333,6 @@ 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:
@@ -331,6 +340,7 @@ 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]