diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5caa0fa9c..a04c25111 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -288,6 +288,7 @@ qt_add_qml_module(neochat URI org.kde.neochat NO_PLUGIN qml/JoinRoomDialog.qml qml/ConfirmUrlDialog.qml qml/AccountSwitchDialog.qml + qml/ConfirmLeaveDialog.qml RESOURCES qml/confetti.png qml/glowdot.png diff --git a/src/qml/ConfirmLeaveDialog.qml b/src/qml/ConfirmLeaveDialog.qml new file mode 100644 index 000000000..306333c4c --- /dev/null +++ b/src/qml/ConfirmLeaveDialog.qml @@ -0,0 +1,32 @@ +// SPDX-FileCopyrightText: 2024 Tobias Fella +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick +import QtQuick.Controls as QQC2 + +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.formcard as FormCard + +import org.kde.neochat + +Kirigami.Dialog { + id: root + + required property NeoChatRoom room + + width: Kirigami.Units.gridUnit * 24 + + title: i18nc("@title:dialog", "Confirm Leaving Room") + + contentItem: FormCard.FormTextDelegate { + text: root.room ? i18nc("Do you really want to leave ?", "Do you really want to leave %1?", root.room.displayName) : "" + } + + customFooterActions: [ + Kirigami.Action { + text: i18nc("@action:button", "Leave Room") + icon.name: "arrow-left" + onTriggered: RoomManager.leaveRoom(root.room) + } + ] +} diff --git a/src/qml/RoomInformation.qml b/src/qml/RoomInformation.qml index 9d62939dd..7022c6afd 100644 --- a/src/qml/RoomInformation.qml +++ b/src/qml/RoomInformation.qml @@ -115,6 +115,20 @@ QQC2.ScrollView { Layout.fillWidth: true } + Delegates.RoundedItemDelegate { + id: leaveButton + icon.name: "arrow-left" + text: i18nc("@action:button", "Leave this room") + + Layout.fillWidth: true + + onClicked: { + Qt.createComponent('org.kde.neochat', 'ConfirmLeaveDialog.qml').createObject(root.QQC2.ApplicationWindow.window, { + room: root.room + }).open(); + } + } + Kirigami.ListSectionHeader { label: i18n("Members") activeFocusOnTab: false