Commit Graph

  • 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