summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2022-07-20 19:16:15 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2022-08-18 13:42:44 +0000
commitb899a27c863da4fc294edba25c798344b6909fc0 (patch)
tree4faa53b65d0c2c8c2e02fad55bb9396b7f822b46
parent792c5271e2053b03710ecd621eb9372dad1185d1 (diff)
downloadqt-creator-b899a27c863da4fc294edba25c798344b6909fc0.tar.gz
StudioWelcome: Disable welcome page during download
Change-Id: Ic85dfd79e4c43822805ce2a7f392f9b0a5d2a923 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r--src/plugins/studiowelcome/examplecheckout.cpp16
-rw-r--r--src/plugins/studiowelcome/examplecheckout.h3
-rw-r--r--src/plugins/studiowelcome/studiowelcomeplugin.cpp9
3 files changed, 23 insertions, 5 deletions
diff --git a/src/plugins/studiowelcome/examplecheckout.cpp b/src/plugins/studiowelcome/examplecheckout.cpp
index cdb0e878c3..9131009f56 100644
--- a/src/plugins/studiowelcome/examplecheckout.cpp
+++ b/src/plugins/studiowelcome/examplecheckout.cpp
@@ -456,21 +456,28 @@ DataModelDownloader::DataModelDownloader(QObject * /* parent */)
&FileDownloader::progressChanged,
this,
&DataModelDownloader::progressChanged);
+
+ connect(&m_fileDownloader,
+ &FileDownloader::downloadFailed,
+ this,
+ &DataModelDownloader::downloadFailed);
}
-void DataModelDownloader::start()
+bool DataModelDownloader::start()
{
if (!enableDownload()) {
m_available = false;
emit availableChanged();
- return;
+ return false;
}
m_fileDownloader.setUrl(QUrl::fromUserInput(
"https://download.qt.io/learning/examples/qtdesignstudio/dataImports.zip"));
- connect(&m_fileDownloader, &FileDownloader::availableChanged, this, [this]() {
+ bool started = false;
+
+ connect(&m_fileDownloader, &FileDownloader::availableChanged, this, [this, &started]() {
m_available = m_fileDownloader.available();
@@ -484,6 +491,8 @@ void DataModelDownloader::start()
if (!m_forceDownload && (m_fileDownloader.lastModified() <= m_birthTime))
return;
+ started = true;
+
m_fileDownloader.start();
connect(&m_fileDownloader, &FileDownloader::finishedChanged, this, [this]() {
if (m_fileDownloader.finished()) {
@@ -501,6 +510,7 @@ void DataModelDownloader::start()
}
});
});
+ return started;
}
bool DataModelDownloader::exists() const
diff --git a/src/plugins/studiowelcome/examplecheckout.h b/src/plugins/studiowelcome/examplecheckout.h
index fae0fea336..42b8b9a41b 100644
--- a/src/plugins/studiowelcome/examplecheckout.h
+++ b/src/plugins/studiowelcome/examplecheckout.h
@@ -163,7 +163,7 @@ class DataModelDownloader : public QObject
public:
explicit DataModelDownloader(QObject *parent = nullptr);
- void start();
+ bool start();
bool exists() const;
bool available() const;
Utils::FilePath targetFolder() const;
@@ -174,6 +174,7 @@ signals:
void finished();
void availableChanged();
void progressChanged();
+ void downloadFailed();
private:
FileDownloader m_fileDownloader;
diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp
index 3fe21396a9..33d29afa95 100644
--- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp
+++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp
@@ -656,9 +656,16 @@ WelcomeMode::WelcomeMode()
m_modeWidget->engine()->clearComponentCache();
m_modeWidget->setSource(source);
m_modeWidget->rootObject()->setProperty("loadingProgress", 100);
+ m_modeWidget->setEnabled(true);
});
- m_dataModelDownloader->start();
+ connect(m_dataModelDownloader, &DataModelDownloader::downloadFailed, this, [this]() {
+ m_modeWidget->setEnabled(true);
+ });
+
+
+ if (m_dataModelDownloader->start())
+ m_modeWidget->setEnabled(false);
/*
connect(Core::ModeManager::instance(), &Core::ModeManager::currentModeChanged, this, [this](Utils::Id mode){