hook up downloading releases and templates to component

This commit is contained in:
2023-05-25 23:13:07 +03:00
parent 94c256b608
commit db5700b62d
4 changed files with 131 additions and 19 deletions

View File

@ -1,3 +1,43 @@
extends VBoxContainer
const ITEM_SCENE := preload("res://UI/Components/ReleaseItem.tscn")
@onready var release_items_container: VBoxContainer = %ReleaseItemsContainer
@onready var fetch_button: Button = %FetchButton
@onready var status_label: Label = %StatusLabel
func _ready() -> void:
ReleasesManager.releases_fetched.connect(releases_updated)
ReleasesManager.releases_fetched.connect(func(_x):
await get_tree().process_frame
fetch_button.disabled = false
)
fetch_button.pressed.connect(func():
ReleasesManager.fetch_releases()
fetch_button.disabled = true
)
ReleasesManager.fetch_releases(true)
ReleasesManager.status_update.connect(status_label.set_text)
func releases_updated(releases: ReleasesManager.Releases) -> void:
clear_releases()
for version in releases.releases:
var item: ReleaseItem = ITEM_SCENE.instantiate()
release_items_container.add_child(item)
item.set_version(version)
item.set_install_button_disabled(ReleasesManager.is_version_installed(version))
item.set_templates_button_disabled(ReleasesManager.is_version_templates_installed(version))
item.install_button_pressed.connect(ReleasesManager.download_release)
item.install_templates_button_pressed.connect(ReleasesManager.download_release)
ReleasesManager.version_downloaded.connect(item._on_version_downloaded)
ReleasesManager.export_templates_downloaded.connect(item._on_export_templates_downloaded)
func clear_releases() -> void:
for i in release_items_container.get_children():
i.queue_free()

View File

@ -46,6 +46,5 @@ alignment = 2
[node name="StatusLabel" type="Label" parent="HBoxContainer/HBoxContainer"]
unique_name_in_owner = true
visible = false
layout_mode = 2
text = "Downloading v..."
text = "Idle"