mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 12:04:18 +02:00
Better enum registration
This commit is contained in:
parent
c65cc9570d
commit
26bcaa420d
3 changed files with 24 additions and 7 deletions
|
@ -7537,13 +7537,7 @@ void Application::registerScriptEngineWithApplicationServices(const ScriptEngine
|
|||
scriptEngine->registerGlobalObject("HifiAbout", AboutUtil::getInstance()); // Deprecated.
|
||||
scriptEngine->registerGlobalObject("ResourceRequestObserver", DependencyManager::get<ResourceRequestObserver>().data());
|
||||
|
||||
// This is obviously wrong -- FIXME!
|
||||
scriptEngine->registerValue("Bucket.Public", static_cast<int>(ExternalResource::Bucket::Public));
|
||||
scriptEngine->registerValue("Bucket.Content", static_cast<int>(ExternalResource::Bucket::Content));
|
||||
scriptEngine->registerValue("Bucket.MPAssets", static_cast<int>(ExternalResource::Bucket::MPAssets));
|
||||
scriptEngine->registerValue("Bucket.Assets", static_cast<int>(ExternalResource::Bucket::Assets));
|
||||
|
||||
|
||||
scriptEngine->registerEnum("Bucket", QMetaEnum::fromType<ExternalResource::Bucket>());
|
||||
scriptEngine->registerGlobalObject("ExternalResource", ExternalResource::getInstance());
|
||||
|
||||
registerInteractiveWindowMetaType(scriptEngine.data());
|
||||
|
|
|
@ -827,6 +827,19 @@ void ScriptEngine::init() {
|
|||
}));
|
||||
}
|
||||
|
||||
void ScriptEngine::registerEnum(const QString& enumName, QMetaEnum newEnum) {
|
||||
if (!newEnum.isValid()) {
|
||||
qCCritical(scriptengine) << "registerEnum called on invalid enum with name " << enumName;
|
||||
return;
|
||||
}
|
||||
|
||||
for(int i=0;i<newEnum.keyCount();i++) {
|
||||
const char *keyName = newEnum.key(i);
|
||||
QString fullName = enumName + "." + keyName;
|
||||
registerValue(fullName, newEnum.keyToValue(keyName));
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptEngine::registerValue(const QString& valueName, QScriptValue value) {
|
||||
if (QThread::currentThread() != thread()) {
|
||||
#ifdef THREAD_DEBUGGING
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <QtCore/QSet>
|
||||
#include <QtCore/QWaitCondition>
|
||||
#include <QtCore/QStringList>
|
||||
#include <QMetaEnum>
|
||||
|
||||
#include <QtScript/QScriptEngine>
|
||||
|
||||
|
@ -230,6 +231,15 @@ public:
|
|||
Q_INVOKABLE void registerFunction(const QString& parent, const QString& name, QScriptEngine::FunctionSignature fun,
|
||||
int numArguments = -1);
|
||||
|
||||
/**jsdoc
|
||||
* @function Script.registerEnum
|
||||
* @param {string} enumName - Name.
|
||||
* @param {object} newEnum - Enumeration to be added
|
||||
* @deprecated This function is deprecated and will be removed.
|
||||
*/
|
||||
/// registers a global enum
|
||||
Q_INVOKABLE void registerEnum(const QString& enumName, QMetaEnum newEnum);
|
||||
|
||||
/**jsdoc
|
||||
* @function Script.registerValue
|
||||
* @param {string} name - Name.
|
||||
|
|
Loading…
Reference in a new issue