extends PanelContainer var config: ConfigManager = preload("res://config_manager.tres") @onready var file_path_file_dialog: FileDialog = %FilePathFileDialog @onready var file_path_line_edit: LineEdit = %FilePathLineEdit @onready var file_path_button: Button = %FilePathButton @onready var theme_path_file_dialog: FileDialog = %ThemePathFileDialog @onready var theme_path_button: Button = %ThemePathButton @onready var sound_check_box: CheckBox = %SoundCheckBox @onready var attributions_rich_text_label: RichTextLabel = %AttributionsRichTextLabel @onready var open_data_dir_button: Button = %OpenDataDirButton func _ready() -> void: config.theme_changed.connect( func set_current_theme() -> void: theme = config.theme ) config.file_changed.connect( func set_current_file() -> void: file_path_file_dialog.current_path = config.current_file file_path_file_dialog.current_dir = config.current_file.get_base_dir() file_path_line_edit.text = config.current_file ) file_path_button.pressed.connect( file_path_file_dialog.popup_centered ) file_path_file_dialog.file_selected.connect(config.set_current_file) file_path_line_edit.text_submitted.connect(config.set_current_file) theme_path_button.pressed.connect( theme_path_file_dialog.popup_centered ) theme_path_file_dialog.file_selected.connect(config.set_theme_path) theme_path_file_dialog.hide() file_path_file_dialog.hide() sound_check_box.button_pressed = config.sound_fx_on sound_check_box.toggled.connect( func sound_toggle(is_on: bool) -> void: config.sound_fx_on = is_on ) attributions_rich_text_label.meta_clicked.connect(OS.shell_open) open_data_dir_button.pressed.connect( OS.shell_open.bind(OS.get_user_data_dir()) )