Доработка. Таблица настроек

This commit is contained in:
lepshiy
2025-03-28 11:28:16 +03:00
parent 6f293cdb3e
commit 280aeace96
6 changed files with 79 additions and 65 deletions

View File

@@ -3,15 +3,15 @@
importer="texture"
type="CompressedTexture2D"
uid="uid://csnts8f155sf7"
path="res://.godot/imported/save1.png-71614b438670d8c00484426836e4048f.ctex"
path="res://.godot/imported/save1.png-fe0ea2e877c55fd87cac57974b80e102.ctex"
metadata={
"vram_texture": false
}
[deps]
source_file="res://scenes/настройки/save1.png"
dest_files=["res://.godot/imported/save1.png-71614b438670d8c00484426836e4048f.ctex"]
source_file="res://data/save1.png"
dest_files=["res://.godot/imported/save1.png-fe0ea2e877c55fd87cac57974b80e102.ctex"]
[params]

View File

@@ -38,7 +38,7 @@ func init_table():
$table.set_node_alligment(0, MOD_ROW_INDEX, HORIZONTAL_ALIGNMENT_LEFT)
$table.set_node_editable(0, MOD_ROW_INDEX, false)
var taggle_node = $table.get_node2(1, MOD_ROW_INDEX)
var taggle_btn = taggle_node.get_children()[1]
var taggle_btn = taggle_node.get_children()[0]
taggle_btn.connect('pressed', on_taggle_btn.bind(taggle_btn))
taggle_btn.disabled = true
$table.set_columns_min_size(TABLE_COLUMN_SIZE)

View File

@@ -1,34 +1,34 @@
class_name setting extends Panel
const TableHeader = preload('res://table/header.tscn')
const TableTaggle = preload('res://table/settings-toggle.tscn')
const TableToggle = preload('res://table/settings-toggle.tscn')
const TableEdit = preload('res://table/ячейка-2.tscn')
const ALIGNMENT = [HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_CENTER]
const HEADER_ROW = [TableHeader, TableHeader]
const HEADER_ROW_TEXT = ['Параметр', 'Значение']
const SETTING_TABLE = [
['Ограниченный режим', TableEdit, TableTaggle],
['Управление элементами в ограниченном режиме', TableEdit, TableTaggle],
['Кнопка «ПД-М', TableEdit, TableTaggle],
['Кнопка «ПД-М', TableEdit, TableTaggle],
['Кнопка «ОЗП-1»', TableEdit, TableTaggle],
['Кнопка «МЧМ-1»', TableEdit, TableTaggle],
['Кнопка «ОРН-И1»', TableEdit, TableTaggle],
['Кнопка «ОРН-М', TableEdit, TableTaggle],
['Кнопка «ЛЧМ-1»', TableEdit, TableTaggle],
['Кнопка «ПД-М4С»', TableEdit, TableTaggle],
['Кнопка «ПД-ЧМ»', TableEdit, TableTaggle],
['Кнопка «СВ-И1»', TableEdit, TableTaggle],
['Кнопка «К', TableEdit, TableTaggle],
['Кнопка «СВ-М', TableEdit, TableTaggle],
['Кнопка «ОРН»', TableEdit, TableTaggle],
['Кнопка «JTIDS»', TableEdit, TableTaggle],
['Кнопка «КУПД»', TableEdit, TableTaggle],
['Внешнее целеуказание', TableEdit, TableTaggle],
['Кнопка «Подавление»', TableEdit, TableTaggle],
['Виртуальная клавиатура', TableEdit, TableTaggle],
['Скрыть вкладку ЭМС 2', TableEdit, TableTaggle],
['Ограниченный режим', TableEdit, TableToggle],
['Управление элементами в ограниченном режиме', TableEdit, TableToggle],
['Кнопка «ПД-М', TableEdit, TableToggle],
['Кнопка «ПД-М', TableEdit, TableToggle],
['Кнопка «ОЗП-1»', TableEdit, TableToggle],
['Кнопка «МЧМ-1»', TableEdit, TableToggle],
['Кнопка «ОРН-И1»', TableEdit, TableToggle],
['Кнопка «ОРН-М', TableEdit, TableToggle],
['Кнопка «ЛЧМ-1»', TableEdit, TableToggle],
['Кнопка «ПД-М4С»', TableEdit, TableToggle],
['Кнопка «ПД-ЧМ»', TableEdit, TableToggle],
['Кнопка «СВ-И1»', TableEdit, TableToggle],
['Кнопка «К', TableEdit, TableToggle],
['Кнопка «СВ-М', TableEdit, TableToggle],
['Кнопка «ОРН»', TableEdit, TableToggle],
['Кнопка «JTIDS»', TableEdit, TableToggle],
['Кнопка «КУПД»', TableEdit, TableToggle],
['Внешнее целеуказание', TableEdit, TableToggle],
['Кнопка «Подавление»', TableEdit, TableToggle],
['Виртуальная клавиатура', TableEdit, TableToggle],
['Скрыть вкладку ЭМС 2', TableEdit, TableToggle],
['Текущая версия ПО УАРЭП', TableEdit, TableEdit ],
['Адрес сервера карт', TableEdit, TableEdit ],
['уарэп-яу07-частный', TableEdit, TableEdit ],
@@ -55,6 +55,8 @@ const SETTING_TABLE = [
const SUPPRESS = 18 # Строка - Подавление
const KEYBORD = 19 # Строка - Виртуальная клавиатура
const HIDE_EMS2 = 20 # Строка - Скрыть вкладку ЭМС 2
const COMMIT = 21 # Строка - Версия УАРЭП
const SERVER = 22 # Строка - Сервер карт
## Вызывается, когда узел впервые попадает в дерево сцены.
@@ -84,6 +86,13 @@ func on_ems2_pressed(btn) -> void:
signaller.emit_signal('ems2_hide_pressed', state)
func on_row_pressed(i_row: int):
$scroll_set/table.clear_rows_selected()
$scroll_set/table.set_row_selected(i_row, true)
func on_checkbutton_pressed(i_row: int):
on_row_pressed(i_row)
func setting_tab():
$heard_table.set_header(HEADER_ROW)
$heard_table.set_header_text(HEADER_ROW_TEXT)
@@ -107,23 +116,32 @@ func setting_tab():
var node_label = setting_str[1]
var node_value = setting_str[2]
$scroll_set/table.add_row([node_label, node_value])
#for column in range(2):
#var cell_instance = $scroll_set/table.get_node2(column, i)
#if cell_instance is LineEdit:
#if i % 2 == 0:
#cell_instance.modulate = Color(0.9, 0.9, 0.9, 1.0)
#else:
#cell_instance.modulate = Color(0.95, 0.95, 0.95, 1.0)
var label_instance = $scroll_set/table.get_node2(0, i)
label_instance.text = parameter
$scroll_set/table.set_node_editable(0, i, false)
var node_values = $scroll_set/table.get_node2(1, i).get_children()
if node_values.size() > 1:
var child = node_values[1]
if node_values.size():
var child = node_values[0]
if child is CheckButton:
child.connect('pressed', Callable(self, 'on_checkbutton_pressed').bind(i))
if parameter in settings_data:
child.set_pressed(settings_data[parameter][0])
else:
child.set_pressed(false)
var commit_instance = $scroll_set/table.get_node2(1, 21)
var server_instance = $scroll_set/table.get_node2(1, 22)
var commit_instance = $scroll_set/table.get_node2(1, COMMIT)
var server_instance = $scroll_set/table.get_node2(1, SERVER)
commit_instance.text = '%s' % commit.VCS_HEAD
server_instance.text = ProjectSettings.get('application/config/map_server_addr')
$scroll_set/table.set_node_editable(1, 21, false)
$scroll_set/table.set_node_editable(1, 22, false)
$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)
for i in SETTING_TABLE.size():
@@ -138,18 +156,19 @@ func setting_tab():
if j < unit_data[2].size() - 1:
joined_data += ","
profiles.text = str(unit_data[1]) + " : " + joined_data
$scroll_set/table.connect('row_pressed', Callable(self, 'on_row_pressed'))
button_settings()
func button_settings():
var extern_cu_node = $scroll_set/table.get_node2(1, SUPPRESS).get_children()[1]
var extern_cu_node = $scroll_set/table.get_node2(1, SUPPRESS).get_children()[0]
extern_cu_node.connect('pressed', on_external_cu_btn_pressed.bind(extern_cu_node))
$scroll_set/table.set_row_text(SUPPRESS,(['Кнопка «Подавление»']))
$scroll_set/table.set_row_text(KEYBORD,(['Виртуальная клавиатура']))
var vk_node = $scroll_set/table.get_node2(1, KEYBORD).get_children()[1]
var vk_node = $scroll_set/table.get_node2(1, KEYBORD).get_children()[0]
vk_node.connect('pressed', on_vk_pressed.bind(vk_node))
$scroll_set/table.set_row_text(HIDE_EMS2,(['Скрыть вкладку ЭМС 2']))
var ems2_hide_node = $scroll_set/table.get_node2(1, HIDE_EMS2).get_children()[1]
var ems2_hide_node = $scroll_set/table.get_node2(1, HIDE_EMS2).get_children()[0]
ems2_hide_node.connect('pressed', on_ems2_pressed.bind(ems2_hide_node))
ems2_hide_node.set_pressed(true)
on_ems2_pressed(ems2_hide_node)
@@ -183,7 +202,7 @@ func _on_btn_save_settings_pressed():
else:
var children = $scroll_set/table.get_node2(1, i).get_children()
if len(children):
var child = children[1]
var child = children[0]
if parameter not in json_data:
json_data[parameter] = []
json_data[parameter].append(child.is_pressed())

View File

@@ -2,7 +2,7 @@
[ext_resource type="Script" path="res://scenes/настройки/настройки.gd" id="1_2l3rd"]
[ext_resource type="Script" path="res://table/table.gd" id="2_6sx73"]
[ext_resource type="Texture2D" uid="uid://lkw8k7ouj42i" path="res://data/save1.png" id="3_dbpks"]
[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")

View File

@@ -1,24 +1,16 @@
[gd_scene load_steps=4 format=3 uid="uid://dgidt8lifm7xe"]
[ext_resource type="PackedScene" uid="uid://dspa16ufrpanp" path="res://table/ячейка-2.tscn" id="1_eib5d"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_f4oye"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_t3fqw"]
[sub_resource type="Theme" id="Theme_odxqp"]
CheckButton/styles/focus = SubResource("StyleBoxEmpty_t3fqw")
[node name="Control" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[node name="LineEdit" parent="." instance=ExtResource("1_eib5d")]
layout_mode = 0
[node name="LineEdit" type="LineEdit"]
offset_right = 85.0
offset_bottom = 27.0
theme_override_styles/focus = SubResource("StyleBoxEmpty_f4oye")
editable = false
[node name="CheckButton" type="CheckButton" parent="."]

View File

@@ -1,29 +1,32 @@
[gd_scene load_steps=4 format=3 uid="uid://5rw652cmnybi"]
[gd_scene load_steps=5 format=3 uid="uid://5rw652cmnybi"]
[ext_resource type="PackedScene" uid="uid://dspa16ufrpanp" path="res://table/ячейка-2.tscn" id="1_qcan0"]
[ext_resource type="Shader" path="res://shaders/color-invers.gdshader" id="1_anyuq"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_q2spu"]
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_7hsq1"]
[sub_resource type="Theme" id="Theme_hnhcj"]
CheckButton/styles/focus = SubResource("StyleBoxEmpty_q2spu")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_xxfw6"]
shader = ExtResource("1_anyuq")
[node name="SettingsTaggle" type="Control"]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_y8485"]
[node name="LineEdit" parent="." instance=ExtResource("1_qcan0")]
layout_mode = 0
[node name="LineEdit" type="LineEdit"]
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_7hsq1")
editable = false
context_menu_enabled = false
shortcut_keys_enabled = false
middle_mouse_paste_enabled = false
selecting_enabled = false
deselect_on_focus_loss_enabled = false
[node name="CheckButton" type="CheckButton" parent="."]
material = SubResource("ShaderMaterial_xxfw6")
layout_mode = 0
offset_left = 453.0
offset_top = 4.0
offset_top = 1.5
offset_right = 497.0
offset_bottom = 28.0
theme = SubResource("Theme_hnhcj")
offset_bottom = 25.5
theme_override_styles/focus = SubResource("StyleBoxEmpty_y8485")