forked from qt-creator/qt-creator
BaseFileFind: Reuse FileContainer
Reuse it in BaseFileFind::files() and in InternalEngine::executeSearch(). Change-Id: I2fed4e6af37e83d76deaa8d847564aa4950fc223 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -47,7 +47,7 @@ bool AllProjectsFind::isEnabled() const
|
|||||||
return BaseFileFind::isEnabled() && ProjectManager::hasProjects();
|
return BaseFileFind::isEnabled() && ProjectManager::hasProjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
FileIterator *AllProjectsFind::files(const QStringList &nameFilters,
|
FileContainer AllProjectsFind::files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const
|
const QVariant &additionalParameters) const
|
||||||
{
|
{
|
||||||
@@ -55,7 +55,7 @@ FileIterator *AllProjectsFind::files(const QStringList &nameFilters,
|
|||||||
return filesForProjects(nameFilters, exclusionFilters, ProjectManager::projects());
|
return filesForProjects(nameFilters, exclusionFilters, ProjectManager::projects());
|
||||||
}
|
}
|
||||||
|
|
||||||
FileIterator *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) const
|
||||||
{
|
{
|
||||||
@@ -77,7 +77,7 @@ FileIterator *AllProjectsFind::filesForProjects(const QStringList &nameFilters,
|
|||||||
encodings.insert(fileName, codec);
|
encodings.insert(fileName, codec);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new FileListIterator(encodings.keys(), encodings.values());
|
return FileListContainer(encodings.keys(), encodings.values());
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant AllProjectsFind::additionalParameters() const
|
QVariant AllProjectsFind::additionalParameters() const
|
||||||
|
@@ -30,10 +30,10 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileIterator *files(const QStringList &nameFilters,
|
Utils::FileContainer files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const override;
|
const QVariant &additionalParameters) const override;
|
||||||
Utils::FileIterator *filesForProjects(const QStringList &nameFilters,
|
Utils::FileContainer filesForProjects(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QList<Project *> &projects) const;
|
const QList<Project *> &projects) const;
|
||||||
|
|
||||||
|
@@ -57,17 +57,17 @@ QVariant CurrentProjectFind::additionalParameters() const
|
|||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
||||||
FileIterator *CurrentProjectFind::files(const QStringList &nameFilters,
|
FileContainer CurrentProjectFind::files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const
|
const QVariant &additionalParameters) const
|
||||||
{
|
{
|
||||||
QTC_ASSERT(additionalParameters.isValid(), return new FileListIterator);
|
QTC_ASSERT(additionalParameters.isValid(), return {});
|
||||||
const FilePath projectFile = FilePath::fromVariant(additionalParameters);
|
const FilePath projectFile = FilePath::fromVariant(additionalParameters);
|
||||||
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 new FileListIterator;
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CurrentProjectFind::label() const
|
QString CurrentProjectFind::label() const
|
||||||
|
@@ -27,7 +27,7 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileIterator *files(const QStringList &nameFilters,
|
Utils::FileContainer files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const override;
|
const QVariant &additionalParameters) const override;
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
|
@@ -47,7 +47,7 @@ void FilesInAllProjectsFind::readSettings(QSettings *settings)
|
|||||||
settings->endGroup();
|
settings->endGroup();
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FileIterator *FilesInAllProjectsFind::files(const QStringList &nameFilters,
|
FileContainer FilesInAllProjectsFind::files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const
|
const QVariant &additionalParameters) const
|
||||||
{
|
{
|
||||||
@@ -55,10 +55,8 @@ Utils::FileIterator *FilesInAllProjectsFind::files(const QStringList &nameFilter
|
|||||||
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 new SubDirFileIterator(FilePaths(dirs.constBegin(), dirs.constEnd()),
|
return SubDirFileContainer(FilePaths(dirs.constBegin(), dirs.constEnd()), nameFilters,
|
||||||
nameFilters,
|
exclusionFilters, Core::EditorManager::defaultTextCodec());
|
||||||
exclusionFilters,
|
|
||||||
Core::EditorManager::defaultTextCodec());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FilesInAllProjectsFind::label() const
|
QString FilesInAllProjectsFind::label() const
|
||||||
|
@@ -20,7 +20,7 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileIterator *files(const QStringList &nameFilters,
|
Utils::FileContainer files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const override;
|
const QVariant &additionalParameters) const override;
|
||||||
QString label() const override;
|
QString label() const override;
|
||||||
|
@@ -148,11 +148,10 @@ public:
|
|||||||
QFuture<SearchResultItems> executeSearch(const TextEditor::FileFindParameters ¶meters,
|
QFuture<SearchResultItems> executeSearch(const TextEditor::FileFindParameters ¶meters,
|
||||||
BaseFileFind *baseFileFind) override
|
BaseFileFind *baseFileFind) override
|
||||||
{
|
{
|
||||||
return Utils::findInFiles(parameters.text,
|
const FileContainer container = baseFileFind->files(parameters.nameFilters,
|
||||||
baseFileFind->files(parameters.nameFilters,
|
|
||||||
parameters.exclusionFilters,
|
parameters.exclusionFilters,
|
||||||
parameters.additionalParameters),
|
parameters.additionalParameters);
|
||||||
parameters.flags,
|
return Utils::findInFiles(parameters.text, container, parameters.flags,
|
||||||
TextDocument::openedTextDocumentContents());
|
TextDocument::openedTextDocumentContents());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -18,10 +18,7 @@ class IEditor;
|
|||||||
class SearchResult;
|
class SearchResult;
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
||||||
namespace Utils {
|
namespace Utils { class Process; }
|
||||||
class FileIterator;
|
|
||||||
class Process;
|
|
||||||
}
|
|
||||||
|
|
||||||
namespace TextEditor {
|
namespace TextEditor {
|
||||||
|
|
||||||
@@ -98,7 +95,7 @@ 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::FileIterator *files(const QStringList &nameFilters,
|
virtual Utils::FileContainer files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const = 0;
|
const QVariant &additionalParameters) const = 0;
|
||||||
|
|
||||||
|
@@ -15,6 +15,8 @@
|
|||||||
|
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace TextEditor::Internal {
|
namespace TextEditor::Internal {
|
||||||
|
|
||||||
FindInCurrentFile::FindInCurrentFile()
|
FindInCurrentFile::FindInCurrentFile()
|
||||||
@@ -34,19 +36,18 @@ QString FindInCurrentFile::displayName() const
|
|||||||
return Tr::tr("Current File");
|
return Tr::tr("Current File");
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FileIterator *FindInCurrentFile::files(const QStringList &nameFilters,
|
FileContainer FindInCurrentFile::files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const
|
const QVariant &additionalParameters) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(nameFilters)
|
Q_UNUSED(nameFilters)
|
||||||
Q_UNUSED(exclusionFilters)
|
Q_UNUSED(exclusionFilters)
|
||||||
const auto fileName = Utils::FilePath::fromVariant(additionalParameters);
|
const auto fileName = FilePath::fromVariant(additionalParameters);
|
||||||
QMap<Utils::FilePath, QTextCodec *> openEditorEncodings
|
QMap<FilePath, QTextCodec *> openEditorEncodings = TextDocument::openedTextDocumentEncodings();
|
||||||
= TextDocument::openedTextDocumentEncodings();
|
|
||||||
QTextCodec *codec = openEditorEncodings.value(fileName);
|
QTextCodec *codec = openEditorEncodings.value(fileName);
|
||||||
if (!codec)
|
if (!codec)
|
||||||
codec = Core::EditorManager::defaultTextCodec();
|
codec = Core::EditorManager::defaultTextCodec();
|
||||||
return new Utils::FileListIterator({fileName}, {codec});
|
return FileListContainer({fileName}, {codec});
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant FindInCurrentFile::additionalParameters() const
|
QVariant FindInCurrentFile::additionalParameters() const
|
||||||
|
@@ -29,7 +29,7 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileIterator *files(const QStringList &nameFilters,
|
Utils::FileContainer files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const override;
|
const QVariant &additionalParameters) const override;
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
|
@@ -58,14 +58,12 @@ QString FindInFiles::displayName() const
|
|||||||
return Tr::tr("Files in File System");
|
return Tr::tr("Files in File System");
|
||||||
}
|
}
|
||||||
|
|
||||||
FileIterator *FindInFiles::files(const QStringList &nameFilters,
|
FileContainer FindInFiles::files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const
|
const QVariant &additionalParameters) const
|
||||||
{
|
{
|
||||||
return new SubDirFileIterator({FilePath::fromVariant(additionalParameters)},
|
return SubDirFileContainer({FilePath::fromVariant(additionalParameters)}, nameFilters,
|
||||||
nameFilters,
|
exclusionFilters, EditorManager::defaultTextCodec());
|
||||||
exclusionFilters,
|
|
||||||
EditorManager::defaultTextCodec());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant FindInFiles::additionalParameters() const
|
QVariant FindInFiles::additionalParameters() const
|
||||||
|
@@ -44,7 +44,7 @@ signals:
|
|||||||
void pathChanged(const Utils::FilePath &directory);
|
void pathChanged(const Utils::FilePath &directory);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileIterator *files(const QStringList &nameFilters,
|
Utils::FileContainer files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const override;
|
const QVariant &additionalParameters) const override;
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
|
@@ -14,6 +14,8 @@
|
|||||||
|
|
||||||
#include <QSettings>
|
#include <QSettings>
|
||||||
|
|
||||||
|
using namespace Utils;
|
||||||
|
|
||||||
namespace TextEditor::Internal {
|
namespace TextEditor::Internal {
|
||||||
|
|
||||||
FindInOpenFiles::FindInOpenFiles()
|
FindInOpenFiles::FindInOpenFiles()
|
||||||
@@ -34,20 +36,20 @@ QString FindInOpenFiles::displayName() const
|
|||||||
return Tr::tr("Open Documents");
|
return Tr::tr("Open Documents");
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::FileIterator *FindInOpenFiles::files(const QStringList &nameFilters,
|
FileContainer FindInOpenFiles::files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const
|
const QVariant &additionalParameters) const
|
||||||
{
|
{
|
||||||
Q_UNUSED(nameFilters)
|
Q_UNUSED(nameFilters)
|
||||||
Q_UNUSED(exclusionFilters)
|
Q_UNUSED(exclusionFilters)
|
||||||
Q_UNUSED(additionalParameters)
|
Q_UNUSED(additionalParameters)
|
||||||
QMap<Utils::FilePath, QTextCodec *> openEditorEncodings
|
QMap<FilePath, QTextCodec *> openEditorEncodings
|
||||||
= TextDocument::openedTextDocumentEncodings();
|
= TextDocument::openedTextDocumentEncodings();
|
||||||
Utils::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();
|
||||||
for (Core::DocumentModel::Entry *entry : entries) {
|
for (Core::DocumentModel::Entry *entry : entries) {
|
||||||
const Utils::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 = openEditorEncodings.value(fileName);
|
||||||
@@ -57,12 +59,12 @@ Utils::FileIterator *FindInOpenFiles::files(const QStringList &nameFilters,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new Utils::FileListIterator(fileNames, codecs);
|
return FileListContainer(fileNames, codecs);
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant FindInOpenFiles::additionalParameters() const
|
QVariant FindInOpenFiles::additionalParameters() const
|
||||||
{
|
{
|
||||||
return QVariant();
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FindInOpenFiles::label() const
|
QString FindInOpenFiles::label() const
|
||||||
|
@@ -22,7 +22,7 @@ public:
|
|||||||
void readSettings(QSettings *settings) override;
|
void readSettings(QSettings *settings) override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Utils::FileIterator *files(const QStringList &nameFilters,
|
Utils::FileContainer files(const QStringList &nameFilters,
|
||||||
const QStringList &exclusionFilters,
|
const QStringList &exclusionFilters,
|
||||||
const QVariant &additionalParameters) const override;
|
const QVariant &additionalParameters) const override;
|
||||||
QVariant additionalParameters() const override;
|
QVariant additionalParameters() const override;
|
||||||
|
Reference in New Issue
Block a user