Showing the changes to libraries/script-engine/src/ScriptEngine.cpp (1 of 3 files). Show all
Unified · Split
| @@ -248,10 +248,26 @@ void ScriptEngine::init() { · 247 unmodified lines | ||
| 248 | 248 | _particlesScriptingInterface.getParticlePacketSender()->setProcessCallIntervalHint(SCRIPT_DATA_CALLBACK_USECS); |
| 249 | 249 | } |
| 250 | 250 | |
| 251 | −void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { | |
| 251 | +QScriptValue ScriptEngine::registerGlobalObject(const QString& name, QObject* object) { | |
| 252 | 252 | if (object) { |
| 253 | 253 | QScriptValue value = _engine.newQObject(object); |
| 254 | 254 | _engine.globalObject().setProperty(name, value); |
| 255 | + return value; | |
| 256 | + } | |
| 257 | + return QScriptValue::NullValue; | |
| 258 | +} | |
| 259 | + | |
| 260 | +void ScriptEngine::registerGetterSetter(const QString& name, QScriptEngine::FunctionSignature getter, | |
| 261 | + QScriptEngine::FunctionSignature setter, QScriptValue object) { | |
| 262 | + QScriptValue setterFunction = _engine.newFunction(setter, 1); | |
| 263 | + QScriptValue getterFunction = _engine.newFunction(getter); | |
| 264 | + | |
| 265 | + if (object.isNull()) { | |
| 266 | + object.setProperty(name, setterFunction, QScriptValue::PropertySetter); | |
| 267 | + object.setProperty(name, getterFunction, QScriptValue::PropertyGetter); | |
| 268 | + } else { | |
| 269 | + _engine.globalObject().setProperty(name, setterFunction, QScriptValue::PropertySetter); | |
| 270 | + _engine.globalObject().setProperty(name, getterFunction, QScriptValue::PropertyGetter); | |
| 255 | 271 | } |
| 256 | 272 | } |
| 257 | 273 | |