From 5e15c38afbc43c13c4e1167c936794e8c6d8e594 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Wed, 16 Nov 2022 11:23:03 +0100 Subject: [PATCH] Add a confirm dialog for the sign out Signed-off-by: Carl Schwan --- src/qml/Dialog/ConfirmLogoutDialog.qml | 41 ++++++++++++++++++++++++++ src/qml/main.qml | 6 +++- src/res.qrc | 1 + 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 src/qml/Dialog/ConfirmLogoutDialog.qml diff --git a/src/qml/Dialog/ConfirmLogoutDialog.qml b/src/qml/Dialog/ConfirmLogoutDialog.qml new file mode 100644 index 000000000..1f99d631f --- /dev/null +++ b/src/qml/Dialog/ConfirmLogoutDialog.qml @@ -0,0 +1,41 @@ +// SPDX-FileCopyrightText: 2022 Carl Schwan +// SPDX-License-Identifier: GPL-2.0-or-later + +import QtQuick 2.15 +import QtQuick.Controls 2.15 as QQC2 +import QtQuick.Layouts 1.15 +import org.kde.kirigami 2.15 as Kirigami + +QQC2.Dialog { + id: root + + ColumnLayout { + Kirigami.Heading { + text: i18n("Sign out") + } + QQC2.Label { + text: i18n("Are you sure you want to sign out?") + } + } + + x: Math.round((parent.width - width) / 2) + y: Math.round((parent.height - height) / 2) + modal: true + + footer: QQC2.DialogButtonBox { + QQC2.Button { + text: i18n("Cancel") + QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.RejectRole + onClicked: root.close() + } + + QQC2.Button { + text: i18n("Sign out") + QQC2.DialogButtonBox.buttonRole: QQC2.DialogButtonBox.AcceptRole + onClicked: { + Controller.logout(Controller.activeConnection, true); + root.close(); + } + } + } +} diff --git a/src/qml/main.qml b/src/qml/main.qml index 6c16d4d78..9d01844b5 100644 --- a/src/qml/main.qml +++ b/src/qml/main.qml @@ -269,7 +269,7 @@ Kirigami.ApplicationWindow { text: i18n("Logout") icon.name: "list-remove-user" enabled: Controller.accountCount > 0 - onTriggered: Controller.logout(Controller.activeConnection, true) + onTriggered: confirmLogoutDialog.open() }, Kirigami.Action { text: i18n("Quit") @@ -280,6 +280,10 @@ Kirigami.ApplicationWindow { ] } + ConfirmLogoutDialog { + id: confirmLogoutDialog + } + Component.onCompleted: { Controller.setBlur(pageStack, Config.blur && !Config.compactLayout); if (Config.minimizeToSystemTrayOnStartup && !Kirigami.Settings.isMobile && Controller.supportSystemTray && Config.systemTray) { diff --git a/src/res.qrc b/src/res.qrc index ddb5d62f6..3b8e52070 100644 --- a/src/res.qrc +++ b/src/res.qrc @@ -59,6 +59,7 @@ qml/Dialog/EmojiDialog.qml qml/Dialog/OpenFileDialog.qml qml/Dialog/KeyVerification/KeyVerificationDialog.qml + qml/Dialog/ConfirmLogoutDialog.qml qml/Dialog/KeyVerification/Message.qml qml/Dialog/KeyVerification/EmojiItem.qml qml/Dialog/KeyVerification/EmojiRow.qml