History

Better enum registration

Dale Glass committed 6 years ago

Commit 26bcaa41 parent c65cc953 files · +24 −7Browse files

Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 3 files). Show all

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+13−0
@@ -827,6 +827,19 @@ void ScriptEngine::init() { · 826 unmodified lines
827827 }));
828828 }
829829
830+void ScriptEngine::registerEnum(const QString& enumName, QMetaEnum newEnum) {
831+ if (!newEnum.isValid()) {
832+ qCCritical(scriptengine) << "registerEnum called on invalid enum with name " << enumName;
833+ return;
834+ }
835+
836+ for(int i=0;i<newEnum.keyCount();i++) {
837+ const char *keyName = newEnum.key(i);
838+ QString fullName = enumName + "." + keyName;
839+ registerValue(fullName, newEnum.keyToValue(keyName));
840+ }
841+}
842+
830843 void ScriptEngine::registerValue(const QString& valueName, QScriptValue value) {
831844 if (QThread::currentThread() != thread()) {
832845 #ifdef THREAD_DEBUGGING