32 lines
770 B
GDScript
32 lines
770 B
GDScript
tool
|
|
extends Control
|
|
|
|
onready var line_edit := $line_edit
|
|
onready var button := $button
|
|
onready var file_dialog := $file_dialog
|
|
|
|
export(String, FILE) var selected_file setget _set_selected_file
|
|
export(String) var file_filter = ""
|
|
|
|
func _ready():
|
|
line_edit.text = selected_file
|
|
|
|
func _set_selected_file(value : String):
|
|
if value != selected_file:
|
|
selected_file = value
|
|
if line_edit:
|
|
line_edit.text = selected_file
|
|
|
|
func _on_button_pressed():
|
|
file_dialog.clear_filters()
|
|
file_dialog.add_filter(file_filter)
|
|
file_dialog.filename = selected_file
|
|
file_dialog.popup_centered_ratio(0.5)
|
|
|
|
func _on_file_dialog_file_selected(path : String):
|
|
if path != selected_file:
|
|
_set_selected_file(path)
|
|
emit_signal("selected_file_changed")
|
|
|
|
signal selected_file_changed()
|