aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortpart <tpart120@proton.me>2024-06-30 22:52:22 +0200
committertpart <tpart120@proton.me>2024-06-30 22:52:22 +0200
commit70e909d62b14d4eca8e42d16c34ab9ac1c3975ee (patch)
treec12a787ce75f8fed1a061dcc334ee7486ebff993
parent228e60692a265a879b4cd64acb6311f8acb906e2 (diff)
downloadhurrycurry-70e909d62b14d4eca8e42d16c34ab9ac1c3975ee.tar
hurrycurry-70e909d62b14d4eca8e42d16c34ab9ac1c3975ee.tar.bz2
hurrycurry-70e909d62b14d4eca8e42d16c34ab9ac1c3975ee.tar.zst
Add reset button
-rw-r--r--client/menu/settings_row.gd22
-rw-r--r--client/menu/settings_row.tscn19
2 files changed, 37 insertions, 4 deletions
diff --git a/client/menu/settings_row.gd b/client/menu/settings_row.gd
index 30b1fd67..d57bbee0 100644
--- a/client/menu/settings_row.gd
+++ b/client/menu/settings_row.gd
@@ -6,14 +6,16 @@ signal apply_preset
@onready var value_parent = $HBoxContainer/BoxContainer
@onready var label = $HBoxContainer/Label
+var setting
+var default
var value_node
var description = tr("no value was given to the row")
func setup(key: String, dict: Dictionary, defaults: Dictionary):
- var setting = dict[key]
+ setting = dict[key]
description = setting["description"]
var value = setting["value"]
- var default = defaults[key]["value"]
+ default = defaults[key]["value"]
match setting["type"]:
"toggle":
value_node = CheckButton.new()
@@ -71,3 +73,19 @@ func get_value():
return null
else:
return null
+
+func _on_reset_pressed():
+ match setting["type"]:
+ "toggle":
+ value_node.button_pressed = default
+ "line":
+ value_node.text = default
+ "dropdown":
+ value_node.select(default)
+ "dropdown_preset":
+ value_node.select(default)
+ value_node.emit_signal("item_selected", value_node.selected)
+ "range":
+ value_node.value = default
+ _:
+ push_error("Could not reset setting: Unknown setting type \"%s\"" % setting["type"])
diff --git a/client/menu/settings_row.tscn b/client/menu/settings_row.tscn
index b083d291..d08963d6 100644
--- a/client/menu/settings_row.tscn
+++ b/client/menu/settings_row.tscn
@@ -1,11 +1,20 @@
-[gd_scene load_steps=2 format=3 uid="uid://o5e5vpem8w0k"]
+[gd_scene load_steps=6 format=3 uid="uid://o5e5vpem8w0k"]
+[ext_resource type="Theme" uid="uid://b0qmvo504e457" path="res://menu/theme/theme.tres" id="1_fk0r2"]
[ext_resource type="Script" path="res://menu/settings_row.gd" id="1_lxjnc"]
+[ext_resource type="FontFile" uid="uid://5ixo6b3bd3km" path="res://menu/theme/font-josefin-sans.woff2" id="3_qh45r"]
+
+[sub_resource type="StyleBoxEmpty" id="StyleBoxEmpty_pk3rs"]
+content_margin_left = 16.0
+
+[sub_resource type="FontVariation" id="FontVariation_o6i7s"]
+base_font = ExtResource("3_qh45r")
[node name="SettingsRow" type="PanelContainer"]
offset_right = 105.0
offset_bottom = 23.0
size_flags_horizontal = 3
+theme = ExtResource("1_fk0r2")
script = ExtResource("1_lxjnc")
[node name="HBoxContainer" type="HBoxContainer" parent="."]
@@ -14,11 +23,17 @@ layout_mode = 2
[node name="Label" type="Label" parent="HBoxContainer"]
layout_mode = 2
size_flags_horizontal = 3
+theme_override_styles/normal = SubResource("StyleBoxEmpty_pk3rs")
[node name="BoxContainer" type="BoxContainer" parent="HBoxContainer"]
custom_minimum_size = Vector2(300, 50)
layout_mode = 2
alignment = 2
-[node name="Button" type="Button" parent="HBoxContainer"]
+[node name="Reset" type="Button" parent="HBoxContainer"]
layout_mode = 2
+theme_override_fonts/font = SubResource("FontVariation_o6i7s")
+theme_override_font_sizes/font_size = 24
+text = "↺"
+
+[connection signal="pressed" from="HBoxContainer/Reset" to="." method="_on_reset_pressed"]