1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00

Add queue play/remove menu

This commit is contained in:
Daniel Barber 2019-06-08 13:25:36 -04:00
parent 6fc7e09deb
commit aecff619a2
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
3 changed files with 20 additions and 5 deletions

View File

@ -43,13 +43,20 @@ class QueueViewController: NSViewController,
}
@IBAction func playTrack(_ sender: Any) {
let newQueuePos = queueView.selectedRow - 1
let queuePos = queueView.selectedRow - 1
if newQueuePos >= 0 {
App.store.dispatch(MPDPlayTrack(queuePos: newQueuePos))
if queuePos >= 0 {
App.store.dispatch(MPDPlayTrack(queuePos: queuePos))
}
}
@IBAction func playSongMenuAction(_ sender: NSMenuItem) {
let queuePos = queueView.clickedRow - 1
if queuePos >= 0 {
App.store.dispatch(MPDPlayTrack(queuePos: queuePos))
}
}
@IBAction func removeSongMenuAction(_ sender: NSMenuItem) {
let queuePos = queueView.clickedRow - 1

View File

@ -575,7 +575,7 @@
<rect key="frame" x="0.0" y="0.0" width="328" height="219"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="sourceList" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" outlineTableColumn="0Co-uF-CCB" id="jEJ-jg-fll">
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" selectionHighlightStyle="sourceList" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" indentationPerLevel="16" outlineTableColumn="0Co-uF-CCB" id="jEJ-jg-fll" customClass="QueueView" customModule="Persephone" customModuleProvider="target">
<rect key="frame" x="0.0" y="0.0" width="328" height="219"/>
<autoresizingMask key="autoresizingMask"/>
<size key="intercellSpacing" width="3" height="2"/>
@ -757,6 +757,12 @@
<customObject id="du4-e9-TfX" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
<menu id="dYA-Jm-eOa">
<items>
<menuItem title="Play" id="kp1-XJ-9CL">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="playSongMenuAction:" target="KIP-rq-4dM" id="1nO-8z-LT2"/>
</connections>
</menuItem>
<menuItem title="Remove" id="GaJ-qk-Cg4">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>

View File

@ -14,7 +14,9 @@ func queueReducer(action: Action, state: QueueState?) -> QueueState {
switch action {
case let action as UpdateQueueAction:
state.queuePos = -1
if state.queuePos >= action.queue.count {
state.queuePos = -1
}
state.queue = action.queue.enumerated().map { index, mpdSong in
let song = Song(mpdSong: mpdSong)