429 Commits

Author SHA1 Message Date
pax
4a2eb9e43e Treat .qss files as CSS for syntax highlighting 2026-04-05 00:51:35 -05:00
pax
a47ed8ec95 Add theme previews to themes/README.md 2026-04-05 00:47:42 -05:00
pax
f311326e73 Optional prefetch with progress bar, post blacklist, theme template link
- 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
2026-04-05 00:45:53 -05:00
pax
5d48581f52 Prefetch in all 4 directions (left, right, up, down)
CDN downloads don't count against API rate limits so we can
safely prefetch all adjacent posts for instant navigation.
2026-04-05 00:32:04 -05:00
pax
a9d177ee91 Throttle prefetch: only next+prev, 1s stagger, sequential
Reduced from 3 concurrent prefetches to 2 sequential with 1s
delay between them. Avoids hitting Danbooru's 10 req/s rate limit.
2026-04-05 00:28:35 -05:00
pax
a5f33237dd Prefetch adjacent posts for faster click-to-play
When viewing a post, silently downloads the next, previous, and
second-next posts in the background. Cached files are skipped.
2026-04-05 00:27:07 -05:00
pax
ea08e0e3e4 Add Loop/Next toggle for video playback
Default: Loop (replays video). Toggle to Next: auto-advances to
next post when video ends. Works in both preview and slideshow.
2026-04-05 00:25:08 -05:00
pax
2bca5ca188 Click-to-seek, scroll-to-volume, filetype in preview info bar
- 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)
2026-04-05 00:21:19 -05:00
pax
5d87457840 Scroll tilt flips pages without auto-selecting first post
Separate page_forward/page_back signals from nav boundary signals
so tilt just changes page, doesn't trigger post preview.
2026-04-05 00:14:41 -05:00
pax
f13a2f6b28 Add scroll tilt to keybinds in README 2026-04-05 00:11:05 -05:00
pax
a97c85902c Scroll tilt left/right to navigate prev/next page 2026-04-05 00:08:38 -05:00
pax
053726b040 Update Windows 11 light screenshot 2026-04-04 23:24:54 -05:00
pax
8425bc7c6d Update all theme screenshots 2026-04-04 23:17:24 -05:00
pax
bd8b7c08a6 Add Everforest theme, theming documentation
- Everforest theme (green accent, earthy tones)
- themes/README.md: complete QSS reference for targeting every
  widget, state, and visual element
2026-04-04 23:02:44 -05:00
pax
fd5c163225 Add bundled themes with screenshots in README
5 included themes: Nord, Catppuccin Mocha, Gruvbox, Solarized Dark,
Tokyo Night. Copy any .qss from themes/ to custom.qss to use.
2026-04-04 22:57:00 -05:00
pax
fd476c4967 Fix grid selection highlight with custom QSS themes
Extract selection-background-color from QSS and apply it to the
app palette so the grid's custom-painted highlight matches the theme.
2026-04-04 22:50:16 -05:00
pax
0c57251d94 Widen Save button to prevent text clipping 2026-04-04 22:42:35 -05:00
pax
1e7b6ab193 Switch to Fusion style when custom.qss is loaded
System Qt themes (Breeze etc.) conflict with custom QSS, causing
broken button rendering. Fusion style gives QSS full control.
2026-04-04 22:41:27 -05:00
pax
392d026296 Update Linux screenshot with tag categories 2026-04-04 22:36:53 -05:00
pax
4553ea8981 Add Windows 11 screenshots to README 2026-04-04 22:35:13 -05:00
pax
27368b1ebc Update Windows screenshots with tag categories visible 2026-04-04 22:27:32 -05:00
pax
a838cf23e8 Only show search history from dropdown arrow, not on click 2026-04-04 22:05:00 -05:00
pax
50d22932fa Decode HTML entities in Gelbooru tags
Fixes ' showing instead of apostrophes in tag names.
2026-04-04 21:52:20 -05:00
pax
708d177801 Fix grid nav: up/down in last row, preview no longer steals focus
- Up/Down in grid's last incomplete row moves to last post instead
  of triggering page turn
- Preview panel set to NoFocus so clicking it doesn't steal
  keyboard focus from the grid
2026-04-04 21:48:31 -05:00
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
70d9f12460 Add Privacy section to README 2026-04-04 21:07:02 -05:00
pax
0fb41b833a Link VP9 Video Extensions in README 2026-04-04 20:57:55 -05:00
pax
10ef710c1a Remove +/- zoom keybinds from README (non-functional) 2026-04-04 20:52:04 -05:00
pax
bde1465af4 Rewrite README to reflect all v0.1.0-v0.1.3 features 2026-04-04 20:50:30 -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
f06888e11d v0.1.3 v0.1.3 2026-04-04 20:42:40 -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