Commit 6a91163a authored by Ronan Abhamon's avatar Ronan Abhamon

unstable

parent 491ceedd
......@@ -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_
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment