History

Allow multiple scripts to register, and allow them to specify the specific anim vars they are interested in.

Howard Stearns committed 11 years ago

Commit 4b4907c1 parent 900b07f6 files · +77 −39Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+7−4
@@ -262,7 +262,8 @@ void ScriptEngine::errorInLoadingScript(const QUrl& url) { · 261 unmodified lines
262262 // callAnimationStateHandler requires that the type be registered.
263263 // These two are meaningful, if we ever do want to use them...
264264 static QScriptValue animVarMapToScriptValue(QScriptEngine* engine, const AnimVariantMap& parameters) {
265− return parameters.animVariantMapToScriptValue(engine);
265+ QStringList unused;
266+ return parameters.animVariantMapToScriptValue(engine, unused, false);
266267 }
267268 static void animVarMapFromScriptValue(const QScriptValue& value, AnimVariantMap& parameters) {
268269 parameters.animVariantMapFromScriptValue(value);
@@ -741,7 +742,7 @@ void ScriptEngine::stop() { · 472 unmodified lines
741742 }
742743
743744 // Other threads can invoke this through invokeMethod, which causes the callback to be asynchronously executed in this script's thread.
744−void ScriptEngine::callAnimationStateHandler(QScriptValue callback, AnimVariantMap parameters, AnimVariantResultHandler resultHandler) {
745+void ScriptEngine::callAnimationStateHandler(QScriptValue callback, AnimVariantMap parameters, QStringList names, bool useNames, AnimVariantResultHandler resultHandler) {
745746 if (QThread::currentThread() != thread()) {
746747 #ifdef THREAD_DEBUGGING
747748 qDebug() << "*** WARNING *** ScriptEngine::callAnimationStateHandler() called on wrong thread [" << QThread::currentThread() << "], invoking on correct thread [" << thread() << "] name:" << name;
@@ -749,14 +750,16 @@ void ScriptEngine::callAnimationStateHandler(QScriptValue callback, AnimVariantM · 1 unmodified line
749750 QMetaObject::invokeMethod(this, "callAnimationStateHandler",
750751 Q_ARG(QScriptValue, callback),
751752 Q_ARG(AnimVariantMap, parameters),
753+ Q_ARG(QStringList, names),
754+ Q_ARG(bool, useNames),
752755 Q_ARG(AnimVariantResultHandler, resultHandler));
753756 return;
754757 }
755− QScriptValue javascriptParametgers = parameters.animVariantMapToScriptValue(this);
758+ QScriptValue javascriptParametgers = parameters.animVariantMapToScriptValue(this, names, useNames);
756759 QScriptValueList callingArguments;
757760 callingArguments << javascriptParametgers;
758761 QScriptValue result = callback.call(QScriptValue(), callingArguments);
759− resultHandler(callback, result);
762+ resultHandler(result);
760763 }
761764
762765 void ScriptEngine::timerFired() {