From 2afc5e3975940525af94e40af62cb7319be761ae Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Sun, 24 Mar 2024 09:53:06 -0700 Subject: [PATCH] disable album hyperlink in tracklist if albumID is empty --- ui/widgets/tracklist.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/ui/widgets/tracklist.go b/ui/widgets/tracklist.go index e3db393..03eb592 100644 --- a/ui/widgets/tracklist.go +++ b/ui/widgets/tracklist.go @@ -690,7 +690,6 @@ type TrackRow struct { tracklist *Tracklist trackNum int trackID string - albumID string isPlaying bool isFavorite bool playCount int @@ -698,7 +697,7 @@ type TrackRow struct { num *widget.Label name *widget.RichText // for bold support artist *MultiHyperlink - album *widget.Hyperlink + album *MultiHyperlink // for disabled support, if albumID is "" dur *widget.Label year *widget.Label favorite *fyne.Container @@ -721,9 +720,8 @@ func NewTrackRow(tracklist *Tracklist, playingIcon fyne.CanvasObject) *TrackRow t.name = util.NewTruncatingRichText() t.artist = NewMultiHyperlink() t.artist.OnTapped = tracklist.onArtistTapped - t.album = widget.NewHyperlink("", nil) - t.album.Truncation = fyne.TextTruncateEllipsis - t.album.OnTapped = func() { tracklist.onAlbumTapped(t.albumID) } + t.album = NewMultiHyperlink() + t.album.OnTapped = func(id string) { tracklist.onAlbumTapped(id) } t.dur = util.NewTrailingAlignLabel() t.year = util.NewTrailingAlignLabel() favorite := NewFavoriteIcon() @@ -757,11 +755,10 @@ func (t *TrackRow) Update(tm *util.TrackListModel, rowNum int) { if tr.ID != t.trackID { t.EnsureUnfocused() t.trackID = tr.ID - t.albumID = tr.AlbumID t.name.Segments[0].(*widget.TextSegment).Text = tr.Name t.artist.BuildSegments(tr.ArtistNames, tr.ArtistIDs) - t.album.SetText(tr.Album) + t.album.BuildSegments([]string{tr.Album}, []string{tr.AlbumID}) t.dur.Text = util.SecondsToTimeString(float64(tr.Duration)) t.year.Text = strconv.Itoa(tr.Year) t.plays.Text = strconv.Itoa(int(tr.PlayCount))