fix(ui): pointer cursor + tooltips on nav; indicate wallet-less masternodes - #917
Conversation
…rnodes Task 1 — nav items now read as clickable. The text label beneath each left-rail icon was inert (no pointer, no click); it is now a clickable widget, and both it and the fallback (no-texture) branches get the pointing-hand cursor. egui 0.35's Button sets no cursor by default (visuals.interact_cursor is None), so the fix uses the existing per-widget clickable_tooltip convention rather than a global override. Task 3 — every nav destination carries a one-line hover tooltip; the new wallet indicator explains a node's keys aren't controlled by any loaded wallet. A coverage test guards that no nav entry ships without a tooltip. Task 2 — a masternode/evonode is loaded from raw owner/voting/payout keys and controlled by no wallet on this device, yet its page's wallet pill showed an arbitrary loaded wallet as if it owned the node. The wallet segment is now a muted, read-only "Not in a wallet" indicator, resolved through a testable model decision function (model/wallet_association.rs) threaded through PageNavSpec. Tests: model unit tests for the association decision (owned / unmatched / none), a nav-tooltip coverage test, a kittest asserting a nav-label hover sets PointingHand, and a kittest asserting the masternode wallet segment renders the indicator instead of a wallet name. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
Warning Review limit reached
Next review available in: 59 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (12)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
|
🕓 Ready for review — 35 ahead in queue (commit 063b3b7) |
Brings in: shutdown fix (dashpay#905), duplicate-DPNS-name error message (dashpay#915), startup banner clearing (dashpay#916), nav pointer cursor + tooltips and wallet-less masternode indication (dashpay#917), onboarding disconnected- banner suppression (dashpay#907), masternode dialog/nav/passphrase fixes (dashpay#913), DAPI auto-refresh during pre-1.0 migration (dashpay#908), "Add Receiving Address" wiring + its test hardening (dashpay#914, dashpay#920), and a CI timeout bump (dashpay#912). dashpay#906 (shielded re-enable) was already pulled in individually last session, so its squashed commit merged as a no-op. Conflicts (6 files) were rebrand-naming overlaps (dash_evo_tool:: vs orchardpay:: imports) plus one real merge in left_panel.rs, where OrchardPay's green-icon tint had to combine with upstream's new nav tooltip. Also fixed 5 files upstream's auto-merged (non-conflicting) additions left un-rebranded: a stray DASH_EVO_DATA_DIR_LOCK/env-var name in a new app.rs test, and dash_evo_tool:: references in three kittest test files. Added tooltip strings for OrchardPay's own nav entries (OrchardPay, DashPay) so the new every_nav_entry_has_a_tooltip test covers them — upstream's version only knows its own nav items. Fixed the new nav_label_hover_shows_pointer_cursor kittest test: OrchardPay's nav rail carries two more always-visible entries than upstream's, pushing "Settings" below the scrollable list's default-size visible viewport; scroll it into view first, matching what a real user would do. Verified: cargo check (both feature modes), cargo clippy --all-features --all-targets -- -D warnings, cargo fmt --all, cargo test --all-features --workspace (2066 lib + 257 kittest + doc tests, 0 failed), all clean. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Why this PR exists
What was done
Buttonsets no hover cursor by default in this app (no globalinteract_cursoroverride configured). Applied the existingResponseExt::clickable_tooltipconvention (cursor + tooltip) consistently across all nav rows, including the previously-inert text label beside the icon and the no-texture fallback branches.WalletAssociation::{InWallet,NotInWallet}(model/wallet_association.rs) — a pure, testable decision function — and a muted "Not in a wallet" pill (distinct styling from a real wallet name) with an explanatory tooltip, replacing the previous silent fallback towallets.first().Testing
cargo fmt --allclean.Breaking changes
None.
Checklist
Attribution
🤖 Co-authored by Claudius the Magnificent AI Agent