diff --git a/src/models/messagecontentmodel.cpp b/src/models/messagecontentmodel.cpp index 07c180074..67a53d277 100644 --- a/src/models/messagecontentmodel.cpp +++ b/src/models/messagecontentmodel.cpp @@ -63,7 +63,6 @@ void MessageContentModel::initializeModel() Quotient::connectUntil(m_room.get(), &NeoChatRoom::extraEventLoaded, this, [this](const QString &eventId) { if (m_room != nullptr) { if (eventId == m_eventId) { - intiializeEvent(eventId); updateReplyModel(); resetContent(); return true; @@ -169,7 +168,9 @@ void MessageContentModel::intiializeEvent(const Quotient::RoomEvent *event) if (senderId.isEmpty()) { senderId = m_room->localMember().id(); } - m_eventSenderObject = std::unique_ptr(new NeochatRoomMember(m_room, senderId)); + if (m_eventSenderObject == nullptr) { + m_eventSenderObject = std::unique_ptr(new NeochatRoomMember(m_room, senderId)); + } Q_EMIT eventUpdated(); } diff --git a/src/models/messagecontentmodel.h b/src/models/messagecontentmodel.h index c81a2f2fd..1e086a72b 100644 --- a/src/models/messagecontentmodel.h +++ b/src/models/messagecontentmodel.h @@ -117,7 +117,7 @@ private: QPointer m_room; QString m_eventId; QString m_eventSenderId; - std::unique_ptr m_eventSenderObject; + std::unique_ptr m_eventSenderObject = nullptr; Quotient::RoomEventPtr m_event; bool m_isPending; diff --git a/src/neochatroommember.cpp b/src/neochatroommember.cpp index b7591e889..e2c6245cc 100644 --- a/src/neochatroommember.cpp +++ b/src/neochatroommember.cpp @@ -9,6 +9,8 @@ NeochatRoomMember::NeochatRoomMember(NeoChatRoom *room, const QString &memberId) : m_room(room) , m_memberId(memberId) { + Q_ASSERT(!m_memberId.isEmpty()); + if (m_room != nullptr) { connect(m_room, &NeoChatRoom::memberNameUpdated, this, [this](Quotient::RoomMember member) { if (member.id() == m_memberId) { diff --git a/src/neochatroommember.h b/src/neochatroommember.h index 655ec74fa..91e315124 100644 --- a/src/neochatroommember.h +++ b/src/neochatroommember.h @@ -80,5 +80,5 @@ Q_SIGNALS: private: QPointer m_room; - const QString m_memberId; + const QString m_memberId = QString(); };