SearchEngine: Replace executeSearch() with searchExecutor()

Change-Id: Icce615d0cedef35ff4278f9ecfffa415b1aa0386
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
Jarek Kobus
2023-06-28 19:14:50 +02:00
parent e02e122991
commit 731f61c30d
6 changed files with 23 additions and 18 deletions

View File

@@ -265,9 +265,11 @@ void GitGrep::writeSettings(QSettings *settings) const
settings->setValue(GitGrepRef, m_treeLineEdit->text()); settings->setValue(GitGrepRef, m_treeLineEdit->text());
} }
QFuture<SearchResultItems> GitGrep::executeSearch(const FileFindParameters &parameters) SearchExecutor GitGrep::searchExecutor() const
{ {
return Utils::asyncRun(runGitGrep, parameters); return [](const FileFindParameters &parameters) {
return Utils::asyncRun(runGitGrep, parameters);
};
} }
EditorOpener GitGrep::editorOpener() const EditorOpener GitGrep::editorOpener() const

View File

@@ -28,8 +28,7 @@ public:
QVariant parameters() const override; QVariant parameters() const override;
void readSettings(QSettings *settings) override; void readSettings(QSettings *settings) override;
void writeSettings(QSettings *settings) const override; void writeSettings(QSettings *settings) const override;
QFuture<Utils::SearchResultItems> executeSearch( TextEditor::SearchExecutor searchExecutor() const override;
const TextEditor::FileFindParameters &parameters) override;
TextEditor::EditorOpener editorOpener() const override; TextEditor::EditorOpener editorOpener() const override;
private: private:

View File

@@ -164,10 +164,11 @@ void FindInFilesSilverSearcher::writeSettings(QSettings *settings) const
settings->setValue(s_searchOptionsString, m_searchOptionsLineEdit->text()); settings->setValue(s_searchOptionsString, m_searchOptionsLineEdit->text());
} }
QFuture<SearchResultItems> FindInFilesSilverSearcher::executeSearch( SearchExecutor FindInFilesSilverSearcher::searchExecutor() const
const FileFindParameters &parameters)
{ {
return Utils::asyncRun(runSilverSeacher, parameters); return [](const FileFindParameters &parameters) {
return Utils::asyncRun(runSilverSeacher, parameters);
};
} }
void FindInFilesSilverSearcher::readSettings(QSettings *settings) void FindInFilesSilverSearcher::readSettings(QSettings *settings)

View File

@@ -31,8 +31,7 @@ public:
QVariant parameters() const override; QVariant parameters() const override;
void readSettings(QSettings *settings) override; void readSettings(QSettings *settings) override;
void writeSettings(QSettings *settings) const override; void writeSettings(QSettings *settings) const override;
QFuture<Utils::SearchResultItems> executeSearch( TextEditor::SearchExecutor searchExecutor() const override;
const TextEditor::FileFindParameters &parameters) override;
private: private:
QPointer<Core::IFindSupport> m_currentFindSupport; QPointer<Core::IFindSupport> m_currentFindSupport;

View File

@@ -145,11 +145,12 @@ public:
QVariant parameters() const override { return {}; } QVariant parameters() const override { return {}; }
void readSettings(QSettings * /*settings*/) override {} void readSettings(QSettings * /*settings*/) override {}
void writeSettings(QSettings * /*settings*/) const override {} void writeSettings(QSettings * /*settings*/) const override {}
QFuture<SearchResultItems> executeSearch(const FileFindParameters &parameters) override SearchExecutor searchExecutor() const override
{ {
return Utils::findInFiles(parameters.text, parameters.fileContainerProvider(), return [](const FileFindParameters &parameters) {
parameters.flags, TextDocument::openedTextDocumentContents()); return Utils::findInFiles(parameters.text, parameters.fileContainerProvider(),
parameters.flags, TextDocument::openedTextDocumentContents());
};
} }
private: private:
@@ -307,16 +308,18 @@ void BaseFileFind::runNewSearch(const QString &txt, FindFlags findFlags,
setupSearch(search); setupSearch(search);
search->setTextToReplace(txt); search->setTextToReplace(txt);
search->setSearchAgainSupported(true); search->setSearchAgainSupported(true);
SearchEngine *searchEngine = currentSearchEngine();
FileFindParameters parameters; FileFindParameters parameters;
parameters.text = txt; parameters.text = txt;
parameters.flags = findFlags; parameters.flags = findFlags;
parameters.nameFilters = fileNameFilters(); parameters.nameFilters = fileNameFilters();
parameters.exclusionFilters = fileExclusionFilters(); parameters.exclusionFilters = fileExclusionFilters();
parameters.additionalParameters = additionalParameters(); parameters.additionalParameters = additionalParameters();
parameters.searchEngineParameters = currentSearchEngine()->parameters(); parameters.searchEngineParameters = searchEngine->parameters();
parameters.searchEngineIndex = d->m_currentSearchEngineIndex; parameters.searchEngineIndex = d->m_currentSearchEngineIndex;
parameters.fileContainerProvider = fileContainerProvider(); parameters.fileContainerProvider = fileContainerProvider();
parameters.editorOpener = currentSearchEngine()->editorOpener(); parameters.editorOpener = searchEngine->editorOpener();
parameters.searchExecutor = searchEngine->searchExecutor();
search->setUserData(QVariant::fromValue(parameters)); search->setUserData(QVariant::fromValue(parameters));
connect(search, &SearchResult::activated, this, [this, search](const SearchResultItem &item) { connect(search, &SearchResult::activated, this, [this, search](const SearchResultItem &item) {
@@ -594,7 +597,7 @@ FilePaths BaseFileFind::replaceAll(const QString &text, const SearchResultItems
QFuture<SearchResultItems> BaseFileFind::executeSearch(const FileFindParameters &parameters) QFuture<SearchResultItems> BaseFileFind::executeSearch(const FileFindParameters &parameters)
{ {
return d->m_searchEngines[parameters.searchEngineIndex]->executeSearch(parameters); return parameters.searchExecutor(parameters);
} }
namespace Internal { namespace Internal {

View File

@@ -32,6 +32,7 @@ class FileFindParameters;
using FileContainerProvider = std::function<Utils::FileContainer()>; using FileContainerProvider = std::function<Utils::FileContainer()>;
using EditorOpener = std::function<Core::IEditor *(const Utils::SearchResultItem &, using EditorOpener = std::function<Core::IEditor *(const Utils::SearchResultItem &,
const FileFindParameters &)>; const FileFindParameters &)>;
using SearchExecutor = std::function<QFuture<Utils::SearchResultItems>(const FileFindParameters &)>;
class TEXTEDITOR_EXPORT FileFindParameters class TEXTEDITOR_EXPORT FileFindParameters
{ {
@@ -45,6 +46,7 @@ public:
Utils::FindFlags flags; Utils::FindFlags flags;
FileContainerProvider fileContainerProvider = {}; FileContainerProvider fileContainerProvider = {};
EditorOpener editorOpener = {}; EditorOpener editorOpener = {};
SearchExecutor searchExecutor = {};
}; };
using ProcessSetupHandler = std::function<void(Utils::Process &)>; using ProcessSetupHandler = std::function<void(Utils::Process &)>;
@@ -72,8 +74,7 @@ public:
virtual QVariant parameters() const = 0; virtual QVariant parameters() const = 0;
virtual void readSettings(QSettings *settings) = 0; virtual void readSettings(QSettings *settings) = 0;
virtual void writeSettings(QSettings *settings) const = 0; virtual void writeSettings(QSettings *settings) const = 0;
virtual QFuture<Utils::SearchResultItems> executeSearch( virtual SearchExecutor searchExecutor() const = 0;
const FileFindParameters &parameters) = 0;
virtual EditorOpener editorOpener() const { return {}; } virtual EditorOpener editorOpener() const { return {}; }
bool isEnabled() const; bool isEnabled() const;
void setEnabled(bool enabled); void setEnabled(bool enabled);