Three UI de-duplications (rendering changes; the test suite skips the GUI, so
these need a manual screenshot check of the Balance/Peers/Transactions tabs).
1. Classic balance layout — the DEFAULT layout — hand-rolled its own ~550-line
address-list + recent-tx renderers that had DIVERGED from the shared
RenderSharedAddressList/RenderSharedRecentTx used by the other 9 layouts.
Deleted the inline copies and called the shared renderers (as the minimal
layout already does), so the default layout now gains set-label +
add-to-portfolio context items, custom address icons, drag-to-reorder,
keyboard nav, copy-flash, and fully TR()'d strings. Hero row and Classic
sizing (tabs.balance.classic address-table-height=340) preserved; addrH is
computed before the call exactly as before. This is a deliberate
feature-parity behavior change for the default layout.
2. peers_tab info cards — extracted drawStatCell() (label + value/em-dash with
the shared offset math) and one drawCardDivider() replacing two duplicate
divider lambdas; plain cells drive off a per-card loop. Bespoke cells
(Blocks "(X left)", copy-on-click Best Block, TLS check-icon) kept inline.
3. transactions_tab — one drawSummaryCard() replaces the three near-identical
Received/Sent/Mined blocks (same glass panel, icon, hover outline,
click-to-filter). Byte-equivalent.
Full-node + Lite build clean (net -651 lines, no new warnings); ctest 1/1;
hygiene clean. NEEDS SCREENSHOT VERIFICATION.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>