Warning, /plasma-bigscreen/youtube-voice-application/ui/+mediacenter/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 * 2.5
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 busyIndicatorPop.open()
0094 nextButton.forceActiveFocus()
0095 }
0096
0097 Keys.onReturnPressed: {
0098 triggerGuiEvent("YoutubeSkill.PreviousPage", {"Category": categoryName})
0099 busyIndicatorPop.open()
0100 nextButton.forceActiveFocus()
0101 }
0102
0103 KeyNavigation.up: videoListView
0104 }
0105
0106 Button {
0107 id: nextButton
0108 text: "Next Page"
0109 enabled: nextPageAvailable ? 1 : 0
0110 visible: nextPageAvailable ? 1 : 0
0111 Layout.preferredWidth: previousButton.visible ? parent.width / 2 : parent.width
0112 Layout.fillHeight: true
0113 icon.name: "go-next-symbolic"
0114
0115 background: Rectangle {
0116 color: nextButton.activeFocus ? Kirigami.Theme.highlightColor : Kirigami.Theme.backgroundColor
0117 }
0118
0119 onClicked: {
0120 triggerGuiEvent("YoutubeSkill.NextPage", {"Category": categoryName})
0121 busyIndicatorPop.open()
0122 previousButton.forceActiveFocus()
0123 }
0124
0125 Keys.onReturnPressed: {
0126 triggerGuiEvent("YoutubeSkill.NextPage", {"Category": categoryName})
0127 busyIndicatorPop.open()
0128 previousButton.forceActiveFocus()
0129 }
0130
0131 KeyNavigation.up: videoListView
0132 }
0133 }
0134 }