78 treeWidget->setCurrentItem(item); |
78 treeWidget->setCurrentItem(item); |
79 showConfigurationFor(item); |
79 showConfigurationFor(item); |
80 break; |
80 break; |
81 } |
81 } |
82 } |
82 } |
83 |
83 connect(&manager, SIGNAL(onlineStateChanged(bool)), this ,SLOT(onlineStateChanged(bool))); |
84 connect(&manager, SIGNAL(configurationAdded(const QNetworkConfiguration&)), |
84 connect(&manager, SIGNAL(configurationAdded(const QNetworkConfiguration&)), |
85 this, SLOT(configurationAdded(const QNetworkConfiguration&))); |
85 this, SLOT(configurationAdded(const QNetworkConfiguration&))); |
86 connect(&manager, SIGNAL(configurationRemoved(const QNetworkConfiguration&)), |
86 connect(&manager, SIGNAL(configurationRemoved(const QNetworkConfiguration&)), |
87 this, SLOT(configurationRemoved(const QNetworkConfiguration&))); |
87 this, SLOT(configurationRemoved(const QNetworkConfiguration&))); |
88 connect(&manager, SIGNAL(configurationChanged(const QNetworkConfiguration&)), |
88 connect(&manager, SIGNAL(configurationChanged(const QNetworkConfiguration&)), |
89 this, SLOT(configurationChanged(const QNetworkConfiguration))); |
89 this, SLOT(configurationChanged(const QNetworkConfiguration))); |
90 connect(&manager, SIGNAL(updateCompleted()), this, SLOT(updateConfigurations())); |
90 connect(&manager, SIGNAL(updateCompleted()), this, SLOT(updateConfigurations())); |
91 connect(&manager, SIGNAL(onlineStateChanged(bool)), this ,SLOT(onlineStateChanged(bool))); |
|
92 |
91 |
93 #ifdef Q_OS_WIN |
92 #ifdef Q_OS_WIN |
94 connect(registerButton, SIGNAL(clicked()), this, SLOT(registerNetwork())); |
93 connect(registerButton, SIGNAL(clicked()), this, SLOT(registerNetwork())); |
95 connect(unregisterButton, SIGNAL(clicked()), this, SLOT(unregisterNetwork())); |
94 connect(unregisterButton, SIGNAL(clicked()), this, SLOT(unregisterNetwork())); |
96 #else |
95 #else |
109 connect(deleteSessionButton, SIGNAL(clicked()), |
108 connect(deleteSessionButton, SIGNAL(clicked()), |
110 this, SLOT(deleteSession())); |
109 this, SLOT(deleteSession())); |
111 #endif |
110 #endif |
112 connect(scanButton, SIGNAL(clicked()), |
111 connect(scanButton, SIGNAL(clicked()), |
113 this, SLOT(performScan())); |
112 this, SLOT(performScan())); |
|
113 |
|
114 // Just in case update all configurations so that all |
|
115 // configurations are up to date. |
|
116 manager.updateConfigurations(); |
114 } |
117 } |
115 |
118 |
116 BearerMonitor::~BearerMonitor() |
119 BearerMonitor::~BearerMonitor() |
117 { |
120 { |
118 } |
121 } |
175 } |
178 } |
176 |
179 |
177 void BearerMonitor::updateSnapConfiguration(QTreeWidgetItem *parent, const QNetworkConfiguration &snap) |
180 void BearerMonitor::updateSnapConfiguration(QTreeWidgetItem *parent, const QNetworkConfiguration &snap) |
178 { |
181 { |
179 QMap<QString, QTreeWidgetItem *> itemMap; |
182 QMap<QString, QTreeWidgetItem *> itemMap; |
180 for (int i = 0; i < parent->childCount(); ++i) { |
183 foreach (QTreeWidgetItem *item, parent->takeChildren()) |
181 QTreeWidgetItem *item = parent->child(i); |
|
182 itemMap.insert(item->data(0, Qt::UserRole).toString(), item); |
184 itemMap.insert(item->data(0, Qt::UserRole).toString(), item); |
183 } |
|
184 |
185 |
185 QList<QNetworkConfiguration> allConfigurations = snap.children(); |
186 QList<QNetworkConfiguration> allConfigurations = snap.children(); |
186 |
187 |
187 while (!allConfigurations.isEmpty()) { |
188 while (!allConfigurations.isEmpty()) { |
188 QNetworkConfiguration config = allConfigurations.takeFirst(); |
189 QNetworkConfiguration config = allConfigurations.takeFirst(); |
189 |
190 |
190 QTreeWidgetItem *item = itemMap.take(config.identifier()); |
191 QTreeWidgetItem *item = itemMap.take(config.identifier()); |
191 if (item) { |
192 if (item) { |
192 updateItem(item, config); |
193 updateItem(item, config); |
|
194 |
|
195 parent->addChild(item); |
193 |
196 |
194 if (config.type() == QNetworkConfiguration::ServiceNetwork) |
197 if (config.type() == QNetworkConfiguration::ServiceNetwork) |
195 updateSnapConfiguration(item, config); |
198 updateSnapConfiguration(item, config); |
196 } else { |
199 } else { |
197 configurationAdded(config, parent); |
200 configurationAdded(config, parent); |
198 } |
201 } |
199 } |
202 } |
200 |
203 |
201 foreach (const QString &id, itemMap.keys()) |
204 qDeleteAll(itemMap); |
202 delete itemMap.value(id); |
|
203 |
|
204 itemMap.clear(); |
|
205 } |
205 } |
206 |
206 |
207 void BearerMonitor::updateConfigurations() |
207 void BearerMonitor::updateConfigurations() |
208 { |
208 { |
209 progressBar->hide(); |
209 progressBar->hide(); |
210 scanButton->show(); |
210 scanButton->show(); |
|
211 |
|
212 // Just in case update online state, on Symbian platform |
|
213 // WLAN scan needs to be triggered initially to have their true state. |
|
214 onlineStateChanged(manager.isOnline()); |
211 |
215 |
212 QList<QTreeWidgetItem *> items = treeWidget->findItems(QLatin1String("*"), Qt::MatchWildcard); |
216 QList<QTreeWidgetItem *> items = treeWidget->findItems(QLatin1String("*"), Qt::MatchWildcard); |
213 QMap<QString, QTreeWidgetItem *> itemMap; |
217 QMap<QString, QTreeWidgetItem *> itemMap; |
214 while (!items.isEmpty()) { |
218 while (!items.isEmpty()) { |
215 QTreeWidgetItem *item = items.takeFirst(); |
219 QTreeWidgetItem *item = items.takeFirst(); |