Skip to content

fix(qt): restore transparent background for all scroll areas - #7632

Open
PastaPastaPasta wants to merge 1 commit into
dashpay:developfrom
PastaPastaPasta:fix/qt-scrollarea-transparent-background
Open

fix(qt): restore transparent background for all scroll areas#7632
PastaPastaPasta wants to merge 1 commit into
dashpay:developfrom
PastaPastaPasta:fix/qt-scrollarea-transparent-background

Conversation

@PastaPastaPasta

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

cebae5a (#7618) narrowed the global .QScrollArea transparency rule in general.css to only the masternode wizard's QScrollArea#mnWizardScroll. As a result every other scroll area in the GUI lost its transparent background and zero border, and now paints Qt's default palette panel with a visible frame — most noticeably the scroll area hosting the send entries on the Send and CoinJoin screens.

What was done?

Restored the global rule

.QScrollArea {
    background-color: #00000000;
    border: 0px;
}

and kept only the wizard-specific child rules that #7618 actually needed (QScrollArea#mnWizardScroll > QWidget and ... > QWidget > QWidget). The wizard's scroll areas are plain QScrollArea instances, so the global rule already covers the scroll area itself; the retained child rules keep the wizard's inner page widgets transparent, so the masternode wizard is unaffected by this fix. No new colors are introduced, so the update-css-files.py color inventories are unchanged.

How Has This Been Tested?

Captured before/after screenshots on macOS (dark theme). Both runs use the same prebuilt dash-qt binary (built from 297c15b, the tip of #7618) on fresh, isolated regtest datadirs with an identically created wallet, identical window size, and CSS loaded from disk via -custom-css-dir — "before" uses src/qt/res/css at develop head 7be28f8, "after" uses this PR's head. The only variable between the two runs is the CSS directory.

Before (develop @ 7be28f8) After (this PR)
CoinJoin tab before-coinjoin after-coinjoin
Focused crop (identical crop rect) before-crop after-crop

In the "before" images the entries area sits in a distinct bordered panel (the default QScrollArea frame plus palette fill that appear once the rule is gone); in the "after" images it blends into the page background again. The Send tab shows the same regression and fix (before / after). How dark the default panel fill renders depends on the platform palette — on the reporting machine it was considerably darker than in these captures — but the spurious frame and fill are gone either way once the rule is restored.

Breaking Changes

None. GUI-only CSS change; the masternode wizard styling introduced in #7618 is preserved.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation
  • I have assigned this pull request to a milestone (for repository code-owners and collaborators only)

cebae5a narrowed the global .QScrollArea rule to only the masternode wizard's mnWizardScroll, so every other scroll area (e.g. the send entries area on the Send and CoinJoin screens) lost its transparent background and painted the default darker gray panel. Restore the global rule and keep the wizard-specific child-widget rules it actually needed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@thepastaclaw

thepastaclaw commented Aug 21, 2026

Copy link
Copy Markdown

✅ Final review complete — no blockers (commit 6c2f717)

@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 3c5c833e-e0b0-4988-bc8c-a30e226bb4e8

📥 Commits

Reviewing files that changed from the base of the PR and between 7be28f8 and 6c2f717.

📒 Files selected for processing (1)
  • src/qt/res/css/general.css

Included review availability: Your plan provides up to 4 included reviews per hour; 3 remain after this review.


Walkthrough

The stylesheet now applies transparent backgrounds and no borders to .QScrollArea widgets. The previous rule targeted only QScrollArea#mnWizardScroll.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Merge Risk: ⚪ Minimal · up to 6c2f7

This localized GUI styling change restores transparent, borderless scroll areas while preserving the masternode wizard styling; no actionable merge-blocking risk remains after normal checks and review.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes restoring transparent backgrounds for all Qt scroll areas.
Description check ✅ Passed The description directly explains the regression, CSS fix, preserved wizard styling, testing, and absence of breaking changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@thepastaclaw thepastaclaw 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.

Final validation — Codex/Sol only (Phase 2 disabled)

At exact head 6c2f717, the focused stylesheet diff restores the pre-regression global .QScrollArea transparency and border rule while preserving the masternode wizard’s child-widget rules; no correctness, compatibility, history, or scope issues were found. The visual validation described in the PR is appropriate for this CSS-only fix, and the change is ready for approval.
Source: reviewer backend model gpt-5.6-sol (Codex general and commit-history lanes); final verifier backend model gpt-5.6-sol; openclaw-agent/cliproxy/gpt-5.6-sol is orchestration-only and is not counted as independent reviewer evidence.

Validated zero-blocker Codex/Sol precheck evidence was promoted to final because Phase 2 (Sonnet/Opus) is temporarily disabled. This is Codex/Sol-only final validation, not Codex + Sonnet/Opus coverage.

Review provenance

  • Codex reviewers: gpt-5.6-sol — general (completed), gpt-5.6-sol — dash-core-commit-history (completed)
  • Verifier: gpt-5.6-sol — verifier
  • Sonnet/Opus: not run (Phase 2 disabled — temporary Codex/Sol-only final)
  • Secondary pass: disabled (temporary_phase2_sonnet_disable)

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.

2 participants