History

Merge pull request #6326 from imgntn/entity_params

Add Ability to Pass Parameters When Calling Methods on Entities

Eric Levin committed 11 years ago

Commit 7700e672 parents 4b684c0 cf86d277 files · +99 −9Browse files

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

Unified · Split

libraries/script-engine/src/ScriptEngine.cpp+5−3
@@ -18,6 +18,7 @@ · 17 unmodified lines
1818 #include <QtNetwork/QNetworkReply>
1919 #include <QtScript/QScriptEngine>
2020 #include <QtScript/QScriptValue>
21+#include <QtCore/QStringList>
2122
2223 #include <AudioConstants.h>
2324 #include <AudioEffectOptions.h>
@@ -1170,8 +1171,7 @@ void ScriptEngine::refreshFileScript(const EntityItemID& entityID) { · 1146 unmodified lines
11701171 recurseGuard = false;
11711172 }
11721173
1173−
1174−void ScriptEngine::callEntityScriptMethod(const EntityItemID& entityID, const QString& methodName) {
1174+void ScriptEngine::callEntityScriptMethod(const EntityItemID& entityID, const QString& methodName, const QStringList& params) {
11751175 if (QThread::currentThread() != thread()) {
11761176 #ifdef THREAD_DEBUGGING
11771177 qDebug() << "*** WARNING *** ScriptEngine::callEntityScriptMethod() called on wrong thread [" << QThread::currentThread() << "], invoking on correct thread [" << thread() << "] "
@@ -1180,7 +1180,8 @@ void ScriptEngine::callEntityScriptMethod(const EntityItemID& entityID, const QS · 2 unmodified lines
11801180
11811181 QMetaObject::invokeMethod(this, "callEntityScriptMethod",
11821182 Q_ARG(const EntityItemID&, entityID),
1183− Q_ARG(const QString&, methodName));
1183+ Q_ARG(const QString&, methodName),
1184+ Q_ARG(const QStringList&, params));
11841185 return;
11851186 }
11861187 #ifdef THREAD_DEBUGGING
@@ -1195,6 +1196,7 @@ void ScriptEngine::callEntityScriptMethod(const EntityItemID& entityID, const QS · 8 unmodified lines
11951196 if (entityScript.property(methodName).isFunction()) {
11961197 QScriptValueList args;
11971198 args << entityID.toScriptValue(this);
1199+ args << qScriptValueFromSequence(this, params);
11981200 entityScript.property(methodName).call(entityScript, args);
11991201 }
12001202