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)
}
if (event.key == Qt.Key_Return) {
console.log("Enter pressed")
mainTabView.currentIndex = 1
parent.children[1].children[0].play("./test1.mkv")
}
} else { } else {
view.Keys.pressed(event); return
} }
event.accepted = true; event.accepted = true;
} }
else if (selectedView == 1) {
view.Keys.pressed(event);
}
}
} }
+5 -10
View File
@@ -1,27 +1,24 @@
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 {
@@ -88,7 +85,6 @@ TabView {
} }
} }
} }
}
states: [ states: [
State { State {
name: "deselected" name: "deselected"
@@ -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")
}
} }
} }
} }