Warning, /plasma-bigscreen/mycroft-bigscreen-setup/ui/ConfigIntro.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  * Copyright 2018 Aditya Mehra <aix.m@outlook.com>
0003  * 
0004  * Licensed under the Apache License, Version 2.0 (the "License");
0005  * you may not use this file except in compliance with the License.
0006  * You may obtain a copy of the License at
0007  *
0008  *    http://www.apache.org/licenses/LICENSE-2.0
0009  *
0010  * Unless required by applicable law or agreed to in writing, software
0011  * distributed under the License is distributed on an "AS IS" BASIS,
0012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0013  * See the License for the specific language governing permissions and
0014  * limitations under the License.
0015  *
0016  */
0017 
0018 import QtQuick.Layouts 1.4
0019 import QtQuick 2.4
0020 import QtQuick.Controls 2.0
0021 import org.kde.kirigami 2.5 as Kirigami
0022 import org.kde.plasma.core 2.0 as PlasmaCore
0023 import Mycroft 1.0 as Mycroft
0024 
0025 Item {
0026     id: backendView
0027     anchors.fill: parent
0028     property int speakConfig: sessionData.firstConfigDialog
0029     property bool configurePtt: sessionData.configurePtt
0030 
0031     onConfigurePttChanged: {
0032         if(configurePtt){
0033             console.log("I should configure PTT")
0034         }
0035     }
0036 
0037     onSpeakConfigChanged: {
0038         if(speakConfig == 1){
0039             console.log("I am only 1")
0040             triggerGuiEvent("mycroft.device.speak.first.config", {})
0041         }
0042     }
0043 
0044     Component.onCompleted: {
0045         pos2.forceActiveFocus()
0046     }
0047 
0048     Row {
0049         anchors.fill: parent
0050 
0051         Rectangle {
0052             id: pos1
0053             color: Qt.rgba(0, 0, 0, 1)
0054             width: root.width / 3
0055             height: parent.height
0056 
0057             ColumnLayout {
0058                 anchors.fill: parent
0059                 anchors.margins: Kirigami.Units.largeSpacing
0060                 Item {
0061                     Layout.fillWidth: true
0062                     Layout.fillHeight: true
0063 
0064                     Label {
0065                         anchors.fill: parent
0066                         wrapMode: Text.WordWrap
0067                         color: "white"
0068                         font.bold: true
0069                         minimumPixelSize: height * 0.15
0070                         fontSizeMode: Text.Fit
0071                         font.pixelSize: height * 0.25
0072                         text: "Welcome To Mycroft Setup"
0073                     }
0074                 }
0075 
0076                 Item {
0077                     Layout.fillWidth: true
0078                     Layout.fillHeight: true
0079 
0080                     Label {
0081                         anchors.fill: parent
0082                         wrapMode: Text.WordWrap
0083                         color: "white"
0084                         minimumPixelSize: height * 0.05
0085                         fontSizeMode: Text.Fit
0086                         font.pixelSize: height * 0.15
0087                         text: "This setup will take you through various steps to get your device ready"
0088                     }
0089                 }
0090 
0091                 Item {
0092                     Layout.fillWidth: true
0093                     Layout.fillHeight: true
0094 
0095                     Label {
0096                         anchors.fill: parent
0097                         wrapMode: Text.WordWrap
0098                         color: "white"
0099                         minimumPixelSize: height * 0.05
0100                         fontSizeMode: Text.Fit
0101                         font.pixelSize: height * 0.15
0102                         text: "Let's get started with configuring how you would like to interact with Mycroft"
0103                     }
0104                 }
0105 
0106                 Kirigami.Separator {
0107                     Layout.fillWidth: true
0108                     Layout.preferredHeight: 1
0109                     color: "white"
0110                 }
0111 
0112                 Item {
0113                     Layout.fillWidth: true
0114                     Layout.fillHeight: true
0115                     Layout.alignment: Qt.AlignBottom
0116 
0117                     Label {
0118                         anchors.fill: parent
0119                         wrapMode: Text.WordWrap
0120                         color: "white"
0121                         minimumPixelSize: height * 0.05
0122                         fontSizeMode: Text.Fit
0123                         font.pixelSize: height * 0.10
0124                         text: "Change options using ◄ and ► arrow keys, Select one to continue"
0125                     }
0126                 }
0127             }
0128         }
0129 
0130         Rectangle {
0131             id: pos2
0132             color: "#45c5f7"
0133             width: root.width / 3
0134             height: parent.height
0135             focus: true
0136             border.width: pos2.activeFocus ? Kirigami.Units.smallSpacing : 0
0137             border.color: pos2.activeFocus ? "white" : "transparent"
0138             KeyNavigation.right: pos3
0139 
0140             ColumnLayout {
0141                 anchors.fill: parent
0142                 anchors.margins: Kirigami.Units.largeSpacing
0143 
0144                 Kirigami.Icon {
0145                     source: Qt.resolvedUrl("images/tv.svg")
0146                     Layout.fillWidth: true
0147                     Layout.preferredHeight: parent.height / 4.5
0148                     color: "white"
0149                 }
0150                 Kirigami.Icon {
0151                     source: Qt.resolvedUrl("images/remote.svg")
0152                     Layout.fillWidth: true
0153                     Layout.preferredHeight: parent.height / 4.5
0154                     color: "white"
0155                 }
0156                 Item {
0157                     Layout.fillWidth: true
0158                     Layout.fillHeight: true
0159 
0160                     Label {
0161                         anchors.fill: parent
0162                         wrapMode: Text.WordWrap
0163                         color: "white"
0164                         minimumPixelSize: height * 0.05
0165                         horizontalAlignment: Text.AlignHCenter
0166                         fontSizeMode: Text.Fit
0167                         font.pixelSize: height * 0.25
0168                         text: "Push-To-Talk + Wakeword"
0169                     }
0170                 }
0171 
0172                 Item {
0173                     Layout.fillWidth: true
0174                     Layout.fillHeight: true
0175 
0176                     Label {
0177                         anchors.fill: parent
0178                         wrapMode: Text.WordWrap
0179                         color: "white"
0180                         minimumPixelSize: height * 0.05
0181                         horizontalAlignment: Text.AlignHCenter
0182                         fontSizeMode: Text.Fit
0183                         font.pixelSize: height * 0.15
0184                         text: "Allows you to activate mycroft with the push of a button in addition to the 'Hey Mycroft' wakeword"
0185                     }
0186                 }
0187 
0188                 Kirigami.Icon {
0189                     source: Qt.resolvedUrl("images/greentick.svg")
0190                     visible: pos2.activeFocus
0191                     Layout.fillWidth: true
0192                     Layout.preferredHeight: parent.height * 0.08
0193                 }
0194             }
0195 
0196             Keys.onReturnPressed: {
0197                 triggerGuiEvent("mycroft.device.set.first.config", {"config": "pttwakeword"})
0198             }
0199 
0200             MouseArea {
0201                 anchors.fill: parent
0202                 onClicked: {
0203                     triggerGuiEvent("mycroft.device.set.first.config", {"config": "pttwakeword"})
0204                 }
0205             }
0206         }
0207 
0208         Rectangle {
0209             id: pos3
0210             color: "#4577f7"
0211             width: root.width / 3
0212             height: parent.height
0213             border.width: pos3.activeFocus ? Kirigami.Units.smallSpacing : 0
0214             border.color: pos3.activeFocus ? "white" : "transparent"
0215 
0216             ColumnLayout {
0217                 anchors.fill: parent
0218                 anchors.margins: Kirigami.Units.largeSpacing
0219 
0220                 Kirigami.Icon {
0221                     source: Qt.resolvedUrl("images/tv.svg")
0222                     Layout.fillWidth: true
0223                     Layout.preferredHeight: parent.height / 4.5
0224                     color: "white"
0225                 }
0226                 Kirigami.Icon {
0227                     source: Qt.resolvedUrl("images/micarray.svg")
0228                     Layout.fillWidth: true
0229                     Layout.preferredHeight: parent.height / 4.5
0230                     color: "white"
0231                 }
0232                 Item {
0233                     Layout.fillWidth: true
0234                     Layout.fillHeight: true
0235 
0236                     Label {
0237                         anchors.fill: parent
0238                         wrapMode: Text.WordWrap
0239                         color: "white"
0240                         minimumPixelSize: height * 0.05
0241                         horizontalAlignment: Text.AlignHCenter
0242                         fontSizeMode: Text.Fit
0243                         font.pixelSize: height * 0.25
0244                         text: "Wakeword Only"
0245                     }
0246                 }
0247 
0248                 Item {
0249                     Layout.fillWidth: true
0250                     Layout.fillHeight: true
0251 
0252                     Label {
0253                         anchors.fill: parent
0254                         wrapMode: Text.WordWrap
0255                         color: "white"
0256                         minimumPixelSize: height * 0.05
0257                         horizontalAlignment: Text.AlignHCenter
0258                         fontSizeMode: Text.Fit
0259                         font.pixelSize: height * 0.15
0260                         text: "Allows you to activate mycroft with only 'Hey Mycroft' wakeword"
0261                     }
0262                 }
0263 
0264                 Kirigami.Icon {
0265                     source: Qt.resolvedUrl("images/greentick.svg")
0266                     visible: pos3.activeFocus
0267                     Layout.fillWidth: true
0268                     Layout.preferredHeight: parent.height * 0.08
0269                 }
0270             }
0271 
0272             Keys.onReturnPressed: {
0273                 triggerGuiEvent("mycroft.device.set.first.config", {"config": "wakeword"})
0274             }
0275 
0276             MouseArea {
0277                 anchors.fill: parent
0278                 onClicked: {
0279                     triggerGuiEvent("mycroft.device.set.first.config", {"config": "wakeword"})
0280                 }
0281             }
0282         }
0283     }
0284 }