Compare commits

..

2 Commits

Author SHA1 Message Date
ccd75af936 Adjust convert action bar spacing 2025-12-17 06:11:12 -05:00
662ebc209c Place convert action bar in tinted footer 2025-12-17 06:06:49 -05:00

36
main.go
View File

@ -114,9 +114,16 @@ func statusStrip(bar *ui.ConversionStatsBar) fyne.CanvasObject {
return container.NewMax(bg, content)
}
// moduleFooter renders only the dark status strip for consistency across modules.
func moduleFooter(_ color.Color, _ fyne.CanvasObject, bar *ui.ConversionStatsBar) fyne.CanvasObject {
return statusStrip(bar)
// moduleFooter stacks a dark status strip above a tinted action/footer band.
// If content is nil, a spacer is used for consistent height/color.
func moduleFooter(tint color.Color, content fyne.CanvasObject, bar *ui.ConversionStatsBar) fyne.CanvasObject {
if content == nil {
content = layout.NewSpacer()
}
bg := canvas.NewRectangle(tint)
bg.SetMinSize(fyne.NewSize(0, 44))
tinted := container.NewMax(bg, container.NewPadded(content))
return container.NewVBox(statusStrip(bar), tinted)
}
// resolveTargetAspect resolves an aspect ratio value or source aspect
@ -5911,10 +5918,8 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
})
leftControls := container.NewHBox(resetBtn, loadCfgBtn, saveCfgBtn, autoCompareCheck)
centerStatus := container.NewHBox(activity, statusLabel)
rightControls := container.NewHBox(cancelBtn, cancelQueueBtn, viewLogBtn, addQueueBtn, convertBtn)
actionInner := container.NewBorder(nil, nil, leftControls, rightControls, centerStatus)
actionBar := ui.TintedBar(convertColor, actionInner)
actionBar := container.NewHBox(leftControls, layout.NewSpacer(), rightControls)
// Start a UI refresh ticker to update widgets from state while conversion is active
// This ensures progress updates even when navigating between modules
@ -5993,16 +5998,17 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
scrollableMain := container.NewVScroll(mainContent)
footerContent := container.NewVBox(
snippetConfigRow,
snippetRow,
widget.NewSeparator(),
actionBar,
mainWithFooter := container.NewBorder(
nil,
container.NewVBox(
snippetConfigRow,
snippetRow,
widget.NewSeparator(),
),
nil, nil,
container.NewMax(scrollableMain),
)
// Actions/snippets stay above; footer is a single dark status strip
mainWithFooter := container.NewBorder(nil, footerContent, nil, nil, container.NewMax(scrollableMain))
return container.NewBorder(backBar, statusStrip(state.statsBar), nil, nil, mainWithFooter)
return container.NewBorder(backBar, moduleFooter(convertColor, actionBar, state.statsBar), nil, nil, mainWithFooter)
}