diff --git a/src/networkpluginserver.cpp b/src/networkpluginserver.cpp index 94ea146bb7e276ed19cc7b7921c9973d8dc627e7..8ece5f56568bd9b7d7801147d4dd0689c8ccc4a7 100644 --- a/src/networkpluginserver.cpp +++ b/src/networkpluginserver.cpp @@ -243,7 +243,7 @@ void NetworkPluginServer::handleRoomChangedPayload(const std::string &data) { conv->setNickname(payload.nickname()); } -void NetworkPluginServer::handleConvMessagePayload(const std::string &data) { +void NetworkPluginServer::handleConvMessagePayload(const std::string &data, bool subject) { pbnetwork::ConversationMessage payload; // std::cout << "payload...\n"; if (payload.ParseFromString(data) == false) { @@ -256,7 +256,12 @@ void NetworkPluginServer::handleConvMessagePayload(const std::string &data) { return; boost::shared_ptr msg(new Swift::Message()); - msg->setBody(payload.message()); + if (subject) { + msg->setSubject(payload.message()); + } + else { + msg->setBody(payload.message()); + } NetworkConversation *conv = (NetworkConversation *) user->getConversationManager()->getConversation(payload.buddyname()); if (!conv) { @@ -306,6 +311,9 @@ void NetworkPluginServer::handleDataRead(boost::shared_ptr c, case pbnetwork::WrapperMessage_Type_TYPE_CONV_MESSAGE: handleConvMessagePayload(wrapper.payload()); break; + case pbnetwork::WrapperMessage_Type_TYPE_ROOM_SUBJECT_CHANGED: + handleConvMessagePayload(wrapper.payload(), true); + break; case pbnetwork::WrapperMessage_Type_TYPE_PONG: m_pongReceived = true; break;