Warning, /network/kaccounts-integration/src/kcm/ui/AvailableAccounts.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  *   SPDX-FileCopyrightText: 2019 Nicolas Fella <nicolas.fella@gmx.de>
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: root
0019     title: i18nd("kaccounts-integration", "Add New Account")
0020 
0021     header: Kirigami.InlineMessage {
0022         id: errorMessage
0023         type: Kirigami.MessageType.Error
0024         showCloseButton: true
0025         visible: false
0026     }
0027 
0028     view: ListView {
0029 
0030         id: accountListView
0031         clip: true
0032 
0033         model: KAccounts.ProvidersModel {}
0034 
0035         delegate: Kirigami.SubtitleDelegate {
0036             width: ListView.view.width
0037 
0038             icon.name: model.iconName
0039             text: model.displayName
0040             subtitle: model.description
0041             enabled: model.supportsMultipleAccounts === true || model.accountsCount === 0
0042 
0043             onClicked: {
0044                 var job = jobComponent.createObject(root, { "providerName": model.name })
0045                 job.start()
0046                 accountListView.currentIndex = -1
0047             }
0048         }
0049     }
0050 
0051     Component {
0052         id: jobComponent
0053         KAccounts.CreateAccountJob {
0054             onFinished: {
0055                 // Don't close when there is an error to show an error message
0056                 if (error == 0) {
0057                     kcm.pop()
0058                 } else {
0059 
0060                     if (error === 1) { // KJob::KilledJobError, cancelled by user
0061                         return
0062                     }
0063 
0064                     errorMessage.text = errorText
0065                     errorMessage.visible = true
0066                 }
0067             }
0068         }
0069     }
0070 }