diff --git a/src/qml/Page/RoomList/AccountMenu.qml b/src/qml/Page/RoomList/AccountMenu.qml index 38fccb163..7c11f3d87 100644 --- a/src/qml/Page/RoomList/AccountMenu.qml +++ b/src/qml/Page/RoomList/AccountMenu.qml @@ -51,6 +51,8 @@ QQC2.Menu { Component { id: confirmLogoutDialogComponent - Dialog.ConfirmLogout {} + Dialog.ConfirmLogout { + connection: Controller.activeConnection + } } } diff --git a/src/qml/Settings/AccountEditorPage.qml b/src/qml/Settings/AccountEditorPage.qml index 3fd6c6e46..4671dc0bd 100644 --- a/src/qml/Settings/AccountEditorPage.qml +++ b/src/qml/Settings/AccountEditorPage.qml @@ -249,28 +249,6 @@ Kirigami.ScrollablePage { }*/ } } - - MobileForm.FormHeader { - Layout.fillWidth: true - title: i18n("Sign out") - } - MobileForm.FormCard { - Layout.fillWidth: true - contentItem: ColumnLayout { - spacing: 0 - MobileForm.FormButtonDelegate { - Layout.fillWidth: true - text: i18n("Sign out") - onClicked: { - Controller.logout(root.connection, true); - root.closeDialog(); - if (Controller.accountCount === 1) { - pageStack.layers.pop(); - } - } - } - } - } } Component { id: openFileDialog diff --git a/src/qml/Settings/AccountsPage.qml b/src/qml/Settings/AccountsPage.qml index 584383334..63cae1879 100644 --- a/src/qml/Settings/AccountsPage.qml +++ b/src/qml/Settings/AccountsPage.qml @@ -4,6 +4,7 @@ import QtQuick 2.15 import QtQuick.Controls 2.15 as QQC2 import QtQuick.Layouts 1.15 +import QtQuick.Window 2.15 import Qt.labs.platform 1.1 import org.kde.kirigami 2.19 as Kirigami @@ -11,8 +12,11 @@ import org.kde.kirigamiaddons.labs.mobileform 0.1 as MobileForm import org.kde.kirigamiaddons.labs.components 1.0 as KirigamiComponents import org.kde.neochat 1.0 +import 'Dialog' as Dialog Kirigami.ScrollablePage { + id: page + title: i18n("Accounts") topPadding: 0 leftPadding: 0 @@ -32,7 +36,7 @@ Kirigami.ScrollablePage { model: AccountRegistry delegate: MobileForm.AbstractFormDelegate { Layout.fillWidth: true - onClicked: pageSettingStack.pushDialogLayer("qrc:/AccountEditorPage.qml", { + onClicked: pageStack.layers.push("qrc:/AccountEditorPage.qml", { connection: model.connection }, { title: i18n("Account editor") @@ -71,6 +75,20 @@ Kirigami.ScrollablePage { } } + QQC2.ToolButton { + text: i18n("Logout") + icon.name: "im-kick-user" + onClicked: confirmLogoutDialogComponent.createObject(QQC2.ApplicationWindow.overlay).open() + } + + Component { + id: confirmLogoutDialogComponent + Dialog.ConfirmLogout { + connection: model.connection + onAccepted: page.Window.window.close() + } + } + MobileForm.FormArrow { Layout.alignment: Qt.AlignRight | Qt.AlignVCenter direction: MobileForm.FormArrow.Right