diff options
Diffstat (limited to 'src/tools/ivigenerator/templates_frontend/struct.cpp.tpl')
-rw-r--r-- | src/tools/ivigenerator/templates_frontend/struct.cpp.tpl | 49 |
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) |