SearchEngine: Replace openEditor() with editorOpener()

Change-Id: I45da343f4df3cf634c24bbb518703c856fbb4d90
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
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 18:25:42 +02:00
parent de5efffeff
commit 858ecf3e78
6 changed files with 25 additions and 32 deletions

View File

@@ -269,20 +269,22 @@ QFuture<SearchResultItems> GitGrep::executeSearch(const FileFindParameters &para
return Utils::asyncRun(runGitGrep, parameters); return Utils::asyncRun(runGitGrep, parameters);
} }
IEditor *GitGrep::openEditor(const SearchResultItem &item, EditorOpener GitGrep::editorOpener() const
const FileFindParameters &parameters)
{ {
const GitGrepParameters params = parameters.searchEngineParameters.value<GitGrepParameters>(); return [](const Utils::SearchResultItem &item,
const QStringList &itemPath = item.path(); const FileFindParameters &parameters) -> IEditor * {
if (params.ref.isEmpty() || itemPath.isEmpty()) const GitGrepParameters params = parameters.searchEngineParameters.value<GitGrepParameters>();
return nullptr; const QStringList &itemPath = item.path();
const FilePath path = FilePath::fromUserInput(itemPath.first()); if (params.ref.isEmpty() || itemPath.isEmpty())
const FilePath topLevel = FilePath::fromString(parameters.additionalParameters.toString()); return nullptr;
IEditor *editor = m_client->openShowEditor(topLevel, params.ref, path, const FilePath path = FilePath::fromUserInput(itemPath.first());
GitClient::ShowEditor::OnlyIfDifferent); const FilePath topLevel = FilePath::fromString(parameters.additionalParameters.toString());
if (editor) IEditor *editor = GitClient::instance()->openShowEditor(
editor->gotoLine(item.mainRange().begin.line, item.mainRange().begin.column); topLevel, params.ref, path, GitClient::ShowEditor::OnlyIfDifferent);
return editor; if (editor)
editor->gotoLine(item.mainRange().begin.line, item.mainRange().begin.column);
return editor;
};
} }
} // Git::Internal } // Git::Internal

View File

@@ -29,8 +29,7 @@ public:
void writeSettings(QSettings *settings) const override; void writeSettings(QSettings *settings) const override;
QFuture<Utils::SearchResultItems> executeSearch( QFuture<Utils::SearchResultItems> executeSearch(
const TextEditor::FileFindParameters &parameters) override; const TextEditor::FileFindParameters &parameters) override;
Core::IEditor *openEditor(const Utils::SearchResultItem &item, TextEditor::EditorOpener editorOpener() const override;
const TextEditor::FileFindParameters &parameters) override;
private: private:
GitClient *m_client; GitClient *m_client;

View File

@@ -170,12 +170,6 @@ QFuture<SearchResultItems> FindInFilesSilverSearcher::executeSearch(
return Utils::asyncRun(runSilverSeacher, parameters); return Utils::asyncRun(runSilverSeacher, parameters);
} }
IEditor *FindInFilesSilverSearcher::openEditor(const SearchResultItem & /*item*/,
const FileFindParameters & /*parameters*/)
{
return nullptr;
}
void FindInFilesSilverSearcher::readSettings(QSettings *settings) void FindInFilesSilverSearcher::readSettings(QSettings *settings)
{ {
m_searchOptionsLineEdit->setText(settings->value(s_searchOptionsString).toString()); m_searchOptionsLineEdit->setText(settings->value(s_searchOptionsString).toString());

View File

@@ -33,8 +33,6 @@ public:
void writeSettings(QSettings *settings) const override; void writeSettings(QSettings *settings) const override;
QFuture<Utils::SearchResultItems> executeSearch( QFuture<Utils::SearchResultItems> executeSearch(
const TextEditor::FileFindParameters &parameters) override; const TextEditor::FileFindParameters &parameters) override;
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
const TextEditor::FileFindParameters &parameters) override;
private: private:
QPointer<Core::IFindSupport> m_currentFindSupport; QPointer<Core::IFindSupport> m_currentFindSupport;

View File

@@ -151,11 +151,6 @@ public:
parameters.flags, TextDocument::openedTextDocumentContents()); parameters.flags, TextDocument::openedTextDocumentContents());
} }
Core::IEditor *openEditor(const SearchResultItem &/*item*/,
const TextEditor::FileFindParameters &/*parameters*/) override
{
return nullptr;
}
private: private:
QWidget *m_widget; QWidget *m_widget;
@@ -321,6 +316,7 @@ void BaseFileFind::runNewSearch(const QString &txt, FindFlags findFlags,
parameters.searchEngineParameters = currentSearchEngine()->parameters(); parameters.searchEngineParameters = currentSearchEngine()->parameters();
parameters.searchEngineIndex = d->m_currentSearchEngineIndex; parameters.searchEngineIndex = d->m_currentSearchEngineIndex;
parameters.fileContainerProvider = fileContainerProvider(); parameters.fileContainerProvider = fileContainerProvider();
parameters.editorOpener = currentSearchEngine()->editorOpener();
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) {
@@ -493,8 +489,8 @@ void BaseFileFind::readCommonSettings(QSettings *settings, const QString &defaul
void BaseFileFind::openEditor(SearchResult *result, const SearchResultItem &item) void BaseFileFind::openEditor(SearchResult *result, const SearchResultItem &item)
{ {
const FileFindParameters parameters = result->userData().value<FileFindParameters>(); const FileFindParameters parameters = result->userData().value<FileFindParameters>();
IEditor *openedEditor = IEditor *openedEditor = parameters.editorOpener ? parameters.editorOpener(item, parameters)
d->m_searchEngines[parameters.searchEngineIndex]->openEditor(item, parameters); : nullptr;
if (!openedEditor) if (!openedEditor)
EditorManager::openEditorAtSearchResult(item, Id(), EditorManager::DoNotSwitchToDesignMode); EditorManager::openEditorAtSearchResult(item, Id(), EditorManager::DoNotSwitchToDesignMode);
if (d->m_currentFindSupport) if (d->m_currentFindSupport)

View File

@@ -27,7 +27,11 @@ class BaseFileFindPrivate;
class SearchEnginePrivate; class SearchEnginePrivate;
} // Internal } // Internal
class FileFindParameters;
using FileContainerProvider = std::function<Utils::FileContainer()>; using FileContainerProvider = std::function<Utils::FileContainer()>;
using EditorOpener = std::function<Core::IEditor *(const Utils::SearchResultItem &,
const FileFindParameters &)>;
class TEXTEDITOR_EXPORT FileFindParameters class TEXTEDITOR_EXPORT FileFindParameters
{ {
@@ -40,6 +44,7 @@ public:
int searchEngineIndex; int searchEngineIndex;
Utils::FindFlags flags; Utils::FindFlags flags;
FileContainerProvider fileContainerProvider = {}; FileContainerProvider fileContainerProvider = {};
EditorOpener editorOpener = {};
}; };
using ProcessSetupHandler = std::function<void(Utils::Process &)>; using ProcessSetupHandler = std::function<void(Utils::Process &)>;
@@ -69,8 +74,7 @@ public:
virtual void writeSettings(QSettings *settings) const = 0; virtual void writeSettings(QSettings *settings) const = 0;
virtual QFuture<Utils::SearchResultItems> executeSearch( virtual QFuture<Utils::SearchResultItems> executeSearch(
const FileFindParameters &parameters) = 0; const FileFindParameters &parameters) = 0;
virtual Core::IEditor *openEditor(const Utils::SearchResultItem &item, virtual EditorOpener editorOpener() const { return {}; }
const FileFindParameters &parameters) = 0;
bool isEnabled() const; bool isEnabled() const;
void setEnabled(bool enabled); void setEnabled(bool enabled);