diff --git a/scenes/настройки/настройки.gd b/scenes/настройки/настройки.gd index 75d749a..8590eae 100644 --- a/scenes/настройки/настройки.gd +++ b/scenes/настройки/настройки.gd @@ -9,7 +9,6 @@ const HEADER_ROW = [TableHeader, TableHeader] const HEADER_ROW_TEXT = ['Параметр', 'Значение'] const SETTING_TABLE = [ ['Ограниченный режим', TableEdit, TableToggle], - ['Управление элементами в ограниченном режиме', TableEdit, TableToggle], ['Кнопка «ПД-М4»', TableEdit, TableToggle], ['Кнопка «ПД-М2»', TableEdit, TableToggle], ['Кнопка «ОЗП-1»', TableEdit, TableToggle], @@ -53,12 +52,12 @@ const SETTING_TABLE = [ ['уарэп-спт25-1', TableEdit, TableEdit ], ['уарэп-спт25-2', TableEdit, TableEdit ] ] -const EXTERNAL_CU = 17 # Внешнее целееуказание -const SUPPRESS = 18 # Строка - Подавление -const KEYBOARD = 19 # Строка - Виртуальная клавиатура -const HIDE_EMS2 = 20 # Строка - Скрыть вкладку ЭМС 2 -const COMMIT = 21 # Строка - Версия УАРЭП -const SERVER = 22 # Строка - Сервер карт +const EXTERNAL_CU = 16 # Внешнее целееуказание +const SUPPRESS = 17 # Строка - Подавление +const KEYBOARD = 18 # Строка - Виртуальная клавиатура +const HIDE_EMS2 = 19 # Строка - Скрыть вкладку ЭМС 2 +const COMMIT = 20 # Строка - Версия УАРЭП +const SERVER = 21 # Строка - Сервер карт ## Вызывается, когда узел впервые попадает в дерево сцены. @@ -101,7 +100,7 @@ func parse_cmd_line_args(settings_data: Dictionary): var args = OS.get_cmdline_args() for i in range(0, args.size(), 2): var key: String = args[i] - key = key.lstrip('\'').rstrip('\'').lstrip('\"').rstrip('\"') + key = key.lstrip('\'\" ').rstrip('\'\" ').strip_edges().strip_escapes() if not settings_data.has(key): continue if not ((i + 1) < args.size()): @@ -109,7 +108,7 @@ func parse_cmd_line_args(settings_data: Dictionary): break var val0 = args[i + 1] var val1 = settings_data[key] - val0 = val0.lstrip('\'').rstrip('\'').lstrip('\"').rstrip('\"') + val0 = val0.lstrip('\'\" ').rstrip('\'\" ').strip_edges().strip_escapes() if typeof(val1) == TYPE_BOOL: if val0 not in ['yes', 'true', 'да', 'no', 'false', 'нет']: push_error('для аргумента \"%s\" указано неверное значение \"%s\".' % [key, val0]) @@ -122,6 +121,7 @@ func parse_cmd_line_args(settings_data: Dictionary): break for j in val0s.size(): var val: String = val0s[j] + val = val.lstrip('\'\" ').rstrip('\'\" ').strip_edges().strip_escapes() if tools.type_is_num(val): val0s[j] = int(val) elif val in ['true', 'false']: @@ -129,6 +129,7 @@ func parse_cmd_line_args(settings_data: Dictionary): else: val0s[j] = val + func load_settings(settings_data: Dictionary): var file = FileAccess.open(settings.settings_file, FileAccess.READ) var abs_path = ProjectSettings.globalize_path(settings.settings_file,) @@ -154,43 +155,46 @@ func setting_tab(): parse_cmd_line_args(settings_data) for i in SETTING_TABLE.size(): - var setting_str = SETTING_TABLE[i] - var parameter = setting_str[0] - var node_label = setting_str[1] - var node_value = setting_str[2] + var tbl_row = SETTING_TABLE[i] + var param_name = tbl_row[0] + var node_label = tbl_row[1] + var node_value = tbl_row[2] $scroll_set/table.add_row([node_label, node_value]) var label_instance = $scroll_set/table.get_node2(0, i) - label_instance.text = parameter + label_instance.text = param_name $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(): - 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]) - else: - child.set_pressed(false) - 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') + if not node_values.size(): + continue + var child = node_values[0] + if child is CheckButton: + child.connect('pressed', Callable(self, 'on_checkbutton_pressed').bind(i)) + var val = settings_data[param_name] if settings_data.has(param_name) else false + child.set_pressed(val) + $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(): - var setting_str = SETTING_TABLE[i] - var parameter = setting_str[0] - if parameter in settings.UnitProfiles: - var unit_data = settings.UnitProfiles[parameter] - var profiles = $scroll_set/table.get_node2(1, i) - var joined_data = '' - for j in 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 $scroll_set/table.connect('row_pressed', Callable(self, 'on_row_pressed')) + + var commit_instance = $scroll_set/table.get_node2(1, COMMIT) + commit_instance.text = '%s' % commit.VCS_HEAD + + var server_instance = $scroll_set/table.get_node2(1, SERVER) + server_instance.text = ProjectSettings.get('application/config/map_server_addr') + + for i in SETTING_TABLE.size(): + var param_name = SETTING_TABLE[i][0] + if not settings.UnitProfiles.has(param_name): + continue + var unit_data = settings.UnitProfiles[param_name] + var profile = $scroll_set/table.get_node2(1, i) + var joined_data = '' + for j in unit_data[2].size(): + joined_data += str(unit_data[2][j]) + if j < unit_data[2].size() - 1: + joined_data += ',' + profile.text = '%s : %s' % [str(unit_data[1]), joined_data] button_settings()