forked from qt-creator/qt-creator
BaseFileFind: Replace files() with fileContainerProvider()
The fileContainerProvider() is called only once per SearchResult instance, and the result (the provider) is stored inside FileFindParameters. In this way the extra data, like the name filters or the search directory, are set just once. Whenever the search is started (or started again), the stored provider recreates the FileContainer according to the data that has been captured by the lambda when the provider was created. This patch eliminates the need for retrieving the custom data from QVariant. It also eliminates the set of arbitrary arguments for the removed files() method. Remove the BaseFileFind * argument from the SearchEngine::executeSearch() method. Change-Id: I7211f503f82db12b5a99c9d342466daaaae0839f Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -264,8 +264,7 @@ void GitGrep::writeSettings(QSettings *settings) const
|
|||||||
settings->setValue(GitGrepRef, m_treeLineEdit->text());
|
settings->setValue(GitGrepRef, m_treeLineEdit->text());
|
||||||
}
|
}
|
||||||
|
|
||||||
QFuture<SearchResultItems> GitGrep::executeSearch(const FileFindParameters ¶meters,
|
QFuture<SearchResultItems> GitGrep::executeSearch(const FileFindParameters ¶meters)
|
||||||
BaseFileFind *)
|
|
||||||
{
|
{
|
||||||
return Utils::asyncRun(runGitGrep, parameters);
|
return Utils::asyncRun(runGitGrep, parameters);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,8 +28,7 @@ public:
|
|||||||
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(
|
QFuture<Utils::SearchResultItems> executeSearch(
|
||||||
const TextEditor::FileFindParameters ¶meters,
|
const TextEditor::FileFindParameters ¶meters) override;
|
||||||
TextEditor::BaseFileFind *baseFileFind) override;
|
|
||||||
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||||
const TextEditor::FileFindParameters ¶meters) override;
|
const TextEditor::FileFindParameters ¶meters) override;
|
||||||
|
|
||||||
|
|||||||
@@ -47,17 +47,16 @@ bool AllProjectsFind::isEnabled() const
|
|||||||
return BaseFileFind::isEnabled() && ProjectManager::hasProjects();
|
return BaseFileFind::isEnabled() && ProjectManager::hasProjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
FileContainer AllProjectsFind::files(const QStringList &nameFilters,
|
FileContainerProvider AllProjectsFind::fileContainerProvider() const
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const
|
|
||||||
{
|
{
|
||||||
Q_UNUSED(additionalParameters)
|
return [nameFilters = fileNameFilters(), exclusionFilters = fileExclusionFilters()] {
|
||||||
return filesForProjects(nameFilters, exclusionFilters, ProjectManager::projects());
|
return filesForProjects(nameFilters, exclusionFilters, ProjectManager::projects());
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
FileContainer AllProjectsFind::filesForProjects(const QStringList &nameFilters,
|
FileContainer AllProjectsFind::filesForProjects(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QList<Project *> &projects) const
|
const QList<Project *> &projects)
|
||||||
{
|
{
|
||||||
std::function<FilePaths(const FilePaths &)> filterFiles
|
std::function<FilePaths(const FilePaths &)> filterFiles
|
||||||
= Utils::filterFilesFunction(nameFilters, exclusionFilters);
|
= Utils::filterFilesFunction(nameFilters, exclusionFilters);
|
||||||
|
|||||||
@@ -30,18 +30,16 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileContainer files(const QStringList &nameFilters,
|
static Utils::FileContainer filesForProjects(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const override;
|
const QList<Project *> &projects);
|
||||||
Utils::FileContainer filesForProjects(const QStringList &nameFilters,
|
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QList<Project *> &projects) const;
|
|
||||||
|
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
QString label() const override;
|
QString label() const override;
|
||||||
QString toolTip() const override;
|
QString toolTip() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
TextEditor::FileContainerProvider fileContainerProvider() const override;
|
||||||
void handleFileListChanged();
|
void handleFileListChanged();
|
||||||
|
|
||||||
QPointer<QWidget> m_configWidget;
|
QPointer<QWidget> m_configWidget;
|
||||||
|
|||||||
@@ -57,17 +57,22 @@ QVariant CurrentProjectFind::additionalParameters() const
|
|||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
FileContainer CurrentProjectFind::files(const QStringList &nameFilters,
|
static FilePath currentProjectFilePath()
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const
|
|
||||||
{
|
{
|
||||||
QTC_ASSERT(additionalParameters.isValid(), return {});
|
Project *project = ProjectTree::currentProject();
|
||||||
const FilePath projectFile = FilePath::fromVariant(additionalParameters);
|
return project ? project->projectFilePath() : FilePath();
|
||||||
|
}
|
||||||
|
|
||||||
|
FileContainerProvider CurrentProjectFind::fileContainerProvider() const
|
||||||
|
{
|
||||||
|
return [nameFilters = fileNameFilters(), exclusionFilters = fileExclusionFilters(),
|
||||||
|
projectFile = currentProjectFilePath()] {
|
||||||
for (Project *project : ProjectManager::projects()) {
|
for (Project *project : ProjectManager::projects()) {
|
||||||
if (project && projectFile == project->projectFilePath())
|
if (project && projectFile == project->projectFilePath())
|
||||||
return filesForProjects(nameFilters, exclusionFilters, {project});
|
return filesForProjects(nameFilters, exclusionFilters, {project});
|
||||||
}
|
}
|
||||||
return {};
|
return FileContainer();
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CurrentProjectFind::label() const
|
QString CurrentProjectFind::label() const
|
||||||
@@ -85,8 +90,7 @@ void CurrentProjectFind::handleProjectChanged()
|
|||||||
|
|
||||||
void CurrentProjectFind::setupSearch(Core::SearchResult *search)
|
void CurrentProjectFind::setupSearch(Core::SearchResult *search)
|
||||||
{
|
{
|
||||||
Project *project = ProjectTree::currentProject();
|
const FilePath projectFile = currentProjectFilePath();
|
||||||
const FilePath projectFile = project ? project->projectFilePath() : FilePath();
|
|
||||||
connect(this, &IFindFilter::enabledChanged, search, [search, projectFile] {
|
connect(this, &IFindFilter::enabledChanged, search, [search, projectFile] {
|
||||||
const QList<Project *> projects = ProjectManager::projects();
|
const QList<Project *> projects = ProjectManager::projects();
|
||||||
for (Project *project : projects) {
|
for (Project *project : projects) {
|
||||||
|
|||||||
@@ -27,13 +27,11 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileContainer files(const QStringList &nameFilters,
|
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const override;
|
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
QString label() const override;
|
QString label() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
TextEditor::FileContainerProvider fileContainerProvider() const override;
|
||||||
void handleProjectChanged();
|
void handleProjectChanged();
|
||||||
void setupSearch(Core::SearchResult *search) override;
|
void setupSearch(Core::SearchResult *search) override;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
|
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
|
||||||
|
using namespace TextEditor;
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
|
|
||||||
namespace ProjectExplorer {
|
namespace ProjectExplorer {
|
||||||
@@ -47,16 +48,15 @@ void FilesInAllProjectsFind::readSettings(QSettings *settings)
|
|||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
FileContainer FilesInAllProjectsFind::files(const QStringList &nameFilters,
|
FileContainerProvider FilesInAllProjectsFind::fileContainerProvider() const
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const
|
|
||||||
{
|
{
|
||||||
Q_UNUSED(additionalParameters)
|
return [nameFilters = fileNameFilters(), exclusionFilters = fileExclusionFilters()] {
|
||||||
const QSet<FilePath> dirs = Utils::transform<QSet>(ProjectManager::projects(), [](Project *p) {
|
const QSet<FilePath> dirs = Utils::transform<QSet>(ProjectManager::projects(), [](Project *p) {
|
||||||
return p->projectFilePath().parentDir();
|
return p->projectFilePath().parentDir();
|
||||||
});
|
});
|
||||||
return SubDirFileContainer(FilePaths(dirs.constBegin(), dirs.constEnd()), nameFilters,
|
return SubDirFileContainer(FilePaths(dirs.constBegin(), dirs.constEnd()), nameFilters,
|
||||||
exclusionFilters, Core::EditorManager::defaultTextCodec());
|
exclusionFilters, Core::EditorManager::defaultTextCodec());
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FilesInAllProjectsFind::label() const
|
QString FilesInAllProjectsFind::label() const
|
||||||
|
|||||||
@@ -20,9 +20,7 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileContainer files(const QStringList &nameFilters,
|
TextEditor::FileContainerProvider fileContainerProvider() const override;
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const override;
|
|
||||||
QString label() const override;
|
QString label() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -165,7 +165,7 @@ void FindInFilesSilverSearcher::writeSettings(QSettings *settings) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
QFuture<SearchResultItems> FindInFilesSilverSearcher::executeSearch(
|
QFuture<SearchResultItems> FindInFilesSilverSearcher::executeSearch(
|
||||||
const FileFindParameters ¶meters, BaseFileFind * /*baseFileFind*/)
|
const FileFindParameters ¶meters)
|
||||||
{
|
{
|
||||||
return Utils::asyncRun(runSilverSeacher, parameters);
|
return Utils::asyncRun(runSilverSeacher, parameters);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ public:
|
|||||||
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(
|
QFuture<Utils::SearchResultItems> executeSearch(
|
||||||
const TextEditor::FileFindParameters ¶meters, TextEditor::BaseFileFind *) override;
|
const TextEditor::FileFindParameters ¶meters) override;
|
||||||
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||||
const TextEditor::FileFindParameters ¶meters) override;
|
const TextEditor::FileFindParameters ¶meters) override;
|
||||||
|
|
||||||
|
|||||||
@@ -145,14 +145,10 @@ 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 TextEditor::FileFindParameters ¶meters,
|
QFuture<SearchResultItems> executeSearch(const FileFindParameters ¶meters) override
|
||||||
BaseFileFind *baseFileFind) override
|
|
||||||
{
|
{
|
||||||
const FileContainer container = baseFileFind->files(parameters.nameFilters,
|
return Utils::findInFiles(parameters.text, parameters.fileContainerProvider(),
|
||||||
parameters.exclusionFilters,
|
parameters.flags, TextDocument::openedTextDocumentContents());
|
||||||
parameters.additionalParameters);
|
|
||||||
return Utils::findInFiles(parameters.text, container, parameters.flags,
|
|
||||||
TextDocument::openedTextDocumentContents());
|
|
||||||
|
|
||||||
}
|
}
|
||||||
Core::IEditor *openEditor(const SearchResultItem &/*item*/,
|
Core::IEditor *openEditor(const SearchResultItem &/*item*/,
|
||||||
@@ -324,6 +320,8 @@ void BaseFileFind::runNewSearch(const QString &txt, FindFlags findFlags,
|
|||||||
parameters.additionalParameters = additionalParameters();
|
parameters.additionalParameters = additionalParameters();
|
||||||
parameters.searchEngineParameters = currentSearchEngine()->parameters();
|
parameters.searchEngineParameters = currentSearchEngine()->parameters();
|
||||||
parameters.searchEngineIndex = d->m_currentSearchEngineIndex;
|
parameters.searchEngineIndex = d->m_currentSearchEngineIndex;
|
||||||
|
parameters.fileContainerProvider = fileContainerProvider();
|
||||||
|
|
||||||
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) {
|
||||||
openEditor(search, item);
|
openEditor(search, item);
|
||||||
@@ -600,7 +598,7 @@ FilePaths BaseFileFind::replaceAll(const QString &text, const SearchResultItems
|
|||||||
|
|
||||||
QFuture<SearchResultItems> BaseFileFind::executeSearch(const FileFindParameters ¶meters)
|
QFuture<SearchResultItems> BaseFileFind::executeSearch(const FileFindParameters ¶meters)
|
||||||
{
|
{
|
||||||
return d->m_searchEngines[parameters.searchEngineIndex]->executeSearch(parameters, this);
|
return d->m_searchEngines[parameters.searchEngineIndex]->executeSearch(parameters);
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ class BaseFileFindPrivate;
|
|||||||
class SearchEnginePrivate;
|
class SearchEnginePrivate;
|
||||||
} // Internal
|
} // Internal
|
||||||
|
|
||||||
|
using FileContainerProvider = std::function<Utils::FileContainer()>;
|
||||||
|
|
||||||
class TEXTEDITOR_EXPORT FileFindParameters
|
class TEXTEDITOR_EXPORT FileFindParameters
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
@@ -37,6 +39,7 @@ public:
|
|||||||
QVariant searchEngineParameters;
|
QVariant searchEngineParameters;
|
||||||
int searchEngineIndex;
|
int searchEngineIndex;
|
||||||
Utils::FindFlags flags;
|
Utils::FindFlags flags;
|
||||||
|
FileContainerProvider fileContainerProvider = {};
|
||||||
};
|
};
|
||||||
|
|
||||||
using ProcessSetupHandler = std::function<void(Utils::Process &)>;
|
using ProcessSetupHandler = std::function<void(Utils::Process &)>;
|
||||||
@@ -65,7 +68,7 @@ public:
|
|||||||
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 QFuture<Utils::SearchResultItems> executeSearch(
|
||||||
const FileFindParameters ¶meters, BaseFileFind *baseFileFind) = 0;
|
const FileFindParameters ¶meters) = 0;
|
||||||
virtual Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
virtual Core::IEditor *openEditor(const Utils::SearchResultItem &item,
|
||||||
const FileFindParameters ¶meters) = 0;
|
const FileFindParameters ¶meters) = 0;
|
||||||
bool isEnabled() const;
|
bool isEnabled() const;
|
||||||
@@ -95,9 +98,6 @@ public:
|
|||||||
/* returns the list of unique files that were passed in items */
|
/* returns the list of unique files that were passed in items */
|
||||||
static Utils::FilePaths replaceAll(const QString &txt, const Utils::SearchResultItems &items,
|
static Utils::FilePaths replaceAll(const QString &txt, const Utils::SearchResultItems &items,
|
||||||
bool preserveCase = false);
|
bool preserveCase = false);
|
||||||
virtual Utils::FileContainer files(const QStringList &nameFilters,
|
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const = 0;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual QVariant additionalParameters() const = 0;
|
virtual QVariant additionalParameters() const = 0;
|
||||||
@@ -121,6 +121,7 @@ signals:
|
|||||||
void currentSearchEngineChanged();
|
void currentSearchEngineChanged();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
virtual FileContainerProvider fileContainerProvider() const = 0;
|
||||||
void openEditor(Core::SearchResult *result, const Utils::SearchResultItem &item);
|
void openEditor(Core::SearchResult *result, const Utils::SearchResultItem &item);
|
||||||
void doReplace(const QString &txt, const Utils::SearchResultItems &items, bool preserveCase);
|
void doReplace(const QString &txt, const Utils::SearchResultItems &items, bool preserveCase);
|
||||||
void hideHighlightAll(bool visible);
|
void hideHighlightAll(bool visible);
|
||||||
|
|||||||
@@ -36,18 +36,15 @@ QString FindInCurrentFile::displayName() const
|
|||||||
return Tr::tr("Current File");
|
return Tr::tr("Current File");
|
||||||
}
|
}
|
||||||
|
|
||||||
FileContainer FindInCurrentFile::files(const QStringList &nameFilters,
|
FileContainerProvider FindInCurrentFile::fileContainerProvider() const
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const
|
|
||||||
{
|
{
|
||||||
Q_UNUSED(nameFilters)
|
return [fileName = m_currentDocument->filePath()] {
|
||||||
Q_UNUSED(exclusionFilters)
|
const QMap<FilePath, QTextCodec *> encodings = TextDocument::openedTextDocumentEncodings();
|
||||||
const auto fileName = FilePath::fromVariant(additionalParameters);
|
QTextCodec *codec = encodings.value(fileName);
|
||||||
QMap<FilePath, QTextCodec *> openEditorEncodings = TextDocument::openedTextDocumentEncodings();
|
|
||||||
QTextCodec *codec = openEditorEncodings.value(fileName);
|
|
||||||
if (!codec)
|
if (!codec)
|
||||||
codec = Core::EditorManager::defaultTextCodec();
|
codec = Core::EditorManager::defaultTextCodec();
|
||||||
return FileListContainer({fileName}, {codec});
|
return FileListContainer({fileName}, {codec});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant FindInCurrentFile::additionalParameters() const
|
QVariant FindInCurrentFile::additionalParameters() const
|
||||||
|
|||||||
@@ -29,14 +29,12 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileContainer files(const QStringList &nameFilters,
|
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const override;
|
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
QString label() const override;
|
QString label() const override;
|
||||||
QString toolTip() const override;
|
QString toolTip() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
FileContainerProvider fileContainerProvider() const override;
|
||||||
void handleFileChange(Core::IEditor *editor);
|
void handleFileChange(Core::IEditor *editor);
|
||||||
|
|
||||||
QPointer<Core::IDocument> m_currentDocument;
|
QPointer<Core::IDocument> m_currentDocument;
|
||||||
|
|||||||
@@ -58,12 +58,13 @@ QString FindInFiles::displayName() const
|
|||||||
return Tr::tr("Files in File System");
|
return Tr::tr("Files in File System");
|
||||||
}
|
}
|
||||||
|
|
||||||
FileContainer FindInFiles::files(const QStringList &nameFilters,
|
FileContainerProvider FindInFiles::fileContainerProvider() const
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const
|
|
||||||
{
|
{
|
||||||
return SubDirFileContainer({FilePath::fromVariant(additionalParameters)}, nameFilters,
|
return [nameFilters = fileNameFilters(), exclusionFilters = fileExclusionFilters(),
|
||||||
exclusionFilters, EditorManager::defaultTextCodec());
|
filePath = path()] {
|
||||||
|
return SubDirFileContainer({filePath}, nameFilters, exclusionFilters,
|
||||||
|
EditorManager::defaultTextCodec());
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant FindInFiles::additionalParameters() const
|
QVariant FindInFiles::additionalParameters() const
|
||||||
|
|||||||
@@ -44,15 +44,13 @@ signals:
|
|||||||
void pathChanged(const Utils::FilePath &directory);
|
void pathChanged(const Utils::FilePath &directory);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileContainer files(const QStringList &nameFilters,
|
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const override;
|
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
QString label() const override;
|
QString label() const override;
|
||||||
QString toolTip() const override;
|
QString toolTip() const override;
|
||||||
void syncSearchEngineCombo(int selectedSearchEngineIndex) override;
|
void syncSearchEngineCombo(int selectedSearchEngineIndex) override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
FileContainerProvider fileContainerProvider() const override;
|
||||||
void setValid(bool valid);
|
void setValid(bool valid);
|
||||||
void searchEnginesSelectionChanged(int index);
|
void searchEnginesSelectionChanged(int index);
|
||||||
Utils::FilePath path() const;
|
Utils::FilePath path() const;
|
||||||
|
|||||||
@@ -36,15 +36,10 @@ QString FindInOpenFiles::displayName() const
|
|||||||
return Tr::tr("Open Documents");
|
return Tr::tr("Open Documents");
|
||||||
}
|
}
|
||||||
|
|
||||||
FileContainer FindInOpenFiles::files(const QStringList &nameFilters,
|
FileContainerProvider FindInOpenFiles::fileContainerProvider() const
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const
|
|
||||||
{
|
{
|
||||||
Q_UNUSED(nameFilters)
|
return [] {
|
||||||
Q_UNUSED(exclusionFilters)
|
const QMap<FilePath, QTextCodec *> encodings = TextDocument::openedTextDocumentEncodings();
|
||||||
Q_UNUSED(additionalParameters)
|
|
||||||
QMap<FilePath, QTextCodec *> openEditorEncodings
|
|
||||||
= TextDocument::openedTextDocumentEncodings();
|
|
||||||
FilePaths fileNames;
|
FilePaths fileNames;
|
||||||
QList<QTextCodec *> codecs;
|
QList<QTextCodec *> codecs;
|
||||||
const QList<Core::DocumentModel::Entry *> entries = Core::DocumentModel::entries();
|
const QList<Core::DocumentModel::Entry *> entries = Core::DocumentModel::entries();
|
||||||
@@ -52,14 +47,14 @@ FileContainer FindInOpenFiles::files(const QStringList &nameFilters,
|
|||||||
const FilePath fileName = entry->filePath();
|
const FilePath fileName = entry->filePath();
|
||||||
if (!fileName.isEmpty()) {
|
if (!fileName.isEmpty()) {
|
||||||
fileNames.append(fileName);
|
fileNames.append(fileName);
|
||||||
QTextCodec *codec = openEditorEncodings.value(fileName);
|
QTextCodec *codec = encodings.value(fileName);
|
||||||
if (!codec)
|
if (!codec)
|
||||||
codec = Core::EditorManager::defaultTextCodec();
|
codec = Core::EditorManager::defaultTextCodec();
|
||||||
codecs.append(codec);
|
codecs.append(codec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return FileListContainer(fileNames, codecs);
|
return FileListContainer(fileNames, codecs);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant FindInOpenFiles::additionalParameters() const
|
QVariant FindInOpenFiles::additionalParameters() const
|
||||||
|
|||||||
@@ -22,14 +22,12 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileContainer files(const QStringList &nameFilters,
|
|
||||||
const QStringList &exclusionFilters,
|
|
||||||
const QVariant &additionalParameters) const override;
|
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
QString label() const override;
|
QString label() const override;
|
||||||
QString toolTip() const override;
|
QString toolTip() const override;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
FileContainerProvider fileContainerProvider() const override;
|
||||||
void updateEnabledState();
|
void updateEnabledState();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user