Place convert action bar in tinted footer
This commit is contained in:
parent
a1678cf150
commit
662ebc209c
34
main.go
34
main.go
|
|
@ -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
|
||||
|
|
@ -5914,7 +5921,7 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
|
|||
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(actionInner.Objects...)
|
||||
|
||||
// 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 +6000,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)
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user