mirror of
https://github.com/overte-org/overte.git
synced 2025-08-09 05:37:17 +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("HifiAbout", AboutUtil::getInstance()); // Deprecated.
|
||||||
scriptEngine->registerGlobalObject("ResourceRequestObserver", DependencyManager::get<ResourceRequestObserver>().data());
|
scriptEngine->registerGlobalObject("ResourceRequestObserver", DependencyManager::get<ResourceRequestObserver>().data());
|
||||||
|
|
||||||
// This is obviously wrong -- FIXME!
|
scriptEngine->registerEnum("Bucket", QMetaEnum::fromType<ExternalResource::Bucket>());
|
||||||
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->registerGlobalObject("ExternalResource", ExternalResource::getInstance());
|
scriptEngine->registerGlobalObject("ExternalResource", ExternalResource::getInstance());
|
||||||
|
|
||||||
registerInteractiveWindowMetaType(scriptEngine.data());
|
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) {
|
void ScriptEngine::registerValue(const QString& valueName, QScriptValue value) {
|
||||||
if (QThread::currentThread() != thread()) {
|
if (QThread::currentThread() != thread()) {
|
||||||
#ifdef THREAD_DEBUGGING
|
#ifdef THREAD_DEBUGGING
|
||||||
|
|
|
@ -20,6 +20,7 @@
|
||||||
#include <QtCore/QSet>
|
#include <QtCore/QSet>
|
||||||
#include <QtCore/QWaitCondition>
|
#include <QtCore/QWaitCondition>
|
||||||
#include <QtCore/QStringList>
|
#include <QtCore/QStringList>
|
||||||
|
#include <QMetaEnum>
|
||||||
|
|
||||||
#include <QtScript/QScriptEngine>
|
#include <QtScript/QScriptEngine>
|
||||||
|
|
||||||
|
@ -230,6 +231,15 @@ public:
|
||||||
Q_INVOKABLE void registerFunction(const QString& parent, const QString& name, QScriptEngine::FunctionSignature fun,
|
Q_INVOKABLE void registerFunction(const QString& parent, const QString& name, QScriptEngine::FunctionSignature fun,
|
||||||
int numArguments = -1);
|
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
|
/**jsdoc
|
||||||
* @function Script.registerValue
|
* @function Script.registerValue
|
||||||
* @param {string} name - Name.
|
* @param {string} name - Name.
|
||||||
|
|
Loading…
Reference in a new issue