summaryrefslogtreecommitdiff
path: root/src/plugins/help
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-03-09 17:07:58 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2023-03-10 10:53:59 +0000
commit301f66f190ec3a37180c5f531f98fee48b316be6 (patch)
tree1cca5e1b9b81de993c3c13742112858f0dcd0889 /src/plugins/help
parent0132cd9937d2ebaee24d379d1e9271f807e43c87 (diff)
downloadqt-creator-301f66f190ec3a37180c5f531f98fee48b316be6.tar.gz
Help: Use QtConcurrent invocation for async run
Change-Id: I670d263efa979a08bbbc7c5f936e96feadda038b Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src/plugins/help')
-rw-r--r--src/plugins/help/helpmanager.cpp18
-rw-r--r--src/plugins/help/helpmanager.h13
2 files changed, 18 insertions, 13 deletions
diff --git a/src/plugins/help/helpmanager.cpp b/src/plugins/help/helpmanager.cpp
index c3e0bd3151..69fe0dabf9 100644
--- a/src/plugins/help/helpmanager.cpp
+++ b/src/plugins/help/helpmanager.cpp
@@ -7,7 +7,9 @@
#include <coreplugin/icore.h>
#include <coreplugin/progressmanager/progressmanager.h>
+
#include <utils/algorithm.h>
+#include <utils/asynctask.h>
#include <utils/filesystemwatcher.h>
#include <utils/qtcassert.h>
#include <utils/runextensions.h>
@@ -17,6 +19,7 @@
#include <QDesktopServices>
#include <QDir>
#include <QFileInfo>
+#include <QPromise>
#include <QStringList>
#include <QUrl>
@@ -99,7 +102,7 @@ void HelpManager::registerDocumentation(const QStringList &files)
return;
}
- QFuture<bool> future = Utils::runAsync(&HelpManager::registerDocumentationNow, files);
+ QFuture<bool> future = Utils::asyncRun(&HelpManager::registerDocumentationNow, files);
Utils::onResultReady(future, this, [](bool docsChanged){
if (docsChanged) {
d->m_helpEngine->setupData();
@@ -122,13 +125,12 @@ void HelpManager::unregisterDocumentation(const QStringList &fileNames)
unregisterNamespaces(getNamespaces(fileNames));
}
-void HelpManager::registerDocumentationNow(QFutureInterface<bool> &futureInterface,
- const QStringList &files)
+void HelpManager::registerDocumentationNow(QPromise<bool> &promise, const QStringList &files)
{
QMutexLocker locker(&d->m_helpengineMutex);
- futureInterface.setProgressRange(0, files.count());
- futureInterface.setProgressValue(0);
+ promise.setProgressRange(0, files.count());
+ promise.setProgressValue(0);
QHelpEngineCore helpEngine(collectionFilePath());
helpEngine.setReadOnly(false);
@@ -136,9 +138,9 @@ void HelpManager::registerDocumentationNow(QFutureInterface<bool> &futureInterfa
bool docsChanged = false;
QStringList nameSpaces = helpEngine.registeredDocumentations();
for (const QString &file : files) {
- if (futureInterface.isCanceled())
+ if (promise.isCanceled())
break;
- futureInterface.setProgressValue(futureInterface.progressValue() + 1);
+ promise.setProgressValue(promise.future().progressValue() + 1);
const QString &nameSpace = QHelpEngineCore::namespaceName(file);
if (nameSpace.isEmpty())
continue;
@@ -152,7 +154,7 @@ void HelpManager::registerDocumentationNow(QFutureInterface<bool> &futureInterfa
}
}
}
- futureInterface.reportResult(docsChanged);
+ promise.addResult(docsChanged);
}
void HelpManager::unregisterNamespaces(const QStringList &nameSpaces)
diff --git a/src/plugins/help/helpmanager.h b/src/plugins/help/helpmanager.h
index d868e96256..6ab3e72cd9 100644
--- a/src/plugins/help/helpmanager.h
+++ b/src/plugins/help/helpmanager.h
@@ -5,12 +5,16 @@
#include <coreplugin/helpmanager_implementation.h>
-QT_FORWARD_DECLARE_CLASS(QUrl)
-
#include <QFutureInterface>
#include <QHelpEngineCore>
#include <QVariant>
+QT_BEGIN_NAMESPACE
+template <typename T>
+class QPromise;
+class QUrl;
+QT_END_NAMESPACE
+
namespace Help {
namespace Internal {
@@ -55,10 +59,9 @@ public:
const QUrl &url,
Core::HelpManager::HelpViewerLocation location = Core::HelpManager::HelpModeAlways) override;
-
static void setupHelpManager();
- static void registerDocumentationNow(QFutureInterface<bool> &futureInterface,
- const QStringList &fileNames);
+ static void registerDocumentationNow(QPromise<bool> &promise, const QStringList &fileNames);
+
signals:
void collectionFileChanged();
void helpRequested(const QUrl &url, Core::HelpManager::HelpViewerLocation location);