diff --git a/src/chat/chat-message/chat-message-p.h b/src/chat/chat-message/chat-message-p.h index 730270265..fb3a15d0b 100644 --- a/src/chat/chat-message/chat-message-p.h +++ b/src/chat/chat-message/chat-message-p.h @@ -138,6 +138,9 @@ public: LinphoneContent *getFileTransferInformation () const; void setFileTransferInformation (const LinphoneContent *content); + + void addContent (Content &content); + void removeContent (const Content &content); bool downloadFile (); diff --git a/src/chat/chat-message/chat-message.cpp b/src/chat/chat-message/chat-message.cpp index dd6fa43f9..e5d1a8db6 100644 --- a/src/chat/chat-message/chat-message.cpp +++ b/src/chat/chat-message/chat-message.cpp @@ -371,6 +371,14 @@ bool ChatMessagePrivate::downloadFile () { return false; } +void ChatMessagePrivate::addContent (Content &content) { + getContents().push_back(&content); +} + +void ChatMessagePrivate::removeContent (const Content &content) { + getContents().remove(&const_cast(content)); +} + void ChatMessagePrivate::loadFileTransferUrlFromBodyToContent() { L_Q(); int errorCode = 0; @@ -718,7 +726,7 @@ void ChatMessagePrivate::send () { if (content->getContentType() == ContentType::FileTransfer) { FileTransferContent *fileTransferContent = (FileTransferContent *)content; it = contents.erase(it); - q->addContent(*fileTransferContent->getFileContent()); + addContent(*fileTransferContent->getFileContent()); delete fileTransferContent; } else { it++; @@ -962,13 +970,13 @@ const list &ChatMessage::getContents () const { void ChatMessage::addContent (Content &content) { L_D(); if (!d->isReadOnly) - d->getContents().push_back(&content); + d->addContent(content); } void ChatMessage::removeContent (const Content &content) { L_D(); if (!d->isReadOnly) - d->getContents().remove(&const_cast(content)); + d->removeContent(content); } const Content &ChatMessage::getInternalContent () const { diff --git a/src/chat/modifier/file-transfer-chat-message-modifier.cpp b/src/chat/modifier/file-transfer-chat-message-modifier.cpp index 41ffa66c8..f0293d67a 100644 --- a/src/chat/modifier/file-transfer-chat-message-modifier.cpp +++ b/src/chat/modifier/file-transfer-chat-message-modifier.cpp @@ -750,12 +750,12 @@ void FileTransferChatMessageModifier::onRecvEnd (belle_sip_user_body_handler_t * if (retval <= 0 && message->getState() != ChatMessage::State::FileTransferError) { // Remove the FileTransferContent from the message and store the FileContent FileContent *fileContent = currentFileContentToTransfer; - message->addContent(*fileContent); + message->getPrivate()->addContent(*fileContent); for (Content *content : message->getContents()) { if (content->getContentType() == ContentType::FileTransfer) { FileTransferContent *fileTransferContent = (FileTransferContent*)content; if (fileTransferContent->getFileContent() == fileContent) { - message->removeContent(*content); + message->getPrivate()->removeContent(*content); delete fileTransferContent; break; }