Warning, /network/kaccounts-integration/src/kcm/ui/main.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 * SPDX-FileCopyrightText: 2015 Martin Klapetek <mklapetek@kde.org>
0003 * SPDX-FileCopyrightText: 2020 Dan Leinir Turthra Jensen <admin@leinir.dk>
0004 *
0005 * SPDX-License-Identifier: LGPL-2.0-or-later
0006 */
0007
0008 import QtQuick
0009 import QtQuick.Controls as Controls
0010 import QtQuick.Layouts
0011
0012 import org.kde.kirigami as Kirigami
0013 import org.kde.kcmutils as KCM
0014
0015 import org.kde.kaccounts as KAccounts
0016
0017 KCM.ScrollViewKCM {
0018 id: kaccountsRoot
0019
0020 implicitHeight: Kirigami.Units.gridUnit * 28
0021 implicitWidth: Kirigami.Units.gridUnit * 28
0022
0023 // Existing accounts
0024 view: ListView {
0025
0026 clip: true
0027
0028 model: KAccounts.AccountsModel { }
0029
0030 delegate: Kirigami.SwipeListItem {
0031 id: delegate
0032 width: ListView.view.width
0033
0034 contentItem: Kirigami.IconTitleSubtitle {
0035 Layout.fillWidth: true
0036
0037 icon.name: model.iconName
0038 title: {
0039 if (model.displayName.length > 0 && model.providerName.length > 0) {
0040 return i18nd("kaccounts-integration", "%1 (%2)", model.displayName, model.providerDisplayName)
0041 } else if (model.displayName.length > 0) {
0042 return model.displayName
0043 } else {
0044 return i18nd("kaccounts-integration", "%1 account", model.providerName)
0045 }
0046 }
0047 selected: delegate.highlighted
0048 font: delegate.font
0049 }
0050
0051 actions: [
0052 Kirigami.Action {
0053 text: i18ndc("kaccounts-integration", "Tooltip for an action which will offer the user to remove the mentioned account", "Remove %1", delegate.contentItem.text)
0054 icon.name: "edit-delete-remove"
0055 onTriggered: {
0056 accountRemover.accountId = model.id;
0057 accountRemover.displayName = model.displayName;
0058 accountRemover.providerName = model.providerName;
0059 accountRemover.open();
0060 }
0061 }
0062 ]
0063 onClicked: kcm.push("AccountDetails.qml", {model: model.services})
0064 }
0065
0066 Kirigami.PlaceholderMessage {
0067 visible: view.count === 0
0068 anchors.centerIn: parent
0069 width: parent.width - (Kirigami.Units.largeSpacing * 4)
0070 text: i18ndc("kaccounts-integration", "A text shown when a user has not yet added any accounts", "No accounts added yet")
0071 explanation: xi18ndc("kaccounts-integration", "@info", "Click the <interface>Add New Account...</interface> button below to add one")
0072 }
0073 }
0074
0075 RemoveAccountDialog {
0076 id: accountRemover
0077 parent: kaccountsRoot
0078 }
0079
0080 footer: RowLayout {
0081 Controls.Button {
0082 Layout.alignment: Qt.AlignRight
0083 text: i18nd("kaccounts-integration", "Add New Account...")
0084 icon.name: "contact-new"
0085 onClicked: kcm.push("AvailableAccounts.qml")
0086 }
0087 }
0088 }