Support inviting people from UserDetailDialog

This commit is contained in:
Wang Zichong
2022-12-27 17:54:17 +08:00
parent 67f88416f1
commit 3912b8e096
2 changed files with 17 additions and 2 deletions

View File

@@ -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");

View File

@@ -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)