diff options
-rw-r--r-- | Swift/Controllers/ChatControllerBase.cpp | 1 | ||||
-rw-r--r-- | Swift/Controllers/MainController.cpp | 24 | ||||
-rw-r--r-- | Swift/Controllers/MainController.h | 3 |
3 files changed, 9 insertions, 19 deletions
diff --git a/Swift/Controllers/ChatControllerBase.cpp b/Swift/Controllers/ChatControllerBase.cpp index 7d11401..baa715b 100644 --- a/Swift/Controllers/ChatControllerBase.cpp +++ b/Swift/Controllers/ChatControllerBase.cpp @@ -16,6 +16,7 @@ ChatControllerBase::ChatControllerBase(const JID& self, StanzaChannel* stanzaCha chatWindow_ = chatWindowFactory_->createChatWindow(toJID); chatWindow_->onAllMessagesRead.connect(boost::bind(&ChatControllerBase::handleAllMessagesRead, this)); chatWindow_->onSendMessageRequest.connect(boost::bind(&ChatControllerBase::handleSendMessageRequest, this, _1)); + setEnabled(stanzaChannel->isAvailable() && iqRouter->isAvailable()); } ChatControllerBase::~ChatControllerBase() { diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index a8fec70..63c854f 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -168,7 +168,7 @@ void MainController::handleConnected() { initialPresence = boost::shared_ptr<Presence>(new Presence()); } initialPresence->addPayload(capsInfo_); - enableManagers(); + setManagersEnabled(true); sendPresence(initialPresence); } @@ -278,30 +278,20 @@ void MainController::signout() { } void MainController::logout() { - disableManagers(); + setManagersEnabled(false); } -void MainController::disableManagers() { +void MainController::setManagersEnabled(bool enabled) { foreach (JIDChatControllerPair controllerPair, chatControllers_) { - controllerPair.second->setEnabled(false); + //printf("Setting enabled on %d to %d\n", controllerPair.second, enabled); + controllerPair.second->setEnabled(enabled); } foreach (JIDMUCControllerPair controllerPair, mucControllers_) { - controllerPair.second->setEnabled(false); + controllerPair.second->setEnabled(enabled); } - rosterController_->setEnabled(false); + rosterController_->setEnabled(enabled); } -void MainController::enableManagers() { - foreach (JIDChatControllerPair controllerPair, chatControllers_) { - controllerPair.second->setEnabled(true); - } - foreach (JIDMUCControllerPair controllerPair, mucControllers_) { - controllerPair.second->setEnabled(true); - } - rosterController_->setEnabled(true); -} - - void MainController::handleChatRequest(const String &contact) { ChatController* controller = getChatController(JID(contact)); controller->showChatWindow(); diff --git a/Swift/Controllers/MainController.h b/Swift/Controllers/MainController.h index 3fbe9b4..a52ebba 100644 --- a/Swift/Controllers/MainController.h +++ b/Swift/Controllers/MainController.h @@ -74,8 +74,7 @@ namespace Swift { private: void performLoginFromCachedCredentials(); - void enableManagers(); - void disableManagers(); + void setManagersEnabled(bool enabled); Client* client_; ChatWindowFactory* chatWindowFactory_; MainWindowFactory* mainWindowFactory_; |