Files
Kalulu/sources/language_tool/list_title.gd
T
2025-09-05 15:55:48 +02:00

68 lines
1.6 KiB
GDScript

class_name ListTitle
extends MarginContainer
signal add_pressed()
signal save_pressed()
signal back_pressed()
signal new_search(new_text: String)
signal import_path_selected(path: String, match_to_file: bool)
var my_button: Button
@onready var title_label: Label = %TitleLabel
@onready var file_dialog: FileDialog = $FileDialog
func _ready() -> void:
my_button = file_dialog.add_button("Match list to file (delete elements not in file)", true, "act")
file_dialog.ok_button_text = "Add new elements"
func _on_plus_button_pressed() -> void:
add_pressed.emit()
func _on_save_button_pressed() -> void:
save_pressed.emit()
func _on_back_button_pressed() -> void:
back_pressed.emit()
func _on_line_edit_text_changed(new_text: String) -> void:
new_search.emit(new_text)
func set_title(text: String) -> void:
title_label.text = text
func _on_button_pressed() -> void:
file_dialog.filters = []
file_dialog.add_filter("*.csv", "csv")
file_dialog.ok_button_text = "Add new elements"
Utils.disconnect_all(file_dialog.file_selected)
Utils.disconnect_all(file_dialog.custom_action)
file_dialog.file_selected.connect(_on_filename_selected)
file_dialog.custom_action.connect(_on_match_to_file_selected)
file_dialog.show()
func _on_filename_selected(path: String) -> void:
import_path_selected.emit(path, false)
func _on_match_to_file_selected(_custom_action: String) -> void:
import_path_selected.emit(file_dialog.current_path, true)
file_dialog.hide()
func _process(_delta: float) -> void:
if my_button:
my_button.disabled = file_dialog.get_ok_button().disabled