Add input logic for scrolling through ContentView

This commit is contained in:
2022-08-22 18:39:43 -04:00
parent 857eacdf15
commit d47e431afc
3 changed files with 53 additions and 13 deletions
+24
View File
@@ -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--;
}
}
}
+26 -10
View File
@@ -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 {
+3 -3
View File
@@ -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);