diff options
Diffstat (limited to 'saltoqd/notificationmonitor.cpp')
-rw-r--r-- | saltoqd/notificationmonitor.cpp | 20 |
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); |