From a3dac13371c79caac791f370c98b1e0507786b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=8D=C3=B1igo=20Ar=C3=A9jula=20A=C3=ADsa?= Date: Fri, 27 Mar 2026 20:54:21 +0100 Subject: [PATCH] gui: truncate header sync percentage to avoid showing 100% when headers are stale --- src/qt/modaloverlay.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/qt/modaloverlay.cpp b/src/qt/modaloverlay.cpp index d3d389ed280..28848fa03af 100644 --- a/src/qt/modaloverlay.cpp +++ b/src/qt/modaloverlay.cpp @@ -163,12 +163,14 @@ void ModalOverlay::tipUpdate(int count, const QDateTime& blockDate, double nVeri void ModalOverlay::UpdateHeaderSyncLabel() { int est_headers_left = bestHeaderDate.secsTo(QDateTime::currentDateTime()) / Params().GetConsensus().nPowTargetSpacing; - ui->numberOfBlocksLeft->setText(tr("Unknown. Syncing Headers (%1, %2%)…").arg(bestHeaderHeight).arg(QString::number(100.0 / (bestHeaderHeight + est_headers_left) * bestHeaderHeight, 'f', 1))); + const int pct = bestHeaderHeight ? static_cast(1000LL * bestHeaderHeight / (bestHeaderHeight + est_headers_left)) : 0; + ui->numberOfBlocksLeft->setText(tr("Unknown. Syncing Headers (%1, %2%)…").arg(bestHeaderHeight).arg(QStringLiteral("%1.%2").arg(pct / 10).arg(pct % 10))); } void ModalOverlay::UpdateHeaderPresyncLabel(int height, const QDateTime& blockDate) { int est_headers_left = blockDate.secsTo(QDateTime::currentDateTime()) / Params().GetConsensus().nPowTargetSpacing; - ui->numberOfBlocksLeft->setText(tr("Unknown. Pre-syncing Headers (%1, %2%)…").arg(height).arg(QString::number(100.0 / (height + est_headers_left) * height, 'f', 1))); + const int pct = height ? static_cast(1000LL * height / (height + est_headers_left)) : 0; + ui->numberOfBlocksLeft->setText(tr("Unknown. Pre-syncing Headers (%1, %2%)…").arg(height).arg(QStringLiteral("%1.%2").arg(pct / 10).arg(pct % 10))); } void ModalOverlay::toggleVisibility()