diff options
author | Simon Garrelou <simon@sixfoisneuf.fr> | 2024-02-02 14:23:36 +0100 |
---|---|---|
committer | Simon Garrelou <simon@sixfoisneuf.fr> | 2024-02-02 14:23:36 +0100 |
commit | e373eaf07bb0102819142d4a70ee0d83a1e9370b (patch) | |
tree | 59abfc7fc6b4e7e6171ffc494760cdcb97d671a4 /src/page_artists.go | |
parent | 119f7140d269aa5f9c01faa9d83d2e73e6f1efb0 (diff) | |
parent | 740dde7e412edbe139f2708ddb0fb03d261dd807 (diff) | |
download | termsonic-e373eaf07bb0102819142d4a70ee0d83a1e9370b.tar.gz termsonic-e373eaf07bb0102819142d4a70ee0d83a1e9370b.zip |
Merge branch 'delayed-load'
Diffstat (limited to 'src/page_artists.go')
-rw-r--r-- | src/page_artists.go | 33 |
1 files changed, 19 insertions, 14 deletions
diff --git a/src/page_artists.go b/src/page_artists.go index 747165b..0b5a0be 100644 --- a/src/page_artists.go +++ b/src/page_artists.go | |||
@@ -28,6 +28,25 @@ func (a *app) artistsPage() tview.Primitive { | |||
28 | 28 | ||
29 | sel := node.GetReference().(selection) | 29 | sel := node.GetReference().(selection) |
30 | if sel.entryType == "artist" { | 30 | if sel.entryType == "artist" { |
31 | if node.GetChildren() != nil || len(node.GetChildren()) == 0 { | ||
32 | artist, err := a.sub.GetMusicDirectory(sel.id) | ||
33 | if err != nil { | ||
34 | LogErrorf("loading album '%s': %v", sel.id, err) | ||
35 | a.alert("Error: %v", err) | ||
36 | return | ||
37 | } | ||
38 | |||
39 | for _, album := range artist.Child { | ||
40 | subnode := tview.NewTreeNode(album.Title) | ||
41 | subnode.SetReference(selection{"album", album.ID}) | ||
42 | subnode.SetColor(tcell.ColorBlue) | ||
43 | subnode.SetSelectable(true) | ||
44 | |||
45 | node.AddChild(subnode) | ||
46 | } | ||
47 | |||
48 | } | ||
49 | |||
31 | node.SetExpanded(!node.IsExpanded()) | 50 | node.SetExpanded(!node.IsExpanded()) |
32 | return | 51 | return |
33 | } | 52 | } |
@@ -84,20 +103,6 @@ func (a *app) refreshArtists() error { | |||
84 | node.SetSelectable(true) | 103 | node.SetSelectable(true) |
85 | node.SetExpanded(false) | 104 | node.SetExpanded(false) |
86 | 105 | ||
87 | albums, err := a.sub.GetMusicDirectory(artist.ID) | ||
88 | if err != nil { | ||
89 | return err | ||
90 | } | ||
91 | |||
92 | for _, album := range albums.Child { | ||
93 | subnode := tview.NewTreeNode(album.Title) | ||
94 | subnode.SetReference(selection{"album", album.ID}) | ||
95 | subnode.SetColor(tcell.ColorBlue) | ||
96 | subnode.SetSelectable(true) | ||
97 | |||
98 | node.AddChild(subnode) | ||
99 | } | ||
100 | |||
101 | a.artistsTree.GetRoot().AddChild(node) | 106 | a.artistsTree.GetRoot().AddChild(node) |
102 | } | 107 | } |
103 | } | 108 | } |