QmlDesigner.QmlPuppet: fix for clipping in sub items

We did not clip sub items if clipping was enabled.

Task-number: QTCREATORBUG-9604
Change-Id: I75fdabd86193fbfbf397bf3d119a1a33c72cf771
Reviewed-by: Marco Bubke <marco.bubke@digia.com>
This commit is contained in:
Thomas Hartmann
2013-08-26 15:40:19 +02:00
parent 61e7641a6d
commit 732d5ec701

View File

@@ -30,6 +30,7 @@
#include "graphicsobjectnodeinstance.h" #include "graphicsobjectnodeinstance.h"
#include <QGraphicsObject> #include <QGraphicsObject>
#include <QDeclarativeItem>
#include "private/qgraphicsitem_p.h" #include "private/qgraphicsitem_p.h"
#include <private/qdeclarativemetatype_p.h> #include <private/qdeclarativemetatype_p.h>
@@ -302,6 +303,11 @@ void GraphicsObjectNodeInstance::paintRecursively(QGraphicsItem *graphicsItem, Q
painter->save(); painter->save();
painter->setTransform(graphicsItem->itemTransform(graphicsItem->parentItem()), true); painter->setTransform(graphicsItem->itemTransform(graphicsItem->parentItem()), true);
painter->setOpacity(graphicsItem->opacity() * painter->opacity()); painter->setOpacity(graphicsItem->opacity() * painter->opacity());
QDeclarativeItem *declarativeItem = qobject_cast<QDeclarativeItem *>(graphicsItem);
if (declarativeItem && declarativeItem->clip())
painter->setClipRect(declarativeItem->boundingRect());
QStyleOptionGraphicsItem option; QStyleOptionGraphicsItem option;
initOption(graphicsItem, &option, painter->transform()); initOption(graphicsItem, &option, painter->transform());
graphicsItem->paint(painter, &option); graphicsItem->paint(painter, &option);