From 509b83e73e49deca1e7e054ae6d240935f03359c Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Fri, 30 Jan 2015 09:16:14 +0100 Subject: [PATCH] Time estimation: Avoid a progress reset before finish. #2328 The current algorithm doesn't care much, but resetting progress to 0 just before completing a job is confusing anyway. --- src/libsync/propagateupload.cpp | 7 ++++++- src/libsync/propagateupload.h | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/libsync/propagateupload.cpp b/src/libsync/propagateupload.cpp index cfe57adf11f..a76ac2ddba1 100644 --- a/src/libsync/propagateupload.cpp +++ b/src/libsync/propagateupload.cpp @@ -635,9 +635,14 @@ void PropagateUploadFileQNAM::finalize(const SyncFileItem ©) void PropagateUploadFileQNAM::slotUploadProgress(qint64 sent, qint64 total) { + // Completion is signaled with sent=0, total=0; avoid accidentally + // resetting progress due to the sent being zero by ignoring it. + // finishedSignal() is bound to be emitted soon anyway. + // See https://bugreports.qt.io/browse/QTBUG-44782. if (sent == 0 && total == 0) { - return; // QNAM bug https://bugreports.qt.io/browse/QTBUG-44782 + return; } + int progressChunk = _currentChunk + _startChunk - 1; if (progressChunk >= _chunkCount) progressChunk = _currentChunk - 1; diff --git a/src/libsync/propagateupload.h b/src/libsync/propagateupload.h index 99555958a4a..a11c33faf8b 100644 --- a/src/libsync/propagateupload.h +++ b/src/libsync/propagateupload.h @@ -87,7 +87,7 @@ class PUTFileJob : public AbstractNetworkJob { QString errorString() { return _errorString.isEmpty() ? reply()->errorString() : _errorString; - }; + } virtual void slotTimeout() Q_DECL_OVERRIDE;