summaryrefslogtreecommitdiffstats
path: root/src/compositor
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-01-12 12:57:53 +0100
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:41 +0200
commite17588ea0e107d5d97dbd8cb8a4fae5bfc8ff1a1 (patch)
tree883f8307ea5935754c7cb21e48c87f1bd4c030a3 /src/compositor
parent2cead7f46e8f956b4e211d305c55dd79198b7bfb (diff)
Make it possible to add the default shell from qml
Diffstat (limited to 'src/compositor')
-rw-r--r--src/compositor/compositor_api/qwaylandquickcompositor.cpp26
-rw-r--r--src/compositor/compositor_api/qwaylandquickcompositor.h13
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