From 557d5ca6cab12010c73f1365465855e77afb69ea Mon Sep 17 00:00:00 2001
From: Thomas Hartmann <Thomas.Hartmann@nokia.com>
Date: Wed, 20 Jan 2010 15:00:06 +0100
Subject: [PATCH] QmlDesigner.PropertyEditor: some cleanup + exception handling

---
 .../propertyeditor/propertyeditor.cpp         | 27 +++++++------------
 1 file changed, 9 insertions(+), 18 deletions(-)

diff --git a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp
index ba4b05ecdc6..2b472577b8f 100644
--- a/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp
+++ b/src/plugins/qmldesigner/components/propertyeditor/propertyeditor.cpp
@@ -208,7 +208,6 @@ void PropertyEditor::changeValue(const QString &name)
 
     PropertyEditorValue *value = qobject_cast<PropertyEditorValue*>(QmlMetaType::toQObject(m_currentType->m_backendValuesPropertyMap.value(name)));
 
-
     if (value ==0) {
         qWarning() << "PropertyEditor:" <<name << " - value is null";
         return;
@@ -217,13 +216,9 @@ void PropertyEditor::changeValue(const QString &name)
     QmlObjectNode fxObjectNode(m_selectedNode);
 
     QVariant castedValue;
-    qreal castedExpressionValue;
-    bool converted = false;
-
 
     if (fxObjectNode.modelNode().metaInfo().isValid() && fxObjectNode.modelNode().metaInfo().property(propertyName, true).isValid()) {
         castedValue = fxObjectNode.modelNode().metaInfo().property(propertyName, true).castedValue(value->value());
-        castedExpressionValue = value->expression().toDouble(&converted);
     } else {
         qWarning() << "PropertyEditor:" <<name << "cannot be casted (metainfo)";
         return ;
@@ -243,24 +238,20 @@ void PropertyEditor::changeValue(const QString &name)
         }
     }
 
-
-    if (value->expression() == value->value().toString() || !value->value().isValid() || converted) {
-        if (converted)
-            castedValue = castedExpressionValue;
-
-        if (!value->value().isValid()) {
-            fxObjectNode.removeVariantProperty(propertyName);
-        } else {
-            if (value->value().canConvert<ModelNode>()) {
-                ; //fxObjectNode.setVariantProperty(propertyName, value->value().value<NodeState>().modelNode().toVariant()); ### hmmm only in basestate blah blah
+        try {
+            if (!value->value().isValid()) {
+                fxObjectNode.removeVariantProperty(propertyName);
             } else {
                 if (castedValue.isValid() && !castedValue.isNull())
                     fxObjectNode.setVariantProperty(propertyName, castedValue);
             }
         }
-    } else { //expression
-        changeExpression(name);
-    }
+
+        catch (Exception &e) {
+            qDebug() << "PropertyEditor::changeValue() " << name;
+            qDebug() << e.description();
+            qDebug() << e;
+        }
 }
 
 void PropertyEditor::changeExpression(const QString &name)
-- 
GitLab