add reload to browsing pane + pages

This commit is contained in:
Drew Weymouth
2023-01-06 09:28:50 -08:00
parent 7b3aca6027
commit 805087cc3d
4 changed files with 38 additions and 9 deletions
+4
View File
@@ -65,6 +65,10 @@ func (a *AlbumPage) OnSongChange(song *subsonic.Child) {
a.tracklist.SetNowPlaying(a.nowPlayingID)
}
func (a *AlbumPage) Reload() {
a.loadAsync()
}
func (a *AlbumPage) onPlayTrackAt(tracknum int) {
if a.OnPlayAlbum != nil {
a.OnPlayAlbum(a.albumID, tracknum)
+20 -8
View File
@@ -90,6 +90,26 @@ func (a *AlbumsPage) OnSearched(query string) {
a.Refresh()
return
}
a.doSearch(query)
}
func (a *AlbumsPage) Route() Route {
return AlbumsRoute(backend.AlbumSortOrder(a.sortOrder.Selected))
}
func (a *AlbumsPage) SetPlayAlbumCallback(cb func(string, int)) {
a.OnPlayAlbum = cb
}
func (a *AlbumsPage) Reload() {
if a.searchText != "" {
a.doSearch(a.searchText)
} else {
a.grid.Reset(a.lm.AlbumsIter(backend.AlbumSortOrder(a.sortOrder.Selected)))
}
}
func (a *AlbumsPage) doSearch(query string) {
if a.searchGrid == nil {
a.searchGrid = widgets.NewAlbumGrid(a.lm.SearchIter(query), a.im.GetAlbumThumbnail, false /*showYear*/)
a.searchGrid.OnPlayAlbum = a.onPlayAlbum
@@ -102,14 +122,6 @@ func (a *AlbumsPage) OnSearched(query string) {
a.Refresh()
}
func (a *AlbumsPage) Route() Route {
return AlbumsRoute(backend.AlbumSortOrder(a.sortOrder.Selected))
}
func (a *AlbumsPage) SetPlayAlbumCallback(cb func(string, int)) {
a.OnPlayAlbum = cb
}
func (a *AlbumsPage) onPlayAlbum(albumID string) {
if a.OnPlayAlbum != nil {
a.OnPlayAlbum(albumID, 0)
+4
View File
@@ -53,6 +53,10 @@ func (a *ArtistPage) SetPlayAlbumCallback(cb func(string, int)) {
a.OnPlayAlbum = cb
}
func (a *ArtistPage) Reload() {
a.loadAsync()
}
func (a *ArtistPage) onPlayAlbum(albumID string) {
if a.OnPlayAlbum != nil {
a.OnPlayAlbum(albumID, 0)
+10 -1
View File
@@ -19,6 +19,7 @@ import (
type Page interface {
fyne.CanvasObject
Reload()
Route() Route
}
@@ -43,6 +44,7 @@ type BrowsingPane struct {
forward *widget.Button
back *widget.Button
reload *widget.Button
history []Page
historyIdx int
@@ -62,12 +64,13 @@ func NewBrowsingPane(app *backend.App) *BrowsingPane {
b.searchBar.OnTextChanged = b.onSearchTextChanged
b.back = widget.NewButtonWithIcon("", theme.NavigateBackIcon(), b.GoBack)
b.forward = widget.NewButtonWithIcon("", theme.NavigateNextIcon(), b.GoForward)
b.reload = widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), b.Reload)
b.app.PlaybackManager.OnSongChange(b.onSongChange)
b.pageContainer = container.NewMax(
canvas.NewRectangle(color.RGBA{R: 24, G: 24, B: 24, A: 255}),
layout.NewSpacer())
b.container = container.NewBorder(
container.NewHBox(b.back, b.forward, b.searchBar),
container.NewHBox(b.back, b.forward, b.reload, b.searchBar),
nil, nil, nil, b.pageContainer)
return b
}
@@ -127,6 +130,12 @@ func (b *BrowsingPane) GoForward() {
}
}
func (b *BrowsingPane) Reload() {
if b.curPage != nil {
b.curPage.Reload()
}
}
func (b *BrowsingPane) onSearchTextChanged(text string) {
if text == "" {
b.sendSearch("")