diff --git a/ui/controller/controller.go b/ui/controller/controller.go index f911a6d..8174b8a 100644 --- a/ui/controller/controller.go +++ b/ui/controller/controller.go @@ -41,13 +41,14 @@ type CurPageFunc func() Route type Controller struct { visualizationData - AppVersion string - App *backend.App - MainWindow fyne.Window - NavHandler NavigationHandler - CurPageFunc CurPageFunc - ReloadFunc func() - RefreshPageFunc func() + AppVersion string + App *backend.App + MainWindow fyne.Window + NavHandler NavigationHandler + CurPageFunc CurPageFunc + ReloadFunc func() + RefreshPageFunc func() + SelectAllPageFunc func() popUpQueueMutex sync.Mutex popUpQueue *widget.PopUp @@ -87,6 +88,19 @@ func New(app *backend.App, appVersion string, mainWindow fyne.Window) *Controlle return c } +func (m *Controller) SelectAll() { + m.popUpQueueMutex.Lock() + if m.popUpQueue != nil && m.popUpQueue.Visible() { + m.popUpQueueList.SelectAll() + m.popUpQueueMutex.Unlock() + return + } + m.popUpQueueMutex.Unlock() + if m.SelectAllPageFunc != nil { + m.SelectAllPageFunc() + } +} + func (m *Controller) NavigateTo(route Route) { m.NavHandler(route) } diff --git a/ui/mainwindow.go b/ui/mainwindow.go index f954dad..aa09f1f 100644 --- a/ui/mainwindow.go +++ b/ui/mainwindow.go @@ -67,6 +67,7 @@ func NewMainWindow(fyneApp fyne.App, appName, displayAppName, appVersion string, m.Controller.ReloadFunc = m.BrowsingPane.Reload m.Controller.CurPageFunc = m.BrowsingPane.CurrentPage m.Controller.RefreshPageFunc = m.BrowsingPane.RefreshPage + m.Controller.SelectAllPageFunc = m.BrowsingPane.SelectAll if runtime.GOOS == "darwin" { // Fyne will extract out an "About" menu item and @@ -353,7 +354,7 @@ func (m *MainWindow) addShortcuts() { } }) m.Canvas().AddShortcut(&fyne.ShortcutSelectAll{}, func(_ fyne.Shortcut) { - m.BrowsingPane.SelectAll() + m.Controller.SelectAll() }) m.Canvas().AddShortcut(&shortcuts.ShortcutCloseWindow, func(_ fyne.Shortcut) { if m.App.Config.Application.CloseToSystemTray && m.HaveSystemTray() {