diff options
author | Thomas Hartmann <thomas.hartmann@qt.io> | 2022-01-14 17:47:39 +0100 |
---|---|---|
committer | Thomas Hartmann <thomas.hartmann@qt.io> | 2022-01-17 15:09:43 +0000 |
commit | dab8caf6d98ce5a94309dfe01bbffdef00293d2e (patch) | |
tree | 95794d2252d8424609bfaec7d2f76f031a10e8d2 | |
parent | 4c21852ec66715bd56881eb482f5e0c94f81ef3a (diff) | |
download | qt-creator-dab8caf6d98ce5a94309dfe01bbffdef00293d2e.tar.gz |
StudioWelcome: Enable integrating download progress
Change-Id: Iad18c1a0bc49f87a98dcdff46542cf4c373de875
Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
-rw-r--r-- | src/plugins/studiowelcome/examplecheckout.cpp | 10 | ||||
-rw-r--r-- | src/plugins/studiowelcome/examplecheckout.h | 5 | ||||
-rw-r--r-- | src/plugins/studiowelcome/qml/downloaddialog/main.qml | 9 | ||||
-rw-r--r-- | src/plugins/studiowelcome/studiowelcomeplugin.cpp | 7 |
4 files changed, 24 insertions, 7 deletions
diff --git a/src/plugins/studiowelcome/examplecheckout.cpp b/src/plugins/studiowelcome/examplecheckout.cpp index 80e32d7263..39beb51c62 100644 --- a/src/plugins/studiowelcome/examplecheckout.cpp +++ b/src/plugins/studiowelcome/examplecheckout.cpp @@ -45,7 +45,7 @@ using namespace Utils; ExampleCheckout::ExampleCheckout(QObject *) {} -void ExampleCheckout::checkoutExample(const QUrl &url) +void ExampleCheckout::registerTypes() { FileDownloader::registerQmlType(); static bool once = []() { @@ -55,6 +55,11 @@ void ExampleCheckout::checkoutExample(const QUrl &url) }(); QTC_ASSERT(once, ;); +} + +void ExampleCheckout::checkoutExample(const QUrl &url, const QString &tempFile, const QString &completeBaseFileName) +{ + registerTypes(); m_dialog.reset(new QDialog(Core::ICore::dialogParent())); m_dialog->setModal(true); @@ -80,6 +85,8 @@ void ExampleCheckout::checkoutExample(const QUrl &url) QTC_ASSERT(rootObject, qWarning() << "QML error"; return ); rootObject->setProperty("url", url); + rootObject->setProperty("tempFile", tempFile); + rootObject->setProperty("completeBaseName", completeBaseFileName); m_dialog->show(); @@ -260,6 +267,7 @@ void FileExtractor::setSourceFile(QString &sourceFilePath) void FileExtractor::setArchiveName(QString &filePath) { m_archiveName = filePath; + emit targetFolderExistsChanged(); } const QString FileExtractor::detailedText() diff --git a/src/plugins/studiowelcome/examplecheckout.h b/src/plugins/studiowelcome/examplecheckout.h index 0038d7f2c0..1f8cf00d84 100644 --- a/src/plugins/studiowelcome/examplecheckout.h +++ b/src/plugins/studiowelcome/examplecheckout.h @@ -43,18 +43,21 @@ class ExampleCheckout : public QObject public: explicit ExampleCheckout(QObject *parent = nullptr); - Q_INVOKABLE void checkoutExample(const QUrl &url); + Q_INVOKABLE void checkoutExample(const QUrl &url, const QString &tempFile, const QString &completeBaseFileName); QString extractionFolder() const; ~ExampleCheckout(); + static void registerTypes(); + public slots: void handleCancel(); void handleAccepted(); signals: void finishedSucessfully(); + void progressChanged(int); private: std::unique_ptr<QDialog> m_dialog; diff --git a/src/plugins/studiowelcome/qml/downloaddialog/main.qml b/src/plugins/studiowelcome/qml/downloaddialog/main.qml index cb7f62a68c..33acd7e3e4 100644 --- a/src/plugins/studiowelcome/qml/downloaddialog/main.qml +++ b/src/plugins/studiowelcome/qml/downloaddialog/main.qml @@ -45,15 +45,18 @@ Rectangle { signal canceled signal accepted + property string tempFile + property string completeBaseName + StackLayout { id: stackLayout anchors.fill: parent - currentIndex: 0 + currentIndex: root.tempFile.length === 0 ? 0 : 1 FileExtractor { id: fileExtractor - sourceFile: downloader.tempFile - archiveName: downloader.completeBaseName + archiveName: root.completeBaseName.length === 0 ? downloader.completeBaseName : root.completeBaseName + sourceFile: root.tempFile.length === 0 ? downloader.tempFile : root.tempFile } FileDownloader { diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index d88dbf5072..424374b8e7 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -231,11 +231,13 @@ public: Q_INVOKABLE void openExample(const QString &example, const QString &formFile, const QString &url, - const QString &explicitQmlproject) + const QString &explicitQmlproject, + const QString &tempFile, + const QString &completeBaseName) { if (!url.isEmpty()) { ExampleCheckout *checkout = new ExampleCheckout; - checkout->checkoutExample(QUrl::fromUserInput(url)); + checkout->checkoutExample(QUrl::fromUserInput(url), tempFile, completeBaseName); connect(checkout, &ExampleCheckout::finishedSucessfully, this, @@ -631,6 +633,7 @@ WelcomeMode::WelcomeMode() setContext(Core::Context(Core::Constants::C_WELCOME_MODE)); QFontDatabase::addApplicationFont(":/studiofonts/TitilliumWeb-Regular.ttf"); + ExampleCheckout::registerTypes(); m_modeWidget = new QQuickWidget; m_modeWidget->setMinimumSize(1024, 768); |