author | alwin <alwin> | 2003-12-09 16:59:57 (UTC) |
---|---|---|
committer | alwin <alwin> | 2003-12-09 16:59:57 (UTC) |
commit | 1999708f1480dbdd19e73671fbd9e422883839b6 (patch) (side-by-side diff) | |
tree | 633887e98f12d63455faa5065c0f6a3cc0fb290d | |
parent | c6b105a7bf2bfffa847fd84c422ae9a3850c682f (diff) | |
download | opie-1999708f1480dbdd19e73671fbd9e422883839b6.zip opie-1999708f1480dbdd19e73671fbd9e422883839b6.tar.gz opie-1999708f1480dbdd19e73671fbd9e422883839b6.tar.bz2 |
some interface changes
split class defines into more files
-rw-r--r-- | noncore/net/mail/accountview.cpp | 18 | ||||
-rw-r--r-- | noncore/net/mail/accountview.h | 19 | ||||
-rw-r--r-- | noncore/net/mail/imapwrapper.cpp | 12 | ||||
-rw-r--r-- | noncore/net/mail/imapwrapper.h | 7 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.cpp | 12 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/imapwrapper.h | 7 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailtypes.cpp | 129 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailtypes.h | 98 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailwrapper.cpp | 12 | ||||
-rw-r--r-- | noncore/net/mail/libmailwrapper/mailwrapper.h | 54 | ||||
-rw-r--r-- | noncore/net/mail/mail.pro | 7 | ||||
-rw-r--r-- | noncore/net/mail/mailistviewitem.h | 21 | ||||
-rw-r--r-- | noncore/net/mail/mailtypes.cpp | 129 | ||||
-rw-r--r-- | noncore/net/mail/mailtypes.h | 98 | ||||
-rw-r--r-- | noncore/net/mail/mailwrapper.cpp | 12 | ||||
-rw-r--r-- | noncore/net/mail/mailwrapper.h | 54 | ||||
-rw-r--r-- | noncore/net/mail/mainwindow.cpp | 34 | ||||
-rw-r--r-- | noncore/net/mail/mainwindow.h | 19 |
18 files changed, 551 insertions, 191 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp index 1bde886..df9fc11 100644 --- a/noncore/net/mail/accountview.cpp +++ b/noncore/net/mail/accountview.cpp @@ -1,4 +1,5 @@ #include "accountview.h" #include "imapwrapper.h" +#include "mailtypes.h" #include "defines.h" @@ -23,5 +24,5 @@ IMAPwrapper *IMAPviewItem::getWrapper() } -void IMAPviewItem::refresh(Maillist&) +void IMAPviewItem::refresh(QList<RecMail>&) { QList<IMAPFolder> *folders = wrapper->listFolders(); @@ -40,4 +41,8 @@ void IMAPviewItem::refresh(Maillist&) } +RecBody IMAPviewItem::fetchBody(const RecMail&) +{ + return RecBody(); +} IMAPfolderItem::~IMAPfolderItem() @@ -55,10 +60,10 @@ IMAPfolderItem::IMAPfolderItem( IMAPFolder *folderInit, IMAPviewItem *parent ) } -void IMAPfolderItem::refresh(Maillist&target) +void IMAPfolderItem::refresh(QList<RecMail>&target) { imap->getWrapper()->listMessages( folder->getName(),target ); } -QString IMAPfolderItem::fetchBody(const RecMail&aMail) +RecBody IMAPfolderItem::fetchBody(const RecMail&aMail) { return imap->getWrapper()->fetchBody(aMail); @@ -89,5 +94,5 @@ void AccountView::refresh(QListViewItem *item) { qDebug("AccountView refresh..."); if ( item ) { - Maillist headerlist; + QList<RecMail> headerlist; headerlist.setAutoDelete(true); AccountViewItem *view = static_cast<AccountViewItem *>(item); @@ -102,9 +107,8 @@ void AccountView::refreshAll() } -QString AccountView::fetchBody(const RecMail&aMail) +RecBody AccountView::fetchBody(const RecMail&aMail) { - QString Body; QListViewItem*item = selectedItem (); - if (!item) return Body; + if (!item) return RecBody(); AccountViewItem *view = static_cast<AccountViewItem *>(item); return view->fetchBody(aMail); diff --git a/noncore/net/mail/accountview.h b/noncore/net/mail/accountview.h index 2bc8023..805c2b3 100644 --- a/noncore/net/mail/accountview.h +++ b/noncore/net/mail/accountview.h @@ -3,4 +3,5 @@ #include <qlistview.h> +#include <qlist.h> #include "settings.h" @@ -8,4 +9,6 @@ class IMAPwrapper; +class RecMail; +class RecBody; class AccountViewItem : public QListViewItem @@ -15,6 +18,6 @@ public: AccountViewItem( QListView *parent ) : QListViewItem( parent ) {} AccountViewItem( QListViewItem *parent ) : QListViewItem( parent ) {} - virtual void refresh(Maillist&)=0; - virtual QString fetchBody(const RecMail&)=0; + virtual void refresh(QList<RecMail>&)=0; + virtual RecBody fetchBody(const RecMail&)=0; }; @@ -25,6 +28,6 @@ public: IMAPviewItem( IMAPaccount *a, QListView *parent ); ~IMAPviewItem(); - virtual void refresh(Maillist&); - virtual QString fetchBody(const RecMail&){return "";} + virtual void refresh(QList<RecMail>&); + virtual RecBody fetchBody(const RecMail&); IMAPwrapper *getWrapper(); @@ -41,6 +44,6 @@ public: IMAPfolderItem( IMAPFolder *folder, IMAPviewItem *parent ); ~IMAPfolderItem(); - virtual void refresh(Maillist&); - virtual QString fetchBody(const RecMail&); + virtual void refresh(QList<RecMail>&); + virtual RecBody fetchBody(const RecMail&); private: @@ -57,5 +60,5 @@ public: AccountView( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); void populate( QList<Account> list ); - QString fetchBody(const RecMail&aMail); + RecBody fetchBody(const RecMail&aMail); public slots: @@ -64,5 +67,5 @@ public slots: signals: - void refreshMailview(Maillist*); + void refreshMailview(QList<RecMail>*); }; diff --git a/noncore/net/mail/imapwrapper.cpp b/noncore/net/mail/imapwrapper.cpp index 1acc036..725dcc9 100644 --- a/noncore/net/mail/imapwrapper.cpp +++ b/noncore/net/mail/imapwrapper.cpp @@ -3,4 +3,5 @@ #include "imapwrapper.h" +#include "mailtypes.h" #include <libetpan/mailimap.h> @@ -65,5 +66,5 @@ void IMAPwrapper::logout() } -void IMAPwrapper::listMessages(const QString&mailbox,Maillist&target ) +void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target ) { const char *mb; @@ -330,7 +331,9 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) #if 1 -QString IMAPwrapper::fetchBody(const RecMail&mail) +RecBody IMAPwrapper::fetchBody(const RecMail&mail) { - QString body = ""; + RecBody body; + QString body_text; + const char *mb; int err = MAILIMAP_NO_ERROR; @@ -369,5 +372,6 @@ QString IMAPwrapper::fetchBody(const RecMail&mail) if (item->msg_att_static && item->msg_att_static->rfc822_text) { - body = item->msg_att_static->rfc822_text; + body_text = item->msg_att_static->rfc822_text; + body.setBodytext(body_text); } } else { diff --git a/noncore/net/mail/imapwrapper.h b/noncore/net/mail/imapwrapper.h index b02d26d..1423faf 100644 --- a/noncore/net/mail/imapwrapper.h +++ b/noncore/net/mail/imapwrapper.h @@ -2,8 +2,11 @@ #define __IMAPWRAPPER +#include <qlist.h> #include "mailwrapper.h" struct mailimap; struct mailimap_body_type_1part; +class RecMail; +class RecBody; class IMAPwrapper : public QObject @@ -15,6 +18,6 @@ public: virtual ~IMAPwrapper(); QList<IMAPFolder>* listFolders(); - void listMessages(const QString & mailbox,Maillist&target ); - QString fetchBody(const RecMail&mail); + void listMessages(const QString & mailbox,QList<RecMail>&target ); + RecBody fetchBody(const RecMail&mail); static void imap_progress( size_t current, size_t maximum ); diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp index 1acc036..725dcc9 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp @@ -3,4 +3,5 @@ #include "imapwrapper.h" +#include "mailtypes.h" #include <libetpan/mailimap.h> @@ -65,5 +66,5 @@ void IMAPwrapper::logout() } -void IMAPwrapper::listMessages(const QString&mailbox,Maillist&target ) +void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target ) { const char *mb; @@ -330,7 +331,9 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) #if 1 -QString IMAPwrapper::fetchBody(const RecMail&mail) +RecBody IMAPwrapper::fetchBody(const RecMail&mail) { - QString body = ""; + RecBody body; + QString body_text; + const char *mb; int err = MAILIMAP_NO_ERROR; @@ -369,5 +372,6 @@ QString IMAPwrapper::fetchBody(const RecMail&mail) if (item->msg_att_static && item->msg_att_static->rfc822_text) { - body = item->msg_att_static->rfc822_text; + body_text = item->msg_att_static->rfc822_text; + body.setBodytext(body_text); } } else { diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h index b02d26d..1423faf 100644 --- a/noncore/net/mail/libmailwrapper/imapwrapper.h +++ b/noncore/net/mail/libmailwrapper/imapwrapper.h @@ -2,8 +2,11 @@ #define __IMAPWRAPPER +#include <qlist.h> #include "mailwrapper.h" struct mailimap; struct mailimap_body_type_1part; +class RecMail; +class RecBody; class IMAPwrapper : public QObject @@ -15,6 +18,6 @@ public: virtual ~IMAPwrapper(); QList<IMAPFolder>* listFolders(); - void listMessages(const QString & mailbox,Maillist&target ); - QString fetchBody(const RecMail&mail); + void listMessages(const QString & mailbox,QList<RecMail>&target ); + RecBody fetchBody(const RecMail&mail); static void imap_progress( size_t current, size_t maximum ); diff --git a/noncore/net/mail/libmailwrapper/mailtypes.cpp b/noncore/net/mail/libmailwrapper/mailtypes.cpp new file mode 100644 index 0000000..9f2c9e3 --- a/dev/null +++ b/noncore/net/mail/libmailwrapper/mailtypes.cpp @@ -0,0 +1,129 @@ +#include "mailtypes.h" + + +RecMail::RecMail() + :subject(""),date(""),mbox(""),msg_number(0),msg_flags(7) +{ +} + +void RecMail::setTo(const QStringList&list) +{ + to = list; +} + +const QStringList&RecMail::To()const +{ + return to; +} + +void RecMail::setCC(const QStringList&list) +{ + cc = list; +} + +const QStringList&RecMail::CC()const +{ + return cc; +} + +void RecMail::setBcc(const QStringList&list) +{ + bcc = list; +} + +const QStringList& RecMail::Bcc()const +{ + return bcc; +} + + +RecPart::RecPart() + : m_type(""),m_subtype(""),m_identifier(""),m_encoding("") +{ +} + +RecPart::RecPart(const QString&identifier,const QString&type,const QString&subtype,const QString&encoding) + : m_type(type),m_subtype(subtype),m_identifier(identifier),m_encoding(encoding) +{ +} + +RecPart::~RecPart() +{ +} + +const QString& RecPart::Type()const +{ + return m_type; +} + +void RecPart::setType(const QString&type) +{ + m_type = type; +} + +const QString& RecPart::Subtype()const +{ + return m_subtype; +} + +void RecPart::setSubtype(const QString&subtype) +{ + m_subtype = subtype; +} + +const QString& RecPart::Identifier()const +{ + return m_identifier; +} + +void RecPart::setIdentifier(const QString&identifier) +{ + m_identifier = identifier; +} + +const QString& RecPart::Encoding()const +{ + return m_encoding; +} + +void RecPart::setEncoding(const QString&encoding) +{ + m_encoding = encoding; +} + +RecBody::RecBody() + : m_BodyText(""),m_PartsList() +{ + m_PartsList.setAutoDelete(true); +} + +RecBody::~RecBody() +{ +} + +void RecBody::setBodytext(const QString&bodyText) +{ + m_BodyText = bodyText; +} + +const QString& RecBody::Bodytext()const +{ + return m_BodyText; +} + +void RecBody::setParts(const QList<RecPart>&parts) +{ + m_PartsList = parts; + m_PartsList.setAutoDelete(true); +} + +const QList<RecPart>& RecBody::Parts()const +{ + return m_PartsList; +} + +void RecBody::addPart(const RecPart& part) +{ + RecPart*p = new RecPart(part); + m_PartsList.append(p); +} diff --git a/noncore/net/mail/libmailwrapper/mailtypes.h b/noncore/net/mail/libmailwrapper/mailtypes.h new file mode 100644 index 0000000..bb6a483 --- a/dev/null +++ b/noncore/net/mail/libmailwrapper/mailtypes.h @@ -0,0 +1,98 @@ +#ifndef __MAIL_TYPES_H +#define __MAIL_TYPES_H + +#define FLAG_ANSWERED 0 +#define FLAG_FLAGGED 1 +#define FLAG_DELETED 2 +#define FLAG_SEEN 3 +#define FLAG_DRAFT 4 +#define FLAG_RECENT 5 + +#include <qlist.h> +#include <qbitarray.h> +#include <qstring.h> +#include <qstringlist.h> + +/* a class to describe mails in a mailbox */ +/* Attention! + From programmers point of view it would make sense to + store the mail body into this class, too. + But: not from the point of view of the device. + Mailbodies can be real large. So we request them when + needed from the mail-wrapper class direct from the server itself + (imap) or from a file-based cache (pop3?) + So there is no interface "const QString&body()" but you should + make a request to the mailwrapper with this class as parameter to + get the body. Same words for the attachments. +*/ +class RecMail +{ +public: + RecMail(); + virtual ~RecMail(){} + + const int getNumber()const{return msg_number;} + void setNumber(int number){msg_number=number;} + const QString&getDate()const{ return date; } + void setDate( const QString&a ) { date = a; } + const QString&getFrom()const{ return from; } + void setFrom( const QString&a ) { from = a; } + const QString&getSubject()const { return subject; } + void setSubject( const QString&s ) { subject = s; } + const QString&getMbox()const{return mbox;} + void setMbox(const QString&box){mbox = box;} + + void setTo(const QStringList&list); + const QStringList&To()const; + void setCC(const QStringList&list); + const QStringList&CC()const; + void setBcc(const QStringList&list); + const QStringList&Bcc()const; + + const QBitArray&getFlags()const{return msg_flags;} + void setFlags(const QBitArray&flags){msg_flags = flags;} + +protected: + QString subject,date,from,mbox; + int msg_number; + QBitArray msg_flags; + QStringList to,cc,bcc; +}; + +class RecPart +{ +protected: + QString m_type,m_subtype,m_identifier,m_encoding; +public: + RecPart(); + RecPart(const QString&identifier,const QString&type="",const QString&subtype="",const QString&encoding="BASE64"); + virtual ~RecPart(); + + const QString&Type()const; + void setType(const QString&type); + const QString&Subtype()const; + void setSubtype(const QString&subtype); + const QString&Identifier()const; + void setIdentifier(const QString&identifier); + const QString&Encoding()const; + void setEncoding(const QString&encoding); +}; + +class RecBody +{ +protected: + QString m_BodyText; + QList<RecPart> m_PartsList; + +public: + RecBody(); + virtual ~RecBody(); + void setBodytext(const QString&); + const QString& Bodytext()const; + + void setParts(const QList<RecPart>&parts); + const QList<RecPart>& Parts()const; + void addPart(const RecPart&part); +}; + +#endif diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.cpp b/noncore/net/mail/libmailwrapper/mailwrapper.cpp index 7f67cd8..898e9d6 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.cpp +++ b/noncore/net/mail/libmailwrapper/mailwrapper.cpp @@ -628,14 +628,2 @@ Mail::Mail() { } - -RecMail::RecMail() - :subject(""),date(""),mbox(""),msg_number(0),msg_flags(7) -{ -} - -#if 0 -void RecMail::setDate(const QString&aDate) -{ - mDate = QDateTime::fromString(aDate); -} -#endif diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.h b/noncore/net/mail/libmailwrapper/mailwrapper.h index 332034f..34fd5c5 100644 --- a/noncore/net/mail/libmailwrapper/mailwrapper.h +++ b/noncore/net/mail/libmailwrapper/mailwrapper.h @@ -32,58 +32,4 @@ protected: }; -#define FLAG_ANSWERED 0 -#define FLAG_FLAGGED 1 -#define FLAG_DELETED 2 -#define FLAG_SEEN 3 -#define FLAG_DRAFT 4 -#define FLAG_RECENT 5 - -/* a class to describe mails in a mailbox */ -/* Attention! - From programmers point of view it would make sense to - store the mail body into this class, too. - But: not from the point of view of the device. - Mailbodies can be real large. So we request them when - needed from the mail-wrapper class direct from the server itself - (imap) or from a file-based cache (pop3?) - So there is no interface "const QString&body()" but you should - make a request to the mailwrapper with this class as parameter to - get the body. Same words for the attachments. -*/ -class RecMail -{ -public: - RecMail(); - virtual ~RecMail(){} - - const int getNumber()const{return msg_number;} - void setNumber(int number){msg_number=number;} - const QString&getDate()const{ return date; } - void setDate( const QString&a ) { date = a; } - const QString&getFrom()const{ return from; } - void setFrom( const QString&a ) { from = a; } - const QString&getSubject()const { return subject; } - void setSubject( const QString&s ) { subject = s; } - const QString&getMbox()const{return mbox;} - void setMbox(const QString&box){mbox = box;} - const QBitArray&getFlags()const{return msg_flags;} - void setFlags(const QBitArray&flags){msg_flags = flags;} - -#if 0 - void setDate(const QString&dstring); - void setDate(const QDateTime&date){mDate = date;} - QString getDate()const{return mDate.toString();} -#endif -protected: - QString subject,date,from,mbox; - int msg_number; - QBitArray msg_flags; -#if 0 - QDateTime mDate; -#endif -}; - -typedef QList<RecMail> Maillist; - class Mail { diff --git a/noncore/net/mail/mail.pro b/noncore/net/mail/mail.pro index 3ae1ddc..55d95ba 100644 --- a/noncore/net/mail/mail.pro +++ b/noncore/net/mail/mail.pro @@ -12,5 +12,7 @@ HEADERS = defines.h \ viewmailbase.h \ opiemail.h \ - imapwrapper.h + imapwrapper.h \ + mailtypes.h \ + mailistviewitem.h SOURCES = main.cpp \ @@ -26,5 +28,6 @@ SOURCES = main.cpp \ viewmail.cpp \ viewmailbase.cpp \ - settings.cpp + settings.cpp \ + mailtypes.cpp INTERFACES = editaccountsui.ui \ diff --git a/noncore/net/mail/mailistviewitem.h b/noncore/net/mail/mailistviewitem.h new file mode 100644 index 0000000..60bfdda --- a/dev/null +++ b/noncore/net/mail/mailistviewitem.h @@ -0,0 +1,21 @@ +#ifndef __MAILLISTVIEWITEM_H +#define __MAILLISTVIEWITEM_H + +#include <qlistview.h> +#include "mailtypes.h" + +class MailListViewItem:public QListViewItem +{ +public: + MailListViewItem(QListView * parent, MailListViewItem * after ); + virtual ~MailListViewItem(){} + + void storeData(const RecMail&data); + const RecMail&data()const; + void showEntry(); + +protected: + RecMail mail_data; +}; + +#endif diff --git a/noncore/net/mail/mailtypes.cpp b/noncore/net/mail/mailtypes.cpp new file mode 100644 index 0000000..9f2c9e3 --- a/dev/null +++ b/noncore/net/mail/mailtypes.cpp @@ -0,0 +1,129 @@ +#include "mailtypes.h" + + +RecMail::RecMail() + :subject(""),date(""),mbox(""),msg_number(0),msg_flags(7) +{ +} + +void RecMail::setTo(const QStringList&list) +{ + to = list; +} + +const QStringList&RecMail::To()const +{ + return to; +} + +void RecMail::setCC(const QStringList&list) +{ + cc = list; +} + +const QStringList&RecMail::CC()const +{ + return cc; +} + +void RecMail::setBcc(const QStringList&list) +{ + bcc = list; +} + +const QStringList& RecMail::Bcc()const +{ + return bcc; +} + + +RecPart::RecPart() + : m_type(""),m_subtype(""),m_identifier(""),m_encoding("") +{ +} + +RecPart::RecPart(const QString&identifier,const QString&type,const QString&subtype,const QString&encoding) + : m_type(type),m_subtype(subtype),m_identifier(identifier),m_encoding(encoding) +{ +} + +RecPart::~RecPart() +{ +} + +const QString& RecPart::Type()const +{ + return m_type; +} + +void RecPart::setType(const QString&type) +{ + m_type = type; +} + +const QString& RecPart::Subtype()const +{ + return m_subtype; +} + +void RecPart::setSubtype(const QString&subtype) +{ + m_subtype = subtype; +} + +const QString& RecPart::Identifier()const +{ + return m_identifier; +} + +void RecPart::setIdentifier(const QString&identifier) +{ + m_identifier = identifier; +} + +const QString& RecPart::Encoding()const +{ + return m_encoding; +} + +void RecPart::setEncoding(const QString&encoding) +{ + m_encoding = encoding; +} + +RecBody::RecBody() + : m_BodyText(""),m_PartsList() +{ + m_PartsList.setAutoDelete(true); +} + +RecBody::~RecBody() +{ +} + +void RecBody::setBodytext(const QString&bodyText) +{ + m_BodyText = bodyText; +} + +const QString& RecBody::Bodytext()const +{ + return m_BodyText; +} + +void RecBody::setParts(const QList<RecPart>&parts) +{ + m_PartsList = parts; + m_PartsList.setAutoDelete(true); +} + +const QList<RecPart>& RecBody::Parts()const +{ + return m_PartsList; +} + +void RecBody::addPart(const RecPart& part) +{ + RecPart*p = new RecPart(part); + m_PartsList.append(p); +} diff --git a/noncore/net/mail/mailtypes.h b/noncore/net/mail/mailtypes.h new file mode 100644 index 0000000..bb6a483 --- a/dev/null +++ b/noncore/net/mail/mailtypes.h @@ -0,0 +1,98 @@ +#ifndef __MAIL_TYPES_H +#define __MAIL_TYPES_H + +#define FLAG_ANSWERED 0 +#define FLAG_FLAGGED 1 +#define FLAG_DELETED 2 +#define FLAG_SEEN 3 +#define FLAG_DRAFT 4 +#define FLAG_RECENT 5 + +#include <qlist.h> +#include <qbitarray.h> +#include <qstring.h> +#include <qstringlist.h> + +/* a class to describe mails in a mailbox */ +/* Attention! + From programmers point of view it would make sense to + store the mail body into this class, too. + But: not from the point of view of the device. + Mailbodies can be real large. So we request them when + needed from the mail-wrapper class direct from the server itself + (imap) or from a file-based cache (pop3?) + So there is no interface "const QString&body()" but you should + make a request to the mailwrapper with this class as parameter to + get the body. Same words for the attachments. +*/ +class RecMail +{ +public: + RecMail(); + virtual ~RecMail(){} + + const int getNumber()const{return msg_number;} + void setNumber(int number){msg_number=number;} + const QString&getDate()const{ return date; } + void setDate( const QString&a ) { date = a; } + const QString&getFrom()const{ return from; } + void setFrom( const QString&a ) { from = a; } + const QString&getSubject()const { return subject; } + void setSubject( const QString&s ) { subject = s; } + const QString&getMbox()const{return mbox;} + void setMbox(const QString&box){mbox = box;} + + void setTo(const QStringList&list); + const QStringList&To()const; + void setCC(const QStringList&list); + const QStringList&CC()const; + void setBcc(const QStringList&list); + const QStringList&Bcc()const; + + const QBitArray&getFlags()const{return msg_flags;} + void setFlags(const QBitArray&flags){msg_flags = flags;} + +protected: + QString subject,date,from,mbox; + int msg_number; + QBitArray msg_flags; + QStringList to,cc,bcc; +}; + +class RecPart +{ +protected: + QString m_type,m_subtype,m_identifier,m_encoding; +public: + RecPart(); + RecPart(const QString&identifier,const QString&type="",const QString&subtype="",const QString&encoding="BASE64"); + virtual ~RecPart(); + + const QString&Type()const; + void setType(const QString&type); + const QString&Subtype()const; + void setSubtype(const QString&subtype); + const QString&Identifier()const; + void setIdentifier(const QString&identifier); + const QString&Encoding()const; + void setEncoding(const QString&encoding); +}; + +class RecBody +{ +protected: + QString m_BodyText; + QList<RecPart> m_PartsList; + +public: + RecBody(); + virtual ~RecBody(); + void setBodytext(const QString&); + const QString& Bodytext()const; + + void setParts(const QList<RecPart>&parts); + const QList<RecPart>& Parts()const; + void addPart(const RecPart&part); +}; + +#endif diff --git a/noncore/net/mail/mailwrapper.cpp b/noncore/net/mail/mailwrapper.cpp index 7f67cd8..898e9d6 100644 --- a/noncore/net/mail/mailwrapper.cpp +++ b/noncore/net/mail/mailwrapper.cpp @@ -628,14 +628,2 @@ Mail::Mail() { } - -RecMail::RecMail() - :subject(""),date(""),mbox(""),msg_number(0),msg_flags(7) -{ -} - -#if 0 -void RecMail::setDate(const QString&aDate) -{ - mDate = QDateTime::fromString(aDate); -} -#endif diff --git a/noncore/net/mail/mailwrapper.h b/noncore/net/mail/mailwrapper.h index 332034f..34fd5c5 100644 --- a/noncore/net/mail/mailwrapper.h +++ b/noncore/net/mail/mailwrapper.h @@ -32,58 +32,4 @@ protected: }; -#define FLAG_ANSWERED 0 -#define FLAG_FLAGGED 1 -#define FLAG_DELETED 2 -#define FLAG_SEEN 3 -#define FLAG_DRAFT 4 -#define FLAG_RECENT 5 - -/* a class to describe mails in a mailbox */ -/* Attention! - From programmers point of view it would make sense to - store the mail body into this class, too. - But: not from the point of view of the device. - Mailbodies can be real large. So we request them when - needed from the mail-wrapper class direct from the server itself - (imap) or from a file-based cache (pop3?) - So there is no interface "const QString&body()" but you should - make a request to the mailwrapper with this class as parameter to - get the body. Same words for the attachments. -*/ -class RecMail -{ -public: - RecMail(); - virtual ~RecMail(){} - - const int getNumber()const{return msg_number;} - void setNumber(int number){msg_number=number;} - const QString&getDate()const{ return date; } - void setDate( const QString&a ) { date = a; } - const QString&getFrom()const{ return from; } - void setFrom( const QString&a ) { from = a; } - const QString&getSubject()const { return subject; } - void setSubject( const QString&s ) { subject = s; } - const QString&getMbox()const{return mbox;} - void setMbox(const QString&box){mbox = box;} - const QBitArray&getFlags()const{return msg_flags;} - void setFlags(const QBitArray&flags){msg_flags = flags;} - -#if 0 - void setDate(const QString&dstring); - void setDate(const QDateTime&date){mDate = date;} - QString getDate()const{return mDate.toString();} -#endif -protected: - QString subject,date,from,mbox; - int msg_number; - QBitArray msg_flags; -#if 0 - QDateTime mDate; -#endif -}; - -typedef QList<RecMail> Maillist; - class Mail { diff --git a/noncore/net/mail/mainwindow.cpp b/noncore/net/mail/mainwindow.cpp index 7af7d83..b25db97 100644 --- a/noncore/net/mail/mainwindow.cpp +++ b/noncore/net/mail/mainwindow.cpp @@ -10,4 +10,6 @@ #include "mainwindow.h" #include "viewmail.h" +#include "mailtypes.h" +#include "mailistviewitem.h" MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) @@ -101,5 +103,5 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags flags ) SLOT( displayMail( QListViewItem * ) ) ); - connect(folderView,SIGNAL(refreshMailview(Maillist*)),this,SLOT(refreshMailView(Maillist*))); + connect(folderView,SIGNAL(refreshMailview(QList<RecMail>*)),this,SLOT(refreshMailView(QList<RecMail>*))); QTimer::singleShot( 1000, this, SLOT( slotAdjustColumns() ) ); @@ -130,21 +132,12 @@ void MainWindow::slotShowFolders( bool show ) } -void MainWindow::refreshMailView(Maillist*list) +void MainWindow::refreshMailView(QList<RecMail>*list) { MailListViewItem*item = 0; mailView->clear(); -#if 0 - QFont f = mailView->getFont(); - QFont bf = f; -#endif for (unsigned int i = 0; i < list->count();++i) { item = new MailListViewItem(mailView,item); item->storeData(*(list->at(i))); item->showEntry(); -#if 0 - if (!list->at(i)->getFlags().testBit(FLAG_SEEN)) { - item->setFont(bf); - } -#endif } } @@ -154,12 +147,15 @@ void MainWindow::displayMail(QListViewItem*item) qDebug("View mail"); RecMail mail = ((MailListViewItem*)item)->data(); - QString body = folderView->fetchBody(mail); + RecBody body = folderView->fetchBody(mail); ViewMail readMail( this ); - readMail.setMailInfo( mail.getFrom(), "", mail.getSubject(), "", "", body ); + readMail.setMailInfo( mail.getFrom(), "", mail.getSubject(), "", "", body.Bodytext() ); readMail.showMaximized(); readMail.exec(); +} - qDebug(body ); +MailListViewItem::MailListViewItem(QListView * parent, MailListViewItem * after ) + :QListViewItem(parent,after),mail_data() +{ } @@ -170,2 +166,12 @@ void MailListViewItem::showEntry() setText(2,mail_data.getDate()); } + +void MailListViewItem::storeData(const RecMail&data) +{ + mail_data = data; +} + +const RecMail& MailListViewItem::data()const +{ + return mail_data; +} diff --git a/noncore/net/mail/mainwindow.h b/noncore/net/mail/mainwindow.h index a5142ab..6c87261 100644 --- a/noncore/net/mail/mainwindow.h +++ b/noncore/net/mail/mainwindow.h @@ -11,4 +11,6 @@ #include "accountview.h" +class RecMail; + class MainWindow : public QMainWindow { @@ -23,5 +25,5 @@ public slots: protected slots: virtual void slotShowFolders( bool show ); - virtual void refreshMailView(Maillist*); + virtual void refreshMailView(QList<RecMail>*); virtual void displayMail(QListViewItem*); @@ -37,18 +39,3 @@ protected: }; -class MailListViewItem:public QListViewItem -{ -public: - MailListViewItem(QListView * parent, MailListViewItem * after ) - :QListViewItem(parent,after),mail_data(){} - virtual ~MailListViewItem(){} - - void storeData(const RecMail&data){mail_data = data;} - const RecMail&data()const{return mail_data;} - void showEntry(); - -protected: - RecMail mail_data; -}; - #endif |