Add input logic for scrolling through ContentView
This commit is contained in:
@@ -5,6 +5,9 @@ import Ikinuki.Client 1.0
|
||||
|
||||
TabView {
|
||||
property var providers
|
||||
property bool viewSelected: false
|
||||
property int xSelect: 0
|
||||
property int ySelect: 0
|
||||
width: parent.width * 0.7
|
||||
height: parent.height
|
||||
|
||||
@@ -27,15 +30,36 @@ TabView {
|
||||
title: "In Progress"
|
||||
provider: modelData
|
||||
repeaterModel: modelData.inProgress
|
||||
elemSelected: viewSelected && (0 == ySelect)
|
||||
xIndex: xSelect
|
||||
}
|
||||
ContentViewElement {
|
||||
title: "Recently Added"
|
||||
provider: modelData
|
||||
repeaterModel: modelData.recentlyAdded
|
||||
elemSelected: viewSelected && (1 == ySelect)
|
||||
xIndex: xSelect
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Keys.onPressed: (event)=> {
|
||||
console.log(Qt.Key_Left);
|
||||
if (event.key == Qt.Key_Left) {
|
||||
if (xSelect == 0) {
|
||||
viewSelected = false;
|
||||
parent.selectedView = 0;
|
||||
} else {
|
||||
xSelect--;
|
||||
}
|
||||
} else if (event.key == Qt.Key_Right) {
|
||||
xSelect++;
|
||||
} else if (event.key == Qt.Key_Down) {
|
||||
ySelect++;
|
||||
} else if (event.key == Qt.Key_Up) {
|
||||
ySelect--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,6 +6,8 @@ Column {
|
||||
property var title
|
||||
property var provider
|
||||
property var repeaterModel
|
||||
property bool elemSelected
|
||||
property int xIndex
|
||||
Item {
|
||||
width: 10
|
||||
height: 40
|
||||
@@ -20,13 +22,9 @@ Column {
|
||||
height: 40
|
||||
}
|
||||
Row {
|
||||
//spacing: 80
|
||||
//Item{
|
||||
// width: -10
|
||||
// height: 10
|
||||
//}
|
||||
Repeater {
|
||||
property var provider: modelData
|
||||
//property var yIndex: index
|
||||
//id: inProgressRepeater
|
||||
model: repeaterModel
|
||||
Row{
|
||||
@@ -38,12 +36,30 @@ Column {
|
||||
id: showColumn
|
||||
//property var show: inProgressRepeater.provider.getShow(modelData)
|
||||
property var show: provider.getShow(modelData)
|
||||
Image {
|
||||
Item {
|
||||
property int childHeight: 300
|
||||
property int childWidth: 300 * 0.68
|
||||
property int borderWidth: 7
|
||||
property int borderRadius: 7
|
||||
height: 300
|
||||
width: 300 * 0.68
|
||||
source: showColumn.show.poster
|
||||
mipmap: true
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
width: (300 * 0.68) + 14
|
||||
Image {
|
||||
height: parent.childHeight
|
||||
width: parent.childWidth
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
source: showColumn.show.poster
|
||||
mipmap: true
|
||||
}
|
||||
Rectangle {
|
||||
color: "transparent"
|
||||
border.color: "orange"
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
border.width: parent.borderWidth
|
||||
radius: parent.borderRadius
|
||||
visible: elemSelected && (index == xIndex)
|
||||
}
|
||||
}
|
||||
Item {width: 1; height: 15}
|
||||
Text {
|
||||
|
||||
@@ -36,15 +36,15 @@ ApplicationWindow {
|
||||
if (selectedView == 0) {
|
||||
if (event.key == Qt.Key_Right) {
|
||||
selectedView = 1;
|
||||
view.viewSelected = true
|
||||
}
|
||||
sidebar.Keys.pressed(event);
|
||||
|
||||
if (event.key == Qt.Key_Down) {
|
||||
view.currentIndex = mod(view.currentIndex + 1, view.maxElements)
|
||||
view.currentIndex = mod(view.currentIndex + 1, view.providers.length)
|
||||
} else if (event.key == Qt.Key_Up) {
|
||||
view.currentIndex = mod(view.currentIndex - 1, view.maxElements)
|
||||
view.currentIndex = mod(view.currentIndex - 1, view.providers.length)
|
||||
}
|
||||
console.log(view.currentIndex)
|
||||
event.accepted = true;
|
||||
} else {
|
||||
view.Keys.pressed(event);
|
||||
|
||||
Reference in New Issue
Block a user