ipsservices/nmipssettings/src/nmipssettingshelper.cpp
changeset 59 16ed8d08d0b1
parent 54 997a02608b3a
child 65 478bc57ad291
equal deleted inserted replaced
54:997a02608b3a 59:16ed8d08d0b1
    21 
    21 
    22 #include <HbAction>
    22 #include <HbAction>
    23 #include <HbGlobal>
    23 #include <HbGlobal>
    24 #include <HbMessageBox>
    24 #include <HbMessageBox>
    25 #include <HbProgressDialog>
    25 #include <HbProgressDialog>
       
    26 #include <HbNotificationDialog>
    26 #include <HbInputDialog>
    27 #include <HbInputDialog>
    27 #include <HbDataFormModel>
    28 #include <HbDataFormModel>
    28 #include <HbExtendedLocale>
    29 #include <HbExtendedLocale>
    29 #include <HbLineEdit>
    30 #include <HbLineEdit>
    30 #include <HbValidator>
    31 #include <HbValidator>
    90   mEmitOnline(false),
    91   mEmitOnline(false),
    91   mSettingsManager(settingsManager),
    92   mSettingsManager(settingsManager),
    92   mDataForm(dataForm),
    93   mDataForm(dataForm),
    93   mDataFormModel(dataFormModel),
    94   mDataFormModel(dataFormModel),
    94   mDeleteConfirmationDialog(0),
    95   mDeleteConfirmationDialog(0),
    95   mDeleteInformationDialog(0),
       
    96   mIncomingPortInputDialog(0),
    96   mIncomingPortInputDialog(0),
    97   mIncomingPortInputValidator(0),
    97   mIncomingPortInputValidator(0),
    98   mFolderPathInputDialog(0),
    98   mFolderPathInputDialog(0),
    99   mOutgoingPortInputDialog(0),
    99   mOutgoingPortInputDialog(0),
   100   mOutgoingPortInputValidator(0),
   100   mOutgoingPortInputValidator(0),
   109 */
   109 */
   110 NmIpsSettingsHelper::~NmIpsSettingsHelper()
   110 NmIpsSettingsHelper::~NmIpsSettingsHelper()
   111 {
   111 {
   112     mContentItems.clear();
   112     mContentItems.clear();
   113     delete mDeleteConfirmationDialog;
   113     delete mDeleteConfirmationDialog;
   114     delete mDeleteInformationDialog;
       
   115     delete mIncomingPortInputDialog;
   114     delete mIncomingPortInputDialog;
   116     delete mIncomingPortInputValidator;
   115     delete mIncomingPortInputValidator;
   117     delete mFolderPathInputDialog;
   116     delete mFolderPathInputDialog;
   118     delete mOutgoingPortInputDialog;
   117     delete mOutgoingPortInputDialog;
   119 }
   118 }
   344 
   343 
   345 /*!
   344 /*!
   346     Creates the setting items under the Serverinfo group items user authentication.
   345     Creates the setting items under the Serverinfo group items user authentication.
   347 */
   346 */
   348 void NmIpsSettingsHelper::createServerInfoGroupDynamicItems(bool hiddenItem)
   347 void NmIpsSettingsHelper::createServerInfoGroupDynamicItems(bool hiddenItem)
   349 {   
   348 {
   350     HbDataFormModelItem *item = mContentItems.value(IpsServices::SMTPAuthentication);
   349     HbDataFormModelItem *item = mContentItems.value(IpsServices::SMTPAuthentication);
   351     int insertIndex = mServerInfoGroupItem->indexOf(item) + 1;
   350     int insertIndex = mServerInfoGroupItem->indexOf(item) + 1;
   352         
   351 
   353     // Username
   352     // Username
   354     QVariant username;
   353     QVariant username;
   355     mSettingsManager.readSetting(IpsServices::OutgoingLoginName, username);
   354     mSettingsManager.readSetting(IpsServices::OutgoingLoginName, username);
   356     CpSettingFormItemData *usernameItem = new CpSettingFormItemData(
   355     CpSettingFormItemData *usernameItem = new CpSettingFormItemData(
   357         HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_username"));
   356         HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_username"));
   376     passwordItem->setContentWidgetData("text", password);
   375     passwordItem->setContentWidgetData("text", password);
   377     passwordItem->setContentWidgetData("echoMode", HbLineEdit::PasswordEchoOnEdit);
   376     passwordItem->setContentWidgetData("echoMode", HbLineEdit::PasswordEchoOnEdit);
   378     mDataForm.addConnection(passwordItem, SIGNAL(editingFinished()),
   377     mDataForm.addConnection(passwordItem, SIGNAL(editingFinished()),
   379                             this, SLOT(saveOutgoingPassword()));
   378                             this, SLOT(saveOutgoingPassword()));
   380     mServerInfoGroupItem->insertChild(insertIndex + 1, passwordItem);
   379     mServerInfoGroupItem->insertChild(insertIndex + 1, passwordItem);
   381     
   380 
   382     mServerInfoDynamicItemsVisible = true;
   381     mServerInfoDynamicItemsVisible = true;
   383 }
   382 }
   384 
   383 
   385 /*!
   384 /*!
   386     Saves the My Name value into database if user has changed the value.
   385     Saves the My Name value into database if user has changed the value.
   595     Shows the confirmation dialog for user.
   594     Shows the confirmation dialog for user.
   596 */
   595 */
   597 void NmIpsSettingsHelper::deleteButtonPress()
   596 void NmIpsSettingsHelper::deleteButtonPress()
   598 {
   597 {
   599     if(!mDeleteConfirmationDialog) {
   598     if(!mDeleteConfirmationDialog) {
   600         mDeleteConfirmationDialog = 
   599         mDeleteConfirmationDialog =
   601             new HbMessageBox(HbMessageBox::MessageTypeQuestion);
   600             new HbMessageBox(HbMessageBox::MessageTypeQuestion);
   602         mDeleteConfirmationDialog->setText(
   601         mDeleteConfirmationDialog->setText(
   603             hbTrId("txt_mail_dialog_do_you_want_to_delete_the_mailbox"));
   602             hbTrId("txt_mail_dialog_do_you_want_to_delete_the_mailbox"));
   604         mDeleteConfirmationDialog->setTimeout(HbMessageBox::NoTimeout);
   603         mDeleteConfirmationDialog->setTimeout(HbMessageBox::NoTimeout);
       
   604         mDeleteConfirmationDialog->setStandardButtons(HbMessageBox::Yes | HbMessageBox::No);
   605     }
   605     }
   606     mDeleteConfirmationDialog->open(this, SLOT(handleMailboxDelete(HbAction *)));
   606     mDeleteConfirmationDialog->open(this, SLOT(handleMailboxDelete(HbAction *)));
   607 }
   607 }
   608 
   608 
   609 /*!
   609 /*!
   610     Deletes mailbox and displays the proper notes.
   610     Deletes mailbox and displays the proper notes.
   611 */
   611 */
   612 void NmIpsSettingsHelper::handleMailboxDelete(HbAction *action)
   612 void NmIpsSettingsHelper::handleMailboxDelete(HbAction *action)
   613 {
   613 {
   614     if (action == mDeleteConfirmationDialog->actions().at(0)) {        
   614     if (action == mDeleteConfirmationDialog->actions().at(0)) {
   615         emit goOffline(mSettingsManager.mailboxId());
   615         emit goOffline(mSettingsManager.mailboxId());
   616         mEmitOnline = false;
   616         mEmitOnline = false;
   617     
   617 
   618         QVariant mailboxName;
   618         QVariant mailboxName;
   619         mSettingsManager.readSetting(IpsServices::MailboxName, mailboxName);
   619         mSettingsManager.readSetting(IpsServices::MailboxName, mailboxName);
   620     
   620 
   621         // Display the progress note. Before display the note, remove the cancel
   621         // Display the progress note. Before display the note, remove the cancel
   622         // button.
   622         // button.
   623         HbProgressDialog progressNote(HbProgressDialog::WaitDialog);
   623         HbProgressDialog progressNote(HbProgressDialog::WaitDialog);
   624         progressNote.setText(hbTrId("txt_common_info_deleting"));
   624         progressNote.setText(hbTrId("txt_common_info_deleting"));
   625         progressNote.removeAction(progressNote.actions().at(0));
   625         progressNote.removeAction(progressNote.actions().at(0));
   626         progressNote.delayedShow();
   626         progressNote.delayedShow();
   627     
   627 
   628         if (!mSettingsManager.deleteMailbox()) {
   628         if (!mSettingsManager.deleteMailbox()) {
   629             // The mailbox was deleted successfully.
   629             // The mailbox was deleted successfully.
   630 
   630 
   631             // Delete the mailbox also from AppLib.
   631             // Delete the mailbox also from AppLib.
   632             updateAppLib(UnregisterMailbox);
   632             updateAppLib(UnregisterMailbox);
   633 
   633 
   634             // Hide the progress note and display the "mailbox deleted" dialog.
   634             // Hide the progress note and display the "mailbox deleted" dialog.
   635             progressNote.close();
   635             progressNote.close();
   636             
   636 
   637             if (!mDeleteInformationDialog) {
   637             HbNotificationDialog *note = new HbNotificationDialog();
   638                 mDeleteInformationDialog = 
   638             QString noteText = hbTrId("txt_mail_dialog_1_deleted").arg(mailboxName.toString());
   639                     new HbMessageBox(HbMessageBox::MessageTypeInformation);
   639             note->setTitle(noteText);
   640                 mDeleteInformationDialog->setText(
   640             note->setAttribute(Qt::WA_DeleteOnClose);
   641                     hbTrId("txt_mail_dpophead _1_deleted").arg(mailboxName.toString()));
   641             note->open(this, SLOT(handleMailboxDeleteUpdate(HbAction *)));
   642                 mDeleteInformationDialog->setTimeout(HbMessageBox::NoTimeout);
       
   643             }
       
   644             mDeleteInformationDialog->open(this, SLOT(handleMailboxDeleteUpdate(HbAction *)));            
       
   645             
       
   646         } else {
   642         } else {
   647             // Failed to delete the mailbox!
   643             // Failed to delete the mailbox!
   648             progressNote.close();
   644             progressNote.close();
   649         }
   645         }
   650     }
   646     }
   822     \param index Used to determine if the default value or a user defined value should be written
   818     \param index Used to determine if the default value or a user defined value should be written
   823 */
   819 */
   824 void NmIpsSettingsHelper::incomingPortChange(int index)
   820 void NmIpsSettingsHelper::incomingPortChange(int index)
   825 {
   821 {
   826     int previousindex = getCorrectIncomingPortRadioButtonIndex();
   822     int previousindex = getCorrectIncomingPortRadioButtonIndex();
   827     
   823 
   828     if (index == IpsServices::NmIpsSettingsDefault) {
   824     if (index == IpsServices::NmIpsSettingsDefault) {
   829         if (index != previousindex) {
   825         if (index != previousindex) {
   830             emit goOffline(mSettingsManager.mailboxId());
   826             emit goOffline(mSettingsManager.mailboxId());
   831             mEmitOnline = true;
   827             mEmitOnline = true;
   832             int port = mSettingsManager.determineDefaultIncomingPort();
   828             int port = mSettingsManager.determineDefaultIncomingPort();
   833             mSettingsManager.writeSetting(IpsServices::IncomingPort, port);    
   829             mSettingsManager.writeSetting(IpsServices::IncomingPort, port);
   834         }
   830         }
   835     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
   831     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
   836         showIncomingPortInputDialog();
   832         showIncomingPortInputDialog();
   837     }
   833     }
   838 }
   834 }
   839 
   835 
   840 /*!
   836 /*!
   841     Shows an input dialog for allowing the user to specify a incoming port.
   837     Shows an input dialog for allowing the user to specify a incoming port.
   842 */
   838 */
   843 void NmIpsSettingsHelper::showIncomingPortInputDialog()
   839 void NmIpsSettingsHelper::showIncomingPortInputDialog()
   844 {    
   840 {
   845     // User can open the dialog multiple times, so delete the old ones first.
   841     // User can open the dialog multiple times, so delete the old ones first.
   846     delete mIncomingPortInputDialog;
   842     delete mIncomingPortInputDialog;
   847     mIncomingPortInputDialog = 0;
   843     mIncomingPortInputDialog = 0;
   848     delete mIncomingPortInputValidator;
   844     delete mIncomingPortInputValidator;
   849     mIncomingPortInputValidator = 0;
   845     mIncomingPortInputValidator = 0;
   850     
   846 
   851     mIncomingPortInputDialog = new HbInputDialog();
   847     mIncomingPortInputDialog = new HbInputDialog();
   852     mIncomingPortInputDialog->setInputMode(HbInputDialog::IntInput);
   848     mIncomingPortInputDialog->setInputMode(HbInputDialog::IntInput);
   853     QVariant currentPort;
   849     QVariant currentPort;
   854     mSettingsManager.readSetting(IpsServices::IncomingPort, currentPort);
   850     mSettingsManager.readSetting(IpsServices::IncomingPort, currentPort);
   855     mIncomingPortInputValidator = new HbValidator();
   851     mIncomingPortInputValidator = new HbValidator();
   856     mIncomingPortInputValidator->addField(new QIntValidator(0, 65535, 0), 
   852     mIncomingPortInputValidator->addField(new QIntValidator(0, 65535, 0),
   857                         HbStringUtil::convertDigits(QString::number(currentPort.toInt())));
   853                         HbStringUtil::convertDigits(QString::number(currentPort.toInt())));
   858     mIncomingPortInputDialog->setValidator(mIncomingPortInputValidator);
   854     mIncomingPortInputDialog->setValidator(mIncomingPortInputValidator);
   859     mIncomingPortInputDialog->setPromptText(
   855     mIncomingPortInputDialog->setPromptText(
   860         hbTrId("txt_mailips_setlabel_incoming_port_user_defined"));
   856         hbTrId("txt_mailips_setlabel_incoming_port_user_defined"));
   861     
   857 
   862     mIncomingPortInputDialog->open(this, SLOT(handleUserDefinedIncomingPortInput(HbAction *)));
   858     mIncomingPortInputDialog->open(this, SLOT(handleUserDefinedIncomingPortInput(HbAction *)));
   863 }
   859 }
   864 
   860 
   865 /*!
   861 /*!
   866    Handles the saving of the port new value.
   862    Handles the saving of the port new value.
   867 */
   863 */
   868 void NmIpsSettingsHelper::handleUserDefinedIncomingPortInput(HbAction *action)
   864 void NmIpsSettingsHelper::handleUserDefinedIncomingPortInput(HbAction *action)
   869 {
   865 {
   870     int previousindex = getCorrectIncomingPortRadioButtonIndex();
   866     int previousindex = getCorrectIncomingPortRadioButtonIndex();
   871     
   867 
   872     if (action == mIncomingPortInputDialog->actions().at(0)) {
   868     if (action == mIncomingPortInputDialog->actions().at(0)) {
   873         QVariant newPort = mIncomingPortInputDialog->value();
   869         QVariant newPort = mIncomingPortInputDialog->value();
   874         emit goOffline(mSettingsManager.mailboxId());
   870         emit goOffline(mSettingsManager.mailboxId());
   875         mEmitOnline = true;
   871         mEmitOnline = true;
   876         mSettingsManager.writeSetting(IpsServices::IncomingPort, newPort);
   872         mSettingsManager.writeSetting(IpsServices::IncomingPort, newPort);
   880         item->setContentWidgetData("selected", previousindex);
   876         item->setContentWidgetData("selected", previousindex);
   881     }
   877     }
   882 }
   878 }
   883 
   879 
   884 /*!
   880 /*!
   885     Used for getting the index to display in the port radio button list 
   881     Used for getting the index to display in the port radio button list
   886     \return index Used to set the selected value
   882     \return index Used to set the selected value
   887 */
   883 */
   888 int NmIpsSettingsHelper::getCorrectIncomingPortRadioButtonIndex()
   884 int NmIpsSettingsHelper::getCorrectIncomingPortRadioButtonIndex()
   889 {
   885 {
   890     QVariant incomingPort;
   886     QVariant incomingPort;
   901 
   897 
   902 /*!
   898 /*!
   903     Saves the incoming secure connection value into database if user has changed the value.
   899     Saves the incoming secure connection value into database if user has changed the value.
   904 */
   900 */
   905 void NmIpsSettingsHelper::incomingSecureConnectionItemChange(int index)
   901 void NmIpsSettingsHelper::incomingSecureConnectionItemChange(int index)
   906 {  
   902 {
   907     int previousindex = getCorrectIncomingSecureRadioButtonIndex();
   903     int previousindex = getCorrectIncomingSecureRadioButtonIndex();
   908     
   904 
   909     if (previousindex != index) {
   905     if (previousindex != index) {
   910         emit goOffline(mSettingsManager.mailboxId());
   906         emit goOffline(mSettingsManager.mailboxId());
   911         mEmitOnline = true;
   907         mEmitOnline = true;
   912         switch (index) {
   908         switch (index) {
   913             case IpsServices::EMailStartTls: // On (Start TLS)
   909             case IpsServices::EMailStartTls: // On (Start TLS)
   914                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, true);
   910                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, true);
   915                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, false);
   911                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, false);
   916                 break;
   912                 break;
   917     
   913 
   918             case IpsServices::EMailSslTls: // On (SSL/TLS)
   914             case IpsServices::EMailSslTls: // On (SSL/TLS)
   919                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, false);
   915                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, false);
   920                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, true);
   916                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, true);
   921                 break;
   917                 break;
   922     
   918 
   923             case IpsServices::EMailSecurityOff: // Off
   919             case IpsServices::EMailSecurityOff: // Off
   924                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, false);
   920                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, false);
   925                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, false);
   921                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, false);
   926                 break;
   922                 break;
   927     
   923 
   928              default:
   924              default:
   929                 break;
   925                 break;
   930         }
   926         }
   931         // Update incoming port value only if default incoming port used
   927         // Update incoming port value only if default incoming port used
   932         HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
   928         HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
   947 {
   943 {
   948     QVariant secureSockets;
   944     QVariant secureSockets;
   949     QVariant secureSSLWrapper;
   945     QVariant secureSSLWrapper;
   950     mSettingsManager.readSetting(IpsServices::IncomingSecureSockets, secureSockets);
   946     mSettingsManager.readSetting(IpsServices::IncomingSecureSockets, secureSockets);
   951     mSettingsManager.readSetting(IpsServices::IncomingSSLWrapper, secureSSLWrapper);
   947     mSettingsManager.readSetting(IpsServices::IncomingSSLWrapper, secureSSLWrapper);
   952     
   948 
   953     IpsServices::TIpsSetDataSecurityTypes securityType = IpsServices::EMailStartTls;
   949     IpsServices::TIpsSetDataSecurityTypes securityType = IpsServices::EMailStartTls;
   954     // secureSockets == True
   950     // secureSockets == True
   955     if (secureSockets.toBool()) { 
   951     if (secureSockets.toBool()) {
   956         securityType = IpsServices::EMailStartTls;
   952         securityType = IpsServices::EMailStartTls;
   957     }
   953     }
   958     // secureSockets == False & secureSSLWrapper == True
   954     // secureSockets == False & secureSSLWrapper == True
   959     else if (secureSSLWrapper.toBool()) {
   955     else if (secureSSLWrapper.toBool()) {
   960         securityType = IpsServices::EMailSslTls;
   956         securityType = IpsServices::EMailSslTls;
   974 {
   970 {
   975     QVariant secureSockets;
   971     QVariant secureSockets;
   976     QVariant secureSSLWrapper;
   972     QVariant secureSSLWrapper;
   977     mSettingsManager.readSetting(IpsServices::OutgoingSecureSockets, secureSockets);
   973     mSettingsManager.readSetting(IpsServices::OutgoingSecureSockets, secureSockets);
   978     mSettingsManager.readSetting(IpsServices::OutgoingSSLWrapper, secureSSLWrapper);
   974     mSettingsManager.readSetting(IpsServices::OutgoingSSLWrapper, secureSSLWrapper);
   979     
   975 
   980     IpsServices::TIpsSetDataSecurityTypes securityType = IpsServices::EMailStartTls;
   976     IpsServices::TIpsSetDataSecurityTypes securityType = IpsServices::EMailStartTls;
   981     // secureSockets == True
   977     // secureSockets == True
   982     if (secureSockets.toBool()) { 
   978     if (secureSockets.toBool()) {
   983         securityType = IpsServices::EMailStartTls;
   979         securityType = IpsServices::EMailStartTls;
   984     }
   980     }
   985     // secureSockets == False & secureSSLWrapper == True
   981     // secureSockets == False & secureSSLWrapper == True
   986     else if (secureSSLWrapper.toBool()) {
   982     else if (secureSSLWrapper.toBool()) {
   987         securityType = IpsServices::EMailSslTls;
   983         securityType = IpsServices::EMailSslTls;
   997     Saves the folderpath value into database if user has changed the value.
   993     Saves the folderpath value into database if user has changed the value.
   998 */
   994 */
   999 void NmIpsSettingsHelper::folderPathChange(int index)
   995 void NmIpsSettingsHelper::folderPathChange(int index)
  1000 {
   996 {
  1001     int previousindex = getCorrectFolderPathRadioButtonIndex();
   997     int previousindex = getCorrectFolderPathRadioButtonIndex();
  1002         
   998 
  1003     if (index == IpsServices::NmIpsSettingsDefault) {
   999     if (index == IpsServices::NmIpsSettingsDefault) {
  1004         if (index != previousindex ) {
  1000         if (index != previousindex ) {
  1005             // Empty string sets the folder path to default.
  1001             // Empty string sets the folder path to default.
  1006             mSettingsManager.writeSetting(IpsServices::FolderPath, "");    
  1002             mSettingsManager.writeSetting(IpsServices::FolderPath, "");
  1007         }
  1003         }
  1008     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
  1004     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
  1009         showFolderPathInputDialog();       
  1005         showFolderPathInputDialog();
  1010     }
  1006     }
  1011 }
  1007 }
  1012 
  1008 
  1013 /*!
  1009 /*!
  1014     Show a input dialog for allowing the user to specify a folder path.
  1010     Show a input dialog for allowing the user to specify a folder path.
  1015 */
  1011 */
  1016 void NmIpsSettingsHelper::showFolderPathInputDialog()
  1012 void NmIpsSettingsHelper::showFolderPathInputDialog()
  1017 {   
  1013 {
  1018     // User can open the dialog multiple times, so delete the old one first.
  1014     // User can open the dialog multiple times, so delete the old one first.
  1019     delete mFolderPathInputDialog;
  1015     delete mFolderPathInputDialog;
  1020     mFolderPathInputDialog = 0;
  1016     mFolderPathInputDialog = 0;
  1021     
  1017 
  1022     QVariant folderPath;
  1018     QVariant folderPath;
  1023     mSettingsManager.readSetting(IpsServices::FolderPath, folderPath);
  1019     mSettingsManager.readSetting(IpsServices::FolderPath, folderPath);
  1024     
  1020 
  1025     mFolderPathInputDialog = new HbInputDialog();
  1021     mFolderPathInputDialog = new HbInputDialog();
  1026     mFolderPathInputDialog->setInputMode(HbInputDialog::TextInput);
  1022     mFolderPathInputDialog->setInputMode(HbInputDialog::TextInput);
  1027     mFolderPathInputDialog->setPromptText(hbTrId("txt_mailips_setlabel_folder_path_user_defined"));
  1023     mFolderPathInputDialog->setPromptText(hbTrId("txt_mailips_setlabel_folder_path_user_defined"));
  1028     mFolderPathInputDialog->setValue(folderPath.toString());
  1024     mFolderPathInputDialog->setValue(folderPath.toString());
  1029     
  1025 
  1030     mFolderPathInputDialog->open(this, SLOT(handleUserDefinedFolderPathInput(HbAction *)));
  1026     mFolderPathInputDialog->open(this, SLOT(handleUserDefinedFolderPathInput(HbAction *)));
  1031 }
  1027 }
  1032 
  1028 
  1033 /*!
  1029 /*!
  1034    Handels the saving of the folder path new value.
  1030    Handels the saving of the folder path new value.
  1035 */
  1031 */
  1036 void NmIpsSettingsHelper::handleUserDefinedFolderPathInput(HbAction *action)
  1032 void NmIpsSettingsHelper::handleUserDefinedFolderPathInput(HbAction *action)
  1037 {
  1033 {
  1038     int previousindex = getCorrectFolderPathRadioButtonIndex();
  1034     int previousindex = getCorrectFolderPathRadioButtonIndex();
  1039     
  1035 
  1040     HbDataFormModelItem *item = mContentItems.value(IpsServices::FolderPath);
  1036     HbDataFormModelItem *item = mContentItems.value(IpsServices::FolderPath);
  1041     
  1037 
  1042     if (action == mFolderPathInputDialog->actions().at(0)) { 
  1038     if (action == mFolderPathInputDialog->actions().at(0)) {
  1043         QVariant newFolderPath = mFolderPathInputDialog->value();
  1039         QVariant newFolderPath = mFolderPathInputDialog->value();
  1044         mSettingsManager.writeSetting(IpsServices::FolderPath, newFolderPath);
  1040         mSettingsManager.writeSetting(IpsServices::FolderPath, newFolderPath);
  1045         //set selected index to default if user inputed empty string.
  1041         //set selected index to default if user inputed empty string.
  1046         if (newFolderPath.toString().isEmpty()) {
  1042         if (newFolderPath.toString().isEmpty()) {
  1047             item->setContentWidgetData("selected", IpsServices::NmIpsSettingsDefault);
  1043             item->setContentWidgetData("selected", IpsServices::NmIpsSettingsDefault);
  1133         handleReceivingScheduleSettingChange(IpsServices::ReceptionDayEndTime, endTime);
  1129         handleReceivingScheduleSettingChange(IpsServices::ReceptionDayEndTime, endTime);
  1134     }
  1130     }
  1135 }
  1131 }
  1136 
  1132 
  1137 /*!
  1133 /*!
  1138     Used for getting the index to display in the inbox path radio button list 
  1134     Used for getting the index to display in the inbox path radio button list
  1139     \return index Used to set the selected value
  1135     \return index Used to set the selected value
  1140 */
  1136 */
  1141 int NmIpsSettingsHelper::getCorrectFolderPathRadioButtonIndex()
  1137 int NmIpsSettingsHelper::getCorrectFolderPathRadioButtonIndex()
  1142 {
  1138 {
  1143     QVariant folderPath;
  1139     QVariant folderPath;
  1144     mSettingsManager.readSetting(IpsServices::FolderPath, folderPath);
  1140     mSettingsManager.readSetting(IpsServices::FolderPath, folderPath);
  1145     
  1141 
  1146     int index(0);
  1142     int index(0);
  1147     if (folderPath.toString().isEmpty()) {
  1143     if (folderPath.toString().isEmpty()) {
  1148         index = IpsServices::NmIpsSettingsDefault;
  1144         index = IpsServices::NmIpsSettingsDefault;
  1149     } else {
  1145     } else {
  1150         index = IpsServices::NmIpsSettingsUserDefined;
  1146         index = IpsServices::NmIpsSettingsUserDefined;
  1280     \param index Used to determine if the default value or a user defined value should be written
  1276     \param index Used to determine if the default value or a user defined value should be written
  1281 */
  1277 */
  1282 void NmIpsSettingsHelper::outgoingPortChange(int index)
  1278 void NmIpsSettingsHelper::outgoingPortChange(int index)
  1283 {
  1279 {
  1284     int previousindex = getCorrectOutgoingPortRadioButtonIndex();
  1280     int previousindex = getCorrectOutgoingPortRadioButtonIndex();
  1285     
  1281 
  1286     if (index == IpsServices::NmIpsSettingsDefault) {
  1282     if (index == IpsServices::NmIpsSettingsDefault) {
  1287         if (index != previousindex) {
  1283         if (index != previousindex) {
  1288             emit goOffline(mSettingsManager.mailboxId());
  1284             emit goOffline(mSettingsManager.mailboxId());
  1289             mEmitOnline = true;
  1285             mEmitOnline = true;
  1290             int port = mSettingsManager.determineDefaultOutgoingPort();
  1286             int port = mSettingsManager.determineDefaultOutgoingPort();
  1291             mSettingsManager.writeSetting(IpsServices::OutgoingPort, port);    
  1287             mSettingsManager.writeSetting(IpsServices::OutgoingPort, port);
  1292         }
  1288         }
  1293     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
  1289     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
  1294         showOutgoingPortInputDialog();
  1290         showOutgoingPortInputDialog();
  1295     }
  1291     }
  1296 }
  1292 }
  1303     // User can open the dialog multiple times, so delete the old ones first.
  1299     // User can open the dialog multiple times, so delete the old ones first.
  1304     delete mOutgoingPortInputDialog;
  1300     delete mOutgoingPortInputDialog;
  1305     mOutgoingPortInputDialog = 0;
  1301     mOutgoingPortInputDialog = 0;
  1306     delete mOutgoingPortInputValidator;
  1302     delete mOutgoingPortInputValidator;
  1307     mOutgoingPortInputValidator = 0;
  1303     mOutgoingPortInputValidator = 0;
  1308     
  1304 
  1309     mOutgoingPortInputDialog = new HbInputDialog();
  1305     mOutgoingPortInputDialog = new HbInputDialog();
  1310     mOutgoingPortInputDialog->setInputMode(HbInputDialog::IntInput);
  1306     mOutgoingPortInputDialog->setInputMode(HbInputDialog::IntInput);
  1311     QVariant currentPort;
  1307     QVariant currentPort;
  1312     mSettingsManager.readSetting(IpsServices::OutgoingPort, currentPort);
  1308     mSettingsManager.readSetting(IpsServices::OutgoingPort, currentPort);
  1313     mOutgoingPortInputValidator = new HbValidator();
  1309     mOutgoingPortInputValidator = new HbValidator();
  1314     mOutgoingPortInputValidator->addField(new QIntValidator(0, 65535, 0), 
  1310     mOutgoingPortInputValidator->addField(new QIntValidator(0, 65535, 0),
  1315                         HbStringUtil::convertDigits(QString::number(currentPort.toInt())));
  1311                         HbStringUtil::convertDigits(QString::number(currentPort.toInt())));
  1316     mOutgoingPortInputDialog->setValidator(mOutgoingPortInputValidator);
  1312     mOutgoingPortInputDialog->setValidator(mOutgoingPortInputValidator);
  1317     mOutgoingPortInputDialog->setPromptText(
  1313     mOutgoingPortInputDialog->setPromptText(
  1318         hbTrId("txt_mailips_setlabel_incoming_port_user_defined"));
  1314         hbTrId("txt_mailips_setlabel_incoming_port_user_defined"));
  1319     
  1315 
  1320     mOutgoingPortInputDialog->open(this, SLOT(handleUserDefinedOutgoingPortInput(HbAction *)));
  1316     mOutgoingPortInputDialog->open(this, SLOT(handleUserDefinedOutgoingPortInput(HbAction *)));
  1321 }
  1317 }
  1322 
  1318 
  1323 /*!
  1319 /*!
  1324     Handles the saving of the port new value.
  1320     Handles the saving of the port new value.
  1325     \action Selected action.
  1321     \action Selected action.
  1326 */
  1322 */
  1327 void NmIpsSettingsHelper::handleUserDefinedOutgoingPortInput(HbAction *action)
  1323 void NmIpsSettingsHelper::handleUserDefinedOutgoingPortInput(HbAction *action)
  1328 {
  1324 {
  1329     int previousindex = getCorrectOutgoingPortRadioButtonIndex();
  1325     int previousindex = getCorrectOutgoingPortRadioButtonIndex();
  1330     
  1326 
  1331     if (action == mOutgoingPortInputDialog->actions().at(0)) {
  1327     if (action == mOutgoingPortInputDialog->actions().at(0)) {
  1332         QVariant newPort = mOutgoingPortInputDialog->value();
  1328         QVariant newPort = mOutgoingPortInputDialog->value();
  1333         emit goOffline(mSettingsManager.mailboxId());
  1329         emit goOffline(mSettingsManager.mailboxId());
  1334         mEmitOnline = true;
  1330         mEmitOnline = true;
  1335         mSettingsManager.writeSetting(IpsServices::OutgoingPort, newPort);
  1331         mSettingsManager.writeSetting(IpsServices::OutgoingPort, newPort);
  1363 */
  1359 */
  1364 int NmIpsSettingsHelper::getCorrectOutgoingPortRadioButtonIndex()
  1360 int NmIpsSettingsHelper::getCorrectOutgoingPortRadioButtonIndex()
  1365 {
  1361 {
  1366     QVariant outgoingPort;
  1362     QVariant outgoingPort;
  1367     mSettingsManager.readSetting(IpsServices::OutgoingPort, outgoingPort);
  1363     mSettingsManager.readSetting(IpsServices::OutgoingPort, outgoingPort);
  1368     
  1364 
  1369     int index = 0;
  1365     int index = 0;
  1370     int port = mSettingsManager.determineDefaultOutgoingPort();
  1366     int port = mSettingsManager.determineDefaultOutgoingPort();
  1371     if (port == outgoingPort.toInt()) {
  1367     if (port == outgoingPort.toInt()) {
  1372         index = IpsServices::NmIpsSettingsDefault;
  1368         index = IpsServices::NmIpsSettingsDefault;
  1373     } else {
  1369     } else {
  1397     outgoingPassword = temp.toString();
  1393     outgoingPassword = temp.toString();
  1398     mSettingsManager.readSetting(IpsServices::IncomingLoginName, temp);
  1394     mSettingsManager.readSetting(IpsServices::IncomingLoginName, temp);
  1399     incomingLoginName = temp.toString();
  1395     incomingLoginName = temp.toString();
  1400     mSettingsManager.readSetting(IpsServices::IncomingPassword, temp);
  1396     mSettingsManager.readSetting(IpsServices::IncomingPassword, temp);
  1401     incomingPassword = temp.toString();
  1397     incomingPassword = temp.toString();
  1402     
  1398 
  1403     if (outgoingAuthentication) {
  1399     if (outgoingAuthentication) {
  1404         if (outgoingLoginName == incomingLoginName && outgoingPassword == incomingPassword) {
  1400         if (outgoingLoginName == incomingLoginName && outgoingPassword == incomingPassword) {
  1405             index = IpsServices::EMailAuthSameAsIncoming;
  1401             index = IpsServices::EMailAuthSameAsIncoming;
  1406             HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingLoginName);
  1402             HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingLoginName);
  1407             if (item) {
  1403             if (item) {
  1417 /*!
  1413 /*!
  1418     Saves the outgoing secure connection value into database if user has changed the value.
  1414     Saves the outgoing secure connection value into database if user has changed the value.
  1419     \param index Selected radio button index.
  1415     \param index Selected radio button index.
  1420 */
  1416 */
  1421 void NmIpsSettingsHelper::outgoingSecureConnectionItemChange(int index)
  1417 void NmIpsSettingsHelper::outgoingSecureConnectionItemChange(int index)
  1422 {      
  1418 {
  1423     int previousindex = getCorrectOutgoingSecureRadioButtonIndex();
  1419     int previousindex = getCorrectOutgoingSecureRadioButtonIndex();
  1424     
  1420 
  1425     if (previousindex != index) {
  1421     if (previousindex != index) {
  1426         emit goOffline(mSettingsManager.mailboxId());
  1422         emit goOffline(mSettingsManager.mailboxId());
  1427         mEmitOnline = true;
  1423         mEmitOnline = true;
  1428         switch (index) {
  1424         switch (index) {
  1429             case IpsServices::EMailStartTls: // On (Start TLS)
  1425             case IpsServices::EMailStartTls: // On (Start TLS)
  1461     \param index Selected radio button index.
  1457     \param index Selected radio button index.
  1462 */
  1458 */
  1463 void NmIpsSettingsHelper::outgoingAuthenticationChange(int index)
  1459 void NmIpsSettingsHelper::outgoingAuthenticationChange(int index)
  1464 {
  1460 {
  1465     int previousindex = getCorrectOutgoingAuthenticationRadioButtonIndex();
  1461     int previousindex = getCorrectOutgoingAuthenticationRadioButtonIndex();
  1466     
  1462 
  1467     if (previousindex != index) {
  1463     if (previousindex != index) {
  1468         QVariant loginName;
  1464         QVariant loginName;
  1469         QVariant loginPassword;
  1465         QVariant loginPassword;
  1470         emit goOffline(mSettingsManager.mailboxId());
  1466         emit goOffline(mSettingsManager.mailboxId());
  1471         mEmitOnline = true;
  1467         mEmitOnline = true;
  1476                 break;
  1472                 break;
  1477 
  1473 
  1478             case IpsServices::EMailAuthSameAsIncoming: // Same as Incoming
  1474             case IpsServices::EMailAuthSameAsIncoming: // Same as Incoming
  1479                 deleteServerInfoGroupDynamicItems();
  1475                 deleteServerInfoGroupDynamicItems();
  1480                 mSettingsManager.writeSetting(IpsServices::SMTPAuthentication, true);
  1476                 mSettingsManager.writeSetting(IpsServices::SMTPAuthentication, true);
  1481               
  1477 
  1482                 mSettingsManager.readSetting(IpsServices::IncomingLoginName, loginName);
  1478                 mSettingsManager.readSetting(IpsServices::IncomingLoginName, loginName);
  1483                 mSettingsManager.writeSetting(IpsServices::OutgoingLoginName, loginName);
  1479                 mSettingsManager.writeSetting(IpsServices::OutgoingLoginName, loginName);
  1484                 
  1480 
  1485                 mSettingsManager.readSetting(IpsServices::IncomingPassword, loginPassword);
  1481                 mSettingsManager.readSetting(IpsServices::IncomingPassword, loginPassword);
  1486                 mSettingsManager.writeSetting(IpsServices::OutgoingPassword, loginPassword);
  1482                 mSettingsManager.writeSetting(IpsServices::OutgoingPassword, loginPassword);
  1487                 break;
  1483                 break;
  1488 
  1484 
  1489             case IpsServices::EMailAuthUserAuthentication: // User authentication
  1485             case IpsServices::EMailAuthUserAuthentication: // User authentication
  1490                 mSettingsManager.writeSetting(IpsServices::SMTPAuthentication, true);
  1486                 mSettingsManager.writeSetting(IpsServices::SMTPAuthentication, true);
  1491                 createServerInfoGroupDynamicItems(false);
  1487                 createServerInfoGroupDynamicItems(false);
  1492                 break;
  1488                 break;
  1493                 
  1489 
  1494              default:
  1490              default:
  1495                 break;
  1491                 break;
  1496         }
  1492         }
  1497     }
  1493     }
  1498 }
  1494 }