summaryrefslogtreecommitdiffabout
path: root/kmicromail
authorzautrix <zautrix>2004-08-31 21:01:18 (UTC)
committer zautrix <zautrix>2004-08-31 21:01:18 (UTC)
commit3f5c51234c8068f3d4826a2a0066648ace21a19f (patch) (side-by-side diff)
tree91b76c1c7ddec6628c573e409070070747d99feb /kmicromail
parent95f8d4f1de557bd25ae38807d970208399cec5d1 (diff)
downloadkdepimpi-3f5c51234c8068f3d4826a2a0066648ace21a19f.zip
kdepimpi-3f5c51234c8068f3d4826a2a0066648ace21a19f.tar.gz
kdepimpi-3f5c51234c8068f3d4826a2a0066648ace21a19f.tar.bz2
Enhancements of kopiemail
Diffstat (limited to 'kmicromail') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/accountview.cpp8
-rw-r--r--kmicromail/libmailwrapper/abstractmail.cpp29
-rw-r--r--kmicromail/libmailwrapper/abstractmail.h8
-rw-r--r--kmicromail/libmailwrapper/genericwrapper.cpp6
-rw-r--r--kmicromail/libmailwrapper/genericwrapper.h3
-rw-r--r--kmicromail/libmailwrapper/imapwrapper.cpp68
-rw-r--r--kmicromail/libmailwrapper/imapwrapper.h6
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.cpp5
-rw-r--r--kmicromail/libmailwrapper/mhwrapper.h3
-rw-r--r--kmicromail/libmailwrapper/nntpwrapper.cpp5
-rw-r--r--kmicromail/libmailwrapper/nntpwrapper.h3
-rw-r--r--kmicromail/libmailwrapper/pop3wrapper.cpp21
-rw-r--r--kmicromail/libmailwrapper/pop3wrapper.h4
-rw-r--r--kmicromail/opiemail.cpp44
-rw-r--r--kmicromail/opiemail.h2
-rw-r--r--kmicromail/selectstoreui.ui88
16 files changed, 244 insertions, 59 deletions
diff --git a/kmicromail/accountview.cpp b/kmicromail/accountview.cpp
index 0893733..4ead545 100644
--- a/kmicromail/accountview.cpp
+++ b/kmicromail/accountview.cpp
@@ -14,6 +14,8 @@
/* QT */
#include <qmessagebox.h>
#include <qpopupmenu.h>
+#include <qcheckbox.h>
+#include <qspinbox.h>
using namespace Opie::Core;
AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
@@ -158,7 +160,11 @@ void AccountView::downloadMails(const FolderP&fromFolder,AbstractMail*fromWrappe
tr("<center>Error while creating<br>new folder - breaking.</center>"));
return;
}
- fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails());
+ int maxsize = 0;
+ if ( sels.useSize->isChecked())
+ maxsize = sels.sizeSpinBox->value();
+
+ fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize);
refreshCurrent();
}
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#include "abstractmail.h"
#include "imapwrapper.h"
#include "pop3wrapper.h"
@@ -137,24 +138,38 @@ QString AbstractMail::draftFolder()
void AbstractMail::deleteMails(const QString &,const QValueList<Opie::Core::OSmartPointer<RecMail> > &)
{
}
+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);
if (st) {
targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder);
delete st;
}
- 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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#ifndef __abstract_mail_
#define __abstract_mail_
@@ -22,7 +23,7 @@ public:
AbstractMail(){};
virtual ~AbstractMail(){}
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;
virtual RecBodyP fetchBody(const RecMailP&mail)=0;
virtual QString fetchTextPart(const RecMailP&mail,const RecPartP&part)=0;
@@ -31,6 +32,7 @@ public:
virtual encodedString* fetchRawBody(const RecMailP&mail)=0;
virtual void deleteMail(const RecMailP&mail)=0;
+ virtual void deleteMailList(const QValueList<RecMailP>&target);
virtual void answeredMail(const RecMailP&mail)=0;
virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&)=0;
virtual void deleteMails(const QString & FolderName,const QValueList<Opie::Core::OSmartPointer<RecMail> >&target);
@@ -38,7 +40,9 @@ public:
virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0;
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);
virtual void cleanMimeCache(){};
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#include "genericwrapper.h"
#include <libetpan/libetpan.h>
#include "mailtypes.h"
@@ -392,7 +393,7 @@ QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies)
return res;
}
-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)
{
int r;
mailmessage_list * env_list = 0;
@@ -472,7 +473,8 @@ void Genericwrapper::parseList(QValueList<Opie::Core::OSmartPointer<RecMail> > &
clist_count(single_fields.fld_in_reply_to->mid_list)) {
mail->setInreply(parseInreplies(single_fields.fld_in_reply_to));
}
- target.append(mail);
+ if ( maxSizeInKb == 0 || mail->Msgsize()<=maxSizeInKb*1024 )
+ target.append(mail);
}
if (env_list) {
mailmessage_list_free(env_list);
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#ifndef __GENERIC_WRAPPER_H
#define __GENERIC_WRAPPER_H
@@ -54,7 +55,7 @@ protected:
static void fillSingleBody(RecPartP&target,mailmessage*message,mailmime*mime);
static void fillParameters(RecPartP&target,clist*parameters);
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);
QString msgTempName;
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#include <stdlib.h>
#include <libetpan/libetpan.h>
#include <qpe/global.h>
@@ -202,7 +203,7 @@ void IMAPwrapper::logout()
m_Lastmbox = "";
}
-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)
{
int err = MAILIMAP_NO_ERROR;
clist *result = 0;
@@ -250,10 +251,12 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma
msg_att = (mailimap_msg_att*)current->data;
RecMail*m = parse_list_result(msg_att);
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);
+ }
}
}
Global::statusMessage(tr("Mailbox has %1 mails").arg(target.count()));
@@ -866,7 +869,49 @@ void IMAPwrapper::fillBodyFields(RecPartP&target_part,mailimap_body_fields*which
target_part->setEncoding(encoding);
target_part->setSize(which->bd_size);
}
+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)
{
mailimap_flag_list*flist;
@@ -895,11 +940,13 @@ void IMAPwrapper::deleteMail(const RecMailP&mail)
}
// 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) {
- // 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 ");
+
}
void IMAPwrapper::answeredMail(const RecMailP&mail)
@@ -1120,10 +1167,11 @@ 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;
return;
}
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#ifndef __IMAPWRAPPER
#define __IMAPWRAPPER
@@ -24,15 +25,16 @@ public:
IMAPwrapper( IMAPaccount *a );
virtual ~IMAPwrapper();
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");
virtual void deleteMail(const RecMailP&mail);
+ void deleteMailList(const QValueList<RecMailP>&target);
virtual void answeredMail(const RecMailP&mail);
virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&folder);
virtual void storeMessage(const char*msg,size_t length, const QString&folder);
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);
virtual RecBodyP fetchBody(const RecMailP&mail);
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#include "mhwrapper.h"
#include "mailtypes.h"
#include "mailwrapper.h"
@@ -62,7 +63,7 @@ MHwrapper::~MHwrapper()
clean_storage();
}
-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 )
{
init_storage();
if (!m_storage) {
@@ -74,7 +75,7 @@ void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::Core::OSm
qDebug("listMessages: error selecting folder! ");
return;
}
- 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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#ifndef __MH_WRAPPER_H
#define __MH_WRAPPER_H
@@ -17,7 +18,7 @@ public:
MHwrapper(const QString & dir,const QString&name);
virtual ~MHwrapper();
- 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();
virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#include "nntpwrapper.h"
#include "logindialog.h"
#include "mailtypes.h"
@@ -98,14 +99,14 @@ 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)
{
login();
if (!m_nntp)
return;
uint32_t res_messages,res_recent,res_unseen;
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);
}
void NNTPwrapper::login()
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#ifndef __NNTPWRAPPER
#define __NNTPWRAPPER
@@ -20,7 +21,7 @@ public:
virtual ~NNTPwrapper();
/* 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 */
virtual QValueList<Opie::Core::OSmartPointer<Folder> >* listFolders();
/* mailbox will be ignored */
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#include <stdlib.h>
#include "pop3wrapper.h"
#include "mailtypes.h"
@@ -96,14 +97,14 @@ RecBodyP POP3wrapper::fetchBody( const RecMailP &mail ) {
return body;
}
-void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target )
+void POP3wrapper::listMessages(const QString &, QValueList<Opie::Core::OSmartPointer<RecMail> > &target, int maxSizeInKb )
{
login();
if (!m_pop3)
return;
uint32_t res_messages,res_recent,res_unseen;
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));
}
@@ -192,6 +193,22 @@ QValueList<Opie::Core::OSmartPointer<Folder> >* POP3wrapper::listFolders() {
return folders;
}
+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) {
login();
if (!m_pop3)
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,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#ifndef __POP3WRAPPER
#define __POP3WRAPPER
@@ -17,13 +18,14 @@ public:
POP3wrapper( POP3account *a );
virtual ~POP3wrapper();
/* 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();
/* mailbox will be ignored */
virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
virtual void deleteMail(const RecMailP&mail);
virtual void answeredMail(const RecMailP&mail);
+ virtual void deleteMailList(QValueList<RecMailP>&target);
virtual int deleteAllMail(const Opie::Core::OSmartPointer<Folder>&);
virtual RecBodyP fetchBody( const RecMailP &mail );
diff --git a/kmicromail/opiemail.cpp b/kmicromail/opiemail.cpp
index d522ad0..3fbdcec 100644
--- a/kmicromail/opiemail.cpp
+++ b/kmicromail/opiemail.cpp
@@ -1,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
// CHANGED 2004-08-06 Lutz Rogowski
#include "settingsdialog.h"
@@ -278,6 +279,7 @@ void OpieMail::mailHold(int button, QListViewItem *item,const QPoint&,int )
m->insertItem(tr("Copy/Move this mail"),this,SLOT(slotMoveCopyMail()));
m->insertItem(tr("Delete this mail"),this,SLOT(slotDeleteMail()));
m->insertSeparator();
+ m->insertItem(tr("Copy/Move all selected mail"),this,SLOT(slotMoveCopyAllMail()));
m->insertItem(tr("Delete all selected mails"),this,SLOT(slotDeleteAllMail()));
m->insertItem(tr("Clear selection"),this,SLOT(clearSelection()));
}
@@ -352,6 +354,48 @@ void OpieMail::slotMoveCopyMail()
folderView->refreshCurrent();
}
+void OpieMail::slotMoveCopyAllMail()
+{
+
+ if (!mailView->currentItem()) return;
+ QValueList<RecMailP> t;
+ if ( QMessageBox::warning(this, tr("Copy/Move all selected mails"), tr("Do you really want to copy/move\nall selected mails?" ) , QMessageBox::Yes, QMessageBox::No ) == QMessageBox::Yes )
+ {
+ MailListViewItem* item = (MailListViewItem*)mailView->firstChild ();
+ while ( item ) {
+ if ( item->isSelected() ) {
+ t.append( item->data() );
+ }
+ item = (MailListViewItem*)item->nextSibling();
+ }
+ }
+ else
+ return;
+ if ( t.count() == 0 )
+ return;
+ RecMailP mail = t.first();
+ AbstractMail*targetMail = 0;
+ QString targetFolder = "";
+ Selectstore sels;
+ folderView->setupFolderselect(&sels);
+ if (!sels.exec()) return;
+ targetMail = sels.currentMail();
+ targetFolder = sels.currentFolder();
+ if ( (mail->Wrapper()==targetMail && mail->getMbox()==targetFolder) ||
+ targetFolder.isEmpty())
+ {
+ return;
+ }
+ if (sels.newFolder() && !targetMail->createMbox(targetFolder))
+ {
+ QMessageBox::critical(0,tr("Error creating new Folder"),
+ tr("<center>Error while creating<br>new folder - breaking.</center>"));
+ return;
+ }
+ mail->Wrapper()->mvcpMailList(t,targetFolder,targetMail,sels.moveMails());
+ folderView->refreshCurrent();
+}
+
void OpieMail::reEditMail()
{
if (!mailView->currentItem()) return;
diff --git a/kmicromail/opiemail.h b/kmicromail/opiemail.h
index 143b0c4..934f232 100644
--- a/kmicromail/opiemail.h
+++ b/kmicromail/opiemail.h
@@ -1,3 +1,4 @@
+// CHANGED 2004-09-31 Lutz Rogowski
#ifndef OPIEMAIL_H
#define OPIEMAIL_H
@@ -35,6 +36,7 @@ protected slots:
virtual void refreshMailView(const QValueList<RecMailP>&);
virtual void mailLeftClicked( QListViewItem * );
virtual void slotMoveCopyMail();
+ virtual void slotMoveCopyAllMail();
virtual void reEditMail();
void clearSelection();
diff --git a/kmicromail/selectstoreui.ui b/kmicromail/selectstoreui.ui
index 5f0e507..dd3fc92 100644
--- a/kmicromail/selectstoreui.ui
+++ b/kmicromail/selectstoreui.ui
@@ -11,8 +11,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>182</width>
- <height>273</height>
+ <width>275</width>
+ <height>304</height>
</rect>
</property>
<property stdset="1">
@@ -25,16 +25,16 @@
<property>
<name>layoutSpacing</name>
</property>
- <vbox>
+ <grid>
<property stdset="1">
<name>margin</name>
- <number>1</number>
+ <number>11</number>
</property>
<property stdset="1">
<name>spacing</name>
- <number>1</number>
+ <number>6</number>
</property>
- <widget>
+ <widget row="0" column="0" rowspan="1" colspan="2" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
@@ -52,7 +52,7 @@
<name>hAlign</name>
</property>
</widget>
- <widget>
+ <widget row="1" column="0" rowspan="1" colspan="2" >
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
@@ -140,7 +140,7 @@
</widget>
</grid>
</widget>
- <widget>
+ <widget row="2" column="0" rowspan="1" colspan="2" >
<class>Line</class>
<property stdset="1">
<name>name</name>
@@ -151,7 +151,7 @@
<enum>Horizontal</enum>
</property>
</widget>
- <widget>
+ <widget row="3" column="0" rowspan="1" colspan="2" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
@@ -162,7 +162,7 @@
<string>Create new folder</string>
</property>
</widget>
- <widget>
+ <widget row="4" column="0" rowspan="1" colspan="2" >
<class>QLineEdit</class>
<property stdset="1">
<name>name</name>
@@ -173,7 +173,7 @@
<bool>false</bool>
</property>
</widget>
- <widget>
+ <widget row="5" column="0" rowspan="1" colspan="2" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
@@ -194,7 +194,7 @@
<name>wordwrap</name>
</property>
</widget>
- <widget>
+ <widget row="6" column="0" rowspan="1" colspan="2" >
<class>Line</class>
<property stdset="1">
<name>name</name>
@@ -205,18 +205,7 @@
<enum>Horizontal</enum>
</property>
</widget>
- <widget>
- <class>QCheckBox</class>
- <property stdset="1">
- <name>name</name>
- <cstring>selMove</cstring>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Move mail(s)</string>
- </property>
- </widget>
- <spacer>
+ <spacer row="9" column="0" >
<property>
<name>name</name>
<cstring>Spacer2</cstring>
@@ -237,7 +226,56 @@
</size>
</property>
</spacer>
- </vbox>
+ <widget row="8" column="0" rowspan="1" colspan="2" >
+ <class>QCheckBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>selMove</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Move mail(s)</string>
+ </property>
+ </widget>
+ <widget row="7" column="0" >
+ <class>QCheckBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>useSize</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>apply only to mails smaller</string>
+ </property>
+ </widget>
+ <widget row="7" column="1" >
+ <class>QSpinBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>sizeSpinBox</cstring>
+ </property>
+ <property stdset="1">
+ <name>suffix</name>
+ <string> kB</string>
+ </property>
+ <property stdset="1">
+ <name>maxValue</name>
+ <number>8192</number>
+ </property>
+ <property stdset="1">
+ <name>minValue</name>
+ <number>1</number>
+ </property>
+ <property stdset="1">
+ <name>lineStep</name>
+ <number>1</number>
+ </property>
+ <property stdset="1">
+ <name>value</name>
+ <number>5</number>
+ </property>
+ </widget>
+ </grid>
</widget>
<connections>
<connection>