summaryrefslogtreecommitdiff
path: root/src/plugins/git
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2021-05-28 09:43:48 +0200
committerJarek Kobus <jaroslaw.kobus@qt.io>2021-06-07 10:17:44 +0000
commit269f15df6bdcf5aca7f1ac26141150dd482104fa (patch)
tree28f0771a84e3916dd35dd20b6ffa05f7851ad6c5 /src/plugins/git
parent4b19decaa71728b8129a38fe488da48e14b752d5 (diff)
downloadqt-creator-269f15df6bdcf5aca7f1ac26141150dd482104fa.tar.gz
Wait for all searches to be finished in d'tors
Task-number: QTCREATORBUG-25792 Change-Id: Idc516324b2a80b9b907cf29ed3df4de86d842266 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Diffstat (limited to 'src/plugins/git')
-rw-r--r--src/plugins/git/gitgrep.cpp5
-rw-r--r--src/plugins/git/gitgrep.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/src/plugins/git/gitgrep.cpp b/src/plugins/git/gitgrep.cpp
index 5128725ead..1f8bddd6e4 100644
--- a/src/plugins/git/gitgrep.cpp
+++ b/src/plugins/git/gitgrep.cpp
@@ -238,6 +238,7 @@ static bool isGitDirectory(const QString &path)
GitGrep::GitGrep(GitClient *client)
: m_client(client)
{
+ m_futureSynchronizer.setCancelOnWait(true);
m_widget = new QWidget;
auto layout = new QHBoxLayout(m_widget);
layout->setContentsMargins(0, 0, 0, 0);
@@ -307,7 +308,9 @@ void GitGrep::writeSettings(QSettings *settings) const
QFuture<FileSearchResultList> GitGrep::executeSearch(const TextEditor::FileFindParameters &parameters,
TextEditor::BaseFileFind * /*baseFileFind*/)
{
- return Utils::runAsync(GitGrepRunner::run, parameters);
+ auto future = Utils::runAsync(GitGrepRunner::run, parameters);
+ m_futureSynchronizer.addFuture(future);
+ return future;
}
IEditor *GitGrep::openEditor(const SearchResultItem &item,
diff --git a/src/plugins/git/gitgrep.h b/src/plugins/git/gitgrep.h
index a24bfcfde0..5a734bd648 100644
--- a/src/plugins/git/gitgrep.h
+++ b/src/plugins/git/gitgrep.h
@@ -26,6 +26,7 @@
#pragma once
#include <texteditor/basefilefind.h>
+#include <utils/futuresynchronizer.h>
#include <QCoreApplication>
@@ -62,6 +63,7 @@ private:
QWidget *m_widget;
Utils::FancyLineEdit *m_treeLineEdit;
QCheckBox *m_recurseSubmodules = nullptr;
+ Utils::FutureSynchronizer m_futureSynchronizer;
};
} // namespace Internal