aboutsummaryrefslogtreecommitdiff
path: root/option_set
diff options
context:
space:
mode:
Diffstat (limited to 'option_set')
-rw-r--r--option_set/option_set.gd24
1 files changed, 9 insertions, 15 deletions
diff --git a/option_set/option_set.gd b/option_set/option_set.gd
index 2ac1475..637d033 100644
--- a/option_set/option_set.gd
+++ b/option_set/option_set.gd
@@ -28,30 +28,24 @@ func _ready():
func show_options(options_array: Array):
options.clear_items()
- var main = get_node("/root/main")
- main.remove_child(options)
options.add_items(options_array)
if options_array[selected_idx] == input.text:
options.select(selected_idx)
else:
options.unselect()
- options.connect("item_selected", self, "option_selected", [], CONNECT_ONESHOT)
- popup.popup_control(input.placeholder_text, options)
-# popup.connect("item_selected", self, "option_selected", [], CONNECT_ONESHOT)
-# popup.clear_items()
-# popup_opt.visible = true
-# get_node("/root/main/popup/blur")
-# popup.add_items(options)
+ options.connect("item_selected", self, "popup_result", [])
+ options.connect("nothing_selected", self, "popup_result", [-1, ""])
+ popup.connect("dismissed", self, "popup_result", [selected_idx, input.text])
+ popup.open_popup(input.placeholder_text, options)
-func option_selected(index: int, text: String):
+func popup_result(index: int, text: String):
+ options.disconnect("item_selected", self, "popup_result")
+ options.disconnect("nothing_selected", self, "popup_result")
+ popup.disconnect("dismissed", self, "popup_result")
selected_idx = index
input.text = text
input.caret_position = input.max_length
- button.release_focus()
- options.visible = false
- var main = get_node("/root/main")
- main.add_child(options)
-
+ popup.close_popup()