diff --git a/src/conversationmanager.cpp b/src/conversationmanager.cpp index 2f422ff387b11e6637f6dd9eaea8b07fb7d11f3a..bc08d7a7856c11ab3408aa29b194fd529e1d9f84 100644 --- a/src/conversationmanager.cpp +++ b/src/conversationmanager.cpp @@ -62,6 +62,15 @@ void ConversationManager::removeConversation(Conversation *conv) { m_convs.erase(conv->getLegacyName()); } +void ConversationManager::resetResources() { + for (std::map::const_iterator it = m_convs.begin(); it != m_convs.end(); it++) { + if ((*it).second->isMUC()) { + continue; + } + (*it).second->setJID(m_user->getJID().toBare()); + } +} + void ConversationManager::handleMessageReceived(Swift::Message::ref message) { // std::string name = message->getTo().getUnescapedNode(); // if (name.find_last_of("%") != std::string::npos) { // OK when commented @@ -84,10 +93,13 @@ void ConversationManager::handleMessageReceived(Swift::Message::ref message) { if (!m_convs[name]) { m_convs[name] = m_component->getFactory()->createConversation(this, name); m_convs[name]->setRoom(room_name); + m_convs[name]->setNickname(name); } } + // update resource and send the message + m_convs[name]->setJID(message->getFrom()); m_convs[name]->sendMessage(message); } -} \ No newline at end of file +}