phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp
changeset 30 ebdbd102c78a
parent 27 2f8f8080a020
child 51 f39ed5e045e0
--- a/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp	Mon May 03 12:31:11 2010 +0300
+++ b/phonesettings/cpphonesettingsplugins/callsplugin/src/cpcallsplugingroup.cpp	Fri May 14 15:51:57 2010 +0300
@@ -24,9 +24,6 @@
 #include <hbdataformviewitem.h>
 #include <hbcheckbox.h>
 #include <QString>
-#include <QApplication>
-#include <QLocale>
-#include <QTranslator>
 #include <hblineedit.h>
 #include <hbcombobox.h>
 #include <hbdeviceprogressdialog.h>
@@ -46,18 +43,6 @@
 {
     DPRINT << ": IN";
 
-    // Localization file loading
-    QTranslator translator; 
-    QString lang = QLocale::system().name();
-    QString path = "z:/resource/qt/translations/";
-    DPRINT << ": loading translation: " << QString(path + "telephone_cp_" + lang);
-    bool translatorLoaded = translator.load(path + "telephone_cp_" + lang);
-    DPRINT << ": translator loaded: " << translatorLoaded; 
-    if (translatorLoaded) {
-        qApp->installTranslator(&translator);
-        DPRINT << ": translator installed"; 
-    }
-
     m_cpSettingsWrapper = new CpSettingsWrapper;
     m_pSetWrapper = new PSetWrapper; 
     DPRINT << "PSetWrapper created";
@@ -93,13 +78,6 @@
     CpPhoneNotes *phoneNotes = CpPhoneNotes::instance();
     QObject::connect(
         this, 
-        SIGNAL(showBasicServiceList(
-            const QString&, const QList<unsigned char> &)),
-        phoneNotes, 
-        SLOT(showBasicServiceList(
-            const QString&, const QList<unsigned char> &)));
-    QObject::connect(
-        this, 
         SIGNAL(showGlobalProgressNote(int &, const QString&)),
         phoneNotes, 
         SLOT(showGlobalProgressNote(int &, const QString&)));
@@ -164,19 +142,26 @@
     // Read show call duration value from Cenrep 
     bool showCallDurationStatus = m_cpSettingsWrapper->showCallDuration();
     DPRINT << "showCallDurationStatus:" << showCallDurationStatus;
-    m_DataItemShowCallDuration = new CpSettingFormItemData(
-        HbDataFormModelItem::CheckBoxItem, hbTrId("") ,this);
-    m_DataItemShowCallDuration->setContentWidgetData(
-        "text", QVariant(hbTrId("Show call duration")));
+
+    m_DataItemShowCallDuration =
+        new CpSettingFormItemData(
+            HbDataFormModelItem::ToggleValueItem,
+            hbTrId("txt_phone_formlabel_show_call_duration"),
+            this);
+
     if (showCallDurationStatus) {
         m_DataItemShowCallDuration->setContentWidgetData(
-            "checkState", QVariant(Qt::Checked));
+            "text", QVariant(hbTrId("txt_phone_setlabel_val_yes")));
+        m_DataItemShowCallDuration->setContentWidgetData(
+            "additionalText", QVariant(hbTrId("txt_phone_setlabel_val_no")));
     } else {
         m_DataItemShowCallDuration->setContentWidgetData(
-            "checkState", QVariant(Qt::Unchecked));
+            "text", QVariant(hbTrId("txt_phone_setlabel_val_no")));
+        m_DataItemShowCallDuration->setContentWidgetData(
+            "additionalText", QVariant(hbTrId("txt_phone_setlabel_val_yes")));
     }
+
     appendChild( m_DataItemShowCallDuration ); 
-    
     DPRINT << ": OUT";
 }
     
@@ -247,18 +232,16 @@
 
     m_DataItemCallWaiting = 
         new CpSettingFormItemData(
-            HbDataFormModelItem::ComboBoxItem,
+            HbDataFormModelItem::ToggleValueItem,
             hbTrId("txt_phone_setlabel_call_waiting"),
             this);
-    QStringList list;
-    QMapIterator<int, QString> mapIterator(m_callWaitingSettingMap);
-    while (mapIterator.hasNext()) {
-        mapIterator.next();
-        list << mapIterator.value(); 
-        }; 
-    m_DataItemCallWaiting->setContentWidgetData("items", QVariant(list));
+
+    m_DataItemCallWaiting->setContentWidgetData(
+        "text", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_check_status")));
+    m_DataItemCallWaiting->setContentWidgetData(
+        "additionalText", QVariant(hbTrId("txt_phone_setlabel_call_waiting_val_check_status")));
+
     appendChild(m_DataItemCallWaiting);
-    
     DPRINT << ": OUT";
 }
 
@@ -270,8 +253,8 @@
     DPRINT << ": IN";
     
     m_helper.addConnection(
-        m_DataItemShowCallDuration, SIGNAL(stateChanged(int)),
-        this, SLOT(showCallDurationStateChanged(int)));
+        m_DataItemShowCallDuration, SIGNAL(clicked()),
+        this, SLOT(showCallDurationStateChanged()));
 
     DPRINT << ": OUT";
 }
@@ -322,8 +305,8 @@
     DPRINT << ": IN";
 
     m_helper.addConnection(
-        m_DataItemCallWaiting, SIGNAL(currentIndexChanged(int)),
-        this, SLOT(callWaitingCurrentIndexChanged(int)));
+        m_DataItemCallWaiting, SIGNAL(clicked()),
+        this, SLOT(callWaitingCurrentIndexChanged()));
 
     DPRINT << ": OUT";
 }
@@ -331,15 +314,19 @@
 /*!
   CpCallsPluginGroup::showCallDurationStateChanged.
  */
-void CpCallsPluginGroup::showCallDurationStateChanged(int state)
+void CpCallsPluginGroup::showCallDurationStateChanged()
 {
     DPRINT << ": IN";
 
-    DPRINT << "state:" << state;
-    if (state == Qt::Checked) {
+    QVariant text = m_DataItemShowCallDuration->contentWidgetData("text");
+    QString showCallDurationText = text.toString();
+
+    if (showCallDurationText == hbTrId("txt_phone_setlabel_val_yes")) {
         m_cpSettingsWrapper->setShowCallDuration(true);
+    } else if (showCallDurationText == hbTrId("txt_phone_setlabel_val_no")){
+        m_cpSettingsWrapper->setShowCallDuration(false);
     } else {
-        m_cpSettingsWrapper->setShowCallDuration(false);
+        DPRINT << "nothing done";
     }
 
     DPRINT << ": OUT";
@@ -354,7 +341,7 @@
     
     QVariant text = m_DataItemSoftRejectTextEditor->contentWidgetData("text");
     QString softRejectText = text.toString();  
-    if (!softRejectText.isNull()) {
+    if (!softRejectText.isEmpty()) {
         DPRINT << "softRejectText:" << softRejectText;
         m_cpSettingsWrapper->writeSoftRejectText(softRejectText, true);
     }
@@ -365,42 +352,37 @@
 /*!
   CpCallsPluginGroup::callWaitingCurrentIndexChanged.
  */
-void CpCallsPluginGroup::callWaitingCurrentIndexChanged(int index)
+void CpCallsPluginGroup::callWaitingCurrentIndexChanged()
 {
     DPRINT << ": IN";
-    DPRINT << "index:" << index;
+
+    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();
+    }
 
-    if ( index >= 0 ) {
-        QString settingMapString = m_callWaitingSettingMap.value(index);
-        DPRINT << "settingMapString:" << settingMapString;
-        switch (index) {
-            case PSetCallWaitingWrapper::ActivateCallWaiting: {
-                DPRINT << "activate";
-                m_callWaitingWrapper->setCallWaiting(
-                        PSetCallWaitingWrapper::ActivateCallWaiting,
-                        AllTeleAndBearer);
-                }
-                break; 
-            case PSetCallWaitingWrapper::DeactivateCallWaiting: {
-                DPRINT << "deactivate";
-                m_callWaitingWrapper->setCallWaiting(
-                        PSetCallWaitingWrapper::DeactivateCallWaiting,
-                        AllTeleAndBearer);
-                }
-                break; 
-            case PSetCallWaitingWrapper::CheckCallWaitingStatus: {
-                DPRINT << "check status";
-                m_callWaitingWrapper->getCallWaitingStatus();
-                }
-                break;
-            default: 
-                DPRINT << "Error: unknown enum value";
-                break; 
-        }
-    } else {
-        DPRINT << "Error: negative index!";
+    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 {
+        DPRINT << "nothing done";
+    }
+
     DPRINT << ": OUT";
 }
 
@@ -434,13 +416,6 @@
     m_cliSettingMap.insert(ClirExplicitSuppress, hbTrId("txt_phone_setlabel_val_yes"));
     m_cliSettingMap.insert(ClirExplicitInvoke, hbTrId("txt_phone_setlabel_val_no"));
 
-    m_callWaitingSettingMap.insert(
-        PSetCallWaitingWrapper::ActivateCallWaiting, hbTrId("txt_phone_setlabel_call_waiting_val_on"));
-    m_callWaitingSettingMap.insert(
-        PSetCallWaitingWrapper::DeactivateCallWaiting, hbTrId("txt_phone_setlabel_call_waiting_val_off"));
-    m_callWaitingSettingMap.insert(
-        PSetCallWaitingWrapper::CheckCallWaitingStatus, hbTrId("Check status"));
-    
     DPRINT << ": OUT";
 }
 
@@ -451,21 +426,39 @@
     PSetCallWaitingWrapper::PsCallWaitingStatus status,
     const QList<unsigned char> &basicServiceGroupIds)
 {
-    DPRINT << ": IN";
+    DPRINT << ": IN status: " << status;
+    // This happens only in the very first time when clicked.
+
     emit cancelNote(m_activeNoteId);
     
+    bool alsCaseOnly = false;
+    if (1 == basicServiceGroupIds.count() &&
+        AltTele == static_cast<BasicServiceGroups>(basicServiceGroupIds.at(0))) {
+        DPRINT << "Status is only for als";
+        alsCaseOnly = true;
+    }
+
     if (m_callWaitingDistinguishEnabled &&
-            status == PSetCallWaitingWrapper::StatusNotProvisioned) {
-        emit showGlobalNote(m_activeNoteId, 
-            hbTrId("txt_phone_info_request_not_completed"), HbMessageBox::MessageTypeInformation);
-    } else if (status != PSetCallWaitingWrapper::StatusActive) {
+            PSetCallWaitingWrapper::StatusNotProvisioned == status) {
+        DPRINT << ": not provisioned";
         emit showGlobalNote(m_activeNoteId,
-            hbTrId("txt_phone_info_call_waiting_deactivated"), HbMessageBox::MessageTypeInformation);
+            hbTrId("txt_phone_info_request_not_completed"), 
+            HbMessageBox::MessageTypeInformation);
+    } else if (PSetCallWaitingWrapper::StatusActive == status && !alsCaseOnly) {
+        DPRINT << ": status active";
+        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")));
+
     } else {
-        emit showGlobalNote(m_activeNoteId,
-            hbTrId("txt_phone_info_call_waiting_activated"), HbMessageBox::MessageTypeInformation);
+        DPRINT << ": status not active";
+        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")));
     }
-    
+
     DPRINT << ": OUT";
 }