summaryrefslogtreecommitdiffstats
path: root/src/compositor/compositor_api/qwaylandcompositor.h
diff options
context:
space:
mode:
authorJørgen Lind <jorgen.lind@theqtcompany.com>2015-07-29 13:51:25 +0200
committerJørgen Lind <jorgen.lind@theqtcompany.com>2015-08-28 13:09:41 +0200
commit42c1bf3208e75b131aac2923da397de054cbbe13 (patch)
tree3900195214c0eafffc0ae411d2ed39de8747f5bf /src/compositor/compositor_api/qwaylandcompositor.h
parent7c65f7e9618a104b1304ec1a7a1cf7ee31527c87 (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.h29
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,