From d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9 Mon Sep 17 00:00:00 2001 From: "Javier S. Pedro" Date: Mon, 15 Sep 2014 01:53:44 +0200 Subject: minimal notifications --- src/notificationmonitor.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'src/notificationmonitor.cpp') diff --git a/src/notificationmonitor.cpp b/src/notificationmonitor.cpp index 50b2e3e..c937b02 100644 --- a/src/notificationmonitor.cpp +++ b/src/notificationmonitor.cpp @@ -1,7 +1,9 @@ #include +#include #include #include #include "notificationmonitor.h" +#include "notifications_adaptor.h" static NotificationMonitor *global_monitor = 0; @@ -12,6 +14,8 @@ NotificationMonitor::NotificationMonitor(QObject *parent) : QDBusConnectionInterface *dbus = bus.interface(); dbus->call("AddMatch", "interface='org.freedesktop.Notifications',member='Notify',type='method_call',eavesdrop='true'"); + new NotificationsAdaptor(this); + bus.registerObject("/org/freedesktop/Notifications", this); } NotificationMonitor::~NotificationMonitor() @@ -29,3 +33,22 @@ NotificationMonitor *NotificationMonitor::instance() } return global_monitor; } + +void NotificationMonitor::Notify(const QString &app_name, uint replaces_id, const QString &app_icon, const QString &summary, const QString &body, const QStringList &actions, const QVariantHash &hints, int expire_timeout) +{ + qDebug() << "Got notification" << app_name << app_icon << summary << body; + QIcon icon; + + if (app_icon.startsWith("/")) { + icon = QIcon(app_icon); + } else if (app_icon.startsWith("file:")) { + QUrl url(app_icon); + icon = QIcon(url.toLocalFile()); + } else { + icon = QIcon::fromTheme(app_icon); + } + + qDebug() << "Icon:" << icon.availableSizes(); + + emit incomingNotification(app_name, icon, summary, body); +} -- cgit v1.2.3