1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#include "qfsfileengine_iterator_p.h"
6#include "qfileinfo_p.h"
7#include "qvariant.h"
8
9#ifndef QT_NO_FILESYSTEMITERATOR
10
11QT_BEGIN_NAMESPACE
12
13QFSFileEngineIterator::QFSFileEngineIterator(const QString &path, QDir::Filters filters,
14 const QStringList &filterNames)
15 : QAbstractFileEngineIterator(path, filters, filterNames),
16 nativeIterator(new QFileSystemIterator(QFileSystemEntry(path), filters))
17{
18}
19
20QFSFileEngineIterator::QFSFileEngineIterator(const QString &path, QDirListing::IteratorFlags filters,
21 const QStringList &filterNames)
22 : QAbstractFileEngineIterator(path, filters, filterNames),
23 nativeIterator(new QFileSystemIterator(QFileSystemEntry(path), filters))
24{
25}
26
27QFSFileEngineIterator::~QFSFileEngineIterator()
28{
29}
30
31bool QFSFileEngineIterator::advance()
32{
33 if (!nativeIterator)
34 return false;
35
36 QFileSystemEntry entry;
37 QFileSystemMetaData data;
38 if (nativeIterator->advance(fileEntry&: entry, metaData&: data)) {
39 m_fileInfo = QFileInfo(new QFileInfoPrivate(entry, data));
40 return true;
41 } else {
42 nativeIterator.reset();
43 return false;
44 }
45}
46
47QString QFSFileEngineIterator::currentFileName() const
48{
49 return m_fileInfo.fileName();
50}
51
52QFileInfo QFSFileEngineIterator::currentFileInfo() const
53{
54 return m_fileInfo;
55}
56
57QT_END_NAMESPACE
58
59#endif // QT_NO_FILESYSTEMITERATOR
60

source code of qtbase/src/corelib/io/qfsfileengine_iterator.cpp