From 75e9eee3a9b4d837ca48b5a59ed78e3432b01136 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Tue, 6 Aug 2024 22:00:27 +0200 Subject: [PATCH] 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 --- src/models/messageeventmodel.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/models/messageeventmodel.cpp b/src/models/messageeventmodel.cpp index ed98d426c..ab50939ae 100644 --- a/src/models/messageeventmodel.cpp +++ b/src/models/messageeventmodel.cpp @@ -444,8 +444,8 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const } if (role == ContentModelRole) { - if (m_contentModels.contains(evt.id())) { - return QVariant::fromValue(m_contentModels.at(evt.id()).get()); + if (m_contentModels.contains(evt.id().isEmpty() ? evt.transactionId() : evt.id())) { + return QVariant::fromValue(m_contentModels.at(evt.id().isEmpty() ? evt.transactionId() : evt.id()).get()); } return {}; } @@ -621,6 +621,9 @@ void MessageEventModel::createEventObjects(const Quotient::RoomEvent *event) auto eventId = event->id(); 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 // be the local member. if (senderId.isEmpty()) {