add basic functionality for adding group items

This commit is contained in:
2023-03-06 16:33:46 +03:00
parent 8fdec75ec9
commit f0ce658518
8 changed files with 109 additions and 7 deletions

View File

@ -9,17 +9,20 @@ class_name GroupMenu
@onready var add_install_button_container: CenterContainer = %AddInstallButtonContainer
@onready var add_install_button: Button = %AddInstallButton
@onready var description_label: Label = %DescriptionLabel
@onready var inner_separator: HSeparator = %InnerSeparator
@onready var edit_group_button: Button = %EditGroupButton
@onready var delete_group_button: Button = %DeleteGroupButton
@onready var header_container: HBoxContainer = %HeaderContainer
var group_metadata: GroupMetadata
signal add_install_button_pressed
signal edit_group_button_pressed
signal delete_button_pressed
signal header_text_changed(new_text: String)
signal header_text_changed(new_text: String, old_text: String)
func _ready() -> void:
@ -79,6 +82,7 @@ func set_children_visible(p_visible: bool) -> void:
collapse_button.text = "v" if p_visible else ">"
child_container.visible = p_visible
add_install_button_container.visible = p_visible
inner_separator.visible = p_visible
func add_custom(control: Control) -> void:
@ -104,8 +108,9 @@ func setup_rename() -> void:
l.text_submitted.connect(
func(new_text: String):
var old_text: = header_text_label.text
header_text_label.text = new_text
header_text_changed.emit(new_text)
header_text_changed.emit(new_text, old_text)
reenable.call()
)
@ -113,6 +118,14 @@ func setup_rename() -> void:
l.grab_focus()
func setup_from_metadata(header_text: String, p_group_metadata: GroupMetadata) -> void:
group_metadata = p_group_metadata
set_text(header_text)
set_description(group_metadata.description)
# TODO: add installs
# TODO: add icon
func _on_header_text_label_gui_input(event: InputEvent) -> void:
if event is InputEventMouseButton && \
(event as InputEventMouseButton).double_click && \

View File

@ -62,7 +62,8 @@ layout_mode = 2
unique_name_in_owner = true
layout_mode = 2
[node name="HSeparator2" type="HSeparator" parent="."]
[node name="InnerSeparator" type="HSeparator" parent="."]
unique_name_in_owner = true
layout_mode = 2
[node name="AddInstallButtonContainer" type="CenterContainer" parent="."]
@ -73,3 +74,7 @@ layout_mode = 2
unique_name_in_owner = true
layout_mode = 2
text = "New Install"
[node name="HSeparator3" type="HSeparator" parent="."]
layout_mode = 2
theme_override_constants/separation = 16

View File

@ -7,6 +7,8 @@ class_name InstallItem
@onready var delete_item_button: Button = %DeleteItemButton
@onready var launch_item_button: Button = %LaunchItemButton
var install_metadata: InstallMetadata
signal edit_item_button_pressed
signal delete_item_button_pressed
signal launch_item_button_pressed

View File

@ -26,3 +26,10 @@ func get_overrides() -> Dictionary:
res.merge(item.get_property())
return res
func clear() -> void:
override_item_container.get_children().map(
func(c: OverrideEditorSettingsMenuItem):
c.queue_free()
)