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