summaryrefslogtreecommitdiffstats
path: root/scripts/templates/common.tmpl
diff options
context:
space:
mode:
authorSandro S. Andrade <sandroandrade@kde.org>2013-10-25 14:30:04 -0300
committerSandro S. Andrade <sandroandrade@kde.org>2013-10-25 19:27:40 +0200
commit19865b5cdc94512d2dae89f5b50ca813d1962eac (patch)
tree2ae80daf5c0906c443961a1bf9e67d9d66e4e1b7 /scripts/templates/common.tmpl
parentb715a4573294771118213d866d70b947bade715b (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.tmpl33
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}"));
}