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

0001 /*
0002  *  Copyright 2018 by Aditya Mehra <aix.m@outlook.com>
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 3 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
0015  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
0016  */
0017 
0018 import QtQuick 2.9
0019 import QtQuick.Layouts 1.4
0020 import QtGraphicalEffects 1.0
0021 import QtQuick.Controls 2.3
0022 import org.kde.kirigami 2.8 as Kirigami
0023 import org.kde.plasma.core 2.0 as PlasmaCore
0024 import org.kde.plasma.components 3.0 as PlasmaComponents3
0025 import org.kde.plasma.components 2.0 as PlasmaComponents
0026 import Mycroft 1.0 as Mycroft
0027 import "+mediacenter/views" as Views
0028 import "+mediacenter/delegates" as Delegates
0029 
0030 Item {
0031     property alias model: videoListView.model
0032     Layout.fillWidth: true
0033     Layout.fillHeight: true
0034     
0035     onFocusChanged: {
0036         if(focus){
0037             console.log("here in focus")
0038             videoListView.forceActiveFocus()
0039         }
0040     }
0041     
0042     Views.TileView {
0043         id: videoListView
0044         focus: true
0045         clip: true
0046         anchors.top: parent.top
0047         anchors.left: parent.left
0048         anchors.right: parent.right
0049         anchors.bottom: controlAreaButtons.top
0050         property string currentVideoTitle
0051         property string currentVideoId
0052         delegate: Delegates.VideoCard{}
0053         
0054         KeyNavigation.up: videoQueryBox
0055         KeyNavigation.down: nextPageAvailable ? nextButton : previousButton
0056                 
0057         Keys.onReturnPressed: {
0058             busyIndicatorPop.open()
0059             if(focus){
0060                 Mycroft.MycroftController.sendRequest("aiix.youtube-skill.playvideo_id", {vidID: currentVideoId, vidTitle: currentVideoTitle})
0061             }
0062         }
0063             
0064         onCurrentItemChanged: {
0065             currentVideoId = videoListView.currentItem.videoID
0066             currentVideoTitle = videoListView.currentItem.videoTitle
0067             console.log(videoListView.currentItem.videoTitle)
0068         }
0069     }
0070     
0071     RowLayout {
0072         id: controlAreaButtons
0073         anchors.bottom: parent.bottom
0074         anchors.left: parent.left
0075         anchors.right: parent.right
0076         height: Kirigami.Units.gridUnit * 4
0077         
0078         Button {
0079             id: previousButton
0080             text: "Previous Page"
0081             Layout.preferredWidth: nextButton.visible ? parent.width / 2 : parent.width
0082             Layout.fillHeight: true
0083             icon.name: "go-previous-symbolic"
0084             enabled: nextPageAvailable ? 0 : 1
0085             visible: nextPageAvailable ? 0 : 1
0086             
0087             background: Rectangle {
0088                 color: previousButton.activeFocus ?  Kirigami.Theme.highlightColor : Kirigami.Theme.backgroundColor
0089             }
0090             
0091             onClicked: {
0092                 triggerGuiEvent("YoutubeSkill.PreviousPage", {"Category": categoryName})
0093             }
0094             
0095             Keys.onReturnPressed: {
0096                 triggerGuiEvent("YoutubeSkill.PreviousPage", {"Category": categoryName})
0097             }
0098             
0099             KeyNavigation.up: videoListView
0100         }
0101         
0102         Button {
0103             id: nextButton
0104             text: "Next Page"
0105             enabled: nextPageAvailable ? 1 : 0
0106             visible: nextPageAvailable ? 1 : 0
0107             Layout.preferredWidth: previousButton.visible ? parent.width / 2 : parent.width
0108             Layout.fillHeight: true
0109             icon.name: "go-next-symbolic"
0110             
0111             background: Rectangle {
0112                 color: nextButton.activeFocus ?  Kirigami.Theme.highlightColor : Kirigami.Theme.backgroundColor
0113             }
0114             
0115             onClicked: {
0116                 triggerGuiEvent("YoutubeSkill.NextPage", {"Category": categoryName})
0117             }
0118             
0119             Keys.onReturnPressed: {
0120                 triggerGuiEvent("YoutubeSkill.NextPage", {"Category": categoryName})
0121             }
0122             
0123             KeyNavigation.up: videoListView
0124         }
0125     }
0126 }