--- a/examples/network/bearermonitor/bearermonitor.cpp Tue Jul 06 15:10:48 2010 +0300
+++ b/examples/network/bearermonitor/bearermonitor.cpp Wed Aug 18 10:37:55 2010 +0300
@@ -80,7 +80,7 @@
break;
}
}
-
+ connect(&manager, SIGNAL(onlineStateChanged(bool)), this ,SLOT(onlineStateChanged(bool)));
connect(&manager, SIGNAL(configurationAdded(const QNetworkConfiguration&)),
this, SLOT(configurationAdded(const QNetworkConfiguration&)));
connect(&manager, SIGNAL(configurationRemoved(const QNetworkConfiguration&)),
@@ -88,7 +88,6 @@
connect(&manager, SIGNAL(configurationChanged(const QNetworkConfiguration&)),
this, SLOT(configurationChanged(const QNetworkConfiguration)));
connect(&manager, SIGNAL(updateCompleted()), this, SLOT(updateConfigurations()));
- connect(&manager, SIGNAL(onlineStateChanged(bool)), this ,SLOT(onlineStateChanged(bool)));
#ifdef Q_OS_WIN
connect(registerButton, SIGNAL(clicked()), this, SLOT(registerNetwork()));
@@ -111,6 +110,10 @@
#endif
connect(scanButton, SIGNAL(clicked()),
this, SLOT(performScan()));
+
+ // Just in case update all configurations so that all
+ // configurations are up to date.
+ manager.updateConfigurations();
}
BearerMonitor::~BearerMonitor()
@@ -177,10 +180,8 @@
void BearerMonitor::updateSnapConfiguration(QTreeWidgetItem *parent, const QNetworkConfiguration &snap)
{
QMap<QString, QTreeWidgetItem *> itemMap;
- for (int i = 0; i < parent->childCount(); ++i) {
- QTreeWidgetItem *item = parent->child(i);
+ foreach (QTreeWidgetItem *item, parent->takeChildren())
itemMap.insert(item->data(0, Qt::UserRole).toString(), item);
- }
QList<QNetworkConfiguration> allConfigurations = snap.children();
@@ -191,6 +192,8 @@
if (item) {
updateItem(item, config);
+ parent->addChild(item);
+
if (config.type() == QNetworkConfiguration::ServiceNetwork)
updateSnapConfiguration(item, config);
} else {
@@ -198,10 +201,7 @@
}
}
- foreach (const QString &id, itemMap.keys())
- delete itemMap.value(id);
-
- itemMap.clear();
+ qDeleteAll(itemMap);
}
void BearerMonitor::updateConfigurations()
@@ -209,6 +209,10 @@
progressBar->hide();
scanButton->show();
+ // Just in case update online state, on Symbian platform
+ // WLAN scan needs to be triggered initially to have their true state.
+ onlineStateChanged(manager.isOnline());
+
QList<QTreeWidgetItem *> items = treeWidget->findItems(QLatin1String("*"), Qt::MatchWildcard);
QMap<QString, QTreeWidgetItem *> itemMap;
while (!items.isEmpty()) {
@@ -232,8 +236,7 @@
}
}
- foreach (const QString &id, itemMap.keys())
- delete itemMap.value(id);
+ qDeleteAll(itemMap);
}
void BearerMonitor::onlineStateChanged(bool isOnline)