X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fqtui.cpp;h=14597604a86df829faad242f1b683a09b54c5b48;hb=2ab3040da0e42f4afdd282e34f0d8b089020a73d;hp=e0fac9c4aacdab840f8defbdfe96438f0f2cbd3e;hpb=a2bf6dec2ea5a72d15a3310f8a7abc11988228c4;p=quassel.git diff --git a/src/qtui/qtui.cpp b/src/qtui/qtui.cpp index e0fac9c4..14597604 100644 --- a/src/qtui/qtui.cpp +++ b/src/qtui/qtui.cpp @@ -20,18 +20,31 @@ #include "qtui.h" -#ifdef SPUTDEV -# include "chatlinemodel.h" -#endif +#include "actioncollection.h" +#include "chatlinemodel.h" #include "mainwin.h" -#include "chatline-old.h" +#include "abstractnotificationbackend.h" +#include "qtuimessageprocessor.h" +#include "qtuistyle.h" +#include "types.h" +#include "uisettings.h" +#include "util.h" -QtUiStyle *QtUi::_style; +ActionCollection *QtUi::_actionCollection = 0; +QSet QtUi::_notificationBackends; +QtUiStyle *QtUi::_style = 0; -QtUi::QtUi() - : AbstractUi() -{ - mainWin = new MainWin(this); +QtUi::QtUi() : AbstractUi() { + if(_style != 0) { + qWarning() << "QtUi has been instantiated again!"; + return; + } + _actionCollection = new ActionCollection(this); + + UiSettings uiSettings; + loadTranslation(uiSettings.value("Locale", QLocale::system()).value()); + + mainWin = new MainWin(); _style = new QtUiStyle; connect(mainWin, SIGNAL(connectToCore(const QVariantMap &)), this, SIGNAL(connectToCore(const QVariantMap &))); @@ -39,6 +52,7 @@ QtUi::QtUi() } QtUi::~QtUi() { + unregisterAllNotificationBackends(); delete _style; delete mainWin; } @@ -47,21 +61,12 @@ void QtUi::init() { mainWin->init(); } -QtUiStyle *QtUi::style() { - return _style; -} - MessageModel *QtUi::createMessageModel(QObject *parent) { -#ifndef SPUTDEV - Q_UNUSED(parent) - return 0; -#else - return new ChatlineModel(parent); -#endif + return new ChatLineModel(parent); } -AbstractUiMsg *QtUi::layoutMsg(const Message &msg) { - return new ChatLineOld(msg); +AbstractMessageProcessor *QtUi::createMessageProcessor(QObject *parent) { + return new QtUiMessageProcessor(parent); } void QtUi::connectedToCore() { @@ -71,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); +}