reuse grid view across several pages

This commit is contained in:
Drew Weymouth
2023-07-09 14:14:23 -07:00
parent be41bdc72c
commit 203070328c
11 changed files with 116 additions and 30 deletions
+11 -1
View File
@@ -129,6 +129,10 @@ func (a *ArtistPage) Save() SavedPage {
a.pool.Release(util.WidgetTypeTracklist, tl)
}
a.pool.Release(util.WidgetTypeArtistPageHeader, a.header)
if a.albumGrid != nil {
a.albumGrid.Clear()
a.pool.Release(util.WidgetTypeGridView, a.albumGrid)
}
return &s
}
@@ -186,7 +190,13 @@ func (a *ArtistPage) showAlbumGrid() {
Secondary: strconv.Itoa(al.Year),
}
})
a.albumGrid = widgets.NewFixedGridView(model, a.im, myTheme.AlbumIcon)
if g := a.pool.Obtain(util.WidgetTypeGridView); g != nil {
a.albumGrid = g.(*widgets.GridView)
a.albumGrid.Placeholder = myTheme.AlbumIcon
a.albumGrid.ResetFixed(model)
} else {
a.albumGrid = widgets.NewFixedGridView(model, a.im, myTheme.AlbumIcon)
}
a.contr.ConnectAlbumGridActions(a.albumGrid)
}
a.container.Objects[0].(*fyne.Container).Objects[0] = a.albumGrid