118 \return bool <true> when the setting item was succesfully written, otherwise <false>. |
118 \return bool <true> when the setting item was succesfully written, otherwise <false>. |
119 */ |
119 */ |
120 bool NmIpsImap4SettingsManager::writeSetting(IpsServices::SettingItem settingItem, |
120 bool NmIpsImap4SettingsManager::writeSetting(IpsServices::SettingItem settingItem, |
121 const QVariant &settingValue) |
121 const QVariant &settingValue) |
122 { |
122 { |
123 HBufC *tmp = 0; |
123 HBufC *tmp = NULL; |
124 HBufC8 *tmp8 = 0; |
124 HBufC8 *tmp8 = NULL; |
125 |
125 |
126 bool ret(false); |
126 bool ret(false); |
127 TInt err(KErrNone); |
127 TInt err(KErrNone); |
128 |
128 |
129 switch (settingItem) { |
129 switch (settingItem) { |
155 delete tmp; |
155 delete tmp; |
156 if (err==KErrNone) { |
156 if (err==KErrNone) { |
157 ret = saveSettings(); |
157 ret = saveSettings(); |
158 } |
158 } |
159 break; |
159 break; |
160 case IpsServices::IncomingPort: |
160 case IpsServices::IncomingPort: |
161 mImap4Settings->SetPort(settingValue.toInt()); |
161 mImap4Settings->SetPort(settingValue.toInt()); |
162 ret = saveSettings(); |
162 ret = saveSettings(); |
163 break; |
163 break; |
164 case IpsServices::FolderPath: |
164 case IpsServices::FolderPath: |
165 tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString()); |
165 tmp8 = XQConversions::qStringToS60Desc8(settingValue.toString()); |
166 TRAP(err, mImap4Settings->SetFolderPathL(*tmp8)); |
166 TRAP(err, mImap4Settings->SetFolderPathL(*tmp8)); |
167 delete tmp; |
167 delete tmp; |
168 if (err==KErrNone) { |
168 if (err==KErrNone) { |
169 ret = saveSettings(); |
169 ret = saveSettings(); |
170 } |
170 } |
171 break; |
171 break; |
172 case IpsServices::IncomingSecureSockets: |
172 case IpsServices::IncomingSecureSockets: |
173 mImap4Settings->SetSecureSockets(settingValue.toBool()); |
173 mImap4Settings->SetSecureSockets(settingValue.toBool()); |
174 ret = saveSettings(); |
174 ret = saveSettings(); |
175 break; |
175 break; |
176 case IpsServices::IncomingSSLWrapper: |
176 case IpsServices::IncomingSSLWrapper: |
177 mImap4Settings->SetSSLWrapper(settingValue.toBool()); |
177 mImap4Settings->SetSSLWrapper(settingValue.toBool()); |
178 ret = saveSettings(); |
178 ret = saveSettings(); |
179 break; |
179 break; |
|
180 case IpsServices::ReceptionInboxSyncWindow: { |
|
181 int inboxValue = settingValue.toInt(); |
|
182 if (inboxValue == 0) { |
|
183 // for CImImap4Settings all messages value is -1 |
|
184 inboxValue = -1; |
|
185 } |
|
186 mImap4Settings->SetInboxSynchronisationLimit(inboxValue); |
|
187 ret = saveSettings(); |
|
188 ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue); |
|
189 break; |
|
190 } |
180 case IpsServices::Connection: |
191 case IpsServices::Connection: |
181 ret = saveIAPSettings(settingValue.toUInt()); |
192 ret = saveIAPSettings(settingValue.toUInt()); |
182 // Fallthrough so SMTP IAP settings are also updated accordingly. |
193 // Fallthrough so SMTP IAP settings are also updated accordingly. |
183 default: |
194 default: |
184 ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue); |
195 ret = NmIpsSettingsManagerBase::writeSetting(settingItem, settingValue); |
193 code is returned. |
204 code is returned. |
194 */ |
205 */ |
195 int NmIpsImap4SettingsManager::deleteMailbox() |
206 int NmIpsImap4SettingsManager::deleteMailbox() |
196 { |
207 { |
197 TRAPD(error, mAccount->DeleteImapAccountL(mImap4Account)); |
208 TRAPD(error, mAccount->DeleteImapAccountL(mImap4Account)); |
|
209 |
|
210 // Try to delete the mailbox again if it failed because it was locked or in use |
|
211 if (error==KErrInUse || error==KErrLocked) { |
|
212 TRAP(error, mAccount->DeleteImapAccountL(mImap4Account)); |
|
213 } |
|
214 |
198 if (!error) { |
215 if (!error) { |
199 NmIpsSettingsManagerBase::deleteMailbox(); |
216 NmIpsSettingsManagerBase::deleteMailbox(); |
200 } |
217 } |
201 |
218 |
202 NMLOG(QString("NmIpsImap4SettingsManager::deleteMailbox status %1").arg(error)); |
219 NMLOG(QString("NmIpsImap4SettingsManager::deleteMailbox status %1").arg(error)); |
211 int NmIpsImap4SettingsManager::determineDefaultIncomingPort() |
228 int NmIpsImap4SettingsManager::determineDefaultIncomingPort() |
212 { |
229 { |
213 int port(IpsServices::standardImap4Port); |
230 int port(IpsServices::standardImap4Port); |
214 if (mImap4Settings->SSLWrapper()) { |
231 if (mImap4Settings->SSLWrapper()) { |
215 port = IpsServices::imap4OverSslPort; |
232 port = IpsServices::imap4OverSslPort; |
216 } |
233 } |
217 return port; |
234 return port; |
218 } |
235 } |
219 |
236 |
220 /*! |
237 /*! |
221 Stores the IMAP4 specific settings. |
238 Stores the IMAP4 specific settings. |