summaryrefslogtreecommitdiff
path: root/src/plugins/vcsbase/vcscommand.cpp
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2022-08-03 12:47:53 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2022-08-03 11:30:31 +0000
commita5683616b938deffa290f95aaa7f747c239360d7 (patch)
treec81219bab78886b77b43de8ecbe9214723509407 /src/plugins/vcsbase/vcscommand.cpp
parent195fc29ef5ab23757628701f528af0bfa35005da (diff)
downloadqt-creator-a5683616b938deffa290f95aaa7f747c239360d7.tar.gz
VcsCommand: Fix timed task's future interface
Pass the future interface of the running task into ProgressManager::addTimedTask() instead of not related future. In this way canceling the timed task (after pressing the small x button) makes the future interface canceled in the worker thread. Change-Id: I4596823d40bd079841e59c9bdba025d30cb33711 Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Diffstat (limited to 'src/plugins/vcsbase/vcscommand.cpp')
-rw-r--r--src/plugins/vcsbase/vcscommand.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/plugins/vcsbase/vcscommand.cpp b/src/plugins/vcsbase/vcscommand.cpp
index f067a614fc..a8bddc568a 100644
--- a/src/plugins/vcsbase/vcscommand.cpp
+++ b/src/plugins/vcsbase/vcscommand.cpp
@@ -105,7 +105,6 @@ public:
QTextCodec *m_codec = nullptr;
ProgressParser *m_progressParser = nullptr;
QFutureWatcher<void> m_watcher;
- QFutureInterface<void> m_futureInterface;
QList<Job> m_jobs;
unsigned m_flags = 0;
@@ -148,7 +147,8 @@ void VcsCommand::addTask(const QFuture<void> &future)
if (d->m_progressParser) {
ProgressManager::addTask(future, name, id);
} else {
- ProgressManager::addTimedTask(d->m_futureInterface, name, id, qMax(2, timeoutS() / 5));
+ ProgressManager::addTimedTask(QFutureInterface<void>::get(future), name, id,
+ qMax(2, timeoutS() / 5));
}
Internal::VcsPlugin::addFuture(future);
@@ -165,7 +165,7 @@ void VcsCommand::postRunCommand(const FilePath &workingDirectory)
VcsCommand::~VcsCommand()
{
- d->m_futureInterface.reportFinished();
+ d->m_watcher.cancel();
delete d;
}