From 9603570d42f3ae28ac2063a19b757531c7d2941e Mon Sep 17 00:00:00 2001 From: Andy Shaw Date: Tue, 14 Jan 2020 10:52:13 +0100 Subject: Android: Look in the correct location for the supporting QML files Change-Id: I99db8554f88d39a2e9376b50bb1a6f8a334cf461 Reviewed-by: BogDan Vatra --- src/dialogs/plugin.cpp | 25 +++++++++++++++++++++---- src/extras/plugin.cpp | 4 ++++ 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(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 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(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 -- cgit v1.2.1