From 27302694ab794d8437b6feac4095ad34fa43ed24 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 24 May 2023 17:20:27 +0200 Subject: [PATCH] BaseFileFind: Reuse FileContainer Reuse it in BaseFileFind::files() and in InternalEngine::executeSearch(). Change-Id: I2fed4e6af37e83d76deaa8d847564aa4950fc223 Reviewed-by: Qt CI Bot Reviewed-by: Eike Ziller --- .../projectexplorer/allprojectsfind.cpp | 6 +++--- src/plugins/projectexplorer/allprojectsfind.h | 4 ++-- .../projectexplorer/currentprojectfind.cpp | 6 +++--- .../projectexplorer/currentprojectfind.h | 2 +- .../projectexplorer/filesinallprojectsfind.cpp | 8 +++----- .../projectexplorer/filesinallprojectsfind.h | 2 +- src/plugins/texteditor/basefilefind.cpp | 9 ++++----- src/plugins/texteditor/basefilefind.h | 7 ++----- src/plugins/texteditor/findincurrentfile.cpp | 15 ++++++++------- src/plugins/texteditor/findincurrentfile.h | 2 +- src/plugins/texteditor/findinfiles.cpp | 8 +++----- src/plugins/texteditor/findinfiles.h | 2 +- src/plugins/texteditor/findinopenfiles.cpp | 18 ++++++++++-------- src/plugins/texteditor/findinopenfiles.h | 2 +- 14 files changed, 43 insertions(+), 48 deletions(-) diff --git a/src/plugins/projectexplorer/allprojectsfind.cpp b/src/plugins/projectexplorer/allprojectsfind.cpp index d61b1560523..53bc13cfef3 100644 --- a/src/plugins/projectexplorer/allprojectsfind.cpp +++ b/src/plugins/projectexplorer/allprojectsfind.cpp @@ -47,7 +47,7 @@ bool AllProjectsFind::isEnabled() const return BaseFileFind::isEnabled() && ProjectManager::hasProjects(); } -FileIterator *AllProjectsFind::files(const QStringList &nameFilters, +FileContainer AllProjectsFind::files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const { @@ -55,7 +55,7 @@ FileIterator *AllProjectsFind::files(const QStringList &nameFilters, return filesForProjects(nameFilters, exclusionFilters, ProjectManager::projects()); } -FileIterator *AllProjectsFind::filesForProjects(const QStringList &nameFilters, +FileContainer AllProjectsFind::filesForProjects(const QStringList &nameFilters, const QStringList &exclusionFilters, const QList &projects) const { @@ -77,7 +77,7 @@ FileIterator *AllProjectsFind::filesForProjects(const QStringList &nameFilters, encodings.insert(fileName, codec); } } - return new FileListIterator(encodings.keys(), encodings.values()); + return FileListContainer(encodings.keys(), encodings.values()); } QVariant AllProjectsFind::additionalParameters() const diff --git a/src/plugins/projectexplorer/allprojectsfind.h b/src/plugins/projectexplorer/allprojectsfind.h index a66ab8d96a9..4752d8d28a3 100644 --- a/src/plugins/projectexplorer/allprojectsfind.h +++ b/src/plugins/projectexplorer/allprojectsfind.h @@ -30,10 +30,10 @@ public: void readSettings(QSettings *settings) override; protected: - Utils::FileIterator *files(const QStringList &nameFilters, + Utils::FileContainer files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const override; - Utils::FileIterator *filesForProjects(const QStringList &nameFilters, + Utils::FileContainer filesForProjects(const QStringList &nameFilters, const QStringList &exclusionFilters, const QList &projects) const; diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp index 3bde2bb62f2..fb688ae2d5d 100644 --- a/src/plugins/projectexplorer/currentprojectfind.cpp +++ b/src/plugins/projectexplorer/currentprojectfind.cpp @@ -57,17 +57,17 @@ QVariant CurrentProjectFind::additionalParameters() const return QVariant(); } -FileIterator *CurrentProjectFind::files(const QStringList &nameFilters, +FileContainer CurrentProjectFind::files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const { - QTC_ASSERT(additionalParameters.isValid(), return new FileListIterator); + QTC_ASSERT(additionalParameters.isValid(), return {}); const FilePath projectFile = FilePath::fromVariant(additionalParameters); for (Project *project : ProjectManager::projects()) { if (project && projectFile == project->projectFilePath()) return filesForProjects(nameFilters, exclusionFilters, {project}); } - return new FileListIterator; + return {}; } QString CurrentProjectFind::label() const diff --git a/src/plugins/projectexplorer/currentprojectfind.h b/src/plugins/projectexplorer/currentprojectfind.h index 586d0b85b10..6554233d698 100644 --- a/src/plugins/projectexplorer/currentprojectfind.h +++ b/src/plugins/projectexplorer/currentprojectfind.h @@ -27,7 +27,7 @@ public: void readSettings(QSettings *settings) override; protected: - Utils::FileIterator *files(const QStringList &nameFilters, + Utils::FileContainer files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const override; QVariant additionalParameters() const override; diff --git a/src/plugins/projectexplorer/filesinallprojectsfind.cpp b/src/plugins/projectexplorer/filesinallprojectsfind.cpp index 0f9d6c40e25..554b072f7b7 100644 --- a/src/plugins/projectexplorer/filesinallprojectsfind.cpp +++ b/src/plugins/projectexplorer/filesinallprojectsfind.cpp @@ -47,7 +47,7 @@ void FilesInAllProjectsFind::readSettings(QSettings *settings) settings->endGroup(); } -Utils::FileIterator *FilesInAllProjectsFind::files(const QStringList &nameFilters, +FileContainer FilesInAllProjectsFind::files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const { @@ -55,10 +55,8 @@ Utils::FileIterator *FilesInAllProjectsFind::files(const QStringList &nameFilter const QSet dirs = Utils::transform(ProjectManager::projects(), [](Project *p) { return p->projectFilePath().parentDir(); }); - return new SubDirFileIterator(FilePaths(dirs.constBegin(), dirs.constEnd()), - nameFilters, - exclusionFilters, - Core::EditorManager::defaultTextCodec()); + return SubDirFileContainer(FilePaths(dirs.constBegin(), dirs.constEnd()), nameFilters, + exclusionFilters, Core::EditorManager::defaultTextCodec()); } QString FilesInAllProjectsFind::label() const diff --git a/src/plugins/projectexplorer/filesinallprojectsfind.h b/src/plugins/projectexplorer/filesinallprojectsfind.h index 613d1d2a2a9..ad09ff031db 100644 --- a/src/plugins/projectexplorer/filesinallprojectsfind.h +++ b/src/plugins/projectexplorer/filesinallprojectsfind.h @@ -20,7 +20,7 @@ public: void readSettings(QSettings *settings) override; protected: - Utils::FileIterator *files(const QStringList &nameFilters, + Utils::FileContainer files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const override; QString label() const override; diff --git a/src/plugins/texteditor/basefilefind.cpp b/src/plugins/texteditor/basefilefind.cpp index 17bc9753810..94b43964179 100644 --- a/src/plugins/texteditor/basefilefind.cpp +++ b/src/plugins/texteditor/basefilefind.cpp @@ -148,11 +148,10 @@ public: QFuture executeSearch(const TextEditor::FileFindParameters ¶meters, BaseFileFind *baseFileFind) override { - return Utils::findInFiles(parameters.text, - baseFileFind->files(parameters.nameFilters, - parameters.exclusionFilters, - parameters.additionalParameters), - parameters.flags, + const FileContainer container = baseFileFind->files(parameters.nameFilters, + parameters.exclusionFilters, + parameters.additionalParameters); + return Utils::findInFiles(parameters.text, container, parameters.flags, TextDocument::openedTextDocumentContents()); } diff --git a/src/plugins/texteditor/basefilefind.h b/src/plugins/texteditor/basefilefind.h index 538314c42f8..b5195947493 100644 --- a/src/plugins/texteditor/basefilefind.h +++ b/src/plugins/texteditor/basefilefind.h @@ -18,10 +18,7 @@ class IEditor; class SearchResult; } // namespace Core -namespace Utils { -class FileIterator; -class Process; -} +namespace Utils { class Process; } namespace TextEditor { @@ -98,7 +95,7 @@ public: /* returns the list of unique files that were passed in items */ static Utils::FilePaths replaceAll(const QString &txt, const Utils::SearchResultItems &items, bool preserveCase = false); - virtual Utils::FileIterator *files(const QStringList &nameFilters, + virtual Utils::FileContainer files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const = 0; diff --git a/src/plugins/texteditor/findincurrentfile.cpp b/src/plugins/texteditor/findincurrentfile.cpp index 741225d31e7..ce471c1c12d 100644 --- a/src/plugins/texteditor/findincurrentfile.cpp +++ b/src/plugins/texteditor/findincurrentfile.cpp @@ -15,6 +15,8 @@ #include +using namespace Utils; + namespace TextEditor::Internal { FindInCurrentFile::FindInCurrentFile() @@ -34,19 +36,18 @@ QString FindInCurrentFile::displayName() const return Tr::tr("Current File"); } -Utils::FileIterator *FindInCurrentFile::files(const QStringList &nameFilters, - const QStringList &exclusionFilters, - const QVariant &additionalParameters) const +FileContainer FindInCurrentFile::files(const QStringList &nameFilters, + const QStringList &exclusionFilters, + const QVariant &additionalParameters) const { Q_UNUSED(nameFilters) Q_UNUSED(exclusionFilters) - const auto fileName = Utils::FilePath::fromVariant(additionalParameters); - QMap openEditorEncodings - = TextDocument::openedTextDocumentEncodings(); + const auto fileName = FilePath::fromVariant(additionalParameters); + QMap openEditorEncodings = TextDocument::openedTextDocumentEncodings(); QTextCodec *codec = openEditorEncodings.value(fileName); if (!codec) codec = Core::EditorManager::defaultTextCodec(); - return new Utils::FileListIterator({fileName}, {codec}); + return FileListContainer({fileName}, {codec}); } QVariant FindInCurrentFile::additionalParameters() const diff --git a/src/plugins/texteditor/findincurrentfile.h b/src/plugins/texteditor/findincurrentfile.h index 3a77e1d30ac..c5f07eb8b9b 100644 --- a/src/plugins/texteditor/findincurrentfile.h +++ b/src/plugins/texteditor/findincurrentfile.h @@ -29,7 +29,7 @@ public: void readSettings(QSettings *settings) override; protected: - Utils::FileIterator *files(const QStringList &nameFilters, + Utils::FileContainer files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const override; QVariant additionalParameters() const override; diff --git a/src/plugins/texteditor/findinfiles.cpp b/src/plugins/texteditor/findinfiles.cpp index 2f379014dbb..908e53d875b 100644 --- a/src/plugins/texteditor/findinfiles.cpp +++ b/src/plugins/texteditor/findinfiles.cpp @@ -58,14 +58,12 @@ QString FindInFiles::displayName() const return Tr::tr("Files in File System"); } -FileIterator *FindInFiles::files(const QStringList &nameFilters, +FileContainer FindInFiles::files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const { - return new SubDirFileIterator({FilePath::fromVariant(additionalParameters)}, - nameFilters, - exclusionFilters, - EditorManager::defaultTextCodec()); + return SubDirFileContainer({FilePath::fromVariant(additionalParameters)}, nameFilters, + exclusionFilters, EditorManager::defaultTextCodec()); } QVariant FindInFiles::additionalParameters() const diff --git a/src/plugins/texteditor/findinfiles.h b/src/plugins/texteditor/findinfiles.h index f9aeb92e317..c7e923b9506 100644 --- a/src/plugins/texteditor/findinfiles.h +++ b/src/plugins/texteditor/findinfiles.h @@ -44,7 +44,7 @@ signals: void pathChanged(const Utils::FilePath &directory); protected: - Utils::FileIterator *files(const QStringList &nameFilters, + Utils::FileContainer files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const override; QVariant additionalParameters() const override; diff --git a/src/plugins/texteditor/findinopenfiles.cpp b/src/plugins/texteditor/findinopenfiles.cpp index 12fb45eb3c9..6bfdd1b04ec 100644 --- a/src/plugins/texteditor/findinopenfiles.cpp +++ b/src/plugins/texteditor/findinopenfiles.cpp @@ -14,6 +14,8 @@ #include +using namespace Utils; + namespace TextEditor::Internal { FindInOpenFiles::FindInOpenFiles() @@ -34,20 +36,20 @@ QString FindInOpenFiles::displayName() const return Tr::tr("Open Documents"); } -Utils::FileIterator *FindInOpenFiles::files(const QStringList &nameFilters, - const QStringList &exclusionFilters, - const QVariant &additionalParameters) const +FileContainer FindInOpenFiles::files(const QStringList &nameFilters, + const QStringList &exclusionFilters, + const QVariant &additionalParameters) const { Q_UNUSED(nameFilters) Q_UNUSED(exclusionFilters) Q_UNUSED(additionalParameters) - QMap openEditorEncodings + QMap openEditorEncodings = TextDocument::openedTextDocumentEncodings(); - Utils::FilePaths fileNames; + FilePaths fileNames; QList codecs; const QList entries = Core::DocumentModel::entries(); for (Core::DocumentModel::Entry *entry : entries) { - const Utils::FilePath fileName = entry->filePath(); + const FilePath fileName = entry->filePath(); if (!fileName.isEmpty()) { fileNames.append(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 { - return QVariant(); + return {}; } QString FindInOpenFiles::label() const diff --git a/src/plugins/texteditor/findinopenfiles.h b/src/plugins/texteditor/findinopenfiles.h index 244c25f5965..3431331b5b2 100644 --- a/src/plugins/texteditor/findinopenfiles.h +++ b/src/plugins/texteditor/findinopenfiles.h @@ -22,7 +22,7 @@ public: void readSettings(QSettings *settings) override; protected: - Utils::FileIterator *files(const QStringList &nameFilters, + Utils::FileContainer files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const override; QVariant additionalParameters() const override;