Skip to content

Commit

Permalink
Basic play queue support
Browse files Browse the repository at this point in the history
  • Loading branch information
thp committed Dec 17, 2014
1 parent af609a0 commit d12e871
Show file tree
Hide file tree
Showing 4 changed files with 75 additions and 3 deletions.
2 changes: 1 addition & 1 deletion gpodder-ui-qml
10 changes: 10 additions & 0 deletions qml/EpisodeItem.qml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ ListItem {
player.playbackEpisode(id);
}
}

onPressAndHold: {
player.enqueueEpisode(id, function () {
if (!player.isPlaying) {
player.jumpToQueueIndex(0);
} else {
pageStack.navigateForward(PageStackAction.Animated);
}
});
}
}

IconMenuItem {
Expand Down
15 changes: 15 additions & 0 deletions qml/EpisodesPage.qml
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,21 @@ Page {
}
}

MenuItem {
text: 'Enqueue episodes in player'
onClicked: {
var startPlayback = Util.atMostOnce(function () {
if (!player.isPlaying) {
player.jumpToQueueIndex(0);
}
});

episodeListModel.forEachEpisode(function (episode) {
player.enqueueEpisode(episode.id, startPlayback);
});
}
}

MenuItem {
text: 'Unsubscribe'
onClicked: {
Expand Down
51 changes: 49 additions & 2 deletions qml/PlayerPage.qml
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ Page {

Item {
width: parent.width
height: Theme.itemSizeSmall
height: Theme.paddingSmall
}

Label {
Expand All @@ -126,7 +126,7 @@ Page {

Item {
width: parent.width
height: Theme.paddingMedium
height: Theme.paddingSmall
}

Slider {
Expand All @@ -143,6 +143,53 @@ Page {
}
}

SectionHeader {
text: 'Play queue'
visible: playQueueRepeater.count > 0
}

Repeater {
id: playQueueRepeater
model: player.queue
property Item contextMenu

property var queueConnections: Connections {
target: player

onQueueUpdated: {
playQueueRepeater.model = player.queue;
}
}

ListItem {
id: playQueueListItem

width: parent.width

menu: ContextMenu {
MenuItem {
text: 'Remove from queue'
onClicked: player.removeQueueIndex(index);
}
}

Label {
anchors {
left: parent.left
right: parent.right
margins: Theme.paddingMedium
verticalCenter: parent.verticalCenter
}

text: modelData.title
}

onClicked: {
player.jumpToQueueIndex(index);
}
}
}

Item {
width: parent.width
height: Theme.itemSizeLarge
Expand Down

0 comments on commit d12e871

Please sign in to comment.