From 2ffc045be362d0497c88a006bd8f971561cc196f Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Date: Thu, 28 Oct 2010 18:09:52 +0200
Subject: [PATCH] QmlDesigner.formEditor: fixes memory leak

Also fixes the memory leak in resize code.
cleanup

Reviewed-by: Marco Bubke
---
 .../qmldesigner/components/formeditor/movemanipulator.cpp   | 6 +++---
 .../qmldesigner/components/formeditor/resizemanipulator.cpp | 4 +++-
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
index 881006801a4..c3eb5ec642d 100644
--- a/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/movemanipulator.cpp
@@ -198,8 +198,6 @@ QPointF MoveManipulator::findSnappingOffset(const QHash<FormEditorItem*, QRectF>
 
 void MoveManipulator::generateSnappingLines(const QHash<FormEditorItem*, QRectF> &boundingRectHash)
 {
-    qDeleteAll(m_graphicsLineList);
-    m_graphicsLineList.clear();
     m_graphicsLineList = m_snapper.generateSnappingLines(boundingRectHash.values(),
                                                          m_layerItem.data(),
                                                          m_snapper.transformtionSpaceFormEditorItem()->sceneTransform());
@@ -417,8 +415,10 @@ void MoveManipulator::setOpacityForAllElements(qreal opacity)
 void MoveManipulator::deleteSnapLines()
 {
     if (m_layerItem) {
-        foreach (QGraphicsItem *item, m_graphicsLineList)
+        foreach (QGraphicsItem *item, m_graphicsLineList) {
             m_layerItem->scene()->removeItem(item);
+            delete item;
+        }
     }
     m_graphicsLineList.clear();
     m_view->scene()->update();
diff --git a/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp b/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp
index 19ffc860e86..933b99e03dc 100644
--- a/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp
+++ b/src/plugins/qmldesigner/components/formeditor/resizemanipulator.cpp
@@ -474,8 +474,10 @@ bool ResizeManipulator::isInvalidSize(const QSizeF & size)
 void ResizeManipulator::deleteSnapLines()
 {
     if (m_layerItem) {
-        foreach (QGraphicsItem *item, m_graphicsLineList)
+        foreach (QGraphicsItem *item, m_graphicsLineList) {
             m_layerItem->scene()->removeItem(item);
+            delete item;
+        }
     }
 
     m_graphicsLineList.clear();
-- 
GitLab