This website requires JavaScript.
ec238f3aa4
gui/main_window: replace popout internal access with public methods
pax
2026-04-08 20:33:12 -05:00
69d25b325e
popout/window: apply effects from StateMachine, remove duplicate emits
pax
2026-04-08 20:25:24 -05:00
609066cf87
VideoPlayer: use absolute+exact for slider seek (fix drag-back race)
pax
2026-04-08 20:09:49 -05:00
35d80c32f2
popout/window: route adapter logger to stderr for terminal capture
pax
2026-04-08 20:01:16 -05:00
45e6042ebb
popout/window: wire eventFilter to StateMachine.dispatch (parallel)
pax
2026-04-08 19:50:40 -05:00
095942c524
popout/hyprland: extract _hyprctl_* helpers with re-export shims
pax
2026-04-08 19:44:00 -05:00
06f8f3d752
popout/effects: split effect descriptors into sibling module
pax
2026-04-08 19:41:57 -05:00
3ade3a71c1
popout/state: implement illegal transition handler (env-gated)
pax
2026-04-08 19:40:05 -05:00
4fb17151b1
popout/state: implement DisplayingImage + Closing — all 62 tests pass
pax
2026-04-08 19:37:31 -05:00
527cb3489b
popout/state: implement mute/volume/loop persistence
pax
2026-04-08 19:36:35 -05:00
a03d0e9dc8
popout/state: implement persistent viewport + drift events
pax
2026-04-08 19:35:43 -05:00
d75076c14b
popout/state: implement Fullscreen flag + F11 round-trip
pax
2026-04-08 19:34:52 -05:00
664d4e9cda
popout/state: implement SeekingVideo + slider pin
pax
2026-04-08 19:34:08 -05:00
a9ce01e6c1
popout/state: implement Navigating + AwaitingContent + double-load fix
pax
2026-04-08 19:33:17 -05:00
7fdc67c613
popout/state: implement PlayingVideo + LoadingVideo + EOF race fix
pax
2026-04-08 19:32:04 -05:00
f2f7d64759
popout/state: test scaffolding (62 tests, 27 pass at skeleton stage)
pax
2026-04-08 19:27:23 -05:00
39816144fe
popout/state: skeleton (6 states, 17 events, 14 effects, no transitions)
pax
2026-04-08 19:22:06 -05:00
9cba7d5583
VideoPlayer: add playback_restart Signal for state machine adapter
pax
2026-04-08 19:17:03 -05:00
bf14466382
Add Phase A test suite for core/ primitives
pax
2026-04-08 18:50:00 -05:00
80001e64fe
Gitignore: exclude docs/ (refactor inventory + plan + notes anchor)
pax
2026-04-08 16:59:04 -05:00
0a6818260e
VideoPlayer: preserve mute state across lazy mpv creation
pax
2026-04-08 16:55:16 -05:00
44a20ac057
Search: instrument _do_search and _on_reached_bottom with per-filter drop counts
pax
2026-04-08 16:32:32 -05:00
553e31075d
Privacy screen: resume video on un-hide, popout uses in-place overlay
pax
2026-04-08 16:30:37 -05:00
92c1824720
Remove O keybind for Open in Default App
pax
2026-04-08 16:21:57 -05:00
b571c9a486
F11 round-trip: preserve image zoom/pan + popout window position
pax
2026-04-08 16:19:35 -05:00
c4061b0d20
VideoPlayer: pin seek slider to user target during seek race window
pax
2026-04-08 16:14:45 -05:00
9455ff0f03
Batch download: incremental saved-dot updates + browse-only gating
pax
2026-04-08 16:10:26 -05:00
dbc530bb3c
Infinite scroll: clamp backfill batch to page_size
pax
2026-04-08 16:05:11 -05:00
db774fc33e
Browse multi-select: split library + bookmark actions, conditional visibility
pax
2026-04-08 15:59:46 -05:00
c4efdb76f8
Drop refactor re-export shims, update imports to canonical locations
pax
2026-04-08 15:08:40 -05:00
af1715708b
Move run + style helpers from app.py to app_runtime.py (no behavior change)
pax
2026-04-08 15:05:50 -05:00
da36c4a8f2
Move BooruApp from app.py to main_window.py (no behavior change)
pax
2026-04-08 14:42:16 -05:00
eded7790af
Move InfoPanel from app.py to info_panel.py (no behavior change)
pax
2026-04-08 14:39:08 -05:00
9d99ecfcb5
Move AsyncSignals from app.py to async_signals.py (no behavior change)
pax
2026-04-08 14:36:57 -05:00
702fd5ca7b
Move LogHandler from app.py to log_handler.py (no behavior change)
pax
2026-04-08 14:35:58 -05:00
591c7c3118
Move SearchState from app.py to search_state.py (no behavior change)
pax
2026-04-08 14:32:46 -05:00
4c166ac725
Move ImagePreview from preview.py to preview_pane.py (no behavior change)
pax
2026-04-08 14:29:55 -05:00
8637202110
Move FullscreenPreview from preview.py to popout/window.py (no behavior change)
pax
2026-04-08 14:25:38 -05:00
fa2d31243c
Move _ClickSeekSlider + VideoPlayer from preview.py to media/video_player.py (no behavior change)
pax
2026-04-08 14:07:17 -05:00
aacae06406
Move _MpvGLWidget + _MpvOpenGLSurface from preview.py to media/mpv_gl.py (no behavior change)
pax
2026-04-08 13:58:17 -05:00
2865be4826
Move ImageViewer from preview.py to media/image_viewer.py (no behavior change)
pax
2026-04-08 13:52:36 -05:00
18a86358e2
Move Viewport + _DRIFT_TOLERANCE from preview.py to popout/viewport.py (no behavior change)
pax
2026-04-08 13:49:47 -05:00
cd7b8a3cca
Move VIDEO_EXTENSIONS + _is_video from preview.py to media/constants.py (no behavior change)
pax
2026-04-08 13:46:27 -05:00
31d02d3c7b
Popout/grid: stop calling _on_post_activated twice per keyboard nav
pax
2026-04-08 02:34:09 -05:00
fda3b10beb
Popout: video load perf wins + race-defense layers
pax
2026-04-08 02:33:12 -05:00
7d195558f6
Popout: persistent viewport — fix small per-nav drift, gate moveEvent/resizeEvent to non-Hyprland
v0.2.2
pax
2026-04-08 00:28:39 -05:00
ba5a47f8af
Score and page spinboxes 50px → 40px to recover top-bar horizontal space
pax
2026-04-07 23:31:20 -05:00
987d987512
Popout polish: thumbnail download bar when preview hidden, no overlay reshow on nav
pax
2026-04-07 23:03:09 -05:00
7b61d36718
Popout polish + Discord audio fix
pax
2026-04-07 22:43:49 -05:00
5a44593a6a
Popout: viewport-based fit math, fix portrait>landscape ratchet
pax
2026-04-07 21:37:25 -05:00
baa910ac81
Popout: fix first-fit aspect lock race, fill images to window, tighten combo/button padding across all themes
pax
2026-04-07 20:48:09 -05:00
b89baaae34
Bump version to 0.2.2
pax
2026-04-07 20:00:43 -05:00
250b144806
Decouple bookmark folders from library folders, add move-aware save + submenu pickers everywhere
pax
2026-04-07 19:50:39 -05:00
3f2c8aefe3
README: positioning rewrite, Why section, split Bookmarks/Library, theming + backup notes
pax
2026-04-07 18:58:35 -05:00
bad3e897a1
Drop Size: WxH line from InfoPanel — bookmarks/library never had width/height plumbed and just showed 0x0
pax
2026-04-07 17:14:27 -05:00
eb58d76bc0
Route async work through one persistent loop, lock shared httpx + DB writes
pax
2026-04-07 17:08:55 -05:00
54ccc40477
Defensive hardening across core/* and popout overlay fix
pax
2026-04-07 16:54:40 -05:00
7d02aa8588
Drop parenthetical hints from search placeholder text — live search and -negative tags can be inferred
v0.2.1
pax
2026-04-07 15:46:35 -05:00
c322b3d2b0
Bump version to 0.2.1
pax
2026-04-07 15:44:26 -05:00
d501ccf69a
Match native Qt+Fusion sizing across themed widgets (~23px uniform toolbar row), drop score +/- buttons, force score/page spinbox height to match
pax
2026-04-07 15:42:36 -05:00
81ce926c88
Live search in bookmarks/library (debounced) + 3-state library count label with QSS-targetable libraryCountState property
pax
2026-04-07 15:26:00 -05:00
2dfeb4e46c
Bundle themes as -rounded/-square variants, add ThumbnailWidget selection color qproperties, document new vars in themes/README.md
pax
2026-04-07 15:19:38 -05:00
6d68652e61
Bookmarks/library/preview toolbars: compact button padding, 4px splitter pad, uniform 30px row height; library drops unreachable set_missing call
pax
2026-04-07 15:19:24 -05:00
3824d382c3
Square thumbnail selection border, Qt-targetable selection colors, indicator row swap, drop dead missing-indicator code
pax
2026-04-07 15:19:16 -05:00
0eab860088
Persist info panel visibility and right splitter sizes across sessions
pax
2026-04-07 14:41:28 -05:00
6c1a98a827
QSS @palette/${} preprocessor + theme overhaul: themable popout overlays, slider square, mpv letterbox via QPalette, embedded controls under media, compact toolbar buttons
pax
2026-04-07 14:41:00 -05:00
1712fc5836
Side-by-side +/- spinbox buttons + auto-derived dialog min height so cache fields can't clip
pax
2026-04-07 14:40:22 -05:00
dded54c435
Selection border on thumbnails uses pen-aware QRectF + rounded corners (smooth, even, no off-by-one)
pax
2026-04-07 14:40:16 -05:00
507641596e
Rewrite bundled themes with comprehensive Fusion-style QSS covering all widget types and states
pax
2026-04-07 13:15:37 -05:00
463f77d8bb
Make info panel tag colors QSS-targetable, delete dead theme.py + green palette constants
pax
2026-04-07 13:15:31 -05:00
72150fc98b
Add BOORU_VIEWER_NO_HYPR_RULES + BOORU_VIEWER_NO_POPOUT_ASPECT_LOCK env vars for ricers with their own windowrules
pax
2026-04-07 12:27:22 -05:00
33293dfbae
Wrap video Next loop to start of bookmarks/library list at end of media
v0.2.0
pax
2026-04-07 11:41:26 -05:00
6d3d27d9d5
Persist main window state — splitter sizes, geometry, floating, maximized; flush on close
pax
2026-04-07 11:40:19 -05:00
389e455ac0
Fix Open in Browser/Default App on bookmarks and library tabs (route per active tab, drop random-cache fallback)
pax
2026-04-07 11:37:24 -05:00
74f948a3e8
Speed up page loads — pre-fetch bookmarks/cache as sets, off-load PIL conversion to a worker
pax
2026-04-07 11:36:23 -05:00
2b9bf22249
Refresh popout BL Tag menu when navigating between bookmarked posts
pax
2026-04-07 11:13:46 -05:00
8ef40dc0fe
Restore popout windowed position on F11 exit (defer fit, disable Hyprland anim, dedupe video-params)
pax
2026-04-07 11:13:43 -05:00
a6bb08e6c1
Ignore *.dll (Windows build artifacts)
pax
2026-04-07 08:51:05 -05:00
56cb5ce1df
Scroll tilt navigates one cell/post in grid, preview, and popout
pax
2026-04-07 08:50:13 -05:00
92b7a16ab2
Restore popout position via hyprctl on first fit (Wayland ignores Qt setGeometry for child windows)
pax
2026-04-06 21:36:40 -05:00
2f3161f974
Save popout position from hyprctl on close (Wayland can't report position to Qt)
pax
2026-04-06 19:51:35 -05:00
7004f38668
Popout max height 90% of screen
pax
2026-04-06 19:25:04 -05:00
37082a55c1
Consolidate popout sizing into single _fit_to_content function
pax
2026-04-06 19:23:42 -05:00
f2a85bb634
Scale up landscape content if window too narrow (min 250px height)
pax
2026-04-06 19:17:40 -05:00
803b5f5b24
Remove landscape minimum, respect user's saved window width with 85% height cap
pax
2026-04-06 19:15:17 -05:00
4cf094f517
Revert user-resize tracking, keep simple min/max constraints
pax
2026-04-06 19:14:08 -05:00
c0a189192e
Popout respects user resize per session, resets when stretched to minimum
pax
2026-04-06 19:12:34 -05:00
1de6f02ed0
Bump landscape popout minimum to 45% of screen
pax
2026-04-06 19:03:06 -05:00
0a1fbb7906
Landscape popout minimum width 35% of screen
pax
2026-04-06 19:02:07 -05:00
aaf33dd7c7
Limit popout height to 85% of screen for portrait content
pax
2026-04-06 19:00:22 -05:00
924e065e65
Set cached_path on bookmark thumbnails for drag and copy
pax
2026-04-06 15:20:50 -05:00
0e6e7090ff
Unset keep_aspect_ratio before resize to allow aspect ratio changes
pax
2026-04-06 15:15:10 -05:00
f295e51d59
Clamp popout to both screen width and height on aspect change
pax
2026-04-06 15:07:43 -05:00
09dbf5e586
Update Linux screenshot for 0.2.0
pax
2026-04-06 14:46:59 -05:00
5e91e7ebb9
Fix popout overlay zone detection: map cursor to window coordinates
pax
2026-04-06 14:16:23 -05:00
c6c4df1e77
Tighten popout overlay trigger zones to 40px
pax
2026-04-06 14:14:51 -05:00
e01aa86063
Popout overlay: toolbar shows near top edge, controls near bottom
pax
2026-04-06 14:13:40 -05:00
84726f9677
Clamp popout height to screen bounds on landscape-to-portrait transition
pax
2026-04-06 14:00:32 -05:00
f58e7e3649
Fix Windows mpv DLL name: libmpv-2.dll
pax
2026-04-06 13:56:46 -05:00
2fbf2f6472
0.2.0: mpv backend, popout viewer, preview toolbar, API retry, SearchState refactor
pax
2026-04-06 13:43:46 -05:00