summaryrefslogtreecommitdiff
path: root/saltoqd/notificationmonitor.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saltoqd/notificationmonitor.cpp')
-rw-r--r--saltoqd/notificationmonitor.cpp20
1 files changed, 19 insertions, 1 deletions
diff --git a/saltoqd/notificationmonitor.cpp b/saltoqd/notificationmonitor.cpp
index 900b742..107e165 100644
--- a/saltoqd/notificationmonitor.cpp
+++ b/saltoqd/notificationmonitor.cpp
@@ -268,7 +268,21 @@ void NotificationMonitor::processIncomingNotification(quint32 id, const QVariant
qDebug() << "Incoming notification" << id << content;
MonitoredNotification *n = _notifs.value(id, 0);
if (n) {
- // TODO emit changed signals for individual fields
+ QString s = content["summary"].toString();
+ if (n->_summary != s) {
+ n->_summary = s;
+ emit n->summaryChanged();
+ }
+ s = content["body"].toString();
+ if (n->_body != s) {
+ n->_body = s;
+ emit n->bodyChanged();
+ }
+ QDateTime dt = content["timestamp"].toDateTime();
+ if (dt.isValid() && n->_timestamp != dt) {
+ n->_timestamp = dt;
+ emit n->timestampChanged();
+ }
} else {
n = new MonitoredNotification(this);
n->_id = id;
@@ -277,6 +291,10 @@ void NotificationMonitor::processIncomingNotification(quint32 id, const QVariant
n->_body = content["body"].toString();
n->_timestamp = content["timestamp"].toDateTime();
+ if (!n->_timestamp.isValid()) {
+ n->_timestamp = QDateTime::currentDateTime();
+ }
+
_notifs.insert(id, n);
emit notification(n);