VideoTools/internal/ui
Stu Leak 85d60b7381 feat(ui): implement state manager pattern, eliminate 3 sync flags
Phase 1 Progress - Convert UI Cleanup (dev23):

Architecture Improvements:
- Add SetSelectedSilent() method to ColoredSelect to prevent callback loops
- Create convertUIState manager with setQuality(), setResolution(), setAspect(), setBitratePreset()
- Eliminate syncingQuality flag (quality widgets use state manager)
- Eliminate syncingAspect flag and syncAspect() function (aspect widgets use state manager)
- Eliminate syncingBitratePreset flag (bitrate preset widgets use state manager)

Impact:
- Sync flags reduced from 5 to 2 (60% reduction)
- Automatic widget synchronization (no manual SetSelected calls)
- Single source of truth for UI state
- Foundation for eliminating remaining sync flags

Remaining: syncingBitrate, syncingTargetSize (text entry debouncing needed)

Files modified:
- internal/ui/components.go (SetSelectedSilent method)
- main.go (state manager, widget callbacks)
2026-01-03 23:03:10 -05:00
..
benchmarkview.go feat: improve UI readability and flexibility 2026-01-02 12:02:51 -05:00
colors.go feat: improve UI readability and flexibility 2026-01-02 12:02:51 -05:00
command_editor.go fix: update main menu version display to dev22 2026-01-03 13:58:22 -05:00
components.go feat(ui): implement state manager pattern, eliminate 3 sync flags 2026-01-03 23:03:10 -05:00
mainmenu.go feat: improve UI readability and flexibility 2026-01-02 12:02:51 -05:00
queueview.go Optimize queue updates and colored selects 2026-01-03 22:15:46 -05:00