Details
-
Bug
-
Resolution: Out of scope
-
Not Evaluated
-
None
-
1.0.2, 1.1.1
-
None
-
Tested on Nokia 5800XM with Qt 4.6.3/Qt Mobility 1.0.2 as well as Qt 4.7.1/Qt Mobility 1.1.1.
Description
There is a quote from PoC (full PoC is attached to this issue):
AppController::AppController(QWidget *parent) : QWidget(parent), ui(new Ui::AppController)
{
NetworkConfigurationManager = new QNetworkConfigurationManager();
NetworkSession = NULL;
connect(NetworkConfigurationManager, SIGNAL(onlineStateChanged(bool)), SLOT(OnlineStateChanged(bool)));
QTimer::singleShot(0, this, SLOT(InitNetwork()));
}
void AppController::InitNetwork()
{
QCoreApplication::processEvents();
QMessageBox::information(this, "InitNetwork: isOnline()", QString("InitNetwork: isOnline(): %1").arg(NetworkConfigurationManager->isOnline()));
if (NetworkSession == NULL)
{ OnlineStateChanged(NetworkConfigurationManager->isOnline()); }}
void AppController::OnlineStateChanged(bool is_online)
{
QMessageBox::information(this, "OnlineStateChanged: is_online", QString("OnlineStateChanged: is_online: %1").arg(is_online));
if (!is_online) {
if (NetworkSession != NULL)
NetworkSession = new QNetworkSession(NetworkConfigurationManager->defaultConfiguration());
connect(NetworkSession, SIGNAL(opened()), SLOT(NetworkSessionOpened()));
connect(NetworkSession, SIGNAL(error(QNetworkSession::SessionError)), SLOT(NetworkSessionError(QNetworkSession::SessionError)));
NetworkSession->open();
}
}
void AppController::NetworkSessionOpened()
{
QMessageBox::information(this, "NetworkSessionOpened: isOnline()", QString("NetworkSessionOpened: isOnline(): %1").arg(NetworkConfigurationManager->isOnline()));
OnlineStateChanged(NetworkConfigurationManager->isOnline());
}
void AppController::NetworkSessionError(QNetworkSession::SessionError)
{
QMessageBox::information(this, "NetworkSessionError: isOnline()", QString("NetworkSessionError: isOnline(): %1").arg(NetworkConfigurationManager->isOnline()));
OnlineStateChanged(NetworkConfigurationManager->isOnline());
}
When there is already active network connection (for example, started by another application), NetworkConfigurationManager->isOnline() always return false, even when NetworkSessionOpened() is fired.