forked from qt-creator/qt-creator
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:
@@ -269,20 +269,22 @@ QFuture<SearchResultItems> GitGrep::executeSearch(const FileFindParameters ¶
|
||||
return Utils::asyncRun(runGitGrep, parameters);
|
||||
}
|
||||
|
||||
IEditor *GitGrep::openEditor(const SearchResultItem &item,
|
||||
const FileFindParameters ¶meters)
|
||||
EditorOpener GitGrep::editorOpener() const
|
||||
{
|
||||
return [](const Utils::SearchResultItem &item,
|
||||
const FileFindParameters ¶meters) -> 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 = m_client->openShowEditor(topLevel, params.ref, path,
|
||||
GitClient::ShowEditor::OnlyIfDifferent);
|
||||
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
|
||||
|
||||
@@ -29,8 +29,7 @@ public:
|
||||
void writeSettings(QSettings *settings) const override;
|
||||
QFuture<Utils::SearchResultItems> executeSearch(
|
||||
const TextEditor::FileFindParameters ¶meters) override;
|
||||
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||
const TextEditor::FileFindParameters ¶meters) override;
|
||||
TextEditor::EditorOpener editorOpener() const override;
|
||||
|
||||
private:
|
||||
GitClient *m_client;
|
||||
|
||||
@@ -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());
|
||||
|
||||
@@ -33,8 +33,6 @@ public:
|
||||
void writeSettings(QSettings *settings) const override;
|
||||
QFuture<Utils::SearchResultItems> executeSearch(
|
||||
const TextEditor::FileFindParameters ¶meters) override;
|
||||
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||
const TextEditor::FileFindParameters ¶meters) override;
|
||||
|
||||
private:
|
||||
QPointer<Core::IFindSupport> m_currentFindSupport;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 ¶meters) = 0;
|
||||
virtual Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||
const FileFindParameters ¶meters) = 0;
|
||||
virtual EditorOpener editorOpener() const { return {}; }
|
||||
bool isEnabled() const;
|
||||
void setEnabled(bool enabled);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user