diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-07-29 13:51:25 +0200 |
---|---|---|
committer | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-08-28 13:09:41 +0200 |
commit | 42c1bf3208e75b131aac2923da397de054cbbe13 (patch) | |
tree | 3900195214c0eafffc0ae411d2ed39de8747f5bf /src/compositor/compositor_api/qwaylandcompositor.h | |
parent | 7c65f7e9618a104b1304ec1a7a1cf7ee31527c87 (diff) |
Make QWaylandCompositor inherit QObject
And remove the constructor arguments, and just having parent as a
constructor argument. This requires QWaylandCompositor to have a create
semantic familiar from QWindow and QOpenGLContext. On create the native
wayland socket is created and initialized.
Also the virtual functions surfaceCreated and surfaceAboutToBeDestroyed
have been converted to signals, removing the need to subclass
QWaylandCompositor
Examples have been changed to avoid having two super classes inheriting
QObject. This is done by either making the QWindow subclass a member or
making the QWaylandCompositor a member.
Change-Id: I317d37e2adca15bfe4e1904e20ab0d83943b2d45
Diffstat (limited to 'src/compositor/compositor_api/qwaylandcompositor.h')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.h | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.h b/src/compositor/compositor_api/qwaylandcompositor.h index f8e918a53..13746e8d3 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.h +++ b/src/compositor/compositor_api/qwaylandcompositor.h @@ -66,8 +66,12 @@ namespace QtWayland class Compositor; } -class Q_COMPOSITOR_EXPORT QWaylandCompositor +class Q_COMPOSITOR_EXPORT QWaylandCompositor : public QObject { + Q_OBJECT + Q_PROPERTY(QByteArray socketName READ socketName WRITE setSocketName) + Q_PROPERTY(QWaylandCompositor::ExtensionFlags extensionFlags READ extensionFlags WRITE setExtensionFlags) + public: enum ExtensionFlag { WindowManagerExtension = 0x01, @@ -82,11 +86,21 @@ public: }; Q_DECLARE_FLAGS(ExtensionFlags, ExtensionFlag) - QWaylandCompositor(const char *socketName = 0, ExtensionFlags extensions = DefaultExtensions); + QWaylandCompositor(QObject *parent = 0); virtual ~QWaylandCompositor(); + virtual void create(); + bool isCreated() const; + + void setSocketName(const QByteArray &name); + QByteArray socketName() const; + + void setExtensionFlags(ExtensionFlags flags); + ExtensionFlags extensionFlags() const; + void addGlobalInterface(QWaylandGlobalInterface *interface); void addDefaultShell(); + ::wl_display *waylandDisplay() const; void destroyClientForSurface(QWaylandSurface *surface); @@ -106,9 +120,6 @@ public: QWaylandOutput *primaryOutput() const; void setPrimaryOutput(QWaylandOutput *output); - virtual void surfaceCreated(QWaylandSurface *surface) = 0; - virtual void surfaceAboutToBeDestroyed(QWaylandSurface *surface); - virtual QWaylandSurfaceView *pickView(const QPointF &globalPosition) const; virtual QPointF mapToView(QWaylandSurfaceView *view, const QPointF &surfacePosition) const; @@ -122,8 +133,6 @@ public: void setClientFullScreenHint(bool value); - const char *socketName() const; - #if QT_DEPRECATED_SINCE(5, 5) void setScreenOrientation(Qt::ScreenOrientation orientation); @@ -157,8 +166,12 @@ public: QWaylandInputDevice *inputDeviceFor(QInputEvent *inputEvent); +signals: + void surfaceCreated(QWaylandSurface *surface); + void surfaceAboutToBeDestroyed(QWaylandSurface *surface); + protected: - QWaylandCompositor(const char *socketName, QtWayland::Compositor *dptr); + QWaylandCompositor(QtWayland::Compositor *dptr); virtual void retainedSelectionReceived(QMimeData *mimeData); virtual QWaylandOutput *createOutput(QWindow *window, const QString &manufacturer, |