Add MiniBlockClock to the Navigation Bar#558
Open
johnny9 wants to merge 3 commits into
Open
Conversation
MarnixCroes
approved these changes
May 6, 2026
Contributor
MarnixCroes
left a comment
There was a problem hiding this comment.
434faf0
tested, works as expected
- The pause does not seems perfectly centered?
- Is it on purpose that the mini block clock is not representing current "state" when selected? i.e. always "full
Screencast.from.2026-05-06.08-43-53.webm
Add a compact BlockClock representation for wallet navigation. The mini dial uses the shared BlockClockDial without time ticks or individual block segments, with immediate connecting animation, non-animated IBD/selected fills, and center/pause/error glyph states. Keep the selected state visible across dynamic states, including pause, by using the selected yellow for the paused mini indicator. Also allow NavigationTab to host custom content and use pointing-hand cursors consistently for navigation buttons.
NotifyBlockTip callbacks can arrive from node threads. The queued lambda previously captured the block tip and verification progress by reference, so IBD progress could read stale stack values and flicker to 0%. Capture block height, block time, and verification progress by value before queueing onto the Qt thread, and queue connection-count updates through the same path. Add a regression test that fires block-tip updates from a worker thread and verifies the delivered payloads.
BlockClock state depends on node and chain context objects while the dial itself is rendered by a QQuickPaintedItem. Add injected model refs and stable object names so QML tests and the automation bridge can drive the component deterministically. Cover the dial painter with sampled-pixel unit tests, BlockClock state/format/toggle behavior with QML mocks, and the stable no-peer regtest path with a functional CONNECTING/PAUSE smoke test. Keep IBD, synced, and error permutations in unit/QML coverage instead of making the functional test timing-sensitive.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds the mini version of the BlockClock dial. This mirrors the block clock states (Connecting, IBD, Blocks, Paused, and Error).
Additionally, fixed a bug with the lambda capture for the update handler that was causing the IBD % to flicker between the current % and 0%. (83b4455)