author | zautrix <zautrix> | 2004-08-31 21:01:18 (UTC) |
---|---|---|
committer | zautrix <zautrix> | 2004-08-31 21:01:18 (UTC) |
commit | 3f5c51234c8068f3d4826a2a0066648ace21a19f (patch) (side-by-side diff) | |
tree | 91b76c1c7ddec6628c573e409070070747d99feb /kmicromail/libmailwrapper | |
parent | 95f8d4f1de557bd25ae38807d970208399cec5d1 (diff) | |
download | kdepimpi-3f5c51234c8068f3d4826a2a0066648ace21a19f.zip kdepimpi-3f5c51234c8068f3d4826a2a0066648ace21a19f.tar.gz kdepimpi-3f5c51234c8068f3d4826a2a0066648ace21a19f.tar.bz2 |
Enhancements of kopiemail
-rw-r--r-- | kmicromail/libmailwrapper/abstractmail.cpp | 29 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/abstractmail.h | 8 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/genericwrapper.cpp | 6 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/genericwrapper.h | 3 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.cpp | 68 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.h | 6 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/mhwrapper.cpp | 5 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/mhwrapper.h | 3 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/nntpwrapper.cpp | 5 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/nntpwrapper.h | 3 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/pop3wrapper.cpp | 21 | ||||
-rw-r--r-- | kmicromail/libmailwrapper/pop3wrapper.h | 4 |
12 files changed, 128 insertions, 33 deletions
diff --git a/kmicromail/libmailwrapper/abstractmail.cpp b/kmicromail/libmailwrapper/abstractmail.cpp index 128a7c0..3998abd 100644 --- a/kmicromail/libmailwrapper/abstractmail.cpp +++ b/kmicromail/libmailwrapper/abstractmail.cpp @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #include "abstractmail.h" @@ -139,11 +140,24 @@ void AbstractMail::deleteMails(const QString &,const QValueList<Opie::Core::OSma } +void AbstractMail::deleteMailList(const QValueList<RecMailP>&target) +{ + qDebug("AbstractMail::deleteMailList:: Please reimplement! "); +} void AbstractMail::mvcpAllMails(const FolderP&fromFolder, - const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb) +{ + QValueList<RecMailP> t; + listMessages(fromFolder->getName(),t, maxSizeInKb); + mvcpMailList( t,targetFolder,targetWrapper,moveit); + +} +void AbstractMail::mvcpMailList(const QValueList<RecMailP>& t, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) { - QValueList<RecMailP> t; - listMessages(fromFolder->getName(),t); + encodedString*st = 0; - while (t.count()>0) { - RecMailP r = (*t.begin()); + int iii = 0; + int count = t.count(); + while (iii < count ) { + RecMailP r = (*t.at( iii )); st = fetchRawBody(r); @@ -153,6 +167,7 @@ void AbstractMail::mvcpAllMails(const FolderP&fromFolder, } - t.remove(t.begin()); + ++iii; } if (moveit) { - deleteAllMail(fromFolder); + deleteMailList( t ); + //deleteAllMail(fromFolder); } diff --git a/kmicromail/libmailwrapper/abstractmail.h b/kmicromail/libmailwrapper/abstractmail.h index e5d64a6..cae83f4 100644 --- a/kmicromail/libmailwrapper/abstractmail.h +++ b/kmicromail/libmailwrapper/abstractmail.h @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #ifndef __abstract_mail_ @@ -24,3 +25,3 @@ public: virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders()=0; - virtual void listMessages(const QString & mailbox,QValueList<RecMailP>&target )=0; + virtual void listMessages(const QString & mailbox,QValueList<RecMailP>&target, int sizeInKb = 0 )=0; virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0; @@ -33,2 +34,3 @@ public: virtual void deleteMail(const RecMailP&mail)=0; + virtual void deleteMailList(const QValueList<RecMailP>&target); virtual void answeredMail(const RecMailP&mail)=0; @@ -40,3 +42,5 @@ public: virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder, - const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int sizeInKb = 0); + virtual void mvcpMailList(const QValueList<RecMailP>& t, + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 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 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #include "genericwrapper.h" @@ -394,3 +395,3 @@ QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies) -void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to) +void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to, int maxSizeInKb) { @@ -474,3 +475,4 @@ void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > & } - target.append(mail); + if ( maxSizeInKb == 0 || mail->Msgsize()<=maxSizeInKb*1024 ) + target.append(mail); } diff --git a/kmicromail/libmailwrapper/genericwrapper.h b/kmicromail/libmailwrapper/genericwrapper.h index 8be9212..235e116 100644 --- a/kmicromail/libmailwrapper/genericwrapper.h +++ b/kmicromail/libmailwrapper/genericwrapper.h @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #ifndef __GENERIC_WRAPPER_H @@ -56,3 +57,3 @@ protected: static QString getencoding(mailmime_mechanism*aEnc); - virtual void parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to=false); + virtual void parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to=false, int maxSizeInKb = 0); QStringList parseInreplies(mailimf_in_reply_to * in_replies); 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; diff --git a/kmicromail/libmailwrapper/imapwrapper.h b/kmicromail/libmailwrapper/imapwrapper.h index e56605a..222fe95 100644 --- a/kmicromail/libmailwrapper/imapwrapper.h +++ b/kmicromail/libmailwrapper/imapwrapper.h @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #ifndef __IMAPWRAPPER @@ -26,3 +27,3 @@ public: virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); - virtual void listMessages(const QString & mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); + virtual void listMessages(const QString & mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> >&target , int sizeInKb = 0); virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); @@ -30,2 +31,3 @@ public: virtual void deleteMail(const RecMailP&mail); + void deleteMailList(const QValueList<RecMailP>&target); virtual void answeredMail(const RecMailP&mail); @@ -34,3 +36,3 @@ public: virtual void mvcpAllMails(const Opie::Core::OSmartPointer<Folder>&fromFolder, - const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); + const QString&targetFolder,AbstractMail*targetWrapper,bool moveit,int sizeInKb = 0); virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); diff --git a/kmicromail/libmailwrapper/mhwrapper.cpp b/kmicromail/libmailwrapper/mhwrapper.cpp index 7ef9b32..cbc52d9 100644 --- a/kmicromail/libmailwrapper/mhwrapper.cpp +++ b/kmicromail/libmailwrapper/mhwrapper.cpp @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #include "mhwrapper.h" @@ -64,3 +65,3 @@ MHwrapper::~MHwrapper() -void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) +void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb ) { @@ -76,3 +77,3 @@ void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::Core::OSm } - parseList(target,m_storage->sto_session,f); + parseList(target,m_storage->sto_session,f, false, maxSizeInKb ); Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); diff --git a/kmicromail/libmailwrapper/mhwrapper.h b/kmicromail/libmailwrapper/mhwrapper.h index 4310c84..550824d 100644 --- a/kmicromail/libmailwrapper/mhwrapper.h +++ b/kmicromail/libmailwrapper/mhwrapper.h @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #ifndef __MH_WRAPPER_H @@ -19,3 +20,3 @@ public: - virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ); + virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 ); virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); diff --git a/kmicromail/libmailwrapper/nntpwrapper.cpp b/kmicromail/libmailwrapper/nntpwrapper.cpp index daa128e..f5d7f16 100644 --- a/kmicromail/libmailwrapper/nntpwrapper.cpp +++ b/kmicromail/libmailwrapper/nntpwrapper.cpp @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #include "nntpwrapper.h" @@ -100,3 +101,3 @@ RecBodyP NNTPwrapper::fetchBody( const RecMailP &mail ) { -void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) +void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb) { @@ -107,3 +108,3 @@ void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::Core::OSm mailsession_status_folder(m_nntp->sto_session,(char*)which.latin1(),&res_messages,&res_recent,&res_unseen); - parseList(target,m_nntp->sto_session,which,true); + parseList(target,m_nntp->sto_session,which,true, maxSizeInKb); } diff --git a/kmicromail/libmailwrapper/nntpwrapper.h b/kmicromail/libmailwrapper/nntpwrapper.h index 2fb82f2..5d4e5ce 100644 --- a/kmicromail/libmailwrapper/nntpwrapper.h +++ b/kmicromail/libmailwrapper/nntpwrapper.h @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #ifndef __NNTPWRAPPER @@ -22,3 +23,3 @@ public: /* mailbox will be ignored */ - virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ); + virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 ); /* should only get the subscribed one */ diff --git a/kmicromail/libmailwrapper/pop3wrapper.cpp b/kmicromail/libmailwrapper/pop3wrapper.cpp index e5d083a..7a84b30 100644 --- a/kmicromail/libmailwrapper/pop3wrapper.cpp +++ b/kmicromail/libmailwrapper/pop3wrapper.cpp @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #include <stdlib.h> @@ -98,3 +99,3 @@ RecBodyP POP3wrapper::fetchBody( const RecMailP &mail ) { -void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ) +void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb ) { @@ -105,3 +106,3 @@ void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPoi mailsession_status_folder(m_pop3->sto_session,"INBOX",&res_messages,&res_recent,&res_unseen); - parseList(target,m_pop3->sto_session,"INBOX"); + parseList(target,m_pop3->sto_session,"INBOX", false, maxSizeInKb); Global::statusMessage( tr("Mailbox contains %1 mail(s)").arg(res_messages)); @@ -194,2 +195,18 @@ QValueList<Opie::Core::OSmartPointer<Folder> >* POP3wrapper::listFolders() { +void POP3wrapper::deleteMailList(QValueList<RecMailP>&target) +{ + login(); + if (!m_pop3) + return; + int iii = 0; + int count = target.count(); + while (iii < count ) { + RecMailP mail = (*target.at( iii )); + int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber()); + if (err != MAIL_NO_ERROR) { + Global::statusMessage(tr("error deleting mail")); + } + ++iii; + } +} void POP3wrapper::deleteMail(const RecMailP&mail) { diff --git a/kmicromail/libmailwrapper/pop3wrapper.h b/kmicromail/libmailwrapper/pop3wrapper.h index 5101fa5..ee754a4 100644 --- a/kmicromail/libmailwrapper/pop3wrapper.h +++ b/kmicromail/libmailwrapper/pop3wrapper.h @@ -1 +1,2 @@ +// CHANGED 2004-09-31 Lutz Rogowski #ifndef __POP3WRAPPER @@ -19,3 +20,3 @@ public: /* mailbox will be ignored */ - virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target ); + virtual void listMessages(const QString & mailbox, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb = 0 ); virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders(); @@ -26,2 +27,3 @@ public: virtual void answeredMail(const RecMailP&mail); + virtual void deleteMailList(QValueList<RecMailP>&target); virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&); |