aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/controls/qtlabscontrolsplugin.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/imports/controls/qtlabscontrolsplugin.cpp')
-rw-r--r--src/imports/controls/qtlabscontrolsplugin.cpp21
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");