1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2024-11-22 17:25:17 +00:00
harbour-sailfin/qtquick/qml/main.qml

100 lines
2.6 KiB
QML
Raw Normal View History

2021-02-16 17:01:17 +00:00
import QtQuick 2.12
import QtQuick.Controls 2.12
2021-02-16 17:01:17 +00:00
import QtQuick.Window 2.12
import QtMultimedia 5.12
2021-03-24 19:04:03 +00:00
import nl.netsoj.chris.Jellyfin 1.0 as J
2021-02-16 17:01:17 +00:00
import "components"
2021-03-07 15:26:13 +00:00
import ".."
2021-03-24 19:04:03 +00:00
import "."
2021-02-16 17:01:17 +00:00
ApplicationWindow {
2021-03-07 15:26:13 +00:00
id: appWindow
2021-02-16 17:01:17 +00:00
width: 600
height: 600
visible: true
2021-03-07 15:26:13 +00:00
property int _oldDepth: 0
2021-03-29 21:48:16 +00:00
property alias playbackManager: playbackManager
J.PlaybackManager {
id: playbackManager
apiClient: ApiClient
2021-03-29 21:48:16 +00:00
}
2021-02-16 17:01:17 +00:00
background: Background {
2021-03-07 15:26:13 +00:00
id: background
anchors.fill: parent
}
StackView {
id: pageStack
2021-02-16 17:01:17 +00:00
anchors.fill: parent
2021-03-07 15:26:13 +00:00
onDepthChanged: {
if (depth >= _oldDepth) {
background.enter();
} else {
background.exit();
}
_oldDepth = depth
}
initialItem: Qt.resolvedUrl("pages/MainPage.qml")
Keys.onEscapePressed: pop()
2021-02-16 17:01:17 +00:00
}
Connections {
target: ApiClient
onSetupRequired: { pageStack.replace(Qt.resolvedUrl("pages/setup/ServerSelectPage.qml")); }
}
Component.onCompleted: {
ApiClient.restoreSavedSession()
}
2021-03-29 21:48:16 +00:00
footer: Item {
2021-03-29 21:48:16 +00:00
id: footer
height: Math.max(details.height, playButtons.height)
Column {
id: details
anchors.verticalCenter: parent.verticalCenter
Text {
text: qsTr("Now playing")
color: "white"
}
Text {
text: "%1\n%2".arg(playbackManager.item.name ? playbackManager.item.name : "Nothing").arg(playbackManager.streamUrl)
color: "white"
}
2021-03-29 21:48:16 +00:00
}
Row {
id: playButtons
anchors {
verticalCenter: parent.verticalCenter
right: parent.right
}
Button {
anchors.verticalCenter: parent.verticalCenter
text: "Previous"
onClicked: playbackManager.previous();
}
Button {
readonly property bool _playing: playbackManager.playbackState === MediaPlayer.PlayingState;
anchors.verticalCenter: parent.verticalCenter
text: _playing ? "Pause" : "Play"
onClicked: _playing ? playbackManager.pause() : playbackManager.play()
}
Button {
anchors.verticalCenter: parent.verticalCenter
text: "Next"
onClicked: playbackManager.next();
}
2021-03-29 21:48:16 +00:00
}
2021-03-29 21:48:16 +00:00
}
Rectangle {
color: "darkblue"
anchors.fill: footer
}
2021-02-16 17:01:17 +00:00
}