Let KeepAspectRatio handle sizing (centered by default).
Set video widget palette to match theme background so
letterbox bars blend with the UI instead of showing black.
Compares video aspect ratio to container ratio. Wider videos
get height constrained, taller videos get width constrained.
Works for both preview and slideshow automatically.
Preview constrains height (eliminates top/bottom bars).
Slideshow constrains width (eliminates side bars).
Both use video aspect ratio from first frame.
- Slideshow video player: auto_size_video=False, no height constraint
- Revert video widget hide/show (caused info panel issues)
- Preview video still auto-sizes to aspect ratio
Detects video dimensions from first frame via QVideoSink,
sets max height on the video widget to eliminate black bars.
Resets on each new video. Uses KeepAspectRatio mode.
- Renamed "Copy Image to Clipboard" to "Copy File to Clipboard"
- Works for images AND videos via wl-copy with correct MIME types
- Added to grid, preview, bookmarks, and library context menus
- Ctrl+C shortcut works globally
- Qt fallback for non-Wayland systems
- Ctrl+C tries pixmap then cached file path as fallback
- Preview right-click always shows "Copy Image to Clipboard"
- Works for images and loads from disk for videos
- Status bar shows result count with copy confirmation
- BL Tag button in slideshow: opens categorized tag menu
- BL Post button in slideshow: blacklists current post
- Ctrl+C copies preview image to clipboard
- "Copy Image to Clipboard" in grid right-click menu
- Fix README code block formatting (missing closing backticks)
- Add ffmpeg back to Linux install deps
- Mute, volume, autoplay, loop state synced on slideshow open/close
- Loop restart detection requires position > 80% of duration to
prevent false triggers on new video loads
- Use codicon codepoints (eb7c etc.) which exist in Terminess/Nerd Fonts
- All icons overridable via QSS: qproperty-playIcon, qproperty-pauseIcon,
qproperty-muteIcon, qproperty-unmuteIcon on VideoPlayer
- Lazy detection after QSS is applied
Auto-detects if app font has Nerd Font glyphs. If yes, uses
unicode icons for Play/Pause/Mute/Loop/etc. Falls back to text.
Removed all setFixedWidth on buttons so QSS can control sizing.
- Loop: repeat forever
- Once: play once, stop at end
- Next: play once, advance to next post
- Autoplay/Manual labels for auto-start toggle
- Document :checked state in themes/README.md
EndOfMedia doesn't fire reliably with setLoops(1). Instead,
use Infinite loops and detect the loop restart via position
jumping from near-end back to 0. Pause and emit play_next
when in Next mode. Toggle takes effect immediately.