Рефакторинг.

This commit is contained in:
sasha80
2023-08-10 15:40:42 +03:00
parent 2163d3e9ec
commit 0f850dfb7f

View File

@@ -2,34 +2,34 @@ extends GridContainer
## Виджет "Таблица"
@export var selector_color: = Color(1.0, 1.0, 1.0, 1.0) ## Окрашивающий цвет для индикатора выбранного ряда
@export var node_gap: = Vector2(0.0, 0.0) ## Зазор между ячейками, который не возможно вычислить или получить
@export var selector_color: = Color(1.0, 1.0, 1.0, 1.0) ## Окрашивающий цвет для индикатора выбранного ряда
@export var selector_key_down: Key = KEY_DOWN ## Клавиша увеличения индекса выбранного ряда
@export var selector_key_up: Key = KEY_UP ## Клавиша уменьшения индекса выбранного ряда
@export_file var node_type_file: = 'res://table/node.tscn': get = get_node_scene, set = load_node_scene ## Сцена ячейки устанавливаемая по умолчанию
@export_file var selector_type_file: = 'res://table/selector.tscn': set = load_selector_scene ## Сцена индикатора для выбранного ряда
@export var selector_key_up: Key = KEY_UP ## Клавиша уменьшения индекса выбранного ряда
@export var selector_key_down: Key = KEY_DOWN ## Клавиша увеличения индекса выбранного ряда
const MAX_INDEX = 99 ## Максимальное значение индекса для колонки и строки. Связано с форматом индекса ключа
const INDEX_FORMAT = '%02d_%02d' ## Формат индекса ключа
const NODE_PREFIX = 'NODE_' ## Префикс ключа ячейки таблицы
const HEAD_PREFIX = 'HEAD_' ## Префикс ключа заголовка таблицы
const DATA_PREFIX = 'DATA_' ## Префикс ключа данных ячейки таблицы
const CONN_PREFIX = 'CONN_' ## Префикс ключа обработчиков событий ячейки таблицы
const DATA_PREFIX = 'DATA_' ## Префикс ключа данных ячейки таблицы
const HEAD_PREFIX = 'HEAD_' ## Префикс ключа заголовка таблицы
const INDEX_FORMAT = '%02d_%02d' ## Формат индекса ключа
const MAX_INDEX = 99 ## Максимальное значение индекса для колонки и строки. Связано с форматом индекса ключа
const NODE_PREFIX = 'NODE_' ## Префикс ключа ячейки таблицы
const SLCT_PREFIX = 'SLCT_' ## Префикс ключа индикатора выбранного ряда таблицы
const NODE_KEY_FORMAT = NODE_PREFIX + INDEX_FORMAT ## Формат ключа ячейки
const HEAD_KEY_FORMAT = HEAD_PREFIX + INDEX_FORMAT ## Формат ключа заголовка
const DATA_KEY_FORMAT = DATA_PREFIX + INDEX_FORMAT ## Формат ключа данных
const CONNECTED_KEY_FORMAT = CONN_PREFIX + INDEX_FORMAT ## Формат ключа подключенных обработчиков сигналов
const DATA_KEY_FORMAT = DATA_PREFIX + INDEX_FORMAT ## Формат ключа данных
const HEAD_KEY_FORMAT = HEAD_PREFIX + INDEX_FORMAT ## Формат ключа заголовка
const NODE_KEY_FORMAT = NODE_PREFIX + INDEX_FORMAT ## Формат ключа ячейки
const ROW_SELECTOR_KEY_FORMAT = SLCT_PREFIX + INDEX_FORMAT ## Формат ключа индикаторов выбранного ряда
var header: GridContainer ## Заголовок таблицы
var in_focus: = false ## Фокус пользовательского ввода
var nodes: = {} ## Все ячейки таблицы и дополнительные элементы
var ScnNode: PackedScene ## Прототип ячейки таблицы
var ScnSelector: PackedScene ## Прототип индикатора выбранного ряда
var selector_color_proc: Callable ## Ссылка на процедуру генератора цвета индикатора выбранного ряда
var selector_size_proc: Callable ## Ссылка на процедуру генератора размера индикатора выбранного ряда
var ScnSelector: PackedScene ## Прототип индикатора выбранного ряда
var ScnNode: PackedScene ## Прототип ячейки таблицы
var in_focus: = false ## Фокус пользовательского ввода
var header: GridContainer ## Заголовок таблицы
signal row_pressed(i_row: int) ## Вызывается при нажатии кнопкой мыши на строку
signal selected_changed(i_row: int) ## Вызывается при изменении выбранного ряда. i_row - текущий выбранный ряд
@@ -290,10 +290,10 @@ func get_selected_rows(i_rows: Array) -> void:
## Возвращает количество рядов
func get_rows_count() -> int:
var rows_count: int = 0
var nodes_count: int = 0
for key in nodes:
rows_count += int(NODE_PREFIX in key)
return rows_count / columns
nodes_count += int(NODE_PREFIX in key)
return nodes_count / columns
##