Consolidate input logic into BrowserView

This commit is contained in:
2022-09-03 03:24:02 -04:00
parent 628f02831e
commit 912ebc57ce
4 changed files with 85 additions and 101 deletions
+17 -19
View File
@@ -3,16 +3,20 @@ import QtQuick 2.12
import "./BrowserView" import "./BrowserView"
Row { Row {
anchors.fill: parent
property int selectedView: 0 property int selectedView: 0
property int selectedProvider: 0
property var db
Sidebar { Sidebar {
id: sidebar id: sidebar
maximized: parent.selectedView == 0 maximized: selectedView == 0
providers: database.Providers selectedElement: selectedProvider
providers: db.Providers
} }
ContentView { ContentView {
id: view id: view
providers: database.Providers viewSelected: selectedView == 1
selectedElement: selectedProvider
providers: db.Providers
} }
function mod(n, m) { function mod(n, m) {
return ((n % m) + m) % m; return ((n % m) + m) % m;
@@ -21,24 +25,18 @@ Row {
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 //view.viewSelected = true
} } else if (event.key == Qt.Key_Down) {
sidebar.Keys.pressed(event); selectedProvider = mod(selectedProvider + 1, db.Providers.length)
if (event.key == Qt.Key_Down) {
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.providers.length) selectedProvider = mod(selectedProvider - 1, db.Providers.length)
} else {
return
} }
event.accepted = true;
if (event.key == Qt.Key_Return) { }
console.log("Enter pressed") else if (selectedView == 1) {
mainTabView.currentIndex = 1
parent.children[1].children[0].play("./test1.mkv")
}
} else {
view.Keys.pressed(event); view.Keys.pressed(event);
} }
event.accepted = true;
} }
} }
+59 -64
View File
@@ -1,88 +1,84 @@
import QtQuick 2.12 import QtQuick 2.12
import QtQuick.Layouts 1.12
import QtQuick.Controls 1.4 import QtQuick.Controls 1.4
import Ikinuki.Client 1.0 import Ikinuki.Client 1.0
import "./ContentView" import "./ContentView"
TabView { StackLayout {
id: tabView id: tabView
property var providers property var providers
property bool viewSelected: false property bool viewSelected
property int selectedElement
state: viewSelected ? "selected" : "deselected" state: viewSelected ? "selected" : "deselected"
property int xSelect: 0 property int xSelect: 0
property int ySelect: 0 property int ySelect: 0
//width: viewSelected ? parent.width * 0.95 : parent.width * 0.8
width: parent.width * viewSelected ? 0.95 : 0.8 width: parent.width * viewSelected ? 0.95 : 0.8
height: parent.height height: parent.height
property var maxElements: providers.length
tabsVisible: false
Repeater { Repeater {
model: providers model: providers
Tab { Rectangle {
Rectangle { color: "#22282A"
color: "#22282A" Row {
Row { Item {
Item { height: 10
height: 10 width: 40
width: 40 }
} Column {
Column { Row {
Row {
Item {
height: parent.height
width: 16
}
Column {
spacing: 20
Item {
height: 20
width: parent.width
}
Text {
text: elementColumn.children[ySelect].provider.getShow(xSelect).title
font.pointSize: 30
color: "#cdd7d9"
}
Text {
text: elementColumn.children[ySelect].provider.getShow(xSelect).year
font.pointSize: 15
color: "#99afb4"
}
Text {
text: elementColumn.children[ySelect].provider.getShow(xSelect).description
font.pointSize: 13
color: "#cdd7d9"
width: tabView.parent.width * 0.6
wrapMode: Text.WordWrap
maximumLineCount: 4
elide: Text.ElideRight
}
}
}
Item { Item {
height: 40 height: parent.height
width: parent.width width: 16
} }
Column { Column {
id: elementColumn
spacing: 20 spacing: 20
Element { Item {
title: "In Progress" height: 20
provider: modelData width: parent.width
repeaterModel: modelData.inProgress
elemSelected: viewSelected && (0 == ySelect)
xIndex: xSelect
} }
Element { Text {
title: "Recently Added" text: elementColumn.children[ySelect].provider.getShow(xSelect).title
provider: modelData font.pointSize: 30
repeaterModel: modelData.recentlyAdded color: "#cdd7d9"
elemSelected: viewSelected && (1 == ySelect)
xIndex: xSelect
} }
Text {
text: elementColumn.children[ySelect].provider.getShow(xSelect).year
font.pointSize: 15
color: "#99afb4"
}
Text {
text: elementColumn.children[ySelect].provider.getShow(xSelect).description
font.pointSize: 13
color: "#cdd7d9"
width: tabView.parent.width * 0.6
wrapMode: Text.WordWrap
maximumLineCount: 4
elide: Text.ElideRight
}
}
}
Item {
height: 40
width: parent.width
}
Column {
id: elementColumn
spacing: 20
Element {
title: "In Progress"
provider: modelData
repeaterModel: modelData.inProgress
elemSelected: viewSelected && (0 == ySelect)
xIndex: xSelect
}
Element {
title: "Recently Added"
provider: modelData
repeaterModel: modelData.recentlyAdded
elemSelected: viewSelected && (1 == ySelect)
xIndex: xSelect
} }
} }
} }
@@ -116,10 +112,8 @@ TabView {
] ]
Keys.onPressed: (event)=> { Keys.onPressed: (event)=> {
console.log(Qt.Key_Left);
if (event.key == Qt.Key_Left) { if (event.key == Qt.Key_Left) {
if (xSelect == 0) { if (xSelect == 0) {
viewSelected = false;
parent.selectedView = 0; parent.selectedView = 0;
} else { } else {
xSelect--; xSelect--;
@@ -131,5 +125,6 @@ TabView {
} else if (event.key == Qt.Key_Up) { } else if (event.key == Qt.Key_Up) {
ySelect--; ySelect--;
} }
event.accepted = true;
} }
} }
+2 -17
View File
@@ -7,14 +7,12 @@ import "./Sidebar"
Rectangle { Rectangle {
id: rect id: rect
property var providers property var providers
property bool maximized: true property bool maximized
property int selectedElement: 0 property int selectedElement
property var max_elements: providers.length
width: parent.width * 0.2 width: parent.width * 0.2
height: parent.height height: parent.height
color: "#22282A" color: "#22282A"
state: maximized ? "maximized" : "minimized" state: maximized ? "maximized" : "minimized"
//color: "#0a3d4a"
Column { Column {
anchors.fill: parent anchors.fill: parent
Header {} Header {}
@@ -53,17 +51,4 @@ Rectangle {
} }
} }
] ]
function mod(n, m) {
return ((n % m) + m) % m;
}
Keys.onPressed: (event)=> {
// Handle scrolling
if (event.key == Qt.Key_Down) {
selectedElement = mod(selectedElement + 1, max_elements);
}
else if (event.key == Qt.Key_Up) {
selectedElement = mod(selectedElement - 1, max_elements);
}
event.accepted = true;
}
} }
+7 -1
View File
@@ -24,10 +24,16 @@ ApplicationWindow {
BrowserView { BrowserView {
id: browserView id: browserView
focus: true focus: true
db: database
} }
PlayerView { PlayerView {
id: playerView id: playerView
anchors.fill: parent }
Keys.onPressed: (event)=> {
if (event.key == Qt.Key_Return) {
currentIndex = 1
playerView.children[0].play("./test1.mkv")
}
} }
} }
} }