From: Manuel Nickschas Date: Thu, 30 Sep 2010 07:36:05 +0000 (+0200) Subject: Add convenience functions for generating MessageEvents X-Git-Tag: 0.8-beta1~107 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=03fa1b722e1875c69b26c8160408bd7e388989b3;hp=bf10e3ead6e50f90c6bb34074e39b938f9d35bc3 Add convenience functions for generating MessageEvents Note that this displayMsg() takes different params than the old one. Also, the order is now msg, sender, target instead of target, msg, sender, in order to avoid having to specify an empty target for most calls. --- diff --git a/src/core/eventstringifier.cpp b/src/core/eventstringifier.cpp index 62ae9fd9..35386e29 100644 --- a/src/core/eventstringifier.cpp +++ b/src/core/eventstringifier.cpp @@ -20,6 +20,28 @@ #include "eventstringifier.h" -EventStringifier::EventStringifier(QObject *parent) : QObject(parent) { +#include "coresession.h" +#include "messageevent.h" +EventStringifier::EventStringifier(CoreSession *parent) : QObject(parent), + _coreSession(parent), + _whois(false) +{ + +} + +void EventStringifier::displayMsg(NetworkEvent *event, Message::Type msgType, const QString &msg, const QString &sender, + const QString &target, Message::Flags msgFlags) { + MessageEvent *msgEvent = createMessageEvent(event, msgType, msg, sender, target, msgFlags); + sendMessageEvent(msgEvent); +} + +MessageEvent *EventStringifier::createMessageEvent(NetworkEvent *event, Message::Type msgType, const QString &msg, const QString &sender, + const QString &target, Message::Flags msgFlags) { + MessageEvent *msgEvent = new MessageEvent(msgType, event->network(), msg, sender, target, msgFlags); + return msgEvent; +} + +void EventStringifier::sendMessageEvent(MessageEvent *event) { qDebug() << event->text(); + coreSession()->eventManager()->sendEvent(event); } diff --git a/src/core/eventstringifier.h b/src/core/eventstringifier.h index e87ce658..070242b0 100644 --- a/src/core/eventstringifier.h +++ b/src/core/eventstringifier.h @@ -24,6 +24,10 @@ #include #include "ircevent.h" +#include "message.h" + +class CoreSession; +class MessageEvent; //! Generates user-visible MessageEvents from incoming IrcEvents @@ -32,9 +36,30 @@ class EventStringifier : public QObject { Q_OBJECT public: - EventStringifier(QObject *parent = 0); + explicit EventStringifier(CoreSession *parent); + + inline CoreSession *coreSession() const { return _coreSession; } + MessageEvent *createMessageEvent(NetworkEvent *event, + Message::Type msgType, + const QString &msg, + const QString &sender = QString(), + const QString &target = QString(), + Message::Flags msgFlags = Message::None); + +public slots: + //! Creates and sends a MessageEvent + void displayMsg(NetworkEvent *event, + Message::Type msgType, + const QString &msg, + const QString &sender = QString(), + const QString &target = QString(), + Message::Flags msgFlags = Message::None); private: + void sendMessageEvent(MessageEvent *event); + + CoreSession *_coreSession; + bool _whois; };