+ backend->notify(notification);
+ return notificationId;
+}
+
+void QtUi::closeNotification(uint notificationId) {
+ QList<AbstractNotificationBackend::Notification>::iterator i = _notifications.begin();
+ while(i != _notifications.end()) {
+ if((*i).notificationId == notificationId) {
+ foreach(AbstractNotificationBackend *backend, _notificationBackends)
+ backend->close(notificationId);
+ i = _notifications.erase(i);
+ break;
+ } else ++i;
+ }
+}
+
+void QtUi::closeNotifications(BufferId bufferId) {
+ QList<AbstractNotificationBackend::Notification>::iterator i = _notifications.begin();
+ 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);
+ foreach(AbstractNotificationBackend *backend, _notificationBackends)
+ backend->close(notificationId);
+ _notifications.erase(i);
+ break;
+ } else ++i;
+ }
+ }
+
+ mainWindow()->forceActivated();