diff options
Diffstat (limited to 'src/network/access/qnetworkreplyfileimpl.cpp')
-rw-r--r-- | src/network/access/qnetworkreplyfileimpl.cpp | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/network/access/qnetworkreplyfileimpl.cpp b/src/network/access/qnetworkreplyfileimpl.cpp index 7d2ba39069..bad0bb7b0a 100644 --- a/src/network/access/qnetworkreplyfileimpl.cpp +++ b/src/network/access/qnetworkreplyfileimpl.cpp @@ -60,7 +60,7 @@ QNetworkReplyFileImpl::QNetworkReplyFileImpl(QNetworkAccessManager *manager, con setFinished(true); // We're finished, will emit finished() after ctor is done. QMetaObject::invokeMethod(this, "errorOccurred", Qt::QueuedConnection, Q_ARG(QNetworkReply::NetworkError, QNetworkReply::ProtocolInvalidOperationError)); - QMetaObject::invokeMethod(this, [this](){ fileOpenFinished(false); }, Qt::QueuedConnection); + QMetaObject::invokeMethod(this, &QNetworkReplyFileImpl::fileOpenFinished, Qt::QueuedConnection, false); return; } #endif @@ -85,7 +85,7 @@ QNetworkReplyFileImpl::QNetworkReplyFileImpl(QNetworkAccessManager *manager, con if (req.attribute(QNetworkRequest::BackgroundRequestAttribute).toBool()) { // Asynchronous open auto realFile = new QNetworkFile(fileName); - connect(realFile, &QNetworkFile::headerRead, this, &QNetworkReplyFileImpl::setHeader, + connect(realFile, &QNetworkFile::headerRead, this, &QNetworkReplyFileImpl::setWellKnownHeader, Qt::QueuedConnection); connect(realFile, &QNetworkFile::error, this, &QNetworkReplyFileImpl::setError, Qt::QueuedConnection); @@ -128,8 +128,12 @@ QNetworkReplyFileImpl::QNetworkReplyFileImpl(QNetworkAccessManager *manager, con QMetaObject::invokeMethod(this, "finished", Qt::QueuedConnection); return; } - setHeader(QNetworkRequest::LastModifiedHeader, fi.lastModified()); - setHeader(QNetworkRequest::ContentLengthHeader, fi.size()); + auto h = headers(); + h.replaceOrAppend(QHttpHeaders::WellKnownHeader::LastModified, + QNetworkHeadersPrivate::toHttpDate(fi.lastModified())); + h.replaceOrAppend(QHttpHeaders::WellKnownHeader::ContentLength, + QByteArray::number(fi.size())); + setHeaders(std::move(h)); QMetaObject::invokeMethod(this, "metaDataChanged", Qt::QueuedConnection); QMetaObject::invokeMethod(this, "downloadProgress", Qt::QueuedConnection, @@ -171,9 +175,9 @@ bool QNetworkReplyFileImpl::isSequential () const qint64 QNetworkReplyFileImpl::size() const { - bool ok; - int size = header(QNetworkRequest::ContentLengthHeader).toInt(&ok); - return ok ? size : 0; + const auto totalSizeOpt = QNetworkHeadersPrivate::toInt( + headers().value(QHttpHeaders::WellKnownHeader::ContentLength)); + return totalSizeOpt.value_or(0); } /*! |