Stu Leak
b41e20a70e
Remove early updateEncodingControls call
2026-01-04 07:14:53 -05:00
Stu Leak
ba6587d2d3
Normalize bitrate mode and refresh manual CRF
2026-01-04 06:34:42 -05:00
Stu Leak
5d62658250
Fix manual CRF option scope
2026-01-04 06:29:58 -05:00
Stu Leak
4dcc96c6e1
Replace CRF preset with manual quality option
2026-01-04 06:26:59 -05:00
Stu Leak
bca6e6f4c3
Move quality preset under bitrate mode
2026-01-04 06:17:33 -05:00
Stu Leak
1b496c21d3
Hide quality preset when CRF value set
2026-01-04 06:15:14 -05:00
Stu Leak
afa6d60617
Remove unsupported entry min size calls
2026-01-04 06:13:51 -05:00
Stu Leak
cd873b2e3c
Hide quality preset when CRF override set
2026-01-04 06:12:46 -05:00
Stu Leak
032cd45c94
Fix output row entry sizing
2026-01-04 06:09:22 -05:00
Stu Leak
a914cc68d2
Align convert dropdown styling
2026-01-04 06:08:36 -05:00
Stu Leak
497c7ec520
Center output entry text and hide redundant output hint
2026-01-04 05:51:25 -05:00
Stu Leak
8c66256d7c
Keep codec controls visible in remux mode
2026-01-04 05:49:51 -05:00
Stu Leak
f6e748fa47
Add space key scrolling for convert settings
2026-01-04 05:45:59 -05:00
Stu Leak
3108882c7b
Refine donation copy row and labels
2026-01-04 05:35:11 -05:00
Stu Leak
636854eba8
Style donation copy button
2026-01-04 05:32:48 -05:00
Stu Leak
cef4099373
Adjust about logos and QR code density
2026-01-04 05:30:31 -05:00
Stu Leak
8022bf7154
Add spacing between codec and preset controls
2026-01-04 05:23:23 -05:00
Stu Leak
162233fb0b
Fix unused imports and restore openFile helper
2026-01-04 05:21:11 -05:00
Stu Leak
8441500c61
Update audio playback to oto v3 API and fix imports
2026-01-04 05:17:40 -05:00
Stu Leak
7183e43887
Fix convert UI build errors and QR image init
2026-01-04 05:14:08 -05:00
Stu Leak
32cbd3e288
Clamp player surface to 360px height on 1080p
2026-01-04 05:11:15 -05:00
Stu Leak
11cd6630fb
Commit pending assets, deps, and enhancement fixes
2026-01-04 05:09:32 -05:00
Stu Leak
da848a3115
Add copy button for donation address
2026-01-04 04:57:22 -05:00
Stu Leak
fc56137397
Add donation address to about dialog
2026-01-04 04:54:06 -05:00
Stu Leak
39d3127d06
Add styled output folder and filename rows to convert UI
2026-01-04 04:45:21 -05:00
Stu Leak
c0eb9b6136
Fix imports and QR module dependency
2026-01-04 04:32:56 -05:00
Stu Leak
4954dc021f
Use ratio layout for codec and preset row
2026-01-04 04:11:27 -05:00
Stu Leak
3b6ea529de
Align video codec and preset controls in convert UI
2026-01-04 04:08:11 -05:00
Stu Leak
182f74ee4e
Bump version to v0.1.0-dev23
2026-01-04 03:11:18 -05:00
Stu Leak
dfba8c73df
Align convert action buttons with panel styling
2026-01-04 03:09:10 -05:00
Stu Leak
dc160d264a
Fix about dialog sizing shim
2026-01-04 03:01:37 -05:00
Stu Leak
a12829a4f9
Add support coming soon line to about dialog
2026-01-04 02:59:30 -05:00
Stu Leak
442658d18b
Rework about dialog layout to match mockup
2026-01-04 02:59:04 -05:00
Stu Leak
fcac7fd4d7
Wrap about dialog text and allow scrolling
2026-01-04 02:45:11 -05:00
Stu Leak
de248bdc8a
Resize about logo for better legibility
2026-01-04 02:43:01 -05:00
Stu Leak
9aa800408d
Tighten about logo size and align top-right
2026-01-04 02:41:20 -05:00
Stu Leak
a757696258
Loosen split min size and scroll thumbnail settings
2026-01-04 02:12:45 -05:00
Stu Leak
4861052585
Add LT logo to About dialog
2026-01-04 02:05:22 -05:00
Stu Leak
3e60815c7f
Load multiple thumbnails like convert
2026-01-04 00:22:52 -05:00
Stu Leak
ba378cf2f4
Lazy-load thumbnail previews for batch drops
2026-01-04 00:16:27 -05:00
Stu Leak
6d59b5837a
Disable player sync in thumbnails preview
2026-01-04 00:14:08 -05:00
Stu Leak
44e51f3c8b
Write logs under user config
2026-01-04 00:02:22 -05:00
Stu Leak
530baf8711
Show multi-file list in thumbnails
2026-01-03 23:51:37 -05:00
Stu Leak
f9479c6aaf
Add lightweight queue elapsed updates
2026-01-03 23:49:25 -05:00
Stu Leak
63bce68007
Tighten thumbnail columns and queue refresh
2026-01-03 23:47:11 -05:00
Stu Leak
1f3c89fd85
Queue multiple thumbnail drops
2026-01-03 23:44:46 -05:00
Stu Leak
a169df74fb
Open thumbnail results in default viewer
2026-01-03 23:36:03 -05:00
Stu Leak
734a50aece
Improve thumbnail settings layout
2026-01-03 23:34:58 -05:00
Stu Leak
8983817de4
feat(ui): complete Phase 1 - debouncing, validation, callback registry
...
Phase 1 Complete - Convert UI Cleanup (dev23):
Debouncing (eliminates remaining sync flags):
- Add createDebouncedCallback() helper with 300ms delay
- Apply debouncing to CRF entry (updates: ~10/sec → ~3/sec)
- Apply debouncing to bitrate entry (eliminates syncingBitrate flag)
- Apply debouncing to target file size entry (eliminates syncingTargetSize flag)
- Remove all remaining sync boolean flags (syncingBitrate, syncingTargetSize)
Input Validation:
- Add validateCRF() - enforces 0-51 range
- Add validateBitrate() - checks positive numbers, warns on extremes
- Add validateFileSize() - checks positive numbers
- Apply validation to CRF, bitrate, and file size entries
- Provides immediate user feedback on invalid input
Callback Registry:
- Create callbackRegistry to replace nil checks
- Add registerCallback() and callCallback() with logging
- Use in setQuality() to eliminate 'if updateEncodingControls != nil'
- Foundation for eliminating 21+ nil checks (will expand in future)
Impact Summary:
- ALL sync flags eliminated: 5 → 0 (100% reduction!)
- Command preview updates while typing: ~10/sec → ~3/sec (70% reduction!)
- Input validation prevents invalid configurations
- Debouncing improves perceived responsiveness
- Callback registry provides better debugging (logs missing callbacks)
Files modified:
- internal/ui/components.go (SetSelectedSilent)
- main.go (debouncing, validation, callback registry)
Phase 1 COMPLETE! Ready for Phase 2 (ColoredSelect expansion & visual polish)
2026-01-03 23:16:08 -05:00
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