diff options
author | Sandro S. Andrade <sandroandrade@kde.org> | 2013-10-25 14:30:04 -0300 |
---|---|---|
committer | Sandro S. Andrade <sandroandrade@kde.org> | 2013-10-25 19:27:40 +0200 |
commit | 19865b5cdc94512d2dae89f5b50ca813d1962eac (patch) | |
tree | 2ae80daf5c0906c443961a1bf9e67d9d66e4e1b7 /scripts/templates/common.tmpl | |
parent | b715a4573294771118213d866d70b947bade715b (diff) |
Fix reset of properties with default value
Change-Id: Ib1be0e68757479a14561f70c79b2f38917b8dff8
Reviewed-by: Sandro S. Andrade <sandroandrade@kde.org>
Diffstat (limited to 'scripts/templates/common.tmpl')
-rw-r--r-- | scripts/templates/common.tmpl | 33 |
1 files changed, 33 insertions, 0 deletions
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}")); } |