summaryrefslogtreecommitdiff
path: root/noncore/net
authoralwin <alwin>2003-12-13 20:39:07 (UTC)
committer alwin <alwin>2003-12-13 20:39:07 (UTC)
commit85444223acfafd9d7955032b2cbdad3279ba27ad (patch) (side-by-side diff)
tree444063490a58ffc7ca085219827a577ad6213442 /noncore/net
parentd161cb46c21ae6a9e9f74dc60fb6ac6ac8e62f1b (diff)
downloadopie-85444223acfafd9d7955032b2cbdad3279ba27ad.zip
opie-85444223acfafd9d7955032b2cbdad3279ba27ad.tar.gz
opie-85444223acfafd9d7955032b2cbdad3279ba27ad.tar.bz2
imap/pop3 wrapper uses base virtual class so we can forward the pointer
independend of its later use. ToDo: find a more general interface for it
Diffstat (limited to 'noncore/net') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/abstractmail.cpp13
-rw-r--r--noncore/net/mail/abstractmail.h30
-rw-r--r--noncore/net/mail/accountview.cpp16
-rw-r--r--noncore/net/mail/accountview.h15
-rw-r--r--noncore/net/mail/imapwrapper.cpp5
-rw-r--r--noncore/net/mail/imapwrapper.h17
-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
-rw-r--r--noncore/net/mail/mail.pro6
-rw-r--r--noncore/net/mail/mainwindow.h1
-rw-r--r--noncore/net/mail/opiemail.h4
-rw-r--r--noncore/net/mail/pop3wrapper.cpp21
-rw-r--r--noncore/net/mail/pop3wrapper.h11
17 files changed, 180 insertions, 56 deletions
diff --git a/noncore/net/mail/abstractmail.cpp b/noncore/net/mail/abstractmail.cpp
new file mode 100644
index 0000000..7380c31
--- a/dev/null
+++ b/noncore/net/mail/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/abstractmail.h b/noncore/net/mail/abstractmail.h
new file mode 100644
index 0000000..bc8938f
--- a/dev/null
+++ b/noncore/net/mail/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/accountview.cpp b/noncore/net/mail/accountview.cpp
index c7b1eeb..1069b9f 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -1,4 +1,2 @@
#include "accountview.h"
-#include "imapwrapper.h"
-#include "pop3wrapper.h"
#include "mailtypes.h"
@@ -15,3 +13,3 @@ POP3viewItem::POP3viewItem( POP3account *a, QListView *parent )
account = a;
- wrapper = new POP3wrapper( account );
+ wrapper = AbstractMail::getWrapper( account );
setPixmap( 0, PIXMAP_POP3FOLDER );
@@ -28,3 +26,3 @@ void POP3viewItem::refresh( QList<RecMail> &target )
qDebug( "POP3: refresh" );
- wrapper->listMessages( target );
+ wrapper->listMessages("INBOX", target );
}
@@ -46,3 +44,3 @@ IMAPviewItem::IMAPviewItem( IMAPaccount *a, QListView *parent )
account = a;
- wrapper = new IMAPwrapper( account );
+ wrapper = AbstractMail::getWrapper( account );
setPixmap( 0, PIXMAP_IMAPFOLDER );
@@ -57,3 +55,3 @@ IMAPviewItem::~IMAPviewItem()
-IMAPwrapper *IMAPviewItem::getWrapper()
+AbstractMail *IMAPviewItem::getWrapper()
{
@@ -64,3 +62,3 @@ void IMAPviewItem::refresh(QList<RecMail>&)
{
- QList<IMAPFolder> *folders = wrapper->listFolders();
+ QList<Folder> *folders = wrapper->listFolders();
@@ -73,3 +71,3 @@ void IMAPviewItem::refresh(QList<RecMail>&)
- IMAPFolder *it;
+ Folder *it;
for ( it = folders->first(); it; it = folders->next() ) {
@@ -89,3 +87,3 @@ IMAPfolderItem::~IMAPfolderItem()
-IMAPfolderItem::IMAPfolderItem( IMAPFolder *folderInit, IMAPviewItem *parent )
+IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent )
: AccountViewItem( parent )
diff --git a/noncore/net/mail/accountview.h b/noncore/net/mail/accountview.h
index 4cac673..83d49af 100644
--- a/noncore/net/mail/accountview.h
+++ b/noncore/net/mail/accountview.h
@@ -8,4 +8,4 @@
#include "mailwrapper.h"
+#include "abstractmail.h"
-class IMAPwrapper;
class POP3wrapper;
@@ -35,3 +35,3 @@ private:
POP3account *account;
- POP3wrapper *wrapper;
+ AbstractMail *wrapper;
@@ -47,8 +47,6 @@ public:
virtual RecBody fetchBody(const RecMail&);
- IMAPwrapper *getWrapper();
-
+ AbstractMail *getWrapper();
private:
IMAPaccount *account;
- IMAPwrapper *wrapper;
-
+ AbstractMail *wrapper;
};
@@ -59,3 +57,3 @@ class IMAPfolderItem : public AccountViewItem
public:
- IMAPfolderItem( IMAPFolder *folder, IMAPviewItem *parent );
+ IMAPfolderItem( Folder *folder, IMAPviewItem *parent );
~IMAPfolderItem();
@@ -63,5 +61,4 @@ public:
virtual RecBody fetchBody(const RecMail&);
-
private:
- IMAPFolder *folder;
+ Folder *folder;
IMAPviewItem *imap;
diff --git a/noncore/net/mail/imapwrapper.cpp b/noncore/net/mail/imapwrapper.cpp
index 48e476b..e5eb335 100644
--- a/noncore/net/mail/imapwrapper.cpp
+++ b/noncore/net/mail/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/imapwrapper.h b/noncore/net/mail/imapwrapper.h
index 95de215..f88457a 100644
--- a/noncore/net/mail/imapwrapper.h
+++ b/noncore/net/mail/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/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;
-
};
diff --git a/noncore/net/mail/mail.pro b/noncore/net/mail/mail.pro
index 0e7cff6..e7519c6 100644
--- a/noncore/net/mail/mail.pro
+++ b/noncore/net/mail/mail.pro
@@ -16,3 +16,4 @@ HEADERS = defines.h \
mailistviewitem.h \
- pop3wrapper.h
+ pop3wrapper.h \
+ abstractmail.h
@@ -32,3 +33,4 @@ SOURCES = main.cpp \
mailtypes.cpp \
- pop3wrapper.cpp
+ pop3wrapper.cpp \
+ abstractmail.cpp
diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h
index 74bce5a..6c1cda0 100644
--- a/noncore/net/mail/mainwindow.h
+++ b/noncore/net/mail/mainwindow.h
@@ -20,3 +20,2 @@ public:
MainWindow( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 );
- static QString appName() { return QString::fromLatin1("opiemail"); }
diff --git a/noncore/net/mail/opiemail.h b/noncore/net/mail/opiemail.h
index dcab47c..7bcd818 100644
--- a/noncore/net/mail/opiemail.h
+++ b/noncore/net/mail/opiemail.h
@@ -12,5 +12,3 @@ public:
OpieMail( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 );
-
- static QString appName() { return QString::fromLatin1("opiemail"); }
-
+ static QString appName() { return QString::fromLatin1("opiemail"); }
protected slots:
diff --git a/noncore/net/mail/pop3wrapper.cpp b/noncore/net/mail/pop3wrapper.cpp
index abb5a42..49c3b7a 100644
--- a/noncore/net/mail/pop3wrapper.cpp
+++ b/noncore/net/mail/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/pop3wrapper.h b/noncore/net/mail/pop3wrapper.h
index 995bed0..3b24564 100644
--- a/noncore/net/mail/pop3wrapper.h
+++ b/noncore/net/mail/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;
-
};