ipsservices/nmipssettings/src/nmipspop3settingsmanager.cpp
changeset 20 ecc8def7944a
parent 18 578830873419
child 30 759dc5235cdb
equal deleted inserted replaced
18:578830873419 20:ecc8def7944a
    39     \param account CEmailAccounts created by the settings manager factory. Takes ownership.
    39     \param account CEmailAccounts created by the settings manager factory. Takes ownership.
    40     \param imapAccount TImapAccount of the mailbox.
    40     \param imapAccount TImapAccount of the mailbox.
    41 */
    41 */
    42 NmIpsPop3SettingsManager::NmIpsPop3SettingsManager(const NmId &mailboxId,
    42 NmIpsPop3SettingsManager::NmIpsPop3SettingsManager(const NmId &mailboxId,
    43     CEmailAccounts *account, TPopAccount popAccount)
    43     CEmailAccounts *account, TPopAccount popAccount)
    44 : NmIpsSettingsManagerBase(mailboxId, account),
    44 : NmIpsSettingsManagerBase(mailboxId, account, IpsServices::EMailPop),
    45   mPop3Account(popAccount)
    45   mPop3Account(popAccount)
    46 {
    46 {
    47     QT_TRAP_THROWING(mPop3Settings = new(ELeave) CImPop3Settings());
    47     QT_TRAP_THROWING(mPop3Settings = new(ELeave) CImPop3Settings());
    48 
    48 
    49     TRAP_IGNORE(mAccount->LoadPopSettingsL(mPop3Account, *mPop3Settings));
    49     TRAP_IGNORE(mAccount->LoadPopSettingsL(mPop3Account, *mPop3Settings));
    65     \param QVariant SettingValue of the found setting value.
    65     \param QVariant SettingValue of the found setting value.
    66     \return <true> when the setting item was found otherwise <false>.
    66     \return <true> when the setting item was found otherwise <false>.
    67 */
    67 */
    68 bool NmIpsPop3SettingsManager::readSetting(IpsServices::SettingItem settingItem, QVariant &value)
    68 bool NmIpsPop3SettingsManager::readSetting(IpsServices::SettingItem settingItem, QVariant &value)
    69 {
    69 {
    70 	bool found(true);
    70 	bool found(false);
    71 	switch (settingItem) {
    71 	switch (settingItem) {
    72         case IpsServices::LoginName:
    72         case IpsServices::IncomingLoginName:
    73             value = XQConversions::s60Desc8ToQString(mPop3Settings->LoginName());
    73             value = XQConversions::s60Desc8ToQString(mPop3Settings->LoginName());
    74             break;
    74             found = true;
    75         case IpsServices::Password:
    75             break;
       
    76         case IpsServices::IncomingPassword:
    76             value = XQConversions::s60Desc8ToQString(mPop3Settings->Password());
    77             value = XQConversions::s60Desc8ToQString(mPop3Settings->Password());
       
    78             found = true;
    77             break;
    79             break;
    78         case IpsServices::MailboxName:
    80         case IpsServices::MailboxName:
    79             value = XQConversions::s60DescToQString(mPop3Account.iPopAccountName);
    81             value = XQConversions::s60DescToQString(mPop3Account.iPopAccountName);
    80             break;
    82             found = true;
       
    83             break;
       
    84         case IpsServices::IncomingMailServer:
       
    85             value = XQConversions::s60DescToQString(mPop3Settings->ServerAddress());
       
    86             found = true;
       
    87             break;   
       
    88         case IpsServices::IncomingPort:
       
    89             value = mPop3Settings->Port();
       
    90             found = true;
       
    91             break;  
       
    92         case IpsServices::IncomingSecureSockets:
       
    93             value = mPop3Settings->SecureSockets();
       
    94             found = true;
       
    95             break;  
       
    96         case IpsServices::IncomingSSLWrapper:
       
    97             value = mPop3Settings->SSLWrapper();
       
    98             found = true;
       
    99             break;  
    81         default:
   100         default:
    82             found = NmIpsSettingsManagerBase::readSetting(settingItem, value);
   101             found = NmIpsSettingsManagerBase::readSetting(settingItem, value);
    83             break;
   102             break;
    84     }
   103     }
    85 	return found;
   104 	return found;
    97 
   116 
    98     bool ret(false);
   117     bool ret(false);
    99     TInt err(KErrNone);
   118     TInt err(KErrNone);
   100 
   119 
   101     switch (settingItem) {
   120     switch (settingItem) {
   102         case IpsServices::LoginName:
   121         case IpsServices::IncomingLoginName:
   103             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
   122             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
   104             TRAP(err, mPop3Settings->SetLoginNameL(*tmp8));
   123             TRAP(err, mPop3Settings->SetLoginNameL(*tmp8));
   105             delete tmp8;
   124             delete tmp8;
   106             if (err==KErrNone) {
   125             if (err==KErrNone) {
   107                 ret = saveSettings();
   126                 ret = saveSettings();
   108             }
   127             }
   109             break;
   128             break;
   110         case IpsServices::Password:
   129         case IpsServices::IncomingPassword:
   111             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
   130             tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString());
   112             TRAP(err, mPop3Settings->SetPasswordL(*tmp8));
   131             TRAP(err, mPop3Settings->SetPasswordL(*tmp8));
   113             delete tmp8;
   132             delete tmp8;
   114             if (err==KErrNone) {
   133             if (err==KErrNone) {
   115                 ret = saveSettings();
   134                 ret = saveSettings();
   116             }
   135             }
   117             break;
   136             break;
   118         case IpsServices::MailboxName:
   137         case IpsServices::MailboxName:
   119             tmp = XQConversions::qStringToS60Desc(settingValue.toString());
   138             tmp = XQConversions::qStringToS60Desc(settingValue.toString());
   120             TRAP(err, mPop3Account.iPopAccountName.Copy(*tmp));
   139             mPop3Account.iPopAccountName.Copy(*tmp);
       
   140             delete tmp;
       
   141             ret = saveSettings();
       
   142             break;
       
   143         case IpsServices::IncomingMailServer:
       
   144             tmp = XQConversions::qStringToS60Desc(settingValue.toString());
       
   145             TRAP(err, mPop3Settings->SetServerAddressL(*tmp));
   121             delete tmp;
   146             delete tmp;
   122             if (err==KErrNone) {
   147             if (err==KErrNone) {
   123                 ret = saveSettings();
   148                 ret = saveSettings();
   124             }
   149             }
   125             break;
   150             break;
       
   151         case IpsServices::IncomingPort:            
       
   152             mPop3Settings->SetPort(settingValue.toInt());
       
   153             ret = saveSettings();
       
   154             break;
       
   155         case IpsServices::IncomingSecureSockets:
       
   156             mPop3Settings->SetSecureSockets(settingValue.toBool());
       
   157             ret = saveSettings();
       
   158             break;  
       
   159         case IpsServices::IncomingSSLWrapper:
       
   160             mPop3Settings->SetSSLWrapper(settingValue.toBool());
       
   161             ret = saveSettings();
       
   162             break;  
   126         default:
   163         default:
   127             ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue);
   164             ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue);
   128             break;
   165             break;
   129     }
   166     }
   130     return ret;
   167     return ret;
   136     \return Error code <code>0</code> if mailbox deletion was successful, otherwise error
   173     \return Error code <code>0</code> if mailbox deletion was successful, otherwise error
   137             code is returned.
   174             code is returned.
   138 */
   175 */
   139 int NmIpsPop3SettingsManager::deleteMailbox()
   176 int NmIpsPop3SettingsManager::deleteMailbox()
   140 {
   177 {
   141     int error(NmIpsSettingsManagerBase::deleteMailbox());
   178     TRAPD(error, mAccount->DeletePopAccountL(mPop3Account));
   142     if (!error) {
   179     if (!error) {
   143         TRAP(error, mAccount->DeletePopAccountL(mPop3Account));
   180     	NmIpsSettingsManagerBase::deleteMailbox();
   144     }
   181     }
   145 
   182 
   146     NMLOG(QString("NmIpsPop3SettingsManager::deleteMailbox status %1").arg(error));
   183     NMLOG(QString("NmIpsPop3SettingsManager::deleteMailbox status %1").arg(error));
   147     return error;
   184     return error;
   148 }
   185 }
   155 {
   192 {
   156     TRAPD(err, mAccount->SavePopSettingsL(mPop3Account, *mPop3Settings));
   193     TRAPD(err, mAccount->SavePopSettingsL(mPop3Account, *mPop3Settings));
   157     NMLOG(QString("NmIpsPop3SettingsManager::saveSettings rval %1").arg(err));
   194     NMLOG(QString("NmIpsPop3SettingsManager::saveSettings rval %1").arg(err));
   158     return (err==KErrNone);
   195     return (err==KErrNone);
   159 }
   196 }
       
   197 
       
   198 /*!
       
   199      Determine the default port for the incoming mail server based on the security settings
       
   200      
       
   201      \return int the port number to use
       
   202  */
       
   203 int NmIpsPop3SettingsManager::determineDefaultIncomingPort()
       
   204 {
       
   205     int port = 0;    
       
   206     bool sslTls = mPop3Settings->SSLWrapper();    
       
   207     if (sslTls) {
       
   208         port = IpsServices::securePop3Port;
       
   209     } else {
       
   210         port = IpsServices::standardPop3Port;
       
   211     }        
       
   212     return port;
       
   213 }