69 lines
1.7 KiB
C++
69 lines
1.7 KiB
C++
// Copyright (C) 2016 The Qt Company Ltd.
|
|
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
|
|
|
#include "qresource.h"
|
|
#include "qresource_iterator_p.h"
|
|
|
|
#include <QtCore/qvariant.h>
|
|
|
|
QT_BEGIN_NAMESPACE
|
|
|
|
QResourceFileEngineIterator::QResourceFileEngineIterator(const QString &path, QDir::Filters filters,
|
|
const QStringList &filterNames)
|
|
: QAbstractFileEngineIterator(path, filters, filterNames),
|
|
index(-1)
|
|
{
|
|
}
|
|
|
|
QResourceFileEngineIterator::QResourceFileEngineIterator(const QString &path,
|
|
QDirListing::IteratorFlags filters,
|
|
const QStringList &filterNames)
|
|
: QAbstractFileEngineIterator(path, filters, filterNames),
|
|
index(-1)
|
|
{
|
|
}
|
|
|
|
QResourceFileEngineIterator::~QResourceFileEngineIterator()
|
|
{
|
|
}
|
|
|
|
bool QResourceFileEngineIterator::advance()
|
|
{
|
|
if (index == -1) {
|
|
// Lazy initialization of the iterator
|
|
QResource resource(path());
|
|
if (!resource.isValid())
|
|
return false;
|
|
|
|
// Initialize and move to the first entry.
|
|
entries = resource.children();
|
|
if (entries.isEmpty())
|
|
return false;
|
|
|
|
index = 0;
|
|
return true;
|
|
}
|
|
|
|
if (index < entries.size() - 1) {
|
|
++index;
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
QString QResourceFileEngineIterator::currentFileName() const
|
|
{
|
|
if (index < 0 || index > entries.size())
|
|
return QString();
|
|
return entries.at(index);
|
|
}
|
|
|
|
QFileInfo QResourceFileEngineIterator::currentFileInfo() const
|
|
{
|
|
m_fileInfo = QFileInfo(currentFilePath());
|
|
return m_fileInfo;
|
|
}
|
|
|
|
QT_END_NAMESPACE
|