- while(i != _notifications.end()) {
- if((*i).notificationId == notificationId) {
- BufferId bufId = (*i).bufferId;
- if(bufId.isValid())
- Client::bufferModel()->switchToBuffer(bufId);
- _notifications.erase(i);
- break;
- } else ++i;
+ while (i != _notifications.end()) {
+ if (!bufferId.isValid() || i->bufferId == bufferId) {
+ foreach(AbstractNotificationBackend *backend, _notificationBackends)
+ backend->close(i->notificationId);
+ i = _notifications.erase(i);
+ }
+ else ++i;
+ }
+}
+
+
+const QList<AbstractNotificationBackend::Notification> &QtUi::activeNotifications()
+{
+ return _notifications;
+}
+
+
+void QtUi::notificationActivated(uint notificationId)
+{
+ if (notificationId != 0) {
+ QList<AbstractNotificationBackend::Notification>::iterator i = _notifications.begin();
+ while (i != _notifications.end()) {
+ if (i->notificationId == notificationId) {
+ BufferId bufId = i->bufferId;
+ if (bufId.isValid())
+ Client::bufferModel()->switchToBuffer(bufId);
+ break;
+ }
+ ++i;
+ }
+ }
+ closeNotification(notificationId);
+
+ activateMainWidget();
+}
+
+
+void QtUi::bufferMarkedAsRead(BufferId bufferId)
+{
+ if (bufferId.isValid()) {
+ closeNotifications(bufferId);