aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-04-06 17:59:27 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2023-04-17 09:10:33 +0000
commit7ab0fd56aea0ee43fc0ad36205b0b6f6823605c3 (patch)
treeb0eccb90087e69a3c1119c0639da34c4976c7180 /src
parent2abe6bbe2c0d0707a533f826e903fa7a523fdce9 (diff)
RunExtensions: Move onResultReady and onFinished into asynctask.h
Change-Id: I96dbf5b0253251224ae678172cd5fca12b34326a Reviewed-by: Eike Ziller <eike.ziller@qt.io> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Diffstat (limited to 'src')
-rw-r--r--src/libs/qmljs/qmljsplugindumper.cpp1
-rw-r--r--src/libs/utils/asynctask.h70
-rw-r--r--src/libs/utils/runextensions.h75
-rw-r--r--src/plugins/android/androidrunnerworker.cpp1
-rw-r--r--src/plugins/android/androidsdkmanagerwidget.cpp2
-rw-r--r--src/plugins/cmakeprojectmanager/fileapireader.cpp1
-rw-r--r--src/plugins/coreplugin/locator/locatorwidget.cpp1
-rw-r--r--src/plugins/coreplugin/plugininstallwizard.cpp1
-rw-r--r--src/plugins/coreplugin/progressmanager/progressmanager.cpp2
-rw-r--r--src/plugins/git/gitgrep.cpp1
-rw-r--r--src/plugins/git/gitplugin.cpp2
-rw-r--r--src/plugins/haskell/haskellproject.cpp1
-rw-r--r--src/plugins/help/helpmanager.cpp1
-rw-r--r--src/plugins/ios/createsimulatordialog.cpp2
-rw-r--r--src/plugins/ios/iossettingswidget.cpp2
-rw-r--r--src/plugins/ios/iostoolhandler.cpp1
-rw-r--r--src/plugins/ios/simulatorcontrol.cpp1
-rw-r--r--src/plugins/ios/simulatorinfomodel.cpp2
-rw-r--r--src/plugins/mesonprojectmanager/mesonprojectparser.cpp1
-rw-r--r--src/plugins/qmakeprojectmanager/qmakeproject.cpp1
20 files changed, 77 insertions, 92 deletions
diff --git a/src/libs/qmljs/qmljsplugindumper.cpp b/src/libs/qmljs/qmljsplugindumper.cpp
index 20736803d27..9e2261014f0 100644
--- a/src/libs/qmljs/qmljsplugindumper.cpp
+++ b/src/libs/qmljs/qmljsplugindumper.cpp
@@ -14,7 +14,6 @@
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
#include <utils/qtcprocess.h>
-#include <utils/runextensions.h>
#include <QDir>
#include <QDirIterator>
diff --git a/src/libs/utils/asynctask.h b/src/libs/utils/asynctask.h
index a600a14b247..d7c51a66fae 100644
--- a/src/libs/utils/asynctask.h
+++ b/src/libs/utils/asynctask.h
@@ -45,6 +45,76 @@ auto asyncRun(Function &&function, Args &&...args)
std::forward<Function>(function), std::forward<Args>(args)...);
}
+/*!
+ Adds a handler for when a result is ready.
+ This creates a new QFutureWatcher. Do not use if you intend to react on multiple conditions
+ or create a QFutureWatcher already for other reasons.
+*/
+template <typename R, typename T>
+const QFuture<T> &onResultReady(const QFuture<T> &future, R *receiver, void(R::*member)(const T &))
+{
+ auto watcher = new QFutureWatcher<T>();
+ QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater);
+ QObject::connect(watcher, &QFutureWatcherBase::resultReadyAt, receiver, [=](int index) {
+ (receiver->*member)(watcher->future().resultAt(index));
+ });
+ watcher->setFuture(future);
+ return future;
+}
+
+/*!
+ Adds a handler for when a result is ready. The guard object determines the lifetime of
+ the connection.
+ This creates a new QFutureWatcher. Do not use if you intend to react on multiple conditions
+ or create a QFutureWatcher already for other reasons.
+*/
+template <typename T, typename Function>
+const QFuture<T> &onResultReady(const QFuture<T> &future, QObject *guard, Function f)
+{
+ auto watcher = new QFutureWatcher<T>();
+ QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater);
+ QObject::connect(watcher, &QFutureWatcherBase::resultReadyAt, guard, [f, watcher](int index) {
+ f(watcher->future().resultAt(index));
+ });
+ watcher->setFuture(future);
+ return future;
+}
+
+/*!
+ Adds a handler for when the future is finished.
+ This creates a new QFutureWatcher. Do not use if you intend to react on multiple conditions
+ or create a QFutureWatcher already for other reasons.
+*/
+template<typename R, typename T>
+const QFuture<T> &onFinished(const QFuture<T> &future,
+ R *receiver, void (R::*member)(const QFuture<T> &))
+{
+ auto watcher = new QFutureWatcher<T>();
+ QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater);
+ QObject::connect(watcher, &QFutureWatcherBase::finished, receiver,
+ [=] { (receiver->*member)(watcher->future()); });
+ watcher->setFuture(future);
+ return future;
+}
+
+/*!
+ Adds a handler for when the future is finished. The guard object determines the lifetime of
+ the connection.
+ This creates a new QFutureWatcher. Do not use if you intend to react on multiple conditions
+ or create a QFutureWatcher already for other reasons.
+*/
+template<typename T, typename Function>
+const QFuture<T> &onFinished(const QFuture<T> &future, QObject *guard, Function f)
+{
+ auto watcher = new QFutureWatcher<T>();
+ QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater);
+ QObject::connect(watcher, &QFutureWatcherBase::finished, guard, [f, watcher] {
+ f(watcher->future());
+ });
+ watcher->setFuture(future);
+ return future;
+}
+
class QTCREATOR_UTILS_EXPORT AsyncTaskBase : public QObject
{
Q_OBJECT
diff --git a/src/libs/utils/runextensions.h b/src/libs/utils/runextensions.h
index 3e0b7afb952..6505b12a9cf 100644
--- a/src/libs/utils/runextensions.h
+++ b/src/libs/utils/runextensions.h
@@ -476,79 +476,4 @@ runAsync(QThreadPool *pool, Function &&function, Args&&... args)
std::forward<Args>(args)...);
}
-
-/*!
- Adds a handler for when a result is ready.
- This creates a new QFutureWatcher. Do not use if you intend to react on multiple conditions
- or create a QFutureWatcher already for other reasons.
-*/
-template <typename R, typename T>
-const QFuture<T> &onResultReady(const QFuture<T> &future, R *receiver, void(R::*member)(const T &))
-{
- auto watcher = new QFutureWatcher<T>();
- QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater);
- QObject::connect(watcher, &QFutureWatcherBase::resultReadyAt, receiver,
- [receiver, member, watcher](int index) {
- (receiver->*member)(watcher->future().resultAt(index));
- });
- watcher->setFuture(future);
- return future;
-}
-
-/*!
- Adds a handler for when a result is ready. The guard object determines the lifetime of
- the connection.
- This creates a new QFutureWatcher. Do not use if you intend to react on multiple conditions
- or create a QFutureWatcher already for other reasons.
-*/
-template <typename T, typename Function>
-const QFuture<T> &onResultReady(const QFuture<T> &future, QObject *guard, Function f)
-{
- auto watcher = new QFutureWatcher<T>();
- QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater);
- QObject::connect(watcher, &QFutureWatcherBase::resultReadyAt, guard, [f, watcher](int index) {
- f(watcher->future().resultAt(index));
- });
- watcher->setFuture(future);
- return future;
-}
-
-/*!
- Adds a handler for when the future is finished.
- This creates a new QFutureWatcher. Do not use if you intend to react on multiple conditions
- or create a QFutureWatcher already for other reasons.
-*/
-template<typename R, typename T>
-const QFuture<T> &onFinished(const QFuture<T> &future,
- R *receiver,
- void (R::*member)(const QFuture<T> &))
-{
- auto watcher = new QFutureWatcher<T>();
- QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater);
- QObject::connect(watcher,
- &QFutureWatcherBase::finished,
- receiver,
- [receiver, member, watcher] { (receiver->*member)(watcher->future()); });
- watcher->setFuture(future);
- return future;
-}
-
-/*!
- Adds a handler for when the future is finished. The guard object determines the lifetime of
- the connection.
- This creates a new QFutureWatcher. Do not use if you intend to react on multiple conditions
- or create a QFutureWatcher already for other reasons.
-*/
-template<typename T, typename Function>
-const QFuture<T> &onFinished(const QFuture<T> &future, QObject *guard, Function f)
-{
- auto watcher = new QFutureWatcher<T>();
- QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater);
- QObject::connect(watcher, &QFutureWatcherBase::finished, guard, [f, watcher] {
- f(watcher->future());
- });
- watcher->setFuture(future);
- return future;
-}
-
} // namespace Utils
diff --git a/src/plugins/android/androidrunnerworker.cpp b/src/plugins/android/androidrunnerworker.cpp
index 3ec9457ee37..c27965a9508 100644
--- a/src/plugins/android/androidrunnerworker.cpp
+++ b/src/plugins/android/androidrunnerworker.cpp
@@ -24,7 +24,6 @@
#include <utils/fileutils.h>
#include <utils/hostosinfo.h>
#include <utils/qtcprocess.h>
-#include <utils/runextensions.h>
#include <utils/stringutils.h>
#include <utils/temporaryfile.h>
#include <utils/url.h>
diff --git a/src/plugins/android/androidsdkmanagerwidget.cpp b/src/plugins/android/androidsdkmanagerwidget.cpp
index 56f32833c86..81098b776aa 100644
--- a/src/plugins/android/androidsdkmanagerwidget.cpp
+++ b/src/plugins/android/androidsdkmanagerwidget.cpp
@@ -9,10 +9,10 @@
#include <app/app_version.h>
+#include <utils/asynctask.h>
#include <utils/layoutbuilder.h>
#include <utils/outputformatter.h>
#include <utils/qtcassert.h>
-#include <utils/runextensions.h>
#include <utils/utilsicons.h>
#include <QAbstractButton>
diff --git a/src/plugins/cmakeprojectmanager/fileapireader.cpp b/src/plugins/cmakeprojectmanager/fileapireader.cpp
index 6167ad84278..2d8d4c5345c 100644
--- a/src/plugins/cmakeprojectmanager/fileapireader.cpp
+++ b/src/plugins/cmakeprojectmanager/fileapireader.cpp
@@ -16,7 +16,6 @@
#include <utils/algorithm.h>
#include <utils/asynctask.h>
#include <utils/qtcassert.h>
-#include <utils/runextensions.h>
#include <QLoggingCategory>
diff --git a/src/plugins/coreplugin/locator/locatorwidget.cpp b/src/plugins/coreplugin/locator/locatorwidget.cpp
index ba717ea0f98..7bb381ac01b 100644
--- a/src/plugins/coreplugin/locator/locatorwidget.cpp
+++ b/src/plugins/coreplugin/locator/locatorwidget.cpp
@@ -14,6 +14,7 @@
#include "../modemanager.h"
#include <utils/algorithm.h>
+#include <utils/asynctask.h>
#include <utils/appmainwindow.h>
#include <utils/fancylineedit.h>
#include <utils/fsengine/fileiconprovider.h>
diff --git a/src/plugins/coreplugin/plugininstallwizard.cpp b/src/plugins/coreplugin/plugininstallwizard.cpp
index 3587d211068..02f0e15eb28 100644
--- a/src/plugins/coreplugin/plugininstallwizard.cpp
+++ b/src/plugins/coreplugin/plugininstallwizard.cpp
@@ -18,7 +18,6 @@
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
-#include <utils/runextensions.h>
#include <utils/temporarydirectory.h>
#include <utils/wizard.h>
#include <utils/wizardpage.h>
diff --git a/src/plugins/coreplugin/progressmanager/progressmanager.cpp b/src/plugins/coreplugin/progressmanager/progressmanager.cpp
index 18cc2f6f34f..969579aafd3 100644
--- a/src/plugins/coreplugin/progressmanager/progressmanager.cpp
+++ b/src/plugins/coreplugin/progressmanager/progressmanager.cpp
@@ -109,7 +109,7 @@ namespace Core {
start a task concurrently in a different thread.
QtConcurrent has several different functions to run e.g.
a class function in a different thread. Qt Creator itself
- adds a few more in \c{src/libs/qtconcurrent/runextensions.h}.
+ adds a few more in \c{src/libs/utils/asynctask.h}.
The QtConcurrent functions to run a concurrent task return a
\c QFuture object. This is what you want to give the
ProgressManager in the addTask() function.
diff --git a/src/plugins/git/gitgrep.cpp b/src/plugins/git/gitgrep.cpp
index 9d4aeec6980..7d5dc7fa749 100644
--- a/src/plugins/git/gitgrep.cpp
+++ b/src/plugins/git/gitgrep.cpp
@@ -19,7 +19,6 @@
#include <utils/filesearch.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
-#include <utils/runextensions.h>
#include <QCheckBox>
#include <QFuture>
diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp
index 9729dbe4240..935fa5deb79 100644
--- a/src/plugins/git/gitplugin.cpp
+++ b/src/plugins/git/gitplugin.cpp
@@ -42,12 +42,12 @@
#include <texteditor/textmark.h>
#include <utils/algorithm.h>
+#include <utils/asynctask.h>
#include <utils/commandline.h>
#include <utils/infobar.h>
#include <utils/parameteraction.h>
#include <utils/pathchooser.h>
#include <utils/qtcassert.h>
-#include <utils/runextensions.h>
#include <utils/stringutils.h>
#include <utils/utilsicons.h>
diff --git a/src/plugins/haskell/haskellproject.cpp b/src/plugins/haskell/haskellproject.cpp
index 916632c5dc6..f19840a67f5 100644
--- a/src/plugins/haskell/haskellproject.cpp
+++ b/src/plugins/haskell/haskellproject.cpp
@@ -14,7 +14,6 @@
#include <utils/algorithm.h>
#include <utils/fileutils.h>
#include <utils/qtcassert.h>
-#include <utils/runextensions.h>
#include <QFile>
#include <QTextStream>
diff --git a/src/plugins/help/helpmanager.cpp b/src/plugins/help/helpmanager.cpp
index 69fe0dabf9e..f62aa65f352 100644
--- a/src/plugins/help/helpmanager.cpp
+++ b/src/plugins/help/helpmanager.cpp
@@ -12,7 +12,6 @@
#include <utils/asynctask.h>
#include <utils/filesystemwatcher.h>
#include <utils/qtcassert.h>
-#include <utils/runextensions.h>
#include <QDateTime>
#include <QDebug>
diff --git a/src/plugins/ios/createsimulatordialog.cpp b/src/plugins/ios/createsimulatordialog.cpp
index 5dce52221eb..3eb4c2cc40d 100644
--- a/src/plugins/ios/createsimulatordialog.cpp
+++ b/src/plugins/ios/createsimulatordialog.cpp
@@ -7,8 +7,8 @@
#include "simulatorcontrol.h"
#include <utils/algorithm.h>
+#include <utils/asynctask.h>
#include <utils/layoutbuilder.h>
-#include <utils/runextensions.h>
#include <QApplication>
#include <QComboBox>
diff --git a/src/plugins/ios/iossettingswidget.cpp b/src/plugins/ios/iossettingswidget.cpp
index eee8b08efc8..2d13c4952ab 100644
--- a/src/plugins/ios/iossettingswidget.cpp
+++ b/src/plugins/ios/iossettingswidget.cpp
@@ -12,9 +12,9 @@
#include "simulatoroperationdialog.h"
#include <utils/algorithm.h>
+#include <utils/asynctask.h>
#include <utils/layoutbuilder.h>
#include <utils/pathchooser.h>
-#include <utils/runextensions.h>
#include <QCheckBox>
#include <QDateTime>
diff --git a/src/plugins/ios/iostoolhandler.cpp b/src/plugins/ios/iostoolhandler.cpp
index 5db9b808a88..08e937d5ccf 100644
--- a/src/plugins/ios/iostoolhandler.cpp
+++ b/src/plugins/ios/iostoolhandler.cpp
@@ -17,7 +17,6 @@
#include <utils/futuresynchronizer.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
-#include <utils/runextensions.h>
#include <utils/temporarydirectory.h>
#include <QDir>
diff --git a/src/plugins/ios/simulatorcontrol.cpp b/src/plugins/ios/simulatorcontrol.cpp
index 59970b649c1..fe015b18815 100644
--- a/src/plugins/ios/simulatorcontrol.cpp
+++ b/src/plugins/ios/simulatorcontrol.cpp
@@ -8,7 +8,6 @@
#include <utils/asynctask.h>
#include <utils/qtcassert.h>
#include <utils/qtcprocess.h>
-#include <utils/runextensions.h>
#ifdef Q_OS_MAC
#include <CoreFoundation/CoreFoundation.h>
diff --git a/src/plugins/ios/simulatorinfomodel.cpp b/src/plugins/ios/simulatorinfomodel.cpp
index 8c79d161da9..4db3994f4b9 100644
--- a/src/plugins/ios/simulatorinfomodel.cpp
+++ b/src/plugins/ios/simulatorinfomodel.cpp
@@ -6,7 +6,7 @@
#include "iostr.h"
#include <utils/algorithm.h>
-#include <utils/runextensions.h>
+#include <utils/asynctask.h>
#include <QTimer>
diff --git a/src/plugins/mesonprojectmanager/mesonprojectparser.cpp b/src/plugins/mesonprojectmanager/mesonprojectparser.cpp
index 96b5fa9cb7b..6f8ce162ed7 100644
--- a/src/plugins/mesonprojectmanager/mesonprojectparser.cpp
+++ b/src/plugins/mesonprojectmanager/mesonprojectparser.cpp
@@ -14,7 +14,6 @@
#include <utils/asynctask.h>
#include <utils/fileinprojectfinder.h>
-#include <utils/runextensions.h>
#include <QStringList>
#include <QTextStream>
diff --git a/src/plugins/qmakeprojectmanager/qmakeproject.cpp b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
index c12827b6b43..da68b010d58 100644
--- a/src/plugins/qmakeprojectmanager/qmakeproject.cpp
+++ b/src/plugins/qmakeprojectmanager/qmakeproject.cpp
@@ -50,7 +50,6 @@
#include <utils/algorithm.h>
#include <utils/asynctask.h>
#include <utils/qtcprocess.h>
-#include <utils/runextensions.h>
#include <QDebug>
#include <QDir>