From 4d031a4dae5bd311a75c435a251f9bc431411dd8 Mon Sep 17 00:00:00 2001 From: Stu Leak Date: Tue, 23 Dec 2025 18:30:35 -0500 Subject: [PATCH] Polish menu header and Windows DVDStyler download --- DONE.md | 34 ++++++++++++++++++++++++++++++++ internal/ui/mainmenu.go | 12 ++++++++--- scripts/install-deps-windows.ps1 | 2 +- 3 files changed, 44 insertions(+), 4 deletions(-) diff --git a/DONE.md b/DONE.md index 34095b2..b68dc53 100644 --- a/DONE.md +++ b/DONE.md @@ -2,6 +2,40 @@ This file tracks completed features, fixes, and milestones. +## Version 0.1.0-dev20+ (2025-12-23) - Player UX & Installer Polish + +### Features (2025-12-23 Session) +- ✅ **Player Module UI Improvements** + - Responsive video player sizing based on screen resolution + - Screens < 1600px wide: 640x360 (prevents layout breaking) + - Screens ≥ 1600px wide: 1280x720 (larger viewing area) + - Dynamically adapts to display when player view is built + - Prevents excessive negative space on lower resolution displays + +- ✅ **Main Menu Cleanup** + - Hidden "Logs" button from main menu (history sidebar replaces it) + - Logs button only appears when onLogsClick callback is provided + - Cleaner, less cluttered interface + - Dynamic header controls based on available functionality + +- ✅ **Windows Installer Fix** + - Fixed DVDStyler download from SourceForge mirrors + - Added `-MaximumRedirection 10` to handle SourceForge redirects + - Added browser user agent to prevent rejection + - Resolves "invalid archive" error on Windows 11 + - Reported by: Jake + +### Technical Improvements +- ✅ **Responsive Design Pattern** + - Canvas size detection for adaptive UI sizing + - Prevents window layout issues on smaller displays + - Maintains larger preview on high-resolution screens + +- ✅ **PowerShell Download Robustness** + - Proper redirect following for mirror systems + - User agent spoofing for compatibility + - Multiple fallback URLs for resilience + ## Version 0.1.0-dev20 (2025-12-21) - VT_Player Framework Implementation ### Features (2025-12-21 Session) diff --git a/internal/ui/mainmenu.go b/internal/ui/mainmenu.go index 3fa84ca..484c2a6 100644 --- a/internal/ui/mainmenu.go +++ b/internal/ui/mainmenu.go @@ -65,14 +65,20 @@ func BuildMainMenu(modules []ModuleInfo, onModuleClick func(string), onModuleDro viewResultsBtn := widget.NewButton("Results", onBenchmarkHistoryClick) viewResultsBtn.Importance = widget.LowImportance - logsBtn := widget.NewButton("Logs", onLogsClick) - logsBtn.Importance = widget.LowImportance + // Build header controls dynamically - only show logs button if callback is provided + headerControls := []fyne.CanvasObject{sidebarToggleBtn} + if onLogsClick != nil { + logsBtn := widget.NewButton("Logs", onLogsClick) + logsBtn.Importance = widget.LowImportance + headerControls = append(headerControls, logsBtn) + } + headerControls = append(headerControls, benchmarkBtn, viewResultsBtn, queueTile) // Compact header - title on left, controls on right header := container.NewBorder( nil, nil, title, - container.NewHBox(sidebarToggleBtn, logsBtn, benchmarkBtn, viewResultsBtn, queueTile), + container.NewHBox(headerControls...), nil, ) diff --git a/scripts/install-deps-windows.ps1 b/scripts/install-deps-windows.ps1 index d33bae5..f4f0ccd 100644 --- a/scripts/install-deps-windows.ps1 +++ b/scripts/install-deps-windows.ps1 @@ -76,7 +76,7 @@ function Ensure-DVDStylerTools { if (Test-Path $dvdstylerZip) { Remove-Item -Force $dvdstylerZip } - Invoke-WebRequest -Uri $url -OutFile $dvdstylerZip -UseBasicParsing + Invoke-WebRequest -Uri $url -OutFile $dvdstylerZip -UseBasicParsing -MaximumRedirection 10 -UserAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" } catch { try { Start-BitsTransfer -Source $url -Destination $dvdstylerZip -ErrorAction Stop