Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (show whitespace changes)
-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 |
6 files changed, 240 insertions, 72 deletions
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 @@ | |||
3 | 3 | ||
4 | #include "imapwrapper.h" | 4 | #include "imapwrapper.h" |
5 | #include "mailtypes.h" | ||
5 | #include <libetpan/mailimap.h> | 6 | #include <libetpan/mailimap.h> |
6 | 7 | ||
@@ -65,5 +66,5 @@ void IMAPwrapper::logout() | |||
65 | } | 66 | } |
66 | 67 | ||
67 | void IMAPwrapper::listMessages(const QString&mailbox,Maillist&target ) | 68 | void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target ) |
68 | { | 69 | { |
69 | const char *mb; | 70 | const char *mb; |
@@ -330,7 +331,9 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att) | |||
330 | 331 | ||
331 | #if 1 | 332 | #if 1 |
332 | QString IMAPwrapper::fetchBody(const RecMail&mail) | 333 | RecBody IMAPwrapper::fetchBody(const RecMail&mail) |
333 | { | 334 | { |
334 | QString body = ""; | 335 | RecBody body; |
336 | QString body_text; | ||
337 | |||
335 | const char *mb; | 338 | const char *mb; |
336 | int err = MAILIMAP_NO_ERROR; | 339 | int err = MAILIMAP_NO_ERROR; |
@@ -369,5 +372,6 @@ QString IMAPwrapper::fetchBody(const RecMail&mail) | |||
369 | 372 | ||
370 | if (item->msg_att_static && item->msg_att_static->rfc822_text) { | 373 | if (item->msg_att_static && item->msg_att_static->rfc822_text) { |
371 | body = item->msg_att_static->rfc822_text; | 374 | body_text = item->msg_att_static->rfc822_text; |
375 | body.setBodytext(body_text); | ||
372 | } | 376 | } |
373 | } else { | 377 | } 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 @@ | |||
2 | #define __IMAPWRAPPER | 2 | #define __IMAPWRAPPER |
3 | 3 | ||
4 | #include <qlist.h> | ||
4 | #include "mailwrapper.h" | 5 | #include "mailwrapper.h" |
5 | 6 | ||
6 | struct mailimap; | 7 | struct mailimap; |
7 | struct mailimap_body_type_1part; | 8 | struct mailimap_body_type_1part; |
9 | class RecMail; | ||
10 | class RecBody; | ||
8 | 11 | ||
9 | class IMAPwrapper : public QObject | 12 | class IMAPwrapper : public QObject |
@@ -15,6 +18,6 @@ public: | |||
15 | virtual ~IMAPwrapper(); | 18 | virtual ~IMAPwrapper(); |
16 | QList<IMAPFolder>* listFolders(); | 19 | QList<IMAPFolder>* listFolders(); |
17 | void listMessages(const QString & mailbox,Maillist&target ); | 20 | void listMessages(const QString & mailbox,QList<RecMail>&target ); |
18 | QString fetchBody(const RecMail&mail); | 21 | RecBody fetchBody(const RecMail&mail); |
19 | static void imap_progress( size_t current, size_t maximum ); | 22 | static void imap_progress( size_t current, size_t maximum ); |
20 | 23 | ||
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 @@ | |||
1 | #include "mailtypes.h" | ||
2 | |||
3 | |||
4 | RecMail::RecMail() | ||
5 | :subject(""),date(""),mbox(""),msg_number(0),msg_flags(7) | ||
6 | { | ||
7 | } | ||
8 | |||
9 | void RecMail::setTo(const QStringList&list) | ||
10 | { | ||
11 | to = list; | ||
12 | } | ||
13 | |||
14 | const QStringList&RecMail::To()const | ||
15 | { | ||
16 | return to; | ||
17 | } | ||
18 | |||
19 | void RecMail::setCC(const QStringList&list) | ||
20 | { | ||
21 | cc = list; | ||
22 | } | ||
23 | |||
24 | const QStringList&RecMail::CC()const | ||
25 | { | ||
26 | return cc; | ||
27 | } | ||
28 | |||
29 | void RecMail::setBcc(const QStringList&list) | ||
30 | { | ||
31 | bcc = list; | ||
32 | } | ||
33 | |||
34 | const QStringList& RecMail::Bcc()const | ||
35 | { | ||
36 | return bcc; | ||
37 | } | ||
38 | |||
39 | |||
40 | RecPart::RecPart() | ||
41 | : m_type(""),m_subtype(""),m_identifier(""),m_encoding("") | ||
42 | { | ||
43 | } | ||
44 | |||
45 | RecPart::RecPart(const QString&identifier,const QString&type,const QString&subtype,const QString&encoding) | ||
46 | : m_type(type),m_subtype(subtype),m_identifier(identifier),m_encoding(encoding) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | RecPart::~RecPart() | ||
51 | { | ||
52 | } | ||
53 | |||
54 | const QString& RecPart::Type()const | ||
55 | { | ||
56 | return m_type; | ||
57 | } | ||
58 | |||
59 | void RecPart::setType(const QString&type) | ||
60 | { | ||
61 | m_type = type; | ||
62 | } | ||
63 | |||
64 | const QString& RecPart::Subtype()const | ||
65 | { | ||
66 | return m_subtype; | ||
67 | } | ||
68 | |||
69 | void RecPart::setSubtype(const QString&subtype) | ||
70 | { | ||
71 | m_subtype = subtype; | ||
72 | } | ||
73 | |||
74 | const QString& RecPart::Identifier()const | ||
75 | { | ||
76 | return m_identifier; | ||
77 | } | ||
78 | |||
79 | void RecPart::setIdentifier(const QString&identifier) | ||
80 | { | ||
81 | m_identifier = identifier; | ||
82 | } | ||
83 | |||
84 | const QString& RecPart::Encoding()const | ||
85 | { | ||
86 | return m_encoding; | ||
87 | } | ||
88 | |||
89 | void RecPart::setEncoding(const QString&encoding) | ||
90 | { | ||
91 | m_encoding = encoding; | ||
92 | } | ||
93 | |||
94 | RecBody::RecBody() | ||
95 | : m_BodyText(""),m_PartsList() | ||
96 | { | ||
97 | m_PartsList.setAutoDelete(true); | ||
98 | } | ||
99 | |||
100 | RecBody::~RecBody() | ||
101 | { | ||
102 | } | ||
103 | |||
104 | void RecBody::setBodytext(const QString&bodyText) | ||
105 | { | ||
106 | m_BodyText = bodyText; | ||
107 | } | ||
108 | |||
109 | const QString& RecBody::Bodytext()const | ||
110 | { | ||
111 | return m_BodyText; | ||
112 | } | ||
113 | |||
114 | void RecBody::setParts(const QList<RecPart>&parts) | ||
115 | { | ||
116 | m_PartsList = parts; | ||
117 | m_PartsList.setAutoDelete(true); | ||
118 | } | ||
119 | |||
120 | const QList<RecPart>& RecBody::Parts()const | ||
121 | { | ||
122 | return m_PartsList; | ||
123 | } | ||
124 | |||
125 | void RecBody::addPart(const RecPart& part) | ||
126 | { | ||
127 | RecPart*p = new RecPart(part); | ||
128 | m_PartsList.append(p); | ||
129 | } | ||
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 @@ | |||
1 | #ifndef __MAIL_TYPES_H | ||
2 | #define __MAIL_TYPES_H | ||
3 | |||
4 | #define FLAG_ANSWERED 0 | ||
5 | #define FLAG_FLAGGED 1 | ||
6 | #define FLAG_DELETED 2 | ||
7 | #define FLAG_SEEN 3 | ||
8 | #define FLAG_DRAFT 4 | ||
9 | #define FLAG_RECENT 5 | ||
10 | |||
11 | #include <qlist.h> | ||
12 | #include <qbitarray.h> | ||
13 | #include <qstring.h> | ||
14 | #include <qstringlist.h> | ||
15 | |||
16 | /* a class to describe mails in a mailbox */ | ||
17 | /* Attention! | ||
18 | From programmers point of view it would make sense to | ||
19 | store the mail body into this class, too. | ||
20 | But: not from the point of view of the device. | ||
21 | Mailbodies can be real large. So we request them when | ||
22 | needed from the mail-wrapper class direct from the server itself | ||
23 | (imap) or from a file-based cache (pop3?) | ||
24 | So there is no interface "const QString&body()" but you should | ||
25 | make a request to the mailwrapper with this class as parameter to | ||
26 | get the body. Same words for the attachments. | ||
27 | */ | ||
28 | class RecMail | ||
29 | { | ||
30 | public: | ||
31 | RecMail(); | ||
32 | virtual ~RecMail(){} | ||
33 | |||
34 | const int getNumber()const{return msg_number;} | ||
35 | void setNumber(int number){msg_number=number;} | ||
36 | const QString&getDate()const{ return date; } | ||
37 | void setDate( const QString&a ) { date = a; } | ||
38 | const QString&getFrom()const{ return from; } | ||
39 | void setFrom( const QString&a ) { from = a; } | ||
40 | const QString&getSubject()const { return subject; } | ||
41 | void setSubject( const QString&s ) { subject = s; } | ||
42 | const QString&getMbox()const{return mbox;} | ||
43 | void setMbox(const QString&box){mbox = box;} | ||
44 | |||
45 | void setTo(const QStringList&list); | ||
46 | const QStringList&To()const; | ||
47 | void setCC(const QStringList&list); | ||
48 | const QStringList&CC()const; | ||
49 | void setBcc(const QStringList&list); | ||
50 | const QStringList&Bcc()const; | ||
51 | |||
52 | const QBitArray&getFlags()const{return msg_flags;} | ||
53 | void setFlags(const QBitArray&flags){msg_flags = flags;} | ||
54 | |||
55 | protected: | ||
56 | QString subject,date,from,mbox; | ||
57 | int msg_number; | ||
58 | QBitArray msg_flags; | ||
59 | QStringList to,cc,bcc; | ||
60 | }; | ||
61 | |||
62 | class RecPart | ||
63 | { | ||
64 | protected: | ||
65 | QString m_type,m_subtype,m_identifier,m_encoding; | ||
66 | public: | ||
67 | RecPart(); | ||
68 | RecPart(const QString&identifier,const QString&type="",const QString&subtype="",const QString&encoding="BASE64"); | ||
69 | virtual ~RecPart(); | ||
70 | |||
71 | const QString&Type()const; | ||
72 | void setType(const QString&type); | ||
73 | const QString&Subtype()const; | ||
74 | void setSubtype(const QString&subtype); | ||
75 | const QString&Identifier()const; | ||
76 | void setIdentifier(const QString&identifier); | ||
77 | const QString&Encoding()const; | ||
78 | void setEncoding(const QString&encoding); | ||
79 | }; | ||
80 | |||
81 | class RecBody | ||
82 | { | ||
83 | protected: | ||
84 | QString m_BodyText; | ||
85 | QList<RecPart> m_PartsList; | ||
86 | |||
87 | public: | ||
88 | RecBody(); | ||
89 | virtual ~RecBody(); | ||
90 | void setBodytext(const QString&); | ||
91 | const QString& Bodytext()const; | ||
92 | |||
93 | void setParts(const QList<RecPart>&parts); | ||
94 | const QList<RecPart>& Parts()const; | ||
95 | void addPart(const RecPart&part); | ||
96 | }; | ||
97 | |||
98 | #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() | |||
628 | { | 628 | { |
629 | } | 629 | } |
630 | |||
631 | RecMail::RecMail() | ||
632 | :subject(""),date(""),mbox(""),msg_number(0),msg_flags(7) | ||
633 | { | ||
634 | } | ||
635 | |||
636 | #if 0 | ||
637 | void RecMail::setDate(const QString&aDate) | ||
638 | { | ||
639 | mDate = QDateTime::fromString(aDate); | ||
640 | } | ||
641 | #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: | |||
32 | }; | 32 | }; |
33 | 33 | ||
34 | #define FLAG_ANSWERED 0 | ||
35 | #define FLAG_FLAGGED 1 | ||
36 | #define FLAG_DELETED 2 | ||
37 | #define FLAG_SEEN 3 | ||
38 | #define FLAG_DRAFT 4 | ||
39 | #define FLAG_RECENT 5 | ||
40 | |||
41 | /* a class to describe mails in a mailbox */ | ||
42 | /* Attention! | ||
43 | From programmers point of view it would make sense to | ||
44 | store the mail body into this class, too. | ||
45 | But: not from the point of view of the device. | ||
46 | Mailbodies can be real large. So we request them when | ||
47 | needed from the mail-wrapper class direct from the server itself | ||
48 | (imap) or from a file-based cache (pop3?) | ||
49 | So there is no interface "const QString&body()" but you should | ||
50 | make a request to the mailwrapper with this class as parameter to | ||
51 | get the body. Same words for the attachments. | ||
52 | */ | ||
53 | class RecMail | ||
54 | { | ||
55 | public: | ||
56 | RecMail(); | ||
57 | virtual ~RecMail(){} | ||
58 | |||
59 | const int getNumber()const{return msg_number;} | ||
60 | void setNumber(int number){msg_number=number;} | ||
61 | const QString&getDate()const{ return date; } | ||
62 | void setDate( const QString&a ) { date = a; } | ||
63 | const QString&getFrom()const{ return from; } | ||
64 | void setFrom( const QString&a ) { from = a; } | ||
65 | const QString&getSubject()const { return subject; } | ||
66 | void setSubject( const QString&s ) { subject = s; } | ||
67 | const QString&getMbox()const{return mbox;} | ||
68 | void setMbox(const QString&box){mbox = box;} | ||
69 | const QBitArray&getFlags()const{return msg_flags;} | ||
70 | void setFlags(const QBitArray&flags){msg_flags = flags;} | ||
71 | |||
72 | #if 0 | ||
73 | void setDate(const QString&dstring); | ||
74 | void setDate(const QDateTime&date){mDate = date;} | ||
75 | QString getDate()const{return mDate.toString();} | ||
76 | #endif | ||
77 | protected: | ||
78 | QString subject,date,from,mbox; | ||
79 | int msg_number; | ||
80 | QBitArray msg_flags; | ||
81 | #if 0 | ||
82 | QDateTime mDate; | ||
83 | #endif | ||
84 | }; | ||
85 | |||
86 | typedef QList<RecMail> Maillist; | ||
87 | |||
88 | class Mail | 34 | class Mail |
89 | { | 35 | { |