Commit Graph

660 Commits

Author SHA1 Message Date
Stu Leak
cefedc2bd5 Commit pending assets, deps, and enhancement fixes 2026-01-04 05:09:32 -05:00
Stu Leak
d66116c3ab Add copy button for donation address 2026-01-04 04:57:22 -05:00
Stu Leak
a79adae7b1 Add donation address to about dialog 2026-01-04 04:54:06 -05:00
Stu Leak
586b84c39d Add styled output folder and filename rows to convert UI 2026-01-04 04:45:21 -05:00
Stu Leak
2f76ffb9c4 Fix enhancement analysis return and stray code 2026-01-04 04:34:46 -05:00
Stu Leak
5ce8d246c6 Fix imports and QR module dependency 2026-01-04 04:32:56 -05:00
Stu Leak
a76035cbff Drop qrencode dependency from installers 2026-01-04 04:28:28 -05:00
Stu Leak
6c95ef07a9 Require qrencode in Windows dependency installer 2026-01-04 04:25:00 -05:00
Stu Leak
a9926dbdfc Add qrencode dependency to install script 2026-01-04 04:20:05 -05:00
Stu Leak
0fada2a9fe Increase base text size for UI readability 2026-01-04 04:12:10 -05:00
Stu Leak
4c07c7f560 Use ratio layout for codec and preset row 2026-01-04 04:11:27 -05:00
Stu Leak
896bf5b1e0 Align video codec and preset controls in convert UI 2026-01-04 04:08:11 -05:00
Stu Leak
789579ae71 Update docs for dev23 and dev24 planning 2026-01-04 03:17:23 -05:00
Stu Leak
855a66a8e4 Bump version to v0.1.0-dev23 2026-01-04 03:11:18 -05:00
Stu Leak
5f1d2e4e26 Align convert action buttons with panel styling 2026-01-04 03:09:10 -05:00
Stu Leak
cac1a70513 Align input background with dropdown styling 2026-01-04 03:05:22 -05:00
Stu Leak
07285088ce Fix about dialog sizing shim 2026-01-04 03:01:37 -05:00
Stu Leak
f5e1fe0f39 Add support coming soon line to about dialog 2026-01-04 02:59:30 -05:00
Stu Leak
329be6e968 Rework about dialog layout to match mockup 2026-01-04 02:59:04 -05:00
Stu Leak
3761d48d46 Wrap about dialog text and allow scrolling 2026-01-04 02:45:11 -05:00
Stu Leak
d87511277c Resize about logo for better legibility 2026-01-04 02:43:01 -05:00
Stu Leak
e090fe0dc1 Tighten about logo size and align top-right 2026-01-04 02:41:20 -05:00
Stu Leak
0b1b337530 Polish colored select size and rounding 2026-01-04 02:36:27 -05:00
Stu Leak
b3c60a78fb Refine colored select styling and add accent bar 2026-01-04 02:32:52 -05:00
Stu Leak
70ba1bdd95 Fix audio module crash on initial quality select 2026-01-04 02:28:21 -05:00
Stu Leak
e5d76e72d9 Loosen split min size and scroll thumbnail settings 2026-01-04 02:12:45 -05:00
Stu Leak
4a5cfeb3ab Add LT logo to About dialog 2026-01-04 02:05:22 -05:00
Stu Leak
5fefe22300 Load multiple thumbnails like convert 2026-01-04 00:22:52 -05:00
Stu Leak
0bf4ee54d5 Lazy-load thumbnail previews for batch drops 2026-01-04 00:16:27 -05:00
Stu Leak
223ff7203b Disable player sync in thumbnails preview 2026-01-04 00:14:08 -05:00
Stu Leak
c81c7873e0 Write logs under user config 2026-01-04 00:02:22 -05:00
Stu Leak
19104c3e7c Persist thumbnail settings and set 4x8 default 2026-01-03 23:54:18 -05:00
Stu Leak
98a43e1491 Improve contact sheet progress reporting 2026-01-03 23:53:07 -05:00
Stu Leak
a9008316b8 Show multi-file list in thumbnails 2026-01-03 23:51:37 -05:00
Stu Leak
262012d2dd Add lightweight queue elapsed updates 2026-01-03 23:49:25 -05:00
Stu Leak
c80619f711 Tighten thumbnail columns and queue refresh 2026-01-03 23:47:11 -05:00
Stu Leak
8cfa43b210 Queue multiple thumbnail drops 2026-01-03 23:44:46 -05:00
Stu Leak
46810a6900 Increase contact sheet logo size 2026-01-03 23:41:35 -05:00
Stu Leak
bf4bae66e3 Add thumbnail progress updates 2026-01-03 23:40:47 -05:00
Stu Leak
33a07eae5b Fix thumb module imports 2026-01-03 23:36:50 -05:00
Stu Leak
db0d12865c Open thumbnail results in default viewer 2026-01-03 23:36:03 -05:00
Stu Leak
b29fb661cf Improve thumbnail settings layout 2026-01-03 23:34:58 -05:00
Stu Leak
f54097a1b0 Adjust contact sheet logo margin 2026-01-03 23:31:49 -05:00
Stu Leak
ce18ad0f0d Improve contact sheet metadata readability 2026-01-03 23:31:19 -05:00
Stu Leak
00d73f089f Increase contact sheet resolution 2026-01-03 23:28:29 -05:00
Stu Leak
9383548840 Refine contact sheet sampling and metadata 2026-01-03 23:26:15 -05:00
Stu Leak
eda40db55d Align thumbnail logo to header right 2026-01-03 23:20:57 -05:00
Stu Leak
5d2b4fead4 Center and enlarge thumbnail logo 2026-01-03 23:19:23 -05:00
Stu Leak
22e3c5a2e3 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
24345bc8df 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