diff -r cfea66083b62 -r baacf668fe89 phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp --- a/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp Mon Oct 04 16:06:10 2010 +0300 +++ b/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp Fri Oct 15 12:58:46 2010 +0300 @@ -423,29 +423,45 @@ { DPRINT << ": IN"; - QVariant text = m_DataItemCallWaiting->contentWidgetData("text"); - QString callWaitingText = text.toString(); - - if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_check_status")) { - // Clicked first time, user want to check feature status - DPRINT << "checking status"; - m_callWaitingWrapper->getCallWaitingStatus(); - } else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_on")) { - DPRINT << "activate"; - // User want to activate call waiting feature - m_callWaitingWrapper->setCallWaiting( - PSetCallWaitingWrapper::ActivateCallWaiting, - AllTeleAndBearer); - } else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_off")) { - DPRINT << "deactivate"; - // User want to deactivate call waiting feature - m_callWaitingWrapper->setCallWaiting( - PSetCallWaitingWrapper::DeactivateCallWaiting, - AllTeleAndBearer); - } else { - DWARNING << ": Error, unhandled index!"; + QString callWaitingText = + m_DataItemCallWaiting->contentWidgetData("text").toString(); + + //Check if offline or no network coverage + if (m_cpSettingsWrapper->isPhoneOffline()){ + revertCallWaitingSelection(); + emit showGlobalNote( + m_activeNoteId, + emit hbTrId("txt_phone_info_offline_not_allowed"), + HbMessageBox::MessageTypeWarning); + } else if (!m_cpSettingsWrapper->isConnectedToNetwork()){ + revertCallWaitingSelection(); + emit showGlobalNote( + m_activeNoteId, + emit hbTrId("txt_phone_info_no_network_coverage"), + HbMessageBox::MessageTypeWarning); + } else{ + if (callWaitingText == + hbTrId("txt_phone_setlabel_call_waiting_val_check_status")) { + // Clicked first time, user want to check feature status + DPRINT << "checking status"; + m_callWaitingWrapper->getCallWaitingStatus(); + } else if (callWaitingText == + hbTrId("txt_phone_setlabel_call_waiting_val_on")) { + DPRINT << "activate"; + // User want to activate call waiting feature + m_callWaitingWrapper->setCallWaiting( + PSetCallWaitingWrapper::ActivateCallWaiting, + AllTeleAndBearer); + } else if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_off")) { + DPRINT << "deactivate"; + // User want to deactivate call waiting feature + m_callWaitingWrapper->setCallWaiting( + PSetCallWaitingWrapper::DeactivateCallWaiting, + AllTeleAndBearer); + } else { + DWARNING << ": Error, unhandled index!"; + } } - DPRINT << ": OUT"; } @@ -593,11 +609,33 @@ { DPRINT << ": IN"; DPRINT << "errorCode:" << errorCode; - + + revertCallWaitingSelection(); + emit cancelNote(m_activeNoteId); emit showGlobalErrorNote(m_activeNoteId, errorCode); DPRINT << ": OUT"; } +void CpCallsPluginGroup::revertCallWaitingSelection() +{ + DPRINT << ": IN"; + QString callWaitingText = m_DataItemCallWaiting->contentWidgetData("text").toString(); + if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_on")){ + DPRINT << "Call waiting on, revert to OFF:"; + m_DataItemCallWaiting->setContentWidgetData( + "text", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_off"))); + m_DataItemCallWaiting->setContentWidgetData( + "additionalText", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_on"))); + } + if (callWaitingText == hbTrId("txt_phone_setlabel_call_waiting_val_off")) { + DPRINT << "Call waiting off, revert to ON:"; + m_DataItemCallWaiting->setContentWidgetData( + "text", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_on"))); + m_DataItemCallWaiting->setContentWidgetData( + "additionalText", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_off"))); + } + DPRINT << ": OUT"; +} // End of File.