Commit Graph

299 Commits

Author SHA1 Message Date
pax 7d02aa8588 Drop parenthetical hints from search placeholder text — live search and -negative tags can be inferred 2026-04-07 15:46:35 -05:00
pax c322b3d2b0 Bump version to 0.2.1 2026-04-07 15:44:26 -05:00
pax d501ccf69a Match native Qt+Fusion sizing across themed widgets (~23px uniform toolbar row), drop score +/- buttons, force score/page spinbox height to match 2026-04-07 15:42:36 -05:00
pax 81ce926c88 Live search in bookmarks/library (debounced) + 3-state library count label with QSS-targetable libraryCountState property 2026-04-07 15:26:00 -05:00
pax 2dfeb4e46c Bundle themes as -rounded/-square variants, add ThumbnailWidget selection color qproperties, document new vars in themes/README.md 2026-04-07 15:19:38 -05:00
pax 6d68652e61 Bookmarks/library/preview toolbars: compact button padding, 4px splitter pad, uniform 30px row height; library drops unreachable set_missing call 2026-04-07 15:19:24 -05:00
pax 3824d382c3 Square thumbnail selection border, Qt-targetable selection colors, indicator row swap, drop dead missing-indicator code 2026-04-07 15:19:16 -05:00
pax 0eab860088 Persist info panel visibility and right splitter sizes across sessions 2026-04-07 14:41:28 -05:00
pax 6c1a98a827 QSS @palette/${} preprocessor + theme overhaul: themable popout overlays, slider square, mpv letterbox via QPalette, embedded controls under media, compact toolbar buttons 2026-04-07 14:41:00 -05:00
pax 1712fc5836 Side-by-side +/- spinbox buttons + auto-derived dialog min height so cache fields can't clip 2026-04-07 14:40:22 -05:00
pax dded54c435 Selection border on thumbnails uses pen-aware QRectF + rounded corners (smooth, even, no off-by-one) 2026-04-07 14:40:16 -05:00
pax 507641596e Rewrite bundled themes with comprehensive Fusion-style QSS covering all widget types and states 2026-04-07 13:15:37 -05:00
pax 463f77d8bb Make info panel tag colors QSS-targetable, delete dead theme.py + green palette constants 2026-04-07 13:15:31 -05:00
pax 72150fc98b Add BOORU_VIEWER_NO_HYPR_RULES + BOORU_VIEWER_NO_POPOUT_ASPECT_LOCK env vars for ricers with their own windowrules 2026-04-07 12:27:22 -05:00
pax 33293dfbae Wrap video Next loop to start of bookmarks/library list at end of media 2026-04-07 11:41:26 -05:00
pax 6d3d27d9d5 Persist main window state — splitter sizes, geometry, floating, maximized; flush on close 2026-04-07 11:40:19 -05:00
pax 389e455ac0 Fix Open in Browser/Default App on bookmarks and library tabs (route per active tab, drop random-cache fallback) 2026-04-07 11:37:24 -05:00
pax 74f948a3e8 Speed up page loads — pre-fetch bookmarks/cache as sets, off-load PIL conversion to a worker 2026-04-07 11:36:23 -05:00
pax 2b9bf22249 Refresh popout BL Tag menu when navigating between bookmarked posts 2026-04-07 11:13:46 -05:00
pax 8ef40dc0fe Restore popout windowed position on F11 exit (defer fit, disable Hyprland anim, dedupe video-params) 2026-04-07 11:13:43 -05:00
pax a6bb08e6c1 Ignore *.dll (Windows build artifacts) 2026-04-07 08:51:05 -05:00
pax 56cb5ce1df Scroll tilt navigates one cell/post in grid, preview, and popout 2026-04-07 08:50:13 -05:00
pax 92b7a16ab2 Restore popout position via hyprctl on first fit (Wayland ignores Qt setGeometry for child windows) 2026-04-06 21:36:40 -05:00
pax 2f3161f974 Save popout position from hyprctl on close (Wayland can't report position to Qt) 2026-04-06 19:51:35 -05:00
pax 7004f38668 Popout max height 90% of screen 2026-04-06 19:25:04 -05:00
pax 37082a55c1 Consolidate popout sizing into single _fit_to_content function 2026-04-06 19:23:42 -05:00
pax f2a85bb634 Scale up landscape content if window too narrow (min 250px height) 2026-04-06 19:17:40 -05:00
pax 803b5f5b24 Remove landscape minimum, respect user's saved window width with 85% height cap 2026-04-06 19:15:17 -05:00
pax 4cf094f517 Revert user-resize tracking, keep simple min/max constraints 2026-04-06 19:14:08 -05:00
pax c0a189192e Popout respects user resize per session, resets when stretched to minimum 2026-04-06 19:12:34 -05:00
pax 1de6f02ed0 Bump landscape popout minimum to 45% of screen 2026-04-06 19:03:06 -05:00
pax 0a1fbb7906 Landscape popout minimum width 35% of screen 2026-04-06 19:02:07 -05:00
pax aaf33dd7c7 Limit popout height to 85% of screen for portrait content 2026-04-06 19:00:22 -05:00
pax 924e065e65 Set cached_path on bookmark thumbnails for drag and copy 2026-04-06 15:20:50 -05:00
pax 0e6e7090ff Unset keep_aspect_ratio before resize to allow aspect ratio changes 2026-04-06 15:15:10 -05:00
pax f295e51d59 Clamp popout to both screen width and height on aspect change 2026-04-06 15:07:43 -05:00
pax 09dbf5e586 Update Linux screenshot for 0.2.0 2026-04-06 14:46:59 -05:00
pax 5e91e7ebb9 Fix popout overlay zone detection: map cursor to window coordinates 2026-04-06 14:16:23 -05:00
pax c6c4df1e77 Tighten popout overlay trigger zones to 40px 2026-04-06 14:14:51 -05:00
pax e01aa86063 Popout overlay: toolbar shows near top edge, controls near bottom 2026-04-06 14:13:40 -05:00
pax 84726f9677 Clamp popout height to screen bounds on landscape-to-portrait transition 2026-04-06 14:00:32 -05:00
pax f58e7e3649 Fix Windows mpv DLL name: libmpv-2.dll 2026-04-06 13:56:46 -05:00
pax 2fbf2f6472 0.2.0: mpv backend, popout viewer, preview toolbar, API retry, SearchState refactor
Video:
- Replace Qt Multimedia with mpv via python-mpv + OpenGL render API
- Hardware-accelerated decoding, frame-accurate seeking, proper EOF detection
- Translucent overlay controls in both preview and popout
- LC_NUMERIC=C for mpv locale compatibility

Popout viewer (renamed from slideshow):
- Floating toolbar + controls overlay with auto-hide (2s)
- Window auto-resizes to content aspect ratio on navigation
- Hyprland: hyprctl resizewindowpixel + keep_aspect_ratio prop
- Window geometry persisted to DB across sessions
- Smart F11 exit sizing (60% monitor, centered)

Preview toolbar:
- Bookmark, Save, BL Tag, BL Post, Popout buttons above preview
- Save opens folder picker menu, shows Save/Unsave state
- Blacklist actions have confirmation dialogs
- Per-tab button visibility (Library: Save + Popout only)
- Cross-tab state management with grid selection clearing

Search & pagination:
- SearchState dataclass replaces 8 scattered attrs + defensive getattr
- Media type filter dropdown (All/Animated/Video/GIF/Audio)
- API retry with backoff on 429/503/timeout
- Infinite scroll dedup fix (local seen set per backfill round)
- Prev/Next buttons hide at boundaries, "(end)" status indicator

Grid:
- Rubber band drag selection
- Saved/bookmarked dots update instantly across all tabs
- Library/bookmarks emit signals on file deletion for cross-tab sync

Settings & misc:
- Default site option
- Max thumbnail cache setting (500MB default)
- Source URLs clickable in info panel
- Long URLs truncated to prevent splitter blowout
- Bulk save no longer auto-bookmarks
2026-04-06 13:43:46 -05:00
pax b30a469dde Slideshow defaults to fullscreen, remembers windowed size on F11 2026-04-06 01:27:17 -05:00
pax cb9dc13915 Update Linux screenshot 2026-04-06 01:12:53 -05:00
pax bda92a0a87 Instant infinite scroll drain, trigger 3 rows early
Old staggered drain (50ms per post) was added for visual polish but
made infinite scroll painfully slow — a 40-post page took 2 seconds
just to add to the grid. Thumbnails already load async via _fetch_thumbnail,
so the stagger was just delaying grid population for no real benefit.

Now all posts are added instantly in one pass with thumbnails filling in
as they arrive. Scroll trigger widened from 1 row to 3 rows from bottom
so the next page starts loading before you reach the end.
2026-04-06 01:01:53 -05:00
pax a93a8bc70f Pause video when opening in external application 2026-04-05 23:40:17 -05:00
pax b82b51bb40 Darken Ko-fi badge for better contrast 2026-04-05 23:28:09 -05:00
pax 52126401cb Fix Ko-fi badge — green right side for visible split 2026-04-05 23:27:38 -05:00
pax 61a39f55d0 Unify Ko-fi badge into single section 2026-04-05 23:26:10 -05:00