diff options
author | tpart <tpart120@proton.me> | 2024-09-20 15:19:03 +0200 |
---|---|---|
committer | tpart <tpart120@proton.me> | 2024-09-20 15:19:03 +0200 |
commit | 03b05206bd21e24ae338af0ceda8d04c12c8b242 (patch) | |
tree | 5f7ba4b18f79ab6a7fb41e5a7afc4614ff943ab7 | |
parent | d6011577d008a04a3fa52bba4ca80c7bce65fe2e (diff) | |
download | hurrycurry-03b05206bd21e24ae338af0ceda8d04c12c8b242.tar hurrycurry-03b05206bd21e24ae338af0ceda8d04c12c8b242.tar.bz2 hurrycurry-03b05206bd21e24ae338af0ceda8d04c12c8b242.tar.zst |
Fix crash in settings if row is null
-rw-r--r-- | client/menu/settings/dropdown_setting.gd | 6 | ||||
-rw-r--r-- | client/menu/settings/input/input_setting.gd | 6 | ||||
-rw-r--r-- | client/menu/settings/range_setting.gd | 6 | ||||
-rw-r--r-- | client/menu/settings/text_setting.gd | 6 | ||||
-rw-r--r-- | client/menu/settings/toggle_setting.gd | 6 |
5 files changed, 25 insertions, 5 deletions
diff --git a/client/menu/settings/dropdown_setting.gd b/client/menu/settings/dropdown_setting.gd index 3d6b7c80..7ce92ccd 100644 --- a/client/menu/settings/dropdown_setting.gd +++ b/client/menu/settings/dropdown_setting.gd @@ -26,6 +26,10 @@ func create_row(): var row = super() row.value_node = OptionButton.new() for i in options: row.value_node.add_item(tr(nskey + "." + i)) - Settings.hook_changed_init(key, true, func (value): row.value_node.select(options.find(value))) + Settings.hook_changed_init(key, true, + func(value): + if is_instance_valid(row): + row.value_node.select(options.find(value)) + ) row.value_node.item_selected.connect(func(item): Global.set_setting(key, options[item])) return row diff --git a/client/menu/settings/input/input_setting.gd b/client/menu/settings/input/input_setting.gd index bf5fc2c6..e01b4c0c 100644 --- a/client/menu/settings/input/input_setting.gd +++ b/client/menu/settings/input/input_setting.gd @@ -22,7 +22,11 @@ const INPUT_VALUE_NODE_SCENE = preload("res://menu/settings/input/input_value_no func create_row(): var row = super() row.value_node = INPUT_VALUE_NODE_SCENE.instantiate() - Settings.hook_changed_init(key, true, func(value): row.value_node.value = value) + Settings.hook_changed_init(key, true, + func(value): + if is_instance_valid(row): + row.value_node.value = value + ) row.value_node.changed.connect(func(): Global.set_setting(key, row.value_node.value)) return row diff --git a/client/menu/settings/range_setting.gd b/client/menu/settings/range_setting.gd index b119a205..f2e656dd 100644 --- a/client/menu/settings/range_setting.gd +++ b/client/menu/settings/range_setting.gd @@ -36,6 +36,10 @@ func create_row(): row.value_node.max_value = max_value row.value_node.tick_count = abs(max_value - min_value) if tick_count == null else tick_count row.value_node.step = 0 if smooth else (1 if tick_count == null else abs(max_value - min_value) / (tick_count - 1)) - Settings.hook_changed_init(key, true, func(value): row.value_node.value = value) + Settings.hook_changed_init(key, true, + func(value): + if is_instance_valid(row): + row.value_node.value = value + ) row.value_node.value_changed.connect(func(value): Global.set_setting(key, value)) return row diff --git a/client/menu/settings/text_setting.gd b/client/menu/settings/text_setting.gd index dc9352ab..991ecd1d 100644 --- a/client/menu/settings/text_setting.gd +++ b/client/menu/settings/text_setting.gd @@ -28,5 +28,9 @@ func create_row(): row.value_node = LineEdit.new() row.value_node.placeholder_text = placeholder row.value_node.text_changed.connect(func(text): Global.set_setting(key, text)) - Settings.hook_changed_init(key, true, func(text): row.value_node.text = text) + Settings.hook_changed_init(key, true, + func(text): + if is_instance_valid(row): + row.value_node.text = text + ) return row diff --git a/client/menu/settings/toggle_setting.gd b/client/menu/settings/toggle_setting.gd index 8e0c030c..8ec97ff6 100644 --- a/client/menu/settings/toggle_setting.gd +++ b/client/menu/settings/toggle_setting.gd @@ -24,5 +24,9 @@ func create_row(): var row = super() row.value_node = CheckButton.new() row.value_node.pressed.connect(func(): Global.set_setting(key, row.value_node.button_pressed)) - Settings.hook_changed_init(key, true, func(value): row.value_node.button_pressed = value) + Settings.hook_changed_init(key, true, + func(value): + if is_instance_valid(row): + row.value_node.button_pressed = value + ) return row |