Add button to reject invitation and ignore user

BUG: 474274
This commit is contained in:
Tobias Fella
2023-09-14 15:34:19 +00:00
parent 0e2275e415
commit 17ff5b4c56
4 changed files with 28 additions and 1 deletions

View File

@@ -1694,4 +1694,9 @@ void NeoChatRoom::loadReply(const QString &eventId, const QString &replyId)
});
}
User *NeoChatRoom::invitingUser() const
{
return connection()->user(currentState().get<RoomMemberEvent>(connection()->userId())->senderId());
}
#include "moc_neochatroom.cpp"

View File

@@ -794,6 +794,11 @@ public:
*/
Q_INVOKABLE void loadReply(const QString &eventId, const QString &replyId);
/**
* If we're invited to this room, the user that invited us. Undefined in other cases.
*/
Q_INVOKABLE Quotient::User *invitingUser() const;
private:
QSet<const Quotient::RoomEvent *> highlights;

View File

@@ -246,7 +246,7 @@ void NotificationsManager::postInviteNotification(NeoChatRoom *room, const QStri
notification->close();
RoomManager::instance().enterRoom(room);
});
notification->setActions({i18n("Accept Invitation"), i18n("Reject Invitation")});
notification->setActions({i18nc("@action:button The thing being accepted is an invitation to chat", "Accept"), i18nc("@action:button The thing being rejected is an invitation to chat", "Reject"), i18nc("@action:button The thing being rejected is an invitation to chat", "Reject and Ignore User")});
connect(notification, &KNotification::action1Activated, this, [room, notification]() {
if (!room) {
return;
@@ -261,6 +261,14 @@ void NotificationsManager::postInviteNotification(NeoChatRoom *room, const QStri
RoomManager::instance().leaveRoom(room);
notification->close();
});
connect(notification, &KNotification::action3Activated, this, [room, notification]() {
if (!room) {
return;
}
RoomManager::instance().leaveRoom(room);
room->connection()->addToIgnoredUsers(room->invitingUser());
notification->close();
});
connect(notification, &KNotification::closed, this, [this, room]() {
if (!room) {
return;

View File

@@ -16,6 +16,15 @@ Kirigami.PlaceholderMessage {
text: i18n("Accept this invitation?")
RowLayout {
QQC2.Button {
Layout.alignment: Qt.AlignHCenter
text: i18nc("@action:button The thing being rejected is an invitation to chat", "Reject and ignore user")
onClicked: {
RoomManager.leaveRoom(root.currentRoom);
root.currentRoom.connection.addToIgnoredUsers(root.currentRoom.invitingUser());
}
}
QQC2.Button {
Layout.alignment : Qt.AlignHCenter
text: i18n("Reject")