Diffstat (limited to 'kmicromail/libmailwrapper/genericwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kmicromail/libmailwrapper/genericwrapper.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kmicromail/libmailwrapper/genericwrapper.cpp b/kmicromail/libmailwrapper/genericwrapper.cpp index f804e44..1fd4bb1 100644 --- a/kmicromail/libmailwrapper/genericwrapper.cpp +++ b/kmicromail/libmailwrapper/genericwrapper.cpp | |||
@@ -1,24 +1,25 @@ | |||
1 | // CHANGED 2004-09-31 Lutz Rogowski | ||
1 | #include "genericwrapper.h" | 2 | #include "genericwrapper.h" |
2 | #include <libetpan/libetpan.h> | 3 | #include <libetpan/libetpan.h> |
3 | #include "mailtypes.h" | 4 | #include "mailtypes.h" |
4 | 5 | ||
5 | 6 | ||
6 | 7 | ||
7 | using namespace Opie::Core; | 8 | using namespace Opie::Core; |
8 | Genericwrapper::Genericwrapper() | 9 | Genericwrapper::Genericwrapper() |
9 | : AbstractMail() | 10 | : AbstractMail() |
10 | { | 11 | { |
11 | bodyCache.clear(); | 12 | bodyCache.clear(); |
12 | m_storage = 0; | 13 | m_storage = 0; |
13 | m_folder = 0; | 14 | m_folder = 0; |
14 | } | 15 | } |
15 | 16 | ||
16 | Genericwrapper::~Genericwrapper() | 17 | Genericwrapper::~Genericwrapper() |
17 | { | 18 | { |
18 | if (m_folder) { | 19 | if (m_folder) { |
19 | mailfolder_free(m_folder); | 20 | mailfolder_free(m_folder); |
20 | } | 21 | } |
21 | if (m_storage) { | 22 | if (m_storage) { |
22 | mailstorage_free(m_storage); | 23 | mailstorage_free(m_storage); |
23 | } | 24 | } |
24 | cleanMimeCache(); | 25 | cleanMimeCache(); |
@@ -371,49 +372,49 @@ void Genericwrapper::cleanMimeCache() | |||
371 | bodyCache.clear(); | 372 | bodyCache.clear(); |
372 | ; // odebug << "Genericwrapper: cache cleaned" << oendl; | 373 | ; // odebug << "Genericwrapper: cache cleaned" << oendl; |
373 | } | 374 | } |
374 | 375 | ||
375 | QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies) | 376 | QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies) |
376 | { | 377 | { |
377 | QStringList res; | 378 | QStringList res; |
378 | if (!in_replies || !in_replies->mid_list) return res; | 379 | if (!in_replies || !in_replies->mid_list) return res; |
379 | clistiter * current = 0; | 380 | clistiter * current = 0; |
380 | for ( current = clist_begin( in_replies->mid_list ); current != NULL; current = current->next ) { | 381 | for ( current = clist_begin( in_replies->mid_list ); current != NULL; current = current->next ) { |
381 | QString h((char*)current->data); | 382 | QString h((char*)current->data); |
382 | while (h.length()>0 && h[0]=='<') { | 383 | while (h.length()>0 && h[0]=='<') { |
383 | h.remove(0,1); | 384 | h.remove(0,1); |
384 | } | 385 | } |
385 | while (h.length()>0 && h[h.length()-1]=='>') { | 386 | while (h.length()>0 && h[h.length()-1]=='>') { |
386 | h.remove(h.length()-1,1); | 387 | h.remove(h.length()-1,1); |
387 | } | 388 | } |
388 | if (h.length()>0) { | 389 | if (h.length()>0) { |
389 | res.append(h); | 390 | res.append(h); |
390 | } | 391 | } |
391 | } | 392 | } |
392 | return res; | 393 | return res; |
393 | } | 394 | } |
394 | 395 | ||
395 | void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to) | 396 | void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to, int maxSizeInKb) |
396 | { | 397 | { |
397 | int r; | 398 | int r; |
398 | mailmessage_list * env_list = 0; | 399 | mailmessage_list * env_list = 0; |
399 | r = mailsession_get_messages_list(session,&env_list); | 400 | r = mailsession_get_messages_list(session,&env_list); |
400 | if (r != MAIL_NO_ERROR) { | 401 | if (r != MAIL_NO_ERROR) { |
401 | ; // odebug << "Error message list" << oendl; | 402 | ; // odebug << "Error message list" << oendl; |
402 | return; | 403 | return; |
403 | } | 404 | } |
404 | r = mailsession_get_envelopes_list(session, env_list); | 405 | r = mailsession_get_envelopes_list(session, env_list); |
405 | if (r != MAIL_NO_ERROR) { | 406 | if (r != MAIL_NO_ERROR) { |
406 | ; // odebug << "Error filling message list" << oendl; | 407 | ; // odebug << "Error filling message list" << oendl; |
407 | if (env_list) { | 408 | if (env_list) { |
408 | mailmessage_list_free(env_list); | 409 | mailmessage_list_free(env_list); |
409 | } | 410 | } |
410 | return; | 411 | return; |
411 | } | 412 | } |
412 | mailimf_references * refs = 0; | 413 | mailimf_references * refs = 0; |
413 | mailimf_in_reply_to * in_replies = 0; | 414 | mailimf_in_reply_to * in_replies = 0; |
414 | uint32_t i = 0; | 415 | uint32_t i = 0; |
415 | for(; i < carray_count(env_list->msg_tab) ; ++i) { | 416 | for(; i < carray_count(env_list->msg_tab) ; ++i) { |
416 | mailmessage * msg; | 417 | mailmessage * msg; |
417 | QBitArray mFlags(7); | 418 | QBitArray mFlags(7); |
418 | msg = (mailmessage*)carray_get(env_list->msg_tab, i); | 419 | msg = (mailmessage*)carray_get(env_list->msg_tab, i); |
419 | if (msg->msg_fields == NULL) { | 420 | if (msg->msg_fields == NULL) { |
@@ -451,30 +452,31 @@ void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > & | |||
451 | mail->setDate( parseDateTime( single_fields.fld_orig_date->dt_date_time ) ); | 452 | mail->setDate( parseDateTime( single_fields.fld_orig_date->dt_date_time ) ); |
452 | // crashes when accessing pop3 account? | 453 | // crashes when accessing pop3 account? |
453 | if (single_fields.fld_message_id->mid_value) { | 454 | if (single_fields.fld_message_id->mid_value) { |
454 | mail->setMsgid(QString(single_fields.fld_message_id->mid_value)); | 455 | mail->setMsgid(QString(single_fields.fld_message_id->mid_value)); |
455 | ; // odebug << "Msgid == " << mail->Msgid().latin1() << "" << oendl; | 456 | ; // odebug << "Msgid == " << mail->Msgid().latin1() << "" << oendl; |
456 | } | 457 | } |
457 | 458 | ||
458 | if (single_fields.fld_reply_to) { | 459 | if (single_fields.fld_reply_to) { |
459 | QStringList t = parseAddressList(single_fields.fld_reply_to->rt_addr_list); | 460 | QStringList t = parseAddressList(single_fields.fld_reply_to->rt_addr_list); |
460 | if (t.count()>0) { | 461 | if (t.count()>0) { |
461 | mail->setReplyto(t[0]); | 462 | mail->setReplyto(t[0]); |
462 | } | 463 | } |
463 | } | 464 | } |
464 | #if 0 | 465 | #if 0 |
465 | refs = single_fields.fld_references; | 466 | refs = single_fields.fld_references; |
466 | if (refs && refs->mid_list && clist_count(refs->mid_list)) { | 467 | if (refs && refs->mid_list && clist_count(refs->mid_list)) { |
467 | char * text = (char*)refs->mid_list->first->data; | 468 | char * text = (char*)refs->mid_list->first->data; |
468 | mail->setReplyto(QString(text)); | 469 | mail->setReplyto(QString(text)); |
469 | } | 470 | } |
470 | #endif | 471 | #endif |
471 | if (single_fields.fld_in_reply_to && single_fields.fld_in_reply_to->mid_list && | 472 | if (single_fields.fld_in_reply_to && single_fields.fld_in_reply_to->mid_list && |
472 | clist_count(single_fields.fld_in_reply_to->mid_list)) { | 473 | clist_count(single_fields.fld_in_reply_to->mid_list)) { |
473 | mail->setInreply(parseInreplies(single_fields.fld_in_reply_to)); | 474 | mail->setInreply(parseInreplies(single_fields.fld_in_reply_to)); |
474 | } | 475 | } |
475 | target.append(mail); | 476 | if ( maxSizeInKb == 0 || mail->Msgsize()<=maxSizeInKb*1024 ) |
477 | target.append(mail); | ||
476 | } | 478 | } |
477 | if (env_list) { | 479 | if (env_list) { |
478 | mailmessage_list_free(env_list); | 480 | mailmessage_list_free(env_list); |
479 | } | 481 | } |
480 | } | 482 | } |