From a88d55d1a416f62cda0104e2ec334c177c04b80c Mon Sep 17 00:00:00 2001 From: Daniel Barber Date: Sat, 8 Jun 2019 13:25:36 -0400 Subject: [PATCH] Add queue play/remove menu --- Persephone/Controllers/QueueViewController.swift | 13 ++++++++++--- Persephone/Resources/Base.lproj/Main.storyboard | 8 +++++++- Persephone/State/Reducers/QueueReducer.swift | 4 +++- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Persephone/Controllers/QueueViewController.swift b/Persephone/Controllers/QueueViewController.swift index 8c8b066..ec3cb90 100644 --- a/Persephone/Controllers/QueueViewController.swift +++ b/Persephone/Controllers/QueueViewController.swift @@ -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 diff --git a/Persephone/Resources/Base.lproj/Main.storyboard b/Persephone/Resources/Base.lproj/Main.storyboard index 650d657..b11f160 100644 --- a/Persephone/Resources/Base.lproj/Main.storyboard +++ b/Persephone/Resources/Base.lproj/Main.storyboard @@ -575,7 +575,7 @@ - + @@ -757,6 +757,12 @@ + + + + + + diff --git a/Persephone/State/Reducers/QueueReducer.swift b/Persephone/State/Reducers/QueueReducer.swift index 6e1432e..0a09e06 100644 --- a/Persephone/State/Reducers/QueueReducer.swift +++ b/Persephone/State/Reducers/QueueReducer.swift @@ -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)