diff options
author | Aaron McCarthy <aaron.mccarthy@nokia.com> | 2010-01-28 03:15:50 (GMT) |
---|---|---|
committer | Aaron McCarthy <aaron.mccarthy@nokia.com> | 2010-02-03 06:58:12 (GMT) |
commit | 75a0b3e5526b0a6cf01deb60f0dc37b61928206a (patch) | |
tree | 7fc20f2fbd1deabb2a8b241b053e2141c1094bb1 /src/network/access/qnetworkaccessbackend.cpp | |
parent | df551752b7f430ab44bb1dd2ad0aa8c2a5187ef8 (diff) | |
download | Qt-75a0b3e5526b0a6cf01deb60f0dc37b61928206a.zip Qt-75a0b3e5526b0a6cf01deb60f0dc37b61928206a.tar.gz Qt-75a0b3e5526b0a6cf01deb60f0dc37b61928206a.tar.bz2 |
Wait until session is in the connected state before starting transfer.
Diffstat (limited to 'src/network/access/qnetworkaccessbackend.cpp')
-rw-r--r-- | src/network/access/qnetworkaccessbackend.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/network/access/qnetworkaccessbackend.cpp b/src/network/access/qnetworkaccessbackend.cpp index 22df248..d9bce9d 100644 --- a/src/network/access/qnetworkaccessbackend.cpp +++ b/src/network/access/qnetworkaccessbackend.cpp @@ -354,19 +354,26 @@ void QNetworkAccessBackend::start() } } - connect(manager->session, SIGNAL(opened()), this, SLOT(sessionOpened())); + connect(manager->session, SIGNAL(stateChanged(QNetworkSession::State)), + this, SLOT(sessionStateChanged(QNetworkSession::State))); connect(manager->session, SIGNAL(error(QNetworkSession::SessionError)), this, SLOT(sessionError(QNetworkSession::SessionError))); - if (!manager->session->isOpen()) + switch (manager->session->state()) { + case QNetworkSession::Roaming: + break; + case QNetworkSession::Connected: + open(); + break; + default: manager->session->open(); - else - sessionOpened(); + } } -void QNetworkAccessBackend::sessionOpened() +void QNetworkAccessBackend::sessionStateChanged(QNetworkSession::State state) { - open(); + if (state == QNetworkSession::Connected) + open(); } void QNetworkAccessBackend::sessionError(QNetworkSession::SessionError error) |