summaryrefslogtreecommitdiffstats
path: root/src/plugins
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2020-01-20 13:30:39 +0100
committerAndy Shaw <andy.shaw@qt.io>2020-02-27 22:56:26 +0100
commiteaf7f572bfbcb33b106097923f4e0efdd9c683fc (patch)
treeeac8289d924dc7b77df09f004f0d09b883f69544 /src/plugins
parent09c5dfb73271614eb55c6d6c610c873fc9146a2f (diff)
Android: Don't recurse into directories inside the assets when iterating
When iterating, it should only return what is in the specified path and not the contents of the sub-directories inside the given path in addition. Change-Id: Iad56f075c22fdf1c633582e37444e26520c24a73 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Diffstat (limited to 'src/plugins')
-rw-r--r--src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp25
1 files changed, 5 insertions, 20 deletions
diff --git a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
index ca16efe34f..07776a4a76 100644
--- a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
+++ b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp
@@ -202,9 +202,7 @@ public:
const QString &path)
: QAbstractFileEngineIterator(filters, nameFilters)
{
- m_stack.push_back(FolderIterator::fromCache(cleanedAssetPath(path), true));
- if (m_stack.last()->empty())
- m_stack.pop_back();
+ m_currentIterator = FolderIterator::fromCache(cleanedAssetPath(path), true);
}
QFileInfo currentFileInfo() const override
@@ -228,36 +226,23 @@ public:
bool hasNext() const override
{
- if (m_stack.empty())
+ if (!m_currentIterator)
return false;
- if (!m_stack.last()->hasNext()) {
- m_stack.pop_back();
- return hasNext();
- }
- return true;
+ return m_currentIterator->hasNext();
}
QString next() override
{
- if (m_stack.empty()) {
- m_currentIterator.reset();
+ if (!m_currentIterator)
return {};
- }
- m_currentIterator = m_stack.last();
auto res = m_currentIterator->next();
if (!res)
return {};
- if (res->second.type == AssetItem::Type::Folder) {
- m_stack.push_back(FolderIterator::fromCache(cleanedAssetPath(currentFilePath()), true));
- if (m_stack.last()->empty())
- m_stack.pop_back();
- }
return res->first;
}
private:
- mutable QSharedPointer<FolderIterator> m_currentIterator;
- mutable QVector<QSharedPointer<FolderIterator>> m_stack;
+ QSharedPointer<FolderIterator> m_currentIterator;
};
class AndroidAbstractFileEngine: public QAbstractFileEngine