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