diff options
| author | Kevin Smith <git@kismith.co.uk> | 2010-07-23 14:47:48 (GMT) | 
|---|---|---|
| committer | Kevin Smith <git@kismith.co.uk> | 2010-07-23 15:01:33 (GMT) | 
| commit | 4cc96003c6702168da2faa955e3c771272211e32 (patch) | |
| tree | b15355b09676583b2fb468f616f3dd284c52eac9 /Swift/Controllers/Chat/ChatsManager.cpp | |
| parent | e00480d2f4326decd23ff7665fcb1af5e752c8ec (diff) | |
| download | swift-contrib-4cc96003c6702168da2faa955e3c771272211e32.zip swift-contrib-4cc96003c6702168da2faa955e3c771272211e32.tar.bz2 | |
Recognise when leaving a MUC (disconnect or kick).
Also cleans up some outstanding MUC issues.
Resolves: #288
Resolves: #392
Resolves: #279
Resolves: #114
Diffstat (limited to 'Swift/Controllers/Chat/ChatsManager.cpp')
| -rw-r--r-- | Swift/Controllers/Chat/ChatsManager.cpp | 10 | 
1 files changed, 8 insertions, 2 deletions
| diff --git a/Swift/Controllers/Chat/ChatsManager.cpp b/Swift/Controllers/Chat/ChatsManager.cpp index 2ed7051..921cc6f 100644 --- a/Swift/Controllers/Chat/ChatsManager.cpp +++ b/Swift/Controllers/Chat/ChatsManager.cpp @@ -139,12 +139,18 @@ void ChatsManager::setServerDiscoInfo(boost::shared_ptr<DiscoInfo> info) {  	}  } +/** + * This is to be called on connect/disconnect. + */   void ChatsManager::setEnabled(bool enabled) {  	foreach (JIDChatControllerPair controllerPair, chatControllers_) {  		controllerPair.second->setEnabled(enabled);  	}  	foreach (JIDMUCControllerPair controllerPair, mucControllers_) {  		controllerPair.second->setEnabled(enabled); +		if (enabled) { +			controllerPair.second->rejoin(); +		}  	}  } @@ -201,9 +207,9 @@ void ChatsManager::rebindControllerJID(const JID& from, const JID& to) {  void ChatsManager::handleJoinMUCRequest(const JID &muc, const boost::optional<String>& nickMaybe) {  	std::map<JID, MUCController*>::iterator it = mucControllers_.find(muc);  	if (it != mucControllers_.end()) { -		//FIXME: What's correct behaviour here? +		it->second->rejoin();  	} else { -		String nick = nickMaybe ? nickMaybe.get() : "Swift user"; +		String nick = nickMaybe ? nickMaybe.get() : jid_.getNode();  		MUCController* controller = new MUCController(jid_, muc, nick, stanzaChannel_, presenceSender_, iqRouter_, chatWindowFactory_, presenceOracle_, avatarManager_, uiEventStream_, false, timerFactory_, eventController_);  		mucControllers_[muc] = controller;  		controller->setAvailableServerFeatures(serverDiscoInfo_); | 
 Swift
 Swift