57 QScopedPointer<HbDataFormModel> model(new HbDataFormModel); |
57 QScopedPointer<HbDataFormModel> model(new HbDataFormModel); |
58 QScopedPointer<CpSettingsWrapper> cpSettingsWrapperGuard(new CpSettingsWrapper); |
58 QScopedPointer<CpSettingsWrapper> cpSettingsWrapperGuard(new CpSettingsWrapper); |
59 |
59 |
60 // #1 Read Network mode value from Cenrep |
60 // #1 Read Network mode value from Cenrep |
61 model->appendDataFormItem(createNetworkModeItem()); |
61 model->appendDataFormItem(createNetworkModeItem()); |
62 // #2 Use phone settings for operator selection |
62 if(m_psetNetworkWrapper->isManualNetworkSelectionSupported()) { |
63 model->appendDataFormItem(createOperatorSelectionItem()); |
63 // #2 Use phone settings for operator selection |
|
64 model->appendDataFormItem(createOperatorSelectionItem()); |
|
65 } |
64 // Home network cellular data usage |
66 // Home network cellular data usage |
65 model->appendDataFormItem(createHomeDataUsageItem()); |
67 model->appendDataFormItem(createHomeDataUsageItem()); |
66 // Cellular network data usage when roaming |
68 // Cellular network data usage when roaming |
67 model->appendDataFormItem(createRoamDataUsageItem()); |
69 model->appendDataFormItem(createRoamDataUsageItem()); |
68 setModel(model.take()); |
70 setModel(model.take()); |
69 m_pSetWrapper = pSetWrapperGuard.take(); |
71 m_pSetWrapper = pSetWrapperGuard.take(); |
70 m_cpSettingsWrapper = cpSettingsWrapperGuard.take(); |
72 m_cpSettingsWrapper = cpSettingsWrapperGuard.take(); |
71 |
73 |
72 if(!isPhoneOnLine()) { |
|
73 DPRINT << "offline, set dimmed"; |
|
74 m_NetworkOperatorSelectionItemData->setEnabled(false); |
|
75 } |
|
76 |
|
77 DPRINT << ": OUT"; |
74 DPRINT << ": OUT"; |
78 } |
75 } |
79 |
76 |
80 |
77 |
81 /*! |
78 /*! |
82 CpNetworkPluginForm::~CpNetworkPluginForm |
79 CpNetworkPluginForm::~CpNetworkPluginForm |
83 */ |
80 */ |
84 CpNetworkPluginForm::~CpNetworkPluginForm() |
81 CpNetworkPluginForm::~CpNetworkPluginForm() |
85 { |
82 { |
86 DPRINT << ": IN"; |
83 DPRINT; |
87 |
|
88 delete m_pSetWrapper; |
84 delete m_pSetWrapper; |
89 delete m_cpSettingsWrapper; |
85 delete m_cpSettingsWrapper; |
90 |
|
91 DPRINT << ": OUT"; |
|
92 } |
86 } |
93 |
87 |
94 |
88 |
95 /*! |
89 /*! |
96 CpNetworkPluginForm::createNetworkModeItem |
90 CpNetworkPluginForm::createNetworkModeItem |
104 HbDataFormModelItem::ComboBoxItem, |
98 HbDataFormModelItem::ComboBoxItem, |
105 hbTrId("txt_cp_setlabel_network_mode"), |
99 hbTrId("txt_cp_setlabel_network_mode"), |
106 NULL ); |
100 NULL ); |
107 QScopedPointer<CpSettingFormItemData> settingFormItemGuard( |
101 QScopedPointer<CpSettingFormItemData> settingFormItemGuard( |
108 m_NetworkModeOptionsItemData); |
102 m_NetworkModeOptionsItemData); |
|
103 m_NetworkModeOptionsItemData->setObjectName("networkModeItem"); |
109 |
104 |
110 mNetworkModeOptions << hbTrId("txt_cp_setlabel_network_mode_val_dual_mode") |
105 mNetworkModeOptions << hbTrId("txt_cp_setlabel_network_mode_val_dual_mode") |
111 << hbTrId("txt_cp_setlabel_network_mode_val_umts") |
106 << hbTrId("txt_cp_setlabel_network_mode_val_umts") |
112 << hbTrId("txt_cp_setlabel_network_mode_val_gsm"); |
107 << hbTrId("txt_cp_setlabel_network_mode_val_gsm"); |
113 m_NetworkModeOptionsItemData->setContentWidgetData( |
108 m_NetworkModeOptionsItemData->setContentWidgetData( |
150 HbDataFormModelItem::ToggleValueItem, |
145 HbDataFormModelItem::ToggleValueItem, |
151 hbTrId("txt_cp_setlabel_operator_selection"), |
146 hbTrId("txt_cp_setlabel_operator_selection"), |
152 NULL); |
147 NULL); |
153 QScopedPointer<CpSettingFormItemData> settingFormItemGuard( |
148 QScopedPointer<CpSettingFormItemData> settingFormItemGuard( |
154 m_NetworkOperatorSelectionItemData); |
149 m_NetworkOperatorSelectionItemData); |
|
150 m_NetworkOperatorSelectionItemData->setObjectName("operatorSelectionItem"); |
155 |
151 |
156 PSetNetworkWrapper::NetworkSelectionMode mode; |
152 PSetNetworkWrapper::NetworkSelectionMode mode; |
157 PSetNetworkWrapper::ErrorCode err = |
153 PSetNetworkWrapper::ErrorCode err = |
158 m_psetNetworkWrapper->getNetworkSelectionMode(mode); |
154 m_psetNetworkWrapper->getNetworkSelectionMode(mode); |
159 if(err == PSetNetworkWrapper::ErrNoError) { |
155 if(err == PSetNetworkWrapper::ErrNoError) { |
191 HbDataFormModelItem::ComboBoxItem, |
187 HbDataFormModelItem::ComboBoxItem, |
192 hbTrId("txt_cp_setlabel_data_usage_in_home_network"), |
188 hbTrId("txt_cp_setlabel_data_usage_in_home_network"), |
193 NULL); |
189 NULL); |
194 QScopedPointer<CpSettingFormItemData> settingFormItemGuard( |
190 QScopedPointer<CpSettingFormItemData> settingFormItemGuard( |
195 mCellularUseHomeSelectionItemData); |
191 mCellularUseHomeSelectionItemData); |
196 |
192 mCellularUseHomeSelectionItemData->setObjectName("homeDataUsageItem"); |
|
193 |
197 // Populate the dropdown with selection items |
194 // Populate the dropdown with selection items |
198 mCellularUseHomeOptions |
195 mCellularUseHomeOptions |
199 << hbTrId("txt_cp_setlabel_data_usage_in_val_automatic") |
196 << hbTrId("txt_cp_setlabel_data_usage_in_val_automatic") |
200 << hbTrId("txt_cp_setlabel_data_usage_in_val_confirm") |
197 << hbTrId("txt_cp_setlabel_data_usage_in_val_confirm") |
201 << hbTrId("txt_cp_setlabel_data_usage_in_val_disabled"); |
198 << hbTrId("txt_cp_setlabel_data_usage_in_val_disabled"); |
242 HbDataFormModelItem::ComboBoxItem, |
237 HbDataFormModelItem::ComboBoxItem, |
243 hbTrId("txt_cp_setlabel_data_usage_when_roaming"), |
238 hbTrId("txt_cp_setlabel_data_usage_when_roaming"), |
244 NULL); |
239 NULL); |
245 QScopedPointer<CpSettingFormItemData> settingFormItemGuard( |
240 QScopedPointer<CpSettingFormItemData> settingFormItemGuard( |
246 mCellularUseRoamSelectionItemData); |
241 mCellularUseRoamSelectionItemData); |
247 |
242 mCellularUseRoamSelectionItemData->setObjectName("roamDataUsageItem"); |
|
243 |
248 // Populate the dropdown with selection items |
244 // Populate the dropdown with selection items |
249 mCellularUseRoamOptions |
245 mCellularUseRoamOptions |
250 << hbTrId("txt_cp_setlabel_data_usage_when_val_automatic") |
246 << hbTrId("txt_cp_setlabel_data_usage_when_val_automatic") |
251 << hbTrId("txt_cp_setlabel_data_usage_when_val_confirm") |
247 << hbTrId("txt_cp_setlabel_data_usage_when_val_confirm") |
252 << hbTrId("txt_cp_setlabel_data_usage_when_val_disabled"); |
248 << hbTrId("txt_cp_setlabel_data_usage_when_val_disabled"); |
288 void CpNetworkPluginForm::networkModeStateChanged(int index) |
284 void CpNetworkPluginForm::networkModeStateChanged(int index) |
289 { |
285 { |
290 // #1C network mode changed |
286 // #1C network mode changed |
291 DPRINT << ": IN : index: " << index; |
287 DPRINT << ": IN : index: " << index; |
292 |
288 |
293 if(isPhoneOnLine()) { |
289 if(m_cpSettingsWrapper->isPhoneOffline()) { |
|
290 // offline mode. |
|
291 m_psetNetworkWrapper->getNetworkAccessMode(); |
|
292 emit showGlobalNote( |
|
293 m_activeNoteId, |
|
294 emit hbTrId("Off-line, not allowed"), |
|
295 HbMessageBox::MessageTypeInformation); |
|
296 } else if(m_cpSettingsWrapper->isOngoingCall()) { |
|
297 // ongoing call. |
|
298 m_psetNetworkWrapper->getNetworkAccessMode(); |
|
299 emit showGlobalNote( |
|
300 m_activeNoteId, |
|
301 emit hbTrId("txt_cp_info_active_calls_must_be_disconnected_befo"), |
|
302 HbMessageBox::MessageTypeInformation); |
|
303 } else { |
|
304 // ok case |
294 if(index == 0) { |
305 if(index == 0) { |
295 dualModeSelection(); |
306 dualModeSelection(); |
296 } else if(index == 1) { |
307 } else if(index == 1) { |
297 umtsSelection(); |
308 umtsSelection(); |
298 } else if(index == 2) { |
309 } else if(index == 2) { |
299 gsmSelection(); |
310 gsmSelection(); |
300 } |
311 } |
301 } else { |
312 } |
302 // offline mode. |
313 |
|
314 DPRINT << ": OUT"; |
|
315 } |
|
316 |
|
317 |
|
318 /*! |
|
319 CpNetworkPluginForm::operatorSelectionStateChanged |
|
320 */ |
|
321 void CpNetworkPluginForm::operatorSelectionStateChanged() |
|
322 { |
|
323 // #2C operator selection mode changed |
|
324 DPRINT << ": IN "; |
|
325 |
|
326 if (m_cpSettingsWrapper->isPhoneOffline()) { |
|
327 // off line |
|
328 restoreOperatorSelectionUi(); |
303 emit showGlobalNote( |
329 emit showGlobalNote( |
304 m_activeNoteId, |
330 m_activeNoteId, |
305 emit hbTrId("Operation not possible in Off-line mode"), |
331 emit hbTrId("txt_cp_info_operator_selection_is_not_possible_in"), |
306 HbMessageBox::MessageTypeInformation); |
332 HbMessageBox::MessageTypeInformation); |
307 } |
333 } else if(m_cpSettingsWrapper->isOngoingCall()) { |
308 |
334 // ongoing call. |
309 DPRINT << ": OUT"; |
335 restoreOperatorSelectionUi(); |
310 } |
336 emit showGlobalNote( |
311 |
337 m_activeNoteId, |
312 |
338 emit hbTrId("txt_cp_info_active_calls_must_be_disconnected_befo"), |
313 /*! |
339 HbMessageBox::MessageTypeInformation); |
314 CpNetworkPluginForm::operatorSelectionStateChanged |
340 } else { |
315 */ |
341 // ok case |
316 void CpNetworkPluginForm::operatorSelectionStateChanged(bool) |
|
317 { |
|
318 // #2C operator selection mode changed |
|
319 DPRINT << ": IN "; |
|
320 |
|
321 if (isPhoneOnLine()) { |
|
322 PSetNetworkWrapper::NetworkSelectionMode mode; |
342 PSetNetworkWrapper::NetworkSelectionMode mode; |
323 m_psetNetworkWrapper->getNetworkSelectionMode(mode); |
343 PSetNetworkWrapper::ErrorCode err = |
|
344 m_psetNetworkWrapper->getNetworkSelectionMode(mode); |
|
345 |
|
346 if(err == PSetNetworkWrapper::ErrNoError) { |
324 switch (mode) { |
347 switch (mode) { |
325 case PSetNetworkWrapper::SelectionModeAutomatic: |
348 case PSetNetworkWrapper::SelectionModeAutomatic: |
326 manualOperatorSelection(); |
349 manualOperatorSelection(); |
327 m_NetworkOperatorSelectionItemData->setContentWidgetData( |
350 m_NetworkOperatorSelectionItemData->setContentWidgetData( |
328 "text", QVariant(hbTrId("txt_cp_setlabel_operator_selection_val_manual"))); |
351 "text", QVariant(hbTrId("txt_cp_setlabel_operator_selection_val_manual"))); |
480 |
511 |
481 /*! |
512 /*! |
482 CpNetworkPluginForm::createDialog |
513 CpNetworkPluginForm::createDialog |
483 */ |
514 */ |
484 void CpNetworkPluginForm::addItemToListWidget(HbListWidget* w, |
515 void CpNetworkPluginForm::addItemToListWidget(HbListWidget* w, |
485 const QString& item, const int& data) const |
516 const QString& item, const int& data, |
|
517 const HbIcon& primaryIcon) const |
486 { |
518 { |
487 DPRINT << ": IN"; |
519 DPRINT << ": IN"; |
488 Q_ASSERT(w != 0); |
520 Q_ASSERT(w != 0); |
489 |
521 |
490 HbListWidgetItem* o = new HbListWidgetItem(); |
522 HbListWidgetItem* o = new HbListWidgetItem(); |
491 o->setText(item); |
523 o->setText(item); |
492 o->setData(data); |
524 o->setData(data); |
|
525 if(!primaryIcon.isNull()) |
|
526 o->setIcon(primaryIcon); |
493 w->addItem(o); |
527 w->addItem(o); |
494 |
528 |
495 DPRINT << ": OUT"; |
529 DPRINT << ": OUT"; |
496 } |
530 } |
497 |
531 |
591 |
625 |
592 if (ongoing) { |
626 if (ongoing) { |
593 QObject::connect( |
627 QObject::connect( |
594 CpPhoneNotes::instance(), SIGNAL(progressNoteCanceled()), |
628 CpPhoneNotes::instance(), SIGNAL(progressNoteCanceled()), |
595 this, SLOT(userCancel())); |
629 this, SLOT(userCancel())); |
596 emit showGlobalProgressNote(m_activeProgressNoteId, hbTrId("Requesting")); |
630 emit showGlobalProgressNote(m_activeProgressNoteId, hbTrId("txt_common_info_requesting")); |
597 } else { |
631 } else { |
598 QObject::disconnect( |
632 QObject::disconnect( |
599 CpPhoneNotes::instance(), SIGNAL(progressNoteCanceled()), |
633 CpPhoneNotes::instance(), SIGNAL(progressNoteCanceled()), |
600 this, SLOT(userCancel())); |
634 this, SLOT(userCancel())); |
601 emit cancelNote(m_activeProgressNoteId); |
635 emit cancelNote(m_activeProgressNoteId); |
647 //then insert found networks |
681 //then insert found networks |
648 int itemsCount = m_networkInfoList->count(); |
682 int itemsCount = m_networkInfoList->count(); |
649 for (int i = 0; i < itemsCount; i++) { |
683 for (int i = 0; i < itemsCount; i++) { |
650 PSetNetworkWrapper::NetworkInfo *info = m_networkInfoList->at(i); |
684 PSetNetworkWrapper::NetworkInfo *info = m_networkInfoList->at(i); |
651 QString text = networkName(*info); |
685 QString text = networkName(*info); |
652 addItemToListWidget(list, text, i); |
686 addItemToListWidget(list, text, i, HbIcon(primaryIconForNetwork(*info))); |
653 DPRINT << ": " << info; |
687 DPRINT << ": " << info; |
654 } |
688 } |
655 // Connect list item activation signal to close the popup |
689 // Connect list item activation signal to close the popup |
656 connect( |
690 connect( |
657 list, SIGNAL(activated(HbListWidgetItem*)), |
691 list, SIGNAL(activated(HbListWidgetItem*)), |
667 m_dialog = NULL; |
701 m_dialog = NULL; |
668 } |
702 } |
669 m_dialog = dialog.take(); |
703 m_dialog = dialog.take(); |
670 |
704 |
671 DPRINT << ": OUT"; |
705 DPRINT << ": OUT"; |
|
706 } |
|
707 |
|
708 /*! |
|
709 CpNetworkPluginForm::primaryIconForNetwork |
|
710 */ |
|
711 QString CpNetworkPluginForm::primaryIconForNetwork(const PSetNetworkWrapper::NetworkInfo &info) |
|
712 { |
|
713 DPRINT << ": IN"; |
|
714 |
|
715 QString iconName; |
|
716 bool isForbiddenIconSupported = m_cpSettingsWrapper->forbiddenIconSupported(); |
|
717 if (isForbiddenIconSupported) { |
|
718 if (info.m_access == PSetNetworkWrapper::AccessTypeGsm) { |
|
719 if (info.m_status == PSetNetworkWrapper::StatusForbidden) { |
|
720 iconName.append("qtg_small_network_off"); |
|
721 } else { |
|
722 iconName.append("qtg_small_network"); |
|
723 } |
|
724 } else if (info.m_access == PSetNetworkWrapper::AccessTypeWcdma) { |
|
725 if (info.m_status == PSetNetworkWrapper::StatusForbidden) { |
|
726 iconName.append("qtg_small_wcdma_off"); |
|
727 } else { |
|
728 iconName.append("qtg_small_wcdma"); |
|
729 } |
|
730 } |
|
731 else if (info.m_access == PSetNetworkWrapper::AccessTypeGsmAndWcdma) { |
|
732 if (info.m_status == PSetNetworkWrapper::StatusForbidden) { |
|
733 iconName.append("qtg_small_pd_wcdma_off"); |
|
734 } else { |
|
735 iconName.append("qtg_small_pd_wcdma"); |
|
736 } |
|
737 } |
|
738 } |
|
739 |
|
740 DPRINT << ": OUT : " << iconName; |
|
741 return iconName; |
672 } |
742 } |
673 |
743 |
674 |
744 |
675 /*! |
745 /*! |
676 CpNetworkPluginForm::finishedManualSelectiondialog. |
746 CpNetworkPluginForm::finishedManualSelectiondialog. |
707 m_psetNetworkWrapper->selectNetwork(param); |
777 m_psetNetworkWrapper->selectNetwork(param); |
708 } |
778 } |
709 } else { |
779 } else { |
710 DPRINT << ": Cancel"; |
780 DPRINT << ": Cancel"; |
711 m_psetNetworkWrapper->cancelRequest(); |
781 m_psetNetworkWrapper->cancelRequest(); |
712 restoreUiSelection(); |
782 restoreOperatorSelectionUi(); |
713 } |
783 } |
714 m_dialog->deleteLater(); |
784 m_dialog->deleteLater(); |
715 m_dialog = NULL; |
785 m_dialog = NULL; |
716 } |
786 } |
717 |
787 |
718 DPRINT << ": OUT"; |
788 DPRINT << ": OUT"; |
719 } |
789 } |
720 |
790 |
721 /*! |
791 /*! |
722 CpNetworkPluginForm::restoreUiSelection |
792 CpNetworkPluginForm::restoreOperatorSelectionUi |
723 */ |
793 */ |
724 void CpNetworkPluginForm::restoreUiSelection() |
794 void CpNetworkPluginForm::restoreOperatorSelectionUi() |
725 { |
795 { |
726 DPRINT << ": IN"; |
796 DPRINT << ": IN"; |
727 |
797 |
728 removeConnection( |
798 removeConnection( |
729 m_NetworkOperatorSelectionItemData, SIGNAL(currentIndexChanged(int)), |
799 m_NetworkOperatorSelectionItemData, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)), |
730 this, SLOT(operatorSelectionStateChanged(int))); |
800 this, SLOT(operatorSelectionStateChanged())); |
731 PSetNetworkWrapper::NetworkSelectionMode mode; |
801 PSetNetworkWrapper::NetworkSelectionMode mode; |
732 PSetNetworkWrapper::ErrorCode err = |
802 PSetNetworkWrapper::ErrorCode err = |
733 m_psetNetworkWrapper->getNetworkSelectionMode(mode); |
803 m_psetNetworkWrapper->getNetworkSelectionMode(mode); |
734 if(err == PSetNetworkWrapper::ErrNoError) { |
804 if(err == PSetNetworkWrapper::ErrNoError) { |
735 switch (mode) { |
805 switch (mode) { |