Sleep timer UI
This commit is contained in:
parent
3cc6847ee4
commit
af609a0b3f
4 changed files with 100 additions and 1 deletions
|
@ -3,7 +3,6 @@
|
||||||
# be started with qmlscene directly from a source checkout
|
# be started with qmlscene directly from a source checkout
|
||||||
|
|
||||||
ln -sf gpodder-core/src/gpodder .
|
ln -sf gpodder-core/src/gpodder .
|
||||||
ln -sf gpodder-core/src/jsonconfig.py .
|
|
||||||
ln -sf podcastparser/podcastparser.py .
|
ln -sf podcastparser/podcastparser.py .
|
||||||
ln -sf gpodder-ui-qml/main.py .
|
ln -sf gpodder-ui-qml/main.py .
|
||||||
ln -sf ../gpodder-ui-qml/common qml
|
ln -sf ../gpodder-ui-qml/common qml
|
||||||
|
|
|
@ -39,6 +39,17 @@ Column {
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
visible: player.sleepTimerRunning
|
||||||
|
text: 'Sleep timer: ' + Util.formatDuration(player.sleepTimerRemaining)
|
||||||
|
|
||||||
|
width: parent.width
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
color: Theme.secondaryHighlightColor
|
||||||
|
wrapMode: Text.Wrap
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
text: player.episode_title
|
text: player.episode_title
|
||||||
width: parent.width
|
width: parent.width
|
||||||
|
|
|
@ -38,6 +38,17 @@ Page {
|
||||||
model: player.episode_chapters
|
model: player.episode_chapters
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MenuItem {
|
||||||
|
text: player.sleepTimerRunning ? 'Stop sleep timer' : 'Sleep timer'
|
||||||
|
onClicked: {
|
||||||
|
if (player.sleepTimerRunning) {
|
||||||
|
player.stopSleepTimer();
|
||||||
|
} else {
|
||||||
|
pageStack.push('SleepTimerDialog.qml', { player: player });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
MenuItem {
|
MenuItem {
|
||||||
text: player.isPlaying ? 'Pause': 'Play'
|
text: player.isPlaying ? 'Pause': 'Play'
|
||||||
onClicked: {
|
onClicked: {
|
||||||
|
@ -73,6 +84,22 @@ Page {
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
right: parent.right
|
||||||
|
margins: Theme.paddingLarge
|
||||||
|
}
|
||||||
|
|
||||||
|
visible: player.sleepTimerRunning
|
||||||
|
|
||||||
|
truncationMode: TruncationMode.Fade
|
||||||
|
horizontalAlignment: Text.AlignRight
|
||||||
|
text: 'Sleep timer: ' + Util.formatDuration(player.sleepTimerRemaining)
|
||||||
|
color: Theme.rgba(Theme.highlightColor, 0.7)
|
||||||
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
|
}
|
||||||
|
|
||||||
Connections {
|
Connections {
|
||||||
target: player
|
target: player
|
||||||
onPositionChanged: {
|
onPositionChanged: {
|
||||||
|
|
62
qml/SleepTimerDialog.qml
Normal file
62
qml/SleepTimerDialog.qml
Normal file
|
@ -0,0 +1,62 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* gPodder QML UI Reference Implementation
|
||||||
|
* Copyright (c) 2014, Thomas Perl <m@thp.io>
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
* purpose with or without fee is hereby granted, provided that the above
|
||||||
|
* copyright notice and this permission notice appear in all copies.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||||
|
* REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||||
|
* AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||||
|
* INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||||
|
* LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Sailfish.Silica 1.0
|
||||||
|
|
||||||
|
Page {
|
||||||
|
id: sleepTimerSelector
|
||||||
|
|
||||||
|
property var player
|
||||||
|
|
||||||
|
SilicaListView {
|
||||||
|
anchors.fill: parent
|
||||||
|
|
||||||
|
header: PageHeader {
|
||||||
|
title: 'Sleep timer'
|
||||||
|
}
|
||||||
|
|
||||||
|
model: player.durationChoices
|
||||||
|
|
||||||
|
delegate: ListItem {
|
||||||
|
id: listItem
|
||||||
|
|
||||||
|
highlighted: down
|
||||||
|
|
||||||
|
onClicked: {
|
||||||
|
sleepTimerSelector.player.startSleepTimer(60 * modelData);
|
||||||
|
pageStack.pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
Label {
|
||||||
|
anchors {
|
||||||
|
left: parent.left
|
||||||
|
verticalCenter: parent.verticalCenter
|
||||||
|
margins: Theme.paddingMedium
|
||||||
|
}
|
||||||
|
|
||||||
|
color: listItem.highlighted ? Theme.highlightColor : Theme.primaryColor
|
||||||
|
text: modelData + ' minutes'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
VerticalScrollDecorator { }
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue