diff --git a/ui/browsing/albumspage.go b/ui/browsing/albumspage.go index e22e0fe..3d13d87 100644 --- a/ui/browsing/albumspage.go +++ b/ui/browsing/albumspage.go @@ -8,7 +8,6 @@ import ( "fyne.io/fyne/v2/widget" "github.com/dweymouth/supersonic/backend" "github.com/dweymouth/supersonic/backend/mediaprovider" - "github.com/dweymouth/supersonic/sharedutil" "github.com/dweymouth/supersonic/ui/controller" myTheme "github.com/dweymouth/supersonic/ui/theme" "github.com/dweymouth/supersonic/ui/util" @@ -58,8 +57,7 @@ func (a *albumsPageAdapter) SortOrders() ([]string, int) { sortOrder = 0 } - translatedOrders := sharedutil.MapSlice(orders, func(s string) string { return lang.L(s) }) - return translatedOrders, sortOrder + return util.LocalizeSlice(orders), sortOrder } func (a *albumsPageAdapter) SaveSortOrder(orderIdx int) { diff --git a/ui/browsing/artistspage.go b/ui/browsing/artistspage.go index e4ac37b..8a38fac 100644 --- a/ui/browsing/artistspage.go +++ b/ui/browsing/artistspage.go @@ -8,7 +8,6 @@ import ( "fyne.io/fyne/v2/widget" "github.com/dweymouth/supersonic/backend" "github.com/dweymouth/supersonic/backend/mediaprovider" - "github.com/dweymouth/supersonic/sharedutil" "github.com/dweymouth/supersonic/ui/controller" myTheme "github.com/dweymouth/supersonic/ui/theme" "github.com/dweymouth/supersonic/ui/util" @@ -54,8 +53,7 @@ func (a *artistsPageAdapter) SortOrders() ([]string, int) { sortOrder = 0 } - translatedOrders := sharedutil.MapSlice(orders, func(s string) string { return lang.L(s) }) - return translatedOrders, sortOrder + return util.LocalizeSlice(orders), sortOrder } func (a *artistsPageAdapter) SaveSortOrder(orderIdx int) { diff --git a/ui/dialogs/settingsdialog.go b/ui/dialogs/settingsdialog.go index 6624fa6..4c618c6 100644 --- a/ui/dialogs/settingsdialog.go +++ b/ui/dialogs/settingsdialog.go @@ -4,6 +4,7 @@ import ( "errors" "math" "os" + "slices" "strconv" "strings" "time" @@ -132,10 +133,16 @@ func (s *SettingsDialog) createGeneralTab(canSaveQueueToServer bool) *container. themeModeSelect.SetSelectedIndex(0) } - startupPage := widget.NewSelect(backend.SupportedStartupPages, func(choice string) { - s.config.Application.StartupPage = choice + pages := util.LocalizeSlice(backend.SupportedStartupPages) + var startupPage *widget.Select + startupPage = widget.NewSelect(pages, func(_ string) { + s.config.Application.StartupPage = backend.SupportedStartupPages[startupPage.SelectedIndex()] }) - startupPage.SetSelected(s.config.Application.StartupPage) + initialIdx := slices.Index(backend.SupportedStartupPages, s.config.Application.StartupPage) + if initialIdx < 0 { + initialIdx = 0 + } + startupPage.SetSelectedIndex(initialIdx) if startupPage.Selected == "" { startupPage.SetSelectedIndex(0) } diff --git a/ui/util/util.go b/ui/util/util.go index 3dad8bf..e99a346 100644 --- a/ui/util/util.go +++ b/ui/util/util.go @@ -18,6 +18,7 @@ import ( "fyne.io/fyne/v2/widget" "github.com/dweymouth/supersonic/backend/mediaprovider" "github.com/dweymouth/supersonic/res" + "github.com/dweymouth/supersonic/sharedutil" myTheme "github.com/dweymouth/supersonic/ui/theme" "golang.org/x/net/html" ) @@ -264,6 +265,10 @@ func SaveWindowSize(w fyne.Window, wPtr, hPtr *int) { *hPtr = int(math.RoundToEven(float64(w.Canvas().Size().Height))) } +func LocalizeSlice(s []string) []string { + return sharedutil.MapSlice(s, func(s string) string { return lang.L(s) }) +} + type HSpace struct { widget.BaseWidget