ipsservices/nmipssettings/src/nmipssettingshelper.cpp
changeset 65 478bc57ad291
parent 59 16ed8d08d0b1
child 75 47d84de1c893
--- a/ipsservices/nmipssettings/src/nmipssettingshelper.cpp	Wed Aug 18 09:37:47 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipssettingshelper.cpp	Thu Sep 02 20:15:00 2010 +0300
@@ -100,7 +100,8 @@
   mOutgoingPortInputValidator(0),
   mDestinationDialog(0),
   mServerInfoDynamicItemsVisible(false),
-  mAbortDynamicRSItemHandling(false)
+  mAbortDynamicRSItemHandling(false),
+  mCurrentRefreshIndex(-1)
 {
 }
 
@@ -315,9 +316,12 @@
                                      << HbStringUtil::convertDigits(hbTrId("txt_mailips_setlabel_val_every_1_hour"))
                                      << HbStringUtil::convertDigits(hbTrId("txt_mailips_setlabel_val_every_4_hours"));
                     formItemData->setContentWidgetData("items", refreshMailItems);
-                    mDataForm.addConnection(
-                        formItemData, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)),
-                        this, SLOT(refreshPeriodModified(QPersistentModelIndex, QVariant)));
+                    
+                    mDataForm.addConnection(formItemData, SIGNAL(finished(HbAction *)),
+                           this, SLOT(refreshPeriodModified(HbAction *)));
+                    
+                    mDataForm.addConnection(formItemData, SIGNAL(itemSelected(int)),
+                           this, SLOT(refreshIndexModified(int)));
                 }
 
                 // Update data
@@ -1095,28 +1099,6 @@
 }
 
 /*!
-    Handles refresh period modifications.
-    \param value Selected value as a text.
-*/
-void NmIpsSettingsHelper::refreshPeriodModified(QPersistentModelIndex, QVariant value)
-{
-    QMap<QString, int> conversionTable;
-    conversionTable[HbStringUtil::convertDigits(hbTrId("txt_mailips_setlabel_val_keep_uptodate"))] = 5;
-    conversionTable[HbStringUtil::convertDigits(hbTrId("txt_mailips_setlabel_val_every_15_minutes"))] = 15;
-    conversionTable[HbStringUtil::convertDigits(hbTrId("txt_mailips_setlabel_val_every_1_hour"))] = 60;
-    conversionTable[HbStringUtil::convertDigits(hbTrId("txt_mailips_setlabel_val_every_4_hours"))] = 240;
-
-    int selectedValue(conversionTable.value(value.toString()));
-    QVariant previouslySelectedValue;
-    mSettingsManager.readSetting(IpsServices::ReceptionRefreshPeriodDayTime,
-        previouslySelectedValue);
-    if (selectedValue != previouslySelectedValue.toInt()) {
-        handleReceivingScheduleSettingChange(IpsServices::ReceptionRefreshPeriodDayTime,
-            selectedValue);
-    }
-}
-
-/*!
     Handles end time modifications.
     \param time Modified start time.
 */
@@ -1521,3 +1503,40 @@
     // Open the dialog.
     mDestinationDialog->open();
 }
+
+/*!
+Handles refresh period modifications.
+
+Index   Value
+0       5 minutes
+1       15 minutes
+2       60 minutes
+3       240 minutes
+
+\param index The index value of the selection.
+*/
+void NmIpsSettingsHelper::refreshIndexModified(int index)
+{
+    mCurrentRefreshIndex = index;
+}
+
+/*!
+    Handles refresh period modifications.
+    \param action Action that determines whether user clicked OK or cancel.
+*/
+void NmIpsSettingsHelper::refreshPeriodModified(HbAction *action)
+{
+    if ((action->text() == hbTrId("txt_common_button_ok")
+            && (mCurrentRefreshIndex >=0 && mCurrentRefreshIndex <=3))) {
+        int conversionTable[] = { 5, 15, 60, 240 };
+        int selectedValue(conversionTable[mCurrentRefreshIndex]);
+        QVariant previouslySelectedValue;
+        mSettingsManager.readSetting(IpsServices::ReceptionRefreshPeriodDayTime,
+            previouslySelectedValue);
+        if (selectedValue != previouslySelectedValue.toInt()) {
+            handleReceivingScheduleSettingChange(IpsServices::ReceptionRefreshPeriodDayTime,
+                selectedValue);
+        }
+    }
+    mCurrentRefreshIndex = -1;
+}