summaryrefslogtreecommitdiffstats
path: root/Swift
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2010-10-24 14:25:14 (GMT)
committerKevin Smith <git@kismith.co.uk>2010-10-24 14:26:15 (GMT)
commit9d3b9903fcf830599c1b46fd1725f4d1d197e966 (patch)
treed34bf9e7ebef1531a09386eff963f301334dbdf8 /Swift
parent77fbff68d5aa3a292a3cb2aae4fdaf7f5619116a (diff)
downloadswift-contrib-9d3b9903fcf830599c1b46fd1725f4d1d197e966.zip
swift-contrib-9d3b9903fcf830599c1b46fd1725f4d1d197e966.tar.bz2
Rejoin MUCs on reconnect.
Resolves: #625 Release-Notes: MUCs will once again be rejoined on reconnect.
Diffstat (limited to 'Swift')
-rw-r--r--Swift/Controllers/MainController.cpp14
-rw-r--r--Swift/Controllers/MainController.h2
2 files changed, 9 insertions, 7 deletions
diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp
index 26d29e7..614e2d2 100644
--- a/Swift/Controllers/MainController.cpp
+++ b/Swift/Controllers/MainController.cpp
@@ -296,9 +296,11 @@ void MainController::handleConnected() {
vcardManager_->requestOwnVCard();
- setManagersOnline(true);
- //Send presence last to catch all the incoming presences.
+ rosterController_->setEnabled(true);
+ /* Send presence later to catch all the incoming presences. */
sendPresence(statusTracker_->getNextPresence());
+ /* Enable chats last of all, so rejoining MUCs has the right sent presence */
+ chatsManager_->setOnline(true);
}
void MainController::handleEventQueueLengthChange(int count) {
@@ -511,15 +513,15 @@ void MainController::logout() {
rosterController_->getWindow()->setMyStatusText("");
myStatusLooksOnline_ = false;
}
- setManagersOnline(false);
+ setManagersOffline();
}
-void MainController::setManagersOnline(bool enabled) {
+void MainController::setManagersOffline() {
if (chatsManager_) {
- chatsManager_->setOnline(enabled);
+ chatsManager_->setOnline(false);
}
if (rosterController_) {
- rosterController_->setEnabled(enabled);
+ rosterController_->setEnabled(false);
}
}
diff --git a/Swift/Controllers/MainController.h b/Swift/Controllers/MainController.h
index 2f01fd2..868f966 100644
--- a/Swift/Controllers/MainController.h
+++ b/Swift/Controllers/MainController.h
@@ -115,7 +115,7 @@ namespace Swift {
void performLoginFromCachedCredentials();
void reconnectAfterError();
- void setManagersOnline(bool enabled);
+ void setManagersOffline();
void handleNotificationClicked(const JID& jid);
VCardStorage* getVCardStorageForProfile(const JID& jid);