summaryrefslogtreecommitdiff
path: root/src/tools/ivigenerator/templates_frontend/struct.cpp.tpl
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/ivigenerator/templates_frontend/struct.cpp.tpl')
-rw-r--r--src/tools/ivigenerator/templates_frontend/struct.cpp.tpl49
1 files changed, 24 insertions, 25 deletions
diff --git a/src/tools/ivigenerator/templates_frontend/struct.cpp.tpl b/src/tools/ivigenerator/templates_frontend/struct.cpp.tpl
index de1715b..c67dbe2 100644
--- a/src/tools/ivigenerator/templates_frontend/struct.cpp.tpl
+++ b/src/tools/ivigenerator/templates_frontend/struct.cpp.tpl
@@ -109,31 +109,6 @@ public:
{
}
-{{class}}::{{class}}(const QVariant &variant)
- : {{class}}()
-{
- QVariant value = qtivi_convertFromJSON(variant);
- // First try to convert the values to a Map or a List
- // This is needed as it could also store a QStringList or a Hash
- if (value.canConvert(QVariant::Map))
- value.convert(QVariant::Map);
- if (value.canConvert(QVariant::List))
- value.convert(QVariant::List);
-
- if (value.type() == QVariant::Map) {
- QVariantMap map = value.toMap();
-{% for field in struct.fields %}
- if (map.contains(QStringLiteral("{{field}}")))
- d->m_{{field}} = map.value(QStringLiteral("{{field}}")).value<{{field|return_type}}>();
-{% endfor %}
- } else if (value.type() == QVariant::List) {
- QVariantList values = value.toList();
-{% for field in struct.fields %}
- d->m_{{field}} = values.value({{loop.index0}}).value<{{field|return_type}}>();
-{% endfor %}
- }
-}
-
/*! \internal */
{{class}}::~{{class}}()
{
@@ -167,6 +142,30 @@ QString {{class}}::type() const
{% endfor %}
+void {{class}}::fromJSON(const QVariant &variant)
+{
+ QVariant value = qtivi_convertFromJSON(variant);
+ // First try to convert the values to a Map or a List
+ // This is needed as it could also store a QStringList or a Hash
+ if (value.canConvert(QVariant::Map))
+ value.convert(QVariant::Map);
+ if (value.canConvert(QVariant::List))
+ value.convert(QVariant::List);
+
+ if (value.type() == QVariant::Map) {
+ QVariantMap map = value.toMap();
+{% for field in struct.fields %}
+ if (map.contains(QStringLiteral("{{field}}")))
+ d->m_{{field}} = map.value(QStringLiteral("{{field}}")).value<{{field|return_type}}>();
+{% endfor %}
+ } else if (value.type() == QVariant::List) {
+ QVariantList values = value.toList();
+{% for field in struct.fields %}
+ d->m_{{field}} = values.value({{loop.index0}}).value<{{field|return_type}}>();
+{% endfor %}
+ }
+}
+
bool operator==(const {{class}} &left, const {{class}} &right) Q_DECL_NOTHROW
{
if (left.d == right.d)