hook up downloading releases and templates to component
This commit is contained in:
@ -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()
|
||||
|
@ -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"
|
||||
|
Reference in New Issue
Block a user