summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview/qgraphicsscene_p.h
diff options
context:
space:
mode:
authorBjørn Erik Nilsen <bjorn.nilsen@nokia.com>2009-07-03 15:38:38 (GMT)
committerBjørn Erik Nilsen <bjorn.nilsen@nokia.com>2009-07-03 15:38:38 (GMT)
commitd228015c67614051df8ae0b2f0483572fd667b83 (patch)
tree994d46afcc0b887c70d7a65e744f831107c29768 /src/gui/graphicsview/qgraphicsscene_p.h
parent1d651e82459c0480cb3e803a9d9452092ac9d502 (diff)
downloadQt-d228015c67614051df8ae0b2f0483572fd667b83.zip
Qt-d228015c67614051df8ae0b2f0483572fd667b83.tar.gz
Qt-d228015c67614051df8ae0b2f0483572fd667b83.tar.bz2
Simplify QGraphicsScenePrivate::processDirtyItemsRecursive.
This version is easier to read and is slightly faster than the old one. All auto-tests pass.
Diffstat (limited to 'src/gui/graphicsview/qgraphicsscene_p.h')
-rw-r--r--src/gui/graphicsview/qgraphicsscene_p.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/gui/graphicsview/qgraphicsscene_p.h b/src/gui/graphicsview/qgraphicsscene_p.h
index 245380f..bd72a71 100644
--- a/src/gui/graphicsview/qgraphicsscene_p.h
+++ b/src/gui/graphicsview/qgraphicsscene_p.h
@@ -207,18 +207,24 @@ public:
void processDirtyItemsRecursive(QGraphicsItem *item, bool dirtyAncestorContainsChildren = false,
qreal parentOpacity = qreal(1.0));
- inline void resetDirtyItem(QGraphicsItem *item)
+ inline void resetDirtyItem(QGraphicsItem *item, bool recursive = false)
{
Q_ASSERT(item);
item->d_ptr->dirty = 0;
item->d_ptr->paintedViewBoundingRectsNeedRepaint = 0;
item->d_ptr->geometryChanged = 0;
+ if (!item->d_ptr->dirtyChildren)
+ recursive = false;
item->d_ptr->dirtyChildren = 0;
item->d_ptr->needsRepaint = QRectF();
item->d_ptr->allChildrenDirty = 0;
item->d_ptr->fullUpdatePending = 0;
item->d_ptr->ignoreVisible = 0;
item->d_ptr->ignoreOpacity = 0;
+ if (recursive) {
+ for (int i = 0; i < item->d_ptr->children.size(); ++i)
+ resetDirtyItem(item->d_ptr->children.at(i), recursive);
+ }
}
inline void ensureSortedTopLevelItems()