diff options
author | Thomas Hartmann <Thomas.Hartmann@theqtcompany.com> | 2016-10-19 11:48:50 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@theqtcompany.com> | 2016-11-15 14:08:52 +0000 |
commit | cedf7a012ef7a447809bf039a8c4229329ad5b23 (patch) | |
tree | 0373ef5427b0ed8c988a5cce86fc67bbd6622934 | |
parent | 757153fce540d9c08cd3c7e9eedfbaf7fbe91857 (diff) |
QmlDesigner: Adding try catch block
Change-Id: I4956b58f1ffd3bfdf0e6b810de1f411ae7d7f8a0
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
-rw-r--r-- | src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp index 4b891ce6ee..354612a3c2 100644 --- a/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp +++ b/src/plugins/qmldesigner/components/navigator/navigatortreemodel.cpp @@ -666,20 +666,24 @@ static bool isInLayoutable(NodeAbstractProperty &parentProperty) static void reparentModelNodeToNodeProperty(NodeAbstractProperty &parentProperty, const ModelNode &modelNode) { - if (!modelNode.hasParentProperty() || parentProperty != modelNode.parentProperty()) { - if (isInLayoutable(parentProperty)) { - removePosition(modelNode); - parentProperty.reparentHere(modelNode); - } else { - if (QmlItemNode::isValidQmlItemNode(modelNode)) { - QPointF scenePosition = QmlItemNode(modelNode).instanceScenePosition(); + try { + if (!modelNode.hasParentProperty() || parentProperty != modelNode.parentProperty()) { + if (isInLayoutable(parentProperty)) { + removePosition(modelNode); parentProperty.reparentHere(modelNode); - if (!scenePosition.isNull()) - setScenePosition(modelNode, scenePosition); } else { - parentProperty.reparentHere(modelNode); + if (QmlItemNode::isValidQmlItemNode(modelNode)) { + QPointF scenePosition = QmlItemNode(modelNode).instanceScenePosition(); + parentProperty.reparentHere(modelNode); + if (!scenePosition.isNull()) + setScenePosition(modelNode, scenePosition); + } else { + parentProperty.reparentHere(modelNode); + } } } + } catch (const RewritingException &exception) { //better safe than sorry! There always might be cases where we fail + exception.showException(); } } |