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