Skip to content

Redesign RPC console and debug log pages - #877

Draft
pseudoramdom wants to merge 14 commits into
bitcoin-core:qt6from
pseudoramdom:debug-log-redesign
Draft

Redesign RPC console and debug log pages#877
pseudoramdom wants to merge 14 commits into
bitcoin-core:qt6from
pseudoramdom:debug-log-redesign

Conversation

@pseudoramdom

Copy link
Copy Markdown
Contributor

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


Redesign the RPC console and debug log using the shared Settings page layout and theme

Key Changes

  • Rebuild both pages with SettingsPage and standard page headings.
  • Add a reusable search bar with clear and result-navigation controls.
  • Redesign the debug log as a structured table showing type, time, and message.
  • Add debug-log filtering for all messages or warnings and errors.
  • Add load-more, scroll-to-bottom, and open-debug-log actions.
  • In RPC Console, replace search filter with highlighting search matches and provide previous/next navigation.

Screenshots

Screenshot 2026-08-26 at 1 26 20 PM Screenshot 2026-08-26 at 1 27 12 PM Screenshot 2026-08-26 at 2 00 16 PM

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.
Replace the legacy debug log view with SettingsDebugLogView using the
shared settings components and theme.

Present log entries as type, time, and message columns. Add search,
warning/error filtering, incremental loading, scroll-to-bottom controls,
and an option to open debug.log.

Update the debug log model to parse severity and HH:MM:SS timestamps,
and extend the unit, QML, and functional test coverage.
Replace the legacy RPC console with SettingsRpcConsoleView using the shared
settings layout and theme.
Add a dismissible security warning, reusable search bar with result
navigation, font controls, context-menu command completion, and themed
console and command-input surfaces. Highlight search matches without
filtering output and scroll to their exact position.
@pseudoramdom
pseudoramdom marked this pull request as draft August 26, 2026 21:08
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