mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
WIP
This commit is contained in:
parent
81200742df
commit
deb34d6c3d
@ -103,6 +103,12 @@
|
|||||||
E4B11BC02275EE150075461B /* QueueActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BBF2275EE150075461B /* QueueActions.swift */; };
|
E4B11BC02275EE150075461B /* QueueActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BBF2275EE150075461B /* QueueActions.swift */; };
|
||||||
E4B11BC22275EE410075461B /* AlbumListActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BC12275EE410075461B /* AlbumListActions.swift */; };
|
E4B11BC22275EE410075461B /* AlbumListActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B11BC12275EE410075461B /* AlbumListActions.swift */; };
|
||||||
E4B5AE7E22F4C49600CCEC65 /* MPDServerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B5AE7D22F4C49600CCEC65 /* MPDServerDelegate.swift */; };
|
E4B5AE7E22F4C49600CCEC65 /* MPDServerDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4B5AE7D22F4C49600CCEC65 /* MPDServerDelegate.swift */; };
|
||||||
|
E4BBD2E923356DC100702C16 /* BrowseViewButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BBD2E823356DC100702C16 /* BrowseViewButton.swift */; };
|
||||||
|
E4BBD2EB2335735500702C16 /* BrowseController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BBD2EA2335735500702C16 /* BrowseController.swift */; };
|
||||||
|
E4BBD2ED2335798E00702C16 /* ArtistViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BBD2EC2335798E00702C16 /* ArtistViewController.swift */; };
|
||||||
|
E4BBD2F0233579EF00702C16 /* ArtistViewItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BBD2EE233579EF00702C16 /* ArtistViewItem.swift */; };
|
||||||
|
E4BBD2F1233579EF00702C16 /* ArtistViewItem.xib in Resources */ = {isa = PBXBuildFile; fileRef = E4BBD2EF233579EF00702C16 /* ArtistViewItem.xib */; };
|
||||||
|
E4BBD2F323357C0700702C16 /* ArtistListState.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4BBD2F223357C0700702C16 /* ArtistListState.swift */; };
|
||||||
E4C8B53C22342005009A20F3 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C8B53B22342005009A20F3 /* PreferencesWindowController.swift */; };
|
E4C8B53C22342005009A20F3 /* PreferencesWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C8B53B22342005009A20F3 /* PreferencesWindowController.swift */; };
|
||||||
E4C8B53E22349002009A20F3 /* MPDIdle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C8B53D22349002009A20F3 /* MPDIdle.swift */; };
|
E4C8B53E22349002009A20F3 /* MPDIdle.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4C8B53D22349002009A20F3 /* MPDIdle.swift */; };
|
||||||
E4D3BFA622B419C000C56F48 /* QueueViewController+NSOutlineViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4D3BFA522B419C000C56F48 /* QueueViewController+NSOutlineViewDelegate.swift */; };
|
E4D3BFA622B419C000C56F48 /* QueueViewController+NSOutlineViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = E4D3BFA522B419C000C56F48 /* QueueViewController+NSOutlineViewDelegate.swift */; };
|
||||||
@ -296,6 +302,12 @@
|
|||||||
E4B11BBF2275EE150075461B /* QueueActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueueActions.swift; sourceTree = "<group>"; };
|
E4B11BBF2275EE150075461B /* QueueActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QueueActions.swift; sourceTree = "<group>"; };
|
||||||
E4B11BC12275EE410075461B /* AlbumListActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumListActions.swift; sourceTree = "<group>"; };
|
E4B11BC12275EE410075461B /* AlbumListActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumListActions.swift; sourceTree = "<group>"; };
|
||||||
E4B5AE7D22F4C49600CCEC65 /* MPDServerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPDServerDelegate.swift; sourceTree = "<group>"; };
|
E4B5AE7D22F4C49600CCEC65 /* MPDServerDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPDServerDelegate.swift; sourceTree = "<group>"; };
|
||||||
|
E4BBD2E823356DC100702C16 /* BrowseViewButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowseViewButton.swift; sourceTree = "<group>"; };
|
||||||
|
E4BBD2EA2335735500702C16 /* BrowseController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BrowseController.swift; sourceTree = "<group>"; };
|
||||||
|
E4BBD2EC2335798E00702C16 /* ArtistViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtistViewController.swift; sourceTree = "<group>"; };
|
||||||
|
E4BBD2EE233579EF00702C16 /* ArtistViewItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtistViewItem.swift; sourceTree = "<group>"; };
|
||||||
|
E4BBD2EF233579EF00702C16 /* ArtistViewItem.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ArtistViewItem.xib; sourceTree = "<group>"; };
|
||||||
|
E4BBD2F223357C0700702C16 /* ArtistListState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArtistListState.swift; sourceTree = "<group>"; };
|
||||||
E4C8B53B22342005009A20F3 /* PreferencesWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesWindowController.swift; sourceTree = "<group>"; };
|
E4C8B53B22342005009A20F3 /* PreferencesWindowController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesWindowController.swift; sourceTree = "<group>"; };
|
||||||
E4C8B53D22349002009A20F3 /* MPDIdle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPDIdle.swift; sourceTree = "<group>"; };
|
E4C8B53D22349002009A20F3 /* MPDIdle.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MPDIdle.swift; sourceTree = "<group>"; };
|
||||||
E4D3BFA522B419C000C56F48 /* QueueViewController+NSOutlineViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "QueueViewController+NSOutlineViewDelegate.swift"; sourceTree = "<group>"; };
|
E4D3BFA522B419C000C56F48 /* QueueViewController+NSOutlineViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "QueueViewController+NSOutlineViewDelegate.swift"; sourceTree = "<group>"; };
|
||||||
@ -462,6 +474,7 @@
|
|||||||
E423563F228623D2001216D6 /* QueueSongTitleView.swift */,
|
E423563F228623D2001216D6 /* QueueSongTitleView.swift */,
|
||||||
E4120D6B22AD8139004CB1F8 /* QueueView.swift */,
|
E4120D6B22AD8139004CB1F8 /* QueueView.swift */,
|
||||||
E43AC1F722C7065A001E483C /* AlbumCoverButton.swift */,
|
E43AC1F722C7065A001E483C /* AlbumCoverButton.swift */,
|
||||||
|
E4BBD2E823356DC100702C16 /* BrowseViewButton.swift */,
|
||||||
);
|
);
|
||||||
path = Views;
|
path = Views;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -615,6 +628,7 @@
|
|||||||
E4B11B67226A4FA00075461B /* QueueState.swift */,
|
E4B11B67226A4FA00075461B /* QueueState.swift */,
|
||||||
E4B11B69226A4FBC0075461B /* AlbumListState.swift */,
|
E4B11B69226A4FBC0075461B /* AlbumListState.swift */,
|
||||||
E4FF718D2276010E00D4C412 /* PreferencesState.swift */,
|
E4FF718D2276010E00D4C412 /* PreferencesState.swift */,
|
||||||
|
E4BBD2F223357C0700702C16 /* ArtistListState.swift */,
|
||||||
);
|
);
|
||||||
path = State;
|
path = State;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -661,6 +675,9 @@
|
|||||||
E408D3C1220E134F0006D9BE /* AlbumViewController.swift */,
|
E408D3C1220E134F0006D9BE /* AlbumViewController.swift */,
|
||||||
E43AC1F222C6A439001E483C /* AlbumViewController+NSCollectionViewDelegate.swift */,
|
E43AC1F222C6A439001E483C /* AlbumViewController+NSCollectionViewDelegate.swift */,
|
||||||
E47E2FD4222071FD00F747E6 /* AlbumViewItem.swift */,
|
E47E2FD4222071FD00F747E6 /* AlbumViewItem.swift */,
|
||||||
|
E4BBD2EC2335798E00702C16 /* ArtistViewController.swift */,
|
||||||
|
E4BBD2EE233579EF00702C16 /* ArtistViewItem.swift */,
|
||||||
|
E4BBD2EA2335735500702C16 /* BrowseController.swift */,
|
||||||
E47E2FD022205C4600F747E6 /* MainSplitViewController.swift */,
|
E47E2FD022205C4600F747E6 /* MainSplitViewController.swift */,
|
||||||
E4405191227644340090CD6F /* MPDServerController.swift */,
|
E4405191227644340090CD6F /* MPDServerController.swift */,
|
||||||
E4B5AE7D22F4C49600CCEC65 /* MPDServerDelegate.swift */,
|
E4B5AE7D22F4C49600CCEC65 /* MPDServerDelegate.swift */,
|
||||||
@ -675,6 +692,7 @@
|
|||||||
E4D1B598220BA3C90026F233 /* Resources */ = {
|
E4D1B598220BA3C90026F233 /* Resources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
E4BBD2EF233579EF00702C16 /* ArtistViewItem.xib */,
|
||||||
E43B67A922909793007DCF55 /* AlbumDetailView.xib */,
|
E43B67A922909793007DCF55 /* AlbumDetailView.xib */,
|
||||||
E408D3C9220E341D0006D9BE /* AlbumViewItem.xib */,
|
E408D3C9220E341D0006D9BE /* AlbumViewItem.xib */,
|
||||||
E489E3A322B9D31800CA8CBD /* DraggedSongView.xib */,
|
E489E3A322B9D31800CA8CBD /* DraggedSongView.xib */,
|
||||||
@ -854,6 +872,7 @@
|
|||||||
E40786202110CE70006887B1 /* Assets.xcassets in Resources */,
|
E40786202110CE70006887B1 /* Assets.xcassets in Resources */,
|
||||||
E42A8F3C22176D6400A13ED9 /* README.md in Resources */,
|
E42A8F3C22176D6400A13ED9 /* README.md in Resources */,
|
||||||
E408D3CB220E341D0006D9BE /* AlbumViewItem.xib in Resources */,
|
E408D3CB220E341D0006D9BE /* AlbumViewItem.xib in Resources */,
|
||||||
|
E4BBD2F1233579EF00702C16 /* ArtistViewItem.xib in Resources */,
|
||||||
E40786232110CE70006887B1 /* Main.storyboard in Resources */,
|
E40786232110CE70006887B1 /* Main.storyboard in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
@ -910,12 +929,14 @@
|
|||||||
E43AC1F622C6AD0B001E483C /* AlbumViewController+NSCollectionViewDelegate.swift in Sources */,
|
E43AC1F622C6AD0B001E483C /* AlbumViewController+NSCollectionViewDelegate.swift in Sources */,
|
||||||
E4B11B68226A4FA00075461B /* QueueState.swift in Sources */,
|
E4B11B68226A4FA00075461B /* QueueState.swift in Sources */,
|
||||||
E4928E0B2218D62A001D4BEA /* CGColor.swift in Sources */,
|
E4928E0B2218D62A001D4BEA /* CGColor.swift in Sources */,
|
||||||
|
E4BBD2ED2335798E00702C16 /* ArtistViewController.swift in Sources */,
|
||||||
E4D3BFA622B419C000C56F48 /* QueueViewController+NSOutlineViewDelegate.swift in Sources */,
|
E4D3BFA622B419C000C56F48 /* QueueViewController+NSOutlineViewDelegate.swift in Sources */,
|
||||||
E4405192227644340090CD6F /* MPDServerController.swift in Sources */,
|
E4405192227644340090CD6F /* MPDServerController.swift in Sources */,
|
||||||
E4C8B53E22349002009A20F3 /* MPDIdle.swift in Sources */,
|
E4C8B53E22349002009A20F3 /* MPDIdle.swift in Sources */,
|
||||||
E4F6B460221E119B00ACF42A /* QueueDataSource.swift in Sources */,
|
E4F6B460221E119B00ACF42A /* QueueDataSource.swift in Sources */,
|
||||||
E4C8B53C22342005009A20F3 /* PreferencesWindowController.swift in Sources */,
|
E4C8B53C22342005009A20F3 /* PreferencesWindowController.swift in Sources */,
|
||||||
E4B11B63226A4C510075461B /* AppReducer.swift in Sources */,
|
E4B11B63226A4C510075461B /* AppReducer.swift in Sources */,
|
||||||
|
E4BBD2F0233579EF00702C16 /* ArtistViewItem.swift in Sources */,
|
||||||
E41E5307223C019100173814 /* MPDClient+Status.swift in Sources */,
|
E41E5307223C019100173814 /* MPDClient+Status.swift in Sources */,
|
||||||
E41E5310223EF6CE00173814 /* CoverArtService+Remote.swift in Sources */,
|
E41E5310223EF6CE00173814 /* CoverArtService+Remote.swift in Sources */,
|
||||||
E41E530B223C033700173814 /* MPDClient+Album.swift in Sources */,
|
E41E530B223C033700173814 /* MPDClient+Album.swift in Sources */,
|
||||||
@ -951,13 +972,16 @@
|
|||||||
E47E2FDD2220A6D100F747E6 /* Time.swift in Sources */,
|
E47E2FDD2220A6D100F747E6 /* Time.swift in Sources */,
|
||||||
E419E2872249B96600216A8C /* Song.swift in Sources */,
|
E419E2872249B96600216A8C /* Song.swift in Sources */,
|
||||||
E451E36B22BD214D008BE9B2 /* DraggedSongType.swift in Sources */,
|
E451E36B22BD214D008BE9B2 /* DraggedSongType.swift in Sources */,
|
||||||
|
E4BBD2F323357C0700702C16 /* ArtistListState.swift in Sources */,
|
||||||
E44051A0227BB0AB0090CD6F /* UIState.swift in Sources */,
|
E44051A0227BB0AB0090CD6F /* UIState.swift in Sources */,
|
||||||
E4FF718E2276010E00D4C412 /* PreferencesState.swift in Sources */,
|
E4FF718E2276010E00D4C412 /* PreferencesState.swift in Sources */,
|
||||||
E439109822640213002982E9 /* SongNotifierService.swift in Sources */,
|
E439109822640213002982E9 /* SongNotifierService.swift in Sources */,
|
||||||
E407861C2110CE6E006887B1 /* AppDelegate.swift in Sources */,
|
E407861C2110CE6E006887B1 /* AppDelegate.swift in Sources */,
|
||||||
E4B11B75226CC4D30075461B /* QueueReducer.swift in Sources */,
|
E4B11B75226CC4D30075461B /* QueueReducer.swift in Sources */,
|
||||||
E41E5309223C020400173814 /* MPDClient+Command.swift in Sources */,
|
E41E5309223C020400173814 /* MPDClient+Command.swift in Sources */,
|
||||||
|
E4BBD2E923356DC100702C16 /* BrowseViewButton.swift in Sources */,
|
||||||
E4B11B73226A6C770075461B /* TrackTimer.swift in Sources */,
|
E4B11B73226A6C770075461B /* TrackTimer.swift in Sources */,
|
||||||
|
E4BBD2EB2335735500702C16 /* BrowseController.swift in Sources */,
|
||||||
E44051942278765A0090CD6F /* App.swift in Sources */,
|
E44051942278765A0090CD6F /* App.swift in Sources */,
|
||||||
E4B11B79226D346B0075461B /* AlbumListReducer.swift in Sources */,
|
E4B11B79226D346B0075461B /* AlbumListReducer.swift in Sources */,
|
||||||
E47E2FE52220AA0700F747E6 /* AlbumViewLayout.swift in Sources */,
|
E47E2FE52220AA0700F747E6 /* AlbumViewLayout.swift in Sources */,
|
||||||
|
|||||||
@ -1,70 +0,0 @@
|
|||||||
{
|
|
||||||
"object": {
|
|
||||||
"pins": [
|
|
||||||
{
|
|
||||||
"package": "CryptoSwift",
|
|
||||||
"repositoryURL": "https://github.com/krzyzanowskim/CryptoSwift",
|
|
||||||
"state": {
|
|
||||||
"branch": null,
|
|
||||||
"revision": "3a2acbb32ab68215ee1596ee6004da8e90c3721b",
|
|
||||||
"version": "1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": "Differ",
|
|
||||||
"repositoryURL": "https://github.com/tonyarnold/Differ",
|
|
||||||
"state": {
|
|
||||||
"branch": null,
|
|
||||||
"revision": "e2cca36e7258dd8add88ae46b5ea56509b066e21",
|
|
||||||
"version": "1.4.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": "PMKFoundation",
|
|
||||||
"repositoryURL": "https://github.com/PromiseKit/Foundation",
|
|
||||||
"state": {
|
|
||||||
"branch": null,
|
|
||||||
"revision": "ee06d95342a5007de2fffd898f4f35de026842ac",
|
|
||||||
"version": "3.3.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": "MediaKeyTap",
|
|
||||||
"repositoryURL": "https://github.com/danbee/MediaKeyTap",
|
|
||||||
"state": {
|
|
||||||
"branch": "add-package-swift",
|
|
||||||
"revision": "b6b83b1a3e78d25ad9c86a55babce4f60caf6fa4",
|
|
||||||
"version": null
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": "PromiseKit",
|
|
||||||
"repositoryURL": "https://github.com/mxcl/PromiseKit",
|
|
||||||
"state": {
|
|
||||||
"branch": null,
|
|
||||||
"revision": "4d8d1287d2e50c53a9f8430ffe88925292838c57",
|
|
||||||
"version": "6.11.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": "ReSwift",
|
|
||||||
"repositoryURL": "https://github.com/ReSwift/ReSwift",
|
|
||||||
"state": {
|
|
||||||
"branch": null,
|
|
||||||
"revision": "b92762b5aa85c5e94053d942fbd37124ee939e5b",
|
|
||||||
"version": "5.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"package": "SwiftyJSON",
|
|
||||||
"repositoryURL": "https://github.com/SwiftyJSON/SwiftyJSON",
|
|
||||||
"state": {
|
|
||||||
"branch": null,
|
|
||||||
"revision": "2b6054efa051565954e1d2b9da831680026cd768",
|
|
||||||
"version": "5.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"version": 1
|
|
||||||
}
|
|
||||||
13
Persephone/Controllers/ArtistViewController.swift
Normal file
13
Persephone/Controllers/ArtistViewController.swift
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
//
|
||||||
|
// ArtistViewController.swift
|
||||||
|
// Persephone
|
||||||
|
//
|
||||||
|
// Created by Daniel Barber on 2019/9/20.
|
||||||
|
// Copyright © 2019 Dan Barber. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import AppKit
|
||||||
|
|
||||||
|
class ArtistViewController: NSViewController {
|
||||||
|
|
||||||
|
}
|
||||||
26
Persephone/Controllers/ArtistViewItem.swift
Normal file
26
Persephone/Controllers/ArtistViewItem.swift
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
//
|
||||||
|
// ArtistViewItem.swift
|
||||||
|
// Persephone
|
||||||
|
//
|
||||||
|
// Created by Daniel Barber on 2019/9/20.
|
||||||
|
// Copyright © 2019 Dan Barber. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Cocoa
|
||||||
|
|
||||||
|
class ArtistViewItem: NSViewController {
|
||||||
|
var artist: String?
|
||||||
|
|
||||||
|
@IBOutlet var artistName: NSTextField!
|
||||||
|
|
||||||
|
override func viewDidLoad() {
|
||||||
|
super.viewDidLoad()
|
||||||
|
// Do view setup here.
|
||||||
|
}
|
||||||
|
|
||||||
|
func setArtist(_ artist: String) {
|
||||||
|
self.artist = artist
|
||||||
|
|
||||||
|
artistName.stringValue = artist
|
||||||
|
}
|
||||||
|
}
|
||||||
32
Persephone/Controllers/BrowseController.swift
Normal file
32
Persephone/Controllers/BrowseController.swift
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
//
|
||||||
|
// BrowseController.swift
|
||||||
|
// Persephone
|
||||||
|
//
|
||||||
|
// Created by Daniel Barber on 2019/9/20.
|
||||||
|
// Copyright © 2019 Dan Barber. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import AppKit
|
||||||
|
|
||||||
|
class BrowseController: NSViewController {
|
||||||
|
@IBOutlet var artistsButton: NSButton!
|
||||||
|
@IBOutlet var albumsButton: NSButton!
|
||||||
|
|
||||||
|
@IBOutlet var browseTabView: NSTabView!
|
||||||
|
|
||||||
|
@IBAction func switchToTab(_ sender: NSButton) {
|
||||||
|
artistsButton.state = .off
|
||||||
|
albumsButton.state = .off
|
||||||
|
|
||||||
|
switch sender.identifier?.rawValue {
|
||||||
|
case "artists":
|
||||||
|
artistsButton.state = .on
|
||||||
|
browseTabView.selectTabViewItem(at: 0)
|
||||||
|
case "albums":
|
||||||
|
albumsButton.state = .on
|
||||||
|
browseTabView.selectTabViewItem(at: 1)
|
||||||
|
default:
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
37
Persephone/Resources/ArtistViewItem.xib
Normal file
37
Persephone/Resources/ArtistViewItem.xib
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="macosx"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
||||||
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
|
</dependencies>
|
||||||
|
<objects>
|
||||||
|
<customObject id="-2" userLabel="File's Owner" customClass="ArtistViewItem" customModule="Persephone" customModuleProvider="target">
|
||||||
|
<connections>
|
||||||
|
<outlet property="artistName" destination="XcT-rc-7KI" id="Sj2-H7-b4t"/>
|
||||||
|
<outlet property="view" destination="Hz6-mo-xeY" id="0bl-1N-x8E"/>
|
||||||
|
</connections>
|
||||||
|
</customObject>
|
||||||
|
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||||
|
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||||
|
<customView id="Hz6-mo-xeY">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="497" height="63"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<textField identifier="artistName" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="XcT-rc-7KI">
|
||||||
|
<rect key="frame" x="18" y="21" width="108" height="22"/>
|
||||||
|
<textFieldCell key="cell" lineBreakMode="clipping" title="Artist Name" id="Ojy-kp-TUe">
|
||||||
|
<font key="font" metaFont="systemBold" size="18"/>
|
||||||
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</textFieldCell>
|
||||||
|
</textField>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="XcT-rc-7KI" firstAttribute="top" secondItem="Hz6-mo-xeY" secondAttribute="top" constant="20" symbolic="YES" id="0Ro-rq-VVD"/>
|
||||||
|
<constraint firstItem="XcT-rc-7KI" firstAttribute="leading" secondItem="Hz6-mo-xeY" secondAttribute="leading" constant="20" symbolic="YES" id="r6f-6f-Lq2"/>
|
||||||
|
</constraints>
|
||||||
|
<point key="canvasLocation" x="-21.5" y="-20.5"/>
|
||||||
|
</customView>
|
||||||
|
</objects>
|
||||||
|
</document>
|
||||||
@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
|
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="14868" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="B8D-0N-5wS">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="macosx"/>
|
<deployment identifier="macosx"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14868"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<scenes>
|
<scenes>
|
||||||
@ -187,7 +187,7 @@
|
|||||||
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
<customObject id="YLy-65-1bz" customClass="NSFontManager"/>
|
||||||
<customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
<customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="81" y="-332"/>
|
<point key="canvasLocation" x="-183" y="-242"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Window Controller-->
|
<!--Window Controller-->
|
||||||
<scene sceneID="R2V-B0-nI4">
|
<scene sceneID="R2V-B0-nI4">
|
||||||
@ -341,7 +341,7 @@
|
|||||||
<splitViewController id="fnD-7K-pHK" customClass="MainSplitViewController" customModule="Persephone" customModuleProvider="target" sceneMemberID="viewController">
|
<splitViewController id="fnD-7K-pHK" customClass="MainSplitViewController" customModule="Persephone" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
<splitViewItems>
|
<splitViewItems>
|
||||||
<splitViewItem holdingPriority="255" behavior="contentList" id="CWo-v7-gd2"/>
|
<splitViewItem holdingPriority="255" behavior="contentList" id="CWo-v7-gd2"/>
|
||||||
<splitViewItem id="y8g-4F-czS"/>
|
<splitViewItem id="Mdr-U0-Vci"/>
|
||||||
</splitViewItems>
|
</splitViewItems>
|
||||||
<splitView key="splitView" dividerStyle="thin" vertical="YES" id="g34-ef-XN0">
|
<splitView key="splitView" dividerStyle="thin" vertical="YES" id="g34-ef-XN0">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||||
@ -353,12 +353,12 @@
|
|||||||
<connections>
|
<connections>
|
||||||
<outlet property="splitView" destination="g34-ef-XN0" id="YEc-LL-DoS"/>
|
<outlet property="splitView" destination="g34-ef-XN0" id="YEc-LL-DoS"/>
|
||||||
<segue destination="KIP-rq-4dM" kind="relationship" relationship="splitItems" id="Vmb-hY-d12"/>
|
<segue destination="KIP-rq-4dM" kind="relationship" relationship="splitItems" id="Vmb-hY-d12"/>
|
||||||
<segue destination="gPn-fP-LFc" kind="relationship" relationship="splitItems" id="zKs-UD-ltC"/>
|
<segue destination="SjO-VS-1bb" kind="relationship" relationship="splitItems" id="peC-gL-WJ1"/>
|
||||||
</connections>
|
</connections>
|
||||||
</splitViewController>
|
</splitViewController>
|
||||||
<customObject id="Dag-kO-ps3" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
<customObject id="Dag-kO-ps3" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="74" y="873"/>
|
<point key="canvasLocation" x="886" y="182"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Window Controller-->
|
<!--Window Controller-->
|
||||||
<scene sceneID="Rpk-bo-5kf">
|
<scene sceneID="Rpk-bo-5kf">
|
||||||
@ -378,7 +378,7 @@
|
|||||||
</windowController>
|
</windowController>
|
||||||
<customObject id="0sd-8B-etN" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
<customObject id="0sd-8B-etN" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="915" y="-155"/>
|
<point key="canvasLocation" x="346" y="-242"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--General-->
|
<!--General-->
|
||||||
<scene sceneID="5er-B6-hoB">
|
<scene sceneID="5er-B6-hoB">
|
||||||
@ -405,7 +405,7 @@
|
|||||||
</tabViewController>
|
</tabViewController>
|
||||||
<customObject id="XtF-QO-9W0" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
<customObject id="XtF-QO-9W0" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="916" y="236"/>
|
<point key="canvasLocation" x="870" y="-242"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Cover Art-->
|
<!--Cover Art-->
|
||||||
<scene sceneID="pQx-0G-WVt">
|
<scene sceneID="pQx-0G-WVt">
|
||||||
@ -416,7 +416,7 @@
|
|||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zZn-Rm-e1f">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="zZn-Rm-e1f">
|
||||||
<rect key="frame" x="53" y="130" width="104" height="17"/>
|
<rect key="frame" x="53" y="129" width="104" height="16"/>
|
||||||
<textFieldCell key="cell" lineBreakMode="clipping" title="Music Directory:" id="sPn-V6-CfK">
|
<textFieldCell key="cell" lineBreakMode="clipping" title="Music Directory:" id="sPn-V6-CfK">
|
||||||
<font key="font" usesAppearanceFont="YES"/>
|
<font key="font" usesAppearanceFont="YES"/>
|
||||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -424,7 +424,7 @@
|
|||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gDk-ca-eOa">
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="gDk-ca-eOa">
|
||||||
<rect key="frame" x="162" y="126" width="288" height="22"/>
|
<rect key="frame" x="162" y="125" width="288" height="21"/>
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="~/Music" drawsBackground="YES" id="7WZ-b7-GUs">
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" placeholderString="~/Music" drawsBackground="YES" id="7WZ-b7-GUs">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -435,7 +435,7 @@
|
|||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pRL-MG-1Be">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="pRL-MG-1Be">
|
||||||
<rect key="frame" x="160" y="95" width="264" height="18"/>
|
<rect key="frame" x="160" y="94" width="264" height="18"/>
|
||||||
<buttonCell key="cell" type="check" title="Fetch missing artwork from MusicBrainz" bezelStyle="regularSquare" imagePosition="left" inset="2" id="LpD-Ew-HMd">
|
<buttonCell key="cell" type="check" title="Fetch missing artwork from MusicBrainz" bezelStyle="regularSquare" imagePosition="left" inset="2" id="LpD-Ew-HMd">
|
||||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
@ -445,7 +445,7 @@
|
|||||||
</connections>
|
</connections>
|
||||||
</button>
|
</button>
|
||||||
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="z1g-nP-ksw">
|
<button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="z1g-nP-ksw">
|
||||||
<rect key="frame" x="160" y="64" width="264" height="18"/>
|
<rect key="frame" x="160" y="63" width="264" height="18"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="width" constant="260" id="gK0-aW-CJy"/>
|
<constraint firstAttribute="width" constant="260" id="gK0-aW-CJy"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
@ -455,7 +455,7 @@
|
|||||||
</buttonCell>
|
</buttonCell>
|
||||||
</button>
|
</button>
|
||||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xgS-Kg-8KR">
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="xgS-Kg-8KR">
|
||||||
<rect key="frame" x="162" y="26" width="144" height="22"/>
|
<rect key="frame" x="162" y="26" width="144" height="21"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="width" constant="144" id="DSX-th-Wn1"/>
|
<constraint firstAttribute="width" constant="144" id="DSX-th-Wn1"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
@ -466,7 +466,7 @@
|
|||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SmH-w6-5QI">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SmH-w6-5QI">
|
||||||
<rect key="frame" x="37" y="30" width="119" height="17"/>
|
<rect key="frame" x="37" y="30" width="119" height="16"/>
|
||||||
<textFieldCell key="cell" lineBreakMode="clipping" enabled="NO" alignment="right" title="Cover art filename:" id="b4u-u7-iWD">
|
<textFieldCell key="cell" lineBreakMode="clipping" enabled="NO" alignment="right" title="Cover art filename:" id="b4u-u7-iWD">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="secondaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -498,7 +498,136 @@
|
|||||||
</viewController>
|
</viewController>
|
||||||
<customObject id="KzD-E3-lpA" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
<customObject id="KzD-E3-lpA" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="1626" y="373"/>
|
<point key="canvasLocation" x="1459" y="-242"/>
|
||||||
|
</scene>
|
||||||
|
<!--Browse Controller-->
|
||||||
|
<scene sceneID="VvW-vT-alQ">
|
||||||
|
<objects>
|
||||||
|
<viewController id="SjO-VS-1bb" customClass="BrowseController" customModule="Persephone" customModuleProvider="target" sceneMemberID="viewController">
|
||||||
|
<view key="view" id="BRY-0R-F3u">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="536"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<stackView distribution="fill" orientation="vertical" alignment="centerX" spacing="2" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="35G-X1-hrz">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="536"/>
|
||||||
|
<subviews>
|
||||||
|
<stackView distribution="equalCentering" orientation="horizontal" alignment="centerY" spacing="2" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="LBv-o9-2Ya">
|
||||||
|
<rect key="frame" x="181" y="498" width="116" height="38"/>
|
||||||
|
<subviews>
|
||||||
|
<button identifier="artists" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="SFs-nF-qQx" customClass="BrowseViewButton" customModule="Persephone" customModuleProvider="target">
|
||||||
|
<rect key="frame" x="0.0" y="9" width="54" height="19"/>
|
||||||
|
<buttonCell key="cell" type="recessed" title="Artists" bezelStyle="recessed" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="wYx-jY-G52">
|
||||||
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="switchToTab:" target="SjO-VS-1bb" id="wPl-Ga-LZU"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
<button identifier="albums" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="OnP-F2-wY0" customClass="BrowseViewButton" customModule="Persephone" customModuleProvider="target">
|
||||||
|
<rect key="frame" x="56" y="9" width="60" height="19"/>
|
||||||
|
<buttonCell key="cell" type="recessed" title="Albums" bezelStyle="recessed" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="7XB-MN-6Ms">
|
||||||
|
<behavior key="behavior" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
</buttonCell>
|
||||||
|
<connections>
|
||||||
|
<action selector="switchToTab:" target="SjO-VS-1bb" id="rql-oa-9AB"/>
|
||||||
|
</connections>
|
||||||
|
</button>
|
||||||
|
</subviews>
|
||||||
|
<edgeInsets key="edgeInsets" left="0.0" right="0.0" top="8" bottom="8"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="OnP-F2-wY0" firstAttribute="top" secondItem="LBv-o9-2Ya" secondAttribute="top" constant="10" id="6XX-6Q-E1u"/>
|
||||||
|
<constraint firstItem="OnP-F2-wY0" firstAttribute="leading" secondItem="SFs-nF-qQx" secondAttribute="trailing" constant="2" id="tBi-h3-VCC"/>
|
||||||
|
</constraints>
|
||||||
|
<visibilityPriorities>
|
||||||
|
<integer value="1000"/>
|
||||||
|
<integer value="1000"/>
|
||||||
|
</visibilityPriorities>
|
||||||
|
<customSpacing>
|
||||||
|
<real value="3.4028234663852886e+38"/>
|
||||||
|
<real value="3.4028234663852886e+38"/>
|
||||||
|
</customSpacing>
|
||||||
|
</stackView>
|
||||||
|
<tabView type="noTabsNoBorder" initialItem="XgS-cX-SDH" translatesAutoresizingMaskIntoConstraints="NO" id="ARv-cj-xlz">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="496"/>
|
||||||
|
<font key="font" metaFont="system"/>
|
||||||
|
<tabViewItems>
|
||||||
|
<tabViewItem label="Artists" identifier="" id="bV1-g9-37C">
|
||||||
|
<view key="view" id="5Ye-bM-Ifl">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="496"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<containerView translatesAutoresizingMaskIntoConstraints="NO" id="EBh-Di-UhX">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="496"/>
|
||||||
|
<connections>
|
||||||
|
<segue destination="LpS-90-tby" kind="embed" id="00m-3s-fzb"/>
|
||||||
|
</connections>
|
||||||
|
</containerView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="EBh-Di-UhX" firstAttribute="leading" secondItem="5Ye-bM-Ifl" secondAttribute="leading" id="SR7-0Y-U4Q"/>
|
||||||
|
<constraint firstItem="EBh-Di-UhX" firstAttribute="top" secondItem="5Ye-bM-Ifl" secondAttribute="top" id="bcN-6r-OFW"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="EBh-Di-UhX" secondAttribute="bottom" id="kOK-UG-b31"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="EBh-Di-UhX" secondAttribute="trailing" id="vB5-SX-6iT"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
|
<tabViewItem label="Albums" identifier="" id="XgS-cX-SDH">
|
||||||
|
<view key="view" id="hB7-hN-SbB">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="478" height="496"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<containerView translatesAutoresizingMaskIntoConstraints="NO" id="moE-bb-Zvg">
|
||||||
|
<rect key="frame" x="-3" y="-3" width="481" height="499"/>
|
||||||
|
<connections>
|
||||||
|
<segue destination="gPn-fP-LFc" kind="embed" id="2iB-9y-I9h"/>
|
||||||
|
</connections>
|
||||||
|
</containerView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="moE-bb-Zvg" firstAttribute="top" secondItem="hB7-hN-SbB" secondAttribute="top" id="DUI-jy-8D7"/>
|
||||||
|
<constraint firstItem="moE-bb-Zvg" firstAttribute="leading" secondItem="hB7-hN-SbB" secondAttribute="leading" constant="-3" id="dCS-Kx-2UP"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="moE-bb-Zvg" secondAttribute="trailing" id="qey-4e-xfu"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="moE-bb-Zvg" secondAttribute="bottom" constant="-3" id="ziA-Xh-dlz"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</tabViewItem>
|
||||||
|
</tabViewItems>
|
||||||
|
</tabView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="ARv-cj-xlz" secondAttribute="trailing" id="4XJ-un-DRm"/>
|
||||||
|
<constraint firstItem="LBv-o9-2Ya" firstAttribute="top" secondItem="35G-X1-hrz" secondAttribute="top" id="wk2-ZY-TMz"/>
|
||||||
|
<constraint firstItem="LBv-o9-2Ya" firstAttribute="centerX" secondItem="35G-X1-hrz" secondAttribute="centerX" id="xAR-qw-hiL"/>
|
||||||
|
<constraint firstItem="ARv-cj-xlz" firstAttribute="leading" secondItem="35G-X1-hrz" secondAttribute="leading" id="yL8-Gq-8bT"/>
|
||||||
|
</constraints>
|
||||||
|
<visibilityPriorities>
|
||||||
|
<integer value="1000"/>
|
||||||
|
<integer value="1000"/>
|
||||||
|
</visibilityPriorities>
|
||||||
|
<customSpacing>
|
||||||
|
<real value="3.4028234663852886e+38"/>
|
||||||
|
<real value="3.4028234663852886e+38"/>
|
||||||
|
</customSpacing>
|
||||||
|
</stackView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="35G-X1-hrz" secondAttribute="trailing" id="GmC-07-TZ9"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="35G-X1-hrz" secondAttribute="bottom" id="QLO-5f-nea"/>
|
||||||
|
<constraint firstItem="35G-X1-hrz" firstAttribute="leading" secondItem="BRY-0R-F3u" secondAttribute="leading" id="T5b-dY-ac0"/>
|
||||||
|
<constraint firstItem="35G-X1-hrz" firstAttribute="top" secondItem="BRY-0R-F3u" secondAttribute="top" id="dCC-1m-Dc6"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
<connections>
|
||||||
|
<outlet property="albumsButton" destination="OnP-F2-wY0" id="Ft9-h6-5MU"/>
|
||||||
|
<outlet property="artistsButton" destination="SFs-nF-qQx" id="Khk-Wu-ZIs"/>
|
||||||
|
<outlet property="browseTabView" destination="ARv-cj-xlz" id="h93-fi-yY7"/>
|
||||||
|
</connections>
|
||||||
|
</viewController>
|
||||||
|
<customObject id="MSG-y7-cKU" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="1436" y="238"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--General-->
|
<!--General-->
|
||||||
<scene sceneID="xTC-Y5-Agk">
|
<scene sceneID="xTC-Y5-Agk">
|
||||||
@ -509,7 +638,7 @@
|
|||||||
<autoresizingMask key="autoresizingMask"/>
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wPm-sJ-e9E">
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="wPm-sJ-e9E">
|
||||||
<rect key="frame" x="162" y="58" width="184" height="22"/>
|
<rect key="frame" x="162" y="57" width="184" height="21"/>
|
||||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" alignment="left" placeholderString="127.0.0.1" drawsBackground="YES" id="MSX-mn-2ma">
|
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" alignment="left" placeholderString="127.0.0.1" drawsBackground="YES" id="MSX-mn-2ma">
|
||||||
<font key="font" usesAppearanceFont="YES"/>
|
<font key="font" usesAppearanceFont="YES"/>
|
||||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -520,7 +649,7 @@
|
|||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IbX-oV-soD">
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="IbX-oV-soD">
|
||||||
<rect key="frame" x="162" y="26" width="80" height="22"/>
|
<rect key="frame" x="162" y="26" width="80" height="21"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="width" constant="80" id="vW2-G6-2vi"/>
|
<constraint firstAttribute="width" constant="80" id="vW2-G6-2vi"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
@ -538,7 +667,7 @@
|
|||||||
</connections>
|
</connections>
|
||||||
</textField>
|
</textField>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kvB-99-zwY">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kvB-99-zwY">
|
||||||
<rect key="frame" x="76" y="62" width="80" height="17"/>
|
<rect key="frame" x="76" y="61" width="80" height="16"/>
|
||||||
<textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="Server Host:" id="AVi-g9-Irz">
|
<textFieldCell key="cell" lineBreakMode="clipping" alignment="right" title="Server Host:" id="AVi-g9-Irz">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -546,7 +675,7 @@
|
|||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="AU9-wN-kbU">
|
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="AU9-wN-kbU">
|
||||||
<rect key="frame" x="78" y="30" width="76" height="17"/>
|
<rect key="frame" x="78" y="30" width="76" height="16"/>
|
||||||
<constraints>
|
<constraints>
|
||||||
<constraint firstAttribute="width" constant="72" id="Of6-Ls-knP"/>
|
<constraint firstAttribute="width" constant="72" id="Of6-Ls-knP"/>
|
||||||
</constraints>
|
</constraints>
|
||||||
@ -576,7 +705,7 @@
|
|||||||
</viewController>
|
</viewController>
|
||||||
<customObject id="lzf-yO-5pP" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
<customObject id="lzf-yO-5pP" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="1574" y="69"/>
|
<point key="canvasLocation" x="1407" y="-501"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Queue View Controller-->
|
<!--Queue View Controller-->
|
||||||
<scene sceneID="QcX-dC-cTZ">
|
<scene sceneID="QcX-dC-cTZ">
|
||||||
@ -646,7 +775,7 @@
|
|||||||
<imageCell key="cell" refusesFirstResponder="YES" imageScaling="proportionallyDown" image="playButton" id="ckK-gW-Vhx"/>
|
<imageCell key="cell" refusesFirstResponder="YES" imageScaling="proportionallyDown" image="playButton" id="ckK-gW-Vhx"/>
|
||||||
</imageView>
|
</imageView>
|
||||||
<textField identifier="queuePosition" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mc4-Xr-oUl" userLabel="Queue Position View">
|
<textField identifier="queuePosition" horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="mc4-Xr-oUl" userLabel="Queue Position View">
|
||||||
<rect key="frame" x="4" y="0.0" width="33" height="17"/>
|
<rect key="frame" x="4" y="1" width="33" height="16"/>
|
||||||
<textFieldCell key="cell" lineBreakMode="clipping" title="888." id="wpZ-1t-Do7">
|
<textFieldCell key="cell" lineBreakMode="clipping" title="888." id="wpZ-1t-Do7">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="tertiaryLabelColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="tertiaryLabelColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -654,7 +783,7 @@
|
|||||||
</textFieldCell>
|
</textFieldCell>
|
||||||
</textField>
|
</textField>
|
||||||
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="i0h-bn-auJ" userLabel="Song Title View">
|
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="i0h-bn-auJ" userLabel="Song Title View">
|
||||||
<rect key="frame" x="40" y="0.0" width="160" height="17"/>
|
<rect key="frame" x="40" y="1" width="160" height="16"/>
|
||||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="ei8-1e-ErK">
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="ei8-1e-ErK">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -699,7 +828,7 @@
|
|||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="tBe-Q9-3Rw">
|
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="tBe-Q9-3Rw">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="127" height="17"/>
|
<rect key="frame" x="0.0" y="1" width="127" height="16"/>
|
||||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="Ceb-ec-ydU">
|
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="Ceb-ec-ydU">
|
||||||
<font key="font" metaFont="system"/>
|
<font key="font" metaFont="system"/>
|
||||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||||
@ -787,7 +916,53 @@
|
|||||||
</items>
|
</items>
|
||||||
</menu>
|
</menu>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="796" y="848"/>
|
<point key="canvasLocation" x="825" y="746"/>
|
||||||
|
</scene>
|
||||||
|
<!--Artist View Controller-->
|
||||||
|
<scene sceneID="SZb-JU-J7O">
|
||||||
|
<objects>
|
||||||
|
<viewController id="LpS-90-tby" customClass="ArtistViewController" sceneMemberID="viewController">
|
||||||
|
<view key="view" id="vxO-fC-BpZ">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
<subviews>
|
||||||
|
<scrollView wantsLayer="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Hef-8H-doh">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||||
|
<clipView key="contentView" id="NYM-zm-wx1">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="450" height="300"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<collectionView id="8MP-vD-0zS">
|
||||||
|
<rect key="frame" x="0.0" y="0.0" width="450" height="158"/>
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES"/>
|
||||||
|
<collectionViewFlowLayout key="collectionViewLayout" minimumInteritemSpacing="10" minimumLineSpacing="10" id="0jX-3t-OLG">
|
||||||
|
<size key="itemSize" width="50" height="50"/>
|
||||||
|
</collectionViewFlowLayout>
|
||||||
|
<color key="primaryBackgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||||
|
</collectionView>
|
||||||
|
</subviews>
|
||||||
|
</clipView>
|
||||||
|
<scroller key="horizontalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="AK9-5R-0F5">
|
||||||
|
<rect key="frame" x="1" y="144" width="233" height="15"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
<scroller key="verticalScroller" hidden="YES" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="f89-z2-LIY">
|
||||||
|
<rect key="frame" x="234" y="1" width="15" height="143"/>
|
||||||
|
<autoresizingMask key="autoresizingMask"/>
|
||||||
|
</scroller>
|
||||||
|
</scrollView>
|
||||||
|
</subviews>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstItem="Hef-8H-doh" firstAttribute="leading" secondItem="vxO-fC-BpZ" secondAttribute="leading" id="9Jt-Aa-9B9"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="Hef-8H-doh" secondAttribute="trailing" id="Znr-1M-fxs"/>
|
||||||
|
<constraint firstItem="Hef-8H-doh" firstAttribute="top" secondItem="vxO-fC-BpZ" secondAttribute="top" id="mpB-KM-RZw"/>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="Hef-8H-doh" secondAttribute="bottom" id="puR-GX-c6y"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</viewController>
|
||||||
|
<customObject id="Ras-zf-6qF" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="2038" y="476"/>
|
||||||
</scene>
|
</scene>
|
||||||
<!--Album View Controller-->
|
<!--Album View Controller-->
|
||||||
<scene sceneID="7Ua-Hj-zWt">
|
<scene sceneID="7Ua-Hj-zWt">
|
||||||
@ -849,7 +1024,7 @@
|
|||||||
</items>
|
</items>
|
||||||
</menu>
|
</menu>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="329" y="1370"/>
|
<point key="canvasLocation" x="2038" y="87"/>
|
||||||
</scene>
|
</scene>
|
||||||
</scenes>
|
</scenes>
|
||||||
<resources>
|
<resources>
|
||||||
|
|||||||
13
Persephone/State/ArtistListState.swift
Normal file
13
Persephone/State/ArtistListState.swift
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
//
|
||||||
|
// ArtistListState.swift
|
||||||
|
// Persephone
|
||||||
|
//
|
||||||
|
// Created by Daniel Barber on 2019/9/20.
|
||||||
|
// Copyright © 2019 Dan Barber. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import ReSwift
|
||||||
|
|
||||||
|
struct ArtistListState: StateType, Equatable {
|
||||||
|
var artists: [String] = []
|
||||||
|
}
|
||||||
23
Persephone/Views/BrowseViewButton.swift
Normal file
23
Persephone/Views/BrowseViewButton.swift
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
//
|
||||||
|
// BrowseViewButton.swift
|
||||||
|
// Persephone
|
||||||
|
//
|
||||||
|
// Created by Daniel Barber on 2019/9/20.
|
||||||
|
// Copyright © 2019 Dan Barber. All rights reserved.
|
||||||
|
//
|
||||||
|
|
||||||
|
import AppKit
|
||||||
|
|
||||||
|
class BrowseViewButton: NSButton {
|
||||||
|
override func draw(_ dirtyRect: NSRect) {
|
||||||
|
super.draw(dirtyRect)
|
||||||
|
// Drawing code here.
|
||||||
|
self.layer?.cornerRadius = 4
|
||||||
|
self.layer?.masksToBounds = true
|
||||||
|
if #available(OSX 10.14, *) {
|
||||||
|
self.layer?.backgroundColor = NSColor.controlAccentColor.cgColor
|
||||||
|
} else {
|
||||||
|
// Fallback on earlier versions
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user