|
1 /* |
|
2 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * WLAN Wizard Page: Scan processing. |
|
16 */ |
|
17 |
|
18 // System includes |
|
19 #include <HbParameterLengthLimiter> |
|
20 #include <HbMainWindow> |
|
21 #include <HbDocumentLoader> |
|
22 #include <HbWidget> |
|
23 #include <HbLabel> |
|
24 #include <HbProgressBar> |
|
25 #include <cmmanagerdefines_shim.h> |
|
26 #include <wlanqtutils.h> |
|
27 #include <wlanqtutilsap.h> |
|
28 |
|
29 // User includes |
|
30 #include "wlanwizard_p.h" |
|
31 #include "wlanwizardpagescanning.h" |
|
32 #include "OstTraceDefinitions.h" |
|
33 #ifdef OST_TRACE_COMPILER_IN_USE |
|
34 #include "wlanwizardpagescanningTraces.h" |
|
35 #endif |
|
36 |
|
37 // Local constants |
|
38 |
|
39 /*! |
|
40 * Constructor method for the scanning view object. |
|
41 * @param [in] parent pointer to parent object. |
|
42 */ |
|
43 WlanWizardPageScanning::WlanWizardPageScanning(WlanWizardPrivate* parent) : |
|
44 WlanWizardPageInternal(parent), |
|
45 mWidget(NULL), |
|
46 mLabel(NULL), |
|
47 mLoader(NULL), |
|
48 mNextPageId(WlanWizardPage::PageNone), |
|
49 mScanResultsAvailable(false), |
|
50 mScanStatus(WlanQtUtils::ScanStatusOk) |
|
51 { |
|
52 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_WLANWIZARDPAGESCANNING_ENTRY ); |
|
53 WlanQtUtils* utils = mWizard->wlanQtUtils(); |
|
54 |
|
55 // Connect normal scan completion signal from wlanQtUtils to result |
|
56 // handler. Connect here instead of initializePage, since this signal may |
|
57 // need to be caught event if the window is not active. |
|
58 bool ok = connect( |
|
59 utils, |
|
60 SIGNAL(wlanScanApReady(int)), |
|
61 this, |
|
62 SLOT(wlanScanResultPreCheck(int))); |
|
63 |
|
64 Q_ASSERT(ok); |
|
65 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_WLANWIZARDPAGESCANNING_EXIT ); |
|
66 } |
|
67 |
|
68 /*! |
|
69 * Destructor. Loader widget is deleted. |
|
70 * All document widgets are deleted by wlanwizard_p destructor. |
|
71 */ |
|
72 WlanWizardPageScanning::~WlanWizardPageScanning() |
|
73 { |
|
74 OstTraceFunctionEntry0( DUP1_WLANWIZARDPAGESCANNING_WLANWIZARDPAGESCANNING_ENTRY ); |
|
75 delete mLoader; |
|
76 OstTraceFunctionExit0( DUP1_WLANWIZARDPAGESCANNING_WLANWIZARDPAGESCANNING_EXIT ); |
|
77 } |
|
78 |
|
79 /*! |
|
80 * Page initialization. If view is already loaded, does nothing. Inherited from |
|
81 * WlanWizardPage. |
|
82 * @return pointer to widget "occ_add_wlan_06". |
|
83 */ |
|
84 HbWidget* WlanWizardPageScanning::initializePage() |
|
85 { |
|
86 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_INITIALIZEPAGE_ENTRY ); |
|
87 OstTrace0( |
|
88 TRACE_NORMAL, |
|
89 WLANWIZARDPAGESCANNING_INITIALIZEPAGE, |
|
90 "WlanWizardPageScanning::initializePage"); |
|
91 |
|
92 // Next page id is reset with each initialization. |
|
93 mNextPageId = WlanWizardPage::PageNone; |
|
94 |
|
95 if (mWidget == NULL) { |
|
96 mLoader = new HbDocumentLoader(mWizard->mainWindow()); |
|
97 |
|
98 bool ok; |
|
99 |
|
100 mLoader->load(":/docml/occ_add_wlan_06.docml", &ok); |
|
101 Q_ASSERT(ok); |
|
102 |
|
103 // Initialize orientation |
|
104 loadDocmlSection(mWizard->mainWindow()->orientation()); |
|
105 |
|
106 // Load widgets |
|
107 mWidget = qobject_cast<HbWidget*> (mLoader->findWidget( |
|
108 "occ_add_wlan_06")); |
|
109 Q_ASSERT(mWidget != NULL); |
|
110 |
|
111 mLabel = qobject_cast<HbLabel*> (mLoader->findWidget("dialog")); |
|
112 Q_ASSERT(mLabel != NULL); |
|
113 |
|
114 WlanQtUtils* utils = mWizard->wlanQtUtils(); |
|
115 |
|
116 // Connect orientation signal from the main window to orientation |
|
117 // loader. |
|
118 ok = connect( |
|
119 mWizard->mainWindow(), |
|
120 SIGNAL(orientationChanged(Qt::Orientation)), |
|
121 this, |
|
122 SLOT(loadDocmlSection(Qt::Orientation))); |
|
123 Q_ASSERT(ok); |
|
124 |
|
125 // Connect direct scan completion signal from wlanQtUtils to result |
|
126 // handler. |
|
127 ok = connect( |
|
128 utils, |
|
129 SIGNAL(wlanScanDirectReady(int)), |
|
130 this, |
|
131 SLOT(wlanScanDirectReady(int))); |
|
132 Q_ASSERT(ok); |
|
133 } |
|
134 |
|
135 mLabel->setPlainText(HbParameterLengthLimiter( |
|
136 "txt_occ_dialog_searching").arg(mWizard->configuration( |
|
137 WlanWizardPrivate::ConfSsid).toString())); |
|
138 |
|
139 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_INITIALIZEPAGE_EXIT ); |
|
140 return mWidget; |
|
141 } |
|
142 |
|
143 /*! |
|
144 * Sends the user to the next page. |
|
145 * @param [out] removeFromStack is always true: this page is removed from the |
|
146 * stacked widget after "Next" button is pressed. |
|
147 * @return the id value of the next page. |
|
148 */ |
|
149 int WlanWizardPageScanning::nextId(bool &removeFromStack) const |
|
150 { |
|
151 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_NEXTID_ENTRY ); |
|
152 removeFromStack = true; |
|
153 |
|
154 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_NEXTID_EXIT ); |
|
155 return mNextPageId; |
|
156 } |
|
157 |
|
158 /*! |
|
159 * This function reimplements WlanWizardPage::previousTriggered. When going |
|
160 * back from scanning view, the ongoing scan operation is also stopped. Since |
|
161 * there is no need to react to following the acknowledgement signal from |
|
162 * wlanQtUtils, the corresponding handler slots are disconnected before the |
|
163 * opration and immediately connected again. |
|
164 * @return one step backwards value. |
|
165 */ |
|
166 int WlanWizardPageScanning::previousTriggered() |
|
167 { |
|
168 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_PREVIOUSTRIGGERED_ENTRY ); |
|
169 disconnect(this, SLOT(wlanScanDirectReady(int))); |
|
170 disconnect(this, SLOT(wlanScanResultPreCheck(int))); |
|
171 |
|
172 WlanQtUtils* utils = mWizard->wlanQtUtils(); |
|
173 |
|
174 utils->stopWlanScan(); |
|
175 |
|
176 bool ok = connect( |
|
177 utils, |
|
178 SIGNAL(wlanScanApReady(int)), |
|
179 this, |
|
180 SLOT(wlanScanResultPreCheck(int))); |
|
181 Q_ASSERT(ok); |
|
182 |
|
183 ok = connect( |
|
184 utils, |
|
185 SIGNAL(wlanScanDirectReady(int)), |
|
186 this, |
|
187 SLOT(wlanScanDirectReady(int))); |
|
188 Q_ASSERT(ok); |
|
189 |
|
190 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_PREVIOUSTRIGGERED_EXIT ); |
|
191 return OneStepBackwards; |
|
192 |
|
193 } |
|
194 |
|
195 /*! |
|
196 * This method is overrides the default implementation from WlanWizardPage. |
|
197 * It indicates whether the Next-button should be enabled or not. It also resets |
|
198 * the ConfProcessSettings-configuration to false - meaning that if no scan |
|
199 * results are available, no iap is created. |
|
200 * @return always false - the scanning proceeds to next window |
|
201 * automatically or not at all. |
|
202 */ |
|
203 bool WlanWizardPageScanning::showPage() |
|
204 { |
|
205 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_SHOWPAGE_ENTRY ); |
|
206 mWizard->setConfiguration(WlanWizardHelper::ConfProcessSettings, false); |
|
207 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_SHOWPAGE_EXIT ); |
|
208 return false; |
|
209 } |
|
210 |
|
211 /*! |
|
212 * Reimplements the default function in WlanWizardPage. Indicates to the |
|
213 * framework that startOperation() function must be executed. |
|
214 * @return true |
|
215 * @see WlanWizardPage |
|
216 */ |
|
217 bool WlanWizardPageScanning::requiresStartOperation() |
|
218 { |
|
219 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_REQUIRESSTARTOPERATION_ENTRY ); |
|
220 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_REQUIRESSTARTOPERATION_EXIT ); |
|
221 return true; |
|
222 } |
|
223 |
|
224 /*! |
|
225 * Wlan scan is performed as a "post-initialization" which is executed in a |
|
226 * separate scheduler loop. If scan results are available, starts reading them. |
|
227 */ |
|
228 void WlanWizardPageScanning::startOperation() |
|
229 { |
|
230 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_STARTOPERATION_ENTRY ); |
|
231 OstTrace0( TRACE_NORMAL, WLANWIZARDPAGESCANNING_STARTOPERATION, |
|
232 "WlanWizardPageScanning::startOperation - start AP scan if results" |
|
233 " are available." ); |
|
234 |
|
235 if (mScanResultsAvailable) { |
|
236 mScanResultsAvailable = false; |
|
237 wlanScanApReady(); |
|
238 } |
|
239 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_STARTOPERATION_EXIT ); |
|
240 } |
|
241 |
|
242 /*! |
|
243 * Loads the document orientation information from occ_add_wlan_06.docml |
|
244 * This is called each time phone orientation changes. |
|
245 * @param [in] orientation indicates whether the phone is in portrait or |
|
246 * landscape mode. |
|
247 */ |
|
248 void WlanWizardPageScanning::loadDocmlSection(Qt::Orientation orientation) |
|
249 { |
|
250 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_LOADDOCMLSECTION_ENTRY ); |
|
251 OstTrace1( TRACE_NORMAL, WLANWIZARDPAGESCANNING_LOADDOCML, |
|
252 "WlanWizardPageScanning::loadDocml - orientation ;orientation=%x", |
|
253 ( TUint )( orientation ) ); |
|
254 |
|
255 WlanWizardPageInternal::loadDocmlSection( |
|
256 mLoader, |
|
257 orientation, |
|
258 ":/docml/occ_add_wlan_06.docml", |
|
259 "portrait_section", |
|
260 "landscape_section"); |
|
261 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_LOADDOCMLSECTION_EXIT ); |
|
262 } |
|
263 |
|
264 /*! |
|
265 * Checks whether the view is active. If it is, execute wlanScanApReady. If |
|
266 * not, set mScanResultsAvailable to true. |
|
267 * @param [in] scanStatus indicates whether the scan was succesful, cancelled of |
|
268 * failed. The argument is saved to a member variable. |
|
269 */ |
|
270 void WlanWizardPageScanning::wlanScanResultPreCheck(int scanStatus) |
|
271 { |
|
272 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_WLANSCANRESULTPRECHECK_ENTRY ); |
|
273 mScanStatus = scanStatus; |
|
274 |
|
275 if (!mWidget) { |
|
276 OstTrace1( TRACE_BORDER, WLANWIZARDPAGESCANNING_WLANSCANRESULTPRECHECK, |
|
277 "WlanWizardPageScanning::wlanScanResultPreCheck no widget;this=%x", |
|
278 this ); |
|
279 |
|
280 mScanResultsAvailable = true; |
|
281 } else { |
|
282 if (mWizard->isCurrentPage(mWidget)) { |
|
283 OstTrace0( TRACE_BORDER, |
|
284 DUP1_WLANWIZARDPAGESCANNING_WLANSCANRESULTPRECHECK, |
|
285 "WlanWizardPageScanning::wlanScanResultPreCheck go to results"); |
|
286 |
|
287 wlanScanApReady(); |
|
288 } else { |
|
289 OstTrace0( TRACE_BORDER, |
|
290 DUP2_WLANWIZARDPAGESCANNING_WLANSCANRESULTPRECHECK, |
|
291 "WlanWizardPageScanning::wlanScanResultPreCheck" |
|
292 " not current widget" ); |
|
293 |
|
294 mScanResultsAvailable = true; |
|
295 } |
|
296 } |
|
297 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_WLANSCANRESULTPRECHECK_EXIT ); |
|
298 } |
|
299 |
|
300 /*! |
|
301 * Processes the direct scan results. |
|
302 * @param [in] scanStatus indicates whether the scan was succesful, canceled or |
|
303 * failed. In case the scan was not succesful, always proceed to manual wizard. |
|
304 */ |
|
305 void WlanWizardPageScanning::wlanScanDirectReady(int scanStatus) |
|
306 { |
|
307 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_WLANSCANDIRECTREADY_ENTRY ); |
|
308 OstTrace0( TRACE_NORMAL, WLANWIZARDPAGESCANNING_WLANSCANDIRECTREADY, |
|
309 "WlanWizardPageScanning::wlanScanDirectReady" ); |
|
310 |
|
311 WlanQtUtils* utils = mWizard->wlanQtUtils(); |
|
312 |
|
313 Q_ASSERT(utils); |
|
314 |
|
315 QList<WlanScanResult> filteredResults; |
|
316 |
|
317 if (scanStatus == WlanQtUtils::ScanStatusOk) { |
|
318 QList<QSharedPointer<WlanQtUtilsAp> > directScanResults; |
|
319 // Read the directed scan results from Qt Utils |
|
320 utils->availableWlanAps(directScanResults); |
|
321 |
|
322 // Identify open and hidden networks. |
|
323 getFinalScanResults(directScanResults, mWlanApList, filteredResults); |
|
324 } |
|
325 |
|
326 // Process the scan results. If scan status is not ok, feed an empty |
|
327 // result table to the selection function. |
|
328 selectNextPageActions(filteredResults); |
|
329 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_WLANSCANDIRECTREADY_EXIT ); |
|
330 } |
|
331 |
|
332 /*! |
|
333 * All wlan channels have been scanned for public networks. After processing the |
|
334 * results a direct scan is initiated. This function also checks whether the |
|
335 * scan was succesful, canceled or failed. In case the scan was not succesful, |
|
336 * always proceed to manual wizard. |
|
337 */ |
|
338 void WlanWizardPageScanning::wlanScanApReady() |
|
339 { |
|
340 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_WLANSCANAPREADY_ENTRY ); |
|
341 OstTrace0( TRACE_NORMAL, WLANWIZARDPAGESCANNING_WLANSCANAPREADY, |
|
342 "WlanWizardPageScanning::wlanScanApReady" ); |
|
343 |
|
344 if (mScanStatus == WlanQtUtils::ScanStatusOk) { |
|
345 WlanQtUtils* utils = mWizard->wlanQtUtils(); |
|
346 Q_ASSERT(utils); |
|
347 |
|
348 QList<QSharedPointer<WlanQtUtilsAp> > openScanResults; |
|
349 |
|
350 // Fetch the list of scan results. |
|
351 utils->availableWlanAps(openScanResults); |
|
352 |
|
353 // The name of the network that we are looking for. |
|
354 QString ssid = |
|
355 mWizard->configuration(WlanWizardPrivate::ConfSsid).toString(); |
|
356 |
|
357 // Store matching scan results. |
|
358 getSsidMatchList(ssid, openScanResults); |
|
359 |
|
360 // Next directed scan. |
|
361 utils->scanWlanDirect(ssid); |
|
362 } |
|
363 else { |
|
364 mWizard->clearConfiguration(WlanWizardHelper::ConfAvailableNetworkOptions); |
|
365 mNextPageId = WlanWizardPageInternal::PageNetworkMode; |
|
366 mWizard->nextPage(); |
|
367 } |
|
368 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_WLANSCANAPREADY_EXIT ); |
|
369 } |
|
370 |
|
371 /*! |
|
372 * This function stores all the APs that match ssid parameter to mWlanApList |
|
373 * member list. |
|
374 * @param [in] ssid is the name of the network we are interested in. |
|
375 * @param [in] matchList is the list of all APs that were revealed in the scan. |
|
376 */ |
|
377 void WlanWizardPageScanning::getSsidMatchList( |
|
378 QString ssid, |
|
379 const QList<QSharedPointer<WlanQtUtilsAp> > &matchList) |
|
380 { |
|
381 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_GETSSIDMATCHLIST_ENTRY ); |
|
382 mWlanApList.clear(); |
|
383 QSharedPointer<WlanQtUtilsAp> item; |
|
384 |
|
385 for (int i = 0; i < matchList.size(); i++) { |
|
386 item = matchList.at(i); |
|
387 if (item->value(WlanQtUtilsAp::ConfIdSsid).toString() == ssid) { |
|
388 mWlanApList.append(item); |
|
389 } |
|
390 } |
|
391 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_GETSSIDMATCHLIST_EXIT ); |
|
392 } |
|
393 |
|
394 /* |
|
395 * Find out which of the direct scan results are open networks by comparing |
|
396 * result to open scan results. Return finalResults. |
|
397 * @param [in] directScanResults are the results of a directed scan. |
|
398 * @param [in] openScanResults are the results of a scan inquiring any APs. |
|
399 * @param [out] finalResults is a list of APs with visibility flag included. |
|
400 */ |
|
401 void WlanWizardPageScanning::getFinalScanResults( |
|
402 const QList<QSharedPointer<WlanQtUtilsAp> > &directScanResults, |
|
403 const QList<QSharedPointer<WlanQtUtilsAp> > &openScanResults, |
|
404 QList<WlanScanResult> &finalResults) |
|
405 { |
|
406 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_GETFINALSCANRESULTS_ENTRY ); |
|
407 finalResults.clear(); |
|
408 |
|
409 // The key assumption of this algorithm is that both direct and public scan |
|
410 // reveal the same set of AP:s with the exception of hidden AP:s. |
|
411 // In other words: Direct scan result set is the whole set with each AP |
|
412 // marked as hidden by default. If an AP has been revealed also by public |
|
413 // scan, it is changed to visible. |
|
414 for (int i = 0; i < directScanResults.size(); i++) { |
|
415 WlanScanResult resultItem; |
|
416 |
|
417 resultItem.scanResult = directScanResults.at(i); |
|
418 |
|
419 // Initialize as hidden. |
|
420 resultItem.networkHidden = true; |
|
421 |
|
422 for (int j = 0; j < openScanResults.size(); j++) { |
|
423 if (WlanQtUtilsAp::compare( |
|
424 openScanResults.at(j).data(), |
|
425 directScanResults.at(i).data()) == 0) { |
|
426 // Mark open, if a public scan revealed the same AP |
|
427 resultItem.networkHidden = false; |
|
428 } |
|
429 } |
|
430 |
|
431 finalResults.append(resultItem); |
|
432 } |
|
433 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_GETFINALSCANRESULTS_EXIT ); |
|
434 } |
|
435 |
|
436 /*! |
|
437 * This function processes the scan results in case multiple results were |
|
438 * acquired with matching SSIDs. |
|
439 * @param [in] finalResults is the list of APs revealed by the last scans. |
|
440 * @return the identifier of the next page. |
|
441 */ |
|
442 int WlanWizardPageScanning::processMultipleScanResults( |
|
443 const QList<WlanScanResult> &finalResults) |
|
444 { |
|
445 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_PROCESSMULTIPLESCANRESULTS_ENTRY ); |
|
446 WlanWizardScanList networkOptions; |
|
447 int nextPage; |
|
448 |
|
449 // Build the list of results to be placed in the configuration. |
|
450 networkOptions.build(finalResults); |
|
451 |
|
452 QVariant tmp; |
|
453 tmp.setValue(networkOptions); |
|
454 |
|
455 mWizard->setConfiguration( |
|
456 WlanWizardHelper::ConfAvailableNetworkOptions, tmp); |
|
457 |
|
458 if (networkOptions.wpsSelected()) { |
|
459 // In case all available network mode options support wps, go directly |
|
460 // to wps-wizard. |
|
461 nextPage = WlanWizardPageInternal::PageWpsStart; |
|
462 } else if (networkOptions.netModes() > SingleResult) { |
|
463 // If there are more than one network mode choices, go to manual selection |
|
464 // of network mode. |
|
465 nextPage = WlanWizardPageInternal::PageNetworkMode; |
|
466 } else { |
|
467 // if only a single network mode option is available, the mode query |
|
468 // may be skipped and the next page is set to security mode query. |
|
469 WlanNetworkSetting setting = networkOptions.getNetModes().at(0); |
|
470 mWizard->setConfiguration(WlanWizardHelper::ConfNetworkMode, setting.mode); |
|
471 mWizard->setConfiguration(WlanWizardHelper::ConfWlanScanSSID, setting.hidden); |
|
472 mWizard->setConfiguration(WlanWizardHelper::ConfWpsSupported, setting.wpsSupported); |
|
473 nextPage = WlanWizardPageInternal::PageNetworkSecurity; |
|
474 } |
|
475 |
|
476 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_PROCESSMULTIPLESCANRESULTS_EXIT ); |
|
477 return nextPage; |
|
478 } |
|
479 |
|
480 /*! |
|
481 * This function decides what to do with the scan results. |
|
482 * @param [in] finalResults is the list of APs revealed by the last scans. |
|
483 */ |
|
484 void WlanWizardPageScanning::selectNextPageActions( |
|
485 const QList<WlanScanResult> &finalResults) |
|
486 { |
|
487 OstTraceFunctionEntry0( WLANWIZARDPAGESCANNING_SELECTNEXTPAGEACTIONS_ENTRY ); |
|
488 mWizard->clearConfiguration(WlanWizardHelper::ConfAvailableNetworkOptions); |
|
489 |
|
490 if (finalResults.isEmpty()) { |
|
491 // In case of no results at all were found. |
|
492 mNextPageId = WlanWizardPageInternal::PageNetworkMode; |
|
493 } else if (finalResults.size() == SingleResult) { |
|
494 // In case there is only a single result. |
|
495 WlanScanResult item = finalResults.first(); |
|
496 mNextPageId = mWizard->getNextPageId( |
|
497 item.scanResult->value(WlanQtUtilsAp::ConfIdSsid).toString(), |
|
498 item.scanResult->value(WlanQtUtilsAp::ConfIdConnectionMode).toInt(), |
|
499 item.scanResult->value(WlanQtUtilsAp::ConfIdSecurityMode).toInt(), |
|
500 item.scanResult->value(WlanQtUtilsAp::ConfIdWpaPskUse).toBool(), |
|
501 item.networkHidden, |
|
502 item.scanResult->value(WlanQtUtilsAp::ConfIdWpsSupported).toBool()); |
|
503 } else { |
|
504 // In case more than one result is available. |
|
505 mWizard->setConfiguration(WlanWizardHelper::ConfProcessSettings, true); |
|
506 mNextPageId = processMultipleScanResults(finalResults); |
|
507 } |
|
508 |
|
509 mWizard->nextPage(); |
|
510 OstTraceFunctionExit0( WLANWIZARDPAGESCANNING_SELECTNEXTPAGEACTIONS_EXIT ); |
|
511 } |