diff options
author | BogDan Vatra <bogdan@kde.org> | 2023-06-15 08:50:40 +0300 |
---|---|---|
committer | Assam Boudjelthia <assam.boudjelthia@qt.io> | 2023-06-19 16:40:15 +0300 |
commit | 3e7d4f16561f187d4dda28e59dc031ce1b771f77 (patch) | |
tree | ba0dda99cd6d878e98e2b81436cccd927ddc33d9 | |
parent | Android: fix Android assets handler not listing dirs with only sub dirs (diff) | |
download | qtbase-3e7d4f16561f187d4dda28e59dc031ce1b771f77.tar.xz qtbase-3e7d4f16561f187d4dda28e59dc031ce1b771f77.zip |
Don't add prefix for BaseName
Adding the "assets:" prefix to BaseName leads to wrong names returned by
QFileInfo{"assets:/path/to/file"}.fileName().
Instead to return "file" it returns "assets:/file" which is not the
expected result.
Fixes: QTBUG-114576
Fixes: QTBUG-114219
Fixes: QTBUG-112261
Change-Id: I574bf325300c0aedef68b1b183fa837144ad63c6
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
(cherry picked from commit 76619eae4c4e857721529c87eb3c9d519fa2f0b7)
-rw-r--r-- | src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp | 4 | ||||
-rw-r--r-- | tests/auto/corelib/platform/android/tst_android.cpp | 12 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp index c7785486b0..902dee5f25 100644 --- a/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp +++ b/src/plugins/platforms/android/qandroidassetsfileenginehandler.cpp @@ -307,9 +307,9 @@ public: return prefixedPath(m_fileName); case BaseName: if ((pos = m_fileName.lastIndexOf(u'/')) != -1) - return prefixedPath(m_fileName.mid(pos)); + return m_fileName.mid(pos + 1); else - return prefixedPath(m_fileName); + return m_fileName; case PathName: case AbsolutePathName: case CanonicalPathName: diff --git a/tests/auto/corelib/platform/android/tst_android.cpp b/tests/auto/corelib/platform/android/tst_android.cpp index bb1fdcae1c..1be12e0c33 100644 --- a/tests/auto/corelib/platform/android/tst_android.cpp +++ b/tests/auto/corelib/platform/android/tst_android.cpp @@ -13,6 +13,8 @@ #include <qpa/qplatformnativeinterface.h> #include <QtCore/qdiriterator.h> +using namespace Qt::StringLiterals; + class tst_Android : public QObject { Q_OBJECT @@ -64,10 +66,14 @@ void tst_Android::assetsIterating() QDirIterator it("assets:/top_level_dir", QDirIterator::Subdirectories); QStringList iteratorAssets; - while (it.hasNext()) - iteratorAssets.append(it.next()); + while (it.hasNext()) + iteratorAssets.append(it.next()); + + QVERIFY(assets == iteratorAssets); - QVERIFY(assets == iteratorAssets); + auto entryList = QDir{"assets:/"_L1}.entryList(QStringList{"*.txt"_L1}); + QCOMPARE(entryList.size(), 1); + QCOMPARE(entryList[0], "test.txt"_L1); } void tst_Android::testAndroidSdkVersion() |