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 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; };