diff options
author | Peter Hartmann <phartmann@rim.com> | 2013-02-20 17:17:38 +0100 |
---|---|---|
committer | Peter Hartmann <phartmann@blackberry.com> | 2013-05-07 16:42:42 +0200 |
commit | 3f7923e326a29ec24f0615fdb9cc8a8f8a762d70 (patch) | |
tree | efcb58ae22b53be28bc02c281abe415885b67bf8 | |
parent | 002ef1697057cf82ef36546e6037179ba7eaf6ab (diff) | |
download | qt4-tools-3f7923e326a29ec24f0615fdb9cc8a8f8a762d70.tar.gz |
[BB10-internal] QNetworkAccessManager: store QNetworkConfiguration instead of identifier
In case a network session is not required, we need access to the
configuration object rather than to the QString. Also, only create a
session if the configuration manager needs one.
Change-Id: I05945525ce8247e343d0bebd7ec15e0e162ed826
Signed-off-by: Peter Hartmann <phartmann@rim.com>
-rw-r--r-- | src/network/access/qnetworkaccessmanager.cpp | 14 | ||||
-rw-r--r-- | src/network/access/qnetworkaccessmanager_p.h | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/src/network/access/qnetworkaccessmanager.cpp b/src/network/access/qnetworkaccessmanager.cpp index e0f905a405..a423af9adb 100644 --- a/src/network/access/qnetworkaccessmanager.cpp +++ b/src/network/access/qnetworkaccessmanager.cpp @@ -757,7 +757,11 @@ QNetworkReply *QNetworkAccessManager::deleteResource(const QNetworkRequest &requ */ void QNetworkAccessManager::setConfiguration(const QNetworkConfiguration &config) { - d_func()->createSession(config); + Q_D(QNetworkAccessManager); + d->networkConfiguration = config; + QNetworkConfigurationManager manager; + if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired) + d->createSession(config); } /*! @@ -948,10 +952,10 @@ QNetworkReply *QNetworkAccessManager::createRequest(QNetworkAccessManager::Opera return new QDisabledNetworkReply(this, req, op); } - if (!d->networkSessionStrongRef && (d->initializeSession || !d->networkConfiguration.isEmpty())) { + if (!d->networkSessionStrongRef && (d->initializeSession || !d->networkConfiguration.identifier().isEmpty())) { QNetworkConfigurationManager manager; - if (!d->networkConfiguration.isEmpty()) { - d->createSession(manager.configurationFromIdentifier(d->networkConfiguration)); + if (!d->networkConfiguration.identifier().isEmpty()) { + d->createSession(manager.configurationFromIdentifier(d->networkConfiguration.identifier())); } else { if (manager.capabilities() & QNetworkConfigurationManager::NetworkSessionRequired) d->createSession(manager.defaultConfiguration()); @@ -1237,7 +1241,7 @@ void QNetworkAccessManagerPrivate::_q_networkSessionClosed() Q_Q(QNetworkAccessManager); QSharedPointer<QNetworkSession> networkSession(getNetworkSession()); if (networkSession) { - networkConfiguration = networkSession->configuration().identifier(); + networkConfiguration = networkSession->configuration(); //disconnect from old session QObject::disconnect(networkSession.data(), SIGNAL(opened()), q, SIGNAL(networkSessionConnected())); diff --git a/src/network/access/qnetworkaccessmanager_p.h b/src/network/access/qnetworkaccessmanager_p.h index da02f0610b..86f5e03e70 100644 --- a/src/network/access/qnetworkaccessmanager_p.h +++ b/src/network/access/qnetworkaccessmanager_p.h @@ -140,7 +140,7 @@ public: QSharedPointer<QNetworkSession> networkSessionStrongRef; QWeakPointer<QNetworkSession> networkSessionWeakRef; QNetworkSession::State lastSessionState; - QString networkConfiguration; + QNetworkConfiguration networkConfiguration; QNetworkAccessManager::NetworkAccessibility networkAccessible; int activeReplyCount; bool online; |