summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJarek Kobus <jaroslaw.kobus@qt.io>2023-03-13 10:43:54 +0100
committerJarek Kobus <jaroslaw.kobus@qt.io>2023-03-13 10:57:24 +0000
commit0c4dff7c10962ed438bc27c73942b2d1a81cb3fb (patch)
tree7fd61d4fe508a712a3baff94bb45f651600ef1af
parent81dcfd907b961f4f3aab438d648a3fc3a50fc4ee (diff)
downloadqt-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.cpp19
-rw-r--r--src/libs/utils/filesearch.h7
-rw-r--r--src/plugins/projectexplorer/currentprojectfind.cpp5
-rw-r--r--tests/auto/filesearch/tst_filesearch.cpp6
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)