qWarning() << "Invalid identity configures, ignoring connect request!";
return;
}
+
+ // cleaning up old quit reason
+ _quitReason.clear();
+
// use a random server?
if(useRandomServer()) {
_lastUsedServerIndex = qrand() % serverList().size();
socketDisconnected();
} else {
// quit gracefully if it's user requested quit
- userInputHandler()->issueQuit(reason);
+ if(reason.isEmpty() && identityPtr())
+ _quitReason = identityPtr()->quitReason();
+ else
+ _quitReason = reason;
+ userInputHandler()->issueQuit(_quitReason);
// the irc server has 10 seconds to close the socket
_socketCloseTimer.start(10000);
}
IrcUser *me_ = me();
if(me_) {
foreach(QString channel, me_->channels())
- emit displayMsg(Message::Quit, BufferInfo::ChannelBuffer, channel, "", me_->hostmask());
+ emit displayMsg(Message::Quit, BufferInfo::ChannelBuffer, channel, _quitReason, me_->hostmask());
}
setConnected(false);