diff options
author | Javier S. Pedro <dev.git@javispedro.com> | 2014-09-15 01:53:44 +0200 |
---|---|---|
committer | Javier S. Pedro <dev.git@javispedro.com> | 2014-09-15 01:53:44 +0200 |
commit | d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9 (patch) | |
tree | 8ba1186f98da2e5c06363c2dd44f65b5f6901bc7 /src/notificationmonitor.cpp | |
parent | 9af5d200411adf947fdc1876bc76ce22789dde00 (diff) | |
download | salmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.tar.gz salmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.zip |
minimal notifications
Diffstat (limited to 'src/notificationmonitor.cpp')
-rw-r--r-- | src/notificationmonitor.cpp | 23 |
1 files changed, 23 insertions, 0 deletions
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 <QtCore/QDebug> +#include <QtGui/QIcon> #include <QtDBus/QDBusConnection> #include <QtDBus/QDBusConnectionInterface> #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); +} |