39 qFatal() <<
"Cannot register class: engine is null";
42 const QMetaObject *metaObject = &Enums::staticMetaObject;
45 QJSValue pappso_root_property;
47 if(engine->globalObject().hasProperty(
"pappso"))
50 pappso_root_property = engine->globalObject().property(
"pappso");
56 pappso_root_property = engine->newObject();
60 QJSValue all_js_enums = engine->newObject();
63 for(
int i = 0; i < metaObject->enumeratorCount(); ++i)
65 QMetaEnum iter_meta_enum = metaObject->enumerator(i);
69 QJSValue single_js_enum = engine->newObject();
71 for(
int j = 0; j < iter_meta_enum.keyCount(); ++j)
77 single_js_enum.setProperty(iter_meta_enum.key(j),
78 iter_meta_enum.value(j));
82 all_js_enums.setProperty(iter_meta_enum.enumName(), single_js_enum);
86 pappso_root_property.setProperty(
"Enums", all_js_enums);
88 engine->globalObject().setProperty(
"pappso", pappso_root_property);
93 <<
"Now checking for correct exposition of Enums::enum::<key/value> pairs.";
96 engine->globalObject().property(
"pappso").property(
"Enums");
98 if(jsEnums.isUndefined())
100 qDebug() <<
"Error: pappso.Enums not found!";
105 qDebug() <<
"pappso.Enums JS object exists";
109 engine->evaluate(
"Object.getOwnPropertyNames(pappso.Enums)");
111 if(propNames.isError())
113 qDebug() <<
"JS Error:" << propNames.toString();
118 const QStringList enumNames = propNames.toVariant().toStringList();
119 for(
const QString &enumName : enumNames)
121 QJSValue jsEnum = jsEnums.property(enumName);
123 if(!jsEnum.isObject())
125 qDebug() <<
"Skipping non-object property:" << enumName;
129 qDebug() <<
"\nChecking enum:" << enumName;
132 QJSValue enumKeys = engine->evaluate(
133 QString(
"Object.getOwnPropertyNames(pappso.Enums.%1)")
136 if(enumKeys.isError())
138 qDebug() <<
" JS Error:" << enumKeys.toString();
143 const QStringList keys = enumKeys.toVariant().toStringList();
144 for(
const QString &key : keys)
146 QJSValue value = jsEnum.property(key);
147 qDebug() <<
" " << key <<
"=" << value.toInt();
148 qDebug().noquote() <<
"\nChecked enum: " << enumName <<
"member ("
149 << key <<
" / " << value.toInt() <<
")";