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

Add and wire up "Play Next" song menu item

This commit is contained in:
Daniel Barber 2019-06-22 11:39:55 -04:00
parent 97f98e7a40
commit 616880415f
Signed by: danbarber
GPG Key ID: 931D8112E0103DD8
2 changed files with 23 additions and 2 deletions

View File

@ -19,6 +19,7 @@ class AppDelegate: NSObject,
@IBOutlet weak var mainWindowMenuItem: NSMenuItem!
@IBOutlet weak var updateDatabaseMenuItem: NSMenuItem!
@IBOutlet weak var playSelectedSongMenuItem: NSMenuItem!
@IBOutlet weak var playSelectedSongNextMenuItem: NSMenuItem!
@IBOutlet weak var addSelectedSongToQueueMenuItem: NSMenuItem!
func applicationDidFinishLaunching(_ aNotification: Notification) {
@ -104,6 +105,7 @@ class AppDelegate: NSObject,
func setSongMenuItemsState(selectedSong: Song?) {
playSelectedSongMenuItem.isEnabled = selectedSong != nil
playSelectedSongNextMenuItem.isEnabled = selectedSong != nil
addSelectedSongToQueueMenuItem.isEnabled = selectedSong != nil
}
@ -165,6 +167,17 @@ class AppDelegate: NSObject,
App.store.dispatch(MPDAppendTrack(song: song.mpdSong))
App.store.dispatch(MPDPlayTrack(queuePos: queueLength))
}
@IBAction func playSelectedSongNextAction(_ sender: NSMenuItem) {
let queuePos = App.store.state.queueState.queuePos
guard let song = App.store.state.uiState.selectedSong,
queuePos > -1
else { return }
App.store.dispatch(
MPDAddSongToQueue(songUri: song.mpdSong.uriString, queuePos: queuePos + 1)
)
}
@IBAction func addSelectedSongToQueueAction(_ sender: NSMenuItem) {
guard let song = App.store.state.uiState.selectedSong
else { return }

View File

@ -98,13 +98,20 @@
<menuItem title="Song" id="elk-xW-VXb">
<menu key="submenu" title="Song" autoenablesItems="NO" id="RuT-kk-xTu">
<items>
<menuItem title="Play Selected Song" enabled="NO" id="dyT-9E-DRY">
<menuItem title="Play Now" enabled="NO" id="dyT-9E-DRY">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="playSelectedSongAction:" target="Voe-Tx-rLC" id="jIo-ux-Mhr"/>
</connections>
</menuItem>
<menuItem title="Add Selected Song to Queue" enabled="NO" id="JFH-jT-sBp">
<menuItem title="Play Next" id="Q8j-jr-IOp">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="playSelectedSongNextAction:" target="Voe-Tx-rLC" id="HQR-6p-8g7"/>
</connections>
</menuItem>
<menuItem isSeparatorItem="YES" id="ml8-jV-bZq"/>
<menuItem title="Add to Queue" enabled="NO" id="JFH-jT-sBp">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="addSelectedSongToQueueAction:" target="Voe-Tx-rLC" id="9j9-Xd-g0D"/>
@ -173,6 +180,7 @@
<outlet property="addSelectedSongToQueueMenuItem" destination="JFH-jT-sBp" id="9dy-sJ-XYS"/>
<outlet property="mainWindowMenuItem" destination="1Sq-L7-znT" id="dC6-yY-6Ss"/>
<outlet property="playSelectedSongMenuItem" destination="dyT-9E-DRY" id="UY2-SN-YMF"/>
<outlet property="playSelectedSongNextMenuItem" destination="Q8j-jr-IOp" id="Jqh-ia-sMK"/>
<outlet property="updateDatabaseMenuItem" destination="EJg-93-1F6" id="gMf-SQ-lyI"/>
</connections>
</customObject>