Warning, /plasma-bigscreen/youtube-voice-application/ui/YoutubeLiveSearch.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  *  Copyright 2018 by Aditya Mehra <aix.m@outlook.com>
0003  *  Copyright 2018 Marco Martin <mart@kde.org>
0004  *
0005  *  This program is free software: you can redistribute it and/or modify
0006  *  it under the terms of the GNU General Public License as published by
0007  *  the Free Software Foundation, either version 3 of the License, or
0008  *  (at your option) any later version.
0009 
0010  *  This program is distributed in the hope that it will be useful,
0011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
0012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0013  *  GNU General Public License for more details.
0014 
0015  *  You should have received a copy of the GNU General Public License
0016  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
0017  */
0018 
0019 import QtQuick 2.9
0020 import QtQuick.Layouts 1.4
0021 import QtGraphicalEffects 1.0
0022 import QtQuick.Controls 2.3
0023 import org.kde.kirigami 2.8 as Kirigami
0024 import Mycroft 1.0 as Mycroft
0025 import "+android/views" as Views
0026 import "+android/delegates" as Delegates
0027 
0028 Mycroft.Delegate {
0029     id: delegate
0030     property bool busyIndicate: false
0031     
0032     fillWidth: true
0033     
0034     leftPadding: 0
0035     rightPadding: 0
0036     topPadding: 0
0037     bottomPadding: 0
0038 
0039     skillBackgroundSource: sessionData.bgImage ? "https://source.unsplash.com/weekly?" + sessionData.bgImage : "https://source.unsplash.com/weekly?music"
0040     
0041     function highlightActiveCategory(cat){
0042         switch(cat){
0043             case "Home":
0044                 historyCatButton.checked = false
0045                 searchCatButton.checked = false
0046                 homeCatButton.checked = true
0047                 break;
0048             case "History":
0049                 searchCatButton.checked = false
0050                 homeCatButton.checked = false
0051                 historyCatButton.checked = true
0052                 break;
0053             case "Search":
0054                 homeCatButton.checked = false
0055                 historyCatButton.checked = false
0056                 searchCatButton.checked = true
0057                 break;
0058         }
0059     }
0060         
0061     Connections {
0062         target: Mycroft.MycroftController
0063         onIntentRecevied: {
0064             if(type == "speak") {
0065                 busyIndicatorPop.close()
0066                 busyIndicate = false
0067             }
0068         }
0069     }
0070     
0071     onFocusChanged: {
0072         busyIndicatorPop.close()
0073         busyIndicate = false
0074         if(delegate.focus){
0075             console.log("focus is here")
0076         }
0077     }
0078     
0079     Keys.onBackPressed: {
0080         parent.parent.parent.currentIndex++
0081         parent.parent.parent.currentItem.contentItem.forceActiveFocus()
0082     }
0083     
0084     
0085     contentItem: ColumnLayout {
0086         id: colLay1
0087         
0088         Rectangle {
0089             color: Qt.rgba(0, 0, 0, 0.8)
0090             Layout.fillWidth: true
0091             Layout.preferredHeight: Kirigami.Units.gridUnit * 3 
0092             Layout.maximumHeight: Kirigami.Units.gridUnit * 4
0093             z: 100
0094             
0095             TopBarTabButton {
0096                 id: backButton
0097                 anchors.left: parent.left
0098                 anchors.verticalCenter: parent.verticalCenter
0099                 anchors.leftMargin: Kirigami.Units.largeSpacing
0100                 source: "+android/images/back.png"
0101                 onClicked: {
0102                     Mycroft.MycroftController.sendRequest("mycroft.gui.screen.close", {})
0103                 }
0104             }
0105             
0106             RowLayout {
0107                 id: categoryRepeater
0108                 anchors {
0109                     right: parent.right
0110                     top: parent.top
0111                     bottom: parent.bottom
0112                 }
0113                 width: parent.width / 2
0114                 anchors.leftMargin: Kirigami.Units.gridUnit
0115                 anchors.rightMargin: Kirigami.Units.gridUnit
0116                 
0117                 TopBarTabButton {
0118                     id: homeCatButton
0119                     KeyNavigation.right: historyCatButton
0120                     KeyNavigation.down: categoryLayout
0121                     checked: true
0122                     source: "+android/images/home.png"
0123                     onClicked: {
0124                         categoryLayout.pop(categoryLayout.find(function(item) {
0125     return item.name == "homeCat";}))
0126                         highlightActiveCategory("Home")
0127                     }
0128                 }
0129                 
0130                 TopBarTabButton {
0131                     id: historyCatButton
0132                     KeyNavigation.left: homeCatButton
0133                     KeyNavigation.right: searchCatButton
0134                     KeyNavigation.down: categoryLayout
0135                     checked: false
0136                     source: "+android/images/history.png"
0137                     onClicked: {
0138                         if(categoryLayout.depth >= 2) {
0139                             categoryLayout.pop(null)
0140                         }
0141                         categoryLayout.push(historyCat)
0142                         highlightActiveCategory("History")
0143                     }
0144                 }
0145                 
0146                 TopBarTabButton {
0147                     id: searchCatButton
0148                     KeyNavigation.left: historyCatButton
0149                     KeyNavigation.down: categoryLayout
0150                     checked: false
0151                     source: "+android/images/search.png"
0152                     onClicked: {
0153                         if(categoryLayout.depth >= 2) {
0154                             categoryLayout.pop(null)
0155                         }
0156                         categoryLayout.push(searchCat)
0157                         highlightActiveCategory("Search")
0158                     }
0159                 }
0160             }
0161         }
0162         
0163         Component {
0164             id: homeCat
0165             CategoryBoxHomeView {
0166                 id: homeCatView
0167             }
0168         }
0169         
0170         Component {
0171             id: historyCat
0172             CategoryBoxHistoryView {
0173                 id: historyCatView
0174             }
0175         }
0176         
0177         Component {
0178             id: searchCat
0179             CategoryBoxSearchView  {
0180                 id: searchCatView
0181             }
0182         }
0183         
0184         StackView {
0185             id: categoryLayout
0186             Layout.fillWidth: true
0187             Layout.fillHeight: true
0188             
0189             Component.onCompleted: {
0190                 categoryLayout.push(homeCat)
0191             }
0192         }
0193     }
0194     
0195     Popup {
0196         id: busyIndicatorPop
0197         width: parent.width
0198         height: parent.height
0199         background: Rectangle {
0200             anchors.fill: parent
0201             color: Qt.rgba(0, 0, 0, 0.5)
0202         }
0203         closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
0204         
0205         BusyIndicator {
0206             running: busyIndicate
0207             anchors.centerIn: parent
0208         }
0209         
0210         onOpened: {
0211             busyIndicate = true
0212         }
0213         
0214         onClosed: {
0215             busyIndicate = false
0216         }
0217     }
0218 }
0219