Added 'overloaded' member ScriptFunctionWrapper::callWith()

This commit is contained in:
Micke Prag 2011-01-20 16:35:08 +00:00
parent 9b299d8ea6
commit 81376f3a17
2 changed files with 21 additions and 4 deletions

View file

@ -1,5 +1,9 @@
#include "scriptfunctionwrapper.h"
#include <QScriptContext>
#include <QScriptEngine>
#include <QDebug>
class ScriptFunctionWrapper::PrivateData {
public:
QScriptValue object;
@ -18,6 +22,18 @@ ScriptFunctionWrapper::~ScriptFunctionWrapper() {
delete d;
}
QVariant ScriptFunctionWrapper::call() {
return d->object.property(d->name).call().toVariant();
QScriptValue ScriptFunctionWrapper::call() {
return d->object.property(d->name).call();
}
QScriptValue ScriptFunctionWrapper::callWith(const QScriptValue &val) {
qDebug() << "Call called" << d->name;
QScriptEngine *eng = val.engine();
if (!eng) {
qDebug() << "We cannot access the script-engine, fail!";
return QScriptValue();
}
QScriptContext *ctx = eng->currentContext();
return d->object.property(d->name).call(QScriptValue(), ctx->argumentsObject());
}

View file

@ -3,7 +3,6 @@
#include <QObject>
#include <QScriptValue>
#include <QVariant>
class ScriptFunctionWrapper : public QObject
{
@ -16,7 +15,9 @@ signals:
void titleChanged();
public slots:
QVariant call();
QScriptValue call();
QScriptValue callWith(const QScriptValue &val);
private:
class PrivateData;