History

Add registerGetterSetter to remove need for getEngine()

Ryan Huffman committed 12 years ago

Commit 9e684a01 parent 65fd2a73 files · +27 −14Browse 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+17−1
@@ -248,10 +248,26 @@ void ScriptEngine::init() { · 247 unmodified lines
248 _particlesScriptingInterface.getParticlePacketSender()->setProcessCallIntervalHint(SCRIPT_DATA_CALLBACK_USECS);248 _particlesScriptingInterface.getParticlePacketSender()->setProcessCallIntervalHint(SCRIPT_DATA_CALLBACK_USECS);
249}249}
250 250
251void ScriptEngine::registerGlobalObject(const QString& name, QObject* object) {251QScriptValue ScriptEngine::registerGlobalObject(const QString& name, QObject* object) {
252 if (object) {252 if (object) {
253 QScriptValue value = _engine.newQObject(object);253 QScriptValue value = _engine.newQObject(object);
254 _engine.globalObject().setProperty(name, value);254 _engine.globalObject().setProperty(name, value);
255 return value;
256 }
257 return QScriptValue::NullValue;
258}
259
260void 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