diff options
author | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-03-13 10:43:54 +0100 |
---|---|---|
committer | Jarek Kobus <jaroslaw.kobus@qt.io> | 2023-03-13 10:57:24 +0000 |
commit | 0c4dff7c10962ed438bc27c73942b2d1a81cb3fb (patch) | |
tree | 7fd61d4fe508a712a3baff94bb45f651600ef1af | |
parent | 81dcfd907b961f4f3aab438d648a3fc3a50fc4ee (diff) | |
download | qt-creator-0c4dff7c10962ed438bc27c73942b2d1a81cb3fb.tar.gz |
FileListIterator: Minor fixes
Add a reference to c'tor's encodings arg.
Make c'tor's args default.
Make m_items field const.
Change-Id: I74bb1829f3ba0ea8a61106bddadeb935b6405f77
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r-- | src/libs/utils/filesearch.cpp | 19 | ||||
-rw-r--r-- | src/libs/utils/filesearch.h | 7 | ||||
-rw-r--r-- | src/plugins/projectexplorer/currentprojectfind.cpp | 5 | ||||
-rw-r--r-- | tests/auto/filesearch/tst_filesearch.cpp | 6 |
4 files changed, 18 insertions, 19 deletions
diff --git a/src/libs/utils/filesearch.cpp b/src/libs/utils/filesearch.cpp index d0fa1c71c3..02f6409de0 100644 --- a/src/libs/utils/filesearch.cpp +++ b/src/libs/utils/filesearch.cpp @@ -598,19 +598,20 @@ FileIterator::const_iterator FileIterator::end() const // #pragma mark -- FileListIterator -QTextCodec *encodingAt(const QList<QTextCodec *> &encodings, int index) +QList<FileIterator::Item> constructItems(const FilePaths &fileList, + const QList<QTextCodec *> &encodings) { - if (index >= 0 && index < encodings.size()) - return encodings.at(index); - return QTextCodec::codecForLocale(); + QList<FileIterator::Item> items; + items.reserve(fileList.size()); + QTextCodec *defaultEncoding = QTextCodec::codecForLocale(); + for (int i = 0; i < fileList.size(); ++i) + items.append(FileIterator::Item(fileList.at(i), encodings.value(i, defaultEncoding))); + return items; } -FileListIterator::FileListIterator(const FilePaths &fileList, const QList<QTextCodec *> encodings) - : m_maxIndex(-1) +FileListIterator::FileListIterator(const FilePaths &fileList, const QList<QTextCodec *> &encodings) + : m_items(constructItems(fileList, encodings)) { - m_items.reserve(fileList.size()); - for (int i = 0; i < fileList.size(); ++i) - m_items.append(Item(fileList.at(i), encodingAt(encodings, i))); } void FileListIterator::update(int requestedIndex) diff --git a/src/libs/utils/filesearch.h b/src/libs/utils/filesearch.h index 9d427f5946..ecb6c574af 100644 --- a/src/libs/utils/filesearch.h +++ b/src/libs/utils/filesearch.h @@ -107,7 +107,8 @@ protected: class QTCREATOR_UTILS_EXPORT FileListIterator : public FileIterator { public: - explicit FileListIterator(const FilePaths &fileList, const QList<QTextCodec *> encodings); + explicit FileListIterator(const FilePaths &fileList = {}, + const QList<QTextCodec *> &encodings = {}); int maxProgress() const override; int currentProgress() const override; @@ -118,8 +119,8 @@ protected: const Item &itemAt(int index) const override; private: - QVector<Item> m_items; - int m_maxIndex; + const QList<Item> m_items; + int m_maxIndex = -1; }; class QTCREATOR_UTILS_EXPORT SubDirFileIterator : public FileIterator diff --git a/src/plugins/projectexplorer/currentprojectfind.cpp b/src/plugins/projectexplorer/currentprojectfind.cpp index fb9b8f44d6..3bde2bb62f 100644 --- a/src/plugins/projectexplorer/currentprojectfind.cpp +++ b/src/plugins/projectexplorer/currentprojectfind.cpp @@ -61,14 +61,13 @@ FileIterator *CurrentProjectFind::files(const QStringList &nameFilters, const QStringList &exclusionFilters, const QVariant &additionalParameters) const { - QTC_ASSERT(additionalParameters.isValid(), - return new FileListIterator(FilePaths(), QList<QTextCodec *>())); + QTC_ASSERT(additionalParameters.isValid(), return new FileListIterator); const FilePath projectFile = FilePath::fromVariant(additionalParameters); for (Project *project : ProjectManager::projects()) { if (project && projectFile == project->projectFilePath()) return filesForProjects(nameFilters, exclusionFilters, {project}); } - return new FileListIterator(FilePaths(), QList<QTextCodec *>()); + return new FileListIterator; } QString CurrentProjectFind::label() const diff --git a/tests/auto/filesearch/tst_filesearch.cpp b/tests/auto/filesearch/tst_filesearch.cpp index d900175bf9..2532f7a313 100644 --- a/tests/auto/filesearch/tst_filesearch.cpp +++ b/tests/auto/filesearch/tst_filesearch.cpp @@ -31,10 +31,8 @@ namespace { const QString &term, QTextDocument::FindFlags flags, tst_FileSearch::RegExpFlag regexp = tst_FileSearch::NoRegExp) { - Utils::FileIterator *it = new Utils::FileListIterator(FilePaths{FilePath::fromString( - FILENAME)}, - QList<QTextCodec *>() - << QTextCodec::codecForLocale()); + Utils::FileIterator *it = new Utils::FileListIterator({FilePath::fromString(FILENAME)}, + {QTextCodec::codecForLocale()}); QFutureWatcher<Utils::FileSearchResultList> watcher; QSignalSpy ready(&watcher, &QFutureWatcherBase::resultsReadyAt); if (regexp == tst_FileSearch::NoRegExp) |