forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -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 ¶meters,
|
||||
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,
|
||||
|
@@ -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
|
||||
|
@@ -163,6 +163,7 @@ FindInFilesSilverSearcher::FindInFilesSilverSearcher(QObject *parent)
|
||||
, m_path("ag")
|
||||
, m_toolName("SilverSearcher")
|
||||
{
|
||||
m_futureSynchronizer.setCancelOnWait(true);
|
||||
m_widget = new QWidget;
|
||||
auto layout = new QHBoxLayout(m_widget);
|
||||
layout->setContentsMargins(0, 0, 0, 0);
|
||||
@@ -182,10 +183,6 @@ FindInFilesSilverSearcher::FindInFilesSilverSearcher(QObject *parent)
|
||||
}
|
||||
}
|
||||
|
||||
FindInFilesSilverSearcher::~FindInFilesSilverSearcher()
|
||||
{
|
||||
}
|
||||
|
||||
QVariant FindInFilesSilverSearcher::parameters() const
|
||||
{
|
||||
SilverSearcherSearchOptions silverSearcherSearchOptions;
|
||||
@@ -216,7 +213,9 @@ void FindInFilesSilverSearcher::writeSettings(QSettings *settings) const
|
||||
QFuture<FileSearchResultList> FindInFilesSilverSearcher::executeSearch(
|
||||
const FileFindParameters ¶meters, BaseFileFind * /*baseFileFind*/)
|
||||
{
|
||||
return Utils::runAsync(runSilverSeacher, parameters);
|
||||
auto future = Utils::runAsync(runSilverSeacher, parameters);
|
||||
m_futureSynchronizer.addFuture(future);
|
||||
return future;
|
||||
}
|
||||
|
||||
IEditor *FindInFilesSilverSearcher::openEditor(const SearchResultItem & /*item*/,
|
||||
|
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <coreplugin/find/ifindsupport.h>
|
||||
#include <texteditor/basefilefind.h>
|
||||
#include <utils/futuresynchronizer.h>
|
||||
|
||||
#include <utils/fileutils.h>
|
||||
|
||||
@@ -44,7 +45,6 @@ class FindInFilesSilverSearcher : public TextEditor::SearchEngine
|
||||
|
||||
public:
|
||||
explicit FindInFilesSilverSearcher(QObject *parent);
|
||||
~FindInFilesSilverSearcher() override;
|
||||
|
||||
// TextEditor::FileFindExtension
|
||||
QString title() const override;
|
||||
@@ -66,6 +66,7 @@ private:
|
||||
QPointer<QLineEdit> m_searchOptionsLineEdit;
|
||||
QString m_path;
|
||||
QString m_toolName;
|
||||
Utils::FutureSynchronizer m_futureSynchronizer;
|
||||
};
|
||||
|
||||
} // namespace SilverSearcher
|
||||
|
Reference in New Issue
Block a user