Рефактор. Сетевой модуль.

This commit is contained in:
sasha80
2025-09-08 15:27:06 +03:00
parent c9e0e3ae0b
commit a2e5013c00
4 changed files with 76 additions and 79 deletions

View File

@@ -141,30 +141,12 @@ func parse_cmd_line_args(settings_data: Dictionary):
settings_data[key] = val0
## Загружает настройки из файла
func load_settings(settings_data: Dictionary):
var settings_file = settings.get_settings_file_path()
var file = FileAccess.open(settings_file, FileAccess.READ)
var abs_path = ProjectSettings.globalize_path(settings_file)
if file:
var read = file.get_as_text()
file.close()
var json_conv = JSON.new()
if json_conv.parse(read) == OK:
settings_data.merge(json_conv.get_data())
else:
log.warning('Не удалось разобрать \\\"%s\\\", будут использованы настройки по умолчанию' % abs_path)
else:
log.warning('Файл \\\"%s\\\" не найден, будут использованы настройки по умолчанию' % abs_path)
func setting_tab():
$heard_table.set_header(HEADER_ROW)
$heard_table.set_header_text(HEADER_ROW_TEXT)
$heard_table.set_columns_min_size([600, 950])
$heard_table.set_columns_alignments(ALIGNMENT)
var settings_data = {}
load_settings(settings_data)
parse_cmd_line_args(settings_data)
for key in settings_data:
ProjectSettings.set_setting('application/config/%s' % key, settings_data[key])
@@ -211,7 +193,7 @@ func setting_tab():
profile.text = ''
for val in unit_data:
profile.text += str(val) + ','
profile.text.rstrip(',')
profile.text = profile.text.trim_suffix(',')
button_settings()
@@ -232,25 +214,26 @@ func _on_btn_save_settings_pressed():
for i in SETTING_TABLE.size():
var parameter = SETTING_TABLE[i][0]
if parameter in settings.UnitProfiles:
var ref_profile = settings.UnitProfiles[parameter][1]
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 row: = []
for token in value.split(','):
var j: = row.size()
if token.is_valid_int():
token = int(token)
elif token == 'false':
token = false
elif token == 'true':
token = true
if typeof(ref_profile[j]) == typeof(token):
row.append(token)
else:
port = port.strip_edges()
if port.is_valid_int():
port = int(port)
json_data[parameter].append(port)
# TODO: Это надо вывести на экран пользователю
push_error([parameter, j, type_string(typeof(ref_profile[j])), type_string(typeof(token))])
row.append(ref_profile[j])
json_data[parameter] = row
else:
var children = $scroll_set/table.get_node2(1, i).get_children()
if len(children):