diff -r bab96b7ed1a4 -r f39ed5e045e0 phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp --- a/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp Tue Jun 15 14:14:38 2010 +0100 +++ b/phonesettings/cpphonesettingsplugins/cpnetworkplugin/src/cpnetworkpluginform.cpp Thu Jul 22 16:33:21 2010 +0100 @@ -59,8 +59,10 @@ // #1 Read Network mode value from Cenrep model->appendDataFormItem(createNetworkModeItem()); - // #2 Use phone settings for operator selection - model->appendDataFormItem(createOperatorSelectionItem()); + if(m_psetNetworkWrapper->isManualNetworkSelectionSupported()) { + // #2 Use phone settings for operator selection + model->appendDataFormItem(createOperatorSelectionItem()); + } // Home network cellular data usage model->appendDataFormItem(createHomeDataUsageItem()); // Cellular network data usage when roaming @@ -69,11 +71,6 @@ m_pSetWrapper = pSetWrapperGuard.take(); m_cpSettingsWrapper = cpSettingsWrapperGuard.take(); - if(!isPhoneOnLine()) { - DPRINT << "offline, set dimmed"; - m_NetworkOperatorSelectionItemData->setEnabled(false); - } - DPRINT << ": OUT"; } @@ -83,12 +80,9 @@ */ CpNetworkPluginForm::~CpNetworkPluginForm() { - DPRINT << ": IN"; - + DPRINT; delete m_pSetWrapper; delete m_cpSettingsWrapper; - - DPRINT << ": OUT"; } @@ -106,6 +100,7 @@ NULL ); QScopedPointer settingFormItemGuard( m_NetworkModeOptionsItemData); + m_NetworkModeOptionsItemData->setObjectName("networkModeItem"); mNetworkModeOptions << hbTrId("txt_cp_setlabel_network_mode_val_dual_mode") << hbTrId("txt_cp_setlabel_network_mode_val_umts") @@ -152,6 +147,7 @@ NULL); QScopedPointer settingFormItemGuard( m_NetworkOperatorSelectionItemData); + m_NetworkOperatorSelectionItemData->setObjectName("operatorSelectionItem"); PSetNetworkWrapper::NetworkSelectionMode mode; PSetNetworkWrapper::ErrorCode err = @@ -170,10 +166,10 @@ break; } } - - addConnection( - m_NetworkOperatorSelectionItemData, SIGNAL(clicked(bool) ), - this, SLOT(operatorSelectionStateChanged(bool))); + + addConnection( + m_NetworkOperatorSelectionItemData, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)), + this, SLOT(operatorSelectionStateChanged())); settingFormItemGuard.take(); DPRINT << ": OUT"; @@ -193,7 +189,8 @@ NULL); QScopedPointer settingFormItemGuard( mCellularUseHomeSelectionItemData); - + mCellularUseHomeSelectionItemData->setObjectName("homeDataUsageItem"); + // Populate the dropdown with selection items mCellularUseHomeOptions << hbTrId("txt_cp_setlabel_data_usage_in_val_automatic") @@ -225,9 +222,7 @@ void CpNetworkPluginForm::cellularDataUseHomeStateChanged(int index) { DPRINT << ": IN : index: " << index; - mCellularSettings->setDataUseHome(index); - DPRINT << ": OUT"; } @@ -244,7 +239,8 @@ NULL); QScopedPointer settingFormItemGuard( mCellularUseRoamSelectionItemData); - + mCellularUseRoamSelectionItemData->setObjectName("roamDataUsageItem"); + // Populate the dropdown with selection items mCellularUseRoamOptions << hbTrId("txt_cp_setlabel_data_usage_when_val_automatic") @@ -290,7 +286,22 @@ // #1C network mode changed DPRINT << ": IN : index: " << index; - if(isPhoneOnLine()) { + if(m_cpSettingsWrapper->isPhoneOffline()) { + // offline mode. + m_psetNetworkWrapper->getNetworkAccessMode(); + emit showGlobalNote( + m_activeNoteId, + emit hbTrId("Off-line, not allowed"), + HbMessageBox::MessageTypeInformation); + } else if(m_cpSettingsWrapper->isOngoingCall()) { + // ongoing call. + m_psetNetworkWrapper->getNetworkAccessMode(); + emit showGlobalNote( + m_activeNoteId, + emit hbTrId("txt_cp_info_active_calls_must_be_disconnected_befo"), + HbMessageBox::MessageTypeInformation); + } else { + // ok case if(index == 0) { dualModeSelection(); } else if(index == 1) { @@ -298,12 +309,6 @@ } else if(index == 2) { gsmSelection(); } - } else { - // offline mode. - emit showGlobalNote( - m_activeNoteId, - emit hbTrId("Operation not possible in Off-line mode"), - HbMessageBox::MessageTypeInformation); } DPRINT << ": OUT"; @@ -313,14 +318,32 @@ /*! CpNetworkPluginForm::operatorSelectionStateChanged */ -void CpNetworkPluginForm::operatorSelectionStateChanged(bool) +void CpNetworkPluginForm::operatorSelectionStateChanged() { // #2C operator selection mode changed DPRINT << ": IN "; - - if (isPhoneOnLine()) { + + if (m_cpSettingsWrapper->isPhoneOffline()) { + // off line + restoreOperatorSelectionUi(); + emit showGlobalNote( + m_activeNoteId, + emit hbTrId("txt_cp_info_operator_selection_is_not_possible_in"), + HbMessageBox::MessageTypeInformation); + } else if(m_cpSettingsWrapper->isOngoingCall()) { + // ongoing call. + restoreOperatorSelectionUi(); + emit showGlobalNote( + m_activeNoteId, + emit hbTrId("txt_cp_info_active_calls_must_be_disconnected_befo"), + HbMessageBox::MessageTypeInformation); + } else { + // ok case PSetNetworkWrapper::NetworkSelectionMode mode; - m_psetNetworkWrapper->getNetworkSelectionMode(mode); + PSetNetworkWrapper::ErrorCode err = + m_psetNetworkWrapper->getNetworkSelectionMode(mode); + + if(err == PSetNetworkWrapper::ErrNoError) { switch (mode) { case PSetNetworkWrapper::SelectionModeAutomatic: manualOperatorSelection(); @@ -335,14 +358,11 @@ default: break; } - } else { - // offline mode. - emit showGlobalNote( - m_activeNoteId, - emit hbTrId("Operation not possible in Off-line mode"), - HbMessageBox::MessageTypeInformation); + } else { + DWARNING << ": err: " << err; + } } - + DPRINT << ": OUT"; } @@ -424,7 +444,12 @@ int mode) { DPRINT << ": IN"; - + removeConnection( + m_NetworkModeOptionsItemData, + SIGNAL(currentIndexChanged(int)), + this, + SLOT(networkModeStateChanged(int))); + switch (mode) { case PSetNetworkWrapper::AccessModeDual: m_NetworkModeOptionsItemData->setContentWidgetData( @@ -441,7 +466,13 @@ default: break; } - + + addConnection( + m_NetworkModeOptionsItemData, + SIGNAL(currentIndexChanged(int)), + this, + SLOT(networkModeStateChanged(int))); + DPRINT << ": OUT"; } @@ -482,7 +513,8 @@ CpNetworkPluginForm::createDialog */ void CpNetworkPluginForm::addItemToListWidget(HbListWidget* w, - const QString& item, const int& data) const + const QString& item, const int& data, + const HbIcon& primaryIcon) const { DPRINT << ": IN"; Q_ASSERT(w != 0); @@ -490,6 +522,8 @@ HbListWidgetItem* o = new HbListWidgetItem(); o->setText(item); o->setData(data); + if(!primaryIcon.isNull()) + o->setIcon(primaryIcon); w->addItem(o); DPRINT << ": OUT"; @@ -536,7 +570,7 @@ else if(type == PSetNetworkWrapper::RequestSetNetwork || type == PSetNetworkWrapper::RequestSetNetworkAutomatic || type == PSetNetworkWrapper::RequestGetNetworkInfo) { - restoreUiSelection(); + restoreOperatorSelectionUi(); } DPRINT << ": OUT"; @@ -551,7 +585,7 @@ DPRINT << ": IN"; m_psetNetworkWrapper->cancelRequest(); - restoreUiSelection(); + restoreOperatorSelectionUi(); DPRINT << ": OUT"; } @@ -593,7 +627,7 @@ QObject::connect( CpPhoneNotes::instance(), SIGNAL(progressNoteCanceled()), this, SLOT(userCancel())); - emit showGlobalProgressNote(m_activeProgressNoteId, hbTrId("Requesting")); + emit showGlobalProgressNote(m_activeProgressNoteId, hbTrId("txt_common_info_requesting")); } else { QObject::disconnect( CpPhoneNotes::instance(), SIGNAL(progressNoteCanceled()), @@ -649,7 +683,7 @@ for (int i = 0; i < itemsCount; i++) { PSetNetworkWrapper::NetworkInfo *info = m_networkInfoList->at(i); QString text = networkName(*info); - addItemToListWidget(list, text, i); + addItemToListWidget(list, text, i, HbIcon(primaryIconForNetwork(*info))); DPRINT << ": " << info; } // Connect list item activation signal to close the popup @@ -671,6 +705,42 @@ DPRINT << ": OUT"; } +/*! + CpNetworkPluginForm::primaryIconForNetwork + */ +QString CpNetworkPluginForm::primaryIconForNetwork(const PSetNetworkWrapper::NetworkInfo &info) +{ + DPRINT << ": IN"; + + QString iconName; + bool isForbiddenIconSupported = m_cpSettingsWrapper->forbiddenIconSupported(); + if (isForbiddenIconSupported) { + if (info.m_access == PSetNetworkWrapper::AccessTypeGsm) { + if (info.m_status == PSetNetworkWrapper::StatusForbidden) { + iconName.append("qtg_small_network_off"); + } else { + iconName.append("qtg_small_network"); + } + } else if (info.m_access == PSetNetworkWrapper::AccessTypeWcdma) { + if (info.m_status == PSetNetworkWrapper::StatusForbidden) { + iconName.append("qtg_small_wcdma_off"); + } else { + iconName.append("qtg_small_wcdma"); + } + } + else if (info.m_access == PSetNetworkWrapper::AccessTypeGsmAndWcdma) { + if (info.m_status == PSetNetworkWrapper::StatusForbidden) { + iconName.append("qtg_small_pd_wcdma_off"); + } else { + iconName.append("qtg_small_pd_wcdma"); + } + } + } + + DPRINT << ": OUT : " << iconName; + return iconName; +} + /*! CpNetworkPluginForm::finishedManualSelectiondialog. @@ -709,7 +779,7 @@ } else { DPRINT << ": Cancel"; m_psetNetworkWrapper->cancelRequest(); - restoreUiSelection(); + restoreOperatorSelectionUi(); } m_dialog->deleteLater(); m_dialog = NULL; @@ -719,15 +789,15 @@ } /*! - CpNetworkPluginForm::restoreUiSelection + CpNetworkPluginForm::restoreOperatorSelectionUi */ -void CpNetworkPluginForm::restoreUiSelection() +void CpNetworkPluginForm::restoreOperatorSelectionUi() { DPRINT << ": IN"; removeConnection( - m_NetworkOperatorSelectionItemData, SIGNAL(currentIndexChanged(int)), - this, SLOT(operatorSelectionStateChanged(int))); + m_NetworkOperatorSelectionItemData, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)), + this, SLOT(operatorSelectionStateChanged())); PSetNetworkWrapper::NetworkSelectionMode mode; PSetNetworkWrapper::ErrorCode err = m_psetNetworkWrapper->getNetworkSelectionMode(mode); @@ -746,8 +816,8 @@ } } addConnection( - m_NetworkOperatorSelectionItemData, SIGNAL(currentIndexChanged(int)), - this, SLOT(operatorSelectionStateChanged(int))); + m_NetworkOperatorSelectionItemData, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)), + this, SLOT(operatorSelectionStateChanged())); DPRINT << ": OUT"; } @@ -846,22 +916,6 @@ } /*! - CpNetworkPluginForm::isPhoneOnLine - */ -bool CpNetworkPluginForm::isPhoneOnLine() -{ - DPRINT << ": IN"; - - bool onLine(true); - if (m_cpSettingsWrapper->isPhoneOffline()) { - onLine = false; - } - - DPRINT << ": OUT : onLine : " << onLine; - return onLine; -} - -/*! CpNetworkPluginForm::searchAvailableNetworks */ void CpNetworkPluginForm::searchAvailableNetworks()