Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1239 commits
Select commit Hold shift + click to select a range
aa7a7b3
test: check send fee preview parity
johnny9 Apr 2, 2026
69c0746
test: exercise fee preset dropdown
johnny9 Apr 2, 2026
2652ec8
qml: add custom fee rate mode
johnny9 Apr 2, 2026
11f81ca
qml: remove font.features, requires qt6.6+
johnny9 Apr 2, 2026
91e11ed
qml: add include-fee-in-amount send toggle
johnny9 Apr 3, 2026
32cb386
test: add qml coverage for include-fee send flow
johnny9 Apr 3, 2026
fadb36a
test: add wallet model unit tests for include-fee flow
johnny9 Apr 3, 2026
de75c5d
qml: Add missing controls import to MonospaceOutputView
epicleafies May 4, 2026
962b7a3
qml: improve send fee feedback
johnny9 May 6, 2026
2841733
qml: Introduce navigation policy to opt out of back button and apply …
pseudoramdom May 6, 2026
712093e
Merge bitcoin-core/gui-qml#532: Debug log page and tests
hebasto May 7, 2026
141f747
Merge bitcoin-core/gui-qml#687: qml: Remove back button after wallet …
hebasto May 7, 2026
5079ef3
Merge bitcoin-core/gui-qml#546: Fee selection
hebasto May 8, 2026
2df9da1
qml: Implement Replace-by-fee
pseudoramdom Apr 24, 2026
2f0e390
test: Add bump transaction model unit tests & qml tests
pseudoramdom Apr 24, 2026
cbee3c0
test: Add functional tests for RBF flow
pseudoramdom Apr 25, 2026
552aa99
qml: Dim conflicted transactions in activity list
pseudoramdom Apr 26, 2026
51bf51b
Merge bitcoin-core/gui-qml#554: Implement Replace-By-Fee speed-up sup…
hebasto May 9, 2026
f7caca3
qml: add external signer wallet flow
johnny9 Apr 7, 2026
57983ee
test: add external wallet end-to-end coverage
johnny9 Apr 11, 2026
ffaa03f
wallet: create external signer wallets asynchronously
johnny9 Apr 11, 2026
8cfe854
qml: bundle app fonts and use Roboto Mono for addresses
johnny9 Apr 12, 2026
53072ce
test: add list item support to QML bridge
johnny9 Apr 13, 2026
551cccb
qml, test: refine send review pages and coverage
johnny9 Apr 6, 2026
e266997
qml: add external signer send review flow
johnny9 Apr 13, 2026
c24e6fb
test: add self-registering Qt unit test registry
johnny9 Apr 13, 2026
ddcabf0
qml: refresh wallet balance on transaction changes
johnny9 Apr 13, 2026
a9aa9a9
test: add QML external signer functional coverage
johnny9 Apr 13, 2026
83a4174
test: add QML test for external signer review actions
johnny9 Apr 13, 2026
2344481
qml: simplify send review transaction data
johnny9 May 8, 2026
9179d77
qml: reset external signer review approvals
johnny9 May 8, 2026
ffd6db6
qml: finalize external wallet creation screen
johnny9 May 8, 2026
90b761f
test: expand external signer review coverage
johnny9 May 8, 2026
a076e47
qml: adjust wallet settings layout
johnny9 May 9, 2026
d273a83
Merge bitcoin-core/gui-qml#547: External signer wallet create and send
hebasto May 10, 2026
46d4a0b
qml: Add textset based on design system
pseudoramdom May 4, 2026
242b099
qml: Introduce buildinfo singleton to store build related properties.
pseudoramdom May 4, 2026
7631d83
qml: Add a page to showcase design system - typography & colors
pseudoramdom May 4, 2026
d21cf71
qml: Update "Inter" to "BitcoinCoreSans"
pseudoramdom May 10, 2026
261c196
Merge bitcoin-core/gui-qml#564: qml: Add typography design tokens to …
hebasto May 11, 2026
c0d81f2
qt: add language and display unit options to OptionsQmlModel
epicleafies Mar 16, 2026
bebc87b
build: add QML translation compilation
epicleafies Mar 16, 2026
90ab070
qt: add display unit support to transaction and activity list
epicleafies Mar 16, 2026
8595f04
qt: wrap UI strings with qsTr() for i18n
epicleafies Mar 16, 2026
8056c56
qt: install translators on startup and support -lang flag
epicleafies Mar 16, 2026
562bf0d
qt: add Display Unit and Language settings pages
epicleafies Mar 16, 2026
f137dc4
qt: show "s" as satoshi unit symbol in wallet amount fields
epicleafies Mar 16, 2026
246df96
qt: remove duplicate includes in bitcoin.cpp
epicleafies Mar 16, 2026
0408226
qt: skip qml_* locale tags when building available language list
epicleafies Mar 16, 2026
88fe198
qt: remove ButtonGroup from SettingsDisplayUnit
epicleafies Mar 16, 2026
e73a604
test: add restart-persistence test for display settings
epicleafies Mar 16, 2026
4fec43e
qt: pluralize sat/sats unit label based on amount
epicleafies Mar 31, 2026
7c6187c
qt: simplify unit label in amount input fields
epicleafies Mar 31, 2026
1252044
qt: show sat/sats balance with pluralization in wallet badge
epicleafies Mar 31, 2026
ecc7ad5
qt: format send review amounts with display unit
epicleafies Mar 31, 2026
9ff5ab0
qt: remove qsTr() from debug.log filename
epicleafies May 12, 2026
3451cee
build: regenerate translation source files
epicleafies May 12, 2026
cb60afb
qt: Replace raw exception with translated error in signer status
epicleafies May 12, 2026
fc227f1
Merge bitcoin-core/gui-qml#536: Lang units settings
achow101 May 13, 2026
fcdab1f
Add wallet migration GUI flow and test
johnny9 Mar 14, 2026
46783db
qml: ignore stale wallet migration navigation
johnny9 Mar 30, 2026
f911dab
ci: run gui functional wallet tests with legacy bitcoind wallets
johnny9 Mar 31, 2026
07ad9db
qml: address wallet migration review feedback
johnny9 May 8, 2026
55697f1
qml, test: add wallet migration checkpoints
johnny9 May 11, 2026
7776731
test: isolate QSettings in QML harnesses
johnny9 May 14, 2026
bb5f5f5
qml: detect legacy wallets before loading
johnny9 May 14, 2026
1122607
refactor: use qml states for wallet migration
johnny9 May 14, 2026
667fd6b
Merge bitcoin-core/gui-qml#539: Add wallet migration flow
achow101 May 14, 2026
9e6e761
qml, wallet: gate actions on initialization and show create errors
johnny9 Apr 15, 2026
f710b74
qml, wallet: require passwords for locked send flows
johnny9 Apr 15, 2026
5fed058
qml, wallet: support password-protected migration
johnny9 Apr 15, 2026
c002133
qml, test: add password wallet functional coverage
johnny9 Apr 15, 2026
500489a
qml, test: cover encrypted wallet migration
johnny9 May 11, 2026
bcbb32c
test: update wallet QML selectors
johnny9 May 13, 2026
813956e
ci: run all QML functional tests
johnny9 May 13, 2026
15037de
test: make send receive fee popup close deterministic
johnny9 May 13, 2026
2bd80ca
test: accept plural sats in send review
johnny9 May 14, 2026
3b88e02
qml: request migration passphrase before migratewallet
johnny9 May 14, 2026
bc27b2f
qml: relock after failed passphrase-based prepare paths
johnny9 May 14, 2026
c9600c0
qml: clear submitted wallet passphrases
johnny9 May 15, 2026
4e91137
test: cover wallet passphrase clearing
johnny9 May 15, 2026
0b0eb9a
Merge bitcoin-core/gui-qml#548: Apply password during onboarding and …
achow101 May 15, 2026
cce920d
qml, wallet: add wallet dropdown close action
johnny9 Apr 15, 2026
e436b8a
qml: sort wallet list alphabetically
johnny9 May 14, 2026
4745575
wallet: add wallet settings flows
johnny9 Apr 17, 2026
1a68a3e
test: extend qml test bridge inspection
johnny9 Apr 17, 2026
5608e5d
qml: add inline wallet name editing in wallet settings
johnny9 Apr 17, 2026
2e8ab4c
qml: refactor wallet settings rows onto shared controls
johnny9 Apr 18, 2026
32bdd19
qml: close wallet settings subpages when no wallet is selected
johnny9 Apr 18, 2026
e328b6a
qml: add wallet settings functional tests
johnny9 Apr 18, 2026
d7d9c22
qml: add mempool information settings page
johnny9 Apr 20, 2026
3d977c6
test: dump gui debug log on bridge failure
johnny9 Apr 21, 2026
1dec91e
qml: add button text styles
johnny9 May 16, 2026
c6d5784
qml: align editable key value rows
johnny9 May 16, 2026
a1ed5bb
qml: reset wallet password page state
johnny9 May 16, 2026
b565e67
qml: capitalize mempool information labels
johnny9 May 16, 2026
e2a2be2
qml: align mempool information row values
johnny9 May 16, 2026
3d3aad8
qml: hide password settings for signer wallets
johnny9 May 18, 2026
c75f1f0
qml: poll mempool info off the GUI thread
johnny9 May 18, 2026
03d92fd
test: cover NodeModel mempool refresh signals
johnny9 May 18, 2026
aab195f
Merge bitcoin-core/gui-qml#551: Wallet close, settings, and mempool i…
hebasto May 18, 2026
ed442f9
qml, test: simplify testbridge click cascade
pseudoramdom May 19, 2026
3e1b08b
qml: Add SegmentedPicker component
pseudoramdom May 19, 2026
f4f2060
qml: Implement address list in wallet settings
pseudoramdom May 19, 2026
0bfddee
gui: Add Sign/Verify Message page in wallet settings
pseudoramdom May 19, 2026
2f974d1
test: Fix functional testbridge click cascade
pseudoramdom May 19, 2026
c030851
qml: Focus current password field first when updating wallet password
pseudoramdom May 19, 2026
c638e0d
test: Suppress warning for uninitialized time when constructing Walle…
pseudoramdom May 19, 2026
fa11450
Merge bitcoin-core/gui-qml#561: Implement Addresses list and Sign/Ver…
hebasto May 21, 2026
51be566
refactor: Extract receive request entry types to dedicated header
epicleafies Apr 23, 2026
ccc95e4
qt, model: Add ReceiveRequestHistoryModel with unit tests
epicleafies Apr 23, 2026
401046e
qt, model: Extend PaymentRequest with QR payload and metadata
epicleafies Apr 23, 2026
d36ee39
qt, model: Add pending receive request flag to Transaction
epicleafies Apr 23, 2026
5c8f7da
qt, model: Integrate receive request history and pending tracking
epicleafies Apr 23, 2026
759b264
qt, gui: Add receive request detail page and redesign request form
epicleafies Apr 23, 2026
2d8e618
test: Add receive request functional and QML tests
epicleafies Apr 23, 2026
6bf844f
qt, gui: Fulfill pending requests in-place
epicleafies Apr 28, 2026
cf10a37
qt, gui: Add lock-on-generate flow with editing state and QR popup
epicleafies May 4, 2026
98362cb
qt, models: Add use-as-template, improve lifecycle, and fix i18n
epicleafies May 4, 2026
e02d7c8
test: Fix textEdited signal and improve receive request tests
epicleafies May 4, 2026
178d0f0
qml: Hide wallet change outputs in activity list
pseudoramdom Apr 26, 2026
d19c833
qml: remove undefined FileDialog shortcuts bindings
johnny9 Apr 26, 2026
a6501e5
qml: add activity filter proxy model
johnny9 Apr 26, 2026
c0b3faa
qml: add activity search filters and export
johnny9 Apr 26, 2026
4697814
test: cover activity filtering and export
johnny9 Apr 26, 2026
5912f30
qml: link matching payment requests from transaction details
johnny9 May 16, 2026
708abf6
qml: show receive request qr from action button
johnny9 May 17, 2026
975816d
qml: restore receive request title state
johnny9 May 17, 2026
6f3bf97
qml: replace payment request share action with edit
johnny9 May 17, 2026
a9d7c23
qml: remove redundant payment request heading
johnny9 May 17, 2026
d541898
qml: align receive title row with send
johnny9 May 17, 2026
e74ef92
qml: match receive request action buttons
johnny9 May 17, 2026
158e5b8
qml: shorten activity row addresses
johnny9 May 17, 2026
f71c88b
qml: align activity layout spacing
johnny9 May 17, 2026
98c7084
qml: share address detail row
johnny9 May 17, 2026
46e0913
qml: tighten activity request rows
johnny9 May 17, 2026
5cf6d35
qml: compact activity speed-up banner
johnny9 May 17, 2026
4152cdd
test: cover receive request address type selection
johnny9 May 17, 2026
0892f72
test: cover receive option preference persistence
johnny9 May 17, 2026
35a8108
qml: export activity csv in display unit
johnny9 May 17, 2026
a3031ad
test: cover activity export display units
johnny9 May 17, 2026
8f97c9a
qml: wire saved receive request actions
johnny9 May 17, 2026
4b9c7ca
test: cover saved receive request actions
johnny9 May 17, 2026
947851c
qml: fix sent activity amount sign
johnny9 May 17, 2026
9d14887
qml, test: cover payment request edit navigation
johnny9 May 17, 2026
bbd46ef
qml: Split toast banner and popup components
johnny9 May 21, 2026
d63101c
qml: add qr-code and share svg
johnny9 May 21, 2026
e92cdbc
qml: centralize amount display with unit
johnny9 May 22, 2026
57ce405
qml: tighten receive address type picker
johnny9 May 22, 2026
f9132ec
qml: clean up activity and toast feedback
johnny9 May 22, 2026
750e6d3
test: cover qml icon resource lookup
johnny9 May 22, 2026
b9ab8a7
qml: use IconButton for activity search toggle
johnny9 May 22, 2026
89ec52e
qml: share activity transaction visuals
johnny9 May 22, 2026
46eb54e
qml: align activity search text
johnny9 May 22, 2026
6c3a0e9
qml: open address history from receive options
johnny9 May 22, 2026
fc26659
Merge bitcoin-core/gui-qml#708: Activity filtering and Receive request
hebasto May 24, 2026
ceb989b
qml, blockclock: add mini navigation indicator
johnny9 Apr 26, 2026
b215344
qml, models: queue node model updates by value
johnny9 Apr 26, 2026
f8071f5
test: add BlockClock component coverage
johnny9 Apr 26, 2026
1ffdf6e
qml, test: honor disablewallet node-only mode
johnny9 May 14, 2026
0785979
test: add disablewallet screenshot checkpoints
johnny9 May 14, 2026
4c0709f
test: assert disablewallet root context state
johnny9 May 15, 2026
b482ce6
qml: expose directional peer counts
johnny9 May 20, 2026
1b32d32
qml: hide mempool settings in blocksonly mode
johnny9 May 20, 2026
7e7db65
qml: surface peer action failures
johnny9 May 20, 2026
7154667
qml: surface node runtime feedback
johnny9 May 26, 2026
e6c2911
test: cover node runtime feedback
johnny9 May 26, 2026
4d2a505
activity: use block sync state for empty activity
johnny9 May 23, 2026
3c26006
ci: run all qml functional tests
johnny9 May 23, 2026
caf94cb
test: restore language setting after display-settings functional test
epicleafies May 18, 2026
fc6fa69
test: restore display unit setting after display-settings functional …
epicleafies May 18, 2026
afb6ef7
test: isolate QSettings with temp settings dir
johnny9 May 23, 2026
1689ffe
qml: use Basic Quick Controls style
johnny9 May 27, 2026
66eda2c
qml: size icon buttons explicitly
johnny9 May 27, 2026
d43d458
qml, blockclock: cache synced gradient updates
johnny9 May 28, 2026
8ace642
qml: add reusable alert popup actions
johnny9 May 28, 2026
7867652
test: fix disablewallet settings assertion label
johnny9 May 28, 2026
39e3dff
Merge bitcoin-core/gui-qml#724: Node status (mini blockclock) and run…
hebasto May 31, 2026
a8b20ff
qt: fix WalletBadge layout and text elision
epicleafies May 4, 2026
f63279e
qt: add wallet type selector and watch-only wallet creation
epicleafies May 4, 2026
a008257
test: add functional tests for watch-only wallet creation
epicleafies May 4, 2026
970a7cc
test: add unit tests for NodeModel and WalletQmlController
epicleafies May 4, 2026
a4bf36a
test: add QML test mock infrastructure for walletController
epicleafies May 4, 2026
53c533e
test: add QML tests for wallet creation wizard components
epicleafies May 4, 2026
9641e0b
qt: add success screen for watch-only wallet creation
epicleafies May 4, 2026
14711ac
qml: track per-wallet load state and surface in wallet picker
pseudoramdom May 22, 2026
e69b70c
qml, test: wire wallet load error state to show popup
pseudoramdom May 26, 2026
0a5625f
qml, wallet: move wallet creation off the UI thread
pseudoramdom May 22, 2026
306f4d0
qml: validate wallet name availability before creation
pseudoramdom May 5, 2026
e886d05
qml, test: show inline password mismatch error in wallet creation flow
pseudoramdom May 23, 2026
811a5cc
qml: long wallet names will truncate and will show tooltip with full …
pseudoramdom May 23, 2026
b22f00c
qml: Fix unresponsive visible icon in textfield
pseudoramdom May 23, 2026
af46ed2
qml, test: Show confirmation popup before closing wallet
pseudoramdom May 26, 2026
b83a3f3
qml: update wallet intro icons and button text
pseudoramdom May 26, 2026
d5fa274
test: update functional tests to go through wallet type selector step
pseudoramdom May 26, 2026
bb40f8f
test: add functional tests to workflow
pseudoramdom May 28, 2026
2601dcc
qml: Highlighting improvements to wallet picker
pseudoramdom May 28, 2026
89f9083
qml, test: trim wallet names before validating and persisting on disk
pseudoramdom May 28, 2026
6747ffe
qml: move external signer entry to wallet type selector
pseudoramdom May 28, 2026
cf3418d
qml, wallet: Defer watch-only wallet adoption until setup completes
pseudoramdom May 29, 2026
061338b
qml, test: Open wallet type selector directly for Add wallet flow
pseudoramdom May 29, 2026
26cedf5
qml, test: Refactor watch-only wallet setup off the UI thread
pseudoramdom May 30, 2026
a1baad6
qml: Replace custom wallet close and error popups with AlertPopup
pseudoramdom May 31, 2026
2b51449
test: test: seed wallet alias in isolated settings
pseudoramdom May 31, 2026
cf0d7f4
Merge bitcoin-core/gui-qml#727: Watch-only wallet, wallet loading status
hebasto Jun 2, 2026
488a4d9
qml: validate send recipients before review
johnny9 May 29, 2026
637acb6
qml: avoid address generation for fee previews
johnny9 May 29, 2026
3d1ece9
qml: clear coin control selection after send
johnny9 May 29, 2026
0674f65
qml: prompt for wallet password when bumping fees
johnny9 May 29, 2026
aab3438
qml: shut down cleanly after interrupted init
johnny9 May 29, 2026
b209f03
qml: unsubscribe NodeModel core signals on destruction
johnny9 May 29, 2026
63cfbbb
qml: keep receive request history bitcoin-qt compatible
johnny9 May 29, 2026
e83fb71
qml: fix NavButton content padding
johnny9 May 29, 2026
c2d1f16
qml: focus current wallet password field
johnny9 May 29, 2026
f50833d
qml: share bitcoin amount input behavior
johnny9 May 29, 2026
21f25d1
qml: use fee estimation early to block invalid send
johnny9 May 29, 2026
08dbecc
qml: wire create backup view file action
johnny9 May 29, 2026
fe2392e
qml: disconnect all node model core signals
johnny9 Jun 2, 2026
a6074d1
qml: use node dust relay fee for send validation
johnny9 Jun 2, 2026
2a4a49b
test: cover startup wallet shutdown interrupts
johnny9 Jun 2, 2026
ad00ef8
qml: make selected coin inputs exclusive
johnny9 Jun 2, 2026
a7d70fd
qml: respect selected inputs in send balance checks
johnny9 Jun 3, 2026
7b31655
ci: run all qml functional tests
johnny9 Jun 3, 2026
7b75bda
test: strengthen qml send flow assertions
johnny9 Jun 3, 2026
cd9d756
qml: invalidate stale send fee previews
johnny9 Jun 3, 2026
934a8fc
qml: hide initial RBF unlock error text
johnny9 Jun 3, 2026
589929f
qt: add Clipboard.dataChanged signal
epicleafies Mar 28, 2026
bb7e4a5
qt: add BitcoinUri parser model
epicleafies Mar 28, 2026
a5b03e9
qt: expose bitcoin URI parsing on WalletQmlModel
epicleafies Mar 28, 2026
2ed578b
qt: fix grammar in BitcoinUri error messages
epicleafies Mar 28, 2026
0ddadcb
qt: extract URI parsing into BitcoinUriModel singleton
epicleafies Apr 1, 2026
3881f31
qt: fix invalid-address error message in BitcoinUri parser
epicleafies Apr 1, 2026
d413ba3
qt: add "Open payment request" to SendOptionsPopup
epicleafies Mar 28, 2026
7270dc5
qt: add URI import to Send page
epicleafies Mar 28, 2026
94c923b
qt: fix clipboard URI banner state management on Send page
epicleafies Apr 1, 2026
efa29a1
qt: add accessibility names to Send page icon-only buttons
epicleafies Apr 1, 2026
6308296
qt: hide clipboard URI banner when payment request is applied from it
epicleafies Apr 2, 2026
b148b3d
qt: clear URI import status when recipient or address changes
epicleafies Apr 9, 2026
86c99ce
qt: disable URI import popup Apply button when input is empty
epicleafies Apr 9, 2026
126c577
qt: elide long URI message text after 3 lines
epicleafies Apr 9, 2026
652344c
test: add set_clipboard_text bridge command and extend QmlDriver
epicleafies Mar 28, 2026
78676cd
test: add end-to-end functional test for URI import
epicleafies Mar 28, 2026
d5b9ca0
qml: fix URI import QML integration issues
johnny9 Jun 3, 2026
da7e002
test: handle wallet type selector in qt compat flow
johnny9 Jun 4, 2026
4314023
qml: refresh fee estimates after URI import
johnny9 Jun 5, 2026
f9658a1
Merge bitcoin-core/gui-qml#736: A bunch of fixes for Preview release …
hebasto Jun 5, 2026
3c14dd1
cmake: Embed QML resources
johnny9 Jun 14, 2026
a64844e
cmake: Build QML sources from src/qml
johnny9 Jun 14, 2026
3b7cfd1
cmake: Wire QML tests from src/qml
johnny9 Jun 14, 2026
78b8336
cmake: Embed QML translations
johnny9 Jun 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ if(WITH_USDT)
endif()

if(BUILD_GUI)
set(qt_components Core Gui Widgets LinguistTools)
set(qt_components Core Gui Widgets Qml Quick QuickControls2 LinguistTools)
if(ENABLE_WALLET)
list(APPEND qt_components Network)
endif()
Expand Down
6 changes: 3 additions & 3 deletions cmake/module/Maintenance.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ function(add_windows_deploy_target)
OUTPUT ${PROJECT_BINARY_DIR}/bitcoin-win64-setup.exe
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/release
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-qt> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-qt>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-qml> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-qml>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoind> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoind>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-cli> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-cli>
COMMAND ${CMAKE_STRIP} $<TARGET_FILE:bitcoin-tx> -o ${PROJECT_BINARY_DIR}/release/$<TARGET_FILE_NAME:bitcoin-tx>
Expand Down Expand Up @@ -65,8 +65,8 @@ function(add_macos_deploy_target)

add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/${macos_app}/Contents/MacOS/Bitcoin-Qt
COMMAND ${CMAKE_COMMAND} --install ${PROJECT_BINARY_DIR} --config $<CONFIG> --component bitcoin-qt --prefix ${macos_app}/Contents/MacOS --strip
COMMAND ${CMAKE_COMMAND} -E rename ${macos_app}/Contents/MacOS/bin/$<TARGET_FILE_NAME:bitcoin-qt> ${macos_app}/Contents/MacOS/Bitcoin-Qt
COMMAND ${CMAKE_COMMAND} --install ${PROJECT_BINARY_DIR} --config $<CONFIG> --component bitcoin-qml --prefix ${macos_app}/Contents/MacOS --strip
COMMAND ${CMAKE_COMMAND} -E rename ${macos_app}/Contents/MacOS/bin/$<TARGET_FILE_NAME:bitcoin-qml> ${macos_app}/Contents/MacOS/Bitcoin-Qt
COMMAND ${CMAKE_COMMAND} -E rm -rf ${macos_app}/Contents/MacOS/bin
COMMAND ${CMAKE_COMMAND} -E rm -rf ${macos_app}/Contents/MacOS/share
VERBATIM
Expand Down
2 changes: 2 additions & 0 deletions contrib/guix/symbol-check.py
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@
'Metal', # 3D graphics
'QuartzCore', # animation
'Security', # access control and authentication
'SystemConfiguration', # network configuration
'UniformTypeIdentifiers', # collection of types that map to MIME and file types
}

Expand Down Expand Up @@ -158,6 +159,7 @@
'NETAPI32.dll', # network management
'ole32.dll', # component object model
'OLEAUT32.dll', # OLE Automation API
'Secur32.dll', # SSPI (Security Support Provider Interface)
'SHLWAPI.dll', # light weight shell API
'USER32.dll', # user interface
'USERENV.dll', # user management
Expand Down
22 changes: 19 additions & 3 deletions depends/packages/native_qt.mk
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,21 @@ $(package)_patches += rcc_hardcode_timestamp.patch
$(package)_patches += qttools_skip_dependencies.patch
$(package)_patches += fix-macos26-qyield.patch

$(package)_qtshadertools_file_name=$(qt_details_qtshadertools_file_name)
$(package)_qtshadertools_sha256_hash=$(qt_details_qtshadertools_sha256_hash)

$(package)_qtdeclarative_file_name=$(qt_details_qtdeclarative_file_name)
$(package)_qtdeclarative_sha256_hash=$(qt_details_qtdeclarative_sha256_hash)

$(package)_qttranslations_file_name=$(qt_details_qttranslations_file_name)
$(package)_qttranslations_sha256_hash=$(qt_details_qttranslations_sha256_hash)

$(package)_qttools_file_name=$(qt_details_qttools_file_name)
$(package)_qttools_sha256_hash=$(qt_details_qttools_sha256_hash)

$(package)_extra_sources := $($(package)_qttranslations_file_name)
$(package)_extra_sources := $($(package)_qtshadertools_file_name)
$(package)_extra_sources += $($(package)_qtdeclarative_file_name)
$(package)_extra_sources += $($(package)_qttranslations_file_name)
$(package)_extra_sources += $($(package)_qttools_file_name)

$(package)_top_download_path=$(qt_details_top_download_path)
Expand Down Expand Up @@ -51,14 +59,13 @@ $(package)_config_opts += -no-feature-concurrent
$(package)_config_opts += -no-feature-network
$(package)_config_opts += -no-feature-printsupport
$(package)_config_opts += -no-feature-sql
$(package)_config_opts += -no-feature-testlib
$(package)_config_opts += -no-feature-xml
$(package)_config_opts += -no-gui
$(package)_config_opts += -no-widgets

$(package)_config_opts += -no-glib
$(package)_config_opts += -no-icu
$(package)_config_opts += -no-libudev
$(package)_config_opts += -no-opengl
$(package)_config_opts += -no-openssl
$(package)_config_opts += -no-zstd
$(package)_config_opts += -qt-pcre
Expand All @@ -67,6 +74,7 @@ $(package)_config_opts += -no-feature-backtrace
$(package)_config_opts += -no-feature-permissions
$(package)_config_opts += -no-feature-process
$(package)_config_opts += -no-feature-settings
$(package)_config_opts += -no-feature-vulkan

# Core tools.
$(package)_config_opts += -no-feature-androiddeployqt
Expand Down Expand Up @@ -106,6 +114,8 @@ endef

define $(package)_fetch_cmds
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtdeclarative_file_name),$($(package)_qtdeclarative_file_name),$($(package)_qtdeclarative_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttranslations_file_name),$($(package)_qttranslations_file_name),$($(package)_qttranslations_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttools_file_name),$($(package)_qttools_file_name),$($(package)_qttools_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_top_download_path),$($(package)_top_cmakelists_download_file),$($(package)_top_cmakelists_file_name)-$($(package)_version),$($(package)_top_cmakelists_sha256_hash)) && \
Expand All @@ -116,6 +126,8 @@ endef
define $(package)_extract_cmds
mkdir -p $($(package)_extract_dir) && \
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qtshadertools_sha256_hash) $($(package)_source_dir)/$($(package)_qtshadertools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qtdeclarative_sha256_hash) $($(package)_source_dir)/$($(package)_qtdeclarative_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qttranslations_sha256_hash) $($(package)_source_dir)/$($(package)_qttranslations_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qttools_sha256_hash) $($(package)_source_dir)/$($(package)_qttools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_top_cmakelists_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmakelists_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
Expand All @@ -124,6 +136,10 @@ define $(package)_extract_cmds
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
mkdir -p qtbase && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source) -C qtbase && \
mkdir -p qtshadertools && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools && \
mkdir -p qtdeclarative && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtdeclarative_file_name) -C qtdeclarative && \
mkdir -p qttranslations && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttranslations_file_name) -C qttranslations && \
mkdir -p qttools && \
Expand Down
27 changes: 26 additions & 1 deletion depends/packages/qt.mk
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,21 @@ $(package)_patches += fix-gcc16-sfinae-qanystringview.patch
$(package)_patches += fix-macos26-qyield.patch
$(package)_patches += fix-qbytearray-include.patch

$(package)_qtshadertools_file_name=$(qt_details_qtshadertools_file_name)
$(package)_qtshadertools_sha256_hash=$(qt_details_qtshadertools_sha256_hash)

$(package)_qtdeclarative_file_name=$(qt_details_qtdeclarative_file_name)
$(package)_qtdeclarative_sha256_hash=$(qt_details_qtdeclarative_sha256_hash)

$(package)_qttranslations_file_name=$(qt_details_qttranslations_file_name)
$(package)_qttranslations_sha256_hash=$(qt_details_qttranslations_sha256_hash)

$(package)_qttools_file_name=$(qt_details_qttools_file_name)
$(package)_qttools_sha256_hash=$(qt_details_qttools_sha256_hash)

$(package)_extra_sources := $($(package)_qttranslations_file_name)
$(package)_extra_sources := $($(package)_qtshadertools_file_name)
$(package)_extra_sources += $($(package)_qtdeclarative_file_name)
$(package)_extra_sources += $($(package)_qttranslations_file_name)
$(package)_extra_sources += $($(package)_qttools_file_name)

$(package)_top_download_path=$(qt_details_top_download_path)
Expand Down Expand Up @@ -127,6 +135,9 @@ $(package)_config_opts += -no-feature-macdeployqt
$(package)_config_opts += -no-feature-qmake
$(package)_config_opts += -no-feature-windeployqt

# QML features.
$(package)_config_opts += -no-feature-qml-profiler

ifeq ($(host),$(build))
# Qt Tools module.
$(package)_config_opts += -feature-linguist
Expand Down Expand Up @@ -224,6 +235,8 @@ endef

define $(package)_fetch_cmds
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_download_file),$($(package)_file_name),$($(package)_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_file_name),$($(package)_qtshadertools_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qtdeclarative_file_name),$($(package)_qtdeclarative_file_name),$($(package)_qtdeclarative_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttranslations_file_name),$($(package)_qttranslations_file_name),$($(package)_qttranslations_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_download_path),$($(package)_qttools_file_name),$($(package)_qttools_file_name),$($(package)_qttools_sha256_hash)) && \
$(call fetch_file,$(package),$($(package)_top_download_path),$($(package)_top_cmakelists_download_file),$($(package)_top_cmakelists_file_name)-$($(package)_version),$($(package)_top_cmakelists_sha256_hash)) && \
Expand All @@ -235,6 +248,8 @@ ifeq ($(host),$(build))
define $(package)_extract_cmds
mkdir -p $($(package)_extract_dir) && \
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qtshadertools_sha256_hash) $($(package)_source_dir)/$($(package)_qtshadertools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qtdeclarative_sha256_hash) $($(package)_source_dir)/$($(package)_qtdeclarative_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qttranslations_sha256_hash) $($(package)_source_dir)/$($(package)_qttranslations_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qttools_sha256_hash) $($(package)_source_dir)/$($(package)_qttools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_top_cmakelists_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmakelists_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
Expand All @@ -243,6 +258,10 @@ define $(package)_extract_cmds
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
mkdir -p qtbase && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source) -C qtbase && \
mkdir -p qtshadertools && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools && \
mkdir -p qtdeclarative && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtdeclarative_file_name) -C qtdeclarative && \
mkdir -p qttranslations && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qttranslations_file_name) -C qttranslations && \
mkdir -p qttools && \
Expand All @@ -256,12 +275,18 @@ else
define $(package)_extract_cmds
mkdir -p $($(package)_extract_dir) && \
echo "$($(package)_sha256_hash) $($(package)_source)" > $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qtshadertools_sha256_hash) $($(package)_source_dir)/$($(package)_qtshadertools_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_qtdeclarative_sha256_hash) $($(package)_source_dir)/$($(package)_qtdeclarative_file_name)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_top_cmakelists_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmakelists_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_top_cmake_ecmoptionaladdsubdirectory_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmake_ecmoptionaladdsubdirectory_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
echo "$($(package)_top_cmake_qttoplevelhelpers_sha256_hash) $($(package)_source_dir)/$($(package)_top_cmake_qttoplevelhelpers_file_name)-$($(package)_version)" >> $($(package)_extract_dir)/.$($(package)_file_name).hash && \
$(build_SHA256SUM) -c $($(package)_extract_dir)/.$($(package)_file_name).hash && \
mkdir -p qtbase && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source) -C qtbase && \
mkdir -p qtshadertools && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtshadertools_file_name) -C qtshadertools && \
mkdir qtdeclarative && \
$(build_TAR) --no-same-owner --strip-components=1 -xf $($(package)_source_dir)/$($(package)_qtdeclarative_file_name) -C qtdeclarative && \
cp $($(package)_source_dir)/$($(package)_top_cmakelists_file_name)-$($(package)_version) ./$($(package)_top_cmakelists_file_name) && \
mkdir -p cmake && \
cp $($(package)_source_dir)/$($(package)_top_cmake_ecmoptionaladdsubdirectory_file_name)-$($(package)_version) cmake/$($(package)_top_cmake_ecmoptionaladdsubdirectory_file_name) && \
Expand Down
6 changes: 6 additions & 0 deletions depends/packages/qt_details.mk
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ qt_details_suffix := everywhere-src-$(qt_details_version).tar.xz
qt_details_qtbase_file_name := qtbase-$(qt_details_suffix)
qt_details_qtbase_sha256_hash := 56001b905601bb9023d399f3ba780d7fa940f3e4861e496a7c490331f49e0b80

qt_details_qtshadertools_file_name = qtshadertools-$(qt_details_suffix)
qt_details_qtshadertools_sha256_hash = f6ec88bf42deba84d8f6b5d0914636ceed4749ccb51d1945b2f79b322b7ecf47

qt_details_qtdeclarative_file_name = qtdeclarative-$(qt_details_suffix)
qt_details_qtdeclarative_sha256_hash = 1f03a2b8f5588b4face7da87926e9b2c1372b3a32157c52df07a75067a9db1af

qt_details_qttranslations_file_name := qttranslations-$(qt_details_suffix)
qt_details_qttranslations_sha256_hash := c3c61d79c3d8fe316a20b3617c64673ce5b5519b2e45535f49bee313152fa531

Expand Down
8 changes: 3 additions & 5 deletions depends/patches/qt/qtbase_skip_tools.patch
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,7 @@ Skip building/installing unneeded tools:
1. Wrapper CMake scripts.
2. CI support files.
3. tracepointgen and tracegen tools.
4. Qt Look Ahead LR Parser Generator (qlalr).
5. Qt Vulkan Header Generator (qvkgen).
4. Qt Vulkan Header Generator (qvkgen).


--- a/qtbase/cmake/QtBaseGlobalTargets.cmake
Expand Down Expand Up @@ -47,11 +46,10 @@ Skip building/installing unneeded tools:

--- a/qtbase/src/tools/CMakeLists.txt
+++ b/qtbase/src/tools/CMakeLists.txt
@@ -11,8 +11,6 @@ if (QT_FEATURE_dbus)
add_subdirectory(qdbuscpp2xml)
@@ -12,7 +12,6 @@ if (QT_FEATURE_dbus)
add_subdirectory(qdbusxml2cpp)
endif()
-add_subdirectory(qlalr)
add_subdirectory(qlalr)
-add_subdirectory(qvkgen)
if (QT_FEATURE_commandlineparser)
add_subdirectory(qtpaths)
Expand Down
10 changes: 10 additions & 0 deletions depends/patches/qt/static_fixes.patch
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,13 @@ index e8fb442dd43..e964138115c 100644
CODE
"// xkb.h is using a variable called 'explicit', which is a reserved keyword in C++
#define explicit dont_use_cxx_explicit
--- a/qtbase/src/plugins/platforms/xcb/CMakeLists.txt
+++ b/qtbase/src/plugins/platforms/xcb/CMakeLists.txt
@@ -65,6 +65,7 @@ qt_internal_add_module(XcbQpaPrivate
XCB::XFIXES
XCB::XKB
XKB::XKB
+ $<BUILD_INTERFACE:X11::Xau>
NO_UNITY_BUILD # X11 define clashes
)

1 change: 1 addition & 0 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,7 @@ endif()

if(BUILD_GUI)
add_subdirectory(qt)
add_subdirectory(qml)
endif()


Expand Down
8 changes: 4 additions & 4 deletions src/logging/timer.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,13 @@ class Timer


#define LOG_TIME_MICROS_WITH_CATEGORY(end_msg, log_category) \
BCLog::Timer<std::chrono::microseconds> UNIQUE_NAME(logging_timer)(__func__, end_msg, log_category)
BCLog::Timer<std::chrono::microseconds> BITCOIN_UNIQUE_NAME(logging_timer)(__func__, end_msg, log_category)
#define LOG_TIME_MILLIS_WITH_CATEGORY(end_msg, log_category) \
BCLog::Timer<std::chrono::milliseconds> UNIQUE_NAME(logging_timer)(__func__, end_msg, log_category)
BCLog::Timer<std::chrono::milliseconds> BITCOIN_UNIQUE_NAME(logging_timer)(__func__, end_msg, log_category)
#define LOG_TIME_MILLIS_WITH_CATEGORY_MSG_ONCE(end_msg, log_category) \
BCLog::Timer<std::chrono::milliseconds> UNIQUE_NAME(logging_timer)(__func__, end_msg, log_category, /* msg_on_completion=*/false)
BCLog::Timer<std::chrono::milliseconds> BITCOIN_UNIQUE_NAME(logging_timer)(__func__, end_msg, log_category, /* msg_on_completion=*/false)
#define LOG_TIME_SECONDS(end_msg) \
BCLog::Timer<std::chrono::seconds> UNIQUE_NAME(logging_timer)(__func__, end_msg)
BCLog::Timer<std::chrono::seconds> BITCOIN_UNIQUE_NAME(logging_timer)(__func__, end_msg)


#endif // BITCOIN_LOGGING_TIMER_H
1 change: 1 addition & 0 deletions src/qml/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
/moc_*.cpp
Loading
Loading