summaryrefslogtreecommitdiffstats
path: root/src/network/access/qnetworkaccessbackend.cpp
diff options
context:
space:
mode:
authorAaron McCarthy <aaron.mccarthy@nokia.com>2010-01-28 03:15:50 (GMT)
committerAaron McCarthy <aaron.mccarthy@nokia.com>2010-02-03 06:58:12 (GMT)
commit75a0b3e5526b0a6cf01deb60f0dc37b61928206a (patch)
tree7fc20f2fbd1deabb2a8b241b053e2141c1094bb1 /src/network/access/qnetworkaccessbackend.cpp
parentdf551752b7f430ab44bb1dd2ad0aa8c2a5187ef8 (diff)
downloadQt-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.cpp19
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)