summaryrefslogtreecommitdiffstats
path: root/src/declarative/qml/qmlengine.cpp
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2009-08-27 08:12:33 (GMT)
committerAlan Alpert <alan.alpert@nokia.com>2009-08-27 08:16:28 (GMT)
commit1975260b35906a3cc0ca25f25b553e4572238e05 (patch)
treed8e9ea53d81642f916d6673bec80f9fae975274c /src/declarative/qml/qmlengine.cpp
parent2d384efd8e85515c9f3e7ed628cc3fd57b044a00 (diff)
downloadQt-1975260b35906a3cc0ca25f25b553e4572238e05.zip
Qt-1975260b35906a3cc0ca25f25b553e4572238e05.tar.gz
Qt-1975260b35906a3cc0ca25f25b553e4572238e05.tar.bz2
Expose some functionality through Qt.DesktopServices
Only openUrl() currently. Reviewed-by:Aaron Kennedy
Diffstat (limited to 'src/declarative/qml/qmlengine.cpp')
-rw-r--r--src/declarative/qml/qmlengine.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/declarative/qml/qmlengine.cpp b/src/declarative/qml/qmlengine.cpp
index ea00d65..cf90fe7 100644
--- a/src/declarative/qml/qmlengine.cpp
+++ b/src/declarative/qml/qmlengine.cpp
@@ -55,6 +55,7 @@
#include <QNetworkReply>
#include <QNetworkRequest>
#include <QNetworkAccessManager>
+#include <QDesktopServices>
#include <QTimer>
#include <QList>
#include <QPair>
@@ -95,6 +96,14 @@ struct StaticQtMetaObject : public QObject
{ return &static_cast<StaticQtMetaObject*> (0)->staticQtMetaObject; }
};
+QScriptValue desktopOpenUrl(QScriptContext *ctxt, QScriptEngine *e)
+{
+ if(!ctxt->argumentCount())
+ return e->newVariant(QVariant(false));
+ bool ret = QDesktopServices::openUrl(QUrl(ctxt->argument(0).toString()));
+ return e->newVariant(QVariant(ret));
+}
+
QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e)
: rootContext(0), currentBindContext(0), currentExpression(0),
isDebugging(false), contextClass(0), objectClass(0), valueTypeClass(0),
@@ -103,6 +112,9 @@ QmlEnginePrivate::QmlEnginePrivate(QmlEngine *e)
{
QScriptValue qtObject =
scriptEngine.newQMetaObject(StaticQtMetaObject::get());
+ QScriptValue desktopObject = scriptEngine.newObject();
+ desktopObject.setProperty(QLatin1String("openUrl"),scriptEngine.newFunction(desktopOpenUrl, 1));
+ qtObject.setProperty(QLatin1String("DesktopServices"), desktopObject);
scriptEngine.globalObject().setProperty(QLatin1String("Qt"), qtObject);
}