From 3912b8e0967fb5dc7ff025318034f55244a297af Mon Sep 17 00:00:00 2001 From: Wang Zichong Date: Tue, 27 Dec 2022 17:54:17 +0800 Subject: [PATCH] Support inviting people from UserDetailDialog --- src/neochatroom.cpp | 6 ++++-- src/qml/Dialog/UserDetailDialog.qml | 13 +++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/neochatroom.cpp b/src/neochatroom.cpp index 03c75a7d5..4f69ce58f 100644 --- a/src/neochatroom.cpp +++ b/src/neochatroom.cpp @@ -600,8 +600,10 @@ QString NeoChatRoom::eventToString(const RoomEvent &evt, Qt::TextFormat format, } else { return i18n("self-banned from the room"); } - case MembershipType::Knock: - return i18n("requested an invite"); + case MembershipType::Knock: { + QString reason(e.contentJson()["reason"_ls].toString().toHtmlEscaped()); + return reason.isEmpty() ? i18n("requested an invite") : i18n("requested an invite with reason: %1", reason); + } default:; } return i18n("made something unknown"); diff --git a/src/qml/Dialog/UserDetailDialog.qml b/src/qml/Dialog/UserDetailDialog.qml index 67dad9fac..211510b6d 100644 --- a/src/qml/Dialog/UserDetailDialog.qml +++ b/src/qml/Dialog/UserDetailDialog.qml @@ -97,6 +97,19 @@ Kirigami.OverlaySheet { } } } + Kirigami.BasicListItem { + visible: user !== room.localUser && room.canSendState("invite") && !room.containsUser(user.id) + + action: Kirigami.Action { + enabled: !room.isUserBanned(user.id) + text: i18n("Invite this user") + icon.name: "list-add-user" + onTriggered: { + room.inviteToRoom(user.id) + root.close() + } + } + } Kirigami.BasicListItem { visible: user !== room.localUser && room.canSendState("ban") && !room.isUserBanned(user.id)