/* 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 "../components" import nl.netsoj.chris.Jellyfin 1.0 as J /** * Page only containing a video player. * * On larger devices the video player could potentially be embedded somewhere else. */ Page { id: videoPage // PlaybackBar will hide itself when it encounters a page with such a property property bool __hidePlaybackBar: true property var itemData property int audioTrack property int subtitleTrack property bool resume: true allowedOrientations: { if (itemData.width !== null && itemData.height !== null) { return itemData.width / itemData.height > Screen.width / Screen.height ? Orientation.LandscapeMask : Orientation.PortraitMask } else { return Orientation.All } } showNavigationIndicator: videoPlayer.hudVisible VideoPlayer { id: videoPlayer anchors.fill: parent manager: appWindow.playbackManager title: itemData.name audioTrack: videoPage.audioTrack subtitleTrack: videoPage.subtitleTrack resume: videoPage.resume item: itemData onLandscapeChanged: { console.log("Is landscape: " + landscape) //appWindow.orientation = landscape ? Orientation.Landscape : Orientation.Portrait videoPage.allowedOrientations = landscape ? Orientation.LandscapeMask : Orientation.PortraitMask } } onStatusChanged: { switch(status) { case PageStatus.Deactivating: videoPlayer.stop() break; case PageStatus.Active: videoPlayer.start() appWindow.itemData = videoPage.itemData break; } } }