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 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'src/dialogs/plugin.cpp') diff --git a/src/dialogs/plugin.cpp b/src/dialogs/plugin.cpp index b31d233e7..601412d3c 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 -- cgit v1.2.3