summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview/qgraphicsscene.cpp
diff options
context:
space:
mode:
authorAndreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>2009-06-03 05:35:06 (GMT)
committerAndreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>2009-06-09 07:32:18 (GMT)
commit8af81877bb11d58099189bfab21d21e3021b7b8b (patch)
treeea17960b08a13715fc86d8be91a6fb847d55d0cc /src/gui/graphicsview/qgraphicsscene.cpp
parent062b7b1280ef228567d16187951fe43e2ac0f78c (diff)
downloadQt-8af81877bb11d58099189bfab21d21e3021b7b8b.zip
Qt-8af81877bb11d58099189bfab21d21e3021b7b8b.tar.gz
Qt-8af81877bb11d58099189bfab21d21e3021b7b8b.tar.bz2
Add QGraphicsView::isTransformed(), and use it to avoid view transforms.
Ensure that we don't ask for or multiply with the view transform if the view is not transformed.
Diffstat (limited to 'src/gui/graphicsview/qgraphicsscene.cpp')
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index 2773bdd..7bf58c3 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -5314,10 +5314,12 @@ void QGraphicsScenePrivate::processDirtyItemsRecursive(QGraphicsItem *item)
viewPrivate->updateRect(item->d_ptr->paintedViewBoundingRects.value(viewPrivate->viewport));
QTransform deviceTransform = item->d_ptr->sceneTransform;
- if (!untransformableItem)
- deviceTransform *= view->viewportTransform();
- else
- deviceTransform = item->deviceTransform(view->viewportTransform());
+ if (view->isTransformed()) {
+ if (!untransformableItem)
+ deviceTransform *= view->viewportTransform();
+ else
+ deviceTransform = item->deviceTransform(view->viewportTransform());
+ }
if (item->d_ptr->hasBoundingRegionGranularity)
viewPrivate->updateRegion(deviceTransform.map(QRegion(dirtyRect.toRect())));
else