Skip to content

Redesign addresses list and wallet settings pages - #874

Draft
pseudoramdom wants to merge 18 commits into
bitcoin-core:qt6from
pseudoramdom:addresses-redesign
Draft

Redesign addresses list and wallet settings pages#874
pseudoramdom wants to merge 18 commits into
bitcoin-core:qt6from
pseudoramdom:addresses-redesign

Conversation

@pseudoramdom

Copy link
Copy Markdown
Contributor

This PR is stacked on #872 and should be reviewed after it.

Changes

Videos

addresses.list.mp4
wallet.password.mp4
SignVerify.mp4

Introduce reusable SettingsPage, PageHeading, and FormSection controls.

These provide constrained scrollable page content, consistent heading
typography, and card-style sections with optional headers and footers.
They are not wired into existing settings screens yet.
Add generic form, list, link, value, and textfield rows for settings
screens.

The controls provide consistent typography, dividers, disclosure
indicators, disabled states, and composable leading, trailing, and body
content. They are not wired into settings pages just yet.
Add PopupPicker, a compact control that composes a DropdownButton,
ContextMenu, and ContextMenuPicker.

The control displays the current selection and manages opening, selecting,
and closing the menu. It is intended for composition as the trailing
control of a FormRow rather than as a settings row itself.

Extend ContextMenuPicker with optional leading icons and icon-aware
layout for richer selection choices.
Update context-menu surfaces and hover states to use the revised neutral
palette.

Improve segmented-picker contrast in light mode and standardize
disclosure indicators to the compact settings-row size.
Rework the design-system page to use SettingsPage, FormSection, and the
generic row controls.

Add representative examples for switches, pickers, navigation, values,
links, inline text fields, and supporting content. Cover the shared form
components and their composition with QML tests.
Add a settings sidebar and a container that lazily creates and preserves
a navigation stack for each visited section.
Add a second Settings tab alongside the existing settings interface so
the redesign can be reviewed while pages are migrated incrementally.

Lazily create the redesigned settings view on first use and retain it
across top-level tab switches to preserve its navigation state.
Populate the sidebar-based settings view with redesigned Wallet,
External signer, Display, Window behavior, Storage, Connection, Network
traffic, Mempool information, and About pages. Integrate Debug log into
the same constrained page container.

Compose the pages from the shared settings controls while preserving
existing models, validation, actions, and nested navigation flows. Wire
wallet-related actions back to the desktop wallet view.

Suspend Network Traffic and Debug Log activity while their cached pages
are hidden. Add QML coverage for section navigation, stack preservation,
page layout, picker mappings, proxy draft handling, lifecycle behavior,
and top-level destination creation.
Add a prominent Settings heading and organize sidebar destinations under
Wallet, General, Network, and Advanced group labels.
Delete unused legacy settings pages and tests, update navigation and
resource wiring, and migrate functional coverage to Settings v2.
Move the redesigned settings pages into the main settings directory and
remove the settingsv2 prefix from QML object names and test selectors.
Rebuild the set and update password flows using the shared settings page,
heading, and form-section layout.

Add reusable LabeledTextField and PasswordTextField controls for vertically
labeled input, secure text entry, and password visibility toggling. Preserve
the existing wallet operations.
Use SettingsPage, segmented controls, and form sections for the sign and
verify message flows.

Introduce reusable labeled field and multiline text view primitives, and
compose the Bitcoin address input with the same embedded field styling.
Add an embedded OutlineButton style with a borderless neutral background.
Keep disabled ContinueButtons at 40% opacity without hover or press
feedback, and add a subtle press animation to both button types.
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