Рефактор.

This commit is contained in:
sasha80
2023-08-21 13:29:50 +03:00
parent b7c523c65f
commit 0811cb0c1b
3 changed files with 31 additions and 31 deletions

View File

@@ -1,13 +1,13 @@
extends GridContainer
class_name GDTable extends GridContainer
## Виджет "Таблица"
@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_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_file var selector_type_file: = 'res://table/selector.tscn': set = load_selector_scene ## Сцена селектора для выбранного ряда
const HEAD_PREFIX = 'HEAD_' ## Префикс ключа заголовка таблицы
const INDEX_FORMAT = '%02d_%02d' ## Формат индекса ключа
@@ -17,7 +17,7 @@ const SLCT_PREFIX = 'SLCT_' ## Префикс ключа индикато
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 ## Формат ключа индикаторов выбранного ряда
const SELECTOR_KEY_FORMAT = SLCT_PREFIX + INDEX_FORMAT ## Формат ключа индикаторов выбранного ряда
const META_USER_DATA = 'user_data' ## Имя свойства для сохранения данных пользователя
const META_CALLABLE = 'callable' ## Имя свойства для сохранения вызываемого
const META_EVENT_NAME = 'event_name' ## Имя свойства для сохранения названия события
@@ -44,8 +44,8 @@ func set_node_user_data(i_col: int, i_row: int, val) -> void: set_node_meta(i_co
func defaultselector_color_proc(_i_row: int): return selector_color
## Закрепляет заголовок таблицы. [param scrl] - Прокрутка,
## [param prnt] - Родитель прокрутки заданный в редакторе
## Закрепляет заголовок таблицы. [param scrl] - Прокрутка родитель таблицы.
## [param prnt] - Родитель прокрутки.
func pin_header(scrl: ScrollContainer, prnt: Control):
scrl.remove_child(header)
prnt.add_child(header)
@@ -258,7 +258,7 @@ func clear_rows_selected():
## [param i_row] - Индекс ряда.
func set_row_selected(i_row: int, selected: bool = true) -> void:
var key: = ROW_SELECTOR_KEY_FORMAT % [i_row, 0]
var key: = SELECTOR_KEY_FORMAT % [i_row, 0]
var node = nodes[NODE_KEY_FORMAT % [i_row, 0]]
if nodes.has(key) and (not selected):
var selector = nodes[key]
@@ -279,7 +279,7 @@ func set_row_selected(i_row: int, selected: bool = true) -> void:
## [param i_row] - Индекс ряда.
func is_row_selected(i_row: int) -> bool:
var key: = ROW_SELECTOR_KEY_FORMAT % [i_row, 0]
var key: = SELECTOR_KEY_FORMAT % [i_row, 0]
return nodes.has(key)
@@ -377,7 +377,7 @@ func set_header_text(headers: Array):
## [param i_row] - индекс ряда.
func remove_row(i_row: int):
var sel_key: String = ROW_SELECTOR_KEY_FORMAT % [i_row, 0]
var sel_key: String = SELECTOR_KEY_FORMAT % [i_row, 0]
if nodes.has(sel_key):
var selector = nodes[sel_key]
@@ -437,7 +437,7 @@ func rehash():
swap_nodes(nodes_copy, NODE_KEY_FORMAT, i0, i_node[0])
next_index(i_node)
elif SLCT_PREFIX in key:
swap_nodes(nodes_copy, ROW_SELECTOR_KEY_FORMAT, i0, i_slct[0])
swap_nodes(nodes_copy, SELECTOR_KEY_FORMAT, i0, i_slct[0])
next_index(i_slct)
nodes.clear()
nodes.merge(nodes_copy)