48 lines
1.3 KiB
QML
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);
|
|
}
|
|
}
|
|
}
|