X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fcoreconnection.h;h=6a3f37bf9343d6a3eb0267aa1d56d4014d3f2595;hp=2f9d7cc4734611418b680e434b9307e9ddfb2d0b;hb=f9f7524c41eb5668f3172cfddaa4d50badcd7fff;hpb=b099603e2e1297ec41a354dc949729e4f77d7bbd diff --git a/src/client/coreconnection.h b/src/client/coreconnection.h index 2f9d7cc4..6a3f37bf 100644 --- a/src/client/coreconnection.h +++ b/src/client/coreconnection.h @@ -24,6 +24,7 @@ // TODO: support system application proxy (new in Qt 4.6) #include "QPointer" +#include "QTimer" #ifdef HAVE_SSL # include @@ -31,6 +32,10 @@ # include #endif +#ifdef HAVE_KDE +# include +#endif + #include "coreaccount.h" #include "types.h" @@ -54,11 +59,12 @@ public: void init(); - inline ConnectionState state() const; inline bool isConnected() const; + inline ConnectionState state() const; inline CoreAccount currentAccount() const; bool isEncrypted() const; + bool isLocalConnection() const; inline int progressMinimum() const; inline int progressMaximum() const; @@ -72,7 +78,7 @@ public: public slots: bool connectToCore(AccountId = 0); void reconnectToCore(); - void disconnectFromCore(const QString &errorString = QString()); + void disconnectFromCore(); signals: void stateChanged(CoreConnection::ConnectionState); @@ -106,6 +112,7 @@ signals: private slots: void connectToCurrentAccount(); + void disconnectFromCore(const QString &errorString, bool wantReconnect = true); void socketStateChanged(QAbstractSocket::SocketState); void coreSocketError(QAbstractSocket::SocketError); @@ -123,7 +130,7 @@ private slots: void internalSessionStateReceived(const QVariant &packedState); void sessionStateReceived(const QVariantMap &state); - void resetConnection(); + void resetConnection(bool wantReconnect = false); void connectionReady(); void loginToCore(const QString &user, const QString &password, bool remember); // for config wizard @@ -147,15 +154,27 @@ private slots: void sslErrors(); #endif + void networkDetectionModeChanged(const QVariant &mode); + void pingTimeoutIntervalChanged(const QVariant &interval); + void reconnectIntervalChanged(const QVariant &interval); + void reconnectTimeout(); + +#ifdef HAVE_KDE + void solidNetworkStatusChanged(Solid::Networking::Status status); +#endif + private: CoreAccountModel *_model; CoreAccount _account; QVariantMap _coreMsgBuffer; - QPointer _socket; + QPointer _socket; quint32 _blockSize; ConnectionState _state; + QTimer _reconnectTimer; + bool _wantReconnect; + QSet _netsToSync; int _numNetsToSync; int _progressMinimum, _progressMaximum, _progressValue;