summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.cpp13
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.h30
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp5
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.h17
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp21
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.h11
6 files changed, 81 insertions, 16 deletions
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp
new file mode 100644
index 0000000..7380c31
--- a/dev/null
+++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp
@@ -0,0 +1,13 @@
+#include "abstractmail.h"
+#include "imapwrapper.h"
+#include "pop3wrapper.h"
+
+AbstractMail* AbstractMail::getWrapper(IMAPaccount *a)
+{
+ return new IMAPwrapper(a);
+}
+
+AbstractMail* AbstractMail::getWrapper(POP3account *a)
+{
+ return new POP3wrapper(a);
+}
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.h b/noncore/net/mail/libmailwrapper/abstractmail.h
new file mode 100644
index 0000000..bc8938f
--- a/dev/null
+++ b/noncore/net/mail/libmailwrapper/abstractmail.h
@@ -0,0 +1,30 @@
+#ifndef __abstract_mail_
+#define __abstract_mail_
+
+#include <qobject.h>
+#include "settings.h"
+
+class RecMail;
+class RecBody;
+class RecPart;
+class IMAPwrapper;
+class POP3wrapper;
+class Folder;
+
+class AbstractMail:public QObject
+{
+ Q_OBJECT
+public:
+ AbstractMail(){};
+ virtual ~AbstractMail(){}
+ virtual QList<Folder>* listFolders()=0;
+ virtual void listMessages(const QString & mailbox,QList<RecMail>&target )=0;
+ virtual RecBody fetchBody(const RecMail&mail)=0;
+ virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false)=0;
+ virtual QString fetchPart(const RecMail&mail,const RecPart&part)=0;
+
+ static AbstractMail* getWrapper(IMAPaccount *a);
+ static AbstractMail* getWrapper(POP3account *a);
+};
+
+#endif
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
index 48e476b..e5eb335 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
@@ -8,2 +8,3 @@
IMAPwrapper::IMAPwrapper( IMAPaccount *a )
+ : AbstractMail()
{
@@ -141,3 +142,3 @@ void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target )
-QList<IMAPFolder>* IMAPwrapper::listFolders()
+QList<Folder>* IMAPwrapper::listFolders()
{
@@ -148,3 +149,3 @@ QList<IMAPFolder>* IMAPwrapper::listFolders()
- QList<IMAPFolder> * folders = new QList<IMAPFolder>();
+ QList<Folder> * folders = new QList<Folder>();
folders->setAutoDelete( true );
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h
index 95de215..f88457a 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.h
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.h
@@ -5,2 +5,3 @@
#include "mailwrapper.h"
+#include "abstractmail.h"
@@ -14,10 +15,6 @@ struct mailimap_body_fields;
struct mailimap_msg_att;
-class RecMail;
-class RecBody;
-class RecPart;
-class IMAPwrapper : public QObject
+class IMAPwrapper : public AbstractMail
{
Q_OBJECT
-
public:
@@ -25,7 +22,7 @@ public:
virtual ~IMAPwrapper();
- QList<IMAPFolder>* listFolders();
- void listMessages(const QString & mailbox,QList<RecMail>&target );
- RecBody fetchBody(const RecMail&mail);
- QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
- QString fetchPart(const RecMail&mail,const RecPart&part);
+ virtual QList<Folder>* listFolders();
+ virtual void listMessages(const QString & mailbox,QList<RecMail>&target );
+ virtual RecBody fetchBody(const RecMail&mail);
+ virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
+ virtual QString fetchPart(const RecMail&mail,const RecPart&part);
static void imap_progress( size_t current, size_t maximum );
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
index abb5a42..49c3b7a 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -61,3 +61,3 @@ RecBody POP3wrapper::parseBody( const char *message )
-void POP3wrapper::listMessages( QList<RecMail> &target )
+void POP3wrapper::listMessages(const QString &, QList<RecMail> &target )
{
@@ -270 +270,20 @@ void POP3wrapper::logout()
+
+QList<Folder>* POP3wrapper::listFolders()
+{
+ QList<Folder> * folders = new QList<Folder>();
+ folders->setAutoDelete( true );
+ Folder*inb=new Folder("INBOX");
+ folders->append(inb);
+ return folders;
+}
+
+QString POP3wrapper::fetchPart(const RecMail&,const QValueList<int>&,bool)
+{
+ return "";
+}
+
+QString POP3wrapper::fetchPart(const RecMail&,const RecPart&)
+{
+ return "";
+}
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.h b/noncore/net/mail/libmailwrapper/pop3wrapper.h
index 995bed0..3b24564 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.h
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.h
@@ -4,2 +4,3 @@
#include "mailwrapper.h"
+#include "abstractmail.h"
@@ -9,3 +10,3 @@ struct mailpop3;
-class POP3wrapper : public QObject
+class POP3wrapper : public AbstractMail
{
@@ -16,3 +17,8 @@ public:
virtual ~POP3wrapper();
- void listMessages( QList<RecMail> &target );
+ /* mailbox will be ignored */
+ virtual void listMessages(const QString & mailbox, QList<RecMail> &target );
+ virtual QList<Folder>* listFolders();
+ virtual QString fetchPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false);
+ virtual QString fetchPart(const RecMail&mail,const RecPart&part);
+
RecBody fetchBody( const RecMail &mail );
@@ -34,3 +40,2 @@ private:
mailpop3 *m_pop3;
-
};