diff options
author | Warwick Allison <warwick.allison@nokia.com> | 2009-11-29 23:53:25 (GMT) |
---|---|---|
committer | Warwick Allison <warwick.allison@nokia.com> | 2009-11-29 23:53:25 (GMT) |
commit | 37cd2eb354e62bf8c3eba0b5edaebe082bf8b3ac (patch) | |
tree | b8a965ca72fbe4bd1dacafeacfb85855f5085fbb | |
parent | 1f8e66b71bc641a9e29f3b3157de2d393d911f23 (diff) | |
download | Qt-37cd2eb354e62bf8c3eba0b5edaebe082bf8b3ac.zip Qt-37cd2eb354e62bf8c3eba0b5edaebe082bf8b3ac.tar.gz Qt-37cd2eb354e62bf8c3eba0b5edaebe082bf8b3ac.tar.bz2 |
atob and btoa functions (as per JS window functions)
-rw-r--r-- | src/declarative/qml/qmlengine.cpp | 22 | ||||
-rw-r--r-- | src/declarative/qml/qmlengine_p.h | 2 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp index 0a00092..aa66c17 100644 --- a/src/declarative/qml/qmlengine.cpp +++ b/src/declarative/qml/qmlengine.cpp @@ -144,6 +144,8 @@ QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e) qtObject.setProperty(QLatin1String("playSound"), scriptEngine.newFunction(QmlEnginePrivate::playSound, 1)); qtObject.setProperty(QLatin1String("openUrlExternally"),scriptEngine.newFunction(desktopOpenUrl, 1)); qtObject.setProperty(QLatin1String("md5"),scriptEngine.newFunction(md5, 1)); + qtObject.setProperty(QLatin1String("btoa"),scriptEngine.newFunction(btoa, 1)); + qtObject.setProperty(QLatin1String("atob"),scriptEngine.newFunction(atob, 1)); //firebug/webkit compat QScriptValue consoleObject = scriptEngine.newObject(); @@ -818,6 +820,26 @@ QScriptValue QmlEnginePrivate::md5(QScriptContext *ctxt, QScriptEngine *) return QScriptValue(QLatin1String(result.toHex())); } +QScriptValue QmlEnginePrivate::btoa(QScriptContext *ctxt, QScriptEngine *) +{ + QByteArray data; + + if (ctxt->argumentCount() >= 1) + data = ctxt->argument(0).toString().toUtf8(); + + return QScriptValue(QLatin1String(data.toBase64())); +} + +QScriptValue QmlEnginePrivate::atob(QScriptContext *ctxt, QScriptEngine *) +{ + QByteArray data; + + if (ctxt->argumentCount() >= 1) + data = ctxt->argument(0).toString().toUtf8(); + + return QScriptValue(QLatin1String(QByteArray::fromBase64(data))); +} + QScriptValue QmlEnginePrivate::consoleLog(QScriptContext *ctxt, QScriptEngine *e) { if(ctxt->argumentCount() < 1) diff --git a/src/declarative/qml/qmlengine_p.h b/src/declarative/qml/qmlengine_p.h index c11a399..cabd0ad 100644 --- a/src/declarative/qml/qmlengine_p.h +++ b/src/declarative/qml/qmlengine_p.h @@ -269,6 +269,8 @@ public: static QScriptValue playSound(QScriptContext*, QScriptEngine*); static QScriptValue desktopOpenUrl(QScriptContext*, QScriptEngine*); static QScriptValue md5(QScriptContext*, QScriptEngine*); + static QScriptValue btoa(QScriptContext*, QScriptEngine*); + static QScriptValue atob(QScriptContext*, QScriptEngine*); static QScriptValue consoleLog(QScriptContext*, QScriptEngine*); static QScriptEngine *getScriptEngine(QmlEngine *e) { return &e->d_func()->scriptEngine; } |