aboutsummaryrefslogtreecommitdiff
path: root/client/menu/settings/dropdown_setting.gd
diff options
context:
space:
mode:
Diffstat (limited to 'client/menu/settings/dropdown_setting.gd')
-rw-r--r--client/menu/settings/dropdown_setting.gd16
1 files changed, 6 insertions, 10 deletions
diff --git a/client/menu/settings/dropdown_setting.gd b/client/menu/settings/dropdown_setting.gd
index 62162320..8dffce5a 100644
--- a/client/menu/settings/dropdown_setting.gd
+++ b/client/menu/settings/dropdown_setting.gd
@@ -22,14 +22,10 @@ func _init(new_id: String, new_default, new_options: Array):
super(new_id, new_default)
options = new_options
-func _update_row():
- super()
+func create_row():
+ var row = super()
row.value_node = OptionButton.new()
- for i in options:
- row.value_node.add_item(tr(nskey + "." + i))
- row.value_node.select(options.find(Global.get_setting(key)))
- if not row.value_node.item_selected.is_connected(from_ui):
- row.value_node.item_selected.connect(from_ui)
-
-func from_ui(index):
- Global.set_setting(key, options[index])
+ for i in options: row.value_node.add_item(tr(nskey + "." + i))
+ Settings.hook_changed_init(func (value): row.value_node.select(options.find(Global.get_setting(value))))
+ row.value_node.item_selected.connect(func(item): Global.set_setting(key, options[item]))
+ return row