87 Commits

Author SHA1 Message Date
pax
6554344523 Categorized blacklist tag submenu in right-click context
Blacklist Tag submenu now shows Artist/Character/Copyright/General/Meta
categories for Danbooru/e621. Falls back to flat list for other sites.
2026-04-04 21:39:20 -05:00
pax
8f2fc14b43 Add debug log for tag categories in info panel 2026-04-04 21:37:08 -05:00
pax
b6c6a6222a Categorized tags in info panel with color coding
- 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
2026-04-04 21:34:01 -05:00
pax
9f636532c0 Fix blacklist: enable by default, re-search after blacklisting tag
- blacklist_enabled defaults to "1" so it works out of the box
- Right-click blacklist auto-enables and re-searches immediately
2026-04-04 21:26:43 -05:00
pax
25cfc50f25 Fix QTextEdit text color in Windows dark mode
Explicitly set color and background on QTextEdit so blacklist
text box is readable in dark theme.
2026-04-04 21:24:45 -05:00
pax
0e6307f699 Fix blacklist placeholder text 2026-04-04 21:23:43 -05:00
pax
d3f384d5f9 Rewrite blacklist: paste-friendly text box, toggle, client-side filter
- 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
2026-04-04 21:21:49 -05:00
pax
e8f72c6fe6 Add Network tab to settings — shows all connected hosts
Logs every outgoing connection (API requests and image downloads)
with timestamps. Network tab in Settings shows all hosts contacted
this session with request counts. No telemetry, just transparency.
2026-04-04 21:11:01 -05:00
pax
4f8b703132 Fix slideshow state not updating after async favorite/save
Update fullscreen button state in _on_fav_done callback so it
refreshes after the async download completes, not before.
2026-04-04 20:44:51 -05:00
pax
823bcd500e Merge Save/Unsave into toggle button, add Ctrl+H to hide UI
- Single Save/Unsave button that toggles based on library state
- Ctrl+H in slideshow hides/shows toolbar and video controls
2026-04-04 20:41:52 -05:00
pax
cb249d9b36 Fix slideshow state buttons for favorites and saved files
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.
2026-04-04 20:39:22 -05:00
pax
252cc4e6f3 Favorites bulk context menu, slideshow state buttons
- 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
2026-04-04 20:36:48 -05:00
pax
4675c0a691 Slideshow toolbar, unsave from library, fix async error handling
- Add Favorite/Save/Unsave buttons to slideshow mode toolbar
- Add "Unsave from Library" to grid and preview right-click menus
- Fix silent exception swallowing in persistent event loop
- Fix closeEvent race condition with async thread join
2026-04-04 20:31:10 -05:00
pax
afa08ff007 Performance: persistent event loop, batch DB, directory pre-scan
- 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
2026-04-04 20:19:22 -05:00
pax
f0afe52743 Fix page boundary nav for up/down in slideshow mode
Check direction sign (>0/<0) instead of exact value (1/-1) so
column-sized jumps from up/down also trigger page turns.
2026-04-04 20:14:51 -05:00
pax
fa5d3c1bfe Fix search dropdown — use plain menu actions, add manage dialog
Reverted QWidgetAction approach (broken clicks) back to plain
menu actions. Added "Manage Saved Searches..." dialog for
deleting individual saved searches.
2026-04-04 20:12:12 -05:00
pax
a3e114c5b3 Add delete buttons to saved searches, clear history on exit
- Saved searches now have an x button to remove them individually
- Session cache mode clears search history but keeps saved searches
2026-04-04 20:09:59 -05:00
pax
043f36ef99 Replace history v button with inline dropdown arrow in search bar
- Small triangle icon inside the search input (trailing position)
- Clicking empty search bar also shows history dropdown
- Menu appears below the search input
2026-04-04 20:08:19 -05:00
pax
8c64f20171 Add per-item delete button to search history dropdown
Each recent search now has an x button to remove it individually.
Clicking the search text still loads it as before.
2026-04-04 20:07:03 -05:00
pax
c8d38edf06 Don't intercept keys from text inputs in slideshow event filter
Space, arrow keys etc. now work normally in search bar and other
text fields while slideshow is open.
2026-04-04 20:02:57 -05:00
pax
339c1b3c02 F11 toggles fullscreen/windowed in slideshow mode 2026-04-04 20:01:26 -05:00
pax
97ad56c12f Add up/down navigation in slideshow mode
Up/Down/J/K in slideshow now navigate by grid row, matching
the grid's column layout.
2026-04-04 20:01:00 -05:00
pax
10d7240d5c Sync slideshow with main app — clicking posts updates fullscreen
Centralized fullscreen update logic so any media change in the
main preview (click, navigate, favorites) also updates the
slideshow window if it's open.
2026-04-04 19:55:41 -05:00
pax
becdb2d18e Grid boundary nav: up/down/left/right past edge loads next/prev page
All arrow keys and hjkl now trigger page turns at grid boundaries,
not just left/right in preview mode.
2026-04-04 19:53:07 -05:00
pax
be56db1f47 Use native QMediaPlayer looping instead of manual restart
Fixes flashing/flickering on short looping videos by using
QMediaPlayer.Loops.Infinite instead of manually seeking to 0
on EndOfMedia.
2026-04-04 19:51:26 -05:00
pax
94405cfa85 Auto-select first/last post after page turn from navigation
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.
2026-04-04 19:49:52 -05:00
pax
148c1c3a26 Session cache option, zip conversion fix, page boundary nav
- 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
2026-04-04 19:49:09 -05:00
pax
526606c7c5 Convert Pixiv ugoira zips to animated GIFs, add filetype to info panel
- 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
2026-04-04 19:40:49 -05:00
pax
495eb4c64d Fix slideshow key handling via app-wide event filter
Arrow keys now work for navigation on videos in slideshow mode.
Uses event filter instead of NoFocus hack which broke video rendering.
2026-04-04 19:36:39 -05:00
pax
d275809c6b Slideshow: video support, seek keys, fix double audio
- Slideshow mode now supports video (webm/mp4) and GIFs
- Arrow keys navigate posts in both preview and slideshow (including videos)
- , and . seek 5s back/forward in videos
- Main preview video pauses when slideshow opens (no double audio)
- Fix focus stealing by video player widgets in slideshow
2026-04-04 19:33:24 -05:00
pax
238df9cf3e Slideshow mode, Win10 dark mode fixes, key propagation fix
- Add "Slideshow Mode" to preview right-click context menu
- Fix arrow key propagation in fullscreen/slideshow view
- Flatten Fusion dark mode buttons with stylesheet
- Fix Save button width, fix spinbox arrows on dark theme
2026-04-04 19:20:03 -05:00
pax
ea4ff54d9e Add Windows 10 dark mode support via Fusion palette
Reads AppsUseLightTheme registry key and applies a dark Fusion
palette when the system is set to dark mode. Fixes Qt6 not
picking up dark theme on Windows 10.
2026-04-04 17:21:21 -05:00
pax
700490c52c v0.1.1 — favorites nav, score filter, bottom page buttons
- Move prev/next page buttons to bottom of window
- Fix favorites tab: arrow keys now navigate and load preview
- Score filter uses server-side score:>=N instead of client-side filtering
- Remove TUI interface (GUI-only)
2026-04-04 16:44:35 -05:00
pax
01467411f1 Move page nav buttons from top bar to bottom only 2026-04-04 07:06:28 -05:00
pax
3cd2884748 Add bottom page navigation buttons
Centered prev/next buttons and page label at the bottom of the window
for easier navigation without scrolling back to the top.
2026-04-04 07:01:05 -05:00
pax
22d9f71b58 Remove scroll-triggered pagination, arrow keys navigate preview directly 2026-04-04 06:26:07 -05:00
pax
b10c00d6bf Initial release — booru image viewer with Qt6 GUI and Textual TUI
Supports Danbooru, Gelbooru, Moebooru, and e621. Features include tag search
with autocomplete, favorites with folders, save-to-library, video playback,
drag-and-drop, multi-select, custom CSS theming, and cross-platform support.
2026-04-04 06:00:50 -05:00