Make sure the sender Id is intialised properly for pending events
This commit is contained in:
@@ -163,7 +163,13 @@ void MessageContentModel::intiializeEvent(const QString &eventId)
|
|||||||
void MessageContentModel::intiializeEvent(const Quotient::RoomEvent *event)
|
void MessageContentModel::intiializeEvent(const Quotient::RoomEvent *event)
|
||||||
{
|
{
|
||||||
m_event = loadEvent<RoomEvent>(event->fullJson());
|
m_event = loadEvent<RoomEvent>(event->fullJson());
|
||||||
m_eventSenderObject = std::unique_ptr<NeochatRoomMember>(new NeochatRoomMember(m_room, event->senderId()));
|
auto senderId = event->senderId();
|
||||||
|
// A pending event might not have a sender ID set yet but in that case it must
|
||||||
|
// be the local member.
|
||||||
|
if (senderId.isEmpty()) {
|
||||||
|
senderId = m_room->localMember().id();
|
||||||
|
}
|
||||||
|
m_eventSenderObject = std::unique_ptr<NeochatRoomMember>(new NeochatRoomMember(m_room, senderId));
|
||||||
Q_EMIT eventUpdated();
|
Q_EMIT eventUpdated();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -615,9 +615,15 @@ void MessageEventModel::createEventObjects(const Quotient::RoomEvent *event)
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto eventId = event->id();
|
auto eventId = event->id();
|
||||||
|
auto senderId = event->senderId();
|
||||||
|
// A pending event might not have a sender ID set yet but in that case it must
|
||||||
|
// be the local member.
|
||||||
|
if (senderId.isEmpty()) {
|
||||||
|
senderId = m_currentRoom->localMember().id();
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_memberObjects.contains(event->senderId())) {
|
if (!m_memberObjects.contains(senderId)) {
|
||||||
m_memberObjects[event->senderId()] = std::unique_ptr<NeochatRoomMember>(new NeochatRoomMember(m_currentRoom, event->senderId()));
|
m_memberObjects[senderId] = std::unique_ptr<NeochatRoomMember>(new NeochatRoomMember(m_currentRoom, senderId));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ReadMarkerModel handles updates to add and remove markers, we only need to
|
// ReadMarkerModel handles updates to add and remove markers, we only need to
|
||||||
|
|||||||
@@ -1767,6 +1767,11 @@ const RoomEvent *NeoChatRoom::getEvent(const QString &eventId) const
|
|||||||
return timelineIt->get();
|
return timelineIt->get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const auto pendingIt = findPendingEvent(eventId);
|
||||||
|
if (pendingIt != pendingEvents().end()) {
|
||||||
|
return pendingIt->event();
|
||||||
|
}
|
||||||
|
|
||||||
auto extraIt = std::find_if(m_extraEvents.begin(), m_extraEvents.end(), [eventId](const Quotient::event_ptr_tt<Quotient::RoomEvent> &event) {
|
auto extraIt = std::find_if(m_extraEvents.begin(), m_extraEvents.end(), [eventId](const Quotient::event_ptr_tt<Quotient::RoomEvent> &event) {
|
||||||
return event->id() == eventId;
|
return event->id() == eventId;
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user