reuse album grid on favorites page for searching
This commit is contained in:
@@ -36,15 +36,16 @@ type FavoritesPage struct {
|
|||||||
nowPlayingID string
|
nowPlayingID string
|
||||||
pendingViewSwitch bool
|
pendingViewSwitch bool
|
||||||
|
|
||||||
grid *widgets.GridView
|
grid *widgets.GridView
|
||||||
searchGrid *widgets.GridView
|
gridState *widgets.GridViewState
|
||||||
artistGrid *widgets.GridView
|
searchGridState *widgets.GridViewState
|
||||||
tracklistCtr *fyne.Container
|
artistGrid *widgets.GridView
|
||||||
searcher *widgets.SearchEntry
|
tracklistCtr *fyne.Container
|
||||||
filterBtn *widgets.AlbumFilterButton
|
searcher *widgets.SearchEntry
|
||||||
titleDisp *widget.RichText
|
filterBtn *widgets.AlbumFilterButton
|
||||||
toggleBtns *widgets.ToggleButtonGroup
|
titleDisp *widget.RichText
|
||||||
container *fyne.Container
|
toggleBtns *widgets.ToggleButtonGroup
|
||||||
|
container *fyne.Container
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewFavoritesPage(cfg *backend.FavoritesPageConfig, pool *util.WidgetPool, contr *controller.Controller, mp mediaprovider.MediaProvider, pm *backend.PlaybackManager, im *backend.ImageManager) *FavoritesPage {
|
func NewFavoritesPage(cfg *backend.FavoritesPageConfig, pool *util.WidgetPool, contr *controller.Controller, mp mediaprovider.MediaProvider, pm *backend.PlaybackManager, im *backend.ImageManager) *FavoritesPage {
|
||||||
@@ -100,31 +101,31 @@ func (a *FavoritesPage) createContainer(initialView fyne.CanvasObject) {
|
|||||||
|
|
||||||
func restoreFavoritesPage(saved *savedFavoritesPage) *FavoritesPage {
|
func restoreFavoritesPage(saved *savedFavoritesPage) *FavoritesPage {
|
||||||
a := &FavoritesPage{
|
a := &FavoritesPage{
|
||||||
cfg: saved.cfg,
|
cfg: saved.cfg,
|
||||||
contr: saved.contr,
|
contr: saved.contr,
|
||||||
pool: saved.pool,
|
pool: saved.pool,
|
||||||
pm: saved.pm,
|
pm: saved.pm,
|
||||||
mp: saved.mp,
|
mp: saved.mp,
|
||||||
im: saved.im,
|
im: saved.im,
|
||||||
searchText: saved.searchText,
|
gridState: saved.gridState,
|
||||||
filter: saved.filter,
|
searchGridState: saved.searchGridState,
|
||||||
trackSort: saved.trackSort,
|
searchText: saved.searchText,
|
||||||
|
filter: saved.filter,
|
||||||
|
trackSort: saved.trackSort,
|
||||||
}
|
}
|
||||||
a.ExtendBaseWidget(a)
|
a.ExtendBaseWidget(a)
|
||||||
a.createHeader(saved.activeToggleBtn)
|
a.createHeader(saved.activeToggleBtn)
|
||||||
a.grid = widgets.NewGridViewFromState(saved.gridState)
|
state := saved.gridState
|
||||||
|
|
||||||
if saved.searchText != "" {
|
if saved.searchText != "" {
|
||||||
a.searchGrid = widgets.NewGridViewFromState(saved.searchGridState)
|
state = saved.searchGridState
|
||||||
}
|
}
|
||||||
|
a.grid = widgets.NewGridViewFromState(state)
|
||||||
a.toggleBtns.SetActivatedButton(saved.activeToggleBtn)
|
a.toggleBtns.SetActivatedButton(saved.activeToggleBtn)
|
||||||
|
|
||||||
if saved.activeToggleBtn == 1 {
|
if saved.activeToggleBtn == 1 {
|
||||||
a.onShowFavoriteArtists()
|
a.onShowFavoriteArtists()
|
||||||
} else if saved.activeToggleBtn == 2 {
|
} else if saved.activeToggleBtn == 2 {
|
||||||
a.onShowFavoriteSongs()
|
a.onShowFavoriteSongs()
|
||||||
} else if saved.searchText != "" {
|
|
||||||
a.createContainer(a.searchGrid)
|
|
||||||
} else {
|
} else {
|
||||||
a.createContainer(a.grid)
|
a.createContainer(a.grid)
|
||||||
}
|
}
|
||||||
@@ -193,11 +194,14 @@ func (a *FavoritesPage) Save() SavedPage {
|
|||||||
im: a.im,
|
im: a.im,
|
||||||
filter: a.filter,
|
filter: a.filter,
|
||||||
searchText: a.searchText,
|
searchText: a.searchText,
|
||||||
gridState: a.grid.SaveToState(),
|
gridState: a.gridState,
|
||||||
|
searchGridState: a.searchGridState,
|
||||||
activeToggleBtn: a.toggleBtns.ActivatedButtonIndex(),
|
activeToggleBtn: a.toggleBtns.ActivatedButtonIndex(),
|
||||||
}
|
}
|
||||||
if a.searchGrid != nil {
|
if a.searchText != "" {
|
||||||
sf.searchGridState = a.searchGrid.SaveToState()
|
sf.searchGridState = a.grid.SaveToState()
|
||||||
|
} else {
|
||||||
|
sf.gridState = a.grid.SaveToState()
|
||||||
}
|
}
|
||||||
if a.tracklistCtr != nil {
|
if a.tracklistCtr != nil {
|
||||||
tl := a.tracklistCtr.Objects[0].(*widgets.Tracklist)
|
tl := a.tracklistCtr.Objects[0].(*widgets.Tracklist)
|
||||||
@@ -215,16 +219,13 @@ func (a *FavoritesPage) SearchWidget() fyne.Focusable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *FavoritesPage) OnSearched(query string) {
|
func (a *FavoritesPage) OnSearched(query string) {
|
||||||
a.searchText = query
|
|
||||||
if query == "" {
|
if query == "" {
|
||||||
a.container.Objects[0] = a.grid
|
a.grid.ResetFromState(a.gridState)
|
||||||
if a.searchGrid != nil {
|
a.searchGridState = nil
|
||||||
a.searchGrid.Clear()
|
} else {
|
||||||
}
|
a.doSearchAlbums(query)
|
||||||
a.Refresh()
|
|
||||||
return
|
|
||||||
}
|
}
|
||||||
a.doSearchAlbums(query)
|
a.searchText = query
|
||||||
}
|
}
|
||||||
|
|
||||||
var _ CanShowNowPlaying = (*FavoritesPage)(nil)
|
var _ CanShowNowPlaying = (*FavoritesPage)(nil)
|
||||||
@@ -248,26 +249,18 @@ func (a *FavoritesPage) SelectAll() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (a *FavoritesPage) doSearchAlbums(query string) {
|
func (a *FavoritesPage) doSearchAlbums(query string) {
|
||||||
iter := a.mp.SearchAlbums(query, a.filter)
|
if a.searchText == "" {
|
||||||
if a.searchGrid == nil {
|
a.gridState = a.grid.SaveToState()
|
||||||
a.searchGrid = widgets.NewGridView(widgets.NewGridViewAlbumIterator(iter), a.im, myTheme.AlbumIcon)
|
|
||||||
a.contr.ConnectAlbumGridActions(a.searchGrid)
|
|
||||||
} else {
|
|
||||||
a.searchGrid.Reset(widgets.NewGridViewAlbumIterator(iter))
|
|
||||||
}
|
}
|
||||||
a.container.Objects[0] = a.searchGrid
|
iter := widgets.NewGridViewAlbumIterator(a.mp.SearchAlbums(query, a.filter))
|
||||||
a.Refresh()
|
a.grid.Reset(iter)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *FavoritesPage) onShowFavoriteAlbums() {
|
func (a *FavoritesPage) onShowFavoriteAlbums() {
|
||||||
a.cfg.InitialView = "Albums" // save setting
|
a.cfg.InitialView = "Albums" // save setting
|
||||||
a.searcher.Entry.Show()
|
a.searcher.Entry.Show()
|
||||||
a.filterBtn.Show()
|
a.filterBtn.Show()
|
||||||
if a.searchText == "" {
|
a.container.Objects[0] = a.grid
|
||||||
a.container.Objects[0] = a.grid
|
|
||||||
} else {
|
|
||||||
a.container.Objects[0] = a.searchGrid
|
|
||||||
}
|
|
||||||
a.Refresh()
|
a.Refresh()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user