Files
htpc-client/layouts/components/BrowserView.qml
T

48 lines
1.3 KiB
QML

import QtQuick 2.12
import Ikinuki.Client 1.0
import "./BrowserView"
Row {
required property Database db
property int selectedView: 0
property int selectedProvider: 0
property bool browse: false
Sidebar {
id: sidebar
maximized: selectedView == 0
selectedElement: selectedProvider
providers: db.Providers
}
ContentView {
id: view
viewSelected: selectedView == 1
currentIndex: selectedProvider + (browse ? db.Providers.length : 0)
providers: db.Providers
}
function mod(n, m) {
return ((n % m) + m) % m;
}
Keys.onPressed: (event)=> {
if (selectedView == 0) {
if (event.key == Qt.Key_Right) {
selectedView = 1;
} else if (event.key == Qt.Key_Down) {
selectedProvider = mod(selectedProvider + 1, db.Providers.length);
} else if (event.key == Qt.Key_Up) {
selectedProvider = mod(selectedProvider - 1, db.Providers.length);
} else if (event.key == Qt.Key_Return) {
browse = true;
selectedView = 1;
} else {
return;
}
event.accepted = true;
}
else if (selectedView == 1) {
view.Keys.pressed(event);
}
}
}