summaryrefslogtreecommitdiffstats
path: root/components/accounts/qml/AccountWizard.qml
diff options
context:
space:
mode:
Diffstat (limited to 'components/accounts/qml/AccountWizard.qml')
-rw-r--r--components/accounts/qml/AccountWizard.qml93
1 files changed, 93 insertions, 0 deletions
diff --git a/components/accounts/qml/AccountWizard.qml b/components/accounts/qml/AccountWizard.qml
new file mode 100644
index 00000000..4a11ca05
--- /dev/null
+++ b/components/accounts/qml/AccountWizard.qml
@@ -0,0 +1,93 @@
1/*
2 * Copyright (C) 2016 Michael Bohlender, <michael.bohlender@kdemail.net>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17 */
18
19import QtQuick 2.7
20import QtQuick.Layouts 1.1
21import QtQuick.Controls 2.0 as Controls2
22import org.kube.framework 1.0 as Kube
23
24Kube.Popup {
25 id: root
26 objectName: "accountWizard"
27
28 property bool requireSetup: false
29 property var availableAccountPlugins: []
30
31 modal: true
32 closePolicy: requireSetup ? Controls2.Popup.NoAutoClose : Controls2.Popup.CloseOnEscape | Controls2.Popup.CloseOnPressOutside
33
34 clip: true
35
36 Controls2.StackView {
37 id: stack
38 anchors.fill: parent
39 Component.onCompleted: {
40 //If we only have one account type we skip the selection
41 if (root.availableAccountPlugins.length == 1) {
42 stack.push(wizardPage.createObject(app, {accountType: root.availableAccountPlugins[0]}))
43 } else {
44 stack.push(mainView.createObject(app))
45 }
46 }
47 onCurrentItemChanged: {
48 if (!!currentItem) {
49 currentItem.forceActiveFocus()
50 }
51 }
52 }
53
54 Component {
55 id: mainView
56
57 FocusScope {
58 Kube.Heading {
59 id: heading
60 text: qsTr("Select your new account type")
61 color: Kube.Colors.highlightColor
62 }
63
64 ColumnLayout {
65 anchors.centerIn: parent
66 width: parent.width * 0.4
67
68 spacing: Kube.Units.largeSpacing
69
70 Repeater {
71 model: root.availableAccountPlugins
72 delegate: Kube.Button {
73 Layout.fillWidth: true
74 text: modelData
75 onClicked: stack.push(wizardPage.createObject(app, {accountType:modelData}))
76 }
77 }
78 }
79 }
80 }
81
82 Component {
83 id: wizardPage
84 AccountWizardPage {
85 focus: true
86 requireSetup: root.requireSetup
87 onDone: {
88 root.close()
89 Kube.Fabric.postMessage(Kube.Messages.componentDone, {})
90 }
91 }
92 }
93}