diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2022-01-19 22:55:36 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-19 22:55:36 +0100 |
commit | c13319db8d26604bc4074883f417512138fdfc57 (patch) | |
tree | 90d79444d8f0c32b3ee1a30e29a50296f4828cd6 | |
parent | d661835a1878cd26c37303a3d6550d60e287506b (diff) | |
parent | 01845510f6b28c94eabf039fb1c97ec6bf8246c5 (diff) |
Merge pull request #56967 from pycbouh/assetlib-ux-in-progress
Fix Asset Library UX when an asset is being downloaded
-rw-r--r-- | editor/editor_asset_installer.cpp | 2 | ||||
-rw-r--r-- | editor/plugins/asset_library_editor_plugin.cpp | 15 | ||||
-rw-r--r-- | editor/plugins/asset_library_editor_plugin.h | 3 |
3 files changed, 17 insertions, 3 deletions
diff --git a/editor/editor_asset_installer.cpp b/editor/editor_asset_installer.cpp index 5d4c746785..b89b20b8cd 100644 --- a/editor/editor_asset_installer.cpp +++ b/editor/editor_asset_installer.cpp @@ -275,7 +275,7 @@ void EditorAssetInstaller::open(const String &p_path, int p_depth) { asset_contents->set_text(vformat(TTR("Contents of asset \"%s\" - No files conflict with your project:"), asset_name)); } - popup_centered_ratio(); + popup_centered_ratio(0.5); updating = false; } diff --git a/editor/plugins/asset_library_editor_plugin.cpp b/editor/plugins/asset_library_editor_plugin.cpp index 5fb3040b75..07f0a83c6e 100644 --- a/editor/plugins/asset_library_editor_plugin.cpp +++ b/editor/plugins/asset_library_editor_plugin.cpp @@ -374,7 +374,7 @@ void EditorAssetLibraryItemDownload::_http_download_completed(int p_status, int } install_button->set_disabled(false); - status->set_text(TTR("Success!")); + status->set_text(TTR("Ready to install!")); // Make the progress bar invisible but don't reflow other Controls around it. progress->set_modulate(Color(0, 0, 0, 0)); @@ -462,6 +462,10 @@ void EditorAssetLibraryItemDownload::_close() { queue_delete(); } +bool EditorAssetLibraryItemDownload::can_install() const { + return !install_button->is_disabled(); +} + void EditorAssetLibraryItemDownload::install() { String file = download->get_download_file(); @@ -1265,9 +1269,16 @@ void EditorAssetLibrary::_http_request_completed(int p_status, int p_code, const EditorAssetLibraryItemDownload *download_item = _get_asset_in_progress(description->get_asset_id()); if (download_item) { - description->get_ok_button()->set_text(TTR("Install")); + if (download_item->can_install()) { + description->get_ok_button()->set_text(TTR("Install")); + description->get_ok_button()->set_disabled(false); + } else { + description->get_ok_button()->set_text(TTR("Downloading...")); + description->get_ok_button()->set_disabled(true); + } } else { description->get_ok_button()->set_text(TTR("Download")); + description->get_ok_button()->set_disabled(false); } if (r.has("icon_url") && !r["icon_url"].operator String().is_empty()) { diff --git a/editor/plugins/asset_library_editor_plugin.h b/editor/plugins/asset_library_editor_plugin.h index 058aafc221..29d26411f3 100644 --- a/editor/plugins/asset_library_editor_plugin.h +++ b/editor/plugins/asset_library_editor_plugin.h @@ -164,7 +164,10 @@ public: void set_external_install(bool p_enable) { external_install = p_enable; } int get_asset_id() { return asset_id; } void configure(const String &p_title, int p_asset_id, const Ref<Texture2D> &p_preview, const String &p_download_url, const String &p_sha256_hash); + + bool can_install() const; void install(); + EditorAssetLibraryItemDownload(); }; |