From: Kim Motoyoshi Kalland Date: Wed, 18 Jan 2012 17:15:49 +0000 (+0100) Subject: Added QQuickItem::clipRect(). X-Git-Url: http://git.silmor.de/gitweb/?a=commitdiff_plain;h=cd0c9ae4ccc43503b6d8fb93bc87092cfa328adc;p=konrad%2Fqtdeclarative.git Added QQuickItem::clipRect(). Change-Id: I0f468dfea6f4ee3bdf8836dcdb15817584c55736 Reviewed-by: Andrew den Exter --- diff --git a/src/quick/items/qquickcanvas.cpp b/src/quick/items/qquickcanvas.cpp index 92a422a..85c520b 100644 --- a/src/quick/items/qquickcanvas.cpp +++ b/src/quick/items/qquickcanvas.cpp @@ -1679,7 +1679,7 @@ void QQuickCanvasPrivate::updateDirtyNode(QQuickItem *item) if (item->clip()) { Q_ASSERT(itemPriv->clipNode() == 0); - itemPriv->extra.value().clipNode = new QQuickDefaultClipNode(item->boundingRect()); + itemPriv->extra.value().clipNode = new QQuickDefaultClipNode(item->clipRect()); itemPriv->clipNode()->update(); if (child) @@ -1771,7 +1771,7 @@ void QQuickCanvasPrivate::updateDirtyNode(QQuickItem *item) } if ((dirty & QQuickItemPrivate::Size) && itemPriv->clipNode()) { - itemPriv->clipNode()->setRect(item->boundingRect()); + itemPriv->clipNode()->setRect(item->clipRect()); itemPriv->clipNode()->update(); } diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp index 77808a6..1af4c31 100644 --- a/src/quick/items/qquickitem.cpp +++ b/src/quick/items/qquickitem.cpp @@ -3649,13 +3649,20 @@ void QQuickItem::updateInputMethod(Qt::InputMethodQueries queries) /*! \internal */ // XXX todo - do we want/need this anymore? -// Note that it's now used for varying clip rect QRectF QQuickItem::boundingRect() const { Q_D(const QQuickItem); return QRectF(0, 0, d->width, d->height); } +/*! \internal */ +QRectF QQuickItem::clipRect() const +{ + Q_D(const QQuickItem); + return QRectF(0, 0, d->width, d->height); +} + + QQuickItem::TransformOrigin QQuickItem::transformOrigin() const { Q_D(const QQuickItem); @@ -5832,7 +5839,7 @@ void QQuickItemLayer::updateGeometry() { QQuickItem *l = m_effect ? (QQuickItem *) m_effect : (QQuickItem *) m_effectSource; Q_ASSERT(l); - QRectF bounds = m_item->boundingRect(); + QRectF bounds = m_item->clipRect(); l->setWidth(bounds.width()); l->setHeight(bounds.height()); l->setX(bounds.x() + m_item->x()); diff --git a/src/quick/items/qquickitem.h b/src/quick/items/qquickitem.h index c44192b..f14d60b 100644 --- a/src/quick/items/qquickitem.h +++ b/src/quick/items/qquickitem.h @@ -266,6 +266,7 @@ public: void setFlags(Flags flags); virtual QRectF boundingRect() const; + virtual QRectF clipRect() const; bool hasActiveFocus() const; bool hasFocus() const; diff --git a/src/quick/items/qquickrectangle.cpp b/src/quick/items/qquickrectangle.cpp index 062df12..13c101d 100644 --- a/src/quick/items/qquickrectangle.cpp +++ b/src/quick/items/qquickrectangle.cpp @@ -553,4 +553,9 @@ QRectF QQuickRectangle::boundingRect() const d->width + 2 * d->penMargin, d->height + 2 * d->penMargin); } +QRectF QQuickRectangle::clipRect() const +{ + return QQuickRectangle::boundingRect(); +} + QT_END_NAMESPACE diff --git a/src/quick/items/qquickrectangle_p.h b/src/quick/items/qquickrectangle_p.h index eec2b56..52aa9e8 100644 --- a/src/quick/items/qquickrectangle_p.h +++ b/src/quick/items/qquickrectangle_p.h @@ -159,6 +159,7 @@ public: void setRadius(qreal radius); virtual QRectF boundingRect() const; + virtual QRectF clipRect() const; Q_SIGNALS: void colorChanged();