add reload to browsing pane + pages
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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("")
|
||||
|
||||
Reference in New Issue
Block a user