ipsservices/nmipssettings/src/nmipssettingsplugin.cpp
changeset 65 478bc57ad291
parent 54 997a02608b3a
child 75 47d84de1c893
equal deleted inserted replaced
59:16ed8d08d0b1 65:478bc57ad291
    24 #include <HbStringUtil>
    24 #include <HbStringUtil>
    25 #include <HbDataForm>
    25 #include <HbDataForm>
    26 #include <HbDataFormModel>
    26 #include <HbDataFormModel>
    27 #include <HbDataFormModelItem>
    27 #include <HbDataFormModelItem>
    28 #include <HbLineEdit>
    28 #include <HbLineEdit>
       
    29 #include <HbAction>
    29 
    30 
    30 #include <cpsettingformitemdata.h>
    31 #include <cpsettingformitemdata.h>
    31 
    32 
    32 #include "nmipssettingsplugin.h"
    33 #include "nmipssettingsplugin.h"
    33 #include "nmipssettingshelper.h"
    34 #include "nmipssettingshelper.h"
    58     Constructor of NmIpsSettingsPlugin.
    59     Constructor of NmIpsSettingsPlugin.
    59 */
    60 */
    60 NmIpsSettingsPlugin::NmIpsSettingsPlugin()
    61 NmIpsSettingsPlugin::NmIpsSettingsPlugin()
    61 : mSettingsHelper(0),
    62 : mSettingsHelper(0),
    62   mSettingsManager(0),
    63   mSettingsManager(0),
    63   mHiddenItem(false)
    64   mHiddenItem(false),
       
    65   mCurrentInboxIndex(-1)
    64 {
    66 {
    65     QString lang = QLocale::system().name();
    67     QString lang = QLocale::system().name();
    66     QString path = "Z:/resource/qt/translations/";
    68     QString path = "Z:/resource/qt/translations/";
    67     QString appName = "mailips_";
    69     QString appName = "mailips_";
    68     QString commonName = "common_";
    70     QString commonName = "common_";
   334     item.appendChild(showMailInInboxItem);
   336     item.appendChild(showMailInInboxItem);
   335 
   337 
   336     // Active sync profile connection
   338     // Active sync profile connection
   337     mForm->addConnection(infoItem, SIGNAL(currentIndexChanged(int)),
   339     mForm->addConnection(infoItem, SIGNAL(currentIndexChanged(int)),
   338         mSettingsHelper, SLOT(receivingScheduleChange(int)));
   340         mSettingsHelper, SLOT(receivingScheduleChange(int)));
   339 
   341     mForm->addConnection(showMailInInboxItem, SIGNAL(finished(HbAction *)),
   340     mForm->addConnection(showMailInInboxItem, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)),
   342            this, SLOT(showMailInInboxModified(HbAction *)));
   341         this, SLOT(showMailInInboxModified(QPersistentModelIndex, QVariant)));
   343     mForm->addConnection(showMailInInboxItem, SIGNAL(itemSelected(int)),
   342 
   344            this, SLOT(inboxSelectionModified(int)));
       
   345     
   343     // Must be called manually here, because the signal->slot connection set above using
   346     // Must be called manually here, because the signal->slot connection set above using
   344     // HbDataForm::addConnection() is actually established AFTER the properties have first been
   347     // HbDataForm::addConnection() is actually established AFTER the properties have first been
   345     // set to the widget, causing the first currentIndexChanged signal not to reach
   348     // set to the widget, causing the first currentIndexChanged signal not to reach
   346     // NmIpsSettingsHelper::receivingScheduleChange().
   349     // NmIpsSettingsHelper::receivingScheduleChange().
   347     mSettingsHelper->receivingScheduleChange(profileIndex.toInt());
   350     mSettingsHelper->receivingScheduleChange(profileIndex.toInt());
   632         mSettingsManager->writeSetting(IpsServices::ReceptionUserDefinedProfile, userDefineMode);
   635         mSettingsManager->writeSetting(IpsServices::ReceptionUserDefinedProfile, userDefineMode);
   633     }
   636     }
   634 }
   637 }
   635 
   638 
   636 /*!
   639 /*!
   637     Handles mail in inbox modifications.
   640 Handles mail in inbox modifications.
   638 
   641 
   639     \param value Selected value as a text.
   642 \param action Action that determines whether user clicked OK or cancel.
   640 */
   643 */
   641 void NmIpsSettingsPlugin::showMailInInboxModified(QPersistentModelIndex, QVariant value)
   644 void NmIpsSettingsPlugin::showMailInInboxModified(HbAction *action)
   642 {
   645 {
   643     QMap<QString, int> conversionTable;
   646     if ((action->text() == hbTrId("txt_common_button_ok"))
   644     conversionTable[HbStringUtil::convertDigits("50")] = 50;
   647             && (mCurrentInboxIndex >=0 && mCurrentInboxIndex <=3)) {
   645     conversionTable[HbStringUtil::convertDigits("100")] = 100;
   648         int conversionTable[] = { 50, 100, 500, 0 };
   646     conversionTable[HbStringUtil::convertDigits("500")] = 500;
   649         int selectedValue(conversionTable[mCurrentInboxIndex]);
   647     conversionTable[hbTrId("txt_mailips_setlabel_val_all")] = 0;
   650         
   648 
   651         QVariant previouslySelectedValue;
   649     int selectedValue(conversionTable.value(value.toString()));
   652         mSettingsManager->readSetting(IpsServices::ReceptionInboxSyncWindow, previouslySelectedValue);
   650     QVariant previouslySelectedValue;
   653         if (previouslySelectedValue.toInt() != selectedValue) {
   651     mSettingsManager->readSetting(IpsServices::ReceptionInboxSyncWindow, previouslySelectedValue);
   654             mSettingsHelper->handleReceivingScheduleSettingChange(
   652     if (previouslySelectedValue.toInt() != selectedValue) {
   655                 IpsServices::ReceptionInboxSyncWindow, selectedValue);
   653         mSettingsHelper->handleReceivingScheduleSettingChange(
   656         }
   654             IpsServices::ReceptionInboxSyncWindow, selectedValue);
   657     }
   655     }
   658     mCurrentInboxIndex = -1;
       
   659 }
       
   660 /*!
       
   661 Handles mail in inbox modifications.
       
   662 
       
   663 Index   Value
       
   664 0       50
       
   665 1       100
       
   666 2       500
       
   667 3       All
       
   668 
       
   669 \param index The index value of the selection.
       
   670 */
       
   671 void NmIpsSettingsPlugin::inboxSelectionModified(int index)
       
   672 {
       
   673     mCurrentInboxIndex = index;
   656 }
   674 }
   657 
   675 
   658 Q_EXPORT_PLUGIN2(nmipssettings, NmIpsSettingsPlugin);
   676 Q_EXPORT_PLUGIN2(nmipssettings, NmIpsSettingsPlugin);