diff --git a/src/libs/utils/runextensions.h b/src/libs/utils/runextensions.h index 0ba0b8c3c53..0b066b6d8af 100644 --- a/src/libs/utils/runextensions.h +++ b/src/libs/utils/runextensions.h @@ -504,12 +504,12 @@ template const QFuture &onResultReady(const QFuture &future, R *receiver, void(R::*member)(const T &)) { auto watcher = new QFutureWatcher(); - watcher->setFuture(future); 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; } @@ -523,11 +523,11 @@ template const QFuture &onResultReady(const QFuture &future, QObject *guard, Function f) { auto watcher = new QFutureWatcher(); - watcher->setFuture(future); 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; } @@ -540,11 +540,11 @@ template const QFuture &onResultReady(const QFuture &future, Function f) { auto watcher = new QFutureWatcher(); - watcher->setFuture(future); QObject::connect(watcher, &QFutureWatcherBase::finished, watcher, &QObject::deleteLater); QObject::connect(watcher, &QFutureWatcherBase::resultReadyAt, [f, watcher](int index) { f(watcher->future().resultAt(index)); }); + watcher->setFuture(future); return future; }