Skip to content

Commit

Permalink
Merge bitcoin-core/gui#248: Fix: For values of "Bytes transferred" an…
Browse files Browse the repository at this point in the history
…d "Bytes/s" with 1000-based prefix names use 1000-based divisor instead of 1024-based

d09ebc4  Fix wrong(1024) divisor for 1000-based prefixes (wodry)

Pull request description:

  v.0.21.0

  I saw in the GUI peer window in the "received" column `1007 KB`, and after increasing to >=1024 I guess, it switched to `1 MB`. I would have expected the display unit to change from KB to MB already at value >=1000.

  I looked into the code, and the values appear to be power-of-2 byte values, so the switching at >=1024 and not >=1000 seems correct.
  But the unit display is not precisely correct, binary prefixes should be used for power-of-2 byte values.

  To be correct, this PR changes ~~KB/MB/GB to KiB/MiB/GiB.~~ KB to kB and the divisor from 1024 to 1000.

ACKs for top commit:
  hebasto:
    ACK d09ebc4, tested on Linux Mint 20.1 (Qt 5.12.8) the both "Network Traffic" and "Peers" tabs of the "Node Window".
  jarolrod:
    ACK d09ebc4
  leonardojobim:
    Tested ACK bitcoin-core/gui@d09ebc4 on Ubuntu 20.04 Qt 5.12.8

Tree-SHA512: 8f830b08cc3fd36dc8a18f1192959fe55d1644938044bf31d770f7c3bf8475fba6da5019a2d2024d5b2c81a8dab112f360c555367814a14f4d05c89d130f25b0
  • Loading branch information
MarcoFalke committed Mar 23, 2021
2 parents 3c87dbe + d09ebc4 commit 837e59e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
12 changes: 6 additions & 6 deletions src/qt/guiutil.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -759,14 +759,14 @@ QString formatNiceTimeOffset(qint64 secs)

QString formatBytes(uint64_t bytes)
{
if(bytes < 1024)
if (bytes < 1'000)
return QObject::tr("%1 B").arg(bytes);
if(bytes < 1024 * 1024)
return QObject::tr("%1 KB").arg(bytes / 1024);
if(bytes < 1024 * 1024 * 1024)
return QObject::tr("%1 MB").arg(bytes / 1024 / 1024);
if (bytes < 1'000'000)
return QObject::tr("%1 kB").arg(bytes / 1'000);
if (bytes < 1'000'000'000)
return QObject::tr("%1 MB").arg(bytes / 1'000'000);

return QObject::tr("%1 GB").arg(bytes / 1024 / 1024 / 1024);
return QObject::tr("%1 GB").arg(bytes / 1'000'000'000);
}

qreal calculateIdealFontSize(int width, const QString& text, QFont font, qreal minPointSize, qreal font_size) {
Expand Down
10 changes: 5 additions & 5 deletions src/qt/trafficgraphwidget.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ void TrafficGraphWidget::paintEvent(QPaintEvent *)
int base = floor(log10(fMax));
float val = pow(10.0f, base);

const QString units = tr("KB/s");
const QString units = tr("kB/s");
const float yMarginText = 2.0;

// draw lines
Expand Down Expand Up @@ -128,10 +128,10 @@ void TrafficGraphWidget::updateRates()

quint64 bytesIn = clientModel->node().getTotalBytesRecv(),
bytesOut = clientModel->node().getTotalBytesSent();
float inRate = (bytesIn - nLastBytesIn) / 1024.0f * 1000 / timer->interval();
float outRate = (bytesOut - nLastBytesOut) / 1024.0f * 1000 / timer->interval();
vSamplesIn.push_front(inRate);
vSamplesOut.push_front(outRate);
float in_rate_kilobytes_per_sec = static_cast<float>(bytesIn - nLastBytesIn) / timer->interval();
float out_rate_kilobytes_per_sec = static_cast<float>(bytesOut - nLastBytesOut) / timer->interval();
vSamplesIn.push_front(in_rate_kilobytes_per_sec);
vSamplesOut.push_front(out_rate_kilobytes_per_sec);
nLastBytesIn = bytesIn;
nLastBytesOut = bytesOut;

Expand Down

0 comments on commit 837e59e

Please sign in to comment.