Added global include function to the script engine

This commit is contained in:
Micke Prag 2010-12-21 09:25:35 +00:00
parent 2c45b2d9f5
commit 290fa41ab5
2 changed files with 19 additions and 0 deletions

View file

@ -2,6 +2,7 @@
#include "configurationdialog.h"
#include <QScriptEngine>
#include <QScriptValueIterator>
#include <QScriptContextInfo>
#include <QStringList>
#include <QTimerEvent>
@ -64,6 +65,23 @@ void ScriptEnvironment::scriptException(const QScriptValue & exception) {
d->scriptEngine.clearExceptions();
}
void ScriptEnvironment::include(const QString &filename) {
QScriptContextInfo info(d->scriptEngine.currentContext()->parentContext());
QFileInfo fileinfo(info.fileName());
QDir dir = fileinfo.dir();
QFile file(dir.filePath(filename));
file.open(QFile::ReadOnly);
QString fileContents = file.readAll();
file.close();
QScriptContext *ctx = d->scriptEngine.currentContext();
ctx->setActivationObject(ctx->parentContext()->activationObject());
d->scriptEngine.evaluate(fileContents, dir.filePath(filename));
}
void ScriptEnvironment::timerEvent(QTimerEvent *event) {
int id = event->timerId();

View file

@ -16,6 +16,7 @@ public:
signals:
public slots:
void include(const QString &filename);
int setInterval(const QScriptValue &expression, int delay);
void clearInterval(int timerId);