From 53a9b38a9a246ccefbed14c6811f7fc6c2da6f9c Mon Sep 17 00:00:00 2001 From: Wim Looman Date: Sat, 11 Jul 2020 13:12:42 +0200 Subject: [PATCH] Show all track artists if any differs from album artist --- .../Browser/Album Detail/AlbumDetailSongTitleView.swift | 7 +++++-- .../AlbumDetailView+NSTableViewDelegate.swift | 3 ++- .../Browser/Album Detail/AlbumTracksDataSource.swift | 9 +++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/Mac/Components/Browser/Album Detail/AlbumDetailSongTitleView.swift b/Mac/Components/Browser/Album Detail/AlbumDetailSongTitleView.swift index 7ae3348..5a17e41 100644 --- a/Mac/Components/Browser/Album Detail/AlbumDetailSongTitleView.swift +++ b/Mac/Components/Browser/Album Detail/AlbumDetailSongTitleView.swift @@ -13,14 +13,17 @@ class AlbumDetailSongTitleView: NSTableCellView { @IBOutlet var songArtist: NSTextField! var collapseArtist: NSLayoutConstraint! - func setSong(_ song: Song) { + func setShowArtist(_ show: Bool) { if collapseArtist == nil { collapseArtist = songArtist?.heightAnchor.constraint(equalToConstant: 0.0) } + collapseArtist.isActive = !show + } + + func setSong(_ song: Song) { songTitle?.stringValue = song.title songArtist?.stringValue = song.artist - collapseArtist.isActive = song.artist == song.albumArtist } } diff --git a/Mac/Components/Browser/Album Detail/AlbumDetailView+NSTableViewDelegate.swift b/Mac/Components/Browser/Album Detail/AlbumDetailView+NSTableViewDelegate.swift index 0a526c9..eb0170e 100644 --- a/Mac/Components/Browser/Album Detail/AlbumDetailView+NSTableViewDelegate.swift +++ b/Mac/Components/Browser/Album Detail/AlbumDetailView+NSTableViewDelegate.swift @@ -82,7 +82,8 @@ extension AlbumDetailView: NSTableViewDelegate { withIdentifier: .songTitle, owner: self ) as! AlbumDetailSongTitleView - + + cellView.setShowArtist(dataSource.showSongArtist) cellView.setSong(song) return cellView diff --git a/Mac/Components/Browser/Album Detail/AlbumTracksDataSource.swift b/Mac/Components/Browser/Album Detail/AlbumTracksDataSource.swift index a34e005..59b74d0 100644 --- a/Mac/Components/Browser/Album Detail/AlbumTracksDataSource.swift +++ b/Mac/Components/Browser/Album Detail/AlbumTracksDataSource.swift @@ -25,15 +25,24 @@ class AlbumTracksDataSource: NSObject, NSTableViewDataSource { } var albumSongs: [AlbumSongItem] = [] + var showSongArtist: Bool = false func setAlbumSongs(_ songs: [Song]) { var disc: String? = "" + var albumArtist: String? + showSongArtist = false songs.forEach { song in if song.disc != disc && song.disc != "0" { disc = song.disc albumSongs.append(AlbumSongItem(disc: song.disc)) } + if albumArtist == nil { + albumArtist = song.albumArtist + } + if song.artist != albumArtist { + showSongArtist = true + } albumSongs.append(AlbumSongItem(song: song)) }