diff --git a/src/corelib/io/qdirlisting.cpp b/src/corelib/io/qdirlisting.cpp index ad5d91bf98d..3e06e26ee80 100644 --- a/src/corelib/io/qdirlisting.cpp +++ b/src/corelib/io/qdirlisting.cpp @@ -635,6 +635,23 @@ QString QDirListing::iteratorPath() const return d->initialEntryInfo.filePath(); } +/*! + Returns the set of IteratorFlags used to construct this QDirListing. +*/ +QDirListing::IteratorFlags QDirListing::iteratorFlags() const +{ + return d->iteratorFlags; +} + +/*! + Returns the list of file name glob filters used to construct this + QDirListing. +*/ +QStringList QDirListing::nameFilters() const +{ + return d->nameFilters; +} + /*! \fn QDirListing::const_iterator QDirListing::begin() const \fn QDirListing::const_iterator QDirListing::cbegin() const diff --git a/src/corelib/io/qdirlisting.h b/src/corelib/io/qdirlisting.h index 3d462277811..1612539e55e 100644 --- a/src/corelib/io/qdirlisting.h +++ b/src/corelib/io/qdirlisting.h @@ -50,6 +50,8 @@ public: ~QDirListing(); QString iteratorPath() const; + IteratorFlags iteratorFlags() const; + QStringList nameFilters() const; class Q_CORE_EXPORT DirEntry { diff --git a/tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp b/tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp index 5b31d335f98..6398d741f29 100644 --- a/tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp +++ b/tests/auto/corelib/io/qdirlisting/tst_qdirlisting.cpp @@ -377,9 +377,19 @@ void tst_QDirListing::iterateRelativeDirectory() QFETCH(QStringList, nameFilters); QFETCH(const QStringList, entries); + const QDirListing lister(dirName, nameFilters, flags); + + if (nameFilters.isEmpty() || nameFilters == QStringList("*"_L1)) + QVERIFY(lister.nameFilters().isEmpty()); + else + QCOMPARE_EQ(lister.nameFilters(), nameFilters); + + QCOMPARE(lister.iteratorFlags(), flags); + QCOMPARE(lister.iteratorPath(), dirName); + // If canonicalFilePath is empty (e.g. for broken symlinks), use absoluteFilePath() QStringList list; - for (const auto &dirEntry : QDirListing(dirName, nameFilters, flags)) { + for (const auto &dirEntry : lister) { QString filePath = dirEntry.canonicalFilePath(); list.emplace_back(!filePath.isEmpty()? filePath : dirEntry.absoluteFilePath()); }