Skip to content

Redesign library UI: single toolbar, popover filters, faster cards - #44

Merged
kaihuang1425 merged 1 commit into
mainfrom
work/ui-overhaul
Jun 30, 2026
Merged

Redesign library UI: single toolbar, popover filters, faster cards#44
kaihuang1425 merged 1 commit into
mainfrom
work/ui-overhaul

Conversation

@kaihuang1425

@kaihuang1425 kaihuang1425 commented Jun 30, 2026

Copy link
Copy Markdown
Owner

Summary

A full visual overhaul of the library UI focused on decluttering the control surface, reducing button bulk, and fixing scroll lag.

  • Single toolbar — the old two stacked control rows (~18 controls) collapse into one row: Scan · Updates · [segmented quick-filters] … Filter · View · [icon toggles].
  • Filter popover hosts the status/confidence/type filters and the tag filter, with an active-count badge on the button. View popover hosts sort, layout (Grid/List), and browse mode (Scroll/Pages). The underlying widgets are re-hosted (not recreated), so all existing handlers are unchanged.
  • Performance — removed the per-card QGraphicsDropShadowEffect that thrashed with the entrance-fade and forced off-screen rendering on every scroll. Depth now comes from border/background tokens.
  • Slimmer buttons — tightened all button tiers; added toolbar_btn_style, segmented_btn_style, icon_btn_style, and popover_frame_style helpers.
  • Details panel form to visual: plain combos replaced with semantic status chips, an interactive star rating, and removable tag chips (new widgets/controls.py). The show_game/apply_edits_to_game persistence contract is preserved.
  • Scrollbar accent-tints on hover.

Verification

  • pytest — 282 tests pass.
  • Import smoke test passes; MainWindow constructs cleanly.
  • Headless renders confirm the single toolbar, both popovers, and the new details panel compose correctly in dark and light themes; details panel round-trips (status/rating/tags load to edit to apply).

Note: text/typography should be eyeballed on real Windows (python src/main.py) — offscreen renders verify layout/colour but not glyph rendering.

- Collapse the two control rows into one toolbar; move status/confidence/type filters into a Filter popover with an active-count badge, and sort/layout/browse mode into a View popover
- Remove the per-card drop-shadow effect in favor of border-based depth to fix scroll lag
- Slim the button tiers and add toolbar/segmented/icon/popover style helpers
- Rebuild the details panel with status chips, an interactive star rating, and tag chips (new widgets/controls.py)
- Accent-tint the scrollbar on hover

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review

Review suggestions for this pull request.

Reviewed commit: ca9c7e19b1

Comment on lines +120 to +121
value = (i + 1) * 2
btn.clicked.connect(lambda _=False, v=value: self._on_click(v))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve the full 1–10 rating scale

When users edit a rating from the redesigned details panel, each star is wired to (i + 1) * 2, so this control can only save 2/4/6/8/10. The Game.rating model and the previous details combo supported every value from 1 through 10, and the card context menu still exposes odd ratings, so users can no longer set or adjust odd ratings from the main details editor. Consider supporting half-star/alternate clicks or another picker path for all 1–10 values.

Useful? React with 👍 / 👎.

@kaihuang1425
kaihuang1425 merged commit 192388a into main Jun 30, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant