mirror of
https://gitlab.linphone.org/BC/public/linphone-desktop.git
synced 2026-05-03 22:56:49 +00:00
unstable
This commit is contained in:
parent
491ceedda7
commit
6a91163a0d
2 changed files with 17 additions and 8 deletions
|
|
@ -14,6 +14,15 @@ using namespace std;
|
|||
// =============================================================================
|
||||
|
||||
class ChatModel::MessageHandlers : public linphone::ChatMessageListener {
|
||||
public:
|
||||
MessageHandlers (ChatModel *chat_model) : m_chat_model(chat_model) {}
|
||||
|
||||
~MessageHandlers () {
|
||||
qDebug() << "handlers";
|
||||
}
|
||||
|
||||
private:
|
||||
|
||||
void onFileTransferRecv (
|
||||
const shared_ptr<linphone::ChatMessage> &message,
|
||||
const shared_ptr<linphone::Content> &content,
|
||||
|
|
@ -41,19 +50,21 @@ class ChatModel::MessageHandlers : public linphone::ChatMessageListener {
|
|||
}
|
||||
|
||||
void onMsgStateChanged (const shared_ptr<linphone::ChatMessage> &message, linphone::ChatMessageState state) override {
|
||||
ChatModel *chat = static_cast<ChatModel *>(message->getUserData());
|
||||
ChatModel &chat = *m_chat_model;
|
||||
|
||||
auto it = find_if(chat->m_entries.begin(), chat->m_entries.end(), [&message](const ChatEntryData &pair) {
|
||||
auto it = find_if(chat.m_entries.begin(), chat.m_entries.end(), [&message](const ChatEntryData &pair) {
|
||||
return pair.second == message;
|
||||
});
|
||||
if (it == chat->m_entries.end())
|
||||
if (it == chat.m_entries.end())
|
||||
return;
|
||||
|
||||
(*it).first["state"] = state;
|
||||
int row = distance(chat->m_entries.begin(), it);
|
||||
int row = distance(chat.m_entries.begin(), it);
|
||||
|
||||
emit chat->dataChanged(chat->index(row, 0), chat->index(row, 0));
|
||||
emit chat.dataChanged(chat.index(row, 0), chat.index(row, 0));
|
||||
}
|
||||
|
||||
ChatModel *m_chat_model;
|
||||
};
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
|
|
@ -227,8 +238,7 @@ void ChatModel::removeAllEntries () {
|
|||
|
||||
void ChatModel::sendMessage (const QString &message) {
|
||||
shared_ptr<linphone::ChatMessage> _message = m_chat_room->createMessage(::Utils::qStringToLinphoneString(message));
|
||||
_message->setUserData(this);
|
||||
_message->setListener(m_message_handlers);
|
||||
_message->setListener(make_shared<MessageHandlers>(this));
|
||||
m_chat_room->sendChatMessage(_message);
|
||||
insertMessageAtEnd(_message);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,7 +96,6 @@ private:
|
|||
std::shared_ptr<linphone::ChatRoom> m_chat_room;
|
||||
|
||||
std::shared_ptr<CoreHandlers> m_core_handlers;
|
||||
std::shared_ptr<MessageHandlers> m_message_handlers;
|
||||
};
|
||||
|
||||
#endif // CHAT_MODEL_H_
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue