From ca2648ada5e3c9f6ff7052ff04a7c815ae101213 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 ce112c9b5e5..ce0d4553092 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 3e345fa2301..9e15cc3f3b0 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;