Skip to content

Staging 2: Onboarding, settings and block clock - #887

Open
johnny9 wants to merge 7 commits into
bitcoin-core:stagingfrom
johnny9:draft/qt6-chunk-2
Open

johnny9 wants to merge 7 commits into
bitcoin-core:stagingfrom
johnny9:draft/qt6-chunk-2

Conversation

@johnny9

@johnny9 johnny9 commented Sep 9, 2026

Copy link
Copy Markdown
Collaborator

This is the second staging PR for the QML-based Bitcoin Core GUI. It builds on #871.

This draft targets current staging, which includes #871. Its diff contains the Chunk 2 changes and the macOS QML deployment follow-up. Review the changes here.

This PR focuses on onboarding, settings and the block clock, without wallet support. Users can configure a node, follow synchronization, change settings and shut down safely.

Main decisions

  • Use one shell and router for pages, the global menu and native menu/tray actions.
  • Load translations before onboarding.
  • Preserve Core settings precedence, active-profile handling, backups and rollback.
  • Keep lifecycle, synchronization, connection state and runtime dialogs in focused models.
  • Include the window behavior and display settings needed by these flows.
  • Leave RPC, debug log, peers/bans, traffic and mempool tools for Chunk 3. Add money-font and explorer-link preferences with their wallet consumers later.

Test coverage

C++ unit, QML and in-process integration tests cover the feature regressions. A separate process test checks ordinary startup errors. One short Python bridge journey covers the running block clock, settings navigation and clean shutdown; the inherited TestShell check covers fresh onboarding and process cleanup.

Local checks pass on Linux with Qt 6.8.4, with wallets compiled out, for both bitcoin-qt and IPC bitcoin-gui. Native desktop interactions and other Qt/platform versions remain separate checks.

@johnny9 johnny9 changed the title Staging 2: Node runner and diagnostics Staging 2: Onboarding, settings and block clock Sep 9, 2026

@hebasto hebasto left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this code

if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
enable_language(OBJCXX)
set(CMAKE_OBJCXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
set(CMAKE_OBJCXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
set(CMAKE_OBJCXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
set(CMAKE_OBJCXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
string(APPEND CMAKE_OBJCXX_COMPILE_OBJECT " ${APPEND_CPPFLAGS} ${APPEND_CXXFLAGS}")
endif()
should be copied to qml/CMakeLists.txt

@johnny9
johnny9 force-pushed the draft/qt6-chunk-2 branch 8 times, most recently from 76a46c5 to 7f859cf Compare September 11, 2026 16:14
@hebasto

hebasto commented Sep 12, 2026

Copy link
Copy Markdown
Member

Please rebase on top of the updated staging branch.

johnny9 and others added 7 commits September 14, 2026 11:39
Deploy shared Qt Cocoa and QML plugins with the selected Qt tool, retain
library search paths for split-prefix installations, reject deployment
errors, and sign and verify the complete app bundle.

Refresh deployment outputs when the executable changes.
Co-authored-by: johnny9 <985648+johnny9@users.noreply.github.com>
Co-authored-by: pseudoramdom <hello@pseudoramdom.mailer.me>
Co-authored-by: João Barbosa <joao.paulo.barbosa@gmail.com>
Co-authored-by: shaavan <svangani239@gmail.com>
Co-authored-by: johnny9 <985648+johnny9@users.noreply.github.com>
Co-authored-by: epicleafies <lukelpollard@gmail.com>
Co-authored-by: pablomartin4btc <pablomartin4btc@gmail.com>
Co-authored-by: Jarol Rodriguez <jarolrod@tutanota.com>
Co-authored-by: epicleafies <lukelpollard@gmail.com>
Co-authored-by: shaavan <svangani239@gmail.com>
Enable Objective-C++ in the QML build scope and link AppKit for the
macOS dock handler.

Co-authored-by: Jarol Rodriguez <jarolrod@tutanota.com>
Co-authored-by: johnny9 <985648+johnny9@users.noreply.github.com>
Co-authored-by: johnny9 <johnny9dev@pm.me>
Co-authored-by: Jarol Rodriguez <jarolrod@tutanota.com>
Co-authored-by: epicleafies <lukelpollard@gmail.com>
@johnny9
johnny9 marked this pull request as ready for review September 14, 2026 16:13
@johnny9 johnny9 added the Stage label Sep 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants