ipsservices/nmipssettings/src/nmipssettingshelper.cpp
changeset 44 c2d07d913565
parent 43 99bcbff212ad
child 47 f83bd4ae1fe3
equal deleted inserted replaced
43:99bcbff212ad 44:c2d07d913565
    35 
    35 
    36 #include <cmapplsettingsui.h>
    36 #include <cmapplsettingsui.h>
    37 #include <cmmanagerdefines_shim.h>
    37 #include <cmmanagerdefines_shim.h>
    38 #include <qnetworkconfigmanager.h>
    38 #include <qnetworkconfigmanager.h>
    39 #include <qnetworkconfiguration.h>
    39 #include <qnetworkconfiguration.h>
    40 
    40 #include <qservicemanager.h>
    41 
    41 
    42 #include "nmipssettingshelper.h"
    42 #include "nmipssettingshelper.h"
    43 #include "nmipssettingsmanagerbase.h"
    43 #include "nmipssettingsmanagerbase.h"
    44 #include "nmipssettingscustomitem.h"
    44 #include "nmipssettingscustomitem.h"
    45 #include "nmipsextendedsettingsmanager.h"
    45 #include "nmipsextendedsettingsmanager.h"
    46 
    46 
    47 // CONSTANTS
    47 // CONSTANTS
    48 
    48 
    49 // Dynamic receiving schedule group items.
    49 // Dynamic receiving schedule items.
    50 const IpsServices::SettingItem NmIpsSettingsReceivingSchedule[] = {
    50 const IpsServices::SettingItem NmIpsSettingsReceivingScheduleItems[] = {
    51         IpsServices::ReceptionInboxSyncWindow,
    51         IpsServices::ReceptionInboxSyncWindow,
    52         IpsServices::ReceptionWeekDays,
    52         IpsServices::ReceptionWeekDays,
    53         IpsServices::ReceptionDayStartTime,
    53         IpsServices::ReceptionDayStartTime,
    54         IpsServices::ReceptionDayEndTime,
    54         IpsServices::ReceptionDayEndTime,
    55         IpsServices::ReceptionRefreshPeriodDayTime};
    55         IpsServices::ReceptionRefreshPeriodDayTime};
       
    56 
       
    57 // Dynamic receiving schedule item count.
       
    58 const int NmIpsSettingsReceivingScheduleItemCount(
       
    59     sizeof(NmIpsSettingsReceivingScheduleItems) / sizeof(NmIpsSettingsReceivingScheduleItems[0]));
       
    60 
       
    61 // Index of ReceptionDayStartTime in NmIpsSettingsReceivingScheduleItems array.
       
    62 const int NmIpsSettingsIndexOfReceptionDayStartTime(2);
       
    63 
       
    64 // Index of user defined mode.
       
    65 const int NmIpsSettingsIndexOfUserDefinedMode(3);
       
    66 
       
    67 // Receving schedule item not found value.
       
    68 const int NmIpsSettingsRecevingScheduleItemNotFound(-1);
       
    69 
       
    70 
    56 
    71 
    57 QTM_USE_NAMESPACE
    72 QTM_USE_NAMESPACE
    58 
    73 
    59 
    74 
    60 /*!
    75 /*!
    83   mFolderPathInputDialog(0),
    98   mFolderPathInputDialog(0),
    84   mOutgoingPortInputDialog(0),
    99   mOutgoingPortInputDialog(0),
    85   mOutgoingPortInputValidator(0),
   100   mOutgoingPortInputValidator(0),
    86   mDestinationDialog(0),
   101   mDestinationDialog(0),
    87   mServerInfoDynamicItemsVisible(false),
   102   mServerInfoDynamicItemsVisible(false),
    88   mRadioButtonPreviousIndex(0)
   103   mAbortDynamicRSItemHandling(false)
    89 
       
    90 {
   104 {
    91 }
   105 }
    92 
   106 
    93 /*!
   107 /*!
    94     Destructor of NmIpsSettingsHelper.
   108     Destructor of NmIpsSettingsHelper.
   186                                       << 0x40;
   200                                       << 0x40;
   187 
   201 
   188                     formItemData->setData(HbDataFormModelItem::HbDataFormModelItem::DescriptionRole + 1,
   202                     formItemData->setData(HbDataFormModelItem::HbDataFormModelItem::DescriptionRole + 1,
   189                         weekdayItemValues);
   203                         weekdayItemValues);
   190 
   204 
   191                     formItemData->setContentWidgetData(QString("heading"),
   205                     formItemData->setContentWidgetData("heading",
   192                         hbTrId("txt_mailips_dialog_heading_receiving_weekdays"));
   206                         hbTrId("txt_mailips_dialog_heading_receiving_weekdays"));
   193 
   207 
   194                     formItemData->setContentWidgetData(QString("items"), weekdayItems);
   208                     formItemData->setContentWidgetData("items", weekdayItems);
   195 
   209 
   196                     mDataForm.addConnection(formItemData, SIGNAL(editingFinished()),
   210                     mDataForm.addConnection(formItemData, SIGNAL(editingFinished()),
   197                         this, SLOT(receivingWeekdaysModified()));
   211                         this, SLOT(receivingWeekdaysModified()));
   198                 }
   212                 }
   199 
   213 
   209                    if (days & (1 << i)) {
   223                    if (days & (1 << i)) {
   210                        selectedDays.append(i);
   224                        selectedDays.append(i);
   211                    }
   225                    }
   212                 }
   226                 }
   213 
   227 
   214                 formItemData->setContentWidgetData(QString("selectedItems"), selectedDays);
   228                 formItemData->setContentWidgetData("selectedItems", selectedDays);
   215 
   229 
   216                 // Every weekday selected
   230                 if (days == 0) {
   217                 if (days == 0x7f) {
   231                     // Abort receiving schedule handling and delete unecessary settings items.
   218                     formItemData->setContentWidgetData(QString("text"),
   232                     mAbortDynamicRSItemHandling = true;
       
   233                     noReceptionWeekdaysSelected();
       
   234                     // Update button text nothing selected.
       
   235                     formItemData->setContentWidgetData("text",
       
   236                         hbTrId("txt_mailips_setlabel_download_images_val_none"));
       
   237 
       
   238                 } else if (days == 0x7f) {
       
   239                     // Update button text every day selected.
       
   240                     formItemData->setContentWidgetData("text",
   219                         hbTrId("txt_mailips_setlabel_download_images_val_every_day"));
   241                         hbTrId("txt_mailips_setlabel_download_images_val_every_day"));
   220                 }
   242                 }
   221 
       
   222                 break;
   243                 break;
   223             }
   244             }
   224 
   245 
   225             // 4. Day start time
   246             // 4. Day start time
   226             case IpsServices::ReceptionDayStartTime:
   247             case IpsServices::ReceptionDayStartTime:
   230                     formItemData = new CpSettingFormItemData(
   251                     formItemData = new CpSettingFormItemData(
   231                         static_cast<HbDataFormModelItem::DataItemType>(NmIpsSettingsCustomItem::TimeEditor),
   252                         static_cast<HbDataFormModelItem::DataItemType>(NmIpsSettingsCustomItem::TimeEditor),
   232                             hbTrId("txt_mailips_setlabel_day_start_time"));
   253                             hbTrId("txt_mailips_setlabel_day_start_time"));
   233 
   254 
   234                     insertContentItem(IpsServices::ReceptionDayStartTime, formItemData);
   255                     insertContentItem(IpsServices::ReceptionDayStartTime, formItemData);
   235                     formItemData->setContentWidgetData(QString("heading"),
   256                     formItemData->setContentWidgetData("heading",
   236                         hbTrId("txt_mailips_dialog_heading_start_time"));
   257                         hbTrId("txt_mailips_dialog_heading_start_time"));
   237                     mReceivingScheduleGroupItem->appendChild(formItemData);
   258                     mReceivingScheduleGroupItem->appendChild(formItemData);
   238                     mDataForm.addConnection(formItemData, SIGNAL(timeChanged(QTime)),
   259                     mDataForm.addConnection(formItemData, SIGNAL(timeChanged(QTime)),
   239                         this, SLOT(startTimeModified(QTime)));
   260                         this, SLOT(startTimeModified(QTime)));
   240 
   261 
   253             case IpsServices::ReceptionDayEndTime:
   274             case IpsServices::ReceptionDayEndTime:
   254             {
   275             {
   255                 // If not exist, create one
   276                 // If not exist, create one
   256                 if (!formItemData) {
   277                 if (!formItemData) {
   257                     formItemData = new CpSettingFormItemData(
   278                     formItemData = new CpSettingFormItemData(
   258                         static_cast<HbDataFormModelItem::DataItemType> (NmIpsSettingsCustomItem::TimeEditor),
   279                         static_cast<HbDataFormModelItem::DataItemType>(NmIpsSettingsCustomItem::TimeEditor),
   259                             hbTrId("txt_mailips_setlabel_day_end_time"));
   280                             hbTrId("txt_mailips_setlabel_day_end_time"));
   260 
   281 
   261                     insertContentItem(IpsServices::ReceptionDayEndTime, formItemData);
   282                     insertContentItem(IpsServices::ReceptionDayEndTime, formItemData);
   262                     formItemData->setContentWidgetData(QString("heading"),
   283                     formItemData->setContentWidgetData("heading",
   263                         hbTrId("txt_mailips_dialog_heading_end_time"));
   284                         hbTrId("txt_mailips_dialog_heading_end_time"));
   264                     mReceivingScheduleGroupItem->appendChild(formItemData);
   285                     mReceivingScheduleGroupItem->appendChild(formItemData);
   265                 }
   286                 }
   266 
   287 
   267                 // Update data
   288                 // Update data
   292                     QStringList refreshMailItems;
   313                     QStringList refreshMailItems;
   293                     refreshMailItems << hbTrId("txt_mailips_setlabel_val_keep_uptodate")
   314                     refreshMailItems << hbTrId("txt_mailips_setlabel_val_keep_uptodate")
   294                                      << hbTrId("txt_mailips_setlabel_val_every_15_minutes")
   315                                      << hbTrId("txt_mailips_setlabel_val_every_15_minutes")
   295                                      << hbTrId("txt_mailips_setlabel_val_every_1_hour")
   316                                      << hbTrId("txt_mailips_setlabel_val_every_1_hour")
   296                                      << hbTrId("txt_mailips_setlabel_val_every_4_hours");
   317                                      << hbTrId("txt_mailips_setlabel_val_every_4_hours");
   297                     formItemData->setContentWidgetData(QString("items"), refreshMailItems);
   318                     formItemData->setContentWidgetData("items", refreshMailItems);
   298                     mDataForm.addConnection(
   319                     mDataForm.addConnection(
   299                         formItemData, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)),
   320                         formItemData, SIGNAL(valueChanged(QPersistentModelIndex, QVariant)),
   300                         this, SLOT(refreshPeriodModified(QPersistentModelIndex, QVariant)));
   321                         this, SLOT(refreshPeriodModified(QPersistentModelIndex, QVariant)));
   301                 }
   322                 }
   302 
   323 
   306                 QHash<int,int> refreshPeriod;
   327                 QHash<int,int> refreshPeriod;
   307                 refreshPeriod[5] = 0;
   328                 refreshPeriod[5] = 0;
   308                 refreshPeriod[15] = 1;
   329                 refreshPeriod[15] = 1;
   309                 refreshPeriod[60] = 2;
   330                 refreshPeriod[60] = 2;
   310                 refreshPeriod[240] = 3;
   331                 refreshPeriod[240] = 3;
   311                 formItemData->setContentWidgetData(QString("selected"),
   332                 formItemData->setContentWidgetData("selected",
   312                     refreshPeriod.value(interval.toInt()));
   333                     refreshPeriod.value(interval.toInt()));
   313                 break;
   334                 break;
   314             }
   335             }
   315             default:
   336             default:
   316             {
   337             {
   322 }
   343 }
   323 
   344 
   324 /*!
   345 /*!
   325     Creates the setting items under the Serverinfo group items user authentication.
   346     Creates the setting items under the Serverinfo group items user authentication.
   326 */
   347 */
   327 void NmIpsSettingsHelper::createServerInfoGroupDynamicItems()
   348 void NmIpsSettingsHelper::createServerInfoGroupDynamicItems(bool hiddenItem)
   328 {   
   349 {   
   329     HbDataFormModelItem *item = mContentItems.value(IpsServices::SMTPAuthentication);
   350     HbDataFormModelItem *item = mContentItems.value(IpsServices::SMTPAuthentication);
   330     int insertIndex = mServerInfoGroupItem->indexOf(item) + 1;
   351     int insertIndex = mServerInfoGroupItem->indexOf(item) + 1;
   331         
   352         
   332     // Username
   353     // Username
   333     QVariant username;
   354     QVariant username;
   334     mSettingsManager.readSetting(IpsServices::OutgoingLoginName, username);
   355     mSettingsManager.readSetting(IpsServices::OutgoingLoginName, username);
   335     CpSettingFormItemData *usernameItem = new CpSettingFormItemData(
   356     CpSettingFormItemData *usernameItem = new CpSettingFormItemData(
   336         HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_username"));
   357         HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_username"));
   337     insertContentItem(IpsServices::OutgoingLoginName, usernameItem);
   358     insertContentItem(IpsServices::OutgoingLoginName, usernameItem);
   338     usernameItem->setContentWidgetData(QString("text"), username);
   359     usernameItem->setContentWidgetData("text", username);
   339     mDataForm.addConnection(usernameItem, SIGNAL(editingFinished()),
   360     mDataForm.addConnection(usernameItem, SIGNAL(editingFinished()),
   340                             this, SLOT(saveOutgoingUserName()));
   361                             this, SLOT(saveOutgoingUserName()));
   341     mDataForm.addConnection(usernameItem, SIGNAL(textChanged(QString)),
   362     mDataForm.addConnection(usernameItem, SIGNAL(textChanged(QString)),
   342                             this, SLOT(outgoingUserNameTextChange(QString)));
   363                             this, SLOT(outgoingUserNameTextChange(QString)));
       
   364     if (hiddenItem) { // Starred and dimmed.
       
   365         usernameItem->setContentWidgetData("echoMode", HbLineEdit::Password);
       
   366         usernameItem->setEnabled(false);
       
   367     }
   343     mServerInfoGroupItem->insertChild(insertIndex, usernameItem);
   368     mServerInfoGroupItem->insertChild(insertIndex, usernameItem);
   344 
   369 
   345     // Password
   370     // Password
   346     QVariant password;
   371     QVariant password;
   347     mSettingsManager.readSetting(IpsServices::OutgoingPassword, password);
   372     mSettingsManager.readSetting(IpsServices::OutgoingPassword, password);
   348     CpSettingFormItemData *passwordItem = new CpSettingFormItemData(
   373     CpSettingFormItemData *passwordItem = new CpSettingFormItemData(
   349         HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_password"));
   374         HbDataFormModelItem::TextItem, hbTrId("txt_mailips_setlabel_password"));
   350     insertContentItem(IpsServices::OutgoingPassword, passwordItem);
   375     insertContentItem(IpsServices::OutgoingPassword, passwordItem);
   351     passwordItem->setContentWidgetData(QString("text"), password);
   376     passwordItem->setContentWidgetData("text", password);
   352     passwordItem->setContentWidgetData(QString("echoMode"), HbLineEdit::PasswordEchoOnEdit);
   377     passwordItem->setContentWidgetData("echoMode", HbLineEdit::PasswordEchoOnEdit);
   353     mDataForm.addConnection(passwordItem, SIGNAL(editingFinished()),
   378     mDataForm.addConnection(passwordItem, SIGNAL(editingFinished()),
   354                             this, SLOT(saveOutgoingPassword()));
   379                             this, SLOT(saveOutgoingPassword()));
   355     mServerInfoGroupItem->insertChild(insertIndex + 1, passwordItem);
   380     mServerInfoGroupItem->insertChild(insertIndex + 1, passwordItem);
   356     
   381     
   357     mServerInfoDynamicItemsVisible = true;
   382     mServerInfoDynamicItemsVisible = true;
   362 */
   387 */
   363 void NmIpsSettingsHelper::saveMyName()
   388 void NmIpsSettingsHelper::saveMyName()
   364 {
   389 {
   365     if (mCurrentLineEditChanged) {
   390     if (mCurrentLineEditChanged) {
   366         HbDataFormModelItem *item = mContentItems.value(IpsServices::EmailAlias);
   391         HbDataFormModelItem *item = mContentItems.value(IpsServices::EmailAlias);
   367         QVariant data = item->contentWidgetData(QString("text"));
   392         QVariant data = item->contentWidgetData("text");
   368         mSettingsManager.writeSetting(IpsServices::EmailAlias, data);
   393         mSettingsManager.writeSetting(IpsServices::EmailAlias, data);
   369     }
   394     }
   370     mCurrentLineEditChanged = false;
   395     mCurrentLineEditChanged = false;
   371 }
   396 }
   372 
   397 
   386 void NmIpsSettingsHelper::saveMailboxName()
   411 void NmIpsSettingsHelper::saveMailboxName()
   387 {
   412 {
   388 	bool ok = true;
   413 	bool ok = true;
   389     if (mCurrentLineEditChanged) {
   414     if (mCurrentLineEditChanged) {
   390         HbDataFormModelItem *item = mContentItems.value(IpsServices::MailboxName);
   415         HbDataFormModelItem *item = mContentItems.value(IpsServices::MailboxName);
   391         QVariant data = item->contentWidgetData(QString("text"));
   416         QVariant data = item->contentWidgetData("text");
   392         // Only save mailbox name if it's length is greater than zero. CEmailAccounts does not
   417         // Only save mailbox name if it's length is greater than zero. CEmailAccounts does not
   393         // allow zero-length mailbox names.
   418         // allow zero-length mailbox names.
   394         if (data.toString().length() > 0) {
   419         if (data.toString().length() > 0) {
   395             ok = mSettingsManager.writeSetting(IpsServices::MailboxName, data);
   420             ok = mSettingsManager.writeSetting(IpsServices::MailboxName, data);
   396 
   421 
   400             	emit goOffline(mSettingsManager.mailboxId());
   425             	emit goOffline(mSettingsManager.mailboxId());
   401 				mEmitOnline = true;
   426 				mEmitOnline = true;
   402 				ok = mSettingsManager.writeSetting(IpsServices::MailboxName, data);
   427 				ok = mSettingsManager.writeSetting(IpsServices::MailboxName, data);
   403 			}
   428 			}
   404 
   429 
       
   430             // Update the mailbox's name to AppLib.
       
   431             updateAppLib(UpdateMailboxName, data.toString());
       
   432 
   405             QVariant property(NmSettings::MailboxName);
   433             QVariant property(NmSettings::MailboxName);
   406             emit mailboxPropertyChanged(mSettingsManager.mailboxId(), property, data);
   434             emit mailboxPropertyChanged(mSettingsManager.mailboxId(), property, data);
   407         }
   435         }
   408         else {
   436         else {
   409             if (mSettingsManager.readSetting(IpsServices::MailboxName, data)) {
   437             if (mSettingsManager.readSetting(IpsServices::MailboxName, data)) {
   410                 item->setContentWidgetData(QString("text"), data);
   438                 item->setContentWidgetData("text", data);
   411             }
   439             }
   412         }
   440         }
   413     }
   441     }
   414     mCurrentLineEditChanged = false;
   442     mCurrentLineEditChanged = false;
   415 }
   443 }
   431 {
   459 {
   432     if (mCurrentLineEditChanged) {
   460     if (mCurrentLineEditChanged) {
   433 		emit goOffline(mSettingsManager.mailboxId());
   461 		emit goOffline(mSettingsManager.mailboxId());
   434 		mEmitOnline = true;
   462 		mEmitOnline = true;
   435 		HbDataFormModelItem *item = mContentItems.value(IpsServices::EmailAddress);
   463 		HbDataFormModelItem *item = mContentItems.value(IpsServices::EmailAddress);
   436         QVariant data = item->contentWidgetData(QString("text"));
   464         QVariant data = item->contentWidgetData("text");
   437         mSettingsManager.writeSetting(IpsServices::EmailAddress, data);
   465         mSettingsManager.writeSetting(IpsServices::EmailAddress, data);
   438         QVariant property(NmSettings::MailboxName);
   466         QVariant property(NmSettings::MailboxName);
   439         emit mailboxPropertyChanged(mSettingsManager.mailboxId(), property, data);
   467         emit mailboxPropertyChanged(mSettingsManager.mailboxId(), property, data);
   440     }
   468     }
   441     mCurrentLineEditChanged = false;
   469     mCurrentLineEditChanged = false;
   459 {
   487 {
   460     if (mCurrentLineEditChanged) {
   488     if (mCurrentLineEditChanged) {
   461 		emit goOffline(mSettingsManager.mailboxId());
   489 		emit goOffline(mSettingsManager.mailboxId());
   462 		mEmitOnline = true;
   490 		mEmitOnline = true;
   463 		HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingLoginName);
   491 		HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingLoginName);
   464         QVariant username = item->contentWidgetData(QString("text"));
   492         QVariant username = item->contentWidgetData("text");
   465         mSettingsManager.writeSetting(IpsServices::IncomingLoginName, username);
   493         mSettingsManager.writeSetting(IpsServices::IncomingLoginName, username);
   466         // Outgoing username needs to be updated if it is set as Same as Incoming.
   494         // Outgoing username needs to be updated if it is set as Same as Incoming.
   467         item = mContentItems.value(IpsServices::SMTPAuthentication);
   495         item = mContentItems.value(IpsServices::SMTPAuthentication);
   468         QVariant selected = item->contentWidgetData(QString("selected"));
   496         QVariant selected = item->contentWidgetData("selected");
   469         if (selected.toInt() == IpsServices::EMailAuthSameAsIncoming) {
   497         if (selected.toInt() == IpsServices::EMailAuthSameAsIncoming) {
   470             mSettingsManager.writeSetting(IpsServices::OutgoingLoginName, username);
   498             mSettingsManager.writeSetting(IpsServices::OutgoingLoginName, username);
   471         }
   499         }
   472     }
   500     }
   473     mCurrentLineEditChanged = false;
   501     mCurrentLineEditChanged = false;
   480 {
   508 {
   481     if (mCurrentLineEditChanged) {
   509     if (mCurrentLineEditChanged) {
   482         emit goOffline(mSettingsManager.mailboxId());
   510         emit goOffline(mSettingsManager.mailboxId());
   483         mEmitOnline = true;
   511         mEmitOnline = true;
   484         HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingLoginName);
   512         HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingLoginName);
   485         QVariant data = item->contentWidgetData(QString("text"));
   513         QVariant data = item->contentWidgetData("text");
   486         mSettingsManager.writeSetting(IpsServices::OutgoingLoginName, data);
   514         mSettingsManager.writeSetting(IpsServices::OutgoingLoginName, data);
   487     }
   515     }
   488     mCurrentLineEditChanged = false;
   516     mCurrentLineEditChanged = false;
   489 }
   517 }
   490 
   518 
   517 void NmIpsSettingsHelper::saveIncomingPassword()
   545 void NmIpsSettingsHelper::saveIncomingPassword()
   518 {
   546 {
   519 	emit goOffline(mSettingsManager.mailboxId());
   547 	emit goOffline(mSettingsManager.mailboxId());
   520 	mEmitOnline = true;
   548 	mEmitOnline = true;
   521 	HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPassword);
   549 	HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPassword);
   522     QVariant password = item->contentWidgetData(QString("text"));
   550     QVariant password = item->contentWidgetData("text");
   523     mSettingsManager.writeSetting(IpsServices::IncomingPassword, password);
   551     mSettingsManager.writeSetting(IpsServices::IncomingPassword, password);
   524     // Outgoing password needs to be updated if it is set as Same as Incoming.
   552     // Outgoing password needs to be updated if it is set as Same as Incoming.
   525     item = mContentItems.value(IpsServices::SMTPAuthentication);
   553     item = mContentItems.value(IpsServices::SMTPAuthentication);
   526     QVariant selected = item->contentWidgetData(QString("selected"));
   554     QVariant selected = item->contentWidgetData("selected");
   527     if (selected.toInt() == IpsServices::EMailAuthSameAsIncoming) {
   555     if (selected.toInt() == IpsServices::EMailAuthSameAsIncoming) {
   528         mSettingsManager.writeSetting(IpsServices::OutgoingPassword, password);
   556         mSettingsManager.writeSetting(IpsServices::OutgoingPassword, password);
   529     }
   557     }
   530 }
   558 }
   531 
   559 
   535 void NmIpsSettingsHelper::saveOutgoingPassword()
   563 void NmIpsSettingsHelper::saveOutgoingPassword()
   536 {
   564 {
   537     emit goOffline(mSettingsManager.mailboxId());
   565     emit goOffline(mSettingsManager.mailboxId());
   538     mEmitOnline = true;
   566     mEmitOnline = true;
   539     HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPassword);
   567     HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPassword);
   540     QVariant data = item->contentWidgetData(QString("text"));
   568     QVariant data = item->contentWidgetData("text");
   541     mSettingsManager.writeSetting(IpsServices::OutgoingPassword, data);
   569     mSettingsManager.writeSetting(IpsServices::OutgoingPassword, data);
   542 }
   570 }
   543 /*!
   571 /*!
   544     Saves the Reply to value into database if user has changed the value.
   572     Saves the Reply to value into database if user has changed the value.
   545 */
   573 */
   546 void NmIpsSettingsHelper::saveReplyTo()
   574 void NmIpsSettingsHelper::saveReplyTo()
   547 {
   575 {
   548     if (mCurrentLineEditChanged) {
   576     if (mCurrentLineEditChanged) {
   549         HbDataFormModelItem *item = mContentItems.value(IpsServices::ReplyAddress);
   577         HbDataFormModelItem *item = mContentItems.value(IpsServices::ReplyAddress);
   550         QVariant data = item->contentWidgetData(QString("text"));
   578         QVariant data = item->contentWidgetData("text");
   551         mSettingsManager.writeSetting(IpsServices::ReplyAddress, data);
   579         mSettingsManager.writeSetting(IpsServices::ReplyAddress, data);
   552     }
   580     }
   553     mCurrentLineEditChanged = false;
   581     mCurrentLineEditChanged = false;
   554 }
   582 }
   555 
   583 
   596         progressNote.setText(hbTrId("txt_common_info_deleting"));
   624         progressNote.setText(hbTrId("txt_common_info_deleting"));
   597         progressNote.removeAction(progressNote.actions().at(0));
   625         progressNote.removeAction(progressNote.actions().at(0));
   598         progressNote.delayedShow();
   626         progressNote.delayedShow();
   599     
   627     
   600         if (!mSettingsManager.deleteMailbox()) {
   628         if (!mSettingsManager.deleteMailbox()) {
   601             // The mailbox was deleted successfully. Hide the progress note and
   629             // The mailbox was deleted successfully.
   602             // display the "mailbox deleted" dialog.
   630 
       
   631             // Delete the mailbox also from AppLib.
       
   632             updateAppLib(UnregisterMailbox);
       
   633 
       
   634             // Hide the progress note and display the "mailbox deleted" dialog.
   603             progressNote.close();
   635             progressNote.close();
   604             
   636             
   605             if (!mDeleteInformationDialog) {
   637             if (!mDeleteInformationDialog) {
   606                 mDeleteInformationDialog = 
   638                 mDeleteInformationDialog = 
   607                     new HbMessageBox(HbMessageBox::MessageTypeInformation);
   639                     new HbMessageBox(HbMessageBox::MessageTypeInformation);
   643         QHash<QString, QVariant> data = item->contentWidgetData();
   675         QHash<QString, QVariant> data = item->contentWidgetData();
   644         data.remove("text");
   676         data.remove("text");
   645         item->setData(HbDataFormModelItem::PropertyRole, data);
   677         item->setData(HbDataFormModelItem::PropertyRole, data);
   646     }
   678     }
   647 
   679 
   648     // Read receiving schedule dynamic group item values and
   680     // Read receiving schedule item values and
   649     // make a decision based on those if item should be visible or not.
   681     // make a decision based on those if item should be visible or not.
   650     const int dynamicGroupItemsCount(
   682     mAbortDynamicRSItemHandling = false;
   651         sizeof(NmIpsSettingsReceivingSchedule) / sizeof(NmIpsSettingsReceivingSchedule[0]));
   683     for (int index(0); (index < NmIpsSettingsReceivingScheduleItemCount) &&
   652 
   684              !mAbortDynamicRSItemHandling; ++index) {
   653     for (int itemIndex(0); itemIndex < dynamicGroupItemsCount; ++itemIndex) {
   685 
       
   686         // Read setting value from active profile
   654         QVariant setting;
   687         QVariant setting;
   655         // Read setting value from active profile
   688         IpsServices::SettingItem item(NmIpsSettingsReceivingScheduleItems[index]);
   656         IpsServices::SettingItem item(NmIpsSettingsReceivingSchedule[itemIndex]);
       
   657         mSettingsManager.readSetting(item, setting);
   689         mSettingsManager.readSetting(item, setting);
   658 
   690 
   659         // If setting value is not valid (-1=N/A) then remove setting item.
   691         // If setting value is not valid (-1=N/A) then remove setting item.
   660         int value = setting.toInt();
   692         if (setting.toInt() != NmIpsSettingsRecevingScheduleItemNotFound) {
   661         if (value != -1) {
       
   662             createOrUpdateReceivingScheduleGroupDynamicItem(item);
   693             createOrUpdateReceivingScheduleGroupDynamicItem(item);
   663         } else {
   694         } else {
   664             deleteReceivingScheduleGroupDynamicItem(item);
   695             deleteReceivingScheduleGroupDynamicItem(item);
   665         }
   696         }
   666     }
   697     }
   667 
       
   668     updateShowMailInMailbox();
   698     updateShowMailInMailbox();
   669 }
   699 }
   670 
   700 
   671 /*!
   701 /*!
   672     Returns state if online should be emited.
   702     Returns state if online should be emited.
   690     syncWindows[500] = 2;
   720     syncWindows[500] = 2;
   691     syncWindows[0] = 3;
   721     syncWindows[0] = 3;
   692 
   722 
   693     HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionInboxSyncWindow);
   723     HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionInboxSyncWindow);
   694     if (item) {
   724     if (item) {
   695         item->setContentWidgetData(QString("selected"), syncWindows.value(value.toInt()));
   725         item->setContentWidgetData("selected", syncWindows.value(value.toInt()));
   696     }
   726     }
   697 }
   727 }
   698 
   728 
   699 /*!
   729 /*!
   700     Deletes the dynamic setting items under the receiving schedule group item.
   730     Deletes the dynamic setting items under the receiving schedule group item.
   744 {
   774 {
   745     if (mCurrentLineEditChanged) {
   775     if (mCurrentLineEditChanged) {
   746         emit goOffline(mSettingsManager.mailboxId());
   776         emit goOffline(mSettingsManager.mailboxId());
   747         mEmitOnline = true;
   777         mEmitOnline = true;
   748         HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingMailServer);
   778         HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingMailServer);
   749         QVariant data = item->contentWidgetData(QString("text"));
   779         QVariant data = item->contentWidgetData("text");
   750         mSettingsManager.writeSetting(IpsServices::IncomingMailServer, data);
   780         mSettingsManager.writeSetting(IpsServices::IncomingMailServer, data);
   751     }
   781     }
   752     mCurrentLineEditChanged = false;
   782     mCurrentLineEditChanged = false;
   753 }
   783 }
   754 
   784 
   768 {
   798 {
   769     if (mCurrentLineEditChanged) {
   799     if (mCurrentLineEditChanged) {
   770         emit goOffline(mSettingsManager.mailboxId());
   800         emit goOffline(mSettingsManager.mailboxId());
   771         mEmitOnline = true;
   801         mEmitOnline = true;
   772         HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingMailServer);
   802         HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingMailServer);
   773         QVariant data = item->contentWidgetData(QString("text"));
   803         QVariant data = item->contentWidgetData("text");
   774         mSettingsManager.writeSetting(IpsServices::OutgoingMailServer, data);
   804         mSettingsManager.writeSetting(IpsServices::OutgoingMailServer, data);
   775     }
   805     }
   776     mCurrentLineEditChanged = false;
   806     mCurrentLineEditChanged = false;
   777 }
   807 }
   778 
   808 
   782 */
   812 */
   783 void NmIpsSettingsHelper::outgoingMailServerTextChange(const QString &text)
   813 void NmIpsSettingsHelper::outgoingMailServerTextChange(const QString &text)
   784 {
   814 {
   785     Q_UNUSED(text);
   815     Q_UNUSED(text);
   786     mCurrentLineEditChanged = true;
   816     mCurrentLineEditChanged = true;
       
   817 }
       
   818 
       
   819 void NmIpsSettingsHelper::handleModelDataChange(QModelIndex startIn, QModelIndex endIn)
       
   820 {
       
   821     Q_UNUSED(endIn);
       
   822     HbDataFormModelItem *item = mDataFormModel.itemFromIndex(startIn);
       
   823     
       
   824     if(item == mContentItems.value(IpsServices::IncomingSecureSockets)) {
       
   825         QVariant data = item->contentWidgetData("selected");
       
   826         incomingSecureConnectionItemChange(data.toInt());
       
   827     }
       
   828     else if(item == mContentItems.value(IpsServices::IncomingPort)) {
       
   829         QVariant data = item->contentWidgetData("selected");
       
   830         incomingPortChange(data.toInt());
       
   831     }
       
   832     else if(item == mContentItems.value(IpsServices::OutgoingSecureSockets)) {
       
   833         QVariant data = item->contentWidgetData("selected");
       
   834         outgoingSecureConnectionItemChange(data.toInt());
       
   835     }
       
   836     else if(item == mContentItems.value(IpsServices::OutgoingPort)) {
       
   837         QVariant data = item->contentWidgetData("selected");
       
   838         outgoingPortChange(data.toInt());
       
   839     }
       
   840     else if(item == mContentItems.value(IpsServices::SMTPAuthentication)) {
       
   841         QVariant data = item->contentWidgetData("selected");
       
   842         outgoingAuthenticationChange(data.toInt());
       
   843     }
       
   844     else if(item == mContentItems.value(IpsServices::FolderPath)) {
       
   845         QVariant data = item->contentWidgetData("selected");
       
   846         folderPathChange(data.toInt());
       
   847     }
   787 }
   848 }
   788 
   849 
   789 /*!
   850 /*!
   790     Saves the incoming port value into database if user has changed the value. If the user wish to
   851     Saves the incoming port value into database if user has changed the value. If the user wish to
   791     define the port, a input dialog is shown.
   852     define the port, a input dialog is shown.
   792     \param index Used to determine if the default value or a user defined value should be written
   853     \param index Used to determine if the default value or a user defined value should be written
   793 */
   854 */
   794 void NmIpsSettingsHelper::incomingPortChange(int index)
   855 void NmIpsSettingsHelper::incomingPortChange(int index)
   795 {
   856 {
   796     if (mRadioButtonPreviousIndex != index && index == IpsServices::NmIpsSettingsDefault) {
   857     int previousindex = getCorrectIncomingPortRadioButtonIndex();
   797         emit goOffline(mSettingsManager.mailboxId());
   858     
   798         mEmitOnline = true;
   859     if (previousindex != index ) {
   799         int port = mSettingsManager.determineDefaultIncomingPort();
   860         if (index == IpsServices::NmIpsSettingsDefault) {
   800         mSettingsManager.writeSetting(IpsServices::IncomingPort, port);
   861             emit goOffline(mSettingsManager.mailboxId());
   801     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
   862             mEmitOnline = true;
   802         showIncomingPortInputDialog();
   863             int port = mSettingsManager.determineDefaultIncomingPort();
       
   864             mSettingsManager.writeSetting(IpsServices::IncomingPort, port);
       
   865         } else if (index == IpsServices::NmIpsSettingsUserDefined) {
       
   866             showIncomingPortInputDialog();
       
   867         }  
   803     }
   868     }
   804 }
   869 }
   805 
   870 
   806 /*!
   871 /*!
   807     Shows an input dialog for allowing the user to specify a incoming port.
   872     Shows an input dialog for allowing the user to specify a incoming port.
   831 /*!
   896 /*!
   832    Handles the saving of the port new value.
   897    Handles the saving of the port new value.
   833 */
   898 */
   834 void NmIpsSettingsHelper::handleUserDefinedIncomingPortInput(HbAction *action)
   899 void NmIpsSettingsHelper::handleUserDefinedIncomingPortInput(HbAction *action)
   835 {
   900 {
       
   901     int previousindex = getCorrectIncomingPortRadioButtonIndex();
       
   902     
   836     if (action == mIncomingPortInputDialog->actions().at(0)) {
   903     if (action == mIncomingPortInputDialog->actions().at(0)) {
   837         QVariant newPort = mIncomingPortInputDialog->value();
   904         QVariant newPort = mIncomingPortInputDialog->value();
   838         emit goOffline(mSettingsManager.mailboxId());
   905         emit goOffline(mSettingsManager.mailboxId());
   839         mEmitOnline = true;
   906         mEmitOnline = true;
   840         mSettingsManager.writeSetting(IpsServices::IncomingPort, newPort);
   907         mSettingsManager.writeSetting(IpsServices::IncomingPort, newPort);
   841     } else {
   908     } else {
   842         //set selected value back if user canceled.
   909         //set selected value back if user canceled.
   843         HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
   910         HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
   844         item->setContentWidgetData(QString("selected"), mRadioButtonPreviousIndex);
   911         item->setContentWidgetData("selected", previousindex);
   845     }
   912     }
   846 }
   913 }
   847 
   914 
   848 /*!
   915 /*!
   849     Used for getting the index to display in the port radio button list 
   916     Used for getting the index to display in the port radio button list 
   850     \return index Used to set the selected value
   917     \return index Used to set the selected value
   851 */
   918 */
   852 int NmIpsSettingsHelper::getCorrectPortRadioButtonIndex(int currentPort)
   919 int NmIpsSettingsHelper::getCorrectIncomingPortRadioButtonIndex()
   853 {
   920 {
       
   921     QVariant incomingPort;
       
   922         mSettingsManager.readSetting(IpsServices::IncomingPort, incomingPort);
   854     int index = 0;
   923     int index = 0;
   855     int port = mSettingsManager.determineDefaultIncomingPort();
   924     int port = mSettingsManager.determineDefaultIncomingPort();
   856     if (port == currentPort) {
   925     if (port == incomingPort.toInt()) {
   857         index = IpsServices::NmIpsSettingsDefault;
   926         index = IpsServices::NmIpsSettingsDefault;
   858     } else {
   927     } else {
   859         index = IpsServices::NmIpsSettingsUserDefined;
   928         index = IpsServices::NmIpsSettingsUserDefined;
   860     }
   929     }
   861     return index;
   930     return index;
   862 }
   931 }
   863 
   932 
   864 /*!
   933 /*!
   865     Sets the previous index value to indicate that user has edited the field
       
   866     \param text Reference to the item in the radio button list.
       
   867 */
       
   868 void NmIpsSettingsHelper::incomingPortPress(const QModelIndex &index)
       
   869 {
       
   870     Q_UNUSED(index);
       
   871     HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
       
   872     QVariant data = item->contentWidgetData(QString("selected"));
       
   873     mRadioButtonPreviousIndex = data.toInt();
       
   874 }
       
   875 
       
   876 /*!
       
   877     Saves the incoming secure connection value into database if user has changed the value.
   934     Saves the incoming secure connection value into database if user has changed the value.
   878 */
   935 */
   879 void NmIpsSettingsHelper::incomingSecureConnectionItemChange(int index)
   936 void NmIpsSettingsHelper::incomingSecureConnectionItemChange(int index)
   880 {
   937 {  
   881     if (mRadioButtonPreviousIndex != index) {
   938     int previousindex = getCorrectIncomingSecureRadioButtonIndex();
       
   939     
       
   940     if (previousindex != index) {
   882         emit goOffline(mSettingsManager.mailboxId());
   941         emit goOffline(mSettingsManager.mailboxId());
   883         mEmitOnline = true;
   942         mEmitOnline = true;
   884         switch (index) {
   943         switch (index) {
   885             case IpsServices::EMailStartTls: // On (Start TLS)
   944             case IpsServices::EMailStartTls: // On (Start TLS)
   886                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, true);
   945                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, true);
   887                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, false);
   946                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, false);
   888                 break;
   947                 break;
   889 
   948     
   890             case IpsServices::EMailSslTls: // On (SSL/TLS)
   949             case IpsServices::EMailSslTls: // On (SSL/TLS)
   891                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, false);
   950                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, false);
   892                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, true);
   951                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, true);
   893                 break;
   952                 break;
   894 
   953     
   895             case IpsServices::EMailSecurityOff: // Off
   954             case IpsServices::EMailSecurityOff: // Off
   896                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, false);
   955                 mSettingsManager.writeSetting(IpsServices::IncomingSecureSockets, false);
   897                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, false);
   956                 mSettingsManager.writeSetting(IpsServices::IncomingSSLWrapper, false);
   898                 break;
   957                 break;
   899 
   958     
   900         	 default:
   959              default:
   901                 break;
   960                 break;
   902         }
   961         }
   903         // Update incoming port value only if default incoming port used
   962         // Update incoming port value only if default incoming port used
   904         HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
   963         HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingPort);
   905         QVariant data = item->contentWidgetData(QString("selected"));
   964         QVariant data = item->contentWidgetData("selected");
   906         // Default incoming port selected
   965         // Default incoming port selected
   907         if (data.toInt() == IpsServices::NmIpsSettingsDefault) {
   966         if (data.toInt() == IpsServices::NmIpsSettingsDefault) {
   908 			int port = mSettingsManager.determineDefaultIncomingPort();
   967             int port = mSettingsManager.determineDefaultIncomingPort();
   909 			mSettingsManager.writeSetting(IpsServices::IncomingPort, port);
   968             mSettingsManager.writeSetting(IpsServices::IncomingPort, port);
   910         }
   969         }
   911     }
   970     }
   912 }
       
   913 
       
   914 /*!
       
   915     Sets the previous index value to indicate that user has edited the field.
       
   916     \param text Reference to the item in the radio button list.
       
   917 */
       
   918 void NmIpsSettingsHelper::incomingSecureConnectionPress(const QModelIndex &index)
       
   919 {
       
   920 	Q_UNUSED(index);
       
   921 	HbDataFormModelItem *item = mContentItems.value(IpsServices::IncomingSecureSockets);
       
   922     QVariant data = item->contentWidgetData(QString("selected"));
       
   923     mRadioButtonPreviousIndex = data.toInt();
       
   924 }
   971 }
   925 
   972 
   926 /*!
   973 /*!
   927     Used for getting the index to display in the secure connection radio button list.
   974     Used for getting the index to display in the secure connection radio button list.
   928     \return index Used to set the selected value
   975     \return index Used to set the selected value
   929 */
   976 */
   930 int NmIpsSettingsHelper::getCorrectSecureRadioButtonIndex(QVariant secureSockets, 
   977 int NmIpsSettingsHelper::getCorrectIncomingSecureRadioButtonIndex()
   931                                                           QVariant secureSSLWrapper)
   978 {
   932 {
   979     QVariant secureSockets;
       
   980     QVariant secureSSLWrapper;
       
   981     mSettingsManager.readSetting(IpsServices::IncomingSecureSockets, secureSockets);
       
   982     mSettingsManager.readSetting(IpsServices::IncomingSSLWrapper, secureSSLWrapper);
       
   983     
   933     IpsServices::TIpsSetDataSecurityTypes securityType = IpsServices::EMailStartTls;
   984     IpsServices::TIpsSetDataSecurityTypes securityType = IpsServices::EMailStartTls;
   934     // secureSockets == True
   985     // secureSockets == True
   935     if (secureSockets.toBool()) { 
   986     if (secureSockets.toBool()) { 
   936         securityType = IpsServices::EMailStartTls;
   987         securityType = IpsServices::EMailStartTls;
   937     }
   988     }
   945     }
   996     }
   946     return securityType;
   997     return securityType;
   947 }
   998 }
   948 
   999 
   949 /*!
  1000 /*!
       
  1001     Used for getting the index to display in the secure connection radio button list.
       
  1002     \return index Used to set the selected value
       
  1003 */
       
  1004 int NmIpsSettingsHelper::getCorrectOutgoingSecureRadioButtonIndex()
       
  1005 {
       
  1006     QVariant secureSockets;
       
  1007     QVariant secureSSLWrapper;
       
  1008     mSettingsManager.readSetting(IpsServices::OutgoingSecureSockets, secureSockets);
       
  1009     mSettingsManager.readSetting(IpsServices::OutgoingSSLWrapper, secureSSLWrapper);
       
  1010     
       
  1011     IpsServices::TIpsSetDataSecurityTypes securityType = IpsServices::EMailStartTls;
       
  1012     // secureSockets == True
       
  1013     if (secureSockets.toBool()) { 
       
  1014         securityType = IpsServices::EMailStartTls;
       
  1015     }
       
  1016     // secureSockets == False & secureSSLWrapper == True
       
  1017     else if (secureSSLWrapper.toBool()) {
       
  1018         securityType = IpsServices::EMailSslTls;
       
  1019     }
       
  1020     // secureSockets == False & secureSSLWrapper == False
       
  1021     else {
       
  1022         securityType = IpsServices::EMailSecurityOff;
       
  1023     }
       
  1024     return securityType;
       
  1025 }
       
  1026 
       
  1027 /*!
   950     Saves the folderpath value into database if user has changed the value.
  1028     Saves the folderpath value into database if user has changed the value.
   951 */
  1029 */
   952 void NmIpsSettingsHelper::folderPathChange(int index)
  1030 void NmIpsSettingsHelper::folderPathChange(int index)
   953 {
  1031 {
   954     if (mRadioButtonPreviousIndex != index && index == IpsServices::NmIpsSettingsDefault) {
  1032     int previousindex = getCorrectFolderPathRadioButtonIndex();
   955         // Empty string sets the folder path to default.
  1033     
   956         mSettingsManager.writeSetting(IpsServices::FolderPath, QString(""));
  1034     if (previousindex != index ) {
   957     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
  1035         if (index == IpsServices::NmIpsSettingsDefault) {
   958         showFolderPathInputDialog();       
  1036             // Empty string sets the folder path to default.
       
  1037             mSettingsManager.writeSetting(IpsServices::FolderPath, "");
       
  1038         } else if (index == IpsServices::NmIpsSettingsUserDefined) {
       
  1039             showFolderPathInputDialog();       
       
  1040         }
   959     }
  1041     }
   960 }
  1042 }
   961 
  1043 
   962 /*!
  1044 /*!
   963     Show a input dialog for allowing the user to specify a folder path.
  1045     Show a input dialog for allowing the user to specify a folder path.
   982 /*!
  1064 /*!
   983    Handels the saving of the folder path new value.
  1065    Handels the saving of the folder path new value.
   984 */
  1066 */
   985 void NmIpsSettingsHelper::handleUserDefinedFolderPathInput(HbAction *action)
  1067 void NmIpsSettingsHelper::handleUserDefinedFolderPathInput(HbAction *action)
   986 {
  1068 {
       
  1069     int previousindex = getCorrectFolderPathRadioButtonIndex();
       
  1070     
   987     HbDataFormModelItem *item = mContentItems.value(IpsServices::FolderPath);
  1071     HbDataFormModelItem *item = mContentItems.value(IpsServices::FolderPath);
   988     
  1072     
   989     if (action == mFolderPathInputDialog->actions().at(0)) { 
  1073     if (action == mFolderPathInputDialog->actions().at(0)) { 
   990         QVariant newFolderPath = mFolderPathInputDialog->value();
  1074         QVariant newFolderPath = mFolderPathInputDialog->value();
   991         mSettingsManager.writeSetting(IpsServices::FolderPath, newFolderPath);
  1075         mSettingsManager.writeSetting(IpsServices::FolderPath, newFolderPath);
   992         //set selected index to default if user inputed empty string.
  1076         //set selected index to default if user inputed empty string.
   993         if (newFolderPath.toString().isEmpty()) {
  1077         if (newFolderPath.toString().isEmpty()) {
   994             item->setContentWidgetData(QString("selected"), IpsServices::NmIpsSettingsDefault);
  1078             item->setContentWidgetData("selected", IpsServices::NmIpsSettingsDefault);
   995         }
  1079         }
   996     } else {
  1080     } else {
   997         //set selected value back if user canceled.
  1081         //set selected value back if user canceled.
   998         item->setContentWidgetData(QString("selected"), mRadioButtonPreviousIndex);
  1082         item->setContentWidgetData("selected", previousindex);
   999     }
  1083     }
  1000 }
       
  1001 
       
  1002 /*!
       
  1003     Sets the previous index value to indicate that user has edited the field.
       
  1004 
       
  1005     \param text Reference to the item in the radio button list.
       
  1006 */
       
  1007 void NmIpsSettingsHelper::folderPathPress(const QModelIndex &index)
       
  1008 {
       
  1009     Q_UNUSED(index);
       
  1010     HbDataFormModelItem *item = mContentItems.value(IpsServices::FolderPath);
       
  1011     QVariant data = item->contentWidgetData(QString("selected"));
       
  1012     mRadioButtonPreviousIndex = data.toInt();
       
  1013 }
  1084 }
  1014 
  1085 
  1015 /*!
  1086 /*!
  1016     Handles weekdays modifications.
  1087     Handles weekdays modifications.
  1017 */
  1088 */
  1018 void NmIpsSettingsHelper::receivingWeekdaysModified()
  1089 void NmIpsSettingsHelper::receivingWeekdaysModified()
  1019 {
  1090 {
  1020     HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionWeekDays);
  1091     HbDataFormModelItem *item = mContentItems.value(IpsServices::ReceptionWeekDays);
  1021     QVariant widgetData = item->contentWidgetData(QString("selectedItems"));
  1092     QVariant widgetData = item->contentWidgetData("selectedItems");
  1022     QList<QVariant> selectedIndexes = widgetData.value< QList<QVariant> >();
  1093     QList<QVariant> selectedIndexes = widgetData.value< QList<QVariant> >();
  1023     QVariant itemData = item->data(HbDataFormModelItem::DescriptionRole + 1);
  1094     QVariant itemData = item->data(HbDataFormModelItem::DescriptionRole + 1);
  1024     QList<QVariant> itemValues = itemData.value< QList<QVariant> >();
  1095     QList<QVariant> itemValues = itemData.value< QList<QVariant> >();
  1025 
  1096 
  1026     int days(0);
  1097     int days(0);
  1033     if (days != previouslySelectedValue.toInt()) {
  1104     if (days != previouslySelectedValue.toInt()) {
  1034         handleReceivingScheduleSettingChange(IpsServices::ReceptionWeekDays, days);
  1105         handleReceivingScheduleSettingChange(IpsServices::ReceptionWeekDays, days);
  1035     }
  1106     }
  1036 
  1107 
  1037     // Although the mode might not be changed we need to still update the button text.
  1108     // Although the mode might not be changed we need to still update the button text.
  1038     // Every weekday selected.
  1109     if (days == 0) {
  1039     if (days == 0x7f) {
  1110         noReceptionWeekdaysSelected();
  1040         item->setContentWidgetData(QString("text"),
  1111         item->setContentWidgetData("text", hbTrId("txt_mailips_setlabel_download_images_val_none"));
       
  1112     } else if (days == 0x7f) {
       
  1113         item->setContentWidgetData("text",
  1041             hbTrId("txt_mailips_setlabel_download_images_val_every_day"));
  1114             hbTrId("txt_mailips_setlabel_download_images_val_every_day"));
  1042     }
  1115     }
  1043 }
  1116 }
  1044 
  1117 
  1045 /*!
  1118 /*!
  1094 
  1167 
  1095 /*!
  1168 /*!
  1096     Used for getting the index to display in the inbox path radio button list 
  1169     Used for getting the index to display in the inbox path radio button list 
  1097     \return index Used to set the selected value
  1170     \return index Used to set the selected value
  1098 */
  1171 */
  1099 int NmIpsSettingsHelper::getCorrectInboxPathRadioButtonIndex(QVariant folderPath)
  1172 int NmIpsSettingsHelper::getCorrectFolderPathRadioButtonIndex()
  1100 {
  1173 {
       
  1174     QVariant folderPath;
       
  1175     mSettingsManager.readSetting(IpsServices::FolderPath, folderPath);
       
  1176     
  1101     int index(0);
  1177     int index(0);
  1102     if (folderPath.toString().isEmpty()) {
  1178     if (folderPath.toString().isEmpty()) {
  1103         index = IpsServices::NmIpsSettingsDefault;
  1179         index = IpsServices::NmIpsSettingsDefault;
  1104     } else {
  1180     } else {
  1105         index = IpsServices::NmIpsSettingsUserDefined;
  1181         index = IpsServices::NmIpsSettingsUserDefined;
  1137     // store selected setting
  1213     // store selected setting
  1138     mSettingsManager.writeSetting(settingItem, settingValue);
  1214     mSettingsManager.writeSetting(settingItem, settingValue);
  1139 
  1215 
  1140     // update selection
  1216     // update selection
  1141     HbDataFormModelItem *syncProfile = contentItem(IpsServices::ReceptionActiveProfile);
  1217     HbDataFormModelItem *syncProfile = contentItem(IpsServices::ReceptionActiveProfile);
  1142     syncProfile->setContentWidgetData(QString("currentIndex"), 3);
  1218     syncProfile->setContentWidgetData("currentIndex", NmIpsSettingsIndexOfUserDefinedMode);
  1143 }
  1219 }
  1144 
  1220 
  1145 /*!
  1221 /*!
  1146      Return the localized name for network destination with id of \a identifier.
  1222      Return the localized name for network destination with id of \a identifier.
  1147      \param identifier Network destination identifier.
  1223      \param identifier Network destination identifier.
  1150 QString NmIpsSettingsHelper::destinationNameFromIdentifier(uint identifier)
  1226 QString NmIpsSettingsHelper::destinationNameFromIdentifier(uint identifier)
  1151 {
  1227 {
  1152     const QString snapPrefix("S_");
  1228     const QString snapPrefix("S_");
  1153 
  1229 
  1154     QNetworkConfigurationManager netMan;
  1230     QNetworkConfigurationManager netMan;
  1155     QNetworkConfiguration conf = netMan.configurationFromIdentifier( snapPrefix +
  1231     QNetworkConfiguration conf =
  1156                                                                      QString::number(identifier));
  1232         netMan.configurationFromIdentifier(snapPrefix + QString::number(identifier));
  1157     return conf.name();
  1233     return conf.name();
  1158 }
  1234 }
  1159 
  1235 
  1160 /*!
  1236 /*!
  1161     Copies receiving schedule settings from currently active profile to given profile.
  1237     Copies receiving schedule settings from currently active profile to given profile.
  1163 */
  1239 */
  1164 void NmIpsSettingsHelper::copyReceivingScheduleSettingsFromActiveProfile(int profileMode)
  1240 void NmIpsSettingsHelper::copyReceivingScheduleSettingsFromActiveProfile(int profileMode)
  1165 {
  1241 {
  1166     // Read receiving schedule dynamic group item values and
  1242     // Read receiving schedule dynamic group item values and
  1167     // make a decision based on those if item should be visible or not.
  1243     // make a decision based on those if item should be visible or not.
  1168     const int dynamicGroupItemsCount(
       
  1169         sizeof(NmIpsSettingsReceivingSchedule) / sizeof(NmIpsSettingsReceivingSchedule[0]));
       
  1170 
       
  1171     NmIpsExtendedSettingsManager &extendedSettingsManager =
  1244     NmIpsExtendedSettingsManager &extendedSettingsManager =
  1172         mSettingsManager.extendedSettingsManager();
  1245         mSettingsManager.extendedSettingsManager();
  1173 
  1246 
  1174     for (int itemIndex(0); itemIndex < dynamicGroupItemsCount; ++itemIndex) {
  1247     for (int index(0); index < NmIpsSettingsReceivingScheduleItemCount; ++index) {
  1175         QVariant setting;
  1248         QVariant setting;
  1176         // Read setting value from active profile
  1249         // Read setting value from active profile
  1177         IpsServices::SettingItem item(NmIpsSettingsReceivingSchedule[itemIndex]);
  1250         IpsServices::SettingItem item(NmIpsSettingsReceivingScheduleItems[index]);
  1178         mSettingsManager.readSetting(item, setting);
  1251         mSettingsManager.readSetting(item, setting);
  1179 
  1252 
  1180         // write settings to user defined profile.
  1253         // write settings to user defined profile.
  1181         extendedSettingsManager.writeSetting(profileMode, item, setting);
  1254         extendedSettingsManager.writeSetting(profileMode, item, setting);
  1182     }
  1255     }
  1183 }
  1256 }
       
  1257 
       
  1258 /*!
       
  1259     Updates the mailbox entry in AppLib.
       
  1260     \param op App Library operation.
       
  1261     \param mailboxName Mailbox name.
       
  1262 */
       
  1263 void NmIpsSettingsHelper::updateAppLib(AppLibUpdateOperation op, QString mailboxName)
       
  1264 {
       
  1265     // Find and load the interface.
       
  1266     QServiceManager manager;
       
  1267     QServiceFilter filter("com.nokia.symbian.IEmailRegisterAccount");
       
  1268     QList<QServiceInterfaceDescriptor> interfaces = manager.findInterfaces(filter);
       
  1269     QObject *registerInterface = 0;
       
  1270     if (!interfaces.isEmpty()) {
       
  1271         registerInterface = manager.loadInterface(interfaces.first());
       
  1272     }
       
  1273 
       
  1274     if (registerInterface) {
       
  1275         quint64 mailboxId(mSettingsManager.mailboxId().id());
       
  1276         switch(op) {
       
  1277             case UnregisterMailbox:
       
  1278                 // Try to remove the mailbox from the App Library.
       
  1279                 (void)QMetaObject::invokeMethod(registerInterface,
       
  1280                     "unregisterMailbox",
       
  1281                     Q_ARG(quint64, mailboxId));
       
  1282                 break;
       
  1283             case UpdateMailboxName:
       
  1284                 // Update the mailbox's name in the App Library.
       
  1285                 (void)QMetaObject::invokeMethod(registerInterface,
       
  1286                     "updateMailboxName",
       
  1287                     Q_ARG(quint64, mailboxId),
       
  1288                     Q_ARG(QString, mailboxName));
       
  1289                 break;
       
  1290             default:
       
  1291                 break;
       
  1292         }
       
  1293     }
       
  1294 }
       
  1295 
       
  1296 /*!
       
  1297     Deletes ReceptionDayStartTime, ReceptionDayEndTime and ReceptionRefreshPeriodDayTime
       
  1298     setting items.
       
  1299 */
       
  1300 void NmIpsSettingsHelper::noReceptionWeekdaysSelected()
       
  1301 {
       
  1302     for (int index(NmIpsSettingsIndexOfReceptionDayStartTime);
       
  1303             index < NmIpsSettingsReceivingScheduleItemCount; ++index) {
       
  1304         deleteReceivingScheduleGroupDynamicItem(NmIpsSettingsReceivingScheduleItems[index]);
       
  1305     }
       
  1306 }
       
  1307 
  1184 /*!
  1308 /*!
  1185     Saves the outgoing port value into database if user has changed the value. If the user wish to
  1309     Saves the outgoing port value into database if user has changed the value. If the user wish to
  1186     define the port, a input dialog is shown.
  1310     define the port, a input dialog is shown.
  1187     \param index Used to determine if the default value or a user defined value should be written
  1311     \param index Used to determine if the default value or a user defined value should be written
  1188 */
  1312 */
  1189 void NmIpsSettingsHelper::outgoingPortChange(int index)
  1313 void NmIpsSettingsHelper::outgoingPortChange(int index)
  1190 {
  1314 {
  1191     if (mRadioButtonPreviousIndex != index && index == IpsServices::NmIpsSettingsDefault) {
  1315     int previousindex = getCorrectOutgoingPortRadioButtonIndex();
  1192         emit goOffline(mSettingsManager.mailboxId());
  1316     
  1193         mEmitOnline = true;
  1317     if (previousindex != index) {
  1194         int port = mSettingsManager.determineDefaultOutgoingPort();
  1318         if (index == IpsServices::NmIpsSettingsDefault) {
  1195         mSettingsManager.writeSetting(IpsServices::OutgoingPort, port);
  1319             emit goOffline(mSettingsManager.mailboxId());
  1196     } else if (index == IpsServices::NmIpsSettingsUserDefined) {
  1320             mEmitOnline = true;
  1197         showOutgoingPortInputDialog();
  1321             int port = mSettingsManager.determineDefaultOutgoingPort();
       
  1322             mSettingsManager.writeSetting(IpsServices::OutgoingPort, port);
       
  1323         } else if (index == IpsServices::NmIpsSettingsUserDefined) {
       
  1324             showOutgoingPortInputDialog();
       
  1325         }
  1198     }
  1326     }
  1199 }
  1327 }
  1200 
  1328 
  1201 /*!
  1329 /*!
  1202     Shows an input dialog for allowing the user to specify a outgoing port.
  1330     Shows an input dialog for allowing the user to specify a outgoing port.
  1227     Handles the saving of the port new value.
  1355     Handles the saving of the port new value.
  1228     \action Selected action.
  1356     \action Selected action.
  1229 */
  1357 */
  1230 void NmIpsSettingsHelper::handleUserDefinedOutgoingPortInput(HbAction *action)
  1358 void NmIpsSettingsHelper::handleUserDefinedOutgoingPortInput(HbAction *action)
  1231 {
  1359 {
       
  1360     int previousindex = getCorrectOutgoingPortRadioButtonIndex();
       
  1361     
  1232     if (action == mOutgoingPortInputDialog->actions().at(0)) {
  1362     if (action == mOutgoingPortInputDialog->actions().at(0)) {
  1233         QVariant newPort = mOutgoingPortInputDialog->value();
  1363         QVariant newPort = mOutgoingPortInputDialog->value();
  1234         emit goOffline(mSettingsManager.mailboxId());
  1364         emit goOffline(mSettingsManager.mailboxId());
  1235         mEmitOnline = true;
  1365         mEmitOnline = true;
  1236         mSettingsManager.writeSetting(IpsServices::OutgoingPort, newPort);
  1366         mSettingsManager.writeSetting(IpsServices::OutgoingPort, newPort);
  1237     } else {
  1367     } else {
  1238         //set selected value back if user canceled.
  1368         //set selected value back if user canceled.
  1239         HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPort);
  1369         HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPort);
  1240         item->setContentWidgetData(QString("selected"), mRadioButtonPreviousIndex);
  1370         item->setContentWidgetData("selected", previousindex);
  1241     }
  1371     }
  1242 }
  1372 }
  1243 
  1373 
  1244 /*!
  1374 /*!
  1245     Handles the saving of the selected network connection.
  1375     Handles the saving of the selected network connection.
  1251         CmApplSettingsUi::SettingSelection selection = mDestinationDialog->selection();
  1381         CmApplSettingsUi::SettingSelection selection = mDestinationDialog->selection();
  1252         uint destId(selection.id);
  1382         uint destId(selection.id);
  1253         if (mSettingsManager.writeSetting(IpsServices::Connection, QVariant(destId))) {
  1383         if (mSettingsManager.writeSetting(IpsServices::Connection, QVariant(destId))) {
  1254             QString destName(destinationNameFromIdentifier(destId));
  1384             QString destName(destinationNameFromIdentifier(destId));
  1255             HbDataFormModelItem *item = mContentItems.value(IpsServices::Connection);
  1385             HbDataFormModelItem *item = mContentItems.value(IpsServices::Connection);
  1256             item->setContentWidgetData(QString("text"), destName);
  1386             item->setContentWidgetData("text", destName);
  1257         }
  1387         }
  1258     }
  1388     }
  1259 }
       
  1260 
       
  1261 /*!
       
  1262     Sets the previous index value to indicate that user has edited the field.
       
  1263     \param index Reference to the item in the radio button list.
       
  1264 */
       
  1265 void NmIpsSettingsHelper::outgoingPortPress(const QModelIndex &index)
       
  1266 {
       
  1267     Q_UNUSED(index);
       
  1268     HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPort);
       
  1269     QVariant data = item->contentWidgetData(QString("selected"));
       
  1270     mRadioButtonPreviousIndex = data.toInt();
       
  1271 }
  1389 }
  1272 
  1390 
  1273 /*!
  1391 /*!
  1274     Used for getting the index to display in the outgoing port radio button list.
  1392     Used for getting the index to display in the outgoing port radio button list.
  1275     \return index Used to set the selected value.
  1393     \return index Used to set the selected value.
  1276 */
  1394 */
  1277 int NmIpsSettingsHelper::getCorrectOutgoingPortRadioButtonIndex(int currentPort)
  1395 int NmIpsSettingsHelper::getCorrectOutgoingPortRadioButtonIndex()
  1278 {
  1396 {
       
  1397     QVariant outgoingPort;
       
  1398     mSettingsManager.readSetting(IpsServices::OutgoingPort, outgoingPort);
       
  1399     
  1279     int index = 0;
  1400     int index = 0;
  1280     int port = mSettingsManager.determineDefaultOutgoingPort();
  1401     int port = mSettingsManager.determineDefaultOutgoingPort();
  1281     if (port == currentPort) {
  1402     if (port == outgoingPort.toInt()) {
  1282         index = IpsServices::NmIpsSettingsDefault;
  1403         index = IpsServices::NmIpsSettingsDefault;
  1283     } else {
  1404     } else {
  1284         index = IpsServices::NmIpsSettingsUserDefined;
  1405         index = IpsServices::NmIpsSettingsUserDefined;
  1285     }
  1406     }
  1286     return index;
  1407     return index;
  1310     mSettingsManager.readSetting(IpsServices::IncomingPassword, temp);
  1431     mSettingsManager.readSetting(IpsServices::IncomingPassword, temp);
  1311     incomingPassword = temp.toString();
  1432     incomingPassword = temp.toString();
  1312     
  1433     
  1313     if (outgoingAuthentication) {
  1434     if (outgoingAuthentication) {
  1314         if (outgoingLoginName == incomingLoginName && outgoingPassword == incomingPassword) {
  1435         if (outgoingLoginName == incomingLoginName && outgoingPassword == incomingPassword) {
  1315             index = IpsServices::EMailAuthSameAsIncoming;    
  1436             index = IpsServices::EMailAuthSameAsIncoming;
       
  1437             HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingLoginName);
       
  1438             if (item) {
       
  1439                 index = IpsServices::EMailAuthUserAuthentication;
       
  1440             }
  1316         } else {
  1441         } else {
  1317             index = IpsServices::EMailAuthUserAuthentication;
  1442             index = IpsServices::EMailAuthUserAuthentication;
  1318         }
  1443         }
  1319     }
  1444     }
  1320     return index;
  1445     return index;
  1323 /*!
  1448 /*!
  1324     Saves the outgoing secure connection value into database if user has changed the value.
  1449     Saves the outgoing secure connection value into database if user has changed the value.
  1325     \param index Selected radio button index.
  1450     \param index Selected radio button index.
  1326 */
  1451 */
  1327 void NmIpsSettingsHelper::outgoingSecureConnectionItemChange(int index)
  1452 void NmIpsSettingsHelper::outgoingSecureConnectionItemChange(int index)
  1328 {
  1453 {      
  1329     if (mRadioButtonPreviousIndex != index) {
  1454     int previousindex = getCorrectOutgoingSecureRadioButtonIndex();
       
  1455     
       
  1456     if (previousindex != index) {
  1330         emit goOffline(mSettingsManager.mailboxId());
  1457         emit goOffline(mSettingsManager.mailboxId());
  1331         mEmitOnline = true;
  1458         mEmitOnline = true;
  1332         switch (index) {
  1459         switch (index) {
  1333             case IpsServices::EMailStartTls: // On (Start TLS)
  1460             case IpsServices::EMailStartTls: // On (Start TLS)
  1334                 mSettingsManager.writeSetting(IpsServices::OutgoingSecureSockets, true);
  1461                 mSettingsManager.writeSetting(IpsServices::OutgoingSecureSockets, true);
  1348         	 default:
  1475         	 default:
  1349                 break;
  1476                 break;
  1350         }
  1477         }
  1351         // Update outgoing port value only if default outgoing port used
  1478         // Update outgoing port value only if default outgoing port used
  1352         HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPort);
  1479         HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingPort);
  1353         QVariant data = item->contentWidgetData(QString("selected"));
  1480         QVariant data = item->contentWidgetData("selected");
  1354         // Default outgoing port selected
  1481         // Default outgoing port selected
  1355         if (data.toInt() == IpsServices::NmIpsSettingsDefault) {
  1482         if (data.toInt() == IpsServices::NmIpsSettingsDefault) {
  1356 			int port = mSettingsManager.determineDefaultOutgoingPort();
  1483 			int port = mSettingsManager.determineDefaultOutgoingPort();
  1357 			mSettingsManager.writeSetting(IpsServices::OutgoingPort, port);
  1484 			mSettingsManager.writeSetting(IpsServices::OutgoingPort, port);
  1358         }
  1485         }
  1359     }
  1486     }
  1360 }
  1487 }
  1361 
  1488 
  1362 /*!
  1489 /*!
  1363     Sets the previous index value to indicate that user has edited the field.
       
  1364     \param index Reference to the item in the radio button list.
       
  1365 */
       
  1366 void NmIpsSettingsHelper::outgoingSecureConnectionPress(const QModelIndex &index)
       
  1367 {
       
  1368 	Q_UNUSED(index);
       
  1369 	HbDataFormModelItem *item = mContentItems.value(IpsServices::OutgoingSecureSockets);
       
  1370     QVariant data = item->contentWidgetData(QString("selected"));
       
  1371     mRadioButtonPreviousIndex = data.toInt();
       
  1372 }
       
  1373 
       
  1374 /*!
       
  1375     Saves the outgoing authetication value into database if user has changed the value and
  1490     Saves the outgoing authetication value into database if user has changed the value and
  1376     updates dynamic group items.
  1491     updates dynamic group items.
  1377     \param index Selected radio button index.
  1492     \param index Selected radio button index.
  1378 */
  1493 */
  1379 void NmIpsSettingsHelper::outgoingAuthenticationChange(int index)
  1494 void NmIpsSettingsHelper::outgoingAuthenticationChange(int index)
  1380 {
  1495 {
  1381     if (mRadioButtonPreviousIndex != index) {
  1496     int previousindex = getCorrectOutgoingAuthenticationRadioButtonIndex();
       
  1497     
       
  1498     if (previousindex != index) {
  1382         QVariant loginName;
  1499         QVariant loginName;
  1383         QVariant loginPassword;
  1500         QVariant loginPassword;
  1384         emit goOffline(mSettingsManager.mailboxId());
  1501         emit goOffline(mSettingsManager.mailboxId());
  1385         mEmitOnline = true;
  1502         mEmitOnline = true;
  1386         switch (index) {
  1503         switch (index) {
  1400                 mSettingsManager.writeSetting(IpsServices::OutgoingPassword, loginPassword);
  1517                 mSettingsManager.writeSetting(IpsServices::OutgoingPassword, loginPassword);
  1401                 break;
  1518                 break;
  1402 
  1519 
  1403             case IpsServices::EMailAuthUserAuthentication: // User authentication
  1520             case IpsServices::EMailAuthUserAuthentication: // User authentication
  1404                 mSettingsManager.writeSetting(IpsServices::SMTPAuthentication, true);
  1521                 mSettingsManager.writeSetting(IpsServices::SMTPAuthentication, true);
  1405                 createServerInfoGroupDynamicItems();
  1522                 createServerInfoGroupDynamicItems(false);
  1406                 break;
  1523                 break;
  1407                 
  1524                 
  1408              default:
  1525              default:
  1409                 break;
  1526                 break;
  1410         }
  1527         }
  1411     }
  1528     }
  1412 }
       
  1413 
       
  1414 /*!
       
  1415     Sets the previous index value to indicate that user has edited the field.
       
  1416     \param index Reference to the item in the radio button list.
       
  1417 */
       
  1418 void NmIpsSettingsHelper::outgoingAuthenticationPress(const QModelIndex &index)
       
  1419 {
       
  1420     Q_UNUSED(index);
       
  1421     HbDataFormModelItem *item = mContentItems.value(IpsServices::SMTPAuthentication);
       
  1422     QVariant data = item->contentWidgetData(QString("selected"));
       
  1423     mRadioButtonPreviousIndex = data.toInt();
       
  1424 }
  1529 }
  1425 
  1530 
  1426 /*!
  1531 /*!
  1427     Launches the connection selection dialog.
  1532     Launches the connection selection dialog.
  1428 */
  1533 */