Skip to content

Commit a27d80a

Browse files
committed
Fix c++ template for enums
1 parent 36bd0fa commit a27d80a

File tree

1 file changed

+18
-7
lines changed

1 file changed

+18
-7
lines changed

templates/cpp-qt-client/model-body.mustache

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class {{classname}}Private {
2121
bool {{name}}_isSet;
2222
bool {{name}}_isValid;
2323
{{/vars}}{{/isEnum}}{{#isEnum}}
24-
e{{classname}} value;
24+
{{classname}}::e{{classname}} value;
2525
bool value_isSet;
2626
bool value_isValid;
2727
{{/isEnum}}};
@@ -61,14 +61,20 @@ void {{classname}}::initializeModel() {
6161
}
6262

6363
void {{classname}}::fromJson(QString jsonString) {
64-
{{^isEnum}}QByteArray array(jsonString.toUtf8());
64+
{{^isEnum}}
65+
QByteArray array(jsonString.toUtf8());
6566
QJsonDocument doc = QJsonDocument::fromJson(array);
6667
QJsonObject jsonObject = doc.object();
67-
this->fromJsonObject(jsonObject);{{/isEnum}}{{#isEnum}}{{#allowableValues}}{{#enumVars}}
68+
this->fromJsonObject(jsonObject);
69+
{{/isEnum}}
70+
{{#isEnum}}
71+
Q_D({{classname}});
72+
{{#allowableValues}}{{#enumVars}}
6873
{{#-first}}if{{/-first}}{{^-first}}else if{{/-first}} ( jsonString.compare({{#isString}}"{{value}}"{{/isString}}{{^isString}}QString::number({{value}}){{/isString}}, Qt::CaseInsensitive) == 0) {
6974
d->value = e{{classname}}::{{name}};
7075
d->value_isSet = d->value_isValid = true;
71-
}{{/enumVars}}{{/allowableValues}}{{/isEnum}}
76+
}{{/enumVars}}{{/allowableValues}}
77+
{{/isEnum}}
7278
}
7379

7480
void {{classname}}::fromJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}}(QJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}} json) {
@@ -110,10 +116,14 @@ void {{classname}}::fromJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnu
110116
}
111117

112118
QString {{classname}}::asJson() const {
113-
{{^isEnum}}QJsonObject obj = this->asJsonObject();
119+
{{^isEnum}}
120+
QJsonObject obj = this->asJsonObject();
114121
QJsonDocument doc(obj);
115122
QByteArray bytes = doc.toJson();
116-
return QString(bytes);{{/isEnum}}{{#isEnum}}
123+
return QString(bytes);
124+
{{/isEnum}}
125+
{{#isEnum}}
126+
Q_D(const {{classname}});
117127
QString val;
118128
{{#allowableValues}}
119129
switch (d->value){
@@ -125,7 +135,8 @@ QString {{classname}}::asJson() const {
125135
break;{{/-last}}
126136
{{/enumVars}}
127137
}{{/allowableValues}}
128-
return val;{{/isEnum}}
138+
return val;
139+
{{/isEnum}}
129140
}
130141

131142
QJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}} {{classname}}::asJson{{^isEnum}}Object{{/isEnum}}{{#isEnum}}Value{{/isEnum}}() const {

0 commit comments

Comments
 (0)