From efa2482da925a504669bf044944c97bd75cd58d4 Mon Sep 17 00:00:00 2001
From: Marco Bubke <marco.bubke@nokia.com>
Date: Thu, 7 Jan 2010 15:18:13 +0100
Subject: [PATCH] Fix drawing of the outer frame of Qml item

---
 .../qmldesigner/components/formeditor/formeditoritem.cpp  | 4 ++--
 .../components/formeditor/selectionindicator.cpp          | 8 ++++----
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
index 91652fc37cb..d82f5f485a3 100644
--- a/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/formeditoritem.cpp
@@ -63,7 +63,7 @@ FormEditorItem::FormEditorItem(const QmlItemNode &qmlItemNode, FormEditorScene*
     m_borderWidth(1.0),
     m_opacity(0.6)
 {
-    setCacheMode(QGraphicsItem::ItemCoordinateCache);
+    setCacheMode(QGraphicsItem::DeviceCoordinateCache);
     setup();
 }
 
@@ -182,7 +182,7 @@ static QRectF alignedRect(const QRectF &rect)
     alignedRect.setTop(std::floor(rect.top()) + 0.5);
     alignedRect.setBottom(std::floor(rect.bottom()) + 0.5);
     alignedRect.setLeft(std::floor(rect.left()) + 0.5);
-    alignedRect.setRight(std::floor(rect.right()) + 0.5);
+    alignedRect.setRight(std::floor(rect.right()) + 1.5);
 
     return alignedRect;
 }
diff --git a/src/plugins/qmldesigner/components/formeditor/selectionindicator.cpp b/src/plugins/qmldesigner/components/formeditor/selectionindicator.cpp
index d71ef6cca27..a71cdc6e593 100644
--- a/src/plugins/qmldesigner/components/formeditor/selectionindicator.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/selectionindicator.cpp
@@ -87,8 +87,8 @@ void SelectionIndicator::setItems(const QList<FormEditorItem*> &itemList)
     foreach (FormEditorItem *item, itemList) {
         QGraphicsPolygonItem *newSelectionIndicatorGraphicsItem = new QGraphicsPolygonItem(m_layerItem.data());
         m_indicatorShapeHash.insert(item, newSelectionIndicatorGraphicsItem);
-        QPolygonF boundingRectInSceneSpace(item->mapToScene(item->qmlItemNode().instanceBoundingRect()));
-        alignVertices(boundingRectInSceneSpace, 0.5 / item->formEditorView()->widget()->zoomAction()->zoomLevel());
+        QPolygonF boundingRectInSceneSpace(item->mapToScene(item->qmlItemNode().instanceBoundingRect().adjusted(0.5, 0.5, 0.5, 0.5)));
+        //        alignVertices(boundingRectInSceneSpace, 0.5 / item->formEditorView()->widget()->zoomAction()->zoomLevel());
         QPolygonF boundingRectInLayerItemSpace = m_layerItem->mapFromScene(boundingRectInSceneSpace);
         newSelectionIndicatorGraphicsItem->setPolygon(boundingRectInLayerItemSpace);
         newSelectionIndicatorGraphicsItem->setFlag(QGraphicsItem::ItemIsSelectable, false);
@@ -106,8 +106,8 @@ void SelectionIndicator::updateItems(const QList<FormEditorItem*> &itemList)
     foreach (FormEditorItem *item, itemList) {
         if (m_indicatorShapeHash.contains(item)) {
             QGraphicsPolygonItem *indicatorGraphicsItem =  m_indicatorShapeHash.value(item);
-            QPolygonF boundingRectInSceneSpace(item->mapToScene(item->qmlItemNode().instanceBoundingRect()));
-            alignVertices(boundingRectInSceneSpace, 0.5 / item->formEditorView()->widget()->zoomAction()->zoomLevel());
+            QPolygonF boundingRectInSceneSpace(item->mapToScene(item->qmlItemNode().instanceBoundingRect().adjusted(0.5, 0.5, 0.5, 0.5)));
+//            alignVertices(boundingRectInSceneSpace, 0.5 / item->formEditorView()->widget()->zoomAction()->zoomLevel());
             QPolygonF boundingRectInLayerItemSpace = m_layerItem->mapFromScene(boundingRectInSceneSpace);
             indicatorGraphicsItem->setPolygon(boundingRectInLayerItemSpace);
         }
-- 
GitLab