Added QQuickItem::clipRect().
authorKim Motoyoshi Kalland <kim.kalland@nokia.com>
Wed, 18 Jan 2012 17:15:49 +0000 (18:15 +0100)
committerQt by Nokia <qt-info@nokia.com>
Mon, 5 Mar 2012 12:42:45 +0000 (13:42 +0100)
Change-Id: I0f468dfea6f4ee3bdf8836dcdb15817584c55736
Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
src/quick/items/qquickcanvas.cpp
src/quick/items/qquickitem.cpp
src/quick/items/qquickitem.h
src/quick/items/qquickrectangle.cpp
src/quick/items/qquickrectangle_p.h

index 92a422a..85c520b 100644 (file)
@@ -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();
     }
 
index 77808a6..1af4c31 100644 (file)
@@ -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());
index c44192b..f14d60b 100644 (file)
@@ -266,6 +266,7 @@ public:
     void setFlags(Flags flags);
 
     virtual QRectF boundingRect() const;
+    virtual QRectF clipRect() const;
 
     bool hasActiveFocus() const;
     bool hasFocus() const;
index 062df12..13c101d 100644 (file)
@@ -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
index eec2b56..52aa9e8 100644 (file)
@@ -159,6 +159,7 @@ public:
     void setRadius(qreal radius);
 
     virtual QRectF boundingRect() const;
+    virtual QRectF clipRect() const;
 
 Q_SIGNALS:
     void colorChanged();