diff options
author | Andreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com> | 2009-06-03 05:35:06 (GMT) |
---|---|---|
committer | Andreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com> | 2009-06-09 07:32:18 (GMT) |
commit | 8af81877bb11d58099189bfab21d21e3021b7b8b (patch) | |
tree | ea17960b08a13715fc86d8be91a6fb847d55d0cc /src/gui/graphicsview/qgraphicsscene.cpp | |
parent | 062b7b1280ef228567d16187951fe43e2ac0f78c (diff) | |
download | Qt-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.cpp | 10 |
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 |