Add convenience functions for generating MessageEvents
authorManuel Nickschas <sputnick@quassel-irc.org>
Thu, 30 Sep 2010 07:36:05 +0000 (09:36 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Wed, 13 Oct 2010 23:06:32 +0000 (01:06 +0200)
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.

src/core/eventstringifier.cpp
src/core/eventstringifier.h

index 62ae9fd..35386e2 100644 (file)
 
 #include "eventstringifier.h"
 
 
 #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);
 }
 }
index e87ce65..070242b 100644 (file)
 #include <QObject>
 
 #include "ircevent.h"
 #include <QObject>
 
 #include "ircevent.h"
+#include "message.h"
+
+class CoreSession;
+class MessageEvent;
 
 //! Generates user-visible MessageEvents from incoming IrcEvents
 
 
 //! Generates user-visible MessageEvents from incoming IrcEvents
 
@@ -32,9 +36,30 @@ class EventStringifier : public QObject {
   Q_OBJECT
 
 public:
   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:
 private:
+  void sendMessageEvent(MessageEvent *event);
+
+  CoreSession *_coreSession;
+  bool _whois;
 
 };
 
 
 };