From a4640e361f872fb16279f56764cead3471110f49 Mon Sep 17 00:00:00 2001 From: Thomas Hartmann Date: Tue, 2 Nov 2010 11:17:59 +0100 Subject: [PATCH] QmlDesigner: fixes crash Deleting an items might have a side effect that turns the qml code invalid. (e. g. alias properties) We catch this an show a proper error message. Task-number: QTCREATORBUG-2973 Reviewed-by: Kai Koehne --- .../components/integration/designdocumentcontroller.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp index 67daf39827..ed8a3bcec0 100644 --- a/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp +++ b/src/plugins/qmldesigner/components/integration/designdocumentcontroller.cpp @@ -51,6 +51,7 @@ #include #include #include +#include #include #include @@ -456,13 +457,17 @@ void DesignDocumentController::deleteSelected() if (!m_d->model) return; - if (m_d->formEditorView) { - RewriterTransaction transaction(m_d->formEditorView.data()); - QList toDelete = m_d->formEditorView->selectedModelNodes(); - foreach (ModelNode node, toDelete) { - if (node.isValid() && !node.isRootNode() && QmlObjectNode(node).isValid()) - QmlObjectNode(node).destroy(); + try { + if (m_d->formEditorView) { + RewriterTransaction transaction(m_d->formEditorView.data()); + QList toDelete = m_d->formEditorView->selectedModelNodes(); + foreach (ModelNode node, toDelete) { + if (node.isValid() && !node.isRootNode() && QmlObjectNode(node).isValid()) + QmlObjectNode(node).destroy(); + } } + } catch (RewritingException &e) { + QMessageBox::warning(0, tr("Error"), e.description()); } } -- 2.11.0