Рефактор.
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user