diff --git a/project.godot b/project.godot index 90068c9c..5ff17ff5 100644 --- a/project.godot +++ b/project.godot @@ -62,39 +62,40 @@ interfer/closed_sectors=Color(0, 0, 0, 1) "config/Кнопка «СВ-И1»"=false "config/Кнопка «СВ-М2»"=false "config/Ограниченный режим"=false -"config/Отладка контроля"=false +"config/Отладка контроля"=true "config/Период опроса состояния АФСП, секунды"="" "config/Период опроса состояния БПО, секунды"="" "config/Скрыть вкладку ЭМС 2"=true "config/Список своих протоколов"="" "config/Текущая версия ПО УАРЭП"="master 3bff1cd Tue Nov 4 15:33:24 2025 +0300" -"config/Цвет кнопки \"Подавление\""="[0.972549021244049,0.0117647061124444,0.423529416322708,1.0]" -"config/Цвет схемы"="[0.972549021244049,0.0117647061124444,0.0274509806185961,1.0]" -"config/Цвет фона схемы"="[0.0941176488995552,0.149019613862038,1.0,1.0]" +"config/Цвет кнопки \"Подавление\""="[0.905882358551025,0.00392156885936856,0.0,1.0]" +"config/Цвет схемы"="[0.905954480171204,0.921875,0.8714599609375,1.0]" +"config/Цвет фона схемы"="[0.258926391601563,0.274618297815323,0.27734375,1.0]" "config/Шаблон адреса сервера карт"="https://tile.openstreetmap.org/{z}/{x}/{y}.png" -"config/навигация"=["*", 60000, true, true] -"config/уарэп-5п28"=["127.0.0.1", 50777] -"config/уарэп-капсрпб"=["127.0.0.1", "127.0.0.1", 42023, 42022, false, true] -"config/уарэп-спт25-1"=["/home/user/tty0", 0, 19200, "N", 8, 1] -"config/уарэп-спт25-2"=["/home/user/tty1", 0, 19200, "N", 8, 1] -"config/уарэп-трасса"=["192.168.11.34", "192.168.11.105", 50200, 10004, false, true] -"config/уарэп-щ3"=["/home/user/tty3", 7, 19200, "N", 8, 1, 50000] -"config/уарэп-эмс"=["10.1.1.52", 50052, false, false] -"config/уарэп-яу07-1в"=["10.1.1.12", 50012, false, false] -"config/уарэп-яу07-1к"=["10.1.1.13", 50013, false, false] -"config/уарэп-яу07-1н"=["10.1.1.11", 50011, false, false] -"config/уарэп-яу07-2в"=["10.1.1.22", 50022, false, false] -"config/уарэп-яу07-2к"=["10.1.1.23", 50023, false, false] -"config/уарэп-яу07-2н"=["10.1.1.21", 50021, false, false] -"config/уарэп-яу07-3в"=["10.1.1.32", 50032, false, false] -"config/уарэп-яу07-3к"=["10.1.1.33", 50033, false, false] -"config/уарэп-яу07-3н"=["10.1.1.31", 50031, false, false] -"config/уарэп-яу07-4в"=["10.1.1.42", 50042, false, false] -"config/уарэп-яу07-4к"=["10.1.1.43", 50043, false, false] -"config/уарэп-яу07-4н"=["10.1.1.41", 50041, false, false] -"config/уарэп-яу07-общий"=["*", 50000, true, true] -"config/уарэп-яу07-частный"=["10.1.1.253", 50253, false, true] +"config/навигация"=["*", 60000.0, true, true] +"config/уарэп-5п28"=["127.0.0.1", 50777.0] +"config/уарэп-капсрпб"=["127.0.0.1", "127.0.0.1", 42023.0, 42022.0, false, true] +"config/уарэп-спт25-1"=["/home/user/tty0", 0.0, 19200.0, "N", 8.0, 1.0] +"config/уарэп-спт25-2"=["/home/user/tty1", 0.0, 19200.0, "N", 8.0, 1.0] +"config/уарэп-трасса"=["192.168.11.34", "192.168.11.105", 50200.0, 10004.0, false, true] +"config/уарэп-щ3"=["/home/user/tty3", 7.0, 19200.0, "N", 8.0, 1.0, 50000.0] +"config/уарэп-эмс"=["10.1.1.52", 50052.0, false, false] +"config/уарэп-яу07-1в"=["10.1.1.12", 50012.0, false, false] +"config/уарэп-яу07-1к"=["10.1.1.13", 50013.0, false, false] +"config/уарэп-яу07-1н"=["10.1.1.11", 50011.0, false, false] +"config/уарэп-яу07-2в"=["10.1.1.22", 50022.0, false, false] +"config/уарэп-яу07-2к"=["10.1.1.23", 50023.0, false, false] +"config/уарэп-яу07-2н"=["10.1.1.21", 50021.0, false, false] +"config/уарэп-яу07-3в"=["10.1.1.32", 50032.0, false, false] +"config/уарэп-яу07-3к"=["10.1.1.33", 50033.0, false, false] +"config/уарэп-яу07-3н"=["10.1.1.31", 50031.0, false, false] +"config/уарэп-яу07-4в"=["10.1.1.42", 50042.0, false, false] +"config/уарэп-яу07-4к"=["10.1.1.43", 50043.0, false, false] +"config/уарэп-яу07-4н"=["10.1.1.41", 50041.0, false, false] +"config/уарэп-яу07-общий"=["*", 50000.0, true, true] +"config/уарэп-яу07-частный"=["10.1.1.253", 50253.0, false, true] config/="[0.215686276555061,0.976470589637756,1.0,1.0]" +"config/Цвет темы программы"=false [autoload] diff --git a/scenes/настройки/настройки.gd b/scenes/настройки/настройки.gd index 8e1db3e1..d02fe1e2 100644 --- a/scenes/настройки/настройки.gd +++ b/scenes/настройки/настройки.gd @@ -90,7 +90,8 @@ const COLOR_THEME = 57 ## Цвет темы var name_to_line_index: = {} ## Для преобразования названия параметра в номер строки var table_color_instance: Node ## Нода цвета кнопки подавления -func on_checkbutton_pressed(i_row: int): on_row_pressed(i_row) +func on_checkbutton_pressed(i_row: int): + on_row_pressed(i_row) ## Вызывается, когда узел впервые попадает в дерево сцены. @@ -107,28 +108,34 @@ func on_external_cu_btn_pressed(btn) -> void: ProjectSettings.set_setting('application/config/Внешнее управление', btn.button_pressed) if btn.button_pressed: signaller.emit_signal('interfer_off_all') + _autosave_now() func on_trassa_btn_pressed(btn) -> void: ProjectSettings.set_setting('application/config/Внешнее указание Трасса', btn.button_pressed) + _autosave_now() func on_vk_pressed(btn) -> void: signaller.emit_signal('kb_pressed', btn.button_pressed) + _autosave_now() func on_gos_pressed(btn) -> void: ProjectSettings.set_setting('application/config/Включить работу по своим целям', btn.button_pressed) + _autosave_now() func on_ems2_pressed(btn) -> void: var state = btn.button_pressed signaller.emit_signal('ems2_hide_pressed', state) + _autosave_now() func on_debag_control_pressed(btn) -> void: var state = btn.button_pressed signaller.emit_signal("debag_control_pressed", state) + _autosave_now() func on_row_pressed(i_row: int): @@ -201,6 +208,7 @@ func setting_tab(): child.connect('pressed', Callable(self, 'on_checkbutton_pressed').bind(i)) var val = ProjectSettings.get_setting('application/config/%s' % param_name, true) child.set_pressed(val) + child.pressed.connect(_autosave_now) else: if settings_data.has(param_name): var val = settings_data[param_name] @@ -209,7 +217,7 @@ func setting_tab(): if edit_node: if edit_node is LineEdit: $scroll_set/table.set_node_control(1, i, true) - edit_node.connect("text_submitted", Callable(self, "_on_line_edit_enter_pressed").bind(i)) + edit_node.focus_exited.connect(_autosave_now) $scroll_set/table.set_node_editable(1, COMMIT, false) $scroll_set/table.set_columns_min_size([600, 950]) $scroll_set/table.set_columns_alignments(ALIGNMENT) @@ -280,6 +288,7 @@ func button_settings(): func on_theme_toggle_pressed(btn: CheckButton) -> void: var is_light = btn.button_pressed ProjectSettings.set_setting("application/config/Цвет темы программы", is_light) + _autosave_now() func _update_theme_colors(): var color_white = $scroll_set/table.get_node2(1, COLOR_WHITE) @@ -292,21 +301,25 @@ func on_color_closed_w(color_white: ColorPickerButton): var col_w = [color_white.color.r, color_white.color.g, color_white.color.b, color_white.color.a] color_white.text = JSON.stringify(col_w) ProjectSettings.set_setting('application/config/%s' % 'Цвет фона схемы', color_white.text) + _autosave_now() func on_color_closed_b(color_black: ColorPickerButton): var col_b = [color_black.color.r, color_black.color.g, color_black.color.b, color_black.color.a] color_black.text = JSON.stringify(col_b) ProjectSettings.set_setting('application/config/%s' % 'Цвет схемы', color_black.text) + _autosave_now() func on_color_closed(color_btn_act: ColorPickerButton): var col = [color_btn_act.color.r, color_btn_act.color.g, color_btn_act.color.b, color_btn_act.color.a] color_btn_act.text = JSON.stringify(col) ProjectSettings.set_setting('application/config/%s' % 'Цвет кнопки \"Подавление\"', color_btn_act.text) + _autosave_now() -func _on_btn_save_settings_pressed(): +func _autosave_now() -> void: + print("AUTOSAVE") var json_data = {} for i in SETTING_TABLE.size(): var parameter = SETTING_TABLE[i][0] @@ -351,10 +364,3 @@ func _on_btn_save_settings_pressed(): if file.store_string(json_string): log.info('Настройки сохранены в файл \"%s\"' % abs_path) file.close() - - -func _on_line_edit_enter_pressed(new_text: String, row_index: int) -> void: - var parameter = SETTING_TABLE[row_index][0] - ProjectSettings.set_setting("application/config/%s" % parameter, new_text) - _on_btn_save_settings_pressed() - get_viewport().gui_release_focus() diff --git a/scenes/настройки/настройки.tscn b/scenes/настройки/настройки.tscn index 950d3e74..88f5604f 100644 --- a/scenes/настройки/настройки.tscn +++ b/scenes/настройки/настройки.tscn @@ -1,21 +1,7 @@ -[gd_scene load_steps=7 format=3 uid="uid://bnptm4rlp60dq"] +[gd_scene load_steps=3 format=3 uid="uid://bnptm4rlp60dq"] [ext_resource type="Script" uid="uid://dabpum5iqxc7y" path="res://scenes/настройки/настройки.gd" id="1_60bya"] [ext_resource type="Script" uid="uid://c5pq0hbrij34d" path="res://table/table.gd" id="2_6sx73"] -[ext_resource type="Texture2D" uid="uid://csnts8f155sf7" path="res://data/save1.png" id="3_dbpks"] - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_pyq6h"] -texture = ExtResource("3_dbpks") -modulate_color = Color(0.8, 0.533333, 0.27451, 1) - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_l5g3r"] -texture = ExtResource("3_dbpks") -expand_margin_left = 20.0 -expand_margin_top = 20.0 -modulate_color = Color(0.8, 0.533333, 0.27451, 1) - -[sub_resource type="StyleBoxTexture" id="StyleBoxTexture_tbxk6"] -texture = ExtResource("3_dbpks") [node name="Настройки" type="Panel"] script = ExtResource("1_60bya") @@ -33,26 +19,8 @@ layout_mode = 0 offset_left = 16.0 offset_top = 44.0 offset_right = 1584.0 -offset_bottom = 988.0 +offset_bottom = 1144.0 [node name="table" type="GridContainer" parent="scroll_set"] layout_mode = 2 script = ExtResource("2_6sx73") - -[node name="btn_save" type="Button" parent="."] -layout_mode = 0 -offset_left = 1523.0 -offset_top = 1057.0 -offset_right = 2035.0 -offset_bottom = 1569.0 -scale = Vector2(0.1, 0.1) -tooltip_text = "Сохранить настройки" -focus_mode = 0 -theme_override_styles/focus = SubResource("StyleBoxTexture_pyq6h") -theme_override_styles/disabled = SubResource("StyleBoxTexture_pyq6h") -theme_override_styles/hover_pressed = SubResource("StyleBoxTexture_pyq6h") -theme_override_styles/hover = SubResource("StyleBoxTexture_pyq6h") -theme_override_styles/pressed = SubResource("StyleBoxTexture_l5g3r") -theme_override_styles/normal = SubResource("StyleBoxTexture_tbxk6") - -[connection signal="pressed" from="btn_save" to="." method="_on_btn_save_settings_pressed"] diff --git a/table/settings-toggle.tscn b/table/settings-toggle.tscn index 7dd0334b..1d5be41b 100644 --- a/table/settings-toggle.tscn +++ b/table/settings-toggle.tscn @@ -1,8 +1,10 @@ -[gd_scene load_steps=5 format=3 uid="uid://5rw652cmnybi"] +[gd_scene load_steps=6 format=3 uid="uid://5rw652cmnybi"] [ext_resource type="Script" uid="uid://bh7mb1aeu1uk6" path="res://table/settings-toggle.gd" id="1_8lkgc"] [ext_resource type="Shader" uid="uid://bw5mmbgeycwua" path="res://shaders/color-invers.gdshader" id="1_anyuq"] +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_il5wc"] + [sub_resource type="ShaderMaterial" id="ShaderMaterial_xxfw6"] shader = ExtResource("1_anyuq") @@ -13,6 +15,7 @@ offset_right = 950.0 offset_bottom = 27.0 theme_override_colors/font_uneditable_color = Color(1, 0.596078, 0.4, 1) theme_override_colors/font_color = Color(1, 0.596078, 0.4, 1) +theme_override_styles/focus = SubResource("StyleBoxEmpty_il5wc") editable = false context_menu_enabled = false shortcut_keys_enabled = false diff --git a/table/ячейка-цвет.tscn b/table/ячейка-цвет.tscn index cb77d86d..8171867e 100644 --- a/table/ячейка-цвет.tscn +++ b/table/ячейка-цвет.tscn @@ -1,11 +1,14 @@ -[gd_scene load_steps=2 format=3 uid="uid://cug5xjbfdm7x7"] +[gd_scene load_steps=3 format=3 uid="uid://cug5xjbfdm7x7"] [ext_resource type="Script" uid="uid://b36c83manfems" path="res://table/ячейка-цвет.gd" id="1_ce8lu"] +[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_ce8lu"] + [node name="ячейка-цвет" type="ColorPickerButton"] anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 +theme_override_styles/focus = SubResource("StyleBoxEmpty_ce8lu") script = ExtResource("1_ce8lu")