X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcore%2Feventstringifier.h;h=fd7a2f58735b2532f83b5bf1e1e3863400089cf2;hp=e87ce65858b319bc50729561a57b39dadd3ded9d;hb=e49f87a6227dc6f82c17126a886cfc83ccf5e3ed;hpb=f9c4ee168a794add5261a7f1b6abb518f5987f8c diff --git a/src/core/eventstringifier.h b/src/core/eventstringifier.h index e87ce658..fd7a2f58 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,46 @@ 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); + + //! Handle generic numeric events + Q_INVOKABLE void processIrcEventNumeric(IrcEventNumeric *event); + Q_INVOKABLE void processIrcEventInvite(IrcEvent *event); + Q_INVOKABLE void earlyProcessIrcEventKick(IrcEvent *event); + Q_INVOKABLE void earlyProcessIrcEventNick(IrcEvent *event); + Q_INVOKABLE void earlyProcessIrcEventPart(IrcEvent *event); + Q_INVOKABLE void processIrcEventPong(IrcEvent *event); + Q_INVOKABLE void processIrcEventTopic(IrcEvent *event); + + Q_INVOKABLE void processIrcEvent301(IrcEvent *event); // RPL_AWAY + Q_INVOKABLE void processIrcEvent305(IrcEvent *event); // RPL_UNAWAY + Q_INVOKABLE void processIrcEvent306(IrcEvent *event); // RPL_NOWAWAY + + // Q_INVOKABLE void processIrcEvent(IrcEvent *event); + +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; };