taming and reenabling the irc timeout detection
[quassel.git] / src / core / corenetwork.h
index 6c6f978..42ad12d 100644 (file)
@@ -91,7 +91,7 @@ public slots:
   virtual void setAutoReconnectRetries(quint16);
 
   void connectToIrc(bool reconnecting = false);
-  void disconnectFromIrc(bool requested = true, const QString &reason = QString());
+  void disconnectFromIrc(bool requested = true, const QString &reason = QString(), bool withReconnect = false);
 
   void userInput(BufferInfo bufferInfo, QString msg);
   void putRawLine(QByteArray input);
@@ -106,6 +106,8 @@ public slots:
 
   Server usedServer() const;
 
+  inline void resetPingTimeout() { _lastPingTime = 0; }
+
 signals:
   void recvRawServerMsg(QString);
   void displayStatusMsg(QString);
@@ -132,6 +134,8 @@ private slots:
   void restoreUserModes();
   void doAutoReconnect();
   void sendPing();
+  void enablePingTimeout();
+  void disablePingTimeout();
   void sendAutoWho();
   void startAutoWhoCycle();
 
@@ -167,11 +171,13 @@ private:
    * it is needed to determine whether or not the connection needs to be
    * in the automatic session restore. */
   bool _quitRequested;
+  QString _quitReason;
 
   bool _previousConnectionAttemptFailed;
   int _lastUsedServerIndex;
 
   QTimer _pingTimer;
+  uint _lastPingTime;
 
   bool _autoWhoEnabled;
   QStringList _autoWhoQueue;