diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-03-04 01:01:31 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-03-09 09:17:11 +0000 |
commit | fad7bb9382b0f4df7b9a01fee535e21c55ba93c5 (patch) | |
tree | 663ecd075c2bab17fdcd4dd51bcf14630e44129a /src/plugins/coreplugin/plugininstallwizard.cpp | |
parent | 2baf59b87a59e0c7b1727d54de0ad24515d4f89e (diff) | |
download | qt-creator-fad7bb9382b0f4df7b9a01fee535e21c55ba93c5.tar.gz |
PluginInstallWizard: Use QtConcurrent invocation for async run
Change-Id: I82fad61c765af283e5d5cee4d7262e13a6843a84
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Diffstat (limited to 'src/plugins/coreplugin/plugininstallwizard.cpp')
-rw-r--r-- | src/plugins/coreplugin/plugininstallwizard.cpp | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/plugins/coreplugin/plugininstallwizard.cpp b/src/plugins/coreplugin/plugininstallwizard.cpp index 6547c78835..3587d21106 100644 --- a/src/plugins/coreplugin/plugininstallwizard.cpp +++ b/src/plugins/coreplugin/plugininstallwizard.cpp @@ -11,6 +11,7 @@ #include <extensionsystem/pluginspec.h> #include <utils/archive.h> +#include <utils/asynctask.h> #include <utils/fileutils.h> #include <utils/hostosinfo.h> #include <utils/infolabel.h> @@ -221,8 +222,8 @@ public: m_label->setText(Tr::tr("There was an error while unarchiving.")); } } else { // unarchiving was successful, run a check - m_archiveCheck = Utils::runAsync( - [this](QFutureInterface<ArchiveIssue> &fi) { return checkContents(fi); }); + m_archiveCheck = Utils::asyncRun([this](QPromise<ArchiveIssue> &promise) + { return checkContents(promise); }); Utils::onFinished(m_archiveCheck, this, [this](const QFuture<ArchiveIssue> &f) { m_cancelButton->setVisible(false); m_cancelButton->disconnect(); @@ -248,7 +249,7 @@ public: } // Async. Result is set if any issue was found. - void checkContents(QFutureInterface<ArchiveIssue> &fi) + void checkContents(QPromise<ArchiveIssue> &promise) { QTC_ASSERT(m_tempDir.get(), return ); @@ -260,7 +261,7 @@ public: QDir::Files | QDir::NoSymLinks, QDirIterator::Subdirectories); while (it.hasNext()) { - if (fi.isCanceled()) + if (promise.isCanceled()) return; it.next(); PluginSpec *spec = PluginSpec::read(it.filePath()); @@ -275,18 +276,18 @@ public: }); if (found != dependencies.constEnd()) { if (!coreplugin->provides(found->name, found->version)) { - fi.reportResult({Tr::tr("Plugin requires an incompatible version of %1 (%2).") - .arg(Constants::IDE_DISPLAY_NAME) - .arg(found->version), - InfoLabel::Error}); + promise.addResult(ArchiveIssue{ + Tr::tr("Plugin requires an incompatible version of %1 (%2).") + .arg(Constants::IDE_DISPLAY_NAME).arg(found->version), + InfoLabel::Error}); return; } } return; // successful / no error } } - fi.reportResult({Tr::tr("Did not find %1 plugin.").arg(Constants::IDE_DISPLAY_NAME), - InfoLabel::Error}); + promise.addResult(ArchiveIssue{Tr::tr("Did not find %1 plugin.") + .arg(Constants::IDE_DISPLAY_NAME), InfoLabel::Error}); } void cleanupPage() final |