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;