1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2025-09-05 10:12:46 +00:00

Added more fields to Jellyfin::Item, update qml

* [UI] Improved: series season page now shows favourite and watched marks

Refractored some more QML to support camelCase items
This commit is contained in:
Chris Josten 2020-10-10 14:30:49 +02:00
parent d81fa50715
commit 8a683df2a2
13 changed files with 131 additions and 70 deletions

View file

@ -79,7 +79,7 @@ CoverBackground {
clip: true
height: row1.height
width: height
source: model.id ? Utils.itemModelImageUrl(ApiClient.baseUrl, model.id, model.imageTags["Primary"], "Primary", {"maxHeight": row1.height})
source: model.id ? Utils.itemModelImageUrl(ApiClient.baseUrl, model.id, model.imageTags.primary, "Primary", {"maxHeight": row1.height})
: ""
fillMode: Image.PreserveAspectCrop
}
@ -123,7 +123,7 @@ CoverBackground {
clip: true
height: row2.height
width: height
source: Utils.itemModelImageUrl(ApiClient.baseUrl, model.id, model.imageTags["Primary"], "Primary", {"maxHeight": row1.height})
source: Utils.itemModelImageUrl(ApiClient.baseUrl, model.id, model.imageTags.primary, "Primary", {"maxHeight": row1.height})
fillMode: Image.PreserveAspectCrop
}
}

View file

@ -29,16 +29,15 @@ CoverBackground {
property var mData: appWindow.itemData
RemoteImage {
anchors.fill: parent
source: mData.ImageTags["Primary"] ? ApiClient.baseUrl + "/Items/" + mData.Id
+ "/Images/Primary?maxHeight=" + height + "&tag=" + mData.ImageTags["Primary"]
: ""
source: Utils.itemImageUrl(ApiClient.baseUrl, itemData, "Primary", {"maxWidth": parent.width})
fillMode: Image.PreserveAspectCrop
onSourceChanged: console.log(source)
}
Shim {
// Movies usually show their name on the poster,
// so showing it here as well is a bit double
visible: itemData.Type !== "Movie"
visible: itemData.type !== "Movie"
anchors {
left: parent.left
right: parent.right
@ -52,7 +51,7 @@ CoverBackground {
top: parent.top
left: parent.left
}
width: itemData.UserData.PlayedPercentage / 100 * parent.width
width: itemData.userData.playedPercentage / 100 * parent.width
height: Theme.paddingSmall
color: Theme.highlightColor
}
@ -72,13 +71,13 @@ CoverBackground {
right: parent.right
}
color: Theme.primaryColor
text: itemData.Name
text: itemData.name
truncationMode: TruncationMode.Fade
}
Label {
visible: typeof itemData.RunTimeTicks !== "undefined"
visible: typeof itemData.runTimeTicks !== "undefined"
color: Theme.secondaryColor
text: Utils.ticksToText(itemData.RunTimeTicks)
text: Utils.ticksToText(itemData.runTimeTicks)
}
}
}

View file

@ -25,30 +25,22 @@ import nl.netsoj.chris.Jellyfin 1.0
import "../components"
CoverBackground {
PosterCover {
readonly property MediaPlayer player: appWindow.mediaPlayer
property var mData: appWindow.itemData
Rectangle {
// Wanted to display the currently running move on here, but it's hard :/
/*Rectangle {
anchors.fill: parent
color: "black"
// Wanted to display the currently running move on here, but it's hard :/
/*VideoOutput {
VideoOutput {
id: coverOutput
anchors.fill: parent
source: player
}*/
}
}
// As a temporary fallback, use the poster image
RemoteImage {
anchors.fill: parent
source: mData.ImageTags["Primary"] ? ApiClient.baseUrl + "/Items/" + mData.Id
+ "/Images/Primary?maxHeight=" + height + "&tag=" + mData.ImageTags["Primary"]
: ""
fillMode: Image.PreserveAspectCrop
}
}*/
Shim {
anchors {