Warning, /plasma-bigscreen/youtube-voice-application/ui/+mediacenter/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 org.kde.plasma.core 2.0 as PlasmaCore
0025 import org.kde.plasma.components 3.0 as PlasmaComponents3
0026 import org.kde.plasma.components 2.0 as PlasmaComponents
0027 import Mycroft 1.0 as Mycroft
0028 import "+mediacenter/views" as Views
0029 import "+mediacenter/delegates" as Delegates
0030 
0031 Mycroft.Delegate {
0032     id: delegate
0033     property bool busyIndicate: false
0034     
0035     fillWidth: true
0036     
0037     leftPadding: 0
0038     rightPadding: 0
0039     topPadding: 0
0040     bottomPadding: 0
0041 
0042     skillBackgroundSource: sessionData.bgImage ? "https://source.unsplash.com/weekly?" + sessionData.bgImage : "https://source.unsplash.com/weekly?music"
0043     
0044     function highlightActiveCategory(cat){
0045         switch(cat){
0046             case "Home":
0047                 historyCatButton.checked = false
0048                 searchCatButton.checked = false
0049                 homeCatButton.checked = true
0050                 break;
0051             case "History":
0052                 searchCatButton.checked = false
0053                 homeCatButton.checked = false
0054                 historyCatButton.checked = true
0055                 break;
0056             case "Search":
0057                 homeCatButton.checked = false
0058                 historyCatButton.checked = false
0059                 searchCatButton.checked = true
0060                 break;
0061         }
0062     }
0063         
0064     Connections {
0065         target: Mycroft.MycroftController
0066         onIntentRecevied: {
0067             if(type == "speak") {
0068                 busyIndicatorPop.close()
0069                 busyIndicate = false
0070             }
0071         }
0072     }
0073     
0074     onFocusChanged: {
0075         busyIndicatorPop.close()
0076         busyIndicate = false
0077         if(delegate.focus){
0078             console.log("focus is here")
0079         }
0080     }
0081     
0082     Keys.onBackPressed: {
0083         parent.parent.parent.currentIndex++
0084         parent.parent.parent.currentItem.contentItem.forceActiveFocus()
0085     }
0086     
0087     
0088     contentItem: ColumnLayout {
0089         id: colLay1
0090         
0091         Rectangle {
0092             color: Qt.rgba(0, 0, 0, 0.8)
0093             Layout.fillWidth: true
0094             Layout.preferredHeight: Kirigami.Units.gridUnit * 3 
0095             Layout.maximumHeight: Kirigami.Units.gridUnit * 4
0096             z: 100
0097             
0098             RowLayout {
0099                 id: categoryRepeater
0100                 anchors {
0101                     left: parent.left
0102                     top: parent.top
0103                     bottom: parent.bottom
0104                 }
0105                 width: parent.width / 2
0106                 anchors.leftMargin: Kirigami.Units.gridUnit
0107                 anchors.rightMargin: Kirigami.Units.gridUnit
0108                 
0109                 TopBarTabButton {
0110                     id: homeCatButton
0111                     KeyNavigation.right: historyCatButton
0112                     KeyNavigation.down: categoryLayout
0113                     checked: true
0114                     text: "Home"
0115                     onClicked: {
0116                         categoryLayout.pop(categoryLayout.find(function(item) {
0117     return item.name == "homeCat";}))
0118                         highlightActiveCategory("Home")
0119                     }
0120                 }
0121                 
0122                 TopBarTabButton {
0123                     id: historyCatButton
0124                     KeyNavigation.left: homeCatButton
0125                     KeyNavigation.right: searchCatButton
0126                     KeyNavigation.down: categoryLayout
0127                     checked: false
0128                     text: "History"
0129                     onClicked: {
0130                         if(categoryLayout.depth >= 2) {
0131                             categoryLayout.pop(null)
0132                         }
0133                         categoryLayout.push(historyCat)
0134                         highlightActiveCategory("History")
0135                     }
0136                 }
0137                 
0138                 TopBarTabButton {
0139                     id: searchCatButton
0140                     KeyNavigation.left: historyCatButton
0141                     KeyNavigation.down: categoryLayout
0142                     checked: false
0143                     text: "Search"
0144                     onClicked: {
0145                         if(categoryLayout.depth >= 2) {
0146                             categoryLayout.pop(null)
0147                         }
0148                         categoryLayout.push(searchCat)
0149                         highlightActiveCategory("Search")
0150                     }
0151                 }
0152             }
0153         }
0154         
0155         Component {
0156             id: homeCat
0157             CategoryBoxHomeView {
0158                 id: homeCatView
0159             }
0160         }
0161         
0162         Component {
0163             id: historyCat
0164             CategoryBoxHistoryView {
0165                 id: historyCatView
0166             }
0167         }
0168         
0169         Component {
0170             id: searchCat
0171             CategoryBoxSearchView  {
0172                 id: searchCatView
0173             }
0174         }
0175         
0176         StackView {
0177             id: categoryLayout
0178             Layout.fillWidth: true
0179             Layout.fillHeight: true
0180             
0181             Component.onCompleted: {
0182                 categoryLayout.push(homeCat)
0183             }
0184         }
0185     }
0186     
0187     Popup {
0188         id: busyIndicatorPop
0189         width: parent.width
0190         height: parent.height
0191         background: Rectangle {
0192             anchors.fill: parent
0193             color: Qt.rgba(0, 0, 0, 0.5)
0194         }
0195         closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
0196         
0197         BusyIndicator {
0198             running: busyIndicate
0199             anchors.centerIn: parent
0200         }
0201         
0202         onOpened: {
0203             busyIndicate = true
0204         }
0205         
0206         onClosed: {
0207             busyIndicate = false
0208         }
0209     }
0210 }
0211