diff --git a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp index 48a69dee24e9bf86b79b7da5ccd586fab40c3ec3..3c0d540bd50d1b4695ca3e3a47f12a9041e3331e 100644 --- a/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp +++ b/src/plugins/qmldesigner/components/formeditor/formeditorview.cpp @@ -186,6 +186,26 @@ void FormEditorView::nodeAboutToBeRemoved(const ModelNode &removedNode) void FormEditorView::propertiesAboutToBeRemoved(const QList<AbstractProperty>& propertyList) { + foreach(const AbstractProperty &property, propertyList) { + if (property.isNodeAbstractProperty()) { + NodeAbstractProperty nodeAbstractProperty = property.toNodeAbstractProperty(); + QList<FormEditorItem*> removedItemList; + + foreach(const ModelNode &modelNode, nodeAbstractProperty.allSubNodes()) { + QmlItemNode qmlItemNode(modelNode); + + if (qmlItemNode.isValid()) { + FormEditorItem *item = m_scene->itemForQmlItemNode(qmlItemNode); + removedItemList.append(item); + + delete item; + } + } + + m_currentTool->itemsAboutToRemoved(removedItemList); + } + } + QmlModelView::propertiesAboutToBeRemoved(propertyList); } void FormEditorView::nodeReparented(const ModelNode &node, const NodeAbstractProperty &newPropertyParent, const NodeAbstractProperty &oldPropertyParent, AbstractView::PropertyChangeFlags propertyChange)