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

View File

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

View File

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

View File

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

View File

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

View File

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