Show invite reason in the UI (hidden by default)
2 files changed, 17 insertions, 1 deletions
diff --git a/src/timeline/RoomlistModel.cpp b/src/timeline/RoomlistModel.cpp
index 82b3fc3d..827cbed1 100644
--- a/src/timeline/RoomlistModel.cpp
+++ b/src/timeline/RoomlistModel.cpp
@@ -723,6 +723,13 @@ RoomlistModel::getRoomPreviewById(QString roomid) const
if (invites.contains(roomid)) {
i = invites.value(roomid);
preview.isInvite_ = true;
+
+ auto member = cache::client()->getInviteMember(roomid.toStdString(),
+ http::client()->user_id().to_string());
+
+ if (member) {
+ preview.reason_ = QString::fromStdString(member->reason);
+ }
} else {
i = previewedRooms.value(roomid);
preview.isInvite_ = false;
@@ -769,6 +776,13 @@ RoomlistModel::setCurrentRoom(const QString &roomid)
if (invites.contains(roomid)) {
i = invites.value(roomid);
p.isInvite_ = true;
+
+ auto member = cache::client()->getInviteMember(roomid.toStdString(),
+ http::client()->user_id().to_string());
+
+ if (member) {
+ p.reason_ = QString::fromStdString(member->reason);
+ }
} else {
i = previewedRooms.value(roomid);
p.isInvite_ = false;
diff --git a/src/timeline/RoomlistModel.h b/src/timeline/RoomlistModel.h
index 0eb57547..0d52102d 100644
--- a/src/timeline/RoomlistModel.h
+++ b/src/timeline/RoomlistModel.h
@@ -31,6 +31,7 @@ class RoomPreview
Q_PROPERTY(QString roomName READ roomName CONSTANT)
Q_PROPERTY(QString roomTopic READ roomTopic CONSTANT)
Q_PROPERTY(QString roomAvatarUrl READ roomAvatarUrl CONSTANT)
+ Q_PROPERTY(QString reason READ reason CONSTANT)
Q_PROPERTY(bool isInvite READ isInvite CONSTANT)
public:
@@ -40,9 +41,10 @@ public:
QString roomName() const { return roomName_; }
QString roomTopic() const { return roomTopic_; }
QString roomAvatarUrl() const { return roomAvatarUrl_; }
+ QString reason() const { return reason_; }
bool isInvite() const { return isInvite_; }
- QString roomid_, roomName_, roomAvatarUrl_, roomTopic_;
+ QString roomid_, roomName_, roomAvatarUrl_, roomTopic_, reason_;
bool isInvite_ = false;
};
|