From 18e26c9e3ad6e27c340d9a09e1d7e3f0fb4aee73 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Sun, 22 Sep 2024 13:14:59 +0000 Subject: [PATCH] Fix NeoChatRoom::directChatRemoteMember - Don't access member that's not there - Use NeoChatRoomMember instead of RoomMember BUG: 492733 (cherry picked from commit 2a5359e73b5c12a164fd55634d14ed11f94fa171) Co-authored-by: Tobias Fella --- src/neochatroom.cpp | 8 ++++++-- src/neochatroom.h | 5 +++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/neochatroom.cpp b/src/neochatroom.cpp index 378a2222b..3c45bac58 100644 --- a/src/neochatroom.cpp +++ b/src/neochatroom.cpp @@ -1705,9 +1705,13 @@ int NeoChatRoom::maxRoomVersion() const return maxVersion; } -Quotient::RoomMember NeoChatRoom::directChatRemoteMember() const +NeochatRoomMember *NeoChatRoom::directChatRemoteMember() { - return directChatMembers()[0]; + if (directChatMembers().size() == 0) { + qWarning() << "No other member available in this room"; + return {}; + } + return new NeochatRoomMember(this, directChatMembers()[0].id()); } void NeoChatRoom::sendLocation(float lat, float lon, const QString &description) diff --git a/src/neochatroom.h b/src/neochatroom.h index 92481440a..779feb628 100644 --- a/src/neochatroom.h +++ b/src/neochatroom.h @@ -13,6 +13,7 @@ #include #include "enums/pushrule.h" +#include "neochatroommember.h" #include "pollhandler.h" namespace Quotient @@ -74,7 +75,7 @@ class NeoChatRoom : public Quotient::Room /** * @brief Get a RoomMember object for the other person in a direct chat. */ - Q_PROPERTY(Quotient::RoomMember directChatRemoteMember READ directChatRemoteMember CONSTANT) + Q_PROPERTY(NeochatRoomMember *directChatRemoteMember READ directChatRemoteMember CONSTANT) /** * @brief The Matrix IDs of this room's parents. @@ -319,7 +320,7 @@ public: [[nodiscard]] QString avatarMediaId() const; - Quotient::RoomMember directChatRemoteMember() const; + NeochatRoomMember *directChatRemoteMember(); /** * @brief Whether this room has one or more parent spaces set.