Fixes #746 - Quassel unsets default modes set by server upon first connect
[quassel.git] / src / core / corenetwork.h
index bb2a07d..a6d3678 100644 (file)
@@ -39,6 +39,7 @@ class CoreIdentity;
 class IrcServerHandler;
 class CoreUserInputHandler;
 class CtcpHandler;
+class CoreIgnoreListManager;
 
 class CoreNetwork : public Network {
   SYNCABLE_OBJECT
@@ -56,6 +57,7 @@ public:
   inline IrcServerHandler *ircServerHandler() const { return _ircServerHandler; }
   inline CoreUserInputHandler *userInputHandler() const { return _userInputHandler; }
   inline CtcpHandler *ctcpHandler() const { return _ctcpHandler; }
+  inline CoreIgnoreListManager *ignoreListManager() { return coreSession()->ignoreListManager(); }
 
   //! Decode a string using the server (network) decoding.
   inline QString serverDecode(const QByteArray &string) const { return decodeServerString(string); }
@@ -112,6 +114,10 @@ public slots:
 
   bool setAutoWhoDone(const QString &channel);
 
+  void updateIssuedModes(const QString &requestedModes);
+  void updatePersistentModes(QString addModes, QString removeModes);
+  void resetPersistentModes();
+
   Server usedServer() const;
 
   inline void resetPingTimeout() { _pingCount = 0; }
@@ -201,6 +207,8 @@ private:
   int _burstSize;           // size of the token bucket
   int _tokenBucket;         // the virtual bucket that holds the tokens
   QList<QByteArray> _msgQueue;
+
+  QString _requestedUserModes; // 2 strings separated by a '-' character. first part are requested modes to add, the second to remove
 };
 
 #endif //CORENETWORK_H