ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp
changeset 72 64e38f08e49c
parent 30 759dc5235cdb
child 68 83cc6bae1de8
equal deleted inserted replaced
65:478bc57ad291 72:64e38f08e49c
    97             found = true;
    97             found = true;
    98             break;
    98             break;
    99         case IpsServices::IncomingSecureSockets:
    99         case IpsServices::IncomingSecureSockets:
   100         	settingValue = mImap4Settings->SecureSockets();
   100         	settingValue = mImap4Settings->SecureSockets();
   101             found = true;
   101             found = true;
   102             break;  
   102             break;
   103         case IpsServices::IncomingSSLWrapper:
   103         case IpsServices::IncomingSSLWrapper:
   104         	settingValue = mImap4Settings->SSLWrapper();
   104         	settingValue = mImap4Settings->SSLWrapper();
   105             found = true;
   105             found = true;
   106             break;
   106             break;
   107         default:
   107         default:
   118     \return bool <true> when the setting item was succesfully written, otherwise <false>.
   118     \return bool <true> when the setting item was succesfully written, otherwise <false>.
   119 */
   119 */
   120 bool NmIpsImap4SettingsManager::writeSetting(IpsServices::SettingItem settingItem,
   120 bool NmIpsImap4SettingsManager::writeSetting(IpsServices::SettingItem settingItem,
   121                                              const QVariant &settingValue)
   121                                              const QVariant &settingValue)
   122 {
   122 {
   123     HBufC *tmp = 0;
   123     HBufC *tmp = NULL;
   124     HBufC8 *tmp8 = 0;
   124     HBufC8 *tmp8 = NULL;
   125 
   125 
   126     bool ret(false);
   126     bool ret(false);
   127     TInt err(KErrNone);
   127     TInt err(KErrNone);
   128 
   128 
   129     switch (settingItem) {
   129     switch (settingItem) {
   155             delete tmp;
   155             delete tmp;
   156             if (err==KErrNone) {
   156             if (err==KErrNone) {
   157                 ret = saveSettings();
   157                 ret = saveSettings();
   158             }
   158             }
   159             break;
   159             break;
   160         case IpsServices::IncomingPort:            
   160         case IpsServices::IncomingPort:
   161             mImap4Settings->SetPort(settingValue.toInt());
   161             mImap4Settings->SetPort(settingValue.toInt());
   162             ret = saveSettings();
   162             ret = saveSettings();
   163             break;
   163             break;
   164         case IpsServices::FolderPath:            
   164         case IpsServices::FolderPath:
   165             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
   165             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
   166             TRAP(err, mImap4Settings->SetFolderPathL(*tmp8));
   166             TRAP(err, mImap4Settings->SetFolderPathL(*tmp8));
   167             delete tmp;
   167             delete tmp;
   168             if (err==KErrNone) {
   168             if (err==KErrNone) {
   169                 ret = saveSettings();
   169                 ret = saveSettings();
   170             }
   170             }
   171             break;
   171             break;
   172         case IpsServices::IncomingSecureSockets:
   172         case IpsServices::IncomingSecureSockets:
   173             mImap4Settings->SetSecureSockets(settingValue.toBool());
   173             mImap4Settings->SetSecureSockets(settingValue.toBool());
   174             ret = saveSettings();
   174             ret = saveSettings();
   175             break;  
   175             break;
   176         case IpsServices::IncomingSSLWrapper:
   176         case IpsServices::IncomingSSLWrapper:
   177             mImap4Settings->SetSSLWrapper(settingValue.toBool());
   177             mImap4Settings->SetSSLWrapper(settingValue.toBool());
   178             ret = saveSettings();
   178             ret = saveSettings();
   179             break;  
   179             break;
       
   180         case IpsServices::ReceptionInboxSyncWindow: {
       
   181             int inboxValue = settingValue.toInt();
       
   182             if (inboxValue == 0) {
       
   183                 // for CImImap4Settings all messages value is -1
       
   184                 inboxValue = -1;
       
   185             }
       
   186             mImap4Settings->SetInboxSynchronisationLimit(inboxValue);
       
   187             ret = saveSettings();
       
   188             ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue);
       
   189             break;
       
   190         }
   180         case IpsServices::Connection:
   191         case IpsServices::Connection:
   181             ret = saveIAPSettings(settingValue.toUInt());
   192             ret = saveIAPSettings(settingValue.toUInt());
   182             // Fallthrough so SMTP IAP settings are also updated accordingly.
   193             // Fallthrough so SMTP IAP settings are also updated accordingly.
   183         default:
   194         default:
   184             ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue);
   195             ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue);
   193             code is returned.
   204             code is returned.
   194 */
   205 */
   195 int NmIpsImap4SettingsManager::deleteMailbox()
   206 int NmIpsImap4SettingsManager::deleteMailbox()
   196 {
   207 {
   197     TRAPD(error, mAccount->DeleteImapAccountL(mImap4Account));
   208     TRAPD(error, mAccount->DeleteImapAccountL(mImap4Account));
       
   209 
       
   210     // Try to delete the mailbox again if it failed because it was locked or in use
       
   211 	if (error==KErrInUse || error==KErrLocked) {
       
   212 		TRAP(error, mAccount->DeleteImapAccountL(mImap4Account));
       
   213 	}
       
   214 
   198     if (!error) {
   215     if (!error) {
   199 		NmIpsSettingsManagerBase::deleteMailbox();
   216 		NmIpsSettingsManagerBase::deleteMailbox();
   200     }
   217     }
   201 
   218 
   202     NMLOG(QString("NmIpsImap4SettingsManager::deleteMailbox status %1").arg(error));
   219     NMLOG(QString("NmIpsImap4SettingsManager::deleteMailbox status %1").arg(error));
   211 int NmIpsImap4SettingsManager::determineDefaultIncomingPort()
   228 int NmIpsImap4SettingsManager::determineDefaultIncomingPort()
   212 {
   229 {
   213     int port(IpsServices::standardImap4Port);
   230     int port(IpsServices::standardImap4Port);
   214     if (mImap4Settings->SSLWrapper()) {
   231     if (mImap4Settings->SSLWrapper()) {
   215         port = IpsServices::imap4OverSslPort;
   232         port = IpsServices::imap4OverSslPort;
   216     }        
   233     }
   217     return port;
   234     return port;
   218 }
   235 }
   219 
   236 
   220 /*!
   237 /*!
   221     Stores the IMAP4 specific settings.
   238     Stores the IMAP4 specific settings.