From 016a19e76facd947421b1a36ded2d87c1e4d44c3 Mon Sep 17 00:00:00 2001 From: MuPp3t33r <67326198+MuPp3t33r@users.noreply.github.com> Date: Thu, 14 Aug 2025 15:22:30 +0200 Subject: [PATCH] Update download.cpp Fixes issue where downloading models in the app causes weird non-sensical numbers in the reported download speed Signed-off-by: MuPp3t33r <67326198+MuPp3t33r@users.noreply.github.com> --- gpt4all-chat/src/download.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gpt4all-chat/src/download.cpp b/gpt4all-chat/src/download.cpp index 6891feeb..2022b767 100644 --- a/gpt4all-chat/src/download.cpp +++ b/gpt4all-chat/src/download.cpp @@ -511,16 +511,16 @@ void Download::handleDownloadProgress(qint64 bytesReceived, qint64 bytesTotal) const qint64 lastBytesReceived = ModelList::globalInstance()->dataByFilename(modelFilename, ModelList::BytesReceivedRole).toLongLong(); const qint64 currentBytesReceived = tempFile->pos(); - qint64 timeDifference = currentUpdate - lastUpdate; - qint64 bytesDifference = currentBytesReceived - lastBytesReceived; - qint64 speed = (bytesDifference / timeDifference) * 1000; // bytes per second + double timeSec = (currentUpdate - lastUpdate) / 1000.0; // seconds + double bytesDiff = static_cast(currentBytesReceived - lastBytesReceived); + double speed = bytesDiff / timeSec; // bytes per second QString speedText; if (speed < 1024) - speedText = QString::number(static_cast(speed), 'f', 2) + " B/s"; + speedText = QString::number(speed, 'f', 2) + " B/s"; else if (speed < 1024 * 1024) - speedText = QString::number(static_cast(speed / 1024.0), 'f', 2) + " KB/s"; + speedText = QString::number(speed / 1024.0, 'f', 2) + " KB/s"; else - speedText = QString::number(static_cast(speed / (1024.0 * 1024.0)), 'f', 2) + " MB/s"; + speedText = QString::number(speed / (1024.0 * 1024.0), 'f', 2) + " MB/s"; QVector> data { { ModelList::BytesReceivedRole, currentBytesReceived },