mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
Address PR feedback
This commit is contained in:
parent
2f36891053
commit
eb32f8cdf6
@ -22,6 +22,7 @@
|
|||||||
E41B22C121FB6C3300D544F6 /* libmpdclient.2.dylib in Embed Libraries */ = {isa = PBXBuildFile; fileRef = E41B22BF21FB6BBA00D544F6 /* libmpdclient.2.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
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 */; };
|
E41B22C621FB932700D544F6 /* MPDClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = E41B22C521FB932700D544F6 /* MPDClient.swift */; };
|
||||||
E465049A21E94DF500A70F4C /* WindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E465049921E94DF500A70F4C /* WindowController.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 */; };
|
E4A642DA22090CBE00067D21 /* Status.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4A642D922090CBE00067D21 /* Status.swift */; };
|
||||||
E4E8CC902204EC7F0024217A /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4E8CC8F2204EC7F0024217A /* Delegate.swift */; };
|
E4E8CC902204EC7F0024217A /* Delegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4E8CC8F2204EC7F0024217A /* Delegate.swift */; };
|
||||||
E4E8CC922204F4B80024217A /* QueueViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4E8CC912204F4B80024217A /* QueueViewController.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 = "<group>"; };
|
E41B22EA21FB966C00D544F6 /* queue.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = queue.h; sourceTree = "<group>"; };
|
||||||
E41B22EB21FB966C00D544F6 /* playlist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = playlist.h; sourceTree = "<group>"; };
|
E41B22EB21FB966C00D544F6 /* playlist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = playlist.h; sourceTree = "<group>"; };
|
||||||
E465049921E94DF500A70F4C /* WindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = "<group>"; };
|
E465049921E94DF500A70F4C /* WindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowController.swift; sourceTree = "<group>"; };
|
||||||
|
E4928E0A2218D62A001D4BEA /* CGColor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CGColor.swift; sourceTree = "<group>"; };
|
||||||
E4A642D922090CBE00067D21 /* Status.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Status.swift; sourceTree = "<group>"; };
|
E4A642D922090CBE00067D21 /* Status.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Status.swift; sourceTree = "<group>"; };
|
||||||
E4E8CC8F2204EC7F0024217A /* Delegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Delegate.swift; sourceTree = "<group>"; };
|
E4E8CC8F2204EC7F0024217A /* Delegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Delegate.swift; sourceTree = "<group>"; };
|
||||||
E4E8CC912204F4B80024217A /* QueueViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueueViewController.swift; sourceTree = "<group>"; };
|
E4E8CC912204F4B80024217A /* QueueViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueueViewController.swift; sourceTree = "<group>"; };
|
||||||
@ -214,6 +216,7 @@
|
|||||||
E408D3B7220DE8CC0006D9BE /* Extensions */ = {
|
E408D3B7220DE8CC0006D9BE /* Extensions */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
E4928E0A2218D62A001D4BEA /* CGColor.swift */,
|
||||||
E408D3B5220DD8970006D9BE /* Notification.swift */,
|
E408D3B5220DD8970006D9BE /* Notification.swift */,
|
||||||
E408D3B8220DE98F0006D9BE /* NSUserInterfaceItemIdentifier.swift */,
|
E408D3B8220DE98F0006D9BE /* NSUserInterfaceItemIdentifier.swift */,
|
||||||
);
|
);
|
||||||
@ -483,6 +486,7 @@
|
|||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
E408D3C2220E134F0006D9BE /* AlbumViewController.swift in Sources */,
|
E408D3C2220E134F0006D9BE /* AlbumViewController.swift in Sources */,
|
||||||
|
E4928E0B2218D62A001D4BEA /* CGColor.swift in Sources */,
|
||||||
E4A642DA22090CBE00067D21 /* Status.swift in Sources */,
|
E4A642DA22090CBE00067D21 /* Status.swift in Sources */,
|
||||||
E4E8CC942206097F0024217A /* NotificationsController.swift in Sources */,
|
E4E8CC942206097F0024217A /* NotificationsController.swift in Sources */,
|
||||||
E408D3B6220DD8970006D9BE /* Notification.swift in Sources */,
|
E408D3B6220DD8970006D9BE /* Notification.swift in Sources */,
|
||||||
|
|||||||
@ -5,7 +5,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"filename" : "blankAlbumLight-1.pdf",
|
"filename" : "blankAlbumLight.pdf",
|
||||||
"appearances" : [
|
"appearances" : [
|
||||||
{
|
{
|
||||||
"appearance" : "luminosity",
|
"appearance" : "luminosity",
|
||||||
@ -32,4 +32,4 @@
|
|||||||
"template-rendering-intent" : "original",
|
"template-rendering-intent" : "original",
|
||||||
"preserves-vector-representation" : true
|
"preserves-vector-representation" : true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -13,7 +13,6 @@ class AlbumViewController: NSViewController,
|
|||||||
NSCollectionViewDelegate,
|
NSCollectionViewDelegate,
|
||||||
NSCollectionViewDelegateFlowLayout {
|
NSCollectionViewDelegateFlowLayout {
|
||||||
var albums: [MPDClient.Album] = []
|
var albums: [MPDClient.Album] = []
|
||||||
var albumWidth: CGFloat = 0
|
|
||||||
let paddingWidth: CGFloat = 40
|
let paddingWidth: CGFloat = 40
|
||||||
let gutterWidth: CGFloat = 20
|
let gutterWidth: CGFloat = 20
|
||||||
|
|
||||||
@ -48,10 +47,7 @@ class AlbumViewController: NSViewController,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
|
func collectionView(_ collectionView: NSCollectionView, itemForRepresentedObjectAt indexPath: IndexPath) -> NSCollectionViewItem {
|
||||||
let item = collectionView.makeItem(
|
let item = collectionView.makeItem(withIdentifier: .albumItem, for: indexPath)
|
||||||
withIdentifier: NSUserInterfaceItemIdentifier("AlbumItem"),
|
|
||||||
for: indexPath
|
|
||||||
)
|
|
||||||
guard let albumItem = item as? AlbumItem else { return item }
|
guard let albumItem = item as? AlbumItem else { return item }
|
||||||
|
|
||||||
albumItem.view.wantsLayer = true
|
albumItem.view.wantsLayer = true
|
||||||
|
|||||||
14
Persephone/Extensions/CGColor.swift
Normal file
14
Persephone/Extensions/CGColor.swift
Normal file
@ -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
|
||||||
|
}
|
||||||
@ -15,4 +15,6 @@ extension NSUserInterfaceItemIdentifier {
|
|||||||
static let queueHeading = NSUserInterfaceItemIdentifier("queueHeadingCell")
|
static let queueHeading = NSUserInterfaceItemIdentifier("queueHeadingCell")
|
||||||
static let queueSongArtist = NSUserInterfaceItemIdentifier("songArtistCell")
|
static let queueSongArtist = NSUserInterfaceItemIdentifier("songArtistCell")
|
||||||
static let queueSongTitle = NSUserInterfaceItemIdentifier("songTitleCell")
|
static let queueSongTitle = NSUserInterfaceItemIdentifier("songTitleCell")
|
||||||
|
|
||||||
|
static let albumItem = NSUserInterfaceItemIdentifier("AlbumItem")
|
||||||
}
|
}
|
||||||
|
|||||||
@ -177,10 +177,10 @@ class MPDClient {
|
|||||||
var albums: [Album] = []
|
var albums: [Album] = []
|
||||||
var artist: String = ""
|
var artist: String = ""
|
||||||
|
|
||||||
mpd_search_db_tags(self.connection, MPD_TAG_ALBUM)
|
mpd_search_db_tags(connection, MPD_TAG_ALBUM)
|
||||||
mpd_search_add_group_tag(self.connection, MPD_TAG_ALBUM_ARTIST)
|
mpd_search_add_group_tag(connection, MPD_TAG_ALBUM_ARTIST)
|
||||||
mpd_search_commit(self.connection)
|
mpd_search_commit(connection)
|
||||||
while let mpdPair = mpd_recv_pair(self.connection) {
|
while let mpdPair = mpd_recv_pair(connection) {
|
||||||
let pair = Pair(mpdPair)
|
let pair = Pair(mpdPair)
|
||||||
|
|
||||||
switch pair.name {
|
switch pair.name {
|
||||||
@ -192,7 +192,7 @@ class MPDClient {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
||||||
mpd_return_pair(self.connection, pair.mpdPair)
|
mpd_return_pair(connection, pair.mpdPair)
|
||||||
}
|
}
|
||||||
|
|
||||||
delegate?.didLoadAlbums(mpdClient: self, albums: albums)
|
delegate?.didLoadAlbums(mpdClient: self, albums: albums)
|
||||||
|
|||||||
@ -9,13 +9,8 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
extension MPDClient {
|
extension MPDClient {
|
||||||
class Album {
|
struct Album {
|
||||||
let title: String
|
let title: String
|
||||||
let artist: String
|
let artist: String
|
||||||
|
|
||||||
init(title: String, artist: String) {
|
|
||||||
self.title = title
|
|
||||||
self.artist = artist
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,13 +9,10 @@
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
|
|
||||||
class AlbumItem: NSCollectionViewItem {
|
class AlbumItem: NSCollectionViewItem {
|
||||||
let borderColorLight = NSColor.black.withAlphaComponent(0.1).cgColor
|
|
||||||
let borderColorDark = NSColor.white.withAlphaComponent(0.1).cgColor
|
|
||||||
var observer: NSKeyValueObservation?
|
var observer: NSKeyValueObservation?
|
||||||
|
|
||||||
override func viewDidLoad() {
|
override func viewDidLoad() {
|
||||||
super.viewDidLoad()
|
super.viewDidLoad()
|
||||||
// Do view setup here.
|
|
||||||
|
|
||||||
albumCoverView.wantsLayer = true
|
albumCoverView.wantsLayer = true
|
||||||
albumCoverView.layer?.cornerRadius = 3
|
albumCoverView.layer?.cornerRadius = 3
|
||||||
@ -39,9 +36,9 @@ class AlbumItem: NSCollectionViewItem {
|
|||||||
let darkMode = NSApp.effectiveAppearance.bestMatch(from:
|
let darkMode = NSApp.effectiveAppearance.bestMatch(from:
|
||||||
[.darkAqua, .aqua]) == .darkAqua
|
[.darkAqua, .aqua]) == .darkAqua
|
||||||
|
|
||||||
albumCoverView.layer?.borderColor = darkMode ? borderColorDark : borderColorLight
|
albumCoverView.layer?.borderColor = darkMode ? .albumBorderColorDark : .albumBorderColorLight
|
||||||
} else {
|
} else {
|
||||||
albumCoverView.layer?.borderColor = borderColorLight
|
albumCoverView.layer?.borderColor = .albumBorderColorLight
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user