miggor-StreamGraph/graph_node_renderer/settings/settings_dialog.gd

38 lines
1 KiB
GDScript3
Raw Permalink Normal View History

# (c) 2023-present Eroax
# (c) 2023-present Yagich
# GNU General Public License v3.0+ (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
extends AcceptDialog
class_name SettingsDialog
@onready var category_tree: Tree = %CategoryTree
@onready var category_content: Control = %CategoryContent
@onready var shortcuts_editor: ShortcutsEditor = %ShortcutsEditor
func _ready() -> void:
var cr := category_tree.create_item()
for i in category_content.get_children():
var item := category_tree.create_item(cr)
item.set_text(0, i.name)
category_tree.item_selected.connect(
func():
var item := category_tree.get_selected()
for i: Control in category_content.get_children():
i.visible = i.get_index() == item.get_index()
)
canceled.connect(shortcuts_editor.ensure_no_focus)
confirmed.connect(shortcuts_editor.ensure_no_focus)
category_tree.set_selected(cr.get_child(0), 0)
func _unhandled_key_input(event: InputEvent) -> void:
if not visible:
return
if event.keycode == KEY_ESCAPE and event.is_pressed():
canceled.emit()
hide()