miggor-StreamGraph/graph_node_renderer/settings/settings_dialog.gd
Lera Elvoé 240750c48e library groups (#151)
~~cl0ses #51~~
~~cl0ses #93~~
~~cl0ses #98~~
~~cl0ses #150~~

another change in this PR: the Deck and DeckNode classes now use manual memory management.

Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/151
Co-authored-by: Lera Elvoé <yagich@poto.cafe>
Co-committed-by: Lera Elvoé <yagich@poto.cafe>
2024-05-08 07:43:45 +00:00

37 lines
1 KiB
GDScript

# (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()