From 2a5359e73b5c12a164fd55634d14ed11f94fa171 Mon Sep 17 00:00:00 2001 From: Tobias Fella Date: Thu, 19 Sep 2024 16:00:20 +0200 Subject: [PATCH] Fix NeoChatRoom::directChatRemoteMember - Don't access member that's not there - Use NeoChatRoomMember instead of RoomMember BUG: 492733 --- 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 74e14a155..00179dc55 100644 --- a/src/neochatroom.cpp +++ b/src/neochatroom.cpp @@ -1731,9 +1731,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 695f5f03b..88b528e95 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. @@ -324,7 +325,7 @@ public: [[nodiscard]] QString avatarMediaId() const; - Quotient::RoomMember directChatRemoteMember() const; + NeochatRoomMember *directChatRemoteMember(); /** * @brief Whether this room has one or more parent spaces set.