Consider "assets" scheme as a local file on Android

Task-number: QTBUG-46010
Change-Id: Icb6c5c2529b77e3967f6d23217e63e7773a5d706
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
This commit is contained in:
BogDan Vatra 2015-05-12 09:37:52 +03:00
parent 6e18f57a9c
commit c8db55970f

View File

@ -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));