diff --git a/src/models/messageeventmodel.cpp b/src/models/messageeventmodel.cpp index 57fc0e9c5..2ed17187a 100644 --- a/src/models/messageeventmodel.cpp +++ b/src/models/messageeventmodel.cpp @@ -388,6 +388,8 @@ void MessageEventModel::fetchMore(const QModelIndex &parent) } } +static NeochatRoomMember *emptyNeochatRoomMember = new NeochatRoomMember; + QVariant MessageEventModel::data(const QModelIndex &idx, int role) const { if (!checkIndex(idx, QAbstractItemModel::CheckIndexOption::IndexIsValid)) { @@ -467,6 +469,10 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const mId = evt.senderId(); } + if (!m_memberObjects.contains(mId)) { + return QVariant::fromValue(emptyNeochatRoomMember); + } + return QVariant::fromValue(m_memberObjects.at(mId).get()); } diff --git a/src/neochatroommember.cpp b/src/neochatroommember.cpp index e2c6245cc..7b88aadaf 100644 --- a/src/neochatroommember.cpp +++ b/src/neochatroommember.cpp @@ -32,7 +32,7 @@ QString NeochatRoomMember::id() const Quotient::Uri NeochatRoomMember::uri() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return {}; } @@ -41,7 +41,7 @@ Quotient::Uri NeochatRoomMember::uri() const bool NeochatRoomMember::isLocalMember() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return false; } @@ -50,7 +50,7 @@ bool NeochatRoomMember::isLocalMember() const Quotient::Membership NeochatRoomMember::membershipState() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return Quotient::Membership::Leave; } @@ -59,7 +59,7 @@ Quotient::Membership NeochatRoomMember::membershipState() const QString NeochatRoomMember::name() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return id(); } @@ -68,7 +68,7 @@ QString NeochatRoomMember::name() const QString NeochatRoomMember::displayName() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return id(); } @@ -77,7 +77,7 @@ QString NeochatRoomMember::displayName() const QString NeochatRoomMember::htmlSafeDisplayName() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return id(); } @@ -86,7 +86,7 @@ QString NeochatRoomMember::htmlSafeDisplayName() const QString NeochatRoomMember::fullName() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return id(); } @@ -95,7 +95,7 @@ QString NeochatRoomMember::fullName() const QString NeochatRoomMember::htmlSafeFullName() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return id(); } @@ -104,7 +104,7 @@ QString NeochatRoomMember::htmlSafeFullName() const QString NeochatRoomMember::disambiguatedName() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return id(); } @@ -113,7 +113,7 @@ QString NeochatRoomMember::disambiguatedName() const QString NeochatRoomMember::htmlSafeDisambiguatedName() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return id(); } @@ -122,7 +122,7 @@ QString NeochatRoomMember::htmlSafeDisambiguatedName() const int NeochatRoomMember::hue() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return 0; } @@ -131,7 +131,7 @@ int NeochatRoomMember::hue() const qreal NeochatRoomMember::hueF() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return 0.0; } @@ -140,7 +140,7 @@ qreal NeochatRoomMember::hueF() const QColor NeochatRoomMember::color() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return {}; } @@ -149,7 +149,7 @@ QColor NeochatRoomMember::color() const QString NeochatRoomMember::avatarMediaId() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return {}; } @@ -158,7 +158,7 @@ QString NeochatRoomMember::avatarMediaId() const QUrl NeochatRoomMember::avatarUrl() const { - if (m_room == nullptr) { + if (m_room == nullptr || m_memberId.isEmpty()) { return {}; } diff --git a/src/neochatroommember.h b/src/neochatroommember.h index 91e315124..afb34a83a 100644 --- a/src/neochatroommember.h +++ b/src/neochatroommember.h @@ -54,7 +54,6 @@ class NeochatRoomMember : public QObject public: NeochatRoomMember() = default; - explicit NeochatRoomMember(NeoChatRoom *room, const QString &memberId); QString id() const;