From 02f297be266625b76568bb3d1ec77ae24556b78f Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@nokia.com>
Date: Mon, 12 Apr 2010 12:42:24 +0200
Subject: [PATCH] Change GraphicsView settings to be more in line with Qml

Task-Number: BAUHAUS-567
Reviewed-by: kkoehne
---
 .../components/formeditor/formeditorgraphicsview.cpp          | 3 ++-
 .../qmldesigner/components/formeditor/formeditorscene.cpp     | 1 +
 src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp   | 4 +++-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
index 64c302bbd32..72b657616a5 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorgraphicsview.cpp
@@ -43,8 +43,9 @@ FormEditorGraphicsView::FormEditorGraphicsView(QWidget *parent) :
     setTransformationAnchor(QGraphicsView::AnchorUnderMouse);
     setResizeAnchor(QGraphicsView::AnchorViewCenter);
 //    setCacheMode(QGraphicsView::CacheNone);
-     setCacheMode(QGraphicsView::CacheBackground);
+    setCacheMode(QGraphicsView::CacheBackground);
     setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
+    setOptimizationFlags(QGraphicsView::DontSavePainterState);
 //    setViewportUpdateMode(QGraphicsView::NoViewportUpdate);
     setRenderHint(QPainter::Antialiasing, false);
 
diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
index 267d2678f76..46ade624dc8 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditorscene.cpp
@@ -67,6 +67,7 @@ FormEditorScene::FormEditorScene(FormEditorWidget *view, FormEditorView *editorV
     m_formLayerItem->setZValue(0.0);
     m_formLayerItem->setFlag(QGraphicsItem::ItemClipsChildrenToShape, true);
     view->setScene(this);
+    setItemIndexMethod(QGraphicsScene::NoIndex);
 
 //    setItemIndexMethod(QGraphicsScene::NoIndex);
 }
diff --git a/src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp b/src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp
index fb3692fb52b..024d96b10b4 100644
--- a/src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp
+++ b/src/plugins/qmldesigner/core/instances/nodeinstanceview.cpp
@@ -95,8 +95,10 @@ NodeInstanceView::NodeInstanceView(QObject *parent)
     m_blockStatePropertyChanges(false)
 {
     m_graphicsView->setAttribute(Qt::WA_DontShowOnScreen, true);
-    m_graphicsView->setViewportUpdateMode(QGraphicsView::NoViewportUpdate);
+    m_graphicsView->setOptimizationFlags(QGraphicsView::DontSavePainterState);
+    m_graphicsView->setViewportUpdateMode(QGraphicsView::BoundingRectViewportUpdate);
     m_graphicsView->setScene(new QGraphicsScene(m_graphicsView.data()));
+    m_graphicsView->scene()->setItemIndexMethod(QGraphicsScene::NoIndex);
 }
 
 
-- 
GitLab