summaryrefslogtreecommitdiffabout
path: root/kmicromail/libmailwrapper/abstractmail.cpp
Side-by-side diff
Diffstat (limited to 'kmicromail/libmailwrapper/abstractmail.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/libmailwrapper/abstractmail.cpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/kmicromail/libmailwrapper/abstractmail.cpp b/kmicromail/libmailwrapper/abstractmail.cpp
index f876235..374d606 100644
--- a/kmicromail/libmailwrapper/abstractmail.cpp
+++ b/kmicromail/libmailwrapper/abstractmail.cpp
@@ -10,6 +10,7 @@
#include <qprogressbar.h>
#include <qapplication.h>
+#include <qmessagebox.h>
#include <kdecore/kstandarddirs.h>
#include <qfile.h>
@@ -158,6 +159,72 @@ void AbstractMail::deleteMailList(const QValueList<RecMailP>&target)
++iii;
}
}
+
+void AbstractMail::downloadNewMails(const FolderP&fromFolder, AbstractMail*targetMail )
+{
+ qDebug("AbstractMail::downloadNewMails %s ", fromFolder->getName().latin1());
+ // get local folder
+ Account * acc = getAccount();
+ if ( !acc ) return;
+ QString lfName = acc->getLocalFolder();
+ if ( lfName.isEmpty() )
+ lfName = acc->getAccountName();
+ // create local folder
+ if ( !targetMail->createMbox(lfName))
+ {
+ QMessageBox::critical(0,tr("Error creating new Folder"),
+ tr("Error while creating new folder\n%1\n\nCancelling action.").arg(lfName));
+ return;
+ }
+ QValueList<RecMailP> t;
+ listMessages(fromFolder->getName(),t,acc->getMaxMailSize() );
+ if ( t.count() == 0 ) {
+ Global::statusMessage(tr("There are no new messages"));
+ return;
+ }
+ QValueList<RecMailP> e;
+ targetMail->listMessages(lfName,e,acc->getMaxMailSize() );
+ qDebug("target has mails %d ", e.count());
+ QValueList<RecMailP> n;
+ int iii = 0;
+ int count = t.count();
+ while (iii < count ) {
+ RecMailP r = (*t.at( iii ));
+ bool found = false;
+ int jjj = 0;
+ int countE = e.count();
+ while (jjj < countE ) {
+ RecMailP re = (*e.at( jjj ));
+ if ( re->isEqual(r) ) {
+ found = true;
+ break;
+ }
+ ++jjj;
+ }
+ if ( found )
+ qDebug("found ");
+ else
+ qDebug("NOT found ");
+
+ if ( !found ) {
+ n.append( r );
+ }
+ ++iii;
+ }
+ if ( n.count() == 0 ) {
+ Global::statusMessage(tr("There are no new messages"));
+ return;
+ }
+ mvcpMailList( n,lfName,targetMail,!acc->getLeaveOnServer());
+
+
+#if 0
+ QValueList<RecMailP> t;
+ listMessages(fromFolder->getName(),t, maxSizeInKb);
+ mvcpMailList( t,targetFolder,targetWrapper,moveit);
+#endif
+
+}
void AbstractMail::mvcpAllMails(const FolderP&fromFolder,
const QString&targetFolder,AbstractMail*targetWrapper,bool moveit, int maxSizeInKb)
{