godot_data_editor/input_dialog.gd
2017-08-03 11:35:44 +02:00

57 lines
1.5 KiB
GDScript

tool
extends ConfirmationDialog
#var text = ""
#var title = ""
var placeholder_1 = ""
var placeholder_2 = ""
var caller = null
var callback_method = ""
onready var line_edit_1 = get_node("VBox/LineEdit1")
onready var line_edit_2 = get_node("VBox/LineEdit2")
#func _init(text, placerholder_1 = "", placeholder_2 = ""):
func popup(caller, callback_method, title, text, placeholder_1 = "", default_text_1 = "", placeholder_2 = "", default_text_2 = ""):
self.caller = caller
self.callback_method = callback_method
self.placeholder_1 = placeholder_1
self.placeholder_2 = placeholder_2
caller.connect("input_dialog_confirmed", caller, callback_method, [])
set_text(text)
set_title(title)
if placeholder_1 == "":
line_edit_1.hide()
else:
line_edit_1.show()
line_edit_1.set_placeholder(placeholder_1)
if placeholder_2 == "":
line_edit_2.hide()
else:
line_edit_2.show()
line_edit_2.set_placeholder(placeholder_2)
line_edit_1.set_text(default_text_1)
line_edit_2.set_text(default_text_2)
self.popup_centered()
if not line_edit_1.is_hidden():
line_edit_1.grab_focus()
func _on_ConfirmationDialog_confirmed():
var text1 = line_edit_1.get_text().strip_edges()
var text2 = line_edit_2.get_text().strip_edges()
if placeholder_2:
caller.emit_signal("input_dialog_confirmed", text1, text2)
elif placeholder_1:
caller.emit_signal("input_dialog_confirmed", text1)
else:
caller.emit_signal("input_dialog_confirmed")
caller.disconnect("input_dialog_confirmed", caller, callback_method)