summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/corelib/doc/snippets/code/src_corelib_io_qabstractfileengine.cpp9
-rw-r--r--src/corelib/io/qabstractfileengine.cpp32
-rw-r--r--src/corelib/io/qabstractfileengine_p.h6
-rw-r--r--src/corelib/io/qdirlisting.cpp3
-rw-r--r--src/corelib/io/qfsfileengine.cpp5
-rw-r--r--src/corelib/io/qfsfileengine_iterator.cpp5
-rw-r--r--src/corelib/io/qfsfileengine_iterator_p.h2
-rw-r--r--src/corelib/io/qfsfileengine_p.h2
-rw-r--r--src/corelib/io/qresource.cpp5
-rw-r--r--src/corelib/io/qresource_iterator.cpp5
-rw-r--r--src/corelib/io/qresource_iterator_p.h3
-rw-r--r--src/corelib/io/qresource_p.h2
-rw-r--r--src/plugins/platforms/android/androidcontentfileengine.cpp11
-rw-r--r--src/plugins/platforms/android/androidcontentfileengine.h5
-rw-r--r--src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp5
-rw-r--r--src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.h2
-rw-r--r--src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.mm9
-rw-r--r--tests/auto/corelib/io/qabstractfileengine/tst_qabstractfileengine.cpp8
-rw-r--r--tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp2
-rw-r--r--tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp2
20 files changed, 61 insertions, 62 deletions
diff --git a/src/corelib/doc/snippets/code/src_corelib_io_qabstractfileengine.cpp b/src/corelib/doc/snippets/code/src_corelib_io_qabstractfileengine.cpp
index f1315a78f0..394db15f9f 100644
--- a/src/corelib/doc/snippets/code/src_corelib_io_qabstractfileengine.cpp
+++ b/src/corelib/doc/snippets/code/src_corelib_io_qabstractfileengine.cpp
@@ -39,9 +39,10 @@ QAbstractSocketEngine *ZipEngineHandler::create(const QString &fileName) const
//! [2]
QAbstractFileEngine::IteratorUniquePtr
-CustomFileEngine::beginEntryList(QDir::Filters filters, const QStringList &filterNames)
+CustomFileEngine::beginEntryList(const QString &path, QDir::Filters filters,
+ const QStringList &filterNames)
{
- return std::make_unique<CustomFileEngineIterator>(filters, filterNames);
+ return std::make_unique<CustomFileEngineIterator>(path, filters, filterNames);
}
//! [2]
@@ -50,8 +51,8 @@ CustomFileEngine::beginEntryList(QDir::Filters filters, const QStringList &filte
class CustomIterator : public QAbstractFileEngineIterator
{
public:
- CustomIterator(const QStringList &nameFilters, QDir::Filters filters)
- : QAbstractFileEngineIterator(nameFilters, filters), index(0)
+ CustomIterator(const QString &path, const QStringList &nameFilters, QDir::Filters filters)
+ : QAbstractFileEngineIterator(path, nameFilters, filters), index(0)
{
// In a real iterator, these entries are fetched from the
// file system based on the value of path().
diff --git a/src/corelib/io/qabstractfileengine.cpp b/src/corelib/io/qabstractfileengine.cpp
index 55655adfc4..2ad732cf3b 100644
--- a/src/corelib/io/qabstractfileengine.cpp
+++ b/src/corelib/io/qabstractfileengine.cpp
@@ -902,10 +902,11 @@ bool QAbstractFileEngine::cloneTo(QAbstractFileEngine *target)
Constructs a QAbstractFileEngineIterator, using the entry filters \a
filters, and wildcard name filters \a nameFilters.
*/
-QAbstractFileEngineIterator::QAbstractFileEngineIterator(QDir::Filters filters,
+QAbstractFileEngineIterator::QAbstractFileEngineIterator(const QString &path, QDir::Filters filters,
const QStringList &nameFilters)
: m_filters(filters),
- m_nameFilters(nameFilters)
+ m_nameFilters(nameFilters),
+ m_path(appendSlashIfNeeded(path))
{
}
@@ -920,10 +921,8 @@ QAbstractFileEngineIterator::~QAbstractFileEngineIterator()
/*!
- Returns the path for this iterator. It can be set using setPath().
- Typically the path is passed to beginEntryList(), which sets the path.
-
- \note The path should't be changed once iteration begins.
+ Returns the path for this iterator. The path is set by beginEntryList().
+ The path should't be changed once iteration begins.
\sa nameFilters(), filters()
*/
@@ -933,17 +932,6 @@ QString QAbstractFileEngineIterator::path() const
}
/*!
- \internal
-
- Sets the iterator path to \a path. This function is called from within
- QDirListing.
-*/
-void QAbstractFileEngineIterator::setPath(const QString &path)
-{
- m_path = appendSlashIfNeeded(path);
-}
-
-/*!
Returns the name filters for this iterator.
\sa QDir::nameFilters(), filters(), path()
@@ -1027,16 +1015,18 @@ QFileInfo QAbstractFileEngineIterator::currentFileInfo() const
*/
/*!
- Returns a QAbstractFileEngine::IteratorUniquePtr, that uses \a filters
- for entry filtering and \a filterNames for name filtering. This function
- is called by QDirListing to initiate directory iteration.
+ Returns a QAbstractFileEngine::IteratorUniquePtr, that can be used
+ to iterate over the entries in \a path, using \a filters for entry
+ filtering and \a filterNames for name filtering. This function is called
+ by QDirListing to initiate directory iteration.
\sa QDirListing
*/
QAbstractFileEngine::IteratorUniquePtr
-QAbstractFileEngine::beginEntryList(QDir::Filters filters,
+QAbstractFileEngine::beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames)
{
+ Q_UNUSED(path);
Q_UNUSED(filters);
Q_UNUSED(filterNames);
return {};
diff --git a/src/corelib/io/qabstractfileengine_p.h b/src/corelib/io/qabstractfileengine_p.h
index eef83fc46d..8d6a1b8a35 100644
--- a/src/corelib/io/qabstractfileengine_p.h
+++ b/src/corelib/io/qabstractfileengine_p.h
@@ -130,7 +130,7 @@ public:
using IteratorUniquePtr = std::unique_ptr<Iterator>;
virtual IteratorUniquePtr
- beginEntryList(QDir::Filters filters, const QStringList &filterNames);
+ beginEntryList(const QString &path, QDir::Filters filters, const QStringList &filterNames);
virtual IteratorUniquePtr endEntryList() { return {}; }
virtual qint64 read(char *data, qint64 maxlen);
@@ -198,13 +198,13 @@ public:
class Q_CORE_EXPORT QAbstractFileEngineIterator
{
public:
- QAbstractFileEngineIterator(QDir::Filters filters, const QStringList &nameFilters);
+ QAbstractFileEngineIterator(const QString &path, QDir::Filters filters,
+ const QStringList &nameFilters);
virtual ~QAbstractFileEngineIterator();
virtual QString next() = 0;
virtual bool hasNext() const = 0;
- void setPath(const QString &path);
QString path() const;
QStringList nameFilters() const;
QDir::Filters filters() const;
diff --git a/src/corelib/io/qdirlisting.cpp b/src/corelib/io/qdirlisting.cpp
index 8200366a5a..b673fa77e1 100644
--- a/src/corelib/io/qdirlisting.cpp
+++ b/src/corelib/io/qdirlisting.cpp
@@ -165,8 +165,7 @@ void QDirListingPrivate::pushDirectory(QDirEntryInfo &entryInfo)
if (engine) {
engine->setFileName(path);
- if (auto it = engine->beginEntryList(filters, nameFilters)) {
- it->setPath(path);
+ if (auto it = engine->beginEntryList(path, filters, nameFilters)) {
fileEngineIterators.emplace(std::move(it));
} else {
// No iterator; no entry list.
diff --git a/src/corelib/io/qfsfileengine.cpp b/src/corelib/io/qfsfileengine.cpp
index df8dd494ee..ee96e801f2 100644
--- a/src/corelib/io/qfsfileengine.cpp
+++ b/src/corelib/io/qfsfileengine.cpp
@@ -792,9 +792,10 @@ qint64 QFSFileEnginePrivate::writeFdFh(const char *data, qint64 len)
\internal
*/
QAbstractFileEngine::IteratorUniquePtr
-QFSFileEngine::beginEntryList(QDir::Filters filters, const QStringList &filterNames)
+QFSFileEngine::beginEntryList(const QString &path, QDir::Filters filters,
+ const QStringList &filterNames)
{
- return std::make_unique<QFSFileEngineIterator>(filters, filterNames);
+ return std::make_unique<QFSFileEngineIterator>(path, filters, filterNames);
}
#endif // QT_NO_FILESYSTEMITERATOR
diff --git a/src/corelib/io/qfsfileengine_iterator.cpp b/src/corelib/io/qfsfileengine_iterator.cpp
index c65b6e5d3e..f9d802b17f 100644
--- a/src/corelib/io/qfsfileengine_iterator.cpp
+++ b/src/corelib/io/qfsfileengine_iterator.cpp
@@ -9,8 +9,9 @@
QT_BEGIN_NAMESPACE
-QFSFileEngineIterator::QFSFileEngineIterator(QDir::Filters filters, const QStringList &filterNames)
- : QAbstractFileEngineIterator(filters, filterNames),
+QFSFileEngineIterator::QFSFileEngineIterator(const QString &path, QDir::Filters filters,
+ const QStringList &filterNames)
+ : QAbstractFileEngineIterator(path, filters, filterNames),
done(false)
{
}
diff --git a/src/corelib/io/qfsfileengine_iterator_p.h b/src/corelib/io/qfsfileengine_iterator_p.h
index 7980605fbd..4ad1bb0350 100644
--- a/src/corelib/io/qfsfileengine_iterator_p.h
+++ b/src/corelib/io/qfsfileengine_iterator_p.h
@@ -26,7 +26,7 @@ QT_BEGIN_NAMESPACE
class QFSFileEngineIterator : public QAbstractFileEngineIterator
{
public:
- QFSFileEngineIterator(QDir::Filters filters, const QStringList &filterNames);
+ QFSFileEngineIterator(const QString &path, QDir::Filters filters, const QStringList &filterNames);
~QFSFileEngineIterator();
QString next() override;
diff --git a/src/corelib/io/qfsfileengine_p.h b/src/corelib/io/qfsfileengine_p.h
index a2dc699305..3cc3b43a0b 100644
--- a/src/corelib/io/qfsfileengine_p.h
+++ b/src/corelib/io/qfsfileengine_p.h
@@ -82,7 +82,7 @@ public:
int handle() const override;
#ifndef QT_NO_FILESYSTEMITERATOR
- IteratorUniquePtr beginEntryList(QDir::Filters filters,
+ IteratorUniquePtr beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames) override;
#endif
diff --git a/src/corelib/io/qresource.cpp b/src/corelib/io/qresource.cpp
index d61846084a..dfc925b416 100644
--- a/src/corelib/io/qresource.cpp
+++ b/src/corelib/io/qresource.cpp
@@ -1535,9 +1535,10 @@ QDateTime QResourceFileEngine::fileTime(FileTime time) const
\internal
*/
QAbstractFileEngine::IteratorUniquePtr
-QResourceFileEngine::beginEntryList(QDir::Filters filters, const QStringList &filterNames)
+QResourceFileEngine::beginEntryList(const QString &path, QDir::Filters filters,
+ const QStringList &filterNames)
{
- return std::make_unique<QResourceFileEngineIterator>(filters, filterNames);
+ return std::make_unique<QResourceFileEngineIterator>(path, filters, filterNames);
}
bool QResourceFileEngine::extension(Extension extension, const ExtensionOption *option, ExtensionReturn *output)
diff --git a/src/corelib/io/qresource_iterator.cpp b/src/corelib/io/qresource_iterator.cpp
index 58bdefdd20..c0f0106911 100644
--- a/src/corelib/io/qresource_iterator.cpp
+++ b/src/corelib/io/qresource_iterator.cpp
@@ -8,9 +8,10 @@
QT_BEGIN_NAMESPACE
-QResourceFileEngineIterator::QResourceFileEngineIterator(QDir::Filters filters,
+QResourceFileEngineIterator::QResourceFileEngineIterator(const QString &path, QDir::Filters filters,
const QStringList &filterNames)
- : QAbstractFileEngineIterator(filters, filterNames), index(-1)
+ : QAbstractFileEngineIterator(path, filters, filterNames),
+ index(-1)
{
}
diff --git a/src/corelib/io/qresource_iterator_p.h b/src/corelib/io/qresource_iterator_p.h
index 7bc546e44a..8a29ef0219 100644
--- a/src/corelib/io/qresource_iterator_p.h
+++ b/src/corelib/io/qresource_iterator_p.h
@@ -24,7 +24,8 @@ class QResourceFileEngineIteratorPrivate;
class QResourceFileEngineIterator : public QAbstractFileEngineIterator
{
public:
- QResourceFileEngineIterator(QDir::Filters filters, const QStringList &filterNames);
+ QResourceFileEngineIterator(const QString &path, QDir::Filters filters,
+ const QStringList &filterNames);
~QResourceFileEngineIterator();
QString next() override;
diff --git a/src/corelib/io/qresource_p.h b/src/corelib/io/qresource_p.h
index 01ff3c8c5f..4df37b4c0e 100644
--- a/src/corelib/io/qresource_p.h
+++ b/src/corelib/io/qresource_p.h
@@ -49,7 +49,7 @@ public:
QDateTime fileTime(FileTime time) const override;
- IteratorUniquePtr beginEntryList(QDir::Filters filters,
+ IteratorUniquePtr beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames) override;
bool extension(Extension extension, const ExtensionOption *option = nullptr, ExtensionReturn *output = nullptr) override;
diff --git a/src/plugins/platforms/android/androidcontentfileengine.cpp b/src/plugins/platforms/android/androidcontentfileengine.cpp
index 316daef1da..67221080b2 100644
--- a/src/plugins/platforms/android/androidcontentfileengine.cpp
+++ b/src/plugins/platforms/android/androidcontentfileengine.cpp
@@ -249,9 +249,10 @@ QString AndroidContentFileEngine::fileName(FileName f) const
}
QAbstractFileEngine::IteratorUniquePtr
-AndroidContentFileEngine::beginEntryList(QDir::Filters filters, const QStringList &filterNames)
+AndroidContentFileEngine::beginEntryList(const QString &path, QDir::Filters filters,
+ const QStringList &filterNames)
{
- return std::make_unique<AndroidContentFileEngineIterator>(filters, filterNames);
+ return std::make_unique<AndroidContentFileEngineIterator>(path, filters, filterNames);
}
AndroidContentFileEngineHandler::AndroidContentFileEngineHandler() = default;
@@ -265,9 +266,9 @@ QAbstractFileEngine* AndroidContentFileEngineHandler::create(const QString &file
return new AndroidContentFileEngine(fileName);
}
-AndroidContentFileEngineIterator::AndroidContentFileEngineIterator(QDir::Filters filters,
- const QStringList &filterNames)
- : QAbstractFileEngineIterator(filters, filterNames)
+AndroidContentFileEngineIterator::AndroidContentFileEngineIterator(
+ const QString &path, QDir::Filters filters, const QStringList &filterNames)
+ : QAbstractFileEngineIterator(path, filters, filterNames)
{
}
diff --git a/src/plugins/platforms/android/androidcontentfileengine.h b/src/plugins/platforms/android/androidcontentfileengine.h
index adaff7f665..dd7985db80 100644
--- a/src/plugins/platforms/android/androidcontentfileengine.h
+++ b/src/plugins/platforms/android/androidcontentfileengine.h
@@ -30,7 +30,7 @@ public:
QDateTime fileTime(FileTime time) const override;
FileFlags fileFlags(FileFlags type = FileInfoAll) const override;
QString fileName(FileName file = DefaultName) const override;
- IteratorUniquePtr beginEntryList(QDir::Filters filters,
+ IteratorUniquePtr beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames) override;
private:
@@ -52,7 +52,8 @@ public:
class AndroidContentFileEngineIterator : public QAbstractFileEngineIterator
{
public:
- AndroidContentFileEngineIterator(QDir::Filters filters, const QStringList &filterNames);
+ AndroidContentFileEngineIterator(const QString &path, QDir::Filters filters,
+ const QStringList &filterNames);
~AndroidContentFileEngineIterator();
QString next() override;
bool hasNext() const override;
diff --git a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
index 6d5479a559..20ce0b5710 100644
--- a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
+++ b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
@@ -171,7 +171,7 @@ public:
AndroidAbstractFileEngineIterator(QDir::Filters filters,
const QStringList &nameFilters,
const QString &path)
- : QAbstractFileEngineIterator(filters, nameFilters)
+ : QAbstractFileEngineIterator(path, filters, nameFilters)
{
m_currentIterator = FolderIterator::fromCache(cleanedAssetPath(path), true);
}
@@ -368,8 +368,9 @@ public:
}
IteratorUniquePtr
- beginEntryList(QDir::Filters filters, const QStringList &filterNames) override
+ beginEntryList(const QString &, QDir::Filters filters, const QStringList &filterNames) override
{
+ // AndroidAbstractFileEngineIterator use `m_fileName` as the path
if (m_assetInfo && m_assetInfo->type == AssetItem::Type::Folder)
return std::make_unique<AndroidAbstractFileEngineIterator>(filters, filterNames, m_fileName);
return nullptr;
diff --git a/src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.h b/src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.h
index 3d27dc48ed..0ad54a9e11 100644
--- a/src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.h
+++ b/src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.h
@@ -29,7 +29,7 @@ public:
void setFileName(const QString &file) override;
#ifndef QT_NO_FILESYSTEMITERATOR
- IteratorUniquePtr beginEntryList(QDir::Filters filters,
+ IteratorUniquePtr beginEntryList(const QString &path, QDir::Filters filters,
const QStringList &filterNames) override;
#endif
diff --git a/src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.mm b/src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.mm
index a3593669cf..87cc6d5bea 100644
--- a/src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.mm
+++ b/src/plugins/platforms/ios/optional/nsphotolibrarysupport/qiosfileengineassetslibrary.mm
@@ -258,8 +258,8 @@ public:
QIOSAssetEnumerator *m_enumerator;
QIOSFileEngineIteratorAssetsLibrary(
- QDir::Filters filters, const QStringList &nameFilters)
- : QAbstractFileEngineIterator(filters, nameFilters)
+ const QString &path, QDir::Filters filters, const QStringList &nameFilters)
+ : QAbstractFileEngineIterator(path, filters, nameFilters)
, m_enumerator(new QIOSAssetEnumerator([[[ALAssetsLibrary alloc] init] autorelease], ALAssetsGroupAll))
{
}
@@ -441,9 +441,10 @@ void QIOSFileEngineAssetsLibrary::setFileName(const QString &file)
#ifndef QT_NO_FILESYSTEMITERATOR
QAbstractFileEngine::IteratorUniquePtr
-QIOSFileEngineAssetsLibrary::beginEntryList(QDir::Filters filters, const QStringList &filterNames)
+QIOSFileEngineAssetsLibrary::beginEntryList(
+ const QString &path, QDir::Filters filters, const QStringList &filterNames)
{
- return std::make_unique<QIOSFileEngineIteratorAssetsLibrary>(filters, filterNames);
+ return std::make_unique<QIOSFileEngineIteratorAssetsLibrary>(path, filters, filterNames);
}
QT_END_NAMESPACE
diff --git a/tests/auto/corelib/io/qabstractfileengine/tst_qabstractfileengine.cpp b/tests/auto/corelib/io/qabstractfileengine/tst_qabstractfileengine.cpp
index cf8d5af583..bb5d78cecf 100644
--- a/tests/auto/corelib/io/qabstractfileengine/tst_qabstractfileengine.cpp
+++ b/tests/auto/corelib/io/qabstractfileengine/tst_qabstractfileengine.cpp
@@ -430,8 +430,8 @@ public:
class Iterator : public QAbstractFileEngineIterator
{
public:
- Iterator(QDir::Filters filters, const QStringList &filterNames)
- : QAbstractFileEngineIterator(filters, filterNames)
+ Iterator(const QString &path, QDir::Filters filters, const QStringList &filterNames)
+ : QAbstractFileEngineIterator(path, filters, filterNames)
{
names.append("foo");
names.append("bar");
@@ -461,9 +461,9 @@ public:
}
IteratorUniquePtr
- beginEntryList(QDir::Filters filters, const QStringList &filterNames) override
+ beginEntryList(const QString &path, QDir::Filters filters, const QStringList &filterNames) override
{
- return std::make_unique<Iterator>(filters, filterNames);
+ return std::make_unique<Iterator>(path, filters, filterNames);
}
FileFlags fileFlags(FileFlags type) const override
{
diff --git a/tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp b/tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp
index d534feb3ce..9a17ae4994 100644
--- a/tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp
+++ b/tests/auto/corelib/io/qdiriterator/tst_qdiriterator.cpp
@@ -437,7 +437,7 @@ public:
{ }
IteratorUniquePtr
- beginEntryList(QDir::Filters, const QStringList &) override
+ beginEntryList(const QString &, QDir::Filters, const QStringList &) override
{ return nullptr; }
};
diff --git a/tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp b/tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp
index 1b550e1f0d..d66079d7ab 100644
--- a/tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp
+++ b/tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp
@@ -421,7 +421,7 @@ public:
: QFSFileEngine(fileName)
{ }
- IteratorUniquePtr beginEntryList(QDir::Filters, const QStringList &) override
+ IteratorUniquePtr beginEntryList(const QString &, QDir::Filters, const QStringList &) override
{ return nullptr; }
};