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
|
||||
|
||||
@NSApplicationMain
|
||||
class AppDelegate: NSObject, NSApplicationDelegate, MediaKeyTapDelegate, StoreSubscriber {
|
||||
|
||||
typealias StoreSubscriberStateType = PlayerState
|
||||
|
||||
class AppDelegate: NSObject,
|
||||
NSApplicationDelegate,
|
||||
MediaKeyTapDelegate {
|
||||
var preferences = Preferences()
|
||||
var mediaKeyTap: MediaKeyTap?
|
||||
|
||||
@ -87,9 +86,13 @@ class AppDelegate: NSObject, NSApplicationDelegate, MediaKeyTapDelegate, StoreSu
|
||||
AppDelegate.mpdClient.updateDatabase()
|
||||
}
|
||||
|
||||
@IBOutlet weak var updateDatabaseMenuItem: NSMenuItem!
|
||||
}
|
||||
|
||||
extension AppDelegate: StoreSubscriber {
|
||||
typealias StoreSubscriberStateType = PlayerState
|
||||
|
||||
func newState(state: PlayerState) {
|
||||
updateDatabaseMenuItem.isEnabled = !state.databaseUpdating
|
||||
}
|
||||
|
||||
@IBOutlet weak var updateDatabaseMenuItem: NSMenuItem!
|
||||
}
|
||||
|
||||
@ -12,10 +12,7 @@ import Differ
|
||||
|
||||
class AlbumViewController: NSViewController,
|
||||
NSCollectionViewDelegate,
|
||||
NSCollectionViewDelegateFlowLayout,
|
||||
StoreSubscriber {
|
||||
typealias StoreSubscriberStateType = AlbumListState
|
||||
|
||||
NSCollectionViewDelegateFlowLayout {
|
||||
var preferences = Preferences()
|
||||
|
||||
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) {
|
||||
if dataSource.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
|
||||
|
||||
class QueueViewController: NSViewController,
|
||||
NSOutlineViewDelegate,
|
||||
StoreSubscriber {
|
||||
typealias StoreSubscriberStateType = QueueState
|
||||
|
||||
NSOutlineViewDelegate {
|
||||
var dataSource = QueueDataSource()
|
||||
|
||||
@IBOutlet var queueView: NSOutlineView!
|
||||
@ -37,12 +34,6 @@ class QueueViewController: NSViewController,
|
||||
|
||||
AppDelegate.store.unsubscribe(self)
|
||||
}
|
||||
|
||||
func newState(state: StoreSubscriberStateType) {
|
||||
dataSource.setQueueIcon()
|
||||
queueView.reloadData()
|
||||
updateAlbumArt(state)
|
||||
}
|
||||
|
||||
override func keyDown(with event: NSEvent) {
|
||||
switch event.keyCode {
|
||||
@ -166,3 +157,13 @@ func cellForSongTitle(_ outlineView: NSOutlineView, with queueItem: QueueItem) -
|
||||
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 ReSwift
|
||||
|
||||
class WindowController: NSWindowController, StoreSubscriber {
|
||||
typealias StoreSubscriberStateType = PlayerState
|
||||
|
||||
class WindowController: NSWindowController {
|
||||
enum TransportAction: Int {
|
||||
case prevTrack, playPause, stop, nextTrack
|
||||
}
|
||||
@ -33,16 +31,6 @@ class WindowController: NSWindowController, StoreSubscriber {
|
||||
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) {
|
||||
switch event.keyCode {
|
||||
case NSEvent.keyCodeSpace:
|
||||
@ -161,3 +149,17 @@ class WindowController: NSWindowController, StoreSubscriber {
|
||||
@IBOutlet var trackRemaining: NSTextField!
|
||||
@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