diff options
| author | Ahmad Samir <a.samirh78@gmail.com> | 2024-06-08 20:21:03 +0300 |
|---|---|---|
| committer | Ahmad Samir <a.samirh78@gmail.com> | 2024-06-19 05:47:20 +0300 |
| commit | c203c41109e41d03de8145a541ff5c8fbe976492 (patch) | |
| tree | 4d957cf1fe65c74475ae1bd2342faa520388588f /src | |
| parent | 0a1a8355f313ac951e3e615f47aca40f421fc4bc (diff) | |
QFileSystemIterator: add constructor that takes QFileSystemEntry only
This is in preparation to adding constructors that take
QDirListing::IteratorFlags, I would have had to add an init() private
method to deduplicate the code, so instead add a constructor that can be
delegated to.
Pick-to: 6.8
Task-number: QTBUG-125859
Change-Id: Idbc76fcba50f9d0016e4ddba03b2f532a33231bd
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/corelib/io/qfilesystemiterator_p.h | 1 | ||||
| -rw-r--r-- | src/corelib/io/qfilesystemiterator_unix.cpp | 9 | ||||
| -rw-r--r-- | src/corelib/io/qfilesystemiterator_win.cpp | 7 |
3 files changed, 13 insertions, 4 deletions
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; } |
