- 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.
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.
- 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
- 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
- Clicking the seek bar jumps to that position (both preview and slideshow)
- Scroll wheel adjusts volume when viewing video (both preview and slideshow)
- Filetype shown in the info bar below preview (e.g. JPG, WEBM, PNG)
- Artist (gold), Character (green), Copyright (purple), Species
(red), General, Meta/Lore (gray)
- Danbooru and e621 provide categories from API
- Gelbooru/Moebooru fall back to flat tag list
- Replace one-at-a-time tag list with a text box (paste space or
newline separated tags)
- Add enable/disable checkbox for blacklist
- Switch from server-side -tag appending (broke tag limits) to
client-side post filtering
- Import merges with existing tags
Check actual filesystem for saved state instead of relying on
thumbnail cache. Also works on the favorites tab now — always
shows as favorited, checks library by folder.
- Add multi-select right-click menu in favorites (save all, unsave
all, move all, unfavorite all)
- Slideshow toolbar buttons show post state: Favorite/Unfavorite,
Save enabled/disabled, Unsave enabled/disabled
- State updates after every favorite/save/unsave action
- Replace per-operation thread spawning with a single persistent
asyncio event loop (saves ~10-50ms per async operation)
- Pre-scan saved directories into sets instead of per-post
exists() calls (~80+ syscalls reduced to a few iterdir())
- Add add_favorites_batch() for single-transaction bulk inserts
- Add missing indexes on favorites.folder and favorites.favorited_at
Centralized fullscreen update logic so any media change in the
main preview (click, navigate, favorites) also updates the
slideshow window if it's open.
When navigating past the last post (next page) or before the first
post (prev page), the new page loads and automatically selects and
previews the first or last post. Works in both preview and slideshow.
- Add "Clear cache on exit" checkbox in Settings > Cache
- Fix ugoira zip conversion: don't crash if frames fail, verify gif
exists before deleting zip
- Arrow key past last/first post loads next/prev page
- Detect .zip files (Pixiv ugoira) and convert frames to animated GIF
- Cache the converted GIF so subsequent loads are instant
- Add filetype field to the info panel
- Add ZIP to valid media magic bytes