From 8af7efa31c89f23e51eac5e962c9a8c4d68d882f Mon Sep 17 00:00:00 2001 From: Thomas Hartmann <Thomas.Hartmann@nokia.com> Date: Mon, 20 Sep 2010 12:11:37 +0200 Subject: [PATCH] QmlDesigner.modelMerger: catch another exception --- .../designercore/model/modelmerger.cpp | 35 +++++++++++-------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/plugins/qmldesigner/designercore/model/modelmerger.cpp b/src/plugins/qmldesigner/designercore/model/modelmerger.cpp index 7e9290cda76..d6443de6f70 100644 --- a/src/plugins/qmldesigner/designercore/model/modelmerger.cpp +++ b/src/plugins/qmldesigner/designercore/model/modelmerger.cpp @@ -38,6 +38,7 @@ #include "bindingproperty.h" #include "variantproperty.h" #include "rewritertransaction.h" +#include <rewritingexception.h> #include <QSet> #include <QStringList> @@ -168,26 +169,30 @@ ModelNode ModelMerger::insertModel(const ModelNode &modelNode) void ModelMerger::replaceModel(const ModelNode &modelNode) { - RewriterTransaction transaction(view()->beginRewriterTransaction()); + try { + RewriterTransaction transaction(view()->beginRewriterTransaction()); - foreach (const Import &import, modelNode.model()->imports()) - view()->model()->addImport(import); - view()->model()->setFileUrl(modelNode.model()->fileUrl()); + foreach (const Import &import, modelNode.model()->imports()) + view()->model()->addImport(import); + view()->model()->setFileUrl(modelNode.model()->fileUrl()); - ModelNode rootNode(view()->rootModelNode()); + ModelNode rootNode(view()->rootModelNode()); - foreach (const QString &propertyName, rootNode.propertyNames()) - rootNode.removeProperty(propertyName); + foreach (const QString &propertyName, rootNode.propertyNames()) + rootNode.removeProperty(propertyName); - QHash<QString, QString> idRenamingHash; - setupIdRenamingHash(modelNode, idRenamingHash, view()); + QHash<QString, QString> idRenamingHash; + setupIdRenamingHash(modelNode, idRenamingHash, view()); - syncVariantProperties(rootNode, modelNode); - syncBindingProperties(rootNode, modelNode, idRenamingHash); - syncId(rootNode, modelNode, idRenamingHash); - syncNodeProperties(rootNode, modelNode, idRenamingHash, view()); - syncNodeListProperties(rootNode, modelNode, idRenamingHash, view()); - m_view->changeRootNodeType(modelNode.type(), modelNode.majorVersion(), modelNode.minorVersion()); + syncVariantProperties(rootNode, modelNode); + syncBindingProperties(rootNode, modelNode, idRenamingHash); + syncId(rootNode, modelNode, idRenamingHash); + syncNodeProperties(rootNode, modelNode, idRenamingHash, view()); + syncNodeListProperties(rootNode, modelNode, idRenamingHash, view()); + m_view->changeRootNodeType(modelNode.type(), modelNode.majorVersion(), modelNode.minorVersion()); + } catch (RewritingException &e) { + qWarning() << e.description(); //silent error + } } } //namespace QmlDesigner -- GitLab