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()
|
return b.curPage.Route()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
|
|
||||||
type NavigationHandler interface {
|
type NavigationHandler interface {
|
||||||
SetPage(Page)
|
SetPage(Page)
|
||||||
|
CurrentPage() controller.Route
|
||||||
}
|
}
|
||||||
|
|
||||||
type Router struct {
|
type Router struct {
|
||||||
@@ -53,5 +54,7 @@ func (r Router) CreatePage(rte controller.Route) Page {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r Router) NavigateTo(rte controller.Route) {
|
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
|
// inject controller dependencies
|
||||||
m.Controller.NavHandler = m.Router.NavigateTo
|
m.Controller.NavHandler = m.Router.NavigateTo
|
||||||
m.Controller.ReloadFunc = m.BrowsingPane.Reload
|
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 = NewBottomPanel(app.Player, m.Controller)
|
||||||
m.BottomPanel.SetPlaybackManager(app.PlaybackManager)
|
m.BottomPanel.SetPlaybackManager(app.PlaybackManager)
|
||||||
|
|||||||
Reference in New Issue
Block a user