summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compositor/compositor_api/qwaylandquickcompositor.cpp35
-rw-r--r--src/compositor/compositor_api/qwaylandquickcompositor.h10
2 files changed, 41 insertions, 4 deletions
diff --git a/src/compositor/compositor_api/qwaylandquickcompositor.cpp b/src/compositor/compositor_api/qwaylandquickcompositor.cpp
index 3a8cc4c6b..13c32fae7 100644
--- a/src/compositor/compositor_api/qwaylandquickcompositor.cpp
+++ b/src/compositor/compositor_api/qwaylandquickcompositor.cpp
@@ -48,11 +48,38 @@ QT_BEGIN_NAMESPACE
QWaylandQuickCompositor::QWaylandQuickCompositor(QObject *parent)
: QWaylandCompositor(parent)
+ , m_initializeLegazyQmlNames(true)
{
- qmlRegisterUncreatableType<QWaylandSurfaceItem>("QtCompositor", 1, 0, "WaylandSurfaceItem", QObject::tr("Cannot create instance of WaylandSurfaceItem"));
- qmlRegisterUncreatableType<QWaylandQuickSurface>("QtCompositor", 1, 0, "WaylandQuickSurface", QObject::tr("Cannot create instance of WaylandQuickSurface"));
- qmlRegisterUncreatableType<QWaylandClient>("QtCompositor", 1, 0, "WaylandClient", QObject::tr("Cannot create instance of WaylandClient"));
- qmlRegisterUncreatableType<QWaylandOutput>("QtCompositor", 1, 0, "WaylandOutput", QObject::tr("Cannot create instance of WaylandOutput"));
+}
+
+void QWaylandQuickCompositor::create()
+{
+ if (m_initializeLegazyQmlNames)
+ registerLegacyQmlNames();
+
+ QWaylandCompositor::create();
+}
+
+void QWaylandQuickCompositor::registerLegacyQmlNames()
+{
+ static bool initialized = false;
+ if (!initialized) {
+ qmlRegisterUncreatableType<QWaylandSurfaceItem>("QtCompositor", 1, 0, "WaylandSurfaceItem", QObject::tr("Cannot create instance of WaylandSurfaceItem"));
+ qmlRegisterUncreatableType<QWaylandQuickSurface>("QtCompositor", 1, 0, "WaylandQuickSurface", QObject::tr("Cannot create instance of WaylandQuickSurface"));
+ qmlRegisterUncreatableType<QWaylandClient>("QtCompositor", 1, 0, "WaylandClient", QObject::tr("Cannot create instance of WaylandClient"));
+ qmlRegisterUncreatableType<QWaylandOutput>("QtCompositor", 1, 0, "WaylandOutput", QObject::tr("Cannot create instance of WaylandOutput"));
+ initialized = true;
+ }
+}
+
+bool QWaylandQuickCompositor::initializeLegazyQmlNames() const
+{
+ return m_initializeLegazyQmlNames;
+}
+
+void QWaylandQuickCompositor::setInitializeLegazyQmlNames(bool init)
+{
+ m_initializeLegazyQmlNames = init;
}
QWaylandSurfaceView *QWaylandQuickCompositor::createView(QWaylandSurface *surf)
diff --git a/src/compositor/compositor_api/qwaylandquickcompositor.h b/src/compositor/compositor_api/qwaylandquickcompositor.h
index 6bfe8b0c9..b859bd8c8 100644
--- a/src/compositor/compositor_api/qwaylandquickcompositor.h
+++ b/src/compositor/compositor_api/qwaylandquickcompositor.h
@@ -43,14 +43,24 @@ QT_BEGIN_NAMESPACE
class Q_COMPOSITOR_EXPORT QWaylandQuickCompositor : public QWaylandCompositor
{
+ Q_OBJECT
+ Q_PROPERTY(bool initializeLegazyQmlNames READ initializeLegazyQmlNames WRITE setInitializeLegazyQmlNames)
public:
QWaylandQuickCompositor(QObject *parent = 0);
+ void create() Q_DECL_OVERRIDE;
+
+ static void registerLegacyQmlNames();
+ bool initializeLegazyQmlNames() const;
+ void setInitializeLegazyQmlNames(bool init);
QWaylandSurfaceView *createView(QWaylandSurface *surf) Q_DECL_OVERRIDE;
QWaylandOutput *createOutput(QWindow *window,
const QString &manufacturer,
const QString &model) Q_DECL_OVERRIDE;
QWaylandSurface *createSurface(QWaylandClient *client, quint32 id, int version) Q_DECL_OVERRIDE;
+
+private:
+ bool m_initializeLegazyQmlNames;
};
QT_END_NAMESPACE