summaryrefslogtreecommitdiff
path: root/src/notificationmonitor.cpp
diff options
context:
space:
mode:
authorJavier S. Pedro <dev.git@javispedro.com>2014-09-15 01:53:44 +0200
committerJavier S. Pedro <dev.git@javispedro.com>2014-09-15 01:53:44 +0200
commitd9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9 (patch)
tree8ba1186f98da2e5c06363c2dd44f65b5f6901bc7 /src/notificationmonitor.cpp
parent9af5d200411adf947fdc1876bc76ce22789dde00 (diff)
downloadsalmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.tar.gz
salmeta-d9f140ec45f91a8567b6d8e2ce69fe853ae8b3a9.zip
minimal notifications
Diffstat (limited to 'src/notificationmonitor.cpp')
-rw-r--r--src/notificationmonitor.cpp23
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);
+}