X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcorenetwork.h;h=0a07af94dd809b925f88f577a0ccafd3d3b4a8e1;hb=790d5d9d239a59c8e182bcb1c1ae30810cf105b0;hp=8303b252be59c6cdd37bf9b9ca03a66ed2d1afae;hpb=841df8c7cc71ff1b8099d49296c8e997c92bdd60;p=quassel.git diff --git a/src/core/corenetwork.h b/src/core/corenetwork.h index 8303b252..0a07af94 100644 --- a/src/core/corenetwork.h +++ b/src/core/corenetwork.h @@ -75,7 +75,7 @@ public: inline QString channelKey(const QString &channel) const { return _channelKeys.value(channel.toLower(), QString()); } - inline bool isAutoWhoInProgress(const QString &channel) const { return _autoWhoInProgress.value(channel.toLower(), 0); } + inline bool isAutoWhoInProgress(const QString &channel) const { return _autoWhoPending.value(channel.toLower(), 0); } inline UserId userId() const { return _coreSession->user(); } @@ -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() { _pingCount = 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(); @@ -173,10 +177,13 @@ private: int _lastUsedServerIndex; QTimer _pingTimer; + uint _lastPingTime; + uint _maxPingCount; + uint _pingCount; bool _autoWhoEnabled; QStringList _autoWhoQueue; - QHash _autoWhoInProgress; + QHash _autoWhoPending; int _autoWhoInterval; int _autoWhoNickLimit; int _autoWhoDelay;