From eb7fad0afd164bb9b56ed47990eaa66cad0c2641 Mon Sep 17 00:00:00 2001 From: Markus Hossner Date: Wed, 21 Apr 2010 10:56:22 +0200 Subject: QAbstractGraphicsShapeItem: ignore already set pen or brush MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If setPen() or setBrush() of a QAbstractGraphicsShapeItem is called with a pen or brush equal to its current pen or brush prepareGeometryChange() and update() shouldn't be called. Testing for identical pen and brush is cheap in comparison with a QGraphicsView update() without seeing a change Merge-request: 562 Reviewed-by: Bjørn Erik Nilsen --- src/gui/graphicsview/qgraphicsitem.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp index 5735cd6..c19c052 100644 --- a/src/gui/graphicsview/qgraphicsitem.cpp +++ b/src/gui/graphicsview/qgraphicsitem.cpp @@ -7694,6 +7694,8 @@ QPen QAbstractGraphicsShapeItem::pen() const void QAbstractGraphicsShapeItem::setPen(const QPen &pen) { Q_D(QAbstractGraphicsShapeItem); + if (d->pen == pen) + return; prepareGeometryChange(); d->pen = pen; d->boundingRect = QRectF(); @@ -7724,6 +7726,8 @@ QBrush QAbstractGraphicsShapeItem::brush() const void QAbstractGraphicsShapeItem::setBrush(const QBrush &brush) { Q_D(QAbstractGraphicsShapeItem); + if (d->brush == brush) + return; d->brush = brush; update(); } @@ -8854,6 +8858,8 @@ QPen QGraphicsLineItem::pen() const void QGraphicsLineItem::setPen(const QPen &pen) { Q_D(QGraphicsLineItem); + if (d->pen == pen) + return; prepareGeometryChange(); d->pen = pen; update(); -- cgit v0.12