Added global include function to the script engine
This commit is contained in:
parent
2c45b2d9f5
commit
290fa41ab5
2 changed files with 19 additions and 0 deletions
|
@ -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();
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ public:
|
|||
signals:
|
||||
|
||||
public slots:
|
||||
void include(const QString &filename);
|
||||
int setInterval(const QScriptValue &expression, int delay);
|
||||
void clearInterval(int timerId);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue