diff --git a/src/corelib/io/qfilesystemiterator_p.h b/src/corelib/io/qfilesystemiterator_p.h index 2973b85cd2a..c55d5c6d317 100644 --- a/src/corelib/io/qfilesystemiterator_p.h +++ b/src/corelib/io/qfilesystemiterator_p.h @@ -37,6 +37,7 @@ class QFileSystemIterator { public: QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters); + QFileSystemIterator(const QFileSystemEntry &entry); ~QFileSystemIterator(); bool advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData); diff --git a/src/corelib/io/qfilesystemiterator_unix.cpp b/src/corelib/io/qfilesystemiterator_unix.cpp index a1130728ef0..f06ff253442 100644 --- a/src/corelib/io/qfilesystemiterator_unix.cpp +++ b/src/corelib/io/qfilesystemiterator_unix.cpp @@ -19,12 +19,10 @@ QT_BEGIN_NAMESPACE Native filesystem iterator, which uses ::opendir()/readdir()/dirent from the system libraries to iterate over the directory represented by \a entry. */ -QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters) +QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry) : dirPath(entry.filePath()), toUtf16(QStringDecoder::Utf8) { - Q_UNUSED(filters); - dir.reset(QT_OPENDIR(entry.nativeFilePath().constData())); if (!dir) { lastError = errno; @@ -34,6 +32,11 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Fi } } +QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters) + : QFileSystemIterator(entry) +{ +} + QFileSystemIterator::~QFileSystemIterator() = default; bool QFileSystemIterator::advance(QFileSystemEntry &fileEntry, QFileSystemMetaData &metaData) diff --git a/src/corelib/io/qfilesystemiterator_win.cpp b/src/corelib/io/qfilesystemiterator_win.cpp index 7644a1a0786..d2e3904af6d 100644 --- a/src/corelib/io/qfilesystemiterator_win.cpp +++ b/src/corelib/io/qfilesystemiterator_win.cpp @@ -14,7 +14,7 @@ using namespace Qt::StringLiterals; bool done = true; -QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters) +QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry) : dirPath(entry.filePath()) , nativePath(entry.nativeFilePath()) , findFileHandle(INVALID_HANDLE_VALUE) @@ -33,6 +33,11 @@ QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Fi // In MSVC2015+ case we prepend //?/ for longer file-name support if (!dirPath.endsWith(u'/')) dirPath.append(u'/'); +} + +QFileSystemIterator::QFileSystemIterator(const QFileSystemEntry &entry, QDir::Filters filters) + : QFileSystemIterator(entry) +{ if ((filters & (QDir::Dirs|QDir::Drives)) && (!(filters & (QDir::Files)))) onlyDirs = true; }