mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
Show all track artists if any differs from album artist
This commit is contained in:
parent
efd7fedb5e
commit
4cb79222f5
@ -13,14 +13,17 @@ class AlbumDetailSongTitleView: NSTableCellView {
|
|||||||
@IBOutlet var songArtist: NSTextField!
|
@IBOutlet var songArtist: NSTextField!
|
||||||
var collapseArtist: NSLayoutConstraint!
|
var collapseArtist: NSLayoutConstraint!
|
||||||
|
|
||||||
func setSong(_ song: Song) {
|
func setShowArtist(_ show: Bool) {
|
||||||
if collapseArtist == nil {
|
if collapseArtist == nil {
|
||||||
collapseArtist = songArtist?.heightAnchor.constraint(equalToConstant: 0.0)
|
collapseArtist = songArtist?.heightAnchor.constraint(equalToConstant: 0.0)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
collapseArtist.isActive = !show
|
||||||
|
}
|
||||||
|
|
||||||
|
func setSong(_ song: Song) {
|
||||||
songTitle?.stringValue = song.title
|
songTitle?.stringValue = song.title
|
||||||
songArtist?.stringValue = song.artist
|
songArtist?.stringValue = song.artist
|
||||||
collapseArtist.isActive = song.artist == song.albumArtist
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -82,7 +82,8 @@ extension AlbumDetailView: NSTableViewDelegate {
|
|||||||
withIdentifier: .songTitle,
|
withIdentifier: .songTitle,
|
||||||
owner: self
|
owner: self
|
||||||
) as! AlbumDetailSongTitleView
|
) as! AlbumDetailSongTitleView
|
||||||
|
|
||||||
|
cellView.setShowArtist(dataSource.showSongArtist)
|
||||||
cellView.setSong(song)
|
cellView.setSong(song)
|
||||||
|
|
||||||
return cellView
|
return cellView
|
||||||
|
|||||||
@ -25,15 +25,24 @@ class AlbumTracksDataSource: NSObject, NSTableViewDataSource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var albumSongs: [AlbumSongItem] = []
|
var albumSongs: [AlbumSongItem] = []
|
||||||
|
var showSongArtist: Bool = false
|
||||||
|
|
||||||
func setAlbumSongs(_ songs: [Song]) {
|
func setAlbumSongs(_ songs: [Song]) {
|
||||||
var disc: String? = ""
|
var disc: String? = ""
|
||||||
|
var albumArtist: String?
|
||||||
|
|
||||||
|
showSongArtist = false
|
||||||
songs.forEach { song in
|
songs.forEach { song in
|
||||||
if song.disc != disc && song.disc != "0" {
|
if song.disc != disc && song.disc != "0" {
|
||||||
disc = song.disc
|
disc = song.disc
|
||||||
albumSongs.append(AlbumSongItem(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))
|
albumSongs.append(AlbumSongItem(song: song))
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user