fix: adding new done boxes works correctly

This commit is contained in:
LunarAkai 2025-07-08 15:19:02 +02:00
commit 32cdffd8ec
11 changed files with 111 additions and 48 deletions

View file

@ -18,3 +18,6 @@ signal side_panel_color_changed(color: Color)
signal on_panel_created()
signal on_panel_requested(index)
signal on_add_entry_button_pressed(day_container: DayContainer)

View file

@ -133,12 +133,11 @@ text = "Whydt"
horizontal_alignment = 1
vertical_alignment = 1
[node name="UIManager" type="HBoxContainer" parent="Panel/VBoxContainer" node_paths=PackedStringArray("current_active_panel", "container_collection_box")]
[node name="UIManager" type="HBoxContainer" parent="Panel/VBoxContainer" node_paths=PackedStringArray("container_collection_box")]
unique_name_in_owner = true
layout_mode = 2
size_flags_vertical = 3
script = ExtResource("5_05tj4")
current_active_panel = NodePath("")
main_panel_scene = ExtResource("9_cqoei")
container_collection_box = NodePath("Panel/MarginContainer/ScrollContainer/ContainerBox")
container_button_scene = ExtResource("5_14o3q")

View file

@ -4,7 +4,8 @@ const uuid_util = preload('res://addons/uuid/uuid.gd')
@export var container_name_label: RichTextLabel
@export var style_box: StyleBoxFlat
@export var panel_main_color: Color
@export var day_container: Container
@export var day_containers: Array[DayContainer] = []
@export_group("Entries")
@export var done_boxes: Array[DoneBox] = []
@ -20,6 +21,11 @@ func _ready() -> void:
#SignalBus.edit_window_text_saved.connect(on_edit_window_text_save)
SignalBus.on_entry_deleted.connect(on_entry_deleted)
for child in get_children(true):
if is_instance_of(child, DayContainer):
day_containers.append(child)
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
@ -34,13 +40,7 @@ func create_panel_name() -> void:
var panel_name: String = "Container %s" % id
container_name_label.text = panel_name
func _on_add_button_pressed() -> void:
var new_done_box: DoneBox = done_box_scene.instantiate()
done_boxes.append(new_done_box)
day_container.add_child(new_done_box)
day_container.move_child(new_done_box, -1)
print(done_boxes)
func on_entry_deleted(node: Node) -> void:

View file

@ -4,10 +4,10 @@
[ext_resource type="Script" uid="uid://bmsw85eprqln1" path="res://src/UI/main_panel.gd" id="2_5qsb6"]
[ext_resource type="StyleBox" uid="uid://b7rqx5hwj7wff" path="res://src/UI/main_panel.tres" id="3_enj05"]
[ext_resource type="Script" uid="uid://b4q5pgorn5osd" path="res://src/UI/m_panel.gd" id="4_1citv"]
[ext_resource type="Texture2D" uid="uid://dof65a47bfapk" path="res://src/assets/icons/library-plus.svg" id="5_1citv"]
[ext_resource type="PackedScene" uid="uid://d1b10b44uwo8y" path="res://src/UI/done_box.tscn" id="5_bb2jg"]
[ext_resource type="PackedScene" uid="uid://cxm7lqciow8sh" path="res://src/UI/main_panel/day_container.tscn" id="6_bb2jg"]
[node name="MainPanel" type="ScrollContainer" node_paths=PackedStringArray("container_name_label", "day_container")]
[node name="MainPanel" type="ScrollContainer" node_paths=PackedStringArray("container_name_label")]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
@ -19,7 +19,6 @@ horizontal_scroll_mode = 0
script = ExtResource("2_5qsb6")
container_name_label = NodePath("Panel/VBoxContainer/RichTextLabel")
style_box = ExtResource("3_enj05")
day_container = NodePath("Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer")
done_box_scene = ExtResource("5_bb2jg")
[node name="Panel" type="Panel" parent="."]
@ -60,40 +59,5 @@ theme_override_constants/margin_bottom = 10
[node name="VBoxContainer" type="VBoxContainer" parent="Panel/VBoxContainer/MarginContainer"]
layout_mode = 2
[node name="DayContainer" type="VBoxContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer"]
[node name="DayContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer" instance=ExtResource("6_bb2jg")]
layout_mode = 2
[node name="DateMarker" type="HBoxContainer" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer"]
layout_mode = 2
size_flags_vertical = 0
theme_override_constants/separation = -150
[node name="HSeparator" type="HSeparator" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/DateMarker"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 10
[node name="RichTextLabel" type="RichTextLabel" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/DateMarker"]
layout_mode = 2
size_flags_horizontal = 3
bbcode_enabled = true
text = "[b]DD.MM.YYYY[b]"
fit_content = true
horizontal_alignment = 1
vertical_alignment = 1
[node name="HSeparator2" type="HSeparator" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer/DayContainer/DateMarker"]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 10
[node name="Button" type="Button" parent="Panel/VBoxContainer/MarginContainer/VBoxContainer"]
layout_mode = 2
theme = ExtResource("1_c0dr6")
text = "Add"
icon = ExtResource("5_1citv")
icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
[connection signal="pressed" from="Panel/VBoxContainer/MarginContainer/VBoxContainer/Button" to="." method="_on_add_button_pressed"]

View file

@ -0,0 +1,17 @@
extends Button
@export var container: DayContainer
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
pass # Replace with function body.
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass
func _on_pressed() -> void:
print(self)
SignalBus.on_add_entry_button_pressed.emit(container)

View file

@ -0,0 +1 @@
uid://dv2i56x60tobl

View file

@ -0,0 +1,24 @@
[gd_scene format=3 uid="uid://n1r3urir7tik"]
[node name="DateMarker" type="HBoxContainer"]
size_flags_vertical = 0
theme_override_constants/separation = -150
[node name="HSeparator" type="HSeparator" parent="."]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 10
[node name="RichTextLabel" type="RichTextLabel" parent="."]
layout_mode = 2
size_flags_horizontal = 3
bbcode_enabled = true
text = "[b]DD.MM.YYYY[b]"
fit_content = true
horizontal_alignment = 1
vertical_alignment = 1
[node name="HSeparator2" type="HSeparator" parent="."]
layout_mode = 2
size_flags_horizontal = 3
theme_override_constants/separation = 10

View file

@ -0,0 +1,13 @@
class_name DayContainer extends VBoxContainer
const uuid_util = preload('res://addons/uuid/uuid.gd')
var uuid
# Called when the node enters the scene tree for the first time.
func _ready() -> void:
uuid = uuid_util.v4()
# Called every frame. 'delta' is the elapsed time since the previous frame.
func _process(delta: float) -> void:
pass

View file

@ -0,0 +1 @@
uid://b4nvd4riqb6lg

View file

@ -0,0 +1,31 @@
[gd_scene load_steps=6 format=3 uid="uid://cxm7lqciow8sh"]
[ext_resource type="PackedScene" uid="uid://n1r3urir7tik" path="res://src/UI/main_panel/date_marker.tscn" id="1_bor7d"]
[ext_resource type="Script" uid="uid://b4nvd4riqb6lg" path="res://src/UI/main_panel/day_container.gd" id="1_kpgep"]
[ext_resource type="Theme" uid="uid://bal6yp0a25hf2" path="res://src/theme/main_theme.tres" id="2_5bajb"]
[ext_resource type="Texture2D" uid="uid://dof65a47bfapk" path="res://src/assets/icons/library-plus.svg" id="3_kpgep"]
[ext_resource type="Script" uid="uid://dv2i56x60tobl" path="res://src/UI/main_panel/add_entry_button.gd" id="4_5bajb"]
[node name="DayContainer" type="VBoxContainer"]
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_kpgep")
[node name="DateMarker" parent="." instance=ExtResource("1_bor7d")]
layout_mode = 2
[node name="AddEntryButton" type="Button" parent="." node_paths=PackedStringArray("container")]
layout_mode = 2
theme = ExtResource("2_5bajb")
text = "Add"
icon = ExtResource("3_kpgep")
icon_alignment = 1
vertical_icon_alignment = 0
expand_icon = true
script = ExtResource("4_5bajb")
container = NodePath("..")
[connection signal="pressed" from="AddEntryButton" to="AddEntryButton" method="_on_pressed"]

View file

@ -25,6 +25,7 @@ func _ready() -> void:
SignalBus.edit_window_text_saved.connect(_on_edit_window_text_saved)
#SignalBus.on_entry_deleted.connect(on_entry_deleted)
SignalBus.on_add_entry_button_pressed.connect(_on_add_button_pressed)
# Called every frame. 'delta' is the elapsed time since the previous frame.
@ -78,4 +79,13 @@ func _on_edit_window_text_saved(window: Window, text: String, node: Node) -> voi
func rename_container_text_box_when_button_is_renamed(id) -> void:
panel_array[id].container_name_label.text = container_selection_buttons[id].button.text
func _on_add_button_pressed(container: DayContainer) -> void:
print("pressed")
var new_done_box: DoneBox = current_active_panel.done_box_scene.instantiate()
current_active_panel.done_boxes.append(new_done_box)
container.add_child(new_done_box)
container.move_child(new_done_box, -2)
print(current_active_panel.done_boxes)