diff --git a/main.go b/main.go index c2757d5..55c14bb 100644 --- a/main.go +++ b/main.go @@ -199,6 +199,7 @@ type appState struct { compareFile1 *videoSource compareFile2 *videoSource keyframingMode bool // Toggle for frame-accurate editing features + isFullscreen bool // Fullscreen mode state } func (s *appState) stopPreview() { @@ -208,6 +209,11 @@ func (s *appState) stopPreview() { } } +func (s *appState) toggleFullscreen() { + s.isFullscreen = !s.isFullscreen + s.window.SetFullScreen(s.isFullscreen) +} + func (s *appState) updateStatsBar() { if s.statsBar == nil || s.jobQueue == nil { return @@ -2024,6 +2030,19 @@ func runGUI() { w.SetOnDropped(func(pos fyne.Position, items []fyne.URI) { state.handleDropPlayer(items) }) + + // Global keyboard shortcuts (F11 for fullscreen, ESC to exit fullscreen) + w.Canvas().SetOnTypedKey(func(key *fyne.KeyEvent) { + switch key.Name { + case fyne.KeyF11: + state.toggleFullscreen() + case fyne.KeyEscape: + if state.isFullscreen { + state.toggleFullscreen() + } + } + }) + state.showMainMenu() logging.Debug(logging.CatUI, "main menu rendered with %d modules", len(modulesList)) diff --git a/scripts/build.sh.old b/scripts/build.sh.old new file mode 100755 index 0000000..b66c98e --- /dev/null +++ b/scripts/build.sh.old @@ -0,0 +1,63 @@ +#!/bin/bash +# VT Player Build Script +# Cleans dependencies and builds the application with proper error handling + +set -e + +PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +BUILD_OUTPUT="$PROJECT_ROOT/VTPlayer" + +echo "════════════════════════════════════════════════════════════════" +echo " VT Player Build Script" +echo "════════════════════════════════════════════════════════════════" +echo "" + +# Check if go is installed +if ! command -v go &> /dev/null; then + echo "❌ ERROR: Go is not installed. Please install Go 1.21 or later." + exit 1 +fi + +echo "📦 Go version:" +go version +echo "" + +# Change to project directory +cd "$PROJECT_ROOT" + +echo "🧹 Cleaning previous builds and cache..." +go clean -cache -modcache -testcache 2>/dev/null || true +rm -f "$BUILD_OUTPUT" 2>/dev/null || true +echo "✓ Cache cleaned" +echo "" + +echo "⬇️ Downloading and verifying dependencies..." +go mod download +go mod verify +echo "✓ Dependencies verified" +echo "" + +echo "🔨 Building VT Player..." +# Fyne needs cgo for GLFW/OpenGL bindings; build with CGO enabled. +export CGO_ENABLED=1 +if go build -o "$BUILD_OUTPUT" .; then + echo "✓ Build successful!" + echo "" + echo "════════════════════════════════════════════════════════════════" + echo "✅ BUILD COMPLETE" + echo "════════════════════════════════════════════════════════════════" + echo "" + echo "Output: $BUILD_OUTPUT" + echo "Size: $(du -h "$BUILD_OUTPUT" | cut -f1)" + echo "" + echo "To run:" + echo " $PROJECT_ROOT/VTPlayer" + echo "" + echo "Or use the convenience script:" + echo " source $PROJECT_ROOT/scripts/alias.sh" + echo " VTPlayer" + echo "" +else + echo "❌ Build failed!" + exit 1 +fi