diff options
author | Jørgen Lind <jorgen.lind@theqtcompany.com> | 2015-09-18 12:41:52 +0200 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@theqtcompany.com> | 2015-09-18 14:56:24 +0000 |
commit | e32a289798a1b16e3d0858217003dcc2864cc0c1 (patch) | |
tree | fcee5fc9d00c7f457196fd1bdd26e1c87953f456 /src/compositor | |
parent | c73103268debe47f8b51fe08d69e00a6d7d109f9 (diff) |
Add sizeFollowsSurface property to QWaylandQuickItem
Change-Id: I416f5689679d08b9ba89dceceac5c2ed9128ed9a
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
Diffstat (limited to 'src/compositor')
-rw-r--r-- | src/compositor/compositor_api/qwaylandquickitem.cpp | 39 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandquickitem.h | 10 | ||||
-rw-r--r-- | src/compositor/compositor_api/qwaylandquickitem_p.h | 4 |
3 files changed, 29 insertions, 24 deletions
diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp index 0d5a249cf..02a6519c0 100644 --- a/src/compositor/compositor_api/qwaylandquickitem.cpp +++ b/src/compositor/compositor_api/qwaylandquickitem.cpp @@ -366,8 +366,10 @@ void QWaylandQuickItem::handleSurfaceChanged() connect(newSurface, &QWaylandSurface::sizeChanged, this, &QWaylandQuickItem::updateSize); connect(newSurface, &QWaylandSurface::configure, this, &QWaylandQuickItem::updateBuffer); connect(newSurface, &QWaylandSurface::redraw, this, &QQuickItem::update); - setWidth(newSurface->size().width()); - setHeight(newSurface->size().height()); + if (d->sizeFollowsSurface) { + setWidth(newSurface->size().width()); + setHeight(newSurface->size().height()); + } if (newSurface->origin() != d->origin) { d->origin = newSurface->origin(); emit originChanged(); @@ -414,7 +416,8 @@ void QWaylandQuickItem::parentChanged(QWaylandSurface *newParent, QWaylandSurfac void QWaylandQuickItem::updateSize() { - if (surface()) { + Q_D(QWaylandQuickItem); + if (d->sizeFollowsSurface && surface()) { setSize(surface()->size()); } } @@ -442,6 +445,21 @@ bool QWaylandQuickItem::inputRegionContains(QPointF localPosition) return false; } +bool QWaylandQuickItem::sizeFollowsSurface() const +{ + Q_D(const QWaylandQuickItem); + return d->sizeFollowsSurface; +} + +void QWaylandQuickItem::setSizeFollowsSurface(bool sizeFollowsSurface) +{ + Q_D(QWaylandQuickItem); + if (d->sizeFollowsSurface == sizeFollowsSurface) + return; + d->sizeFollowsSurface = sizeFollowsSurface; + emit sizeFollowsSurfaceChanged(); +} + /*! \qmlproperty bool QtWayland::QWaylandSurfaceItem::paintEnabled @@ -469,12 +487,6 @@ bool QWaylandQuickItem::touchEventsEnabled() const return d->touchEventsEnabled; } -bool QWaylandQuickItem::resizeSurfaceToItem() const -{ - Q_D(const QWaylandQuickItem); - return d->resizeSurfaceToItem; -} - void QWaylandQuickItem::updateBuffer(bool hasBuffer) { Q_D(QWaylandQuickItem); @@ -559,15 +571,6 @@ void QWaylandQuickItem::setTouchEventsEnabled(bool enabled) } } -void QWaylandQuickItem::setResizeSurfaceToItem(bool enabled) -{ - Q_D(QWaylandQuickItem); - if (d->resizeSurfaceToItem != enabled) { - d->resizeSurfaceToItem = enabled; - emit resizeSurfaceToItemChanged(); - } -} - bool QWaylandQuickItem::inputEventsEnabled() const { Q_D(const QWaylandQuickItem); diff --git a/src/compositor/compositor_api/qwaylandquickitem.h b/src/compositor/compositor_api/qwaylandquickitem.h index 5bdd30566..813224514 100644 --- a/src/compositor/compositor_api/qwaylandquickitem.h +++ b/src/compositor/compositor_api/qwaylandquickitem.h @@ -64,9 +64,9 @@ class Q_COMPOSITOR_EXPORT QWaylandQuickItem : public QQuickItem Q_PROPERTY(bool paintEnabled READ paintEnabled WRITE setPaintEnabled) Q_PROPERTY(bool touchEventsEnabled READ touchEventsEnabled WRITE setTouchEventsEnabled NOTIFY touchEventsEnabledChanged) Q_PROPERTY(QWaylandSurface::Origin origin READ origin NOTIFY originChanged) - Q_PROPERTY(bool resizeSurfaceToItem READ resizeSurfaceToItem WRITE setResizeSurfaceToItem NOTIFY resizeSurfaceToItemChanged) Q_PROPERTY(bool inputEventsEnabled READ inputEventsEnabled WRITE setInputEventsEnabled NOTIFY inputEventsEnabledChanged) Q_PROPERTY(bool focusOnClick READ focusOnClick WRITE setFocusOnClick NOTIFY focusOnClickChanged) + Q_PROPERTY(bool sizeFollowsSurface READ sizeFollowsSurface WRITE setSizeFollowsSurface NOTIFY sizeFollowsSurfaceChanged) public: QWaylandQuickItem(QQuickItem *parent = 0); @@ -85,10 +85,8 @@ public: bool paintEnabled() const; bool touchEventsEnabled() const; - bool resizeSurfaceToItem() const; void setTouchEventsEnabled(bool enabled); - void setResizeSurfaceToItem(bool enabled); bool inputEventsEnabled() const; void setInputEventsEnabled(bool enabled); @@ -97,6 +95,10 @@ public: void setFocusOnClick(bool focus); bool inputRegionContains(QPointF localPosition); + + bool sizeFollowsSurface() const; + void setSizeFollowsSurface(bool sizeFollowsSurface); + protected: void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); @@ -130,12 +132,12 @@ Q_SIGNALS: void surfaceChanged(); void touchEventsEnabledChanged(); void originChanged(); - void resizeSurfaceToItemChanged(); void surfaceDestroyed(); void inputEventsEnabledChanged(); void focusOnClickChanged(); void mouseMove(const QPointF &windowPosition); void mouseRelease(); + void sizeFollowsSurfaceChanged(); protected: QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *); diff --git a/src/compositor/compositor_api/qwaylandquickitem_p.h b/src/compositor/compositor_api/qwaylandquickitem_p.h index a087577e7..5d2a93117 100644 --- a/src/compositor/compositor_api/qwaylandquickitem_p.h +++ b/src/compositor/compositor_api/qwaylandquickitem_p.h @@ -57,10 +57,10 @@ public: , provider(Q_NULLPTR) , paintEnabled(true) , touchEventsEnabled(false) - , resizeSurfaceToItem(false) , inputEventsEnabled(true) , newTexture(false) , focusOnClick(true) + , sizeFollowsSurface(true) , connectedWindow(Q_NULLPTR) , origin(QWaylandSurface::OriginTopLeft) { @@ -100,10 +100,10 @@ public: mutable QWaylandSurfaceTextureProvider *provider; bool paintEnabled; bool touchEventsEnabled; - bool resizeSurfaceToItem; bool inputEventsEnabled; bool newTexture; bool focusOnClick; + bool sizeFollowsSurface; QQuickWindow *connectedWindow; QWaylandSurface::Origin origin; |