Pass an empty NeochatRoomMember when not in the map

This commit is contained in:
James Graham
2024-07-26 16:16:08 +01:00
parent b3146034cf
commit e4fab6d9a9
3 changed files with 21 additions and 16 deletions

View File

@@ -388,6 +388,8 @@ void MessageEventModel::fetchMore(const QModelIndex &parent)
} }
} }
static NeochatRoomMember *emptyNeochatRoomMember = new NeochatRoomMember;
QVariant MessageEventModel::data(const QModelIndex &idx, int role) const QVariant MessageEventModel::data(const QModelIndex &idx, int role) const
{ {
if (!checkIndex(idx, QAbstractItemModel::CheckIndexOption::IndexIsValid)) { if (!checkIndex(idx, QAbstractItemModel::CheckIndexOption::IndexIsValid)) {
@@ -467,6 +469,10 @@ QVariant MessageEventModel::data(const QModelIndex &idx, int role) const
mId = evt.senderId(); mId = evt.senderId();
} }
if (!m_memberObjects.contains(mId)) {
return QVariant::fromValue<NeochatRoomMember *>(emptyNeochatRoomMember);
}
return QVariant::fromValue<NeochatRoomMember *>(m_memberObjects.at(mId).get()); return QVariant::fromValue<NeochatRoomMember *>(m_memberObjects.at(mId).get());
} }

View File

@@ -32,7 +32,7 @@ QString NeochatRoomMember::id() const
Quotient::Uri NeochatRoomMember::uri() const Quotient::Uri NeochatRoomMember::uri() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return {}; return {};
} }
@@ -41,7 +41,7 @@ Quotient::Uri NeochatRoomMember::uri() const
bool NeochatRoomMember::isLocalMember() const bool NeochatRoomMember::isLocalMember() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return false; return false;
} }
@@ -50,7 +50,7 @@ bool NeochatRoomMember::isLocalMember() const
Quotient::Membership NeochatRoomMember::membershipState() const Quotient::Membership NeochatRoomMember::membershipState() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return Quotient::Membership::Leave; return Quotient::Membership::Leave;
} }
@@ -59,7 +59,7 @@ Quotient::Membership NeochatRoomMember::membershipState() const
QString NeochatRoomMember::name() const QString NeochatRoomMember::name() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return id(); return id();
} }
@@ -68,7 +68,7 @@ QString NeochatRoomMember::name() const
QString NeochatRoomMember::displayName() const QString NeochatRoomMember::displayName() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return id(); return id();
} }
@@ -77,7 +77,7 @@ QString NeochatRoomMember::displayName() const
QString NeochatRoomMember::htmlSafeDisplayName() const QString NeochatRoomMember::htmlSafeDisplayName() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return id(); return id();
} }
@@ -86,7 +86,7 @@ QString NeochatRoomMember::htmlSafeDisplayName() const
QString NeochatRoomMember::fullName() const QString NeochatRoomMember::fullName() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return id(); return id();
} }
@@ -95,7 +95,7 @@ QString NeochatRoomMember::fullName() const
QString NeochatRoomMember::htmlSafeFullName() const QString NeochatRoomMember::htmlSafeFullName() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return id(); return id();
} }
@@ -104,7 +104,7 @@ QString NeochatRoomMember::htmlSafeFullName() const
QString NeochatRoomMember::disambiguatedName() const QString NeochatRoomMember::disambiguatedName() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return id(); return id();
} }
@@ -113,7 +113,7 @@ QString NeochatRoomMember::disambiguatedName() const
QString NeochatRoomMember::htmlSafeDisambiguatedName() const QString NeochatRoomMember::htmlSafeDisambiguatedName() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return id(); return id();
} }
@@ -122,7 +122,7 @@ QString NeochatRoomMember::htmlSafeDisambiguatedName() const
int NeochatRoomMember::hue() const int NeochatRoomMember::hue() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return 0; return 0;
} }
@@ -131,7 +131,7 @@ int NeochatRoomMember::hue() const
qreal NeochatRoomMember::hueF() const qreal NeochatRoomMember::hueF() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return 0.0; return 0.0;
} }
@@ -140,7 +140,7 @@ qreal NeochatRoomMember::hueF() const
QColor NeochatRoomMember::color() const QColor NeochatRoomMember::color() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return {}; return {};
} }
@@ -149,7 +149,7 @@ QColor NeochatRoomMember::color() const
QString NeochatRoomMember::avatarMediaId() const QString NeochatRoomMember::avatarMediaId() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return {}; return {};
} }
@@ -158,7 +158,7 @@ QString NeochatRoomMember::avatarMediaId() const
QUrl NeochatRoomMember::avatarUrl() const QUrl NeochatRoomMember::avatarUrl() const
{ {
if (m_room == nullptr) { if (m_room == nullptr || m_memberId.isEmpty()) {
return {}; return {};
} }

View File

@@ -54,7 +54,6 @@ class NeochatRoomMember : public QObject
public: public:
NeochatRoomMember() = default; NeochatRoomMember() = default;
explicit NeochatRoomMember(NeoChatRoom *room, const QString &memberId); explicit NeochatRoomMember(NeoChatRoom *room, const QString &memberId);
QString id() const; QString id() const;