diff options
Diffstat (limited to 'Swift/Controllers/MainController.cpp')
-rw-r--r-- | Swift/Controllers/MainController.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index 1c83d1d..e20e9f8 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -161,6 +161,10 @@ void MainController::resetClient() { void MainController::handleConnected() { loginWindow_->setIsLoggingIn(false); + if (lastDisconnectError_) { + lastDisconnectError_->conclude(); + lastDisconnectError_ = boost::shared_ptr<ErrorEvent>(); + } //FIXME: this freshLogin thing is temporary so I can see what's what before I split into a seperate method. bool freshLogin = rosterController_ == NULL; if (freshLogin) { @@ -348,6 +352,10 @@ void MainController::handleError(const ClientError& error) { if (!rosterController_) { //hasn't been logged in yet signOut(); loginWindow_->setMessage(message); + } else { + message = "Disconnected from " + jid_.getDomain() + ": "; + lastDisconnectError_ = boost::shared_ptr<ErrorEvent>(new ErrorEvent(JID(jid_.getDomain()), message)); + eventController_->handleIncomingEvent(lastDisconnectError_); } logout(); if (rosterController_) { |