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:
parent
5291ee7153
commit
a88d55d1a4
@ -43,13 +43,20 @@ class QueueViewController: NSViewController,
|
|||||||
}
|
}
|
||||||
|
|
||||||
@IBAction func playTrack(_ sender: Any) {
|
@IBAction func playTrack(_ sender: Any) {
|
||||||
let newQueuePos = queueView.selectedRow - 1
|
let queuePos = queueView.selectedRow - 1
|
||||||
|
|
||||||
if newQueuePos >= 0 {
|
if queuePos >= 0 {
|
||||||
App.store.dispatch(MPDPlayTrack(queuePos: newQueuePos))
|
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) {
|
@IBAction func removeSongMenuAction(_ sender: NSMenuItem) {
|
||||||
let queuePos = queueView.clickedRow - 1
|
let queuePos = queueView.clickedRow - 1
|
||||||
|
|
||||||
|
|||||||
@ -575,7 +575,7 @@
|
|||||||
<rect key="frame" x="0.0" y="0.0" width="328" height="219"/>
|
<rect key="frame" x="0.0" y="0.0" width="328" height="219"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<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"/>
|
<rect key="frame" x="0.0" y="0.0" width="328" height="219"/>
|
||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<size key="intercellSpacing" width="3" height="2"/>
|
<size key="intercellSpacing" width="3" height="2"/>
|
||||||
@ -757,6 +757,12 @@
|
|||||||
<customObject id="du4-e9-TfX" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
<customObject id="du4-e9-TfX" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
<menu id="dYA-Jm-eOa">
|
<menu id="dYA-Jm-eOa">
|
||||||
<items>
|
<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">
|
<menuItem title="Remove" id="GaJ-qk-Cg4">
|
||||||
<modifierMask key="keyEquivalentModifierMask"/>
|
<modifierMask key="keyEquivalentModifierMask"/>
|
||||||
<connections>
|
<connections>
|
||||||
|
|||||||
@ -14,7 +14,9 @@ func queueReducer(action: Action, state: QueueState?) -> QueueState {
|
|||||||
|
|
||||||
switch action {
|
switch action {
|
||||||
case let action as UpdateQueueAction:
|
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
|
state.queue = action.queue.enumerated().map { index, mpdSong in
|
||||||
let song = Song(mpdSong: mpdSong)
|
let song = Song(mpdSong: mpdSong)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user