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.
- Ctrl+P now hides slideshow window and pauses all video playback
- Slideshow restored when privacy screen is toggled off
- README keybinds: arrow keys + hjkl for preview navigation
Right-click selects the thumbnail (border highlight) but doesn't
trigger post_selected/activated, so preview stays on current post.
Added hover border highlight. Removed _last_activated_index guard.
- Video thumbnails: try ffmpeg, fall back to play icon placeholder
- Right-click no longer restarts video playback on same post
- Reset activated index on new search
- Add prefetch_adjacent, clear_cache_on_exit, slideshow_monitor,
library_dir to _DEFAULTS for fresh installs
- Replace all silent except-pass with logged warnings
Auto-shows the info panel when slideshow opens (filling the empty
preview space with tags and post details). Restores previous
visibility state when slideshow closes.
- 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.
Uses keyPressEvent on main window — only fires when no text
input has focus (search bar consumes Space itself). Checks
underMouse() so it only works when hovering the preview.
- Missing file indicator (red dot) for NAS/lost files, QSS-controllable
via qproperty-missingColor
- Library items now show green saved dot
- Missing files detected on refresh and marked red
- Grabs video position before opening slideshow and seeks to it
- Use closed signal from closeEvent instead of destroyed for
reliable preview restoration on slideshow close
- Video errors now logged instead of opening in system player
- Slideshow event filter only intercepts keys/scroll when its
window is active, fixing up/down skipping in main app
Library now generates video thumbnails by extracting the first
frame with ffmpeg. Cached alongside image thumbnails. Falls back
gracefully if ffmpeg is not available.
- Videos show a play triangle + file extension as placeholder
- Multi-select right-click: bulk delete from library
- Image thumbnails confirmed working
- Image thumbnails generated via PIL and cached
- Video files show tooltip with filename (QPixmap fallback attempted)
- Right-click: Open in Default App, Open Containing Folder,
Copy File Path, Delete from Library
- Skip video files in library thumbnail generation (PIL can't open them)
- _on_bookmark_done only sets bookmarked for bookmark ops, saved for save ops
- Smaller green dot with yellow star to its right
- Default bookmark star color: yellow (#ffcc00)
Major restructure of the favorites/library system:
- Rename "Favorites" to "Bookmarks" throughout (DB API, GUI, signals)
- Add Library tab for browsing saved files on disk with sorting
- Decouple bookmark from save — independent operations now
- Two indicators on thumbnails: star (bookmarked), green dot (saved)
- Both indicators QSS-controllable (qproperty-bookmarkedColor/savedColor)
- Unbookmarking no longer deletes saved files
- Saving no longer auto-bookmarks
- Library tab: folder sidebar, sort by date/name/size, async thumbnails
- DB table kept as "favorites" internally for migration safety
When blacklist filtering reduces results below page size, fetches
additional pages to fill the gap. Filtered posts from backfill
pages also go through the blacklist. Caps at 5 extra pages.
- Prefetch adjacent posts is now a toggle in Settings > General (off by default)
- Prefetch progress bar on thumbnails shows download state
- Blacklist Post: right-click to hide a specific post by URL
- "Create from Template" opens themes reference on git.pax.moe
and spawns the default text editor with custom.qss