Diffstat (limited to 'kmicromail/libmailwrapper/imapwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.cpp | 68 |
1 files changed, 58 insertions, 10 deletions
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp index e0fb6f9..bb8bbfc 100644 --- a/kmicromail/libmailwrapper/imapwrapper.cpp +++ b/kmicromail/libmailwrapper/imapwrapper.cpp @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #include <stdlib.h> @@ -204,3 +205,3 @@ void IMAPwrapper::logout() -void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) +void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target , int maxSizeInKb) { @@ -252,6 +253,8 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma if (m) { - m->setNumber(i); - m->setMbox(mailbox); - m->setWrapper(this); - target.append(m); + if ( maxSizeInKb == 0 || m->Msgsize()<=maxSizeInKb*1024 ) { + m->setNumber(i); + m->setMbox(mailbox); + m->setWrapper(this); + target.append(m); + } } @@ -868,3 +871,45 @@ void IMAPwrapper::fillBodyFields(RecPartP&target_part,mailimap_body_fields*which } +void IMAPwrapper::deleteMailList(const QValueList<RecMailP>&target) +{ + mailimap_flag_list*flist; + mailimap_set *set; + mailimap_store_att_flags * store_flags; + int err; + login(); + if (!m_imap) { + return; + } + int iii = 0; + int count = target.count(); + qDebug("imap remove count %d ", count); + while (iii < count ) { + qDebug("IMAP remove %d ", iii); + RecMailP mail = (*target.at( iii )); + err = selectMbox(mail->getMbox()); + if ( err != MAILIMAP_NO_ERROR ) { + return; + } + flist = mailimap_flag_list_new_empty(); + mailimap_flag_list_add(flist,mailimap_flag_new_deleted()); + store_flags = mailimap_store_att_flags_new_set_flags(flist); + set = mailimap_set_new_single(mail->getNumber()); + err = mailimap_store(m_imap,set,store_flags); + mailimap_set_free( set ); + mailimap_store_att_flags_free(store_flags); + + if (err != MAILIMAP_NO_ERROR) { + // odebug << "error deleting mail: " << m_imap->imap_response << "" << oendl; + return; + } + // odebug << "deleting mail: " << m_imap->imap_response << "" << oendl; + /* should we realy do that at this moment? */ + + err = mailimap_expunge(m_imap); + if (err != MAILIMAP_NO_ERROR) { + Global::statusMessage(tr("error deleting mail: %s").arg(m_imap->imap_response)); + } + ++iii; + } +} void IMAPwrapper::deleteMail(const RecMailP&mail) @@ -897,7 +942,9 @@ void IMAPwrapper::deleteMail(const RecMailP&mail) /* should we realy do that at this moment? */ + err = mailimap_expunge(m_imap); if (err != MAILIMAP_NO_ERROR) { - // odebug << "error deleting mail: " << m_imap->imap_response << "" << oendl; + Global::statusMessage(tr("error deleting mail: %s").arg(m_imap->imap_response)); } - // odebug << "Delete successfull " << m_imap->imap_response << "" << oendl; + qDebug("IMAPwrapper::deleteMail "); + } @@ -1122,6 +1169,7 @@ encodedString* IMAPwrapper::fetchRawBody(const RecMailP&mail) void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder, - const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) { - if (targetWrapper != this) { - AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit); + if (targetWrapper != this || maxSizeInKb > 0 ) { + AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit, maxSizeInKb); + qDebug("IMAPwrapper::mvcpAllMails::Using generic"); // odebug << "Using generic" << oendl; |