From 9eb9873c649b6e858dc7172267d02e193ef8f5f8 Mon Sep 17 00:00:00 2001 From: lepshiy Date: Thu, 22 Jan 2026 10:57:06 +0300 Subject: [PATCH 1/4] =?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=A1=D0=B2=D0=B5=D1=82=D0=BB=D0=B0=D1=8F=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BC=D0=B0,=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BA?= =?UTF-8?q?=D1=80=D0=B0=D1=81=20=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B2=20table.gd.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- table/table.gd | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/table/table.gd b/table/table.gd index 972acd64..22f36b9f 100644 --- a/table/table.gd +++ b/table/table.gd @@ -400,6 +400,7 @@ func add_row(row_types: Array) -> void: var conn = Callable(self, '_on_focus_entered').bind(node) node.connect('focus_entered', conn) set_node_meta(i_col, i_row, 'callable_focus_entered', conn) + call_deferred("apply_theme") func _set_size_x_defered(node: Control, val: Vector2): @@ -410,6 +411,7 @@ func _set_size_x_defered(node: Control, val: Vector2): func _on_focus_entered(node): var indexes = get_key_indexes(node.name) emit_signal('row_pressed', indexes[1]) + ProjectSettings.connect('settings_changed', apply_theme) ## @@ -519,6 +521,7 @@ func rehash(): next_index(i_slct) nodes.clear() nodes.merge(nodes_copy) + call_deferred('apply_theme') ## Удаляет все строки таблицы @@ -714,3 +717,9 @@ func get_row_rect(i_row: int, rect: Array, key_format: String = NODE_KEY_FORMAT) rect[1] = cell0.position.y + scroll_adj.y rect[2] = (cell1.position.x - cell0.position.x) + cell1.size.x rect[3] = cell0.size.y + + +func apply_theme(): + for node in nodes.values(): + if node is LineEdit and node.has_method('apply_colors'): + node.apply_colors() From 36999bf3c1da687cea872f2662c24ca618b51f83 Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 26 Jan 2026 14:09:48 +0300 Subject: [PATCH 2/4] =?UTF-8?q?=D0=A7=D0=B8=D1=81=D1=82=D0=BA=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- table/editl.gd | 19 ------------------- table/editl.gd.uid | 1 - table/editl.tscn | 10 ---------- 3 files changed, 30 deletions(-) delete mode 100644 table/editl.gd delete mode 100644 table/editl.gd.uid delete mode 100644 table/editl.tscn diff --git a/table/editl.gd b/table/editl.gd deleted file mode 100644 index 42721bce..00000000 --- a/table/editl.gd +++ /dev/null @@ -1,19 +0,0 @@ -extends LineEdit - - -func _enter_tree() -> void: - ProjectSettings.connect('settings_changed', apply_colors) - - -func apply_colors(): - var is_light: bool = ProjectSettings.get_setting('application/config/Цвет темы программы', false) - var style = get_theme_stylebox('read_only').duplicate() - if is_light: - style.bg_color = Color.GRAY - add_theme_color_override('font_color_readonly', Color.BLACK) - add_theme_color_override('font_color_placeholder', Color(0, 0, 0, 0.5)) - else: - style.bg_color = Color(0.12, 0.12, 0.12) - add_theme_color_override('font_color_readonly', Color('#D8731A')) # тёмно-оранжевый - add_theme_color_override('font_color_placeholder', Color(1, 1, 1, 0.5)) - add_theme_stylebox_override('read_only', style) diff --git a/table/editl.gd.uid b/table/editl.gd.uid deleted file mode 100644 index a2f655c3..00000000 --- a/table/editl.gd.uid +++ /dev/null @@ -1 +0,0 @@ -uid://bky7xlpaj21sj diff --git a/table/editl.tscn b/table/editl.tscn deleted file mode 100644 index 44fd2976..00000000 --- a/table/editl.tscn +++ /dev/null @@ -1,10 +0,0 @@ -[gd_scene load_steps=2 format=3 uid="uid://bvbvtgwps54yr"] - -[ext_resource type="Script" uid="uid://bky7xlpaj21sj" path="res://table/editl.gd" id="1_xd53c"] - -[node name="Editl" type="LineEdit"] -offset_right = 59.875 -offset_bottom = 33.0 -caret_blink = true -caret_blink_interval = 0.5 -script = ExtResource("1_xd53c") From 484ca3f3209548f944daab210b3852c99385122b Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 26 Jan 2026 14:14:54 +0300 Subject: [PATCH 3/4] =?UTF-8?q?WIP=20=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5.=20=D0=9F=D1=80=D0=BE=D0=B8?= =?UTF-8?q?=D0=B7=D0=B2=D0=BE=D0=B4=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/настройки/настройки.gd | 10 +++++----- table/lable.gd | 4 ++++ table/node.gd | 4 ++++ table/set-toggle.gd | 4 ++++ table/settings-toggle.gd | 4 ++++ table/table.gd | 11 ++--------- table/ячейка-2.gd | 7 ++++--- table/ячейка-цвет.gd | 4 ++++ 8 files changed, 31 insertions(+), 17 deletions(-) diff --git a/scenes/настройки/настройки.gd b/scenes/настройки/настройки.gd index be29b475..c7fa496e 100644 --- a/scenes/настройки/настройки.gd +++ b/scenes/настройки/настройки.gd @@ -97,11 +97,11 @@ func on_checkbutton_pressed(i_row: int): ## Вызывается, когда узел впервые попадает в дерево сцены. func _ready() -> void: setting_tab() - if not OS.get_cmdline_args().has('++ограниченный'): - return - $Label2.text = 'Текущий режим доступа: ограниченный' - for node in $GridContainer.get_children().filter(func(b): return b is Button): - node.disabled = true + if OS.get_cmdline_args().has('++ограниченный'): + $Label2.text = 'Текущий режим доступа: ограниченный' + for node in $GridContainer.get_children().filter(func(b): return b is Button): + node.disabled = true + ProjectSettings.emit_signal('settings_changed') func on_external_cu_btn_pressed(btn) -> void: diff --git a/table/lable.gd b/table/lable.gd index b71183bd..4d8c7696 100644 --- a/table/lable.gd +++ b/table/lable.gd @@ -5,6 +5,10 @@ func _enter_tree() -> void: ProjectSettings.connect('settings_changed', apply_colors) +func _exit_tree() -> void: + ProjectSettings.disconnect('settings_changed', apply_colors) + + func apply_colors(): var is_light: bool = ProjectSettings.get_setting('application/config/Цвет темы программы', false) var style = get_theme_stylebox('normal').duplicate() diff --git a/table/node.gd b/table/node.gd index 42721bce..e0a9c2da 100644 --- a/table/node.gd +++ b/table/node.gd @@ -5,6 +5,10 @@ func _enter_tree() -> void: ProjectSettings.connect('settings_changed', apply_colors) +func _exit_tree() -> void: + ProjectSettings.disconnect('settings_changed', apply_colors) + + func apply_colors(): var is_light: bool = ProjectSettings.get_setting('application/config/Цвет темы программы', false) var style = get_theme_stylebox('read_only').duplicate() diff --git a/table/set-toggle.gd b/table/set-toggle.gd index ae96dd00..ce6c8e2b 100644 --- a/table/set-toggle.gd +++ b/table/set-toggle.gd @@ -7,6 +7,10 @@ func _enter_tree() -> void: ProjectSettings.connect('settings_changed', on_setting_changed) +func _exit_tree() -> void: + ProjectSettings.disconnect('settings_changed', on_setting_changed) + + func on_setting_changed(): var cb = $CheckButton checkbutton_material = cb.material diff --git a/table/settings-toggle.gd b/table/settings-toggle.gd index ae96dd00..53db3e5c 100644 --- a/table/settings-toggle.gd +++ b/table/settings-toggle.gd @@ -7,6 +7,10 @@ func _enter_tree() -> void: ProjectSettings.connect('settings_changed', on_setting_changed) +func _exit_tree() -> void: + ProjectSettings.disconnect('settings_changed', apply_colors) + + func on_setting_changed(): var cb = $CheckButton checkbutton_material = cb.material diff --git a/table/table.gd b/table/table.gd index 22f36b9f..ce2019c4 100644 --- a/table/table.gd +++ b/table/table.gd @@ -392,6 +392,8 @@ func add_row(row_types: Array) -> void: _assert(node.get('name') is StringName, 'экземпляр не имеет поля \"name\"') var node_key: String = NODE_KEY_FORMAT % [i_row, i_col] node.name = node_key + if node.has_method('apply_colors'): + node.apply_colors() add_child(node) if allow_set_size: node.custom_minimum_size.x = columns_min_size[i_col] @@ -400,7 +402,6 @@ func add_row(row_types: Array) -> void: var conn = Callable(self, '_on_focus_entered').bind(node) node.connect('focus_entered', conn) set_node_meta(i_col, i_row, 'callable_focus_entered', conn) - call_deferred("apply_theme") func _set_size_x_defered(node: Control, val: Vector2): @@ -411,7 +412,6 @@ func _set_size_x_defered(node: Control, val: Vector2): func _on_focus_entered(node): var indexes = get_key_indexes(node.name) emit_signal('row_pressed', indexes[1]) - ProjectSettings.connect('settings_changed', apply_theme) ## @@ -521,7 +521,6 @@ func rehash(): next_index(i_slct) nodes.clear() nodes.merge(nodes_copy) - call_deferred('apply_theme') ## Удаляет все строки таблицы @@ -717,9 +716,3 @@ func get_row_rect(i_row: int, rect: Array, key_format: String = NODE_KEY_FORMAT) rect[1] = cell0.position.y + scroll_adj.y rect[2] = (cell1.position.x - cell0.position.x) + cell1.size.x rect[3] = cell0.size.y - - -func apply_theme(): - for node in nodes.values(): - if node is LineEdit and node.has_method('apply_colors'): - node.apply_colors() diff --git a/table/ячейка-2.gd b/table/ячейка-2.gd index 9fd16e9f..75345cef 100644 --- a/table/ячейка-2.gd +++ b/table/ячейка-2.gd @@ -1,8 +1,9 @@ extends LineEdit - -func _enter_tree() -> void: - ProjectSettings.connect('settings_changed', apply_colors) +# Вызывается +func _enter_tree() -> void: ProjectSettings.connect('settings_changed', apply_colors) +func _exit_tree() -> void: ProjectSettings.disconnect('settings_changed', apply_colors) +func _ready() -> void: print_debug() func apply_colors(): diff --git a/table/ячейка-цвет.gd b/table/ячейка-цвет.gd index ce7ddaed..ee345528 100644 --- a/table/ячейка-цвет.gd +++ b/table/ячейка-цвет.gd @@ -3,6 +3,10 @@ extends ColorPickerButton func _enter_tree() -> void: ProjectSettings.connect('settings_changed', apply_colors) + + +func _exit_tree() -> void: + ProjectSettings.disconnect('settings_changed', apply_colors) func apply_colors(): From 1bac9dc496400177a1ba811aa54d7716b99575bf Mon Sep 17 00:00:00 2001 From: sasha80 Date: Mon, 26 Jan 2026 15:10:06 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=A0=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scenes/настройки/настройки.gd | 1 + 1 file changed, 1 insertion(+) diff --git a/scenes/настройки/настройки.gd b/scenes/настройки/настройки.gd index c7fa496e..d6ade08a 100644 --- a/scenes/настройки/настройки.gd +++ b/scenes/настройки/настройки.gd @@ -289,6 +289,7 @@ func on_theme_toggle_pressed(btn: CheckButton) -> void: ProjectSettings.set_setting('application/config/Цвет темы программы', is_light) _autosave_now() + func _update_theme_colors(): var color_white = $scroll_set/table.get_node2(1, COLOR_WHITE) var color_black = $scroll_set/table.get_node2(1, COLOR_BLACK)