emailservices/nmclientapi/src/nmapipopimapsettingsmanager.cpp
changeset 47 f83bd4ae1fe3
child 48 10eaf342f539
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/emailservices/nmclientapi/src/nmapipopimapsettingsmanager.cpp	Thu Jun 24 14:32:18 2010 +0300
@@ -0,0 +1,130 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "nmapipopimapsettingsmanager.h"
+
+#include <imapset.h>
+#include <pop3set.h>
+#include <iapprefs.h>
+#include <cemailaccounts.h>
+#include <xqconversions.h>
+
+
+static const int DefaultPopPort = 110;
+static const int DefaultImapPort = 993;
+
+using namespace EmailClientApi;
+    
+NmApiPopImapSettingsManager::NmApiPopImapSettingsManager()
+{    
+}
+
+NmApiPopImapSettingsManager::~NmApiPopImapSettingsManager()
+{   
+}
+
+bool NmApiPopImapSettingsManager::populateDefaults(const QString &mailboxType, NmApiMailboxSettingsData &data)
+{
+    bool ret = false;
+    
+    QT_TRY {
+        if (mailboxType==NmApiMailboxTypePop) {
+            populatePopDefs(data);
+            ret = true;
+        }
+        else if (mailboxType==NmApiMailboxTypeImap) {
+            populateImapDefs(data);
+            ret = true;
+        }
+        else {
+            ret = false;
+        }
+    }
+    QT_CATCH(...){
+        ret = false;
+    }
+    
+    return ret;
+}
+
+void NmApiPopImapSettingsManager::populateImapDefs(NmApiMailboxSettingsData &data)
+{
+    QScopedPointer<CImImap4Settings> imapSettings(new CImImap4Settings());
+    
+    QScopedPointer<CImIAPPreferences> iapPref;
+    QT_TRAP_THROWING(iapPref.reset(CImIAPPreferences::NewLC());
+            CleanupStack::Pop(iapPref.data()));  
+        
+    QScopedPointer<CEmailAccounts> mailAccounts;
+    QT_TRAP_THROWING(mailAccounts.reset(CEmailAccounts::NewL()));
+        
+    QT_TRAP_THROWING( mailAccounts->PopulateDefaultImapSettingsL(*imapSettings,*iapPref));
+    
+    data.setValue(IncomingLoginName, 
+                           XQConversions::s60Desc8ToQString(imapSettings->LoginName()));
+
+    data.setValue(IncomingPassword, 
+                           XQConversions::s60Desc8ToQString(imapSettings->Password()));
+       
+    data.setValue(IncomingMailServer, 
+                           XQConversions::s60DescToQString(imapSettings->ServerAddress()));
+         
+   if (imapSettings->Port()) {
+       data.setValue(IncomingPort, imapSettings->Port());
+       }
+   else {
+       data.setValue(IncomingPort, DefaultImapPort);
+   }
+   
+   data.setValue(OutgoingSecureSockets, imapSettings->SecureSockets());
+   data.setValue(OutgoingSSLWrapper, imapSettings->SSLWrapper());  
+}
+
+void NmApiPopImapSettingsManager::populatePopDefs(NmApiMailboxSettingsData &data)
+{
+    QScopedPointer<CImPop3Settings> popSettings(new CImPop3Settings());
+   
+    QScopedPointer<CImIAPPreferences> iapPref;
+    QT_TRAP_THROWING(iapPref.reset(CImIAPPreferences::NewLC());
+        CleanupStack::Pop(iapPref.data()));
+ 
+    QScopedPointer<CEmailAccounts> mailAccounts;
+    QT_TRAP_THROWING(mailAccounts.reset(CEmailAccounts::NewL()));
+    
+    QT_TRAP_THROWING( mailAccounts->PopulateDefaultPopSettingsL(*popSettings,*iapPref));
+    
+    data.setValue(IncomingLoginName, 
+                        XQConversions::s60Desc8ToQString(popSettings->LoginName()));
+   
+    data.setValue(IncomingPassword, 
+                        XQConversions::s60Desc8ToQString(popSettings->Password()));
+     
+    data.setValue(IncomingMailServer, 
+                        XQConversions::s60DescToQString(popSettings->ServerAddress()));
+    
+    if (popSettings->Port()) {
+        data.setValue(IncomingPort, popSettings->Port());
+        }
+    else {
+        data.setValue(IncomingPort, DefaultPopPort);
+    }
+    
+    data.setValue(OutgoingSecureSockets, popSettings->SecureSockets());
+    data.setValue(OutgoingSSLWrapper, popSettings->SSLWrapper());
+}
+
+