Commit Graph

653 Commits

Author SHA1 Message Date
Stu Leak
010e21043a Require qrencode in Windows dependency installer 2026-01-04 04:25:00 -05:00
Stu Leak
67f41de0c2 Add qrencode dependency to install script 2026-01-04 04:20:05 -05:00
Stu Leak
9535725ab7 Increase base text size for UI readability 2026-01-04 04:12:10 -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
dccf26d71c Update docs for dev23 and dev24 planning 2026-01-04 03:17:23 -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
125fb5ab77 Align input background with dropdown styling 2026-01-04 03:05:22 -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
113cbb2da2 Polish colored select size and rounding 2026-01-04 02:36:27 -05:00
Stu Leak
0d5f814f34 Refine colored select styling and add accent bar 2026-01-04 02:32:52 -05:00
Stu Leak
f596a5b6e5 Fix audio module crash on initial quality select 2026-01-04 02:28:21 -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
83fdae4e3b Persist thumbnail settings and set 4x8 default 2026-01-03 23:54:18 -05:00
Stu Leak
027049ff76 Improve contact sheet progress reporting 2026-01-03 23:53:07 -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
5ebfc0e91c Increase contact sheet logo size 2026-01-03 23:41:35 -05:00
Stu Leak
f9161de1a9 Add thumbnail progress updates 2026-01-03 23:40:47 -05:00
Stu Leak
8994d2020b Fix thumb module imports 2026-01-03 23:36:50 -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
5cf83f0810 Adjust contact sheet logo margin 2026-01-03 23:31:49 -05:00
Stu Leak
b4c433bed2 Improve contact sheet metadata readability 2026-01-03 23:31:19 -05:00
Stu Leak
a7699c50dc Increase contact sheet resolution 2026-01-03 23:28:29 -05:00
Stu Leak
658331cd67 Refine contact sheet sampling and metadata 2026-01-03 23:26:15 -05:00
Stu Leak
a44f612346 Align thumbnail logo to header right 2026-01-03 23:20:57 -05:00
Stu Leak
cecc5586cd Center and enlarge thumbnail logo 2026-01-03 23:19:23 -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
Stu Leak
69a00e922f Optimize queue updates and colored selects 2026-01-03 22:15:46 -05:00
Stu Leak
2332f2e9ca fix: update main menu version display to dev22
- Update appVersion constant from dev21 to dev22
- Ensures main menu footer and About dialog show correct version
- Completes dev22 release preparation

All build fixes applied and version correctly displayed.
2026-01-03 13:58:22 -05:00
Stu Leak
7ce796e0e6 fix: resolve build errors by removing partial job editing integration
Fixed compilation errors in queueview.go:
- Added missing 'image' import for StripedProgress renderer
- Removed 'theme' import (no longer used after Edit button removal)
- Removed incomplete onEditJob integration (parameter and Edit button)

Fixed compilation errors in main.go:
- Removed editJobManager field from appState struct
- Removed JobTypeEditJob case statement from job executor
- Removed executeEditJob function (150 lines with API errors)
- Removed editJobManager initialization

Updated WORKING_ON.md:
- Confirmed acceptance of opencode's Option A recommendation
- Documented all removed integration points
- Listed preserved WIP files for dev23

Job editing feature is preserved in WIP files for dev23:
- internal/queue/edit.go (not committed, ready for dev23)
- internal/ui/command_editor.go (not committed, ready for dev23)
- internal/queue/execute_edit_job.go.wip (needs import fixes)

Aligns with opencode's Option A recommendation to release
clean dev22 and complete job editing properly in dev23.
2026-01-03 13:53:31 -05:00
Stu Leak
c388787211 chore: release v0.1.0-dev22
Version bump to v0.1.0-dev22 (Build 21) with comprehensive CHANGELOG update.

Features:
- Automatic GPU detection for hardware encoding (auto-selects nvenc/amf/qsv)
- SVT-AV1 speed preset mapping (prevents 80+ hour encodes)
- UI splitter fluidity improvements
- Windows FFmpeg popup suppression
- Format selector widget

Fixes:
- Restored proper AV1 encoding support
- JobType constant consistency (JobTypeFilter)
- Build errors resolved (formatContainer, forward declarations)
- Git remote corrected to git.leaktechnologies.dev

Coordination:
- Updated WORKING_ON.md with dev22 status
- Documented opencode's WIP job editing feature for dev23
- Moved execute_edit_job.go.wip out of build path
2026-01-03 13:34:17 -05:00
Stu Leak
8556244821 docs: add coordination request for opencode re: job editing feature
Added detailed analysis of uncommitted job editing work and coordination
request asking opencode to choose between:
- Option A: Commit refactor only, hold editing for dev23 (recommended)
- Option B: Commit all as WIP with feature flags
- Option C: Hold everything for dev23

This ensures we coordinate on dev22 feature freeze and proper integration.
2026-01-03 13:27:40 -05:00
Stu Leak
5d64b6280e docs: update WORKING_ON - remove Gemini, document dev22 completion
- Removed Gemini from active rotation
- Updated with Claude (thisagent) and opencode as active agents
- Documented all dev22 fixes and features
- Marked build status as PASSING
- Ready for dev22 release and dev23 planning
2026-01-03 13:18:12 -05:00
Stu Leak
0a93b3605e fix: resolve build errors and complete dev22 fixes
- Fixed syntax error in main.go formatBackground section
- Added formatContainer widget for format selection in Convert module
- Fixed forward declaration issues for updateDVDOptions and buildCommandPreview
- Added GPUVendor() method to sysinfo.HardwareInfo for GPU detection
- Implemented automatic GPU detection for hardware encoding (auto mode)
- Fixed JobTypeFilters -> JobTypeFilter naming inconsistency in queue.go
- Added proper JobType specifications to all queue constants
- Removed duplicate/conflicting types.go file

This fixes all compilation errors and completes the dev22 release readiness.
2026-01-03 13:17:30 -05:00