ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp
changeset 72 64e38f08e49c
parent 30 759dc5235cdb
child 68 83cc6bae1de8
--- a/ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp	Thu Sep 02 20:15:00 2010 +0300
+++ b/ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp	Fri Sep 17 08:27:21 2010 +0300
@@ -99,7 +99,7 @@
         case IpsServices::IncomingSecureSockets:
         	settingValue = mImap4Settings->SecureSockets();
             found = true;
-            break;  
+            break;
         case IpsServices::IncomingSSLWrapper:
         	settingValue = mImap4Settings->SSLWrapper();
             found = true;
@@ -120,8 +120,8 @@
 bool NmIpsImap4SettingsManager::writeSetting(IpsServices::SettingItem settingItem,
                                              const QVariant &settingValue)
 {
-    HBufC *tmp = 0;
-    HBufC8 *tmp8 = 0;
+    HBufC *tmp = NULL;
+    HBufC8 *tmp8 = NULL;
 
     bool ret(false);
     TInt err(KErrNone);
@@ -157,11 +157,11 @@
                 ret = saveSettings();
             }
             break;
-        case IpsServices::IncomingPort:            
+        case IpsServices::IncomingPort:
             mImap4Settings->SetPort(settingValue.toInt());
             ret = saveSettings();
             break;
-        case IpsServices::FolderPath:            
+        case IpsServices::FolderPath:
             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
             TRAP(err, mImap4Settings->SetFolderPathL(*tmp8));
             delete tmp;
@@ -172,11 +172,22 @@
         case IpsServices::IncomingSecureSockets:
             mImap4Settings->SetSecureSockets(settingValue.toBool());
             ret = saveSettings();
-            break;  
+            break;
         case IpsServices::IncomingSSLWrapper:
             mImap4Settings->SetSSLWrapper(settingValue.toBool());
             ret = saveSettings();
-            break;  
+            break;
+        case IpsServices::ReceptionInboxSyncWindow: {
+            int inboxValue = settingValue.toInt();
+            if (inboxValue == 0) {
+                // for CImImap4Settings all messages value is -1
+                inboxValue = -1;
+            }
+            mImap4Settings->SetInboxSynchronisationLimit(inboxValue);
+            ret = saveSettings();
+            ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue);
+            break;
+        }
         case IpsServices::Connection:
             ret = saveIAPSettings(settingValue.toUInt());
             // Fallthrough so SMTP IAP settings are also updated accordingly.
@@ -195,6 +206,12 @@
 int NmIpsImap4SettingsManager::deleteMailbox()
 {
     TRAPD(error, mAccount->DeleteImapAccountL(mImap4Account));
+
+    // Try to delete the mailbox again if it failed because it was locked or in use
+	if (error==KErrInUse || error==KErrLocked) {
+		TRAP(error, mAccount->DeleteImapAccountL(mImap4Account));
+	}
+
     if (!error) {
 		NmIpsSettingsManagerBase::deleteMailbox();
     }
@@ -213,7 +230,7 @@
     int port(IpsServices::standardImap4Port);
     if (mImap4Settings->SSLWrapper()) {
         port = IpsServices::imap4OverSslPort;
-    }        
+    }
     return port;
 }