From 72bd149efa008c33c0be810b0f954c20cefffe96 Mon Sep 17 00:00:00 2001 From: Simon Garrelou Date: Tue, 19 Dec 2023 10:47:06 +0100 Subject: load albums on artist selection --- src/page_artists.go | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/page_artists.go b/src/page_artists.go index f67697c..faf1027 100644 --- a/src/page_artists.go +++ b/src/page_artists.go @@ -28,6 +28,23 @@ func (a *app) artistsPage() tview.Primitive { sel := node.GetReference().(selection) if sel.entryType == "artist" { + if node.GetChildren() != nil || len(node.GetChildren()) == 0 { + artist, err := a.sub.GetMusicDirectory(sel.id) + if err != nil { + panic(err) + } + + for _, album := range artist.Child { + subnode := tview.NewTreeNode(album.Title) + subnode.SetReference(selection{"album", album.ID}) + subnode.SetColor(tcell.ColorBlue) + subnode.SetSelectable(true) + + node.AddChild(subnode) + } + + } + node.SetExpanded(!node.IsExpanded()) return } @@ -84,20 +101,6 @@ func (a *app) refreshArtists() error { node.SetSelectable(true) node.SetExpanded(false) - albums, err := a.sub.GetMusicDirectory(artist.ID) - if err != nil { - return err - } - - for _, album := range albums.Child { - subnode := tview.NewTreeNode(album.Title) - subnode.SetReference(selection{"album", album.ID}) - subnode.SetColor(tcell.ColorBlue) - subnode.SetSelectable(true) - - node.AddChild(subnode) - } - a.artistsTree.GetRoot().AddChild(node) } } -- cgit v1.2.3