diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2022-08-03 12:47:53 +0200 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2022-08-03 11:30:31 +0000 |
commit | a5683616b938deffa290f95aaa7f747c239360d7 (patch) | |
tree | c81219bab78886b77b43de8ecbe9214723509407 /src/plugins/vcsbase/vcscommand.cpp | |
parent | 195fc29ef5ab23757628701f528af0bfa35005da (diff) | |
download | qt-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.cpp | 6 |
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; } |