diff -r 139d4b7b2938 -r 99bcbff212ad ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp --- a/ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp Mon May 24 21:02:02 2010 +0300 +++ b/ipsservices/nmipssettings/src/nmipsimap4settingsmanager.cpp Fri May 28 13:56:43 2010 +0300 @@ -17,6 +17,7 @@ #include #include +#include #include #include @@ -32,7 +33,7 @@ // ======== MEMBER FUNCTIONS ======== /*! - Constructor + Constructor. Creates the CImImap4Settings instance for loading and saving the IMAP4 settings. Finds and loads the SMTP account and settings linked to the IMAP4 account. \param mailboxId Mailbox identifier. @@ -53,7 +54,7 @@ } /*! - Destructor + Destructor. */ NmIpsImap4SettingsManager::~NmIpsImap4SettingsManager() { @@ -66,7 +67,8 @@ \param QVariant SettingValue of the found setting value. \return when the setting item was found otherwise . */ -bool NmIpsImap4SettingsManager::readSetting(IpsServices::SettingItem settingItem, QVariant &settingValue) +bool NmIpsImap4SettingsManager::readSetting(IpsServices::SettingItem settingItem, + QVariant &settingValue) { bool found(false); switch (settingItem) { @@ -101,7 +103,7 @@ case IpsServices::IncomingSSLWrapper: settingValue = mImap4Settings->SSLWrapper(); found = true; - break; + break; default: found = NmIpsSettingsManagerBase::readSetting(settingItem, settingValue); break; @@ -115,7 +117,8 @@ \param settingValue QVariant of the new setting value. \return bool when the setting item was succesfully written, otherwise . */ -bool NmIpsImap4SettingsManager::writeSetting(IpsServices::SettingItem settingItem, const QVariant &settingValue) +bool NmIpsImap4SettingsManager::writeSetting(IpsServices::SettingItem settingItem, + const QVariant &settingValue) { HBufC *tmp = 0; HBufC8 *tmp8 = 0; @@ -174,6 +177,9 @@ mImap4Settings->SetSSLWrapper(settingValue.toBool()); ret = saveSettings(); break; + case IpsServices::Connection: + ret = saveIAPSettings(settingValue.toUInt()); + // Fallthrough so SMTP IAP settings are also updated accordingly. default: ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue); break; @@ -183,7 +189,6 @@ /*! Deletes the IMAP4 mailbox. - \return Error code 0 if mailbox deletion was successful, otherwise error code is returned. */ @@ -198,6 +203,20 @@ return error; } + +/*! + Determines the default port for the incoming mail server based on the security settings. + \return The port number to use. + */ +int NmIpsImap4SettingsManager::determineDefaultIncomingPort() +{ + int port(IpsServices::standardImap4Port); + if (mImap4Settings->SSLWrapper()) { + port = IpsServices::imap4OverSslPort; + } + return port; +} + /*! Stores the IMAP4 specific settings. \return bool when the IMAP4 settings were succesfully written, otherwise . @@ -210,18 +229,17 @@ } /*! - Determine the default port for the incoming mail server based on the security settings - - \return int the port number to use - */ -int NmIpsImap4SettingsManager::determineDefaultIncomingPort() + Stores the IMAP4 specific IAP settings. + \return bool when the IMAP4 IAP settings were succesfully written, otherwise . +*/ +bool NmIpsImap4SettingsManager::saveIAPSettings(uint snapId) { - int port = 0; - bool sslTls = mImap4Settings->SSLWrapper(); - if (sslTls) { - port = IpsServices::imap4OverSslPort; - } else { - port = IpsServices::standardImap4Port; - } - return port; + TRAPD(err, + CImIAPPreferences *prefs = CImIAPPreferences::NewLC(); + mAccount->LoadImapIapSettingsL(mImap4Account, *prefs); + prefs->SetSNAPL(snapId); + mAccount->SaveImapIapSettingsL(mImap4Account, *prefs); + CleanupStack::PopAndDestroy(prefs); + ); + return (err==KErrNone); }