X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fqtui.cpp;h=14597604a86df829faad242f1b683a09b54c5b48;hp=85e6b1a60268a692ca094798ea29337a62e2cac1;hb=2ab3040da0e42f4afdd282e34f0d8b089020a73d;hpb=8f88a7c2bccdca34b61e046160cd83ada7a16a7f diff --git a/src/qtui/qtui.cpp b/src/qtui/qtui.cpp index 85e6b1a6..14597604 100644 --- a/src/qtui/qtui.cpp +++ b/src/qtui/qtui.cpp @@ -20,21 +20,21 @@ #include "qtui.h" -#include - #include "actioncollection.h" #include "chatlinemodel.h" #include "mainwin.h" +#include "abstractnotificationbackend.h" #include "qtuimessageprocessor.h" #include "qtuistyle.h" +#include "types.h" #include "uisettings.h" #include "util.h" ActionCollection *QtUi::_actionCollection = 0; +QSet QtUi::_notificationBackends; QtUiStyle *QtUi::_style = 0; -QtUi::QtUi() : AbstractUi() -{ +QtUi::QtUi() : AbstractUi() { if(_style != 0) { qWarning() << "QtUi has been instantiated again!"; return; @@ -52,6 +52,7 @@ QtUi::QtUi() : AbstractUi() } QtUi::~QtUi() { + unregisterAllNotificationBackends(); delete _style; delete mainWin; } @@ -75,3 +76,22 @@ void QtUi::connectedToCore() { void QtUi::disconnectedFromCore() { mainWin->disconnectedFromCore(); } + +void QtUi::registerNotificationBackend(AbstractNotificationBackend *backend) { + if(!_notificationBackends.contains(backend)) { + _notificationBackends.insert(backend); + } +} + +void QtUi::unregisterNotificationBackend(AbstractNotificationBackend *backend) { + _notificationBackends.remove(backend); +} + +void QtUi::unregisterAllNotificationBackends() { + _notificationBackends.clear(); +} + +void QtUi::notify(BufferId id, const QString &sender, const QString &text) { + foreach(AbstractNotificationBackend *backend, _notificationBackends) + backend->notify(id, sender, text); +}