From 19865b5cdc94512d2dae89f5b50ca813d1962eac Mon Sep 17 00:00:00 2001 From: "Sandro S. Andrade" Date: Fri, 25 Oct 2013 14:30:04 -0300 Subject: Fix reset of properties with default value Change-Id: Ib1be0e68757479a14561f70c79b2f38917b8dff8 Reviewed-by: Sandro S. Andrade --- scripts/templates/common.tmpl | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'scripts/templates/common.tmpl') diff --git a/scripts/templates/common.tmpl b/scripts/templates/common.tmpl index 5f4a2ef1..20a52790 100644 --- a/scripts/templates/common.tmpl +++ b/scripts/templates/common.tmpl @@ -433,6 +433,39 @@ void Q${namespace}${originalClassName}Object::set${attributeName.remove("^Is")}( void Q${namespace}${originalClassName}Object::unset${qtAttribute.remove("^is").ucfirst}() { Q_D(QModelingObject); +[% SET defaultType = attribute.findvalue("defaultValue/@xmi:type") -%] + [%- SET type = QT_TYPE(namespace, attribute) -%] + [%- IF defaultType == "uml:LiteralBoolean" || defaultType == "uml:InstanceValue" || defaultType == "uml:LiteralInteger" || defaultType == "uml:LiteralUnlimitedNatural" || type.match('\*$') -%] + [%- IF defaultType == "uml:LiteralBoolean" -%] + [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%] + [%- IF defaultValue != "" %] + set${qtAttribute.remove("^is").ucfirst}(${defaultValue}); + [%- ELSE -%] + set${qtAttribute.remove("^is").ucfirst}(false); + [%- END -%] + [%- ELSIF defaultType == "uml:InstanceValue" -%] + [%- SET defaultInstance = attribute.findvalue("defaultValue/@instance") -%] + set${qtAttribute.remove("^is").ucfirst}(Qt${namespace}::${defaultInstance.split("-").0}${defaultInstance.split("-").1.ucfirst}); + [%- ELSIF defaultType == "uml:LiteralInteger" -%] + [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%] + [%- IF defaultValue != "" -%] + set${qtAttribute.remove("^is").ucfirst}(${defaultValue}); + [%- ELSE -%] + set${qtAttribute.remove("^is").ucfirst}(0); + [%- END -%] + [%- ELSIF defaultType == "uml:LiteralUnlimitedNatural" -%] + [%- SET defaultValue = attribute.findvalue("defaultValue/@value") -%] + [%- IF defaultValue != "" -%] + set${qtAttribute.remove("^is").ucfirst}(${defaultValue}); + [%- ELSE -%] + set${qtAttribute.remove("^is").ucfirst}(0); + [%- END -%] + [%- ELSIF type.match('\*$') -%] + set${qtAttribute.remove("^is").ucfirst}(0); + [%- END -%] + [%- ELSIF xmi.findvalue("//packagedElement[@xmi:id=\"${type}\"]/xmi:type") == "uml:Enumeration" -%] + set${qtAttribute.remove("^is").ucfirst}(Qt${namespace}::${type}None); + [%- END %] d->modifiedResettableProperties.removeAll(QStringLiteral("${attributeName.remove("^Is").lcfirst}")); } -- cgit v1.2.3