diff options
author | Remko Tronçon <git@el-tramo.be> | 2011-04-10 09:34:01 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2011-04-18 19:11:41 (GMT) |
commit | ec3caf1179834f03c787f46cf44820885edbf4da (patch) | |
tree | 859b3d866bd2fac84e0a264756c7ec1d9dd0a678 /Swift/QtUI/QtDBUSURIHandler.cpp | |
parent | fdfe10dc9dde522e82d381e4641eb98063c4b47f (diff) | |
download | swift-contrib-ec3caf1179834f03c787f46cf44820885edbf4da.zip swift-contrib-ec3caf1179834f03c787f46cf44820885edbf4da.tar.bz2 |
Implemented DBUS URI handler.
Diffstat (limited to 'Swift/QtUI/QtDBUSURIHandler.cpp')
-rw-r--r-- | Swift/QtUI/QtDBUSURIHandler.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Swift/QtUI/QtDBUSURIHandler.cpp b/Swift/QtUI/QtDBUSURIHandler.cpp new file mode 100644 index 0000000..9b69ca6 --- /dev/null +++ b/Swift/QtUI/QtDBUSURIHandler.cpp @@ -0,0 +1,41 @@ +/* + * Copyright (c) 2011 Remko Tronçon + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#include "QtDBUSURIHandler.h" + +#include <QDBusAbstractAdaptor> +#include <QDBusConnection> + +#include "QtSwiftUtil.h" + +using namespace Swift; + +namespace { + class DBUSAdaptor: public QDBusAbstractAdaptor { + Q_OBJECT + Q_CLASSINFO("D-Bus Interface", "im.swift.Swift.URIHandler"); + public: + DBUSAdaptor(QtDBUSURIHandler* uriHandler) : QDBusAbstractAdaptor(uriHandler), uriHandler(uriHandler) { + } + + public slots: + void openURI(const QString& uri) { + uriHandler->onURI(Q2PSTRING(uri)); + } + + private: + QtDBUSURIHandler* uriHandler; + }; +} + +QtDBUSURIHandler::QtDBUSURIHandler() { + new DBUSAdaptor(this); + QDBusConnection connection = QDBusConnection::sessionBus(); + connection.registerService("im.swift.Swift.URIHandler"); + connection.registerObject("/", this); +} + +#include "QtDBUSURIHandler.moc" |