From deb0561e98787896784c7bd413635bc1f3c8bc12 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 31 Jul 2023 13:13:03 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=BA=D0=B0.=20=D0=A2=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D1=82?= =?UTF-8?q?=D0=BE=D0=BB=D1=8C=D0=BA=D0=BE=20=D0=B4=D0=BB=D1=8F=20Godot4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- main.gd | 3 +++ pomehi.gd | 1 - table.gd | 20 +++++++++++--------- threats.gd | 5 +++-- 4 files changed, 17 insertions(+), 12 deletions(-) diff --git a/main.gd b/main.gd index 46154f4..347b9bf 100644 --- a/main.gd +++ b/main.gd @@ -11,6 +11,9 @@ var sock = PacketPeerUDP.new() # Called when the node enters the scene tree for the first time. func _ready(): + call_deferred('_redy_defered') + +func _redy_defered(): sock.bind(Consts.MAIN_ADDR[1], Consts.MAIN_ADDR[0]) sock.set_dest_address(Consts.DST_ADDR[0], Consts.DST_ADDR[1]) Threats.init_treats(header_threads, table_threads, btn_add_threads, btn_del_threads) diff --git a/pomehi.gd b/pomehi.gd index 9dd5c0e..9271b84 100644 --- a/pomehi.gd +++ b/pomehi.gd @@ -106,7 +106,6 @@ func init_pomehi(header, table): # Инициализация вкладк init_table(table, TABLE_COLUMN_SIZES) table.align_to_left_bottom(header, Vector2(0, 2)) table.connect('row_pressed', Callable(self, 'on_row_pressed').bind(table)) - table.set_callbacks(self, 'item_selected', 'on_item_selected', COLUMN_OPT_BTN, [table]) func on_btn_add(table): diff --git a/table.gd b/table.gd index ff774a8..5c00f31 100644 --- a/table.gd +++ b/table.gd @@ -243,11 +243,11 @@ func remove_row(i_row: int): if nodes.has(data_key): nodes.erase(data_key) + if nodes.has(conn_key): var conn = nodes[conn_key] - var callback = conn[0] - var dest_node = conn[1] - node.disconnect('pressed', Callable(dest_node, callback)) + if node.is_connected(conn): + node.disconnect('pressed', conn) nodes.erase(conn_key) @@ -306,17 +306,19 @@ func set_callbacks(dest_node: Node, event_name: String, callback: String, clmns: var rows_count = get_rows_count() for i_row in rows_count: for i_col in clmns: - assert(i_col >= 0 and i_col < columns) #,'ошибка: нет колонки %d' % i_col) + assert(i_col >= 0 and i_col < columns,'ошибка: нет колонки %d' % i_col) var node_key: String = NODE_KEY_FORMAT % [i_row, i_col] var conn_key: String = CONNECTED_KEY_FORMAT % [i_row, i_col] var node = nodes[node_key] if nodes.has(conn_key): var conn = nodes[conn_key] - var prev_callback = conn[0] - var prev_dest_node = conn[1] - node.disconnect(event_name, Callable(prev_dest_node, prev_callback)) - assert (OK == node.connect(event_name, Callable(dest_node, callback).bind([node] + user_data))) - nodes[conn_key] = [callback, dest_node] + if node.is_connected(event_name, conn): + node.disconnect(event_name, conn) + nodes.erase(conn_key) + + var conn = Callable(dest_node, callback).bind([node]) + assert (OK == node.connect(event_name, conn)) + nodes[conn_key] = conn func set_rows_text(rows: Array) -> void: diff --git a/threats.gd b/threats.gd index 96c61d0..c4c6501 100644 --- a/threats.gd +++ b/threats.gd @@ -273,8 +273,8 @@ func init_treats(header, table, btn_add, btn_del): # Инициализа g_table = table table.align_to_left_bottom(header, Vector2(0, 2)) table.connect('row_pressed', Callable(self, 'on_row_pressed').bind(table)) - table.set_callbacks(self, 'text_submitted', 'on_edit_entry', TABLE_ENTRY_COLUMNS, []) - table.set_callbacks(self, 'item_selected', 'on_item_selected', COLUMN_OPT_BTN, []) + #table.set_callbacks(self, 'text_submitted', 'on_edit_entry', TABLE_ENTRY_COLUMNS, []) + #table.set_callbacks(self, 'item_selected', 'on_item_selected', COLUMN_OPT_BTN, []) btn_add.connect('button_up', Callable(self, 'on_btn_add').bind(table)) btn_del.connect('button_up', Callable(self, 'on_btn_del').bind(table)) @@ -402,5 +402,6 @@ func get_threats_data(): var data = treats[key].get_data() data_to_json['mis'].append(data) var json = JSON.new().stringify(data_to_json) + print_debug(json) var pac = json.to_utf8_buffer() return pac