mirror of
https://github.com/HenkKalkwater/harbour-sailfin.git
synced 2024-11-22 09:15:18 +00:00
Added very simple photo viewer
This commit is contained in:
parent
d6a1f431b4
commit
e838fcc8a1
|
@ -179,6 +179,7 @@ public slots:
|
||||||
* @brief Shares the capabilities of this device to the server.
|
* @brief Shares the capabilities of this device to the server.
|
||||||
*/
|
*/
|
||||||
void postCapabilities();
|
void postCapabilities();
|
||||||
|
QString downloadUrl(const QString &itemId) const;
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void defaultNetworkErrorHandler(QNetworkReply::NetworkError error);
|
void defaultNetworkErrorHandler(QNetworkReply::NetworkError error);
|
||||||
|
|
|
@ -248,6 +248,10 @@ void ApiClient::postCapabilities() {
|
||||||
setDefaultErrorHandler(rep);
|
setDefaultErrorHandler(rep);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString ApiClient::downloadUrl(const QString &itemId) const {
|
||||||
|
return m_baseUrl + "/Items/" + itemId + "/Download?api_key=" + this->m_token;
|
||||||
|
}
|
||||||
|
|
||||||
void ApiClient::generateDeviceProfile() {
|
void ApiClient::generateDeviceProfile() {
|
||||||
QJsonObject root = DeviceProfile::generateProfile();
|
QJsonObject root = DeviceProfile::generateProfile();
|
||||||
m_playbackDeviceProfile = QJsonObject(root);
|
m_playbackDeviceProfile = QJsonObject(root);
|
||||||
|
|
|
@ -22,4 +22,7 @@ message($$SUBDIRS)
|
||||||
# modify the localized app name in the the .desktop file.
|
# modify the localized app name in the the .desktop file.
|
||||||
# TRANSLATIONS += \
|
# TRANSLATIONS += \
|
||||||
|
|
||||||
|
DISTFILES += \
|
||||||
|
sailfish/qml/pages/itemdetails/PhotoPage.qml
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -86,6 +86,8 @@ function getPageUrl(mediaType, itemType) {
|
||||||
return Qt.resolvedUrl("pages/itemdetails/CollectionPage.qml")
|
return Qt.resolvedUrl("pages/itemdetails/CollectionPage.qml")
|
||||||
case "video":
|
case "video":
|
||||||
return Qt.resolvedUrl("pages/itemdetails/VideoPage.qml")
|
return Qt.resolvedUrl("pages/itemdetails/VideoPage.qml")
|
||||||
|
case "photo":
|
||||||
|
return Qt.resolvedUrl("pages/itemdetails/PhotoPage.qml")
|
||||||
default:
|
default:
|
||||||
return Qt.resolvedUrl("pages/itemdetails/UnsupportedPage.qml")
|
return Qt.resolvedUrl("pages/itemdetails/UnsupportedPage.qml")
|
||||||
}
|
}
|
||||||
|
|
|
@ -41,14 +41,10 @@ SilicaItem {
|
||||||
property alias subtitleTrack: mediaSource.subtitleIndex
|
property alias subtitleTrack: mediaSource.subtitleIndex
|
||||||
property real startTicks: 0
|
property real startTicks: 0
|
||||||
|
|
||||||
// Force a Light on Dark theme since I doubt that there are persons who are willing to watch a Video
|
|
||||||
// on a white background.
|
|
||||||
palette.colorScheme: Theme.LightOnDark
|
|
||||||
|
|
||||||
// Blackground to prevent the ambience from leaking through
|
// Blackground to prevent the ambience from leaking through
|
||||||
Rectangle {
|
Rectangle {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
color: "black"
|
color: Theme.overlayBackgroundColor
|
||||||
}
|
}
|
||||||
|
|
||||||
PlaybackManager {
|
PlaybackManager {
|
||||||
|
|
35
sailfish/qml/pages/itemdetails/PhotoPage.qml
Normal file
35
sailfish/qml/pages/itemdetails/PhotoPage.qml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
import QtQuick 2.6
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
import nl.netsoj.chris.Jellyfin 1.0
|
||||||
|
|
||||||
|
BaseDetailPage {
|
||||||
|
id: pageRoot
|
||||||
|
navigationStyle: PageNavigation.Vertical
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
anchors.fill: parent
|
||||||
|
color: Theme.overlayBackgroundColor
|
||||||
|
}
|
||||||
|
|
||||||
|
PageHeader {
|
||||||
|
title: itemData.name
|
||||||
|
titleColor: Theme.primaryColor
|
||||||
|
}
|
||||||
|
|
||||||
|
Image {
|
||||||
|
id: image
|
||||||
|
source: ApiClient.downloadUrl(itemId)
|
||||||
|
fillMode: Image.PreserveAspectFit
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
opacity: status == Image.Ready ? 1.0 : 0.0
|
||||||
|
Behavior on opacity { FadeAnimator {}}
|
||||||
|
}
|
||||||
|
|
||||||
|
BusyIndicator {
|
||||||
|
running: image.status == Image.Loading
|
||||||
|
size: BusyIndicatorSize.Large
|
||||||
|
anchors.centerIn: parent
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue