Fix includes
[quassel.git] / src / core / coresession.h
index 4f341ee..8b4305e 100644 (file)
 class CoreBacklogManager;
 class CoreBufferSyncer;
 class CoreBufferViewManager;
+class CoreIdentity;
 class CoreIrcListHelper;
+class CoreNetwork;
 class CoreNetworkConfig;
-class Identity;
-class CoreIdentity;
+class CoreSessionEventProcessor;
+class CtcpParser;
+class EventManager;
+class EventStringifier;
+class IrcParser;
+class MessageEvent;
 class NetworkConnection;
-class CoreNetwork;
-struct NetworkInfo;
 class SignalProxy;
 
+struct NetworkInfo;
+
 class QScriptEngine;
 
 class CoreSession : public QObject {
@@ -65,6 +71,12 @@ public:
   const AliasManager &aliasManager() const { return _aliasManager; }
   AliasManager &aliasManager() { return _aliasManager; }
 
+  inline EventManager *eventManager() const { return _eventManager; }
+  inline EventStringifier *eventStringifier() const { return _eventStringifier; }
+  inline CoreSessionEventProcessor *sessionEventProcessor() const { return _sessionEventProcessor; }
+  inline CtcpParser *ctcpParser() const { return _ctcpParser; }
+  inline IrcParser *ircParser() const { return _ircParser; }
+
   inline CoreIrcListHelper *ircListHelper() const { return _ircListHelper; }
 
   inline CoreIgnoreListManager *ignoreListManager() { return &_ignoreListManager; }
@@ -109,6 +121,9 @@ public slots:
 
   QHash<QString, QString> persistentChannels(NetworkId) const;
 
+  //! Marks us away (or unaway) on all networks
+  void globalAway(const QString &msg = QString());
+
 signals:
   void initialized();
   void sessionState(const QVariant &);
@@ -133,6 +148,10 @@ signals:
 
   void networkCreated(NetworkId);
   void networkRemoved(NetworkId);
+  void networkDisconnected(NetworkId);
+
+protected:
+  virtual void customEvent(QEvent *event);
 
 private slots:
   void removeClient(QIODevice *dev);
@@ -151,13 +170,14 @@ private slots:
 
   void saveSessionState() const;
 
-protected:
-  virtual void customEvent(QEvent *event);
-
 private:
+  void processMessages();
+
   void loadSettings();
   void initScriptEngine();
-  void processMessages();
+
+  /// Hook for converting events to the old displayMsg() handlers
+  Q_INVOKABLE void processMessageEvent(MessageEvent *event);
 
   UserId _user;
 
@@ -175,6 +195,12 @@ private:
   CoreNetworkConfig *_networkConfig;
   CoreCoreInfo _coreInfo;
 
+  EventManager *_eventManager;
+  EventStringifier *_eventStringifier; // should eventually move into client
+  CoreSessionEventProcessor *_sessionEventProcessor;
+  CtcpParser *_ctcpParser;
+  IrcParser *_ircParser;
+
   QScriptEngine *scriptEngine;
 
   QList<RawMessage> _messageQueue;