diff options
author | Kevin Smith <git@kismith.co.uk> | 2009-12-26 23:07:49 (GMT) |
---|---|---|
committer | Kevin Smith <git@kismith.co.uk> | 2009-12-26 23:07:49 (GMT) |
commit | 8aed9641dd20a3375f8a443189c7ca6243cf9fc6 (patch) | |
tree | a3ef33d52dcc1562db52e92ac730662459880bb6 /Swift/Controllers | |
parent | 4d89c280976426c9e29ee9235b296afc4d38a7cd (diff) | |
download | swift-8aed9641dd20a3375f8a443189c7ca6243cf9fc6.zip swift-8aed9641dd20a3375f8a443189c7ca6243cf9fc6.tar.bz2 |
Additional plumbing for chat rebinding.
Diffstat (limited to 'Swift/Controllers')
-rw-r--r-- | Swift/Controllers/ChatControllerBase.h | 1 | ||||
-rw-r--r-- | Swift/Controllers/ChatsManager.cpp | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/Swift/Controllers/ChatControllerBase.h b/Swift/Controllers/ChatControllerBase.h index 91b72a8..c780789 100644 --- a/Swift/Controllers/ChatControllerBase.h +++ b/Swift/Controllers/ChatControllerBase.h @@ -28,12 +28,13 @@ namespace Swift { virtual ~ChatControllerBase(); void showChatWindow(); void activateChatWindow(); void setAvailableServerFeatures(boost::shared_ptr<DiscoInfo> info); void handleIncomingMessage(boost::shared_ptr<MessageEvent> message); void setEnabled(bool enabled); + void setToJID(const JID& jid) {toJID_ = jid;}; protected: ChatControllerBase(const JID& self, StanzaChannel* stanzaChannel, IQRouter* iqRouter, ChatWindowFactory* chatWindowFactory, const JID &toJID, PresenceOracle* presenceOracle, AvatarManager* avatarManager); virtual void postSendMessage(const String&) {}; virtual String senderDisplayNameFromMessage(const JID& from) = 0; virtual bool isIncomingMessageFromMe(boost::shared_ptr<Message>) = 0; diff --git a/Swift/Controllers/ChatsManager.cpp b/Swift/Controllers/ChatsManager.cpp index 2863a14..e64967c 100644 --- a/Swift/Controllers/ChatsManager.cpp +++ b/Swift/Controllers/ChatsManager.cpp @@ -113,12 +113,13 @@ ChatController* ChatsManager::getChatController(const JID &contact) { return chatControllers_[contact]; } void ChatsManager::rebindControllerJID(const JID& from, const JID& to) { chatControllers_[to] = chatControllers_[from]; chatControllers_.erase(from); + chatControllers_[to]->setToJID(to); } void ChatsManager::handleJoinMUCRequest(const JID &muc, const String &nick) { mucControllers_[muc] = new MUCController(jid_, muc, nick, stanzaChannel_, presenceSender_, iqRouter_, chatWindowFactory_, treeWidgetFactory_, presenceOracle_, avatarManager_); mucControllers_[muc]->setAvailableServerFeatures(serverDiscoInfo_); } |