From b56e2a0a533f374ac2f38aa343372d6bcce1dedf Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Sun, 3 Feb 2019 18:39:33 -0500 Subject: [PATCH] Split title and artist into their own columns --- Persephone/Base.lproj/Main.storyboard | 93 ++++++++++++++++----------- Persephone/QueueController.swift | 28 ++++++-- 2 files changed, 76 insertions(+), 45 deletions(-) diff --git a/Persephone/Base.lproj/Main.storyboard b/Persephone/Base.lproj/Main.storyboard index ffef13b..118bb2c 100644 --- a/Persephone/Base.lproj/Main.storyboard +++ b/Persephone/Base.lproj/Main.storyboard @@ -736,7 +736,7 @@ - + @@ -777,7 +777,7 @@ - + @@ -788,43 +788,21 @@ - + - - - - - - - - - - - - - - - - - - - - - - - - + + - + - + @@ -833,12 +811,12 @@ - - - - - - + + + + + + @@ -847,6 +825,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -867,10 +882,10 @@ - - - - + + + + diff --git a/Persephone/QueueController.swift b/Persephone/QueueController.swift index f3fc7ad..946c603 100644 --- a/Persephone/QueueController.swift +++ b/Persephone/QueueController.swift @@ -15,6 +15,8 @@ class QueueController: NSViewController, NSOutlineViewDataSource, NSOutlineViewD override func viewDidLoad() { super.viewDidLoad() + queueView.columnAutoresizingStyle = .uniformColumnAutoresizingStyle + NotificationCenter.default.addObserver( self, selector: #selector(queueChanged(_:)), @@ -47,14 +49,28 @@ class QueueController: NSViewController, NSOutlineViewDataSource, NSOutlineViewD func outlineView(_ outlineView: NSOutlineView, viewFor tableColumn: NSTableColumn?, item: Any) -> NSView? { guard let song = item as? MPDClient.Song else { return nil } - let tableView = outlineView.makeView( - withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "songItemCell"), - owner: self - ) as! NSTableCellView + switch tableColumn?.identifier.rawValue { + case "songTitleColumn": + let cellView = outlineView.makeView( + withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "songTitleCell"), + owner: self + ) as! NSTableCellView - tableView.textField?.stringValue = "\(song.getTag(MPD_TAG_TITLE)) - \(song.getTag(MPD_TAG_ARTIST))" + cellView.textField?.stringValue = song.getTag(MPD_TAG_TITLE) - return tableView + return cellView + case "songArtistColumn": + let cellView = outlineView.makeView( + withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "songArtistCell"), + owner: self + ) as! NSTableCellView + + cellView.textField?.stringValue = song.getTag(MPD_TAG_ARTIST) + + return cellView + default: + return nil + } } @IBOutlet var queueView: NSOutlineView!