Skip to content

fix: detected binding loops on implicitWidth - #879

Closed
uqlidi wants to merge 1 commit into
bitcoin-core:qt6from
uqlidi:fix/implicitWidth-binding-loop
Closed

fix: detected binding loops on implicitWidth#879
uqlidi wants to merge 1 commit into
bitcoin-core:qt6from
uqlidi:fix/implicitWidth-binding-loop

Conversation

@uqlidi

@uqlidi uqlidi commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

fix #866

@uqlidi uqlidi mentioned this pull request Aug 28, 2026
@uqlidi

uqlidi commented Aug 28, 2026

Copy link
Copy Markdown
Contributor Author

moved to #882

@uqlidi uqlidi closed this Aug 28, 2026
hebasto added a commit that referenced this pull request Aug 30, 2026
bf1d64a fix: use root instead of the nullable parent (Uqlidi)
d51e03b fix: undefined `banListModel` on click unban (Uqlidi)
a7b0845 fix: detected binding loops on `implicitWidth` (Uqlidi)
f469edd fix: make `CoreCheckBox` import `org.bitcoincore.qt` (Uqlidi)

Pull request description:

  This bundles four small QML runtime fixes that were opened separately, since each one is a couple of lines plus a test and they are all fixing errors/warnings printed at runtime rather than behaviour changes. Each fix keeps its own commit and its own regression test.

  Taken from:

  - #878: `ImportWalletOptions` computed `heroWidth` from `parent.width`, but the page's parent can be null (it's not always in a `StackView`), so the binding evaluated on `null` and printed a TypeError. Use `root.width` instead. Fix #868
  - #879: `InformationPage` and `SettingsWallet` sized their content `ColumnLayout` from `parent.width` inside a `Flickable` whose `contentWidth` derived from that same content, producing `implicitWidth` binding loops on Qt 6.4. Both pages now set an explicit `contentWidth` from a fixed maximum-width property and the layout reads that property. Fix #866
  - #880: Clicking *Unban* invalidated the delegate mid-handler: `handleBannedListChanged` emitted `bannedListChanged` synchronously, which reset the model and destroyed the delegate before the handler finished, leaving `banListModel` undefined. The emit is now queued (`Qt::QueuedConnection`) and the click handler moved to a function on the page. Fix #867
  - #881: `CoreCheckBox` uses `AppMode` without importing `org.bitcoincore.qt`, so the type was unresolved at runtime. Added the missing import. Fix #865

ACKs for top commit:
  johnny9:
    ACK bf1d64a

Tree-SHA512: 373f946647685b8b0e9f336975100df2ef8fdf53f0690eea97cf307a03e0d2703d5729e16b2fa8cfc448cb021f4ce1b7acc4a7cc85269f0f157308091943197a
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.

Node settings pages report implicitWidth binding loops on Qt 6.4

1 participant