mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
Move ReSwift stuff into extensions
This commit is contained in:
parent
81b0626017
commit
86feface73
@ -11,10 +11,9 @@ import ReSwift
|
|||||||
import MediaKeyTap
|
import MediaKeyTap
|
||||||
|
|
||||||
@NSApplicationMain
|
@NSApplicationMain
|
||||||
class AppDelegate: NSObject, NSApplicationDelegate, MediaKeyTapDelegate, StoreSubscriber {
|
class AppDelegate: NSObject,
|
||||||
|
NSApplicationDelegate,
|
||||||
typealias StoreSubscriberStateType = PlayerState
|
MediaKeyTapDelegate {
|
||||||
|
|
||||||
var preferences = Preferences()
|
var preferences = Preferences()
|
||||||
var mediaKeyTap: MediaKeyTap?
|
var mediaKeyTap: MediaKeyTap?
|
||||||
|
|
||||||
@ -87,9 +86,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, MediaKeyTapDelegate, StoreSu
|
|||||||
AppDelegate.mpdClient.updateDatabase()
|
AppDelegate.mpdClient.updateDatabase()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBOutlet weak var updateDatabaseMenuItem: NSMenuItem!
|
||||||
|
}
|
||||||
|
|
||||||
|
extension AppDelegate: StoreSubscriber {
|
||||||
|
typealias StoreSubscriberStateType = PlayerState
|
||||||
|
|
||||||
func newState(state: PlayerState) {
|
func newState(state: PlayerState) {
|
||||||
updateDatabaseMenuItem.isEnabled = !state.databaseUpdating
|
updateDatabaseMenuItem.isEnabled = !state.databaseUpdating
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBOutlet weak var updateDatabaseMenuItem: NSMenuItem!
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -12,10 +12,7 @@ import Differ
|
|||||||
|
|
||||||
class AlbumViewController: NSViewController,
|
class AlbumViewController: NSViewController,
|
||||||
NSCollectionViewDelegate,
|
NSCollectionViewDelegate,
|
||||||
NSCollectionViewDelegateFlowLayout,
|
NSCollectionViewDelegateFlowLayout {
|
||||||
StoreSubscriber {
|
|
||||||
typealias StoreSubscriberStateType = AlbumListState
|
|
||||||
|
|
||||||
var preferences = Preferences()
|
var preferences = Preferences()
|
||||||
|
|
||||||
let paddingWidth: CGFloat = 40
|
let paddingWidth: CGFloat = 40
|
||||||
@ -81,6 +78,13 @@ class AlbumViewController: NSViewController,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@IBOutlet var albumScrollView: NSScrollView!
|
||||||
|
@IBOutlet var albumCollectionView: NSCollectionView!
|
||||||
|
}
|
||||||
|
|
||||||
|
extension AlbumViewController: StoreSubscriber {
|
||||||
|
typealias StoreSubscriberStateType = AlbumListState
|
||||||
|
|
||||||
func newState(state: StoreSubscriberStateType) {
|
func newState(state: StoreSubscriberStateType) {
|
||||||
if dataSource.albums == [] {
|
if dataSource.albums == [] {
|
||||||
dataSource.albums = state.albums
|
dataSource.albums = state.albums
|
||||||
@ -94,7 +98,4 @@ class AlbumViewController: NSViewController,
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@IBOutlet var albumScrollView: NSScrollView!
|
|
||||||
@IBOutlet var albumCollectionView: NSCollectionView!
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -10,10 +10,7 @@ import Cocoa
|
|||||||
import ReSwift
|
import ReSwift
|
||||||
|
|
||||||
class QueueViewController: NSViewController,
|
class QueueViewController: NSViewController,
|
||||||
NSOutlineViewDelegate,
|
NSOutlineViewDelegate {
|
||||||
StoreSubscriber {
|
|
||||||
typealias StoreSubscriberStateType = QueueState
|
|
||||||
|
|
||||||
var dataSource = QueueDataSource()
|
var dataSource = QueueDataSource()
|
||||||
|
|
||||||
@IBOutlet var queueView: NSOutlineView!
|
@IBOutlet var queueView: NSOutlineView!
|
||||||
@ -38,12 +35,6 @@ class QueueViewController: NSViewController,
|
|||||||
AppDelegate.store.unsubscribe(self)
|
AppDelegate.store.unsubscribe(self)
|
||||||
}
|
}
|
||||||
|
|
||||||
func newState(state: StoreSubscriberStateType) {
|
|
||||||
dataSource.setQueueIcon()
|
|
||||||
queueView.reloadData()
|
|
||||||
updateAlbumArt(state)
|
|
||||||
}
|
|
||||||
|
|
||||||
override func keyDown(with event: NSEvent) {
|
override func keyDown(with event: NSEvent) {
|
||||||
switch event.keyCode {
|
switch event.keyCode {
|
||||||
case NSEvent.keyCodeSpace:
|
case NSEvent.keyCodeSpace:
|
||||||
@ -166,3 +157,13 @@ func cellForSongTitle(_ outlineView: NSOutlineView, with queueItem: QueueItem) -
|
|||||||
return cellView
|
return cellView
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension QueueViewController: StoreSubscriber {
|
||||||
|
typealias StoreSubscriberStateType = QueueState
|
||||||
|
|
||||||
|
func newState(state: StoreSubscriberStateType) {
|
||||||
|
dataSource.setQueueIcon()
|
||||||
|
queueView.reloadData()
|
||||||
|
updateAlbumArt(state)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
@ -9,9 +9,7 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import ReSwift
|
import ReSwift
|
||||||
|
|
||||||
class WindowController: NSWindowController, StoreSubscriber {
|
class WindowController: NSWindowController {
|
||||||
typealias StoreSubscriberStateType = PlayerState
|
|
||||||
|
|
||||||
enum TransportAction: Int {
|
enum TransportAction: Int {
|
||||||
case prevTrack, playPause, stop, nextTrack
|
case prevTrack, playPause, stop, nextTrack
|
||||||
}
|
}
|
||||||
@ -33,16 +31,6 @@ class WindowController: NSWindowController, StoreSubscriber {
|
|||||||
trackRemaining.font = .timerFont
|
trackRemaining.font = .timerFont
|
||||||
}
|
}
|
||||||
|
|
||||||
func newState(state: StoreSubscriberStateType) {
|
|
||||||
self.state = state.state
|
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
self.setTransportControlState(state)
|
|
||||||
self.setTrackProgressControls(state)
|
|
||||||
self.setDatabaseUpdatingIndicator(state)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
override func keyDown(with event: NSEvent) {
|
override func keyDown(with event: NSEvent) {
|
||||||
switch event.keyCode {
|
switch event.keyCode {
|
||||||
case NSEvent.keyCodeSpace:
|
case NSEvent.keyCodeSpace:
|
||||||
@ -161,3 +149,17 @@ class WindowController: NSWindowController, StoreSubscriber {
|
|||||||
@IBOutlet var trackRemaining: NSTextField!
|
@IBOutlet var trackRemaining: NSTextField!
|
||||||
@IBOutlet var databaseUpdatingIndicator: NSProgressIndicator!
|
@IBOutlet var databaseUpdatingIndicator: NSProgressIndicator!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension WindowController: StoreSubscriber {
|
||||||
|
typealias StoreSubscriberStateType = PlayerState
|
||||||
|
|
||||||
|
func newState(state: StoreSubscriberStateType) {
|
||||||
|
self.state = state.state
|
||||||
|
|
||||||
|
DispatchQueue.main.async {
|
||||||
|
self.setTransportControlState(state)
|
||||||
|
self.setTrackProgressControls(state)
|
||||||
|
self.setDatabaseUpdatingIndicator(state)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user