save search state for favorites page in navigation history
This commit is contained in:
@@ -46,7 +46,7 @@ func NewFavoritesPage(sm *backend.ServerManager, pm *backend.PlaybackManager, lm
|
|||||||
a.grid.OnShowArtistPage = a.onShowArtistPage
|
a.grid.OnShowArtistPage = a.onShowArtistPage
|
||||||
a.searcher = widgets.NewSearcher()
|
a.searcher = widgets.NewSearcher()
|
||||||
a.searcher.OnSearched = a.OnSearched
|
a.searcher.OnSearched = a.OnSearched
|
||||||
a.createContainer()
|
a.createContainer(false)
|
||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,11 +57,15 @@ func (a *FavoritesPage) createTitle() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *FavoritesPage) createContainer() {
|
func (a *FavoritesPage) createContainer(searchGrid bool) {
|
||||||
searchVbox := container.NewVBox(layout.NewSpacer(), a.searcher.Entry, layout.NewSpacer())
|
searchVbox := container.NewVBox(layout.NewSpacer(), a.searcher.Entry, layout.NewSpacer())
|
||||||
|
gr := a.grid
|
||||||
|
if searchGrid {
|
||||||
|
gr = a.searchGrid
|
||||||
|
}
|
||||||
a.container = container.NewBorder(
|
a.container = container.NewBorder(
|
||||||
container.NewHBox(widgets.NewHSpace(9), a.titleDisp, layout.NewSpacer(), searchVbox, widgets.NewHSpace(15)),
|
container.NewHBox(widgets.NewHSpace(9), a.titleDisp, layout.NewSpacer(), searchVbox, widgets.NewHSpace(15)),
|
||||||
nil, nil, nil, a.grid)
|
nil, nil, nil, gr)
|
||||||
}
|
}
|
||||||
|
|
||||||
func restoreFavoritesPage(saved *savedFavoritesPage) *FavoritesPage {
|
func restoreFavoritesPage(saved *savedFavoritesPage) *FavoritesPage {
|
||||||
@@ -80,7 +84,11 @@ func restoreFavoritesPage(saved *savedFavoritesPage) *FavoritesPage {
|
|||||||
a.grid.OnShowArtistPage = a.onShowArtistPage
|
a.grid.OnShowArtistPage = a.onShowArtistPage
|
||||||
a.searcher = widgets.NewSearcher()
|
a.searcher = widgets.NewSearcher()
|
||||||
a.searcher.OnSearched = a.OnSearched
|
a.searcher.OnSearched = a.OnSearched
|
||||||
a.createContainer()
|
a.searcher.Entry.Text = saved.searchText
|
||||||
|
if saved.searchText != "" {
|
||||||
|
a.searchGrid = widgets.NewAlbumGridFromState(saved.searchGridState)
|
||||||
|
}
|
||||||
|
a.createContainer(saved.searchText != "")
|
||||||
|
|
||||||
return a
|
return a
|
||||||
}
|
}
|
||||||
@@ -90,18 +98,27 @@ func (a *FavoritesPage) Route() Route {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *FavoritesPage) Reload() {
|
func (a *FavoritesPage) Reload() {
|
||||||
a.grid.Reset(a.lm.StarredIter())
|
if a.searchText != "" {
|
||||||
|
a.doSearch(a.searchText)
|
||||||
|
} else {
|
||||||
|
a.grid.Reset(a.lm.StarredIter())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *FavoritesPage) Save() SavedPage {
|
func (a *FavoritesPage) Save() SavedPage {
|
||||||
return &savedFavoritesPage{
|
sf := &savedFavoritesPage{
|
||||||
pm: a.pm,
|
pm: a.pm,
|
||||||
sm: a.sm,
|
sm: a.sm,
|
||||||
im: a.im,
|
im: a.im,
|
||||||
lm: a.lm,
|
lm: a.lm,
|
||||||
nav: a.nav,
|
nav: a.nav,
|
||||||
gridState: a.grid.SaveToState(),
|
searchText: a.searchText,
|
||||||
|
gridState: a.grid.SaveToState(),
|
||||||
}
|
}
|
||||||
|
if a.searchGrid != nil {
|
||||||
|
sf.searchGridState = a.searchGrid.SaveToState()
|
||||||
|
}
|
||||||
|
return sf
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ Searchable = (*FavoritesPage)(nil)
|
var _ Searchable = (*FavoritesPage)(nil)
|
||||||
@@ -157,12 +174,14 @@ func (a *FavoritesPage) CreateRenderer() fyne.WidgetRenderer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type savedFavoritesPage struct {
|
type savedFavoritesPage struct {
|
||||||
pm *backend.PlaybackManager
|
pm *backend.PlaybackManager
|
||||||
sm *backend.ServerManager
|
sm *backend.ServerManager
|
||||||
im *backend.ImageManager
|
im *backend.ImageManager
|
||||||
lm *backend.LibraryManager
|
lm *backend.LibraryManager
|
||||||
gridState widgets.AlbumGridState
|
gridState widgets.AlbumGridState
|
||||||
nav func(Route)
|
searchGridState widgets.AlbumGridState
|
||||||
|
searchText string
|
||||||
|
nav func(Route)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *savedFavoritesPage) Restore() Page {
|
func (s *savedFavoritesPage) Restore() Page {
|
||||||
|
|||||||
Reference in New Issue
Block a user