more settings dialog work

This commit is contained in:
Drew Weymouth
2023-03-31 17:57:10 -07:00
parent 20563f8441
commit 19202dc0e8
2 changed files with 57 additions and 2 deletions
+16 -2
View File
@@ -2,6 +2,8 @@ package dialogs
import (
"supersonic/backend"
"supersonic/ui/widgets"
"unicode"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
@@ -30,10 +32,21 @@ func NewSettingsDialog(config *backend.Config) *SettingsDialog {
replayGainSelect := widget.NewSelect([]string{"None", "Album", "Track"}, nil)
percentEntry := widgets.NewTextRestrictedEntry(func(text string, r rune) bool {
return unicode.IsDigit(r) && len(text) < 2
})
percentEntry.SetMinCharWidth(2)
tabs := container.NewAppTabs(
container.NewTabItem("General", container.NewVBox(
widget.NewRichText(&widget.TextSegment{Text: "Scrobbling", Style: boldStyle}),
widget.NewCheckWithData("Send playback statistics to server", binding.BindBool(&config.Scrobbling.Enabled)))),
widget.NewCheckWithData("Send playback statistics to server", binding.BindBool(&config.Scrobbling.Enabled)),
container.NewHBox(
widget.NewLabel("Scrobble when"),
percentEntry,
widget.NewLabel("percent of track is played"),
),
)),
container.NewTabItem("Playback", container.NewVBox(
widget.NewRichText(&widget.TextSegment{Text: "ReplayGain", Style: boldStyle}),
container.New(layout.NewFormLayout(),
@@ -41,7 +54,8 @@ func NewSettingsDialog(config *backend.Config) *SettingsDialog {
widget.NewLabel("Prevent clipping"), widget.NewCheckWithData("", binding.BindBool(&config.ReplayGain.PreventClipping)),
),
widget.NewSeparator(),
widget.NewCheckWithData("Audio exclusive mode", binding.BindBool(&config.LocalPlayback.AudioExclusive)))),
widget.NewCheckWithData("Audio exclusive mode", binding.BindBool(&config.LocalPlayback.AudioExclusive)),
)),
)
s.content = container.NewVBox(tabs, widget.NewSeparator(),
container.NewHBox(layout.NewSpacer(), widget.NewButton("Close", func() {