Compare commits

...

2 Commits

Author SHA1 Message Date
d24fd7c281 Fix main menu layout alignment issue
- Replace layout.NewHBoxLayout() with container.NewHBox() for header
- Replace layout.NewVBoxLayout() with container.NewVBox() for body
- Prevents unwanted stretching and improves alignment with rest of UI
- Elements now use natural sizing instead of filling available space

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-20 14:32:04 -05:00
ba1c364113 Default target aspect to Source unless user-set 2025-12-20 14:29:56 -05:00
4 changed files with 9 additions and 5 deletions

View File

@ -772,6 +772,7 @@ This file tracks completed features, fixes, and milestones.
- ✅ History sidebar refreshes when jobs complete (snippet entries now appear)
- ✅ Benchmark errors now show non-blocking notifications instead of OK popups
- ✅ Fixed stats bar updates to run on the UI thread to avoid Fyne warnings
- ✅ Defaulted Target Aspect Ratio back to Source unless user explicitly sets it
- ✅ Stabilized video seeking and embedded rendering
- ✅ Improved player window positioning
- ✅ Fixed clear video functionality

View File

@ -46,6 +46,7 @@ This file tracks upcoming features, improvements, and known issues.
- Snippet history updates in sidebar
- Non-blocking benchmark error notifications
- Stats bar updates run on the UI thread
- Target aspect default enforced as Source unless user changes it
## Priority Features for dev20+

View File

@ -68,7 +68,7 @@ func BuildMainMenu(modules []ModuleInfo, onModuleClick func(string), onModuleDro
logsBtn := widget.NewButton("Logs", onLogsClick)
logsBtn.Importance = widget.LowImportance
header := container.New(layout.NewHBoxLayout(), title, layout.NewSpacer(), sidebarToggleBtn, benchmarkBtn, viewResultsBtn, logsBtn, queueTile)
header := container.NewHBox(title, layout.NewSpacer(), sidebarToggleBtn, benchmarkBtn, viewResultsBtn, logsBtn, queueTile)
categorized := map[string][]fyne.CanvasObject{}
for i := range modules {
@ -106,7 +106,7 @@ func BuildMainMenu(modules []ModuleInfo, onModuleClick func(string), onModuleDro
padding := canvas.NewRectangle(color.Transparent)
padding.SetMinSize(fyne.NewSize(0, 14))
body := container.New(layout.NewVBoxLayout(),
body := container.NewVBox(
header,
padding,
container.NewVBox(sections...),

View File

@ -531,11 +531,13 @@ func loadPersistedConvertConfig() (convertConfig, error) {
if err := json.Unmarshal(data, &cfg); err != nil {
return cfg, err
}
if cfg.OutputAspect == "" {
if cfg.OutputAspect == "" || strings.EqualFold(cfg.OutputAspect, "Source") {
cfg.OutputAspect = "Source"
cfg.AspectUserSet = false
} else if !cfg.AspectUserSet {
// Treat legacy saved aspects (like 16:9 defaults) as unset
cfg.OutputAspect = "Source"
cfg.AspectUserSet = false
} else if !strings.EqualFold(cfg.OutputAspect, "Source") {
cfg.AspectUserSet = true
}
// Always default FrameRate to Source if not set to avoid unwanted conversions
if cfg.FrameRate == "" {