// SPDX-FileCopyrightText: 2020 Tobias Fella // 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 Qt.labs.platform 1.1 import org.kde.kirigami 2.19 as Kirigami 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 Kirigami.ScrollablePage { title: i18n("Accounts") topPadding: 0 leftPadding: 0 rightPadding: 0 ColumnLayout { spacing: 0 MobileForm.FormHeader { Layout.fillWidth: true title: i18n("Accounts") } MobileForm.FormCard { Layout.fillWidth: true contentItem: ColumnLayout { spacing: 0 Repeater { model: AccountRegistry delegate: MobileForm.AbstractFormDelegate { Layout.fillWidth: true onClicked: pageSettingStack.pushDialogLayer("qrc:/AccountEditorPage.qml", { connection: model.connection }, { title: i18n("Account editor") }) contentItem: RowLayout { KirigamiComponents.Avatar { name: model.connection.localUser.displayName source: model.connection.localUser.avatarMediaId ? ("image://mxc/" + model.connection.localUser.avatarMediaId) : "" Layout.rightMargin: Kirigami.Units.largeSpacing implicitWidth: Kirigami.Units.iconSizes.medium implicitHeight: Kirigami.Units.iconSizes.medium } ColumnLayout { Layout.fillWidth: true spacing: Kirigami.Units.smallSpacing QQC2.Label { Layout.fillWidth: true text: model.connection.localUser.displayName textFormat: Text.PlainText elide: Text.ElideRight wrapMode: Text.Wrap maximumLineCount: 2 color: Kirigami.Theme.textColor } QQC2.Label { Layout.fillWidth: true text: model.connection.localUserId color: Kirigami.Theme.disabledTextColor font: Kirigami.Theme.smallFont elide: Text.ElideRight } } MobileForm.FormArrow { Layout.alignment: Qt.AlignRight | Qt.AlignVCenter direction: MobileForm.FormArrow.Right } } } } MobileForm.FormDelegateSeparator { below: addAccountDelegate } MobileForm.FormButtonDelegate { id: addAccountDelegate text: i18n("Add Account") icon.name: "list-add" onClicked: pageStack.layers.push("qrc:/WelcomePage.qml") } } } } Connections { target: Controller function onConnectionAdded() { if (pageStack.layers.depth > 2) { pageStack.layers.pop() } } function onPasswordStatus(status) { if (status === Controller.Success) { showPassiveNotification(i18n("Password changed successfully")); } else if (status === Controller.Wrong) { showPassiveNotification(i18n("Wrong password entered")); } else { showPassiveNotification(i18n("Unknown problem while trying to change password")); } } } }