From 3da134b970a6f25a5e900bd2a55b03c5242378f0 Mon Sep 17 00:00:00 2001
From: Kevin Smith <git@kismith.co.uk>
Date: Sat, 14 Nov 2009 14:33:14 +0000
Subject: Reconnect automatically on error


diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp
index c4d34d8..2ae110b 100644
--- a/Swift/Controllers/MainController.cpp
+++ b/Swift/Controllers/MainController.cpp
@@ -184,6 +184,11 @@ void MainController::handleEventQueueLengthChange(int count) {
 	application_->getApplicationMessageDisplay()->setMessage(count == 0 ? "" : boost::lexical_cast<std::string>(count).c_str());
 }
 
+void MainController::reconnectAfterError() {
+	performLoginFromCachedCredentials();
+	sendPresence(queuedPresence_);
+}
+
 void MainController::handleChangeStatusRequest(StatusShow::Type show, const String &statusText) {
 	boost::shared_ptr<Presence> presence(new Presence());
 	if (show == StatusShow::None) {
@@ -287,6 +292,9 @@ void MainController::handleError(const ClientError& error) {
 		loginWindow_->setMessage(message);
 	}
 	logout();
+	if (rosterController_) {
+		//reconnectAfterError();
+	}
 }
 
 void MainController::handleCancelLoginRequest() {
diff --git a/Swift/Controllers/MainController.h b/Swift/Controllers/MainController.h
index db6a110..df6901d 100644
--- a/Swift/Controllers/MainController.h
+++ b/Swift/Controllers/MainController.h
@@ -77,6 +77,7 @@ namespace Swift {
 			virtual bool isMUC(const JID& muc) const;
 	
 			void performLoginFromCachedCredentials();
+			void reconnectAfterError();
 			void setManagersEnabled(bool enabled);
 			Client* client_;
 			ChatWindowFactory* chatWindowFactory_;
-- 
cgit v0.10.2-6-g49f6