Доработка. Сохранение настроек.
This commit is contained in:
@@ -4,7 +4,7 @@ class_name scroll_ecm_params extends ScrollContainer
|
|||||||
|
|
||||||
const CellLineEdit = preload('res://table/ячейка-2.tscn') ## Ячейка таблицы.
|
const CellLineEdit = preload('res://table/ячейка-2.tscn') ## Ячейка таблицы.
|
||||||
const TableHeader = preload('res://table/header.tscn') ## Ячейка заголовок таблицы.
|
const TableHeader = preload('res://table/header.tscn') ## Ячейка заголовок таблицы.
|
||||||
const CellTaggleBtn = preload('res://table/taggle.tscn')
|
const CellTaggleBtn = preload('res://table/set_taggle.tscn')
|
||||||
|
|
||||||
const TABLE_HEADER = [ TableHeader, TableHeader ] ## Описание ряда заголовка.
|
const TABLE_HEADER = [ TableHeader, TableHeader ] ## Описание ряда заголовка.
|
||||||
const TABLE_ROW = [ CellLineEdit, CellLineEdit ] ## Описание ряда.
|
const TABLE_ROW = [ CellLineEdit, CellLineEdit ] ## Описание ряда.
|
||||||
@@ -38,13 +38,13 @@ func init_table():
|
|||||||
$table.set_node_alligment(0, MOD_ROW_INDEX, HORIZONTAL_ALIGNMENT_LEFT)
|
$table.set_node_alligment(0, MOD_ROW_INDEX, HORIZONTAL_ALIGNMENT_LEFT)
|
||||||
$table.set_node_editable(0, MOD_ROW_INDEX, false)
|
$table.set_node_editable(0, MOD_ROW_INDEX, false)
|
||||||
var taggle_node = $table.get_node2(1, MOD_ROW_INDEX)
|
var taggle_node = $table.get_node2(1, MOD_ROW_INDEX)
|
||||||
for item in taggle_node.get_children():
|
#for item in taggle_node.get_children():
|
||||||
item.size.x = 85
|
#item.size.x = 85
|
||||||
item.size.y = 25
|
#item.size.y = 25
|
||||||
item.position.x = 0
|
#item.position.x = 0
|
||||||
item.position.y = 0
|
#item.position.y = 0
|
||||||
taggle_node.size.x = 85
|
#taggle_node.size.x = 85
|
||||||
taggle_node.size.y = 25
|
#taggle_node.size.y = 25
|
||||||
var taggle_btn = taggle_node.get_children()[1]
|
var taggle_btn = taggle_node.get_children()[1]
|
||||||
taggle_btn.connect('pressed', on_taggle_btn.bind(taggle_btn))
|
taggle_btn.connect('pressed', on_taggle_btn.bind(taggle_btn))
|
||||||
taggle_btn.disabled = true
|
taggle_btn.disabled = true
|
||||||
|
|||||||
@@ -52,8 +52,6 @@ const SETTING_TABLE = [
|
|||||||
['уарэп-спт25-1', TableEdit, TableEdit ],
|
['уарэп-спт25-1', TableEdit, TableEdit ],
|
||||||
['уарэп-спт25-2', TableEdit, TableEdit ]
|
['уарэп-спт25-2', TableEdit, TableEdit ]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
const SUPPRESS = 18 # Строка - Подавление
|
const SUPPRESS = 18 # Строка - Подавление
|
||||||
const KEYBORD = 19 # Строка - Виртуальная клавиатура
|
const KEYBORD = 19 # Строка - Виртуальная клавиатура
|
||||||
const HIDE_EMS2 = 20 # Строка - Скрыть вкладку ЭМС 2
|
const HIDE_EMS2 = 20 # Строка - Скрыть вкладку ЭМС 2
|
||||||
@@ -114,7 +112,12 @@ func setting_tab():
|
|||||||
if parameter in settings.UnitProfiles:
|
if parameter in settings.UnitProfiles:
|
||||||
var unit_data = settings.UnitProfiles[parameter]
|
var unit_data = settings.UnitProfiles[parameter]
|
||||||
var profiles = $scroll_set/table.get_node2(1, i)
|
var profiles = $scroll_set/table.get_node2(1, i)
|
||||||
profiles.text = str(unit_data[1]) + ":" + str(unit_data[2][0])
|
var joined_data = ""
|
||||||
|
for j in range(unit_data[2].size()):
|
||||||
|
joined_data += str(unit_data[2][j])
|
||||||
|
if j < unit_data[2].size() - 1:
|
||||||
|
joined_data += ","
|
||||||
|
profiles.text = str(unit_data[1]) + " : " + joined_data
|
||||||
$end_table.set_header(HEADER_ROW)
|
$end_table.set_header(HEADER_ROW)
|
||||||
$end_table.set_header_text(HEADER_ROW_TEXT)
|
$end_table.set_header_text(HEADER_ROW_TEXT)
|
||||||
$end_table.set_columns_min_size([600, 950])
|
$end_table.set_columns_min_size([600, 950])
|
||||||
@@ -134,3 +137,33 @@ func button_settings():
|
|||||||
ems2_hide_node.connect('pressed', on_ems2_pressed.bind(ems2_hide_node))
|
ems2_hide_node.connect('pressed', on_ems2_pressed.bind(ems2_hide_node))
|
||||||
ems2_hide_node.set_pressed(true)
|
ems2_hide_node.set_pressed(true)
|
||||||
on_ems2_pressed(ems2_hide_node)
|
on_ems2_pressed(ems2_hide_node)
|
||||||
|
|
||||||
|
|
||||||
|
func _on_btn_save_settings_pressed():
|
||||||
|
var json_data = {}
|
||||||
|
for i in range(SETTING_TABLE.size()):
|
||||||
|
var parameter = SETTING_TABLE[i][0]
|
||||||
|
if parameter in settings.UnitProfiles:
|
||||||
|
var profiles = $scroll_set/table.get_node2(1, i)
|
||||||
|
var value = profiles.get_text()
|
||||||
|
if parameter not in json_data:
|
||||||
|
json_data[parameter] = []
|
||||||
|
if value.find(":") != -1:
|
||||||
|
var parts = value.split(":")
|
||||||
|
var ip = parts[0].strip_edges()
|
||||||
|
var ports = parts[1].split(",")
|
||||||
|
json_data[parameter].append(ip)
|
||||||
|
for port in ports:
|
||||||
|
if port == "true":
|
||||||
|
json_data[parameter].append(true)
|
||||||
|
elif port == "false":
|
||||||
|
json_data[parameter].append(false)
|
||||||
|
var file = FileAccess.open(settings.settings_file, FileAccess.WRITE)
|
||||||
|
if file:
|
||||||
|
var json_conv = JSON.new()
|
||||||
|
var json_string = json_conv.stringify(json_data)
|
||||||
|
file.store_string(json_string)
|
||||||
|
file.close()
|
||||||
|
log.info('Настройки сохранены в файл %s' % settings.settings_file)
|
||||||
|
else:
|
||||||
|
log.info('Не удалось открыть файл для записи %s' % settings.settings_file)
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ layout_mode = 0
|
|||||||
offset_left = 16.0
|
offset_left = 16.0
|
||||||
offset_top = 44.0
|
offset_top = 44.0
|
||||||
offset_right = 1584.0
|
offset_right = 1584.0
|
||||||
offset_bottom = 1136.0
|
offset_bottom = 988.0
|
||||||
|
|
||||||
[node name="table" type="GridContainer" parent="scroll_set"]
|
[node name="table" type="GridContainer" parent="scroll_set"]
|
||||||
layout_mode = 2
|
layout_mode = 2
|
||||||
@@ -35,13 +35,12 @@ script = ExtResource("2_6sx73")
|
|||||||
[node name="end_table" type="GridContainer" parent="."]
|
[node name="end_table" type="GridContainer" parent="."]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 16.0
|
offset_left = 16.0
|
||||||
offset_top = 1137.0
|
offset_top = 1000.0
|
||||||
offset_right = 16.0
|
offset_right = 16.0
|
||||||
offset_bottom = 1137.0
|
offset_bottom = 1000.0
|
||||||
script = ExtResource("2_6sx73")
|
script = ExtResource("2_6sx73")
|
||||||
|
|
||||||
[node name="btn_save" type="Button" parent="."]
|
[node name="btn_save_settings" type="Button" parent="."]
|
||||||
visible = false
|
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
offset_left = 1523.0
|
offset_left = 1523.0
|
||||||
offset_top = 1062.0
|
offset_top = 1062.0
|
||||||
@@ -53,3 +52,5 @@ theme_override_styles/focus = SubResource("StyleBoxEmpty_bgm7i")
|
|||||||
theme_override_styles/pressed = SubResource("StyleBoxEmpty_eifcy")
|
theme_override_styles/pressed = SubResource("StyleBoxEmpty_eifcy")
|
||||||
theme_override_styles/normal = SubResource("StyleBoxEmpty_exytp")
|
theme_override_styles/normal = SubResource("StyleBoxEmpty_exytp")
|
||||||
icon = ExtResource("3_xqtce")
|
icon = ExtResource("3_xqtce")
|
||||||
|
|
||||||
|
[connection signal="pressed" from="btn_save_settings" to="." method="_on_btn_save_settings_pressed"]
|
||||||
|
|||||||
@@ -45,25 +45,24 @@ var settings_program: Dictionary
|
|||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
var file = FileAccess.open(settings_file, FileAccess.READ)
|
var file = FileAccess.open(settings_file, FileAccess.READ)
|
||||||
if not file:
|
if file != null:
|
||||||
log.info('Не удалось открыть файл настроек %s, использованы настройики по умолчанию' % settings_file)
|
var read = file.get_as_text()
|
||||||
return
|
file.close()
|
||||||
var read = file.get_as_text()
|
var json_conv: = JSON.new()
|
||||||
file.close()
|
if Error.OK == json_conv.parse(read):
|
||||||
var json_conv: = JSON.new()
|
var json_data = json_conv.get_data()
|
||||||
if Error.OK != json_conv.parse(read):
|
settings_program.merge(json_data)
|
||||||
log.info('Не удалось прочитать файл настроек %s, использованы настройики по умолчанию' % settings_file)
|
for key in UnitProfiles.keys():
|
||||||
return
|
if json_data.has(key):
|
||||||
var json_data = json_conv.get_data()
|
UnitProfiles[key][1] = json_data[key][0]
|
||||||
settings_program.merge(json_data)
|
for i in len(json_data[key]) - 1:
|
||||||
for key in UnitProfiles.keys():
|
if typeof(json_data[key][i+1]) == TYPE_STRING:
|
||||||
if not json_data.has(key): continue
|
if json_data[key][i+1].is_valid_int():
|
||||||
UnitProfiles[key][1] = json_data[key][0]
|
UnitProfiles[key][2][i] = int(json_data[key][i+1])
|
||||||
for i in len(json_data[key]) - 1:
|
else:
|
||||||
if json_data[key][1][i+1].is_valid_int():
|
UnitProfiles[key][2][i] = json_data[key][i+1]
|
||||||
UnitProfiles[key][2][i] = int(json_data[key][i+1])
|
else:
|
||||||
else:
|
UnitProfiles[key][2][i] = json_data[key][i+1]
|
||||||
UnitProfiles[key][2][i] = json_data[key][i+1]
|
|
||||||
log.info('Модуль настроек готов')
|
log.info('Модуль настроек готов')
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://5rw652cmnybi"]
|
[gd_scene load_steps=4 format=3 uid="uid://5rw652cmnybi"]
|
||||||
|
|
||||||
[ext_resource type="PackedScene" uid="uid://dspa16ufrpanp" path="res://table/ячейка-2.tscn" id="1_qcan0"]
|
[ext_resource type="PackedScene" uid="uid://dspa16ufrpanp" path="res://table/ячейка-2.tscn" id="1_qcan0"]
|
||||||
|
|
||||||
|
[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_q2spu"]
|
||||||
|
|
||||||
|
[sub_resource type="Theme" id="Theme_hnhcj"]
|
||||||
|
CheckButton/styles/focus = SubResource("StyleBoxEmpty_q2spu")
|
||||||
|
|
||||||
[node name="SettingsTaggle" type="Control"]
|
[node name="SettingsTaggle" type="Control"]
|
||||||
layout_mode = 3
|
layout_mode = 3
|
||||||
anchors_preset = 15
|
anchors_preset = 15
|
||||||
@@ -11,7 +16,9 @@ grow_horizontal = 2
|
|||||||
grow_vertical = 2
|
grow_vertical = 2
|
||||||
|
|
||||||
[node name="LineEdit" parent="." instance=ExtResource("1_qcan0")]
|
[node name="LineEdit" parent="." instance=ExtResource("1_qcan0")]
|
||||||
|
layout_mode = 0
|
||||||
offset_right = 950.0
|
offset_right = 950.0
|
||||||
|
editable = false
|
||||||
|
|
||||||
[node name="CheckButton" type="CheckButton" parent="."]
|
[node name="CheckButton" type="CheckButton" parent="."]
|
||||||
layout_mode = 0
|
layout_mode = 0
|
||||||
@@ -19,3 +26,4 @@ offset_left = 453.0
|
|||||||
offset_top = 4.0
|
offset_top = 4.0
|
||||||
offset_right = 497.0
|
offset_right = 497.0
|
||||||
offset_bottom = 28.0
|
offset_bottom = 28.0
|
||||||
|
theme = SubResource("Theme_hnhcj")
|
||||||
|
|||||||
Reference in New Issue
Block a user