optimization: don't create page if it won't be navigated to
This commit is contained in:
@@ -209,7 +209,10 @@ func (b *BrowsingPane) Reload() {
|
||||
}
|
||||
}
|
||||
|
||||
func (b *BrowsingPane) CurPage() controller.Route {
|
||||
func (b *BrowsingPane) CurrentPage() controller.Route {
|
||||
if b.curPage == nil {
|
||||
return controller.Route{Page: controller.Blank}
|
||||
}
|
||||
return b.curPage.Route()
|
||||
}
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
type NavigationHandler interface {
|
||||
SetPage(Page)
|
||||
CurrentPage() controller.Route
|
||||
}
|
||||
|
||||
type Router struct {
|
||||
@@ -53,5 +54,7 @@ func (r Router) CreatePage(rte controller.Route) Page {
|
||||
}
|
||||
|
||||
func (r Router) NavigateTo(rte controller.Route) {
|
||||
r.Nav.SetPage(r.CreatePage(rte))
|
||||
if rte != r.Nav.CurrentPage() {
|
||||
r.Nav.SetPage(r.CreatePage(rte))
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ func NewMainWindow(fyneApp fyne.App, appName, appVersion string, app *backend.Ap
|
||||
// inject controller dependencies
|
||||
m.Controller.NavHandler = m.Router.NavigateTo
|
||||
m.Controller.ReloadFunc = m.BrowsingPane.Reload
|
||||
m.Controller.CurPageFunc = m.BrowsingPane.CurPage
|
||||
m.Controller.CurPageFunc = m.BrowsingPane.CurrentPage
|
||||
|
||||
m.BottomPanel = NewBottomPanel(app.Player, m.Controller)
|
||||
m.BottomPanel.SetPlaybackManager(app.PlaybackManager)
|
||||
|
||||
Reference in New Issue
Block a user