summaryrefslogtreecommitdiffstats
path: root/src/network/access/qnetworkaccessmanager.cpp
diff options
context:
space:
mode:
authorQt Continuous Integration System <qt-info@nokia.com>2010-11-10 07:18:03 (GMT)
committerQt Continuous Integration System <qt-info@nokia.com>2010-11-10 07:18:03 (GMT)
commit606e15215b33b51a4bc716654388b8e9eaa647e6 (patch)
treeb786af92424c752ddc5fd130844281558ce17995 /src/network/access/qnetworkaccessmanager.cpp
parent9bc46788f3b0f4a652be604d3facbcd84602677a (diff)
parent2c7bab684fa9684175b9a6c913a20a76f3502d08 (diff)
downloadQt-606e15215b33b51a4bc716654388b8e9eaa647e6.zip
Qt-606e15215b33b51a4bc716654388b8e9eaa647e6.tar.gz
Qt-606e15215b33b51a4bc716654388b8e9eaa647e6.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into 4.7-integration
* '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-1: Clear X11 structure before use Make operator QRectF const Fix GC-related crash in QScriptValue::setData() get rid of dependency on QtGui Removed implicity QtGui linking from icd.pro as it is not needed. DFB: Make sure QPixmap::hasAlpha is respected fix build on mingw Fix some painting issues in QDirectFBPaintEngine QNAM: Do not need QNetworkSession in AlwaysCache load mode Don't crash if QScriptClass property getter returns an invalid value QNAM: Remove dead waitForUpstreamBytesWritten() code QNAM: Remove dead waitForDownstreamReadyRead() code fix memleak in test
Diffstat (limited to 'src/network/access/qnetworkaccessmanager.cpp')
-rw-r--r--src/network/access/qnetworkaccessmanager.cpp21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp
index e5f4d5a..effd79e 100644
--- a/src/network/access/qnetworkaccessmanager.cpp
+++ b/src/network/access/qnetworkaccessmanager.cpp
@@ -54,6 +54,7 @@
#include "qnetworkaccessfilebackend_p.h"
#include "qnetworkaccessdatabackend_p.h"
#include "qnetworkaccessdebugpipebackend_p.h"
+#include "qnetworkaccesscachebackend_p.h"
#include "qfilenetworkreply_p.h"
#include "QtCore/qbuffer.h"
@@ -970,6 +971,26 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera
return new QFileNetworkReply(this, req, op);
}
+ // A request with QNetworkRequest::AlwaysCache does not need any bearer management
+ QNetworkRequest::CacheLoadControl mode =
+ static_cast<QNetworkRequest::CacheLoadControl>(
+ req.attribute(QNetworkRequest::CacheLoadControlAttribute,
+ QNetworkRequest::PreferNetwork).toInt());
+ if (mode == QNetworkRequest::AlwaysCache
+ && (op == QNetworkAccessManager::GetOperation
+ || op == QNetworkAccessManager::HeadOperation)) {
+ // FIXME Implement a QNetworkReplyCacheImpl instead, see QTBUG-15106
+ QNetworkReplyImpl *reply = new QNetworkReplyImpl(this);
+ QNetworkReplyImplPrivate *priv = reply->d_func();
+ priv->manager = this;
+ priv->backend = new QNetworkAccessCacheBackend();
+ priv->backend->manager = this->d_func();
+ priv->backend->setParent(reply);
+ priv->backend->reply = priv;
+ priv->setup(op, req, outgoingData);
+ return reply;
+ }
+
#ifndef QT_NO_BEARERMANAGEMENT
// Return a disabled network reply if network access is disabled.
// Except if the scheme is empty or file://.