summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Shaw <andy.shaw@qt.io>2020-01-14 10:52:13 +0100
committerAndy Shaw <andy.shaw@qt.io>2020-01-15 12:37:02 +0100
commit9603570d42f3ae28ac2063a19b757531c7d2941e (patch)
tree334641ebdb8a2b75aeb7485a3638fe29ee6bf430
parenta7beb6fca24ca639f2b8c128c15170d46116fd1e (diff)
downloadqtquickcontrols-9603570d42f3ae28ac2063a19b757531c7d2941e.tar.gz
Android: Look in the correct location for the supporting QML files
Change-Id: I99db8554f88d39a2e9376b50bb1a6f8a334cf461 Reviewed-by: BogDan Vatra <bogdan@kdab.com>
-rw-r--r--src/dialogs/plugin.cpp25
-rw-r--r--src/extras/plugin.cpp4
2 files changed, 25 insertions, 4 deletions
diff --git a/src/dialogs/plugin.cpp b/src/dialogs/plugin.cpp
index b31d233e..601412d3 100644
--- a/src/dialogs/plugin.cpp
+++ b/src/dialogs/plugin.cpp
@@ -109,8 +109,14 @@ public:
m_useResources = false;
#endif
#endif
+#ifdef Q_OS_ANDROID
+ const QString prefix = QLatin1String("qrc:/android_rcc_bundle/qml/");
+#else
+ const QString prefix = QLatin1String("qrc:/");
+#endif
+
QQuickAbstractDialog::m_decorationComponentUrl = m_useResources ?
- QUrl("qrc:/QtQuick/Dialogs/qml/DefaultWindowDecoration.qml") :
+ QUrl(prefix + QString("QtQuick/Dialogs/qml/DefaultWindowDecoration.qml")) :
#ifndef QT_STATIC
QUrl::fromLocalFile(qmlDir.filePath(QString("qml/DefaultWindowDecoration.qml")));
#else
@@ -165,7 +171,7 @@ public:
// @uri QtQuick.Dialogs.AbstractDialog
qmlRegisterType<QQuickDialog1>(uri, 1, 2, "AbstractDialog"); // implementation wrapper
QUrl dialogQmlPath = m_useResources ?
- QUrl("qrc:/QtQuick/Dialogs/DefaultDialogWrapper.qml") :
+ QUrl(prefix + QString("QtQuick/Dialogs/DefaultDialogWrapper.qml")) :
#ifndef QT_STATIC
QUrl::fromLocalFile(qmlDir.filePath("DefaultDialogWrapper.qml"));
#else
@@ -209,6 +215,12 @@ protected:
mobileTouchPlatform = true;
#endif
+#ifdef Q_OS_ANDROID
+ const QString prefix = QLatin1String("qrc:/android_rcc_bundle/qml/");
+#else
+ const QString prefix = QLatin1String("qrc:/");
+#endif
+
// If there is a qmldir and we have a QApplication instance (as opposed to a
// widget-free QGuiApplication), and this isn't a mobile touch-based platform,
// assume that the widget-based dialog will work. Otherwise an application developer
@@ -217,7 +229,7 @@ protected:
if (!mobileTouchPlatform && hasTopLevelWindows && widgetsDir.exists("qmldir") &&
QCoreApplication::instance()->inherits("QApplication")) {
QUrl dialogQmlPath = m_useResources ?
- QUrl(QString("qrc:/QtQuick/Dialogs/Widget%1.qml").arg(qmlName)) :
+ QUrl(prefix + QString("QtQuick/Dialogs/Widget%1.qml").arg(qmlName)) :
#ifndef QT_STATIC
QUrl::fromLocalFile(qmlDir.filePath(QString("Widget%1.qml").arg(qmlName)));
#else
@@ -235,12 +247,17 @@ protected:
template <class WrapperType>
void registerQmlImplementation(const QDir &qmlDir, const char *qmlName, const char *uri , int versionMajor, int versionMinor)
{
+#ifdef Q_OS_ANDROID
+ const QString prefix = QLatin1String("qrc:/android_rcc_bundle/qml/");
+#else
+ const QString prefix = QLatin1String("qrc:/");
+#endif
qCDebug(lcRegistration) << "Register QML version for" << qmlName << "with uri:" << uri;
QByteArray abstractTypeName = QByteArray("Abstract") + qmlName;
qmlRegisterType<WrapperType>(uri, versionMajor, versionMinor, abstractTypeName);
QUrl dialogQmlPath = m_useResources ?
- QUrl(QString("qrc:/QtQuick/Dialogs/Default%1.qml").arg(qmlName)) :
+ QUrl(prefix + QString("QtQuick/Dialogs/Default%1.qml").arg(qmlName)) :
#ifndef QT_STATIC
QUrl::fromLocalFile(qmlDir.filePath(QString("Default%1.qml").arg(qmlName)));
#else
diff --git a/src/extras/plugin.cpp b/src/extras/plugin.cpp
index 68d6ca16..794e93e2 100644
--- a/src/extras/plugin.cpp
+++ b/src/extras/plugin.cpp
@@ -73,7 +73,11 @@ QtQuickExtrasPlugin::QtQuickExtrasPlugin(QObject *parent) :
void QtQuickExtrasPlugin::registerTypes(const char *uri)
{
#ifndef QT_STATIC
+# ifdef Q_OS_ANDROID
+ const QString prefix = QLatin1String("qrc:/android_rcc_bundle/qml/QtQuick/Extras");
+# else
const QString prefix = baseUrl().toString();
+# endif // Q_OS_ANDROID
#else
const QString prefix = "qrc:/qt-project.org/imports/QtQuick/Extras";
#endif