add setting to disable waveform seekbar
This commit is contained in:
+2
-2
@@ -28,7 +28,7 @@ type BottomPanel struct {
|
||||
|
||||
var _ fyne.Widget = (*BottomPanel)(nil)
|
||||
|
||||
func NewBottomPanel(pm *backend.PlaybackManager, im *backend.ImageManager, contr *controller.Controller) *BottomPanel {
|
||||
func NewBottomPanel(pm *backend.PlaybackManager, im *backend.ImageManager, contr *controller.Controller, useWaveformSeekbar bool) *BottomPanel {
|
||||
bp := &BottomPanel{}
|
||||
bp.ExtendBaseWidget(bp)
|
||||
|
||||
@@ -86,7 +86,7 @@ func NewBottomPanel(pm *backend.PlaybackManager, im *backend.ImageManager, contr
|
||||
contr.ShowShareDialog(tr.ID)
|
||||
}
|
||||
}
|
||||
bp.Controls = widgets.NewPlayerControls()
|
||||
bp.Controls = widgets.NewPlayerControls(useWaveformSeekbar)
|
||||
bp.Controls.OnPlayPause(func() {
|
||||
pm.PlayPause()
|
||||
})
|
||||
|
||||
@@ -559,6 +559,12 @@ func (s *SettingsDialog) createAppearanceTab(window fyne.Window) *container.TabI
|
||||
}
|
||||
}
|
||||
|
||||
useWaveformSeekbar := widget.NewCheck(lang.L("Use waveform seekbar"), func(b bool) {
|
||||
s.config.Playback.UseWaveformSeekbar = b
|
||||
s.setRestartRequired()
|
||||
})
|
||||
useWaveformSeekbar.Checked = s.config.Playback.UseWaveformSeekbar
|
||||
|
||||
return container.NewTabItem(lang.L("Appearance"), container.NewVBox(
|
||||
util.NewHSpace(0), // insert a theme.Padding amount of space at top
|
||||
container.NewBorder(nil, nil, widget.NewLabel(lang.L("Theme")), /*left*/
|
||||
@@ -570,6 +576,8 @@ func (s *SettingsDialog) createAppearanceTab(window fyne.Window) *container.TabI
|
||||
container.NewBorder(nil, nil, widget.NewLabel(lang.L("Grid card size")), nil, gridCardSize),
|
||||
disableDPI,
|
||||
s.newSectionSeparator(),
|
||||
useWaveformSeekbar,
|
||||
s.newSectionSeparator(),
|
||||
widget.NewRichText(&widget.TextSegment{Text: lang.L("Application font"), Style: util.BoldRichTextStyle}),
|
||||
container.New(layout.NewFormLayout(),
|
||||
widget.NewLabel(lang.L("Normal font")), container.NewBorder(nil, nil, nil, normalFontBrowse, normalFontEntry),
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ func NewMainWindow(fyneApp fyne.App, appName, displayAppName, appVersion string,
|
||||
))
|
||||
}
|
||||
|
||||
m.BottomPanel = NewBottomPanel(app.PlaybackManager, app.ImageManager, m.Controller)
|
||||
m.BottomPanel = NewBottomPanel(app.PlaybackManager, app.ImageManager, m.Controller, m.Controller.App.Config.Playback.UseWaveformSeekbar)
|
||||
app.PlaybackManager.OnSongChange(func(item mediaprovider.MediaItem, _ *mediaprovider.Track) {
|
||||
fyne.Do(func() { m.UpdateOnTrackChange(item) })
|
||||
})
|
||||
|
||||
@@ -82,6 +82,8 @@ func (t *TrackPosSlider) IsDragging() bool {
|
||||
type PlayerControls struct {
|
||||
widget.BaseWidget
|
||||
|
||||
UseWaveformSeekbar bool
|
||||
|
||||
slider *TrackPosSlider
|
||||
waveform *WaveformSeekbar
|
||||
curTimeLabel *labelMinSize
|
||||
@@ -112,14 +114,18 @@ func NewLabelMinSize(text string, minWidth float32) *labelMinSize {
|
||||
}
|
||||
|
||||
// NewPlayerControls sets up the seek bar, and transport buttons.
|
||||
func NewPlayerControls() *PlayerControls {
|
||||
pc := &PlayerControls{}
|
||||
func NewPlayerControls(useWaveformSeekbar bool) *PlayerControls {
|
||||
pc := &PlayerControls{UseWaveformSeekbar: useWaveformSeekbar}
|
||||
pc.ExtendBaseWidget(pc)
|
||||
|
||||
pc.slider = NewTrackPosSlider()
|
||||
pc.slider.Disable()
|
||||
pc.slider.Hide()
|
||||
pc.waveform = NewWaveformSeekbar()
|
||||
if useWaveformSeekbar {
|
||||
pc.slider.Hidden = true
|
||||
} else {
|
||||
pc.waveform.Hidden = true
|
||||
}
|
||||
pc.curTimeLabel = NewLabelMinSize(util.SecondsToMMSS(0), 55)
|
||||
pc.curTimeLabel.Alignment = fyne.TextAlignTrailing
|
||||
pc.totalTimeLabel = NewLabelMinSize(util.SecondsToMMSS(0), 55)
|
||||
@@ -221,6 +227,12 @@ func (p *PlayerControls) UpdateWaveformImg(img *backend.WaveformImage) {
|
||||
p.waveform.UpdateImage(img)
|
||||
}
|
||||
|
||||
func (p *PlayerControls) Refresh() {
|
||||
p.waveform.Hidden = !p.UseWaveformSeekbar
|
||||
p.slider.Hidden = p.UseWaveformSeekbar
|
||||
p.BaseWidget.Refresh()
|
||||
}
|
||||
|
||||
func (p *PlayerControls) CreateRenderer() fyne.WidgetRenderer {
|
||||
return widget.NewSimpleRenderer(p.container)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user