X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fnetworkconnection.cpp;h=93568b040b3b2530437bc10f8618857423736e19;hb=f2c9c9f60421892c011f6f11e5b5d7990394d7ac;hp=84eabeec6ca1d175114cbdacff4d3c2cafa65453;hpb=3ed7d3bb6e9123ff0aa77023b264a39d1f63bd90;p=quassel.git diff --git a/src/core/networkconnection.cpp b/src/core/networkconnection.cpp index 84eabeec..93568b04 100644 --- a/src/core/networkconnection.cpp +++ b/src/core/networkconnection.cpp @@ -245,15 +245,17 @@ void NetworkConnection::sendPerform() { } void NetworkConnection::disconnectFromIrc(bool requested) { - if(requested) { - _autoReconnectTimer.stop(); - _autoReconnectCount = 0; - } + _autoReconnectTimer.stop(); + _autoReconnectCount = 0; displayMsg(Message::Server, BufferInfo::StatusBuffer, "", tr("Disconnecting.")); if(socket.state() < QAbstractSocket::ConnectedState) { setConnectionState(Network::Disconnected); socketDisconnected(); } else socket.disconnectFromHost(); + + if(requested) { + emit quitRequested(networkId()); + } } void NetworkConnection::socketHasData() { @@ -314,8 +316,7 @@ void NetworkConnection::socketDisconnected() { _whoTimer.stop(); network()->setConnected(false); emit disconnected(networkId()); - if(_autoReconnectCount == 0) emit quitRequested(networkId()); - else { + if(_autoReconnectCount != 0) { setConnectionState(Network::Reconnecting); if(_autoReconnectCount == network()->autoReconnectRetries()) doAutoReconnect(); // first try is immediate else _autoReconnectTimer.start();