X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fqtui.cpp;h=14597604a86df829faad242f1b683a09b54c5b48;hb=2ab3040da0e42f4afdd282e34f0d8b089020a73d;hp=a65a47947ea1443a0c744feaa5a2d9a6ae5c11c2;hpb=cc7f376eb105f7bf931fb7f96c9601a7b3f69511;p=quassel.git diff --git a/src/qtui/qtui.cpp b/src/qtui/qtui.cpp index a65a4794..14597604 100644 --- a/src/qtui/qtui.cpp +++ b/src/qtui/qtui.cpp @@ -20,19 +20,31 @@ #include "qtui.h" -#ifdef SPUTDEV -# include "chatlinemodel.h" -#else -# include "chatline-old.h" -#endif +#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" -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 &))); @@ -40,6 +52,7 @@ QtUi::QtUi() } QtUi::~QtUi() { + unregisterAllNotificationBackends(); delete _style; delete mainWin; } @@ -48,25 +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) { -#ifndef SPUTDEV - return new ChatLineOld(msg); -#else - return 0; -#endif +AbstractMessageProcessor *QtUi::createMessageProcessor(QObject *parent) { + return new QtUiMessageProcessor(parent); } void QtUi::connectedToCore() { @@ -76,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); +}