feat(ui): Display codec badges inline with dropdowns

- Changed badge layout from vertical stacking to horizontal inline display
- Badges now appear next to dropdowns using HBox containers
- Applied to format, video codec, and audio codec selections
- Added assets/mockup/ to .gitignore for design references

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Stu Leak 2025-12-29 02:27:44 -05:00
parent 1934ed0d5e
commit 15537ba73a
2 changed files with 7 additions and 8 deletions

3
.gitignore vendored
View File

@ -5,6 +5,9 @@ logs/
.cache/
VideoTools
# Design mockups and assets
assets/mockup/
# Windows build artifacts
VideoTools.exe
ffmpeg.exe

12
main.go
View File

@ -8240,8 +8240,7 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
simpleOptions := container.NewVBox(
widget.NewLabelWithStyle("═══ OUTPUT ═══", fyne.TextAlignCenter, fyne.TextStyle{Bold: true}),
widget.NewLabelWithStyle("Format", fyne.TextAlignLeading, fyne.TextStyle{Bold: true}),
formatSelect,
formatBadgeContainer,
container.NewHBox(formatSelect, formatBadgeContainer),
chapterWarningLabel, // Warning when converting chapters to DVD
preserveChaptersCheck,
dvdAspectBox, // DVD options appear here when DVD format selected
@ -8265,8 +8264,7 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
advancedVideoEncodingBlock = container.NewVBox(
widget.NewLabelWithStyle("═══ VIDEO ENCODING ═══", fyne.TextAlignCenter, fyne.TextStyle{Bold: true}),
widget.NewLabelWithStyle("Video Codec", fyne.TextAlignLeading, fyne.TextStyle{Bold: true}),
videoCodecSelect,
videoCodecBadgeContainer,
container.NewHBox(videoCodecSelect, videoCodecBadgeContainer),
widget.NewLabelWithStyle("Encoder Preset (speed vs quality)", fyne.TextAlignLeading, fyne.TextStyle{Bold: true}),
encoderPresetSelect,
encoderPresetHintContainer,
@ -8294,8 +8292,7 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
audioEncodingSection = container.NewVBox(
widget.NewLabelWithStyle("═══ AUDIO ENCODING ═══", fyne.TextAlignCenter, fyne.TextStyle{Bold: true}),
widget.NewLabelWithStyle("Audio Codec", fyne.TextAlignLeading, fyne.TextStyle{Bold: true}),
audioCodecSelect,
audioCodecBadgeContainer,
container.NewHBox(audioCodecSelect, audioCodecBadgeContainer),
widget.NewLabelWithStyle("Audio Bitrate", fyne.TextAlignLeading, fyne.TextStyle{Bold: true}),
audioBitrateSelect,
widget.NewLabelWithStyle("Audio Channels", fyne.TextAlignLeading, fyne.TextStyle{Bold: true}),
@ -8305,8 +8302,7 @@ func buildConvertView(state *appState, src *videoSource) fyne.CanvasObject {
advancedOptions := container.NewVBox(
widget.NewLabelWithStyle("═══ OUTPUT ═══", fyne.TextAlignCenter, fyne.TextStyle{Bold: true}),
widget.NewLabelWithStyle("Format", fyne.TextAlignLeading, fyne.TextStyle{Bold: true}),
formatSelect,
formatBadgeContainer,
container.NewHBox(formatSelect, formatBadgeContainer),
chapterWarningLabel, // Warning when converting chapters to DVD
preserveChaptersCheck,
dvdAspectBox, // DVD options appear here when DVD format selected