From c8db55970fecd5ee934c81bad12268c1760bfda7 Mon Sep 17 00:00:00 2001 From: BogDan Vatra Date: Tue, 12 May 2015 09:37:52 +0300 Subject: [PATCH] Consider "assets" scheme as a local file on Android Task-number: QTBUG-46010 Change-Id: Icb6c5c2529b77e3967f6d23217e63e7773a5d706 Reviewed-by: Eskil Abrahamsen Blomfeldt --- src/corelib/io/qfileselector.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/corelib/io/qfileselector.cpp b/src/corelib/io/qfileselector.cpp index 4ca07ba41db..cddd70f9085 100644 --- a/src/corelib/io/qfileselector.cpp +++ b/src/corelib/io/qfileselector.cpp @@ -225,9 +225,13 @@ QString QFileSelector::select(const QString &filePath) const return d->select(filePath); } -static QString qrcScheme() +static bool isLocalScheme(const QString &file) { - return QStringLiteral("qrc"); + bool local = file == QStringLiteral("qrc"); +#ifdef Q_OS_ANDROID + local |= file == QStringLiteral("assets"); +#endif + return local; } /*! @@ -240,10 +244,10 @@ static QString qrcScheme() QUrl QFileSelector::select(const QUrl &filePath) const { Q_D(const QFileSelector); - if (filePath.scheme() != qrcScheme() && !filePath.isLocalFile()) + if (!isLocalScheme(filePath.scheme()) && !filePath.isLocalFile()) return filePath; QUrl ret(filePath); - if (filePath.scheme() == qrcScheme()) { + if (isLocalScheme(filePath.scheme())) { QString equivalentPath = QLatin1Char(':') + filePath.path(); QString selectedPath = d->select(equivalentPath); ret.setPath(selectedPath.remove(0, 1));