diff options
Diffstat (limited to 'src/imports/controls/qtlabscontrolsplugin.cpp')
-rw-r--r-- | src/imports/controls/qtlabscontrolsplugin.cpp | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/imports/controls/qtlabscontrolsplugin.cpp b/src/imports/controls/qtlabscontrolsplugin.cpp index 4258fb9c..37b68ef5 100644 --- a/src/imports/controls/qtlabscontrolsplugin.cpp +++ b/src/imports/controls/qtlabscontrolsplugin.cpp @@ -36,7 +36,9 @@ #include <QtQml/qqmlextensionplugin.h> #include <QtCore/qurl.h> +#include <QtCore/qfile.h> #include <QtCore/qcoreapplication.h> +#include <QtCore/private/qfileselector_p.h> #include <QtLabsTemplates/private/qquickabstractbutton_p.h> #include <QtLabsTemplates/private/qquickbuttongroup_p.h> @@ -51,6 +53,9 @@ static inline void initResources() { Q_INIT_RESOURCE(qtlabscontrolsplugin); +#ifdef QT_STATIC + Q_INIT_RESOURCE(qmake_Qt_labs_controls); +#endif } QT_BEGIN_NAMESPACE @@ -61,10 +66,16 @@ class QtLabsControlsPlugin: public QQmlExtensionPlugin Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface/1.0") public: + QtLabsControlsPlugin(QObject *parent = nullptr); void registerTypes(const char *uri); void initializeEngine(QQmlEngine *engine, const char *uri); }; +QtLabsControlsPlugin::QtLabsControlsPlugin(QObject *parent) : QQmlExtensionPlugin(parent) +{ + initResources(); +} + void QtLabsControlsPlugin::registerTypes(const char *uri) { qmlRegisterType<QQuickAbstractButton>(uri, 1, 0, "AbstractButton"); @@ -74,7 +85,14 @@ void QtLabsControlsPlugin::registerTypes(const char *uri) qmlRegisterType<QQuickControl>(uri, 1, 0, "Control"); QQuickStyleSelector selector; - selector.setBaseUrl(baseUrl()); + if (QFile::exists(QLatin1String(":/qt-project.org/imports/Qt/labs/controls/ApplicationWindow.qml"))) + selector.setBaseUrl(QUrl(QLatin1String("qrc:/qt-project.org/imports/Qt/labs/controls")));\ + else + selector.setBaseUrl(baseUrl()); + + const QString style = selector.style(); + if (!style.isEmpty()) + QFileSelectorPrivate::addStatics(QStringList() << style); qmlRegisterType(selector.select(QStringLiteral("/ApplicationWindow.qml")), uri, 1, 0, "ApplicationWindow"); qmlRegisterType(selector.select(QStringLiteral("/BusyIndicator.qml")), uri, 1, 0, "BusyIndicator"); @@ -116,7 +134,6 @@ void QtLabsControlsPlugin::initializeEngine(QQmlEngine *engine, const char *uri) { Q_UNUSED(engine); Q_UNUSED(uri); - initResources(); const QByteArray import = QByteArray(uri) + ".impl"; qmlRegisterType<QQuickBusyIndicatorRing>(import, 1, 0, "BusyRing"); |