Warning, /pim/kube/components/accounts/qml/AccountWizard.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * Copyright (C) 2016 Michael Bohlender, <michael.bohlender@kdemail.net> 0003 * 0004 * This program is free software; you can redistribute it and/or modify 0005 * it under the terms of the GNU General Public License as published by 0006 * the Free Software Foundation; either version 2 of the License, or 0007 * (at your option) any later version. 0008 * 0009 * This program is distributed in the hope that it will be useful, 0010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0012 * GNU General Public License for more details. 0013 * 0014 * You should have received a copy of the GNU General Public License along 0015 * with this program; if not, write to the Free Software Foundation, Inc., 0016 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 0017 */ 0018 0019 import QtQuick 2.7 0020 import QtQuick.Layouts 1.1 0021 import QtQuick.Controls 2 0022 import org.kube.framework 1.0 as Kube 0023 0024 Kube.Popup { 0025 id: root 0026 objectName: "accountWizard" 0027 0028 property bool requireSetup: false 0029 property var availableAccountPlugins: [] 0030 0031 modal: true 0032 closePolicy: requireSetup ? Popup.NoAutoClose : Popup.CloseOnEscape | Popup.CloseOnPressOutside 0033 0034 clip: true 0035 0036 StackView { 0037 id: stack 0038 anchors.fill: parent 0039 Component.onCompleted: { 0040 //If we only have one account type we skip the selection 0041 if (root.availableAccountPlugins.length == 1) { 0042 stack.push(wizardPage.createObject(stack, {accountType: root.availableAccountPlugins[0]})) 0043 } else { 0044 stack.push(mainView.createObject(stack)) 0045 } 0046 } 0047 onCurrentItemChanged: { 0048 if (!!currentItem) { 0049 currentItem.forceActiveFocus() 0050 } 0051 } 0052 } 0053 0054 Component { 0055 id: mainView 0056 0057 FocusScope { 0058 Kube.Heading { 0059 id: heading 0060 text: qsTr("Select your new account type") 0061 color: Kube.Colors.highlightColor 0062 } 0063 0064 ColumnLayout { 0065 anchors.centerIn: parent 0066 width: parent.width * 0.4 0067 0068 spacing: Kube.Units.largeSpacing 0069 0070 Repeater { 0071 model: root.availableAccountPlugins 0072 delegate: Kube.Button { 0073 objectName: "accountTypeButton" + modelData 0074 Layout.fillWidth: true 0075 text: accountFactory.accountName 0076 onClicked: stack.push(wizardPage.createObject(stack, {accountType:modelData})) 0077 Kube.AccountFactory { 0078 id: accountFactory 0079 accountType: modelData 0080 } 0081 } 0082 } 0083 } 0084 } 0085 } 0086 0087 Component { 0088 id: wizardPage 0089 AccountWizardPage { 0090 focus: true 0091 requireSetup: root.requireSetup 0092 onDone: { 0093 root.destroy() 0094 Kube.Fabric.postMessage(Kube.Messages.componentDone, {}) 0095 } 0096 } 0097 } 0098 }