1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2024-11-15 14:05:17 +00:00
harbour-sailfin/qml/pages/itemdetails/SeriesPage.qml
Chris Josten 5057867ade Added SortOrder and fallback pages.
Once again I couldn't stop myself from being sidetracked.
[Collections]: Added: allow specifying sort order (Ascending, Descending)
[General]: Improved: Added video fallback page to allow unknown video types to be played, although without extra metadata.
[General]: Improved: Added folder fallback, so unknown collection types are at least displayed without metadata.
2020-10-01 11:57:55 +02:00

94 lines
2.9 KiB
QML

/*
Sailfin: a Jellyfin client written using Qt
Copyright (C) 2020 Chris Josten
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
import QtQuick 2.6
import Sailfish.Silica 1.0
import nl.netsoj.chris.Jellyfin 1.0
import "../../components"
import "../.."
BaseDetailPage {
SilicaFlickable {
anchors.fill: parent
contentHeight: content.height
Column {
id: content
width: parent.width
PageHeader {
id: header
title: itemData.Name
visible: !hasLogo
}
Item {
visible: hasLogo
width: parent.width
height: Math.max(logoImage.height, header.height) + 2 * Theme.paddingLarge
RemoteImage {
id: logoImage
anchors.centerIn: parent
source: Utils.itemImageUrl(ApiClient.baseUrl, itemData, "Logo")
}
}
PlainLabel {
id: overviewText
text: itemData.Overview
font.pixelSize: Theme.fontSizeSmall
color: Theme.secondaryHighlightColor
}
SectionHeader {
//: Seasons of a (TV) show
text: qsTr("Seasons")
}
ShowSeasonsModel {
id: showSeasonsModel
apiClient: ApiClient
show: itemData.Id
}
SilicaListView {
model: showSeasonsModel
clip: true
width: parent.width
height: Screen.width / 2
orientation: ListView.Horizontal
spacing: Theme.paddingLarge
leftMargin: Theme.horizontalPageMargin
rightMargin: Theme.horizontalPageMargin
delegate: LibraryItemDelegate {
poster: Utils.itemModelImageUrl(ApiClient.baseUrl, model.id, model.imageTags["Primary"], "Primary", {"maxHeight": height})
title: model.name
onClicked: pageStack.push(Utils.getPageUrl(model.mediaType, model.type), {"itemId": model.id})
}
}
}
}
onItemDataChanged: {
showSeasonsModel.show = itemData.Id
showSeasonsModel.reload()
}
}