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 @@ | |||
1 | // CHANGED 2004-09-31 Lutz Rogowski | ||
1 | #include <stdlib.h> | 2 | #include <stdlib.h> |
@@ -204,3 +205,3 @@ void IMAPwrapper::logout() | |||
204 | 205 | ||
205 | void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) | 206 | void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target , int maxSizeInKb) |
206 | { | 207 | { |
@@ -252,6 +253,8 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma | |||
252 | if (m) { | 253 | if (m) { |
253 | m->setNumber(i); | 254 | if ( maxSizeInKb == 0 || m->Msgsize()<=maxSizeInKb*1024 ) { |
254 | m->setMbox(mailbox); | 255 | m->setNumber(i); |
255 | m->setWrapper(this); | 256 | m->setMbox(mailbox); |
256 | target.append(m); | 257 | m->setWrapper(this); |
258 | target.append(m); | ||
259 | } | ||
257 | } | 260 | } |
@@ -868,3 +871,45 @@ void IMAPwrapper::fillBodyFields(RecPartP&target_part,mailimap_body_fields*which | |||
868 | } | 871 | } |
872 | void IMAPwrapper::deleteMailList(const QValueList<RecMailP>&target) | ||
873 | { | ||
874 | mailimap_flag_list*flist; | ||
875 | mailimap_set *set; | ||
876 | mailimap_store_att_flags * store_flags; | ||
877 | int err; | ||
878 | login(); | ||
879 | if (!m_imap) { | ||
880 | return; | ||
881 | } | ||
882 | int iii = 0; | ||
883 | int count = target.count(); | ||
884 | qDebug("imap remove count %d ", count); | ||
885 | while (iii < count ) { | ||
886 | qDebug("IMAP remove %d ", iii); | ||
887 | RecMailP mail = (*target.at( iii )); | ||
869 | 888 | ||
889 | err = selectMbox(mail->getMbox()); | ||
890 | if ( err != MAILIMAP_NO_ERROR ) { | ||
891 | return; | ||
892 | } | ||
893 | flist = mailimap_flag_list_new_empty(); | ||
894 | mailimap_flag_list_add(flist,mailimap_flag_new_deleted()); | ||
895 | store_flags = mailimap_store_att_flags_new_set_flags(flist); | ||
896 | set = mailimap_set_new_single(mail->getNumber()); | ||
897 | err = mailimap_store(m_imap,set,store_flags); | ||
898 | mailimap_set_free( set ); | ||
899 | mailimap_store_att_flags_free(store_flags); | ||
900 | |||
901 | if (err != MAILIMAP_NO_ERROR) { | ||
902 | // odebug << "error deleting mail: " << m_imap->imap_response << "" << oendl; | ||
903 | return; | ||
904 | } | ||
905 | // odebug << "deleting mail: " << m_imap->imap_response << "" << oendl; | ||
906 | /* should we realy do that at this moment? */ | ||
907 | |||
908 | err = mailimap_expunge(m_imap); | ||
909 | if (err != MAILIMAP_NO_ERROR) { | ||
910 | Global::statusMessage(tr("error deleting mail: %s").arg(m_imap->imap_response)); | ||
911 | } | ||
912 | ++iii; | ||
913 | } | ||
914 | } | ||
870 | void IMAPwrapper::deleteMail(const RecMailP&mail) | 915 | void IMAPwrapper::deleteMail(const RecMailP&mail) |
@@ -897,7 +942,9 @@ void IMAPwrapper::deleteMail(const RecMailP&mail) | |||
897 | /* should we realy do that at this moment? */ | 942 | /* should we realy do that at this moment? */ |
943 | |||
898 | err = mailimap_expunge(m_imap); | 944 | err = mailimap_expunge(m_imap); |
899 | if (err != MAILIMAP_NO_ERROR) { | 945 | if (err != MAILIMAP_NO_ERROR) { |
900 | // odebug << "error deleting mail: " << m_imap->imap_response << "" << oendl; | 946 | Global::statusMessage(tr("error deleting mail: %s").arg(m_imap->imap_response)); |
901 | } | 947 | } |
902 | // odebug << "Delete successfull " << m_imap->imap_response << "" << oendl; | 948 | qDebug("IMAPwrapper::deleteMail "); |
949 | |||
903 | } | 950 | } |
@@ -1122,6 +1169,7 @@ encodedString* IMAPwrapper::fetchRawBody(const RecMailP&mail) | |||
1122 | void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder, | 1169 | void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder, |
1123 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | 1170 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) |
1124 | { | 1171 | { |
1125 | if (targetWrapper != this) { | 1172 | if (targetWrapper != this || maxSizeInKb > 0 ) { |
1126 | AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit); | 1173 | AbstractMail::mvcpAllMails(fromFolder,targetFolder,targetWrapper,moveit, maxSizeInKb); |
1174 | qDebug("IMAPwrapper::mvcpAllMails::Using generic"); | ||
1127 | // odebug << "Using generic" << oendl; | 1175 | // odebug << "Using generic" << oendl; |