From 841df8c7cc71ff1b8099d49296c8e997c92bdd60 Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Wed, 11 Feb 2009 14:48:04 +0100 Subject: [PATCH] displaying own quit message --- src/core/corenetwork.cpp | 12 ++++++++++-- src/core/corenetwork.h | 1 + src/core/userinputhandler.cpp | 7 +------ 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/core/corenetwork.cpp b/src/core/corenetwork.cpp index 7d62b763..b9e82e44 100644 --- a/src/core/corenetwork.cpp +++ b/src/core/corenetwork.cpp @@ -137,6 +137,10 @@ void CoreNetwork::connectToIrc(bool reconnecting) { 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(); @@ -202,7 +206,11 @@ void CoreNetwork::disconnectFromIrc(bool requested, const QString &reason) { 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); } @@ -337,7 +345,7 @@ void CoreNetwork::socketDisconnected() { 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); diff --git a/src/core/corenetwork.h b/src/core/corenetwork.h index 6c6f9782..8303b252 100644 --- a/src/core/corenetwork.h +++ b/src/core/corenetwork.h @@ -167,6 +167,7 @@ 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; diff --git a/src/core/userinputhandler.cpp b/src/core/userinputhandler.cpp index 722c3fc4..e0449bef 100644 --- a/src/core/userinputhandler.cpp +++ b/src/core/userinputhandler.cpp @@ -321,12 +321,7 @@ void UserInputHandler::handleQuit(const BufferInfo &bufferInfo, const QString &m } void UserInputHandler::issueQuit(const QString &reason) { - QString quitReason; - if(reason.isEmpty()) - quitReason = network()->identityPtr()->quitReason(); - else - quitReason = reason; - emit putCmd("QUIT", serverEncode(quitReason)); + emit putCmd("QUIT", serverEncode(reason)); } void UserInputHandler::handleQuote(const BufferInfo &bufferInfo, const QString &msg) { -- 2.20.1