Skip to content
This repository has been archived by the owner on Feb 27, 2024. It is now read-only.

Commit

Permalink
Fix widget color controller (delete, update, reset) (#126)
Browse files Browse the repository at this point in the history
  • Loading branch information
RPicster authored Nov 23, 2022
1 parent 5975af8 commit 471baeb
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 9 deletions.
5 changes: 5 additions & 0 deletions src/components/dashboard/new_widget_popup/color_condition.gd
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ func set_value(new_value : float):
func set_color(new_color : Color):
color = new_color
condition[1] = color
emit_signal("condition_changed")
$PanelContainer/HBoxContainer/HexColorPicker.color = color

func _on_SpinBox_value_changed(new_value):
Expand All @@ -38,3 +39,7 @@ func set_variable_name(new_name : String):
func _on_HexColorPicker_color_changed(new_color):
condition[1] = new_color
emit_signal("condition_changed")


func _on_DeleteButton_pressed():
queue_free()
15 changes: 8 additions & 7 deletions src/components/dashboard/new_widget_popup/color_condition.tscn
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ margin_bottom = -1042.0
script = ExtResource( 2 )

[node name="PanelContainer" type="PanelContainer" parent="."]
margin_right = 374.0
margin_right = 368.0
margin_bottom = 53.0

[node name="HBoxContainer" type="HBoxContainer" parent="PanelContainer"]
margin_left = 10.0
margin_top = 10.0
margin_right = 364.0
margin_right = 358.0
margin_bottom = 43.0

[node name="HexColorPicker" parent="PanelContainer/HBoxContainer" instance=ExtResource( 4 )]
Expand All @@ -32,22 +32,23 @@ margin_bottom = 33.0
margin_left = 184.0
margin_top = 6.0
margin_right = 249.0
margin_bottom = 27.0
margin_bottom = 26.0
rect_min_size = Vector2( 65, 0 )
text = "at value"
align = 1

[node name="SpinBox" type="SpinBox" parent="PanelContainer/HBoxContainer"]
margin_left = 253.0
margin_right = 317.0
margin_right = 311.0
margin_bottom = 33.0
size_flags_horizontal = 3
max_value = inf

[node name="Button" parent="PanelContainer/HBoxContainer" instance=ExtResource( 3 )]
margin_left = 321.0
margin_right = 354.0
[node name="DeleteButton" parent="PanelContainer/HBoxContainer" instance=ExtResource( 3 )]
margin_left = 315.0
margin_right = 348.0
icon_tex = ExtResource( 1 )

[connection signal="color_changed" from="PanelContainer/HBoxContainer/HexColorPicker" to="." method="_on_HexColorPicker_color_changed"]
[connection signal="value_changed" from="PanelContainer/HBoxContainer/SpinBox" to="." method="_on_SpinBox_value_changed"]
[connection signal="pressed" from="PanelContainer/HBoxContainer/DeleteButton" to="." method="_on_DeleteButton_pressed"]
12 changes: 10 additions & 2 deletions src/components/dashboard/new_widget_popup/color_controller_ui.gd
Original file line number Diff line number Diff line change
@@ -1,26 +1,34 @@
class_name ColorControllerUi
extends MarginContainer

signal reset_color

var random_colors : PoolStringArray = ["#264653", "#2A9D8F", "#E9C46A", "#F4A261", "#E76F51"]
var color_controller : ColorController setget set_color_controller

onready var conditions_container := $VBoxContainer/ConditionsContainer
onready var condition_scene := preload("res://components/dashboard/new_widget_popup/color_condition.tscn")


func add_condition(value : float = 0.0, color : Color = Color.black):
func add_condition(value : float = 0.0, color : Color = Color(0,0,0,0)):
if color == Color(0,0,0,0):
color = random_colors[randi()%random_colors.size()]
var color_condition := condition_scene.instance()
color_condition.variable_name = color_controller.control_variable
conditions_container.add_child(color_condition)
color_condition.color = color
color_condition.value = value

color_condition.connect("tree_exited", self, "_on_condition_changed")
color_condition.connect("condition_changed", self, "_on_condition_changed")
_on_condition_changed()


func _on_condition_changed():
color_controller.conditions.clear()
for condition in conditions_container.get_children():
color_controller.conditions.append(condition.condition)
if color_controller.conditions.empty():
emit_signal("reset_color")


func set_color_controller(controller : ColorController):
Expand Down
6 changes: 6 additions & 0 deletions src/components/dashboard/new_widget_popup/new_widget_popup.gd
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ func create_preview(widget_type : String = "Indicator") -> void:
controller_ui.color_controller = child
controller_ui.size_flags_horizontal |= SIZE_EXPAND
controller_container.add_child(controller_ui)
controller_ui.connect("reset_color", self, "reset_widget_color")

for i in child.conditions.size():
var condition = child.conditions[i]
Expand Down Expand Up @@ -385,6 +386,11 @@ func update_new_data_vis():
new_data_source_container.visible = data_source_container.get_child_count() < preview_widget.max_data_sources


func reset_widget_color():
if preview_widget != null and preview_widget.has_method("reset_color"):
preview_widget.reset_color()


func update_preview() -> void:
update_new_data_vis()

Expand Down
4 changes: 4 additions & 0 deletions src/components/dashboard/widget_indicator/widget_indicator.gd
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,10 @@ func set_background_color(new_color) -> void:
grad_bg.self_modulate = new_color


func reset_color():
set_background_color(Style.col_map[Style.c.BG])


func set_value(new_value) -> void:
if new_value == null:
new_value = 0
Expand Down

0 comments on commit 471baeb

Please sign in to comment.