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