From ea31bd8bf191579e6b07bc520f682271d5495f8c Mon Sep 17 00:00:00 2001 From: Drew Weymouth Date: Fri, 6 Jan 2023 14:53:34 -0800 Subject: [PATCH] add home button to navigation bar --- ui/browsing/browsingpane.go | 13 ++++++++++++- ui/mainwindow.go | 10 +++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/ui/browsing/browsingpane.go b/ui/browsing/browsingpane.go index 308ca44..d92e86b 100644 --- a/ui/browsing/browsingpane.go +++ b/ui/browsing/browsingpane.go @@ -40,8 +40,12 @@ type BrowsingPane struct { app *backend.App + // Invoked when the home button is clicked + OnGoHome func() + curPage Page + home *widget.Button forward *widget.Button back *widget.Button reload *widget.Button @@ -62,6 +66,7 @@ func NewBrowsingPane(app *backend.App) *BrowsingPane { b.ExtendBaseWidget(b) b.searchBar = widgets.NewSearchEntry() b.searchBar.OnTextChanged = b.onSearchTextChanged + b.home = widget.NewButtonWithIcon("", theme.HomeIcon(), b.goHome) b.back = widget.NewButtonWithIcon("", theme.NavigateBackIcon(), b.GoBack) b.forward = widget.NewButtonWithIcon("", theme.NavigateNextIcon(), b.GoForward) b.reload = widget.NewButtonWithIcon("", theme.ViewRefreshIcon(), b.Reload) @@ -70,7 +75,7 @@ func NewBrowsingPane(app *backend.App) *BrowsingPane { 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.reload, b.searchBar), + container.NewHBox(b.home, b.back, b.forward, b.reload, b.searchBar), nil, nil, nil, b.pageContainer) return b } @@ -116,6 +121,12 @@ func (b *BrowsingPane) addPageToHistory(p Page) { b.historyIdx++ } +func (b *BrowsingPane) goHome() { + if b.OnGoHome != nil { + b.OnGoHome() + } +} + func (b *BrowsingPane) GoBack() { if b.historyIdx > 1 { b.historyIdx -= 1 diff --git a/ui/mainwindow.go b/ui/mainwindow.go index 1cd449b..4fe89a3 100644 --- a/ui/mainwindow.go +++ b/ui/mainwindow.go @@ -21,12 +21,20 @@ type MainWindow struct { container *fyne.Container } +var ( + HomePage = browsing.AlbumsRoute(backend.AlbumSortRecentlyAdded) +) + func NewMainWindow(fyneApp fyne.App, appName string, app *backend.App) MainWindow { m := MainWindow{ Window: fyneApp.NewWindow(appName), BrowsingPane: browsing.NewBrowsingPane(app), } + m.Router = browsing.NewRouter(app, m.BrowsingPane) + m.BrowsingPane.OnGoHome = func() { + m.Router.OpenRoute(HomePage) + } m.BottomPanel = NewBottomPanel(app.Player, m.Router.OpenRoute) m.BottomPanel.SetPlaybackManager(app.PlaybackManager) m.BottomPanel.ImageManager = app.ImageManager @@ -41,7 +49,7 @@ func NewMainWindow(fyneApp fyne.App, appName string, app *backend.App) MainWindo m.Window.SetTitle(song.Title) }) app.ServerManager.OnServerConnected(func() { - m.Router.OpenRoute(browsing.AlbumsRoute(backend.AlbumSortRecentlyAdded)) + m.Router.OpenRoute(HomePage) }) return m }