diff options
-rw-r--r-- | src/compositor/compositor_api/qwaylandquickcompositor.cpp | 26 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandquickcompositor.h | 13 |
2 files changed, 38 insertions, 1 deletions
diff --git a/src/compositor/compositor_api/qwaylandquickcompositor.cpp b/src/compositor/compositor_api/qwaylandquickcompositor.cpp index 13c32fae7..977b8a4a5 100644 --- a/src/compositor/compositor_api/qwaylandquickcompositor.cpp +++ b/src/compositor/compositor_api/qwaylandquickcompositor.cpp @@ -49,6 +49,7 @@ QT_BEGIN_NAMESPACE QWaylandQuickCompositor::QWaylandQuickCompositor(QObject *parent) : QWaylandCompositor(parent) , m_initializeLegazyQmlNames(true) + , m_exposeDefaultShell(false) { } @@ -79,9 +80,23 @@ bool QWaylandQuickCompositor::initializeLegazyQmlNames() const void QWaylandQuickCompositor::setInitializeLegazyQmlNames(bool init) { + if (isCreated()) + qWarning() << Q_FUNC_INFO << "modifying initializeLegazyQmlNames after the compositor is created is not supported"; m_initializeLegazyQmlNames = init; } +bool QWaylandQuickCompositor::exposeDefaultShell() const +{ + return m_exposeDefaultShell; +} + +void QWaylandQuickCompositor::setExposeDefaultShell(bool defaultShell) +{ + if (isCreated()) + qWarning() << Q_FUNC_INFO << "modifying exposeDefaultShell after the compositor is created is not supported"; + m_exposeDefaultShell = defaultShell; +} + QWaylandSurfaceView *QWaylandQuickCompositor::createView(QWaylandSurface *surf) { return new QWaylandSurfaceItem(static_cast<QWaylandQuickSurface *>(surf)); @@ -103,4 +118,15 @@ QWaylandSurface *QWaylandQuickCompositor::createSurface(QWaylandClient *client, return new QWaylandQuickSurface(client->client(), id, version, this); } +void QWaylandQuickCompositor::classBegin() +{ +} + +void QWaylandQuickCompositor::componentComplete() +{ + if (m_exposeDefaultShell) + addDefaultShell(); + +} + QT_END_NAMESPACE diff --git a/src/compositor/compositor_api/qwaylandquickcompositor.h b/src/compositor/compositor_api/qwaylandquickcompositor.h index b859bd8c8..b84587931 100644 --- a/src/compositor/compositor_api/qwaylandquickcompositor.h +++ b/src/compositor/compositor_api/qwaylandquickcompositor.h @@ -38,13 +38,16 @@ #define QWAYLANDQUICKCOMPOSITOR_H #include <QtCompositor/qwaylandcompositor.h> +#include <QtQml/QQmlParserStatus> QT_BEGIN_NAMESPACE -class Q_COMPOSITOR_EXPORT QWaylandQuickCompositor : public QWaylandCompositor +class Q_COMPOSITOR_EXPORT QWaylandQuickCompositor : public QWaylandCompositor, public QQmlParserStatus { + Q_INTERFACES(QQmlParserStatus) Q_OBJECT Q_PROPERTY(bool initializeLegazyQmlNames READ initializeLegazyQmlNames WRITE setInitializeLegazyQmlNames) + Q_PROPERTY(bool exposeDefaultShell READ exposeDefaultShell WRITE setExposeDefaultShell) public: QWaylandQuickCompositor(QObject *parent = 0); void create() Q_DECL_OVERRIDE; @@ -53,14 +56,22 @@ public: bool initializeLegazyQmlNames() const; void setInitializeLegazyQmlNames(bool init); + bool exposeDefaultShell() const; + void setExposeDefaultShell(bool defaultShell); + 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; +protected: + void classBegin() Q_DECL_OVERRIDE; + void componentComplete() Q_DECL_OVERRIDE; + private: bool m_initializeLegazyQmlNames; + bool m_exposeDefaultShell; }; QT_END_NAMESPACE |