Fix pending events all showing the same text
The content models were stored in the hasmap under the same key, since they all don't have a valid event id yet. Store them under their transaction id instead. BUG: 491277
This commit is contained in:
@@ -444,8 +444,8 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (role == ContentModelRole) {
|
if (role == ContentModelRole) {
|
||||||
if (m_contentModels.contains(evt.id())) {
|
if (m_contentModels.contains(evt.id().isEmpty() ? evt.transactionId() : evt.id())) {
|
||||||
return QVariant::fromValue<MessageContentModel *>(m_contentModels.at(evt.id()).get());
|
return QVariant::fromValue<MessageContentModel *>(m_contentModels.at(evt.id().isEmpty() ? evt.transactionId() : evt.id()).get());
|
||||||
}
|
}
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
@@ -621,6 +621,9 @@ void MessageEventModel::createEventObjects(const Quotient::RoomEvent *event)
|
|||||||
|
|
||||||
auto eventId = event->id();
|
auto eventId = event->id();
|
||||||
auto senderId = event->senderId();
|
auto senderId = event->senderId();
|
||||||
|
if (eventId.isEmpty()) {
|
||||||
|
eventId = event->transactionId();
|
||||||
|
}
|
||||||
// A pending event might not have a sender ID set yet but in that case it must
|
// A pending event might not have a sender ID set yet but in that case it must
|
||||||
// be the local member.
|
// be the local member.
|
||||||
if (senderId.isEmpty()) {
|
if (senderId.isEmpty()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user