diff --git a/scenes/эмс-тг/эмс-тг.gd b/scenes/эмс-тг/эмс-тг.gd index 6a363daa..152038bf 100644 --- a/scenes/эмс-тг/эмс-тг.gd +++ b/scenes/эмс-тг/эмс-тг.gd @@ -32,6 +32,9 @@ var yems_data_cmd: Dictionary[StringName, Dictionary] ## Команды ## Порядок следования кластеров в таблице. ## {имя_устройства: { имя_кластера: индекс_в_таблице } } var cnames_table: Dictionary[StringName, Dictionary] +## Порядок следования кластеров на шкале. +## {имя_устройства: { индекс_на_шкале } } +var pnames_scale: Dictionary[StringName, Dictionary] #endregion func _ready() -> void: @@ -41,8 +44,8 @@ func _ready() -> void: name_to_index[nm] = i yems_data_info[nm] = {} cnames_table[nm] = {} - var yems_scales = get_tree().get_nodes_in_group('ряд-шкалы') - for node in yems_scales: + var btns_scales = get_tree().get_nodes_in_group('кнопки-шкалы') + for node in btns_scales: var nm = node.get_meta('unit_name') name_to_scale[nm] = node node.connect('pressed', map_yems_data_to_table.bind(nm)) @@ -81,7 +84,6 @@ func map_yems_data_to_table(nm: StringName): if not unit_data: return # Данных ещё нет var ctable: GDTable = $'таблица/сетка' var indexes: = cnames_table[nm] # Идексы строк таблицы для кластеров заданного устройства - var rows_changed: = false # Обойти все кластеры устройства for cls in unit_data.mcls: # Строка для заполнения @@ -95,8 +97,18 @@ func map_yems_data_to_table(nm: StringName): else: # Создать новый ряд ctable.add_row(table_cell_row) - rows_changed = true # Записать индекс строки в таблице для кластера - indexes[cls.cname] = indexes.size() - if rows_changed: - ctable.set_rows_min_hight(table_rows_hight) + var i_row: = indexes.size() + indexes[cls.cname] = i_row + # Установка высоты строки + ctable.set_row_min_hight(i_row, table_rows_hight) + + +func map_yems_data_to_scale(nm: StringName): + var unit_data = yems_data_info.get(nm) + if not unit_data: return # Данных ещё нет + var ctable: GDTable = $'таблица/сетка' + var indexes: = cnames_table[nm] # Идексы строк таблицы для кластеров заданного устройства + # Обойти все кластеры устройства + for cls in unit_data.mcls: + pass diff --git a/scenes/эмс-тг/эмс-тг.tscn b/scenes/эмс-тг/эмс-тг.tscn index 79e5e991..718e3e2d 100644 --- a/scenes/эмс-тг/эмс-тг.tscn +++ b/scenes/эмс-тг/эмс-тг.tscn @@ -88,7 +88,7 @@ offset_bottom = 771.0 scale = Vector2(0.95, 0.95) columns = 2 -[node name="label0" type="Button" parent="шкала" groups=["ряд-шкалы"]] +[node name="label0" type="Button" parent="шкала" groups=["кнопки-шкалы"]] layout_mode = 2 size_flags_vertical = 7 toggle_mode = true @@ -115,7 +115,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 image_file = "uid://c6etralq2tvxg" -[node name="label1" type="Button" parent="шкала" groups=["ряд-шкалы"]] +[node name="label1" type="Button" parent="шкала" groups=["кнопки-шкалы"]] layout_mode = 2 size_flags_horizontal = 5 size_flags_vertical = 7 @@ -142,7 +142,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 image_file = "uid://c6etralq2tvxg" -[node name="label2" type="Button" parent="шкала" groups=["ряд-шкалы"]] +[node name="label2" type="Button" parent="шкала" groups=["кнопки-шкалы"]] layout_mode = 2 size_flags_horizontal = 5 size_flags_vertical = 7 @@ -171,7 +171,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 image_file = "uid://c6etralq2tvxg" -[node name="label3" type="Button" parent="шкала" groups=["ряд-шкалы"]] +[node name="label3" type="Button" parent="шкала" groups=["кнопки-шкалы"]] layout_mode = 2 size_flags_horizontal = 5 size_flags_vertical = 7 @@ -197,7 +197,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 image_file = "uid://c6etralq2tvxg" -[node name="label4" type="Button" parent="шкала" groups=["ряд-шкалы"]] +[node name="label4" type="Button" parent="шкала" groups=["кнопки-шкалы"]] layout_mode = 2 size_flags_horizontal = 5 size_flags_vertical = 7 @@ -225,7 +225,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 image_file = "uid://c6etralq2tvxg" -[node name="label5" type="Button" parent="шкала" groups=["ряд-шкалы"]] +[node name="label5" type="Button" parent="шкала" groups=["кнопки-шкалы"]] layout_mode = 2 size_flags_horizontal = 5 size_flags_vertical = 7 @@ -251,7 +251,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 image_file = "uid://c6etralq2tvxg" -[node name="label6" type="Button" parent="шкала" groups=["ряд-шкалы"]] +[node name="label6" type="Button" parent="шкала" groups=["кнопки-шкалы"]] layout_mode = 2 size_flags_horizontal = 5 size_flags_vertical = 7 @@ -279,7 +279,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 image_file = "uid://c6etralq2tvxg" -[node name="label7" type="Button" parent="шкала" groups=["ряд-шкалы"]] +[node name="label7" type="Button" parent="шкала" groups=["кнопки-шкалы"]] layout_mode = 2 size_flags_horizontal = 5 size_flags_vertical = 7 diff --git a/table/table.gd b/table/table.gd index 28f1ab26..f60f9e67 100644 --- a/table/table.gd +++ b/table/table.gd @@ -609,15 +609,21 @@ func set_nodes_min_size(i_row: int, sizes: Array, key_format: String = NODE_KEY_ node.set_deferred('size.x', sizes[i_col]) -## [param i_row] - Индекс ряда. +## [param hight] - Высота ряда. func set_rows_min_hight(hight: int) -> void: var rows_count = get_rows_count() for i_row in rows_count: - for i_col in columns: - var key: = get_node_key(NODE_KEY_FORMAT, i_col, i_row) - var node = nodes[key] - node.custom_minimum_size.y = hight - node.set_deferred('size.y', hight) + set_row_min_hight(i_row, hight) + + +## [param i_row] - Индекс ряда. +## [param hight] - Высота ряда. +func set_row_min_hight(i_row: int, hight: int) -> void: + for i_col in columns: + var key: = get_node_key(NODE_KEY_FORMAT, i_col, i_row) + var node = nodes[key] + node.custom_minimum_size.y = hight + node.set_deferred('size.y', hight) func set_header_min_hight(hight: int):