1
0
Fork 0
mirror of https://github.com/HenkKalkwater/harbour-sailfin.git synced 2024-11-23 01:35:18 +00:00
harbour-sailfin/sailfish/qml/components/PlayToolbar.qml

84 lines
2.6 KiB
QML
Raw Normal View History

/*
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
Column {
property alias imageSource : playImage.source
property real imageAspectRatio: 1.0
property real playProgress: 0.0
property bool favourited: false
2021-02-12 02:32:28 +00:00
property alias imageBlurhash: playImage.blurhash
2021-02-13 23:21:49 +00:00
signal playPressed(bool resume)
spacing: Theme.paddingLarge
BackgroundItem {
width: parent.width
height: width / imageAspectRatio
2021-02-12 02:32:28 +00:00
RemoteImage {
id: playImage
anchors.fill: parent
fillMode: Image.PreserveAspectCrop
clip: true
}
Rectangle {
anchors.fill: parent
color: Theme.rgba(Theme.overlayBackgroundColor, Theme.opacityLow)
}
Icon {
id: playButton
source: "image://theme/icon-l-play"
anchors.centerIn: parent
highlighted: parent.highlighted
}
Rectangle {
anchors {
left: parent.left
bottom: parent.bottom
}
height: Theme.paddingMedium
color: Theme.highlightColor
width: parent.width * playProgress
}
2021-02-13 23:21:49 +00:00
onClicked: playPressed(true)
}
Row {
anchors {
//left: parent.left
right: parent.right
leftMargin: Theme.horizontalPageMargin
rightMargin: Theme.horizontalPageMargin
}
spacing: Theme.paddingMedium
IconButton {
id: playFromBeginning
icon.source: "image://theme/icon-m-backup"
visible: playProgress > 0
2021-02-13 23:21:49 +00:00
onClicked: playPressed(false)
}
IconButton {
id: favouriteButton
icon.source: favourited ? "image://theme/icon-m-favorite-selected"
: "image://theme/icon-m-favorite"
}
}
}