Diffstat (limited to 'noncore/net/mail/libmailwrapper/pop3wrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/pop3wrapper.cpp | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp index b85fbf6..2e70dee 100644 --- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp +++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp | |||
@@ -197,35 +197,58 @@ void POP3wrapper::login() | |||
197 | void POP3wrapper::logout() | 197 | void POP3wrapper::logout() |
198 | { | 198 | { |
199 | int err = MAILPOP3_NO_ERROR; | 199 | int err = MAILPOP3_NO_ERROR; |
200 | if ( m_pop3 == NULL ) return; | 200 | if ( m_pop3 == NULL ) return; |
201 | err = mailpop3_quit( m_pop3 ); | 201 | err = mailpop3_quit( m_pop3 ); |
202 | mailpop3_free( m_pop3 ); | 202 | mailpop3_free( m_pop3 ); |
203 | m_pop3 = NULL; | 203 | m_pop3 = NULL; |
204 | } | 204 | } |
205 | 205 | ||
206 | 206 | ||
207 | QList<Folder>* POP3wrapper::listFolders() | 207 | QList<Folder>* POP3wrapper::listFolders() |
208 | { | 208 | { |
209 | /* TODO: integrate MH directories | ||
210 | but not before version 0.1 ;) | ||
211 | */ | ||
212 | QList<Folder> * folders = new QList<Folder>(); | 209 | QList<Folder> * folders = new QList<Folder>(); |
213 | folders->setAutoDelete( false ); | 210 | folders->setAutoDelete( false ); |
214 | Folder*inb=new Folder("INBOX","/"); | 211 | Folder*inb=new Folder("INBOX","/"); |
215 | folders->append(inb); | 212 | folders->append(inb); |
216 | return folders; | 213 | return folders; |
217 | } | 214 | } |
218 | 215 | ||
219 | void POP3wrapper::deleteMail(const RecMail&mail) | 216 | void POP3wrapper::deleteMail(const RecMail&mail) |
220 | { | 217 | { |
221 | login(); | 218 | login(); |
222 | if (!m_pop3) return; | 219 | if (!m_pop3) return; |
223 | int err = mailpop3_dele(m_pop3,mail.getNumber()); | 220 | int err = mailpop3_dele(m_pop3,mail.getNumber()); |
224 | if (err != MAILPOP3_NO_ERROR) { | 221 | if (err != MAILPOP3_NO_ERROR) { |
225 | qDebug("error deleting mail"); | 222 | Global::statusMessage(tr("error deleting mail")); |
226 | } | 223 | } |
227 | } | 224 | } |
228 | 225 | ||
229 | void POP3wrapper::answeredMail(const RecMail&) | 226 | void POP3wrapper::answeredMail(const RecMail&) |
230 | { | 227 | { |
231 | } | 228 | } |
229 | |||
230 | int POP3wrapper::deleteAllMail(const Folder*) | ||
231 | { | ||
232 | login(); | ||
233 | if (!m_pop3) return 0; | ||
234 | carray * messages = 0; | ||
235 | |||
236 | /* if connected this info is cached! */ | ||
237 | int err = 0; | ||
238 | mailpop3_list( m_pop3, &messages ); | ||
239 | |||
240 | int res = 1; | ||
241 | for (unsigned int i = 0; messages!=0 && i < carray_count(messages);++i) { | ||
242 | mailpop3_msg_info *info; | ||
243 | err = mailpop3_get_msg_info(m_pop3,i+1,&info); | ||
244 | if (info->msg_deleted) | ||
245 | continue; | ||
246 | err = mailpop3_dele(m_pop3,i+1); | ||
247 | if (err != MAILPOP3_NO_ERROR) { | ||
248 | Global::statusMessage(tr("Error deleting mail %1").arg(i+1)); | ||
249 | res = 0; | ||
250 | break; | ||
251 | } | ||
252 | } | ||
253 | return res; | ||
254 | } | ||