66 CpItemDataHelper &itemDataHelper) : |
61 CpItemDataHelper &itemDataHelper) : |
67 CpSettingFormItemData(HbDataFormModelItem::GroupItem, hbTrId( |
62 CpSettingFormItemData(HbDataFormModelItem::GroupItem, hbTrId( |
68 "txt_occ_subhead_wlan_settings")), |
63 "txt_occ_subhead_wlan_settings")), |
69 mItemDataHelper(itemDataHelper) |
64 mItemDataHelper(itemDataHelper) |
70 { |
65 { |
71 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY, this); |
66 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY ); |
72 |
67 |
73 initialise(); |
68 initialise(); |
74 |
|
75 createWlanSettingItems(); |
69 createWlanSettingItems(); |
76 |
70 |
77 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT, this); |
71 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT ); |
78 } |
72 } |
79 |
73 |
80 /*! |
74 /*! |
81 Destructor. |
75 Destructor. |
82 */ |
76 */ |
83 |
77 |
84 CpWlanSettingsGroupItemData::~CpWlanSettingsGroupItemData() |
78 CpWlanSettingsGroupItemData::~CpWlanSettingsGroupItemData() |
85 { |
79 { |
86 OstTraceFunctionEntry1(DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY, this); |
80 OstTraceFunctionEntry0( DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_ENTRY ); |
87 OstTraceFunctionExit1(DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT, this); |
81 OstTraceFunctionExit0( DUP1_CPWLANSETTINGSGROUPITEMDATA_CPWLANSETTINGSGROUPITEMDATA_EXIT ); |
88 } |
82 } |
89 |
83 |
90 /*! |
84 /*! |
91 Initialises the member variables and reads the values of WLAN Settings. |
85 Initialises the member variables and reads the values of WLAN Settings. |
92 */ |
86 */ |
93 |
87 |
94 void CpWlanSettingsGroupItemData::initialise() |
88 void CpWlanSettingsGroupItemData::initialise() |
95 { |
89 { |
96 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_INITIALISE_ENTRY, this); |
90 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_INITIALISE_ENTRY ); |
97 |
91 |
98 mWlanSettings.reset(new WlanSettings); |
92 mWlanSettings.reset(new WlanSettings); |
99 |
93 |
|
94 bool connectStatus = connect( |
|
95 mWlanSettings.data(), |
|
96 SIGNAL(devicePowerSavingUpdated()), |
|
97 this, |
|
98 SLOT(devicePowerSavingChanged())); |
|
99 Q_ASSERT(connectStatus); |
|
100 |
100 //Error needs to be handled. |
101 //Error needs to be handled. |
101 int error = mWlanSettings->init(); |
102 int error = mWlanSettings->init(); |
102 |
103 |
103 //Error needs to be handled. |
104 //Error needs to be handled. |
104 error = mWlanSettings->loadSettings(); |
105 error = mWlanSettings->loadSettings(); |
105 |
106 |
|
107 mUserDefinedScanInterval = KDefaultUserDefinedScanInterval; |
106 mUserDefinedItem = NULL; |
108 mUserDefinedItem = NULL; |
107 |
109 |
108 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_INITIALISE_EXIT, this); |
110 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_INITIALISE_EXIT ); |
109 } |
111 } |
110 |
112 |
111 /*! |
113 /*! |
112 Creates the Widgets for displaying WLAN Settings. |
114 Creates the Widgets for displaying WLAN Settings. |
113 */ |
115 */ |
114 |
116 |
115 void CpWlanSettingsGroupItemData::createWlanSettingItems() |
117 void CpWlanSettingsGroupItemData::createWlanSettingItems() |
116 { |
118 { |
117 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINITEMS_ENTRY, this); |
119 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINGITEMS_ENTRY ); |
118 |
120 |
119 mJoinWlanItem = new CpSettingFormItemData( |
121 mJoinWlanItem = new CpSettingFormItemData( |
120 HbDataFormModelItem::ComboBoxItem, |
122 HbDataFormModelItem::ComboBoxItem, |
121 hbTrId("txt_occ_setlabel_join_wlan_networks")); |
123 hbTrId("txt_occ_setlabel_join_wlan_networks")); |
122 // name the object for test automation purposes |
124 // name the object for test automation purposes |
193 |
201 |
194 mPowerSavingItem->setContentWidgetData("items", powerSavingItems); |
202 mPowerSavingItem->setContentWidgetData("items", powerSavingItems); |
195 |
203 |
196 mPowerSavingItem->setContentWidgetData( |
204 mPowerSavingItem->setContentWidgetData( |
197 "currentIndex", |
205 "currentIndex", |
198 mWlanSettings->isPowerSavingEnabled()); |
206 mWlanSettings->isWlanPowerSavingEnabled()); |
199 |
207 |
200 mItemDataHelper.addConnection( |
208 mItemDataHelper.addConnection( |
201 mPowerSavingItem, |
209 mPowerSavingItem, |
202 SIGNAL(currentIndexChanged (int)), |
210 SIGNAL(currentIndexChanged (int)), |
203 this, |
211 this, |
204 SLOT(powerSavingItemChanged (int))); |
212 SLOT(powerSavingItemChanged (int))); |
205 |
213 |
206 this->appendChild(mPowerSavingItem); |
214 this->appendChild(mPowerSavingItem); |
207 |
215 |
208 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINITEMS_EXIT, this); |
216 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CREATEWLANSETTINGITEMS_EXIT ); |
209 } |
217 } |
210 |
218 |
211 /*! |
219 /*! |
212 Creates the slider widget for displaying scan interval value. |
220 Creates the slider widget for displaying scan interval value. |
213 */ |
221 */ |
214 |
222 |
215 void CpWlanSettingsGroupItemData::createScanIntervalItem() |
223 void CpWlanSettingsGroupItemData::createScanIntervalItem() |
216 { |
224 { |
217 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_ENTRY, this); |
225 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_ENTRY ); |
218 |
226 |
219 mUserDefinedItem = new CpSettingFormItemData( |
227 //Add Scan Interval Slider, if it doesn't already exist. |
220 HbDataFormModelItem::SliderItem, |
228 if (this->childCount() < KMaxWidgets) { |
221 hbTrId("txt_occ_setlabel_scan_interval_minutes")); |
229 mUserDefinedItem = new CpSettingFormItemData( |
222 |
230 HbDataFormModelItem::SliderItem, |
223 mUserDefinedItem->setContentWidgetData("maximum", KMaximumScanInterval); |
231 hbTrId("txt_occ_setlabel_scan_interval_minutes")); |
224 mUserDefinedItem->setContentWidgetData("minimum", KMinimumScanInterval); |
232 |
225 mUserDefinedItem->setContentWidgetData("toolTipVisible", KEnableOption); |
233 mUserDefinedItem->setContentWidgetData("maximum", WlanSettings::ScanNetworkMax); |
226 mUserDefinedItem->setContentWidgetData("tracking", KEnableOption); |
234 mUserDefinedItem->setContentWidgetData("minimum", WlanSettings::ScanNetworkMin); |
227 |
235 mUserDefinedItem->setContentWidgetData("toolTipVisible", KEnableOption); |
|
236 mUserDefinedItem->setContentWidgetData("tracking", KEnableOption); |
|
237 |
|
238 mItemDataHelper.addConnection( |
|
239 mUserDefinedItem, |
|
240 SIGNAL(valueChanged (int)), |
|
241 this, |
|
242 SLOT(scanValueChanged (int))); |
|
243 |
|
244 mItemDataHelper.addConnection( |
|
245 mUserDefinedItem, |
|
246 SIGNAL(sliderReleased ()), |
|
247 this, |
|
248 SLOT(scanSliderReleased ())); |
|
249 |
|
250 mItemDataHelper.addConnection( |
|
251 mUserDefinedItem, |
|
252 SIGNAL(sliderPressed ()), |
|
253 this, |
|
254 SLOT(scanSliderPressed ())); |
|
255 |
|
256 int interval = mWlanSettings->scanInterval(); |
|
257 if (interval == WlanSettings::ScanNetworkAuto) { |
|
258 interval = mUserDefinedScanInterval; |
|
259 } |
|
260 mUserDefinedItem->setContentWidgetData("value", interval); |
|
261 |
|
262 this->insertChild(KSliderIndex, mUserDefinedItem); |
|
263 } |
|
264 |
|
265 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_EXIT ); |
|
266 } |
|
267 |
|
268 /*! |
|
269 Removes the slider widget, if it exists. |
|
270 */ |
|
271 |
|
272 void CpWlanSettingsGroupItemData::removeScanIntervalItem() |
|
273 { |
|
274 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_REMOVESCANINTERVALITEM_ENTRY ); |
|
275 |
|
276 if (KMaxWidgets == this->childCount()) { |
|
277 this->removeChild(KSliderIndex); |
|
278 mUserDefinedItem = NULL; //removeChild() will delete the item. |
|
279 } |
|
280 |
|
281 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_REMOVESCANINTERVALITEM_EXIT ); |
|
282 } |
|
283 |
|
284 /*! |
|
285 Slot for handling pressed signal of scan interval slider widget. |
|
286 */ |
|
287 |
|
288 void CpWlanSettingsGroupItemData::scanSliderPressed() |
|
289 { |
|
290 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_ENTRY ); |
|
291 |
|
292 int interval = mWlanSettings->scanInterval(); |
|
293 if (interval == WlanSettings::ScanNetworkAuto) { |
|
294 interval = mUserDefinedScanInterval; |
|
295 } |
|
296 mUserDefinedItem->setContentWidgetData( |
|
297 "text", |
|
298 QString("%1").arg(interval)); |
|
299 |
|
300 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_EXIT ); |
|
301 } |
|
302 |
|
303 /*! |
|
304 Slot for handling value changed signal of scan interval slider widget. |
|
305 */ |
|
306 |
|
307 void CpWlanSettingsGroupItemData::scanValueChanged(int value) |
|
308 { |
|
309 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_ENTRY ); |
|
310 |
|
311 mUserDefinedItem->setContentWidgetData("text",QString("%1").arg(value)); |
|
312 mUserDefinedScanInterval = value; |
|
313 |
|
314 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_EXIT ); |
|
315 } |
|
316 |
|
317 /*! |
|
318 Slot for handling Released signal of scan interval slider widget. |
|
319 Current value will be commited to database. |
|
320 */ |
|
321 |
|
322 void CpWlanSettingsGroupItemData::scanSliderReleased() |
|
323 { |
|
324 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_ENTRY ); |
|
325 |
|
326 mWlanSettings->setWlanScanInterval(mUserDefinedScanInterval); |
|
327 |
|
328 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_EXIT ); |
|
329 } |
|
330 |
|
331 /*! |
|
332 Slot for handling item changed signal of Scan for network combo box widget. |
|
333 */ |
|
334 |
|
335 void CpWlanSettingsGroupItemData::scanItemChanged(const QString &text) |
|
336 { |
|
337 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_ENTRY ); |
|
338 |
|
339 if (hbTrId("txt_occ_setlabel_scan_for_networks_val_userdefine") == text) { |
|
340 // User defined mode |
|
341 mWlanSettings->setWlanScanInterval(mUserDefinedScanInterval); |
|
342 createScanIntervalItem(); |
|
343 } else { |
|
344 // Automatic mode |
|
345 removeScanIntervalItem(); |
|
346 mWlanSettings->setWlanScanInterval(WlanSettings::ScanNetworkAuto); |
|
347 } |
|
348 |
|
349 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_EXIT ); |
|
350 } |
|
351 |
|
352 /*! |
|
353 Slot for handling item changed signal of Power saving combo box widget. |
|
354 */ |
|
355 |
|
356 void CpWlanSettingsGroupItemData::powerSavingItemChanged(int index) |
|
357 { |
|
358 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_ENTRY ); |
|
359 |
|
360 mWlanSettings->setWlanPowerSaving(index); |
|
361 |
|
362 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_EXIT ); |
|
363 } |
|
364 |
|
365 /*! |
|
366 Slot for handling item changed signal of Join WLAN networks combo box widget. |
|
367 */ |
|
368 |
|
369 void CpWlanSettingsGroupItemData::joinWlanItemChanged(int index) |
|
370 { |
|
371 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_ENTRY ); |
|
372 |
|
373 mWlanSettings->setJoinWlanMode(index); |
|
374 |
|
375 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_EXIT ); |
|
376 } |
|
377 |
|
378 /*! |
|
379 Slot for handling device power saving mode update signal. |
|
380 */ |
|
381 |
|
382 void CpWlanSettingsGroupItemData::devicePowerSavingChanged() |
|
383 { |
|
384 OstTraceFunctionEntry0( CPWLANSETTINGSGROUPITEMDATA_DEVICEPOWERSAVINGCHANGED_ENTRY ); |
|
385 |
|
386 // Disconnect the handling of currentIndexChanged, because |
|
387 // we will programmatically update the index in this function. |
|
388 mItemDataHelper.removeConnection( |
|
389 mScanNetworkItem, |
|
390 SIGNAL(currentIndexChanged (const QString &)), |
|
391 this, |
|
392 SLOT(scanItemChanged (const QString &))); |
|
393 |
|
394 if (mWlanSettings->isDevicePowerSavingEnabled()) { |
|
395 // If device power saving mode is activated, force the scan |
|
396 // setting to automatic, and disable the setting combo box |
|
397 mScanNetworkItem->setContentWidgetData( |
|
398 "currentIndex", |
|
399 WlanSettings::EScanNetworkAuto); |
|
400 mScanNetworkItem->setContentWidgetData("enabled", false); |
|
401 removeScanIntervalItem(); |
|
402 } else { |
|
403 // If device power saving mode is deactivated, enable the |
|
404 // setting combo box, and make sure the setting is in the |
|
405 // same mode it was before power saving mode was activated |
|
406 mScanNetworkItem->setContentWidgetData("enabled", true); |
|
407 if (mWlanSettings->scanNetworkType() == |
|
408 WlanSettings::EScanNetworkUserDefined) { |
|
409 mScanNetworkItem->setContentWidgetData( |
|
410 "currentIndex", |
|
411 WlanSettings::EScanNetworkUserDefined); |
|
412 createScanIntervalItem(); |
|
413 } |
|
414 } |
|
415 |
|
416 // Reconnect the handling of currentIndexChanged since we are |
|
417 // done with the updates. |
228 mItemDataHelper.addConnection( |
418 mItemDataHelper.addConnection( |
229 mUserDefinedItem, |
419 mScanNetworkItem, |
230 SIGNAL(valueChanged (int)), |
420 SIGNAL(currentIndexChanged (const QString &)), |
231 this, |
421 this, |
232 SLOT(scanValueChanged (int))); |
422 SLOT(scanItemChanged (const QString &))); |
233 |
423 |
234 mItemDataHelper.addConnection( |
424 OstTraceFunctionExit0( CPWLANSETTINGSGROUPITEMDATA_DEVICEPOWERSAVINGCHANGED_EXIT ); |
235 mUserDefinedItem, |
425 } |
236 SIGNAL(sliderReleased ()), |
|
237 this, |
|
238 SLOT(scanSliderReleased ())); |
|
239 |
|
240 mItemDataHelper.addConnection( |
|
241 mUserDefinedItem, |
|
242 SIGNAL(sliderPressed ()), |
|
243 this, |
|
244 SLOT(scanSliderPressed ())); |
|
245 |
|
246 mScanInterval = mWlanSettings->scanInterval(); |
|
247 |
|
248 mUserDefinedItem->setContentWidgetData("value", mScanInterval); |
|
249 |
|
250 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_CREATESCANINTERVALITEM_EXIT, this); |
|
251 } |
|
252 |
|
253 /*! |
|
254 Slot for handling pressed singal of scan interval slider widget. |
|
255 */ |
|
256 |
|
257 void CpWlanSettingsGroupItemData::scanSliderPressed() |
|
258 { |
|
259 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_ENTRY, this); |
|
260 |
|
261 mUserDefinedItem->setContentWidgetData("text",QString("%1").arg(mScanInterval)); |
|
262 |
|
263 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERPRESSED_EXIT, this); |
|
264 } |
|
265 |
|
266 /*! |
|
267 Slot for handling value changed singal of scan interval slider widget. |
|
268 */ |
|
269 |
|
270 void CpWlanSettingsGroupItemData::scanValueChanged(int value) |
|
271 { |
|
272 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_ENTRY, this); |
|
273 |
|
274 mUserDefinedItem->setContentWidgetData("text",QString("%1").arg(value)); |
|
275 mScanInterval = value; |
|
276 |
|
277 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_SCANVALUECHANGED_EXIT, this); |
|
278 } |
|
279 |
|
280 /*! |
|
281 Slot for handling Released singal of scan interval slider widget. |
|
282 Current value will be commited to database. |
|
283 */ |
|
284 |
|
285 void CpWlanSettingsGroupItemData::scanSliderReleased() |
|
286 { |
|
287 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_ENTRY, this); |
|
288 |
|
289 mWlanSettings->setWlanScanInterval(mScanInterval); |
|
290 |
|
291 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_SCANSLIDERRELEASED_EXIT, this); |
|
292 } |
|
293 |
|
294 /*! |
|
295 Slot for handling item changed singal of Scan for network combo box widget. |
|
296 */ |
|
297 |
|
298 void CpWlanSettingsGroupItemData::scanItemChanged(const QString &text) |
|
299 { |
|
300 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_ENTRY, this); |
|
301 |
|
302 if (hbTrId("txt_occ_setlabel_scan_for_networks_val_userdefine") == text) { |
|
303 //In case of PSM mode for device user-defined value is not |
|
304 //allowed,make it automatic forcefully. |
|
305 if (mWlanSettings->isPsmEnabled()) { |
|
306 //Need to check for dimming of the combobox option. |
|
307 mScanNetworkItem->setContentWidgetData("currentIndex", |
|
308 WlanSettings::EScanNetworkAuto); |
|
309 } |
|
310 else { |
|
311 //Add Scan Interval Slider, if it was not added. |
|
312 if (this->childCount() < KMaxWidgets) { |
|
313 createScanIntervalItem(); |
|
314 this->insertChild(KSliderIndex,mUserDefinedItem); |
|
315 mWlanSettings->setWlanScanInterval(mWlanSettings->scanInterval()); |
|
316 } |
|
317 } |
|
318 } |
|
319 else { |
|
320 //Remove Scan Interval slider, if user selects automatic option |
|
321 //for Scan network setting and if slider was added earlier. |
|
322 if (KMaxWidgets == this->childCount()) { |
|
323 this->removeChild(KSliderIndex); |
|
324 mUserDefinedItem = NULL; //removeChild() will delete the item. |
|
325 mWlanSettings->setWlanScanInterval(KWlanSettingsScanNetworkAuto); |
|
326 } |
|
327 } |
|
328 |
|
329 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_SCANITEMCHANGED_EXIT, this); |
|
330 } |
|
331 |
|
332 /*! |
|
333 Slot for handling item changed singal of Power saving combo box widget. |
|
334 */ |
|
335 |
|
336 void CpWlanSettingsGroupItemData::powerSavingItemChanged(int index) |
|
337 { |
|
338 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_ENTRY, this); |
|
339 |
|
340 mWlanSettings->setWlanPowerSaving(index); |
|
341 |
|
342 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_POWERSAVINGITEMCHANGED_EXIT, this); |
|
343 } |
|
344 |
|
345 /*! |
|
346 Slot for handling item changed singal of Join WLAN networks combo box widget. |
|
347 */ |
|
348 |
|
349 void CpWlanSettingsGroupItemData::joinWlanItemChanged(int index) |
|
350 { |
|
351 OstTraceFunctionEntry1(CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_ENTRY, this); |
|
352 |
|
353 mWlanSettings->setJoinWlanMode(index); |
|
354 |
|
355 OstTraceFunctionExit1(CPWLANSETTINGSGROUPITEMDATA_JOINWLANITEMCHANGED_EXIT, this); |
|
356 } |
|