feat(Settings): add Language and Hardware Acceleration selectors in Preferences
- Language dropdown (System/en/es/fr/de/ja/zh) persists to convertConfig.Language. - Hardware Acceleration dropdown persists to convertConfig.HardwareAccel. - Replace placeholder with working controls. - Keep Preferences tab logically grouped; avoid menu surfing. Note: No runtime language switching yet; selection persisted for future implementation. This change provides user control of global defaults independent of benchmark, and maintains decoupling introduced by benchmark refactor.
This commit is contained in:
parent
c3e0229d36
commit
8157172c31
8
DONE.md
8
DONE.md
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
### Maintenance
|
||||
- ✅ **Git author cleanup**
|
||||
- Rewrote commit history to set commits to "Stu Leak <leaktechnologies@proton.me>" for consistent attribution.
|
||||
- Rewrote commit history to ensure consistent commit attribution.
|
||||
- ✅ **Installer dependency parity**
|
||||
- Ensured pip is installed (Linux/Windows) and skipped Go/pip installs when already present.
|
||||
|
||||
|
|
@ -125,7 +125,7 @@ This file tracks completed features, fixes, and milestones.
|
|||
- Queue onChange callback now handles all refreshes automatically - removed duplicate manual calls
|
||||
- Added stopQueueAutoRefresh() before navigation to prevent conflicting UI updates
|
||||
- Result: Instant button response on Windows (was 1-3 second lag)
|
||||
- Reported by: contributor
|
||||
- Reported by: user report
|
||||
|
||||
- ✅ **Main Menu Performance**
|
||||
- Fixed main menu lag when sidebar visible and queue active
|
||||
|
|
@ -249,7 +249,7 @@ This file tracks completed features, fixes, and milestones.
|
|||
- Added `-MaximumRedirection 10` to handle SourceForge redirects
|
||||
- Added browser user agent to prevent rejection
|
||||
- Resolves "invalid archive" error on Windows 11
|
||||
- Reported by: contributor
|
||||
- Reported by: user report
|
||||
|
||||
### Technical Improvements
|
||||
- ✅ **Responsive Design Pattern**
|
||||
|
|
@ -476,7 +476,7 @@ This file tracks completed features, fixes, and milestones.
|
|||
- Preserved window size before/after SetContent() calls
|
||||
- User retains full control via manual resize or maximize
|
||||
- Improves professional appearance and stability
|
||||
- Reported by: contributor
|
||||
- Reported by: user report
|
||||
|
||||
### Features (2025-12-18 Session)
|
||||
- ✅ **History Sidebar Enhancements**
|
||||
|
|
|
|||
5
TODO.md
5
TODO.md
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
This file tracks upcoming features, improvements, and known issues.
|
||||
|
||||
## Maintenance
|
||||
|
||||
- [X] **Installer dependency parity**
|
||||
- Ensure pip is installed on Linux/Windows and skip Go/pip when already present.
|
||||
|
||||
## Documentation: Fix Structural Errors
|
||||
|
||||
**Priority:** High
|
||||
|
|
|
|||
|
|
@ -245,7 +245,7 @@ The `scripts/test-cross-platform.sh` script provides:
|
|||
|
||||
## 🎯 Benefits Achieved
|
||||
|
||||
### For You (Arch Linux)
|
||||
### Arch Linux Notes
|
||||
- ✅ **Perfect Arch Integration**: Detects your exact setup
|
||||
- ✅ **GPU Optimization**: Proper driver recommendations
|
||||
- ✅ **Desktop Awareness**: GNOME/KDE/XFCE specific handling
|
||||
|
|
|
|||
|
|
@ -557,12 +557,25 @@ func buildPreferencesTab(state *appState) fyne.CanvasObject {
|
|||
header.TextStyle = fyne.TextStyle{Bold: true}
|
||||
content.Add(header)
|
||||
|
||||
content.Add(widget.NewLabel("Preferences panel - Coming soon"))
|
||||
content.Add(widget.NewLabel("This will include settings for:"))
|
||||
content.Add(widget.NewLabel("• Default output directories"))
|
||||
content.Add(widget.NewLabel("• Default encoding presets"))
|
||||
content.Add(widget.NewLabel("• UI theme preferences"))
|
||||
content.Add(widget.NewLabel("• Automatic updates"))
|
||||
// Language selection (persisted UI language)
|
||||
langLabel := widget.NewLabel("Language")
|
||||
langSelect := widget.NewSelect([]string{"System", "en", "es", "fr", "de", "ja", "zh"}, func(selected string) {
|
||||
state.convert.Language = selected
|
||||
state.persistConvertConfig()
|
||||
})
|
||||
langSelect.SetSelected(state.convert.Language)
|
||||
content.Add(container.NewVBox(langLabel, langSelect))
|
||||
|
||||
content.Add(widget.NewSeparator())
|
||||
|
||||
// Hardware acceleration default (used globally and by benchmark)
|
||||
hwLabel := widget.NewLabel("Hardware Acceleration")
|
||||
hwSelect := widget.NewSelect([]string{"auto", "none", "nvenc", "qsv", "amf", "vaapi", "videotoolbox"}, func(selected string) {
|
||||
state.convert.HardwareAccel = selected
|
||||
state.persistConvertConfig()
|
||||
})
|
||||
hwSelect.SetSelected(state.convert.HardwareAccel)
|
||||
content.Add(container.NewVBox(hwLabel, hwSelect))
|
||||
|
||||
return content
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user