add Ctrl/Cmd+W shortcut to close Peak Meter window
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/lang"
|
||||
"github.com/dweymouth/supersonic/backend/player"
|
||||
"github.com/dweymouth/supersonic/ui/shortcuts"
|
||||
"github.com/dweymouth/supersonic/ui/util"
|
||||
"github.com/dweymouth/supersonic/ui/visualizations"
|
||||
)
|
||||
@@ -35,7 +36,8 @@ func (c *Controller) ShowPeakMeter() {
|
||||
return
|
||||
}
|
||||
c.peakMeterWin = fyne.CurrentApp().NewWindow(lang.L("Peak Meter"))
|
||||
c.peakMeterWin.SetCloseIntercept(func() {
|
||||
|
||||
onClose := func() {
|
||||
c.stopVisualizationAnim()
|
||||
c.peakMeter = nil
|
||||
util.SaveWindowSize(c.peakMeterWin,
|
||||
@@ -43,6 +45,11 @@ func (c *Controller) ShowPeakMeter() {
|
||||
&c.App.Config.PeakMeter.WindowHeight)
|
||||
c.peakMeterWin.Close()
|
||||
c.peakMeterWin = nil
|
||||
}
|
||||
|
||||
c.peakMeterWin.SetCloseIntercept(onClose)
|
||||
c.peakMeterWin.Canvas().AddShortcut(&shortcuts.ShortcutCloseWindow, func(_ fyne.Shortcut) {
|
||||
onClose()
|
||||
})
|
||||
if c.App.Config.PeakMeter.WindowHeight > 0 {
|
||||
c.peakMeterWin.Resize(fyne.NewSize(
|
||||
|
||||
+12
-31
@@ -13,7 +13,7 @@ import (
|
||||
"github.com/dweymouth/supersonic/ui/browsing"
|
||||
"github.com/dweymouth/supersonic/ui/controller"
|
||||
"github.com/dweymouth/supersonic/ui/dialogs"
|
||||
"github.com/dweymouth/supersonic/ui/os"
|
||||
"github.com/dweymouth/supersonic/ui/shortcuts"
|
||||
"github.com/dweymouth/supersonic/ui/theme"
|
||||
"github.com/dweymouth/supersonic/ui/util"
|
||||
|
||||
@@ -25,25 +25,6 @@ import (
|
||||
"fyne.io/fyne/v2/widget"
|
||||
)
|
||||
|
||||
var (
|
||||
ShortcutReload = desktop.CustomShortcut{KeyName: fyne.KeyR, Modifier: os.ControlModifier}
|
||||
ShortcutSearch = desktop.CustomShortcut{KeyName: fyne.KeyF, Modifier: os.ControlModifier}
|
||||
ShortcutQuickSearch = desktop.CustomShortcut{KeyName: fyne.KeyG, Modifier: os.ControlModifier}
|
||||
ShortcutCloseWindow = desktop.CustomShortcut{KeyName: fyne.KeyW, Modifier: os.ControlModifier}
|
||||
|
||||
ShortcutNavOne = desktop.CustomShortcut{KeyName: fyne.Key1, Modifier: os.ControlModifier}
|
||||
ShortcutNavTwo = desktop.CustomShortcut{KeyName: fyne.Key2, Modifier: os.ControlModifier}
|
||||
ShortcutNavThree = desktop.CustomShortcut{KeyName: fyne.Key3, Modifier: os.ControlModifier}
|
||||
ShortcutNavFour = desktop.CustomShortcut{KeyName: fyne.Key4, Modifier: os.ControlModifier}
|
||||
ShortcutNavFive = desktop.CustomShortcut{KeyName: fyne.Key5, Modifier: os.ControlModifier}
|
||||
ShortcutNavSix = desktop.CustomShortcut{KeyName: fyne.Key6, Modifier: os.ControlModifier}
|
||||
ShortcutNavSeven = desktop.CustomShortcut{KeyName: fyne.Key7, Modifier: os.ControlModifier}
|
||||
ShortcutNavEight = desktop.CustomShortcut{KeyName: fyne.Key8, Modifier: os.ControlModifier}
|
||||
|
||||
NavShortcuts = []desktop.CustomShortcut{ShortcutNavOne, ShortcutNavTwo, ShortcutNavThree,
|
||||
ShortcutNavFour, ShortcutNavFive, ShortcutNavSix, ShortcutNavSeven, ShortcutNavEight}
|
||||
)
|
||||
|
||||
type MainWindow struct {
|
||||
Window fyne.Window
|
||||
|
||||
@@ -328,31 +309,31 @@ func (m *MainWindow) addNavigationButtons() {
|
||||
}
|
||||
|
||||
func (m *MainWindow) addShortcuts() {
|
||||
for _, sh := range os.BackShortcuts {
|
||||
for _, sh := range shortcuts.BackShortcuts {
|
||||
m.Canvas().AddShortcut(&sh, func(_ fyne.Shortcut) {
|
||||
m.BrowsingPane.GoBack()
|
||||
})
|
||||
}
|
||||
for _, sh := range os.ForwardShortcuts {
|
||||
for _, sh := range shortcuts.ForwardShortcuts {
|
||||
m.Canvas().AddShortcut(&sh, func(_ fyne.Shortcut) {
|
||||
m.BrowsingPane.GoForward()
|
||||
})
|
||||
}
|
||||
if os.SettingsShortcut != nil {
|
||||
m.Canvas().AddShortcut(os.SettingsShortcut, func(_ fyne.Shortcut) {
|
||||
if shortcuts.SettingsShortcut != nil {
|
||||
m.Canvas().AddShortcut(shortcuts.SettingsShortcut, func(_ fyne.Shortcut) {
|
||||
m.showSettingsDialog()
|
||||
})
|
||||
}
|
||||
if os.QuitShortcut != nil {
|
||||
m.Canvas().AddShortcut(os.QuitShortcut, func(_ fyne.Shortcut) {
|
||||
if shortcuts.QuitShortcut != nil {
|
||||
m.Canvas().AddShortcut(shortcuts.QuitShortcut, func(_ fyne.Shortcut) {
|
||||
m.Quit()
|
||||
})
|
||||
}
|
||||
|
||||
m.Canvas().AddShortcut(&ShortcutReload, func(_ fyne.Shortcut) {
|
||||
m.Canvas().AddShortcut(&shortcuts.ShortcutReload, func(_ fyne.Shortcut) {
|
||||
m.BrowsingPane.Reload()
|
||||
})
|
||||
m.Canvas().AddShortcut(&ShortcutSearch, func(_ fyne.Shortcut) {
|
||||
m.Canvas().AddShortcut(&shortcuts.ShortcutSearch, func(_ fyne.Shortcut) {
|
||||
if m.Controller.HaveModal() {
|
||||
// Do not focus search widget behind modal dialog
|
||||
return
|
||||
@@ -361,7 +342,7 @@ func (m *MainWindow) addShortcuts() {
|
||||
m.Window.Canvas().Focus(s)
|
||||
}
|
||||
})
|
||||
m.Canvas().AddShortcut(&ShortcutQuickSearch, func(_ fyne.Shortcut) {
|
||||
m.Canvas().AddShortcut(&shortcuts.ShortcutQuickSearch, func(_ fyne.Shortcut) {
|
||||
if !m.Controller.HaveModal() {
|
||||
m.Controller.ShowQuickSearch()
|
||||
}
|
||||
@@ -369,13 +350,13 @@ func (m *MainWindow) addShortcuts() {
|
||||
m.Canvas().AddShortcut(&fyne.ShortcutSelectAll{}, func(_ fyne.Shortcut) {
|
||||
m.BrowsingPane.SelectAll()
|
||||
})
|
||||
m.Canvas().AddShortcut(&ShortcutCloseWindow, func(_ fyne.Shortcut) {
|
||||
m.Canvas().AddShortcut(&shortcuts.ShortcutCloseWindow, func(_ fyne.Shortcut) {
|
||||
if m.App.Config.Application.CloseToSystemTray && m.HaveSystemTray() {
|
||||
m.Window.Hide()
|
||||
}
|
||||
})
|
||||
|
||||
for i, ns := range NavShortcuts {
|
||||
for i, ns := range shortcuts.NavShortcuts {
|
||||
m.Canvas().AddShortcut(&ns, func(i int) func(fyne.Shortcut) {
|
||||
return func(fyne.Shortcut) {
|
||||
m.BrowsingPane.ActivateNavigationButton(i)
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
package shortcuts
|
||||
|
||||
import (
|
||||
"fyne.io/fyne/v2"
|
||||
"fyne.io/fyne/v2/driver/desktop"
|
||||
)
|
||||
|
||||
var (
|
||||
ShortcutReload = desktop.CustomShortcut{KeyName: fyne.KeyR, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutSearch = desktop.CustomShortcut{KeyName: fyne.KeyF, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutQuickSearch = desktop.CustomShortcut{KeyName: fyne.KeyG, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutCloseWindow = desktop.CustomShortcut{KeyName: fyne.KeyW, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
|
||||
ShortcutNavOne = desktop.CustomShortcut{KeyName: fyne.Key1, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutNavTwo = desktop.CustomShortcut{KeyName: fyne.Key2, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutNavThree = desktop.CustomShortcut{KeyName: fyne.Key3, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutNavFour = desktop.CustomShortcut{KeyName: fyne.Key4, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutNavFive = desktop.CustomShortcut{KeyName: fyne.Key5, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutNavSix = desktop.CustomShortcut{KeyName: fyne.Key6, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutNavSeven = desktop.CustomShortcut{KeyName: fyne.Key7, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
ShortcutNavEight = desktop.CustomShortcut{KeyName: fyne.Key8, Modifier: fyne.KeyModifierShortcutDefault}
|
||||
|
||||
NavShortcuts = []desktop.CustomShortcut{ShortcutNavOne, ShortcutNavTwo, ShortcutNavThree,
|
||||
ShortcutNavFour, ShortcutNavFive, ShortcutNavSix, ShortcutNavSeven, ShortcutNavEight}
|
||||
)
|
||||
@@ -1,6 +1,6 @@
|
||||
//go:build darwin
|
||||
|
||||
package os
|
||||
package shortcuts
|
||||
|
||||
import (
|
||||
"fyne.io/fyne/v2"
|
||||
@@ -1,6 +1,6 @@
|
||||
//go:build !darwin
|
||||
|
||||
package os
|
||||
package shortcuts
|
||||
|
||||
import (
|
||||
"fyne.io/fyne/v2"
|
||||
@@ -19,7 +19,6 @@ import (
|
||||
"github.com/dweymouth/supersonic/backend/mediaprovider"
|
||||
"github.com/dweymouth/supersonic/sharedutil"
|
||||
"github.com/dweymouth/supersonic/ui/layouts"
|
||||
"github.com/dweymouth/supersonic/ui/os"
|
||||
myTheme "github.com/dweymouth/supersonic/ui/theme"
|
||||
"github.com/dweymouth/supersonic/ui/util"
|
||||
)
|
||||
@@ -214,7 +213,7 @@ func (p *PlayQueueList) onPlayTrackAt(idx int) {
|
||||
func (p *PlayQueueList) onSelectTrack(idx int) {
|
||||
if d, ok := fyne.CurrentApp().Driver().(desktop.Driver); ok {
|
||||
mod := d.CurrentKeyModifiers()
|
||||
if mod&os.ControlModifier != 0 {
|
||||
if mod&fyne.KeyModifierShortcutDefault != 0 {
|
||||
p.selectAddOrRemove(idx)
|
||||
} else if mod&fyne.KeyModifierShift != 0 {
|
||||
p.selectRange(idx)
|
||||
|
||||
@@ -13,7 +13,6 @@ import (
|
||||
"github.com/dweymouth/supersonic/backend/mediaprovider"
|
||||
"github.com/dweymouth/supersonic/sharedutil"
|
||||
"github.com/dweymouth/supersonic/ui/layouts"
|
||||
"github.com/dweymouth/supersonic/ui/os"
|
||||
myTheme "github.com/dweymouth/supersonic/ui/theme"
|
||||
"github.com/dweymouth/supersonic/ui/util"
|
||||
|
||||
@@ -489,7 +488,7 @@ func (t *Tracklist) onPlayTrackAt(idx int) {
|
||||
func (t *Tracklist) onSelectTrack(idx int) {
|
||||
if d, ok := fyne.CurrentApp().Driver().(desktop.Driver); ok {
|
||||
mod := d.CurrentKeyModifiers()
|
||||
if mod&os.ControlModifier != 0 {
|
||||
if mod&fyne.KeyModifierShortcutDefault != 0 {
|
||||
t.selectAddOrRemove(idx)
|
||||
} else if mod&fyne.KeyModifierShift != 0 {
|
||||
t.selectRange(idx)
|
||||
|
||||
Reference in New Issue
Block a user