diff --git a/Persephone.xcodeproj/project.pbxproj b/Persephone.xcodeproj/project.pbxproj index 479b940..3750e0e 100644 --- a/Persephone.xcodeproj/project.pbxproj +++ b/Persephone.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ E41B22C121FB6C3300D544F6 /* libmpdclient.2.dylib in Embed Libraries */ = {isa = PBXBuildFile; fileRef = E41B22BF21FB6BBA00D544F6 /* libmpdclient.2.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; E41B22C621FB932700D544F6 /* MPDClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E41B22C521FB932700D544F6 /* MPDClient.swift */; }; E465049A21E94DF500A70F4C /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E465049921E94DF500A70F4C /* WindowController.swift */; }; + E4928E0B2218D62A001D4BEA /* CGColor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4928E0A2218D62A001D4BEA /* CGColor.swift */; }; E4A642DA22090CBE00067D21 /* Status.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4A642D922090CBE00067D21 /* Status.swift */; }; E4E8CC902204EC7F0024217A /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4E8CC8F2204EC7F0024217A /* Delegate.swift */; }; E4E8CC922204F4B80024217A /* QueueViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4E8CC912204F4B80024217A /* QueueViewController.swift */; }; @@ -120,6 +121,7 @@ E41B22EA21FB966C00D544F6 /* queue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = queue.h; sourceTree = ""; }; E41B22EB21FB966C00D544F6 /* playlist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = playlist.h; sourceTree = ""; }; E465049921E94DF500A70F4C /* WindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = ""; }; + E4928E0A2218D62A001D4BEA /* CGColor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CGColor.swift; sourceTree = ""; }; E4A642D922090CBE00067D21 /* Status.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Status.swift; sourceTree = ""; }; E4E8CC8F2204EC7F0024217A /* Delegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Delegate.swift; sourceTree = ""; }; E4E8CC912204F4B80024217A /* QueueViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueueViewController.swift; sourceTree = ""; }; @@ -214,6 +216,7 @@ E408D3B7220DE8CC0006D9BE /* Extensions */ = { isa = PBXGroup; children = ( + E4928E0A2218D62A001D4BEA /* CGColor.swift */, E408D3B5220DD8970006D9BE /* Notification.swift */, E408D3B8220DE98F0006D9BE /* NSUserInterfaceItemIdentifier.swift */, ); @@ -483,6 +486,7 @@ buildActionMask = 2147483647; files = ( E408D3C2220E134F0006D9BE /* AlbumViewController.swift in Sources */, + E4928E0B2218D62A001D4BEA /* CGColor.swift in Sources */, E4A642DA22090CBE00067D21 /* Status.swift in Sources */, E4E8CC942206097F0024217A /* NotificationsController.swift in Sources */, E408D3B6220DD8970006D9BE /* Notification.swift in Sources */, diff --git a/Persephone/Assets.xcassets/blankAlbum.imageset/Contents.json b/Persephone/Assets.xcassets/blankAlbum.imageset/Contents.json index 120c648..aebbc33 100644 --- a/Persephone/Assets.xcassets/blankAlbum.imageset/Contents.json +++ b/Persephone/Assets.xcassets/blankAlbum.imageset/Contents.json @@ -5,7 +5,7 @@ }, { "idiom" : "universal", - "filename" : "blankAlbumLight-1.pdf", + "filename" : "blankAlbumLight.pdf", "appearances" : [ { "appearance" : "luminosity", @@ -32,4 +32,4 @@ "template-rendering-intent" : "original", "preserves-vector-representation" : true } -} \ No newline at end of file +} diff --git a/Persephone/Assets.xcassets/blankAlbum.imageset/blankAlbumLight-1.pdf b/Persephone/Assets.xcassets/blankAlbum.imageset/blankAlbumLight.pdf similarity index 100% rename from Persephone/Assets.xcassets/blankAlbum.imageset/blankAlbumLight-1.pdf rename to Persephone/Assets.xcassets/blankAlbum.imageset/blankAlbumLight.pdf diff --git a/Persephone/Controllers/AlbumViewController.swift b/Persephone/Controllers/AlbumViewController.swift index c1331c0..daba5b7 100644 --- a/Persephone/Controllers/AlbumViewController.swift +++ b/Persephone/Controllers/AlbumViewController.swift @@ -13,7 +13,6 @@ class AlbumViewController: NSViewController, NSCollectionViewDelegate, NSCollectionViewDelegateFlowLayout { var albums: [MPDClient.Album] = [] - var albumWidth: CGFloat = 0 let paddingWidth: CGFloat = 40 let gutterWidth: CGFloat = 20 @@ -48,10 +47,7 @@ class AlbumViewController: NSViewController, } func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem { - let item = collectionView.makeItem( - withIdentifier: NSUserInterfaceItemIdentifier("AlbumItem"), - for: indexPath - ) + let item = collectionView.makeItem(withIdentifier: .albumItem, for: indexPath) guard let albumItem = item as? AlbumItem else { return item } albumItem.view.wantsLayer = true diff --git a/Persephone/Extensions/CGColor.swift b/Persephone/Extensions/CGColor.swift new file mode 100644 index 0000000..17fe822 --- /dev/null +++ b/Persephone/Extensions/CGColor.swift @@ -0,0 +1,14 @@ +// +// NSColor.swift +// Persephone +// +// Created by Daniel Barber on 2019/2/16. +// Copyright © 2019 Dan Barber. All rights reserved. +// + +import Cocoa + +extension CGColor { + static let albumBorderColorLight = NSColor.black.withAlphaComponent(0.1).cgColor + static let albumBorderColorDark = NSColor.white.withAlphaComponent(0.1).cgColor +} diff --git a/Persephone/Extensions/NSUserInterfaceItemIdentifier.swift b/Persephone/Extensions/NSUserInterfaceItemIdentifier.swift index feaf63e..f80a19a 100644 --- a/Persephone/Extensions/NSUserInterfaceItemIdentifier.swift +++ b/Persephone/Extensions/NSUserInterfaceItemIdentifier.swift @@ -15,4 +15,6 @@ extension NSUserInterfaceItemIdentifier { static let queueHeading = NSUserInterfaceItemIdentifier("queueHeadingCell") static let queueSongArtist = NSUserInterfaceItemIdentifier("songArtistCell") static let queueSongTitle = NSUserInterfaceItemIdentifier("songTitleCell") + + static let albumItem = NSUserInterfaceItemIdentifier("AlbumItem") } diff --git a/Persephone/MPDClient/MPDClient.swift b/Persephone/MPDClient/MPDClient.swift index 8019820..54c298d 100644 --- a/Persephone/MPDClient/MPDClient.swift +++ b/Persephone/MPDClient/MPDClient.swift @@ -177,10 +177,10 @@ class MPDClient { var albums: [Album] = [] var artist: String = "" - mpd_search_db_tags(self.connection, MPD_TAG_ALBUM) - mpd_search_add_group_tag(self.connection, MPD_TAG_ALBUM_ARTIST) - mpd_search_commit(self.connection) - while let mpdPair = mpd_recv_pair(self.connection) { + mpd_search_db_tags(connection, MPD_TAG_ALBUM) + mpd_search_add_group_tag(connection, MPD_TAG_ALBUM_ARTIST) + mpd_search_commit(connection) + while let mpdPair = mpd_recv_pair(connection) { let pair = Pair(mpdPair) switch pair.name { @@ -192,7 +192,7 @@ class MPDClient { break } - mpd_return_pair(self.connection, pair.mpdPair) + mpd_return_pair(connection, pair.mpdPair) } delegate?.didLoadAlbums(mpdClient: self, albums: albums) diff --git a/Persephone/MPDClient/Models/Album.swift b/Persephone/MPDClient/Models/Album.swift index 2cb6f6c..107adf0 100644 --- a/Persephone/MPDClient/Models/Album.swift +++ b/Persephone/MPDClient/Models/Album.swift @@ -9,13 +9,8 @@ import Foundation extension MPDClient { - class Album { + struct Album { let title: String let artist: String - - init(title: String, artist: String) { - self.title = title - self.artist = artist - } } } diff --git a/Persephone/Views/AlbumItem.swift b/Persephone/Views/AlbumItem.swift index b9f4071..e9a3be4 100644 --- a/Persephone/Views/AlbumItem.swift +++ b/Persephone/Views/AlbumItem.swift @@ -9,13 +9,10 @@ import Cocoa class AlbumItem: NSCollectionViewItem { - let borderColorLight = NSColor.black.withAlphaComponent(0.1).cgColor - let borderColorDark = NSColor.white.withAlphaComponent(0.1).cgColor var observer: NSKeyValueObservation? override func viewDidLoad() { super.viewDidLoad() - // Do view setup here. albumCoverView.wantsLayer = true albumCoverView.layer?.cornerRadius = 3 @@ -39,9 +36,9 @@ class AlbumItem: NSCollectionViewItem { let darkMode = NSApp.effectiveAppearance.bestMatch(from: [.darkAqua, .aqua]) == .darkAqua - albumCoverView.layer?.borderColor = darkMode ? borderColorDark : borderColorLight + albumCoverView.layer?.borderColor = darkMode ? .albumBorderColorDark : .albumBorderColorLight } else { - albumCoverView.layer?.borderColor = borderColorLight + albumCoverView.layer?.borderColor = .albumBorderColorLight } }