phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp
changeset 78 baacf668fe89
parent 76 cfea66083b62
--- 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.