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 } |