diff --git a/src/network/access/qnetworkreplyimpl.cpp b/src/network/access/qnetworkreplyimpl.cpp index e77163fcb48..a82c01e14cf 100644 --- a/src/network/access/qnetworkreplyimpl.cpp +++ b/src/network/access/qnetworkreplyimpl.cpp @@ -126,8 +126,9 @@ void QNetworkReplyImplPrivate::_q_copyReadyRead() // emit readyRead before downloadProgress in case this will cause events to be // processed and we get into a recursive call (as in QProgressDialog). emit q->readyRead(); - if (downloadProgressSignalChoke.elapsed() >= progressSignalInterval) { - downloadProgressSignalChoke.restart(); + if (downloadProgressSignalChoke.isValid() && + downloadProgressSignalChoke.elapsed() >= progressSignalInterval) { + downloadProgressSignalChoke.start(); emit q->downloadProgress(bytesDownloaded, totalSizeOpt.value_or(-1)); } resumeNotificationHandling(); @@ -491,8 +492,9 @@ void QNetworkReplyImplPrivate::appendDownstreamDataSignalEmissions() emit q->readyRead(); // emit readyRead before downloadProgress in case this will cause events to be // processed and we get into a recursive call (as in QProgressDialog). - if (downloadProgressSignalChoke.elapsed() >= progressSignalInterval) { - downloadProgressSignalChoke.restart(); + if (downloadProgressSignalChoke.isValid() && + downloadProgressSignalChoke.elapsed() >= progressSignalInterval) { + downloadProgressSignalChoke.start(); emit q->downloadProgress(bytesDownloaded, totalSizeOpt.value_or(-1)); } @@ -580,8 +582,9 @@ void QNetworkReplyImplPrivate::appendDownstreamDataDownloadBuffer(qint64 bytesRe // processed and we get into a recursive call (as in QProgressDialog). if (bytesDownloaded > 0) emit q->readyRead(); - if (downloadProgressSignalChoke.elapsed() >= progressSignalInterval) { - downloadProgressSignalChoke.restart(); + if (downloadProgressSignalChoke.isValid() && + downloadProgressSignalChoke.elapsed() >= progressSignalInterval) { + downloadProgressSignalChoke.start(); emit q->downloadProgress(bytesDownloaded, bytesTotal); } }