summaryrefslogtreecommitdiff
path: root/noncore/net/mail/libmailwrapper
Unidiff
Diffstat (limited to 'noncore/net/mail/libmailwrapper') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.cpp16
-rw-r--r--noncore/net/mail/libmailwrapper/abstractmail.h36
-rw-r--r--noncore/net/mail/libmailwrapper/generatemail.cpp4
-rw-r--r--noncore/net/mail/libmailwrapper/generatemail.h6
-rw-r--r--noncore/net/mail/libmailwrapper/genericwrapper.cpp10
-rw-r--r--noncore/net/mail/libmailwrapper/genericwrapper.h10
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.cpp49
-rw-r--r--noncore/net/mail/libmailwrapper/imapwrapper.h34
-rw-r--r--noncore/net/mail/libmailwrapper/mailtypes.cpp4
-rw-r--r--noncore/net/mail/libmailwrapper/mailtypes.h15
-rw-r--r--noncore/net/mail/libmailwrapper/mailwrapper.cpp2
-rw-r--r--noncore/net/mail/libmailwrapper/mailwrapper.h8
-rw-r--r--noncore/net/mail/libmailwrapper/mboxwrapper.cpp43
-rw-r--r--noncore/net/mail/libmailwrapper/mboxwrapper.h24
-rw-r--r--noncore/net/mail/libmailwrapper/mhwrapper.cpp50
-rw-r--r--noncore/net/mail/libmailwrapper/mhwrapper.h26
-rw-r--r--noncore/net/mail/libmailwrapper/nntpwrapper.cpp26
-rw-r--r--noncore/net/mail/libmailwrapper/nntpwrapper.h14
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.cpp32
-rw-r--r--noncore/net/mail/libmailwrapper/pop3wrapper.h14
-rw-r--r--noncore/net/mail/libmailwrapper/smtpwrapper.cpp18
-rw-r--r--noncore/net/mail/libmailwrapper/smtpwrapper.h6
-rw-r--r--noncore/net/mail/libmailwrapper/storemail.cpp2
-rw-r--r--noncore/net/mail/libmailwrapper/storemail.h2
24 files changed, 223 insertions, 228 deletions
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.cpp b/noncore/net/mail/libmailwrapper/abstractmail.cpp
index 7e6d383..68a7a4d 100644
--- a/noncore/net/mail/libmailwrapper/abstractmail.cpp
+++ b/noncore/net/mail/libmailwrapper/abstractmail.cpp
@@ -80,9 +80,9 @@ encodedString* AbstractMail::decode_String(const encodedString*text,const QStrin
80} 80}
81 81
82QString AbstractMail::convert_String(const char*text) 82QString AbstractMail::convert_String(const char*text)
83{ 83{
84 size_t index = 0; 84 //size_t index = 0;
85 char*res = 0; 85 char*res = 0;
86 int err = MAILIMF_NO_ERROR; 86 int err = MAILIMF_NO_ERROR;
87 87
88 QString result(text); 88 QString result(text);
@@ -110,9 +110,9 @@ QString AbstractMail::gen_attachment_id()
110 110
111 return "{" + stream.read().stripWhiteSpace() + "}"; 111 return "{" + stream.read().stripWhiteSpace() + "}";
112} 112}
113 113
114int AbstractMail::createMbox(const QString&,const FolderP&,const QString& delemiter,bool) 114int AbstractMail::createMbox(const QString&,const FolderP&,const QString& ,bool)
115{ 115{
116 return 0; 116 return 0;
117} 117}
118 118
@@ -128,33 +128,33 @@ QString AbstractMail::draftFolder()
128 return QString("Drafts"); 128 return QString("Drafts");
129} 129}
130 130
131/* temporary - will be removed when implemented in all classes */ 131/* temporary - will be removed when implemented in all classes */
132void AbstractMail::deleteMails(const QString &,QList<RecMail> &) 132void AbstractMail::deleteMails(const QString &,const QValueList<Opie::OSmartPointer<RecMail> > &)
133{ 133{
134} 134}
135 135
136void AbstractMail::mvcpAllMails(const FolderP&fromFolder, 136void AbstractMail::mvcpAllMails(const FolderP&fromFolder,
137 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 137 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
138{ 138{
139 QList<RecMail> t; 139 QValueList<RecMailP> t;
140 listMessages(fromFolder->getName(),t); 140 listMessages(fromFolder->getName(),t);
141 encodedString*st = 0; 141 encodedString*st = 0;
142 while (t.count()>0) { 142 while (t.count()>0) {
143 RecMail*r = t.at(0); 143 RecMailP r = (*t.begin());
144 st = fetchRawBody(*r); 144 st = fetchRawBody(r);
145 if (st) { 145 if (st) {
146 targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder); 146 targetWrapper->storeMessage(st->Content(),st->Length(),targetFolder);
147 delete st; 147 delete st;
148 } 148 }
149 t.removeFirst(); 149 t.remove(t.begin());
150 } 150 }
151 if (moveit) { 151 if (moveit) {
152 deleteAllMail(fromFolder); 152 deleteAllMail(fromFolder);
153 } 153 }
154} 154}
155 155
156void AbstractMail::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 156void AbstractMail::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
157{ 157{
158 encodedString*st = 0; 158 encodedString*st = 0;
159 st = fetchRawBody(mail); 159 st = fetchRawBody(mail);
160 if (st) { 160 if (st) {
diff --git a/noncore/net/mail/libmailwrapper/abstractmail.h b/noncore/net/mail/libmailwrapper/abstractmail.h
index d911468..b03d757 100644
--- a/noncore/net/mail/libmailwrapper/abstractmail.h
+++ b/noncore/net/mail/libmailwrapper/abstractmail.h
@@ -5,13 +5,11 @@
5 5
6#include "settings.h" 6#include "settings.h"
7 7
8#include <qobject.h> 8#include <qobject.h>
9#include <opie2/osmart_pointer.h> 9#include <opie2/osmartpointer.h>
10#include "mailtypes.h"
10 11
11class RecMail;
12class RecBody;
13class RecPart;
14class IMAPwrapper; 12class IMAPwrapper;
15class POP3wrapper; 13class POP3wrapper;
16class Folder; 14class Folder;
17class encodedString; 15class encodedString;
@@ -22,35 +20,35 @@ class AbstractMail:public QObject
22 Q_OBJECT 20 Q_OBJECT
23public: 21public:
24 AbstractMail(){}; 22 AbstractMail(){};
25 virtual ~AbstractMail(){} 23 virtual ~AbstractMail(){}
26 virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders()=0; 24 virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders()=0;
27 virtual void listMessages(const QString & mailbox,QList<RecMail>&target )=0; 25 virtual void listMessages(const QString & mailbox,QValueList<RecMailP>&target )=0;
28 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0; 26 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX")=0;
29 virtual RecBody fetchBody(const RecMail&mail)=0; 27 virtual RecBody fetchBody(const RecMailP&mail)=0;
30 virtual QString fetchTextPart(const RecMail&mail,const RecPart&part)=0; 28 virtual QString fetchTextPart(const RecMailP&mail,const RecPart&part)=0;
31 virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part)=0; 29 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPart&part)=0;
32 virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part)=0; 30 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPart&part)=0;
33 virtual encodedString* fetchRawBody(const RecMail&mail)=0; 31 virtual encodedString* fetchRawBody(const RecMailP&mail)=0;
34 32
35 virtual void deleteMail(const RecMail&mail)=0; 33 virtual void deleteMail(const RecMailP&mail)=0;
36 virtual void answeredMail(const RecMail&mail)=0; 34 virtual void answeredMail(const RecMailP&mail)=0;
37 virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&)=0; 35 virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&)=0;
38 virtual void deleteMails(const QString & FolderName,QList<RecMail> &target); 36 virtual void deleteMails(const QString & FolderName,const QValueList<Opie::OSmartPointer<RecMail> >&target);
39 virtual int deleteMbox(const Opie::osmart_pointer<Folder>&)=0; 37 virtual int deleteMbox(const Opie::OSmartPointer<Folder>&)=0;
40 virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0; 38 virtual void storeMessage(const char*msg,size_t length, const QString&folder)=0;
41 39
42 virtual void mvcpAllMails(const Opie::osmart_pointer<Folder>&fromFolder, 40 virtual void mvcpAllMails(const Opie::OSmartPointer<Folder>&fromFolder,
43 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 41 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
44 virtual void mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 42 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
45 43
46 virtual void cleanMimeCache(){}; 44 virtual void cleanMimeCache(){};
47 /* mail box methods */ 45 /* mail box methods */
48 /* parameter is the box to create. 46 /* parameter is the box to create.
49 * if the implementing subclass has prefixes, 47 * if the implementing subclass has prefixes,
50 * them has to be appended automatic. 48 * them has to be appended automatic.
51 */ 49 */
52 virtual int createMbox(const QString&,const Opie::osmart_pointer<Folder>&parentfolder=0, 50 virtual int createMbox(const QString&,const Opie::OSmartPointer<Folder>&parentfolder=0,
53 const QString& delemiter="/",bool getsubfolder=false); 51 const QString& delemiter="/",bool getsubfolder=false);
54 virtual void logout()=0; 52 virtual void logout()=0;
55 53
56 static AbstractMail* getWrapper(IMAPaccount *a); 54 static AbstractMail* getWrapper(IMAPaccount *a);
diff --git a/noncore/net/mail/libmailwrapper/generatemail.cpp b/noncore/net/mail/libmailwrapper/generatemail.cpp
index 4f7ec0c..cb7ccc0 100644
--- a/noncore/net/mail/libmailwrapper/generatemail.cpp
+++ b/noncore/net/mail/libmailwrapper/generatemail.cpp
@@ -278,9 +278,9 @@ mailimf_mailbox *Generatemail::newMailbox(const QString&name, const QString&mail
278 return mailimf_mailbox_new( strdup( name.latin1() ), 278 return mailimf_mailbox_new( strdup( name.latin1() ),
279 strdup( mail.latin1() ) ); 279 strdup( mail.latin1() ) );
280} 280}
281 281
282mailimf_fields *Generatemail::createImfFields(const Opie::osmart_pointer<Mail>&mail ) 282mailimf_fields *Generatemail::createImfFields(const Opie::OSmartPointer<Mail>&mail )
283{ 283{
284 mailimf_fields *fields = NULL; 284 mailimf_fields *fields = NULL;
285 mailimf_field *xmailer = NULL; 285 mailimf_field *xmailer = NULL;
286 mailimf_mailbox *sender=0,*fromBox=0; 286 mailimf_mailbox *sender=0,*fromBox=0;
@@ -398,9 +398,9 @@ mailimf_fields *Generatemail::createImfFields(const Opie::osmart_pointer<Mail>&m
398 } 398 }
399 return fields; 399 return fields;
400} 400}
401 401
402mailmime *Generatemail::createMimeMail(const Opie::osmart_pointer<Mail> &mail ) { 402mailmime *Generatemail::createMimeMail(const Opie::OSmartPointer<Mail> &mail ) {
403 mailmime *message, *txtPart; 403 mailmime *message, *txtPart;
404 mailimf_fields *fields; 404 mailimf_fields *fields;
405 int err; 405 int err;
406 406
diff --git a/noncore/net/mail/libmailwrapper/generatemail.h b/noncore/net/mail/libmailwrapper/generatemail.h
index 409a55e..c246a2a 100644
--- a/noncore/net/mail/libmailwrapper/generatemail.h
+++ b/noncore/net/mail/libmailwrapper/generatemail.h
@@ -5,9 +5,9 @@
5 5
6#include <qobject.h> 6#include <qobject.h>
7#include <libetpan/clist.h> 7#include <libetpan/clist.h>
8 8
9#include <opie2/osmart_pointer.h> 9#include <opie2/osmartpointer.h>
10 10
11class Mail; 11class Mail;
12class RecMail; 12class RecMail;
13class Attachment; 13class Attachment;
@@ -35,10 +35,10 @@ protected:
35 void addFileParts( mailmime *message,const QList<Attachment>&files ); 35 void addFileParts( mailmime *message,const QList<Attachment>&files );
36 mailmime *buildFilePart(const QString&filename,const QString&mimetype,const QString&content); 36 mailmime *buildFilePart(const QString&filename,const QString&mimetype,const QString&content);
37 mailmime *buildTxtPart(const QString&str ); 37 mailmime *buildTxtPart(const QString&str );
38 mailimf_mailbox *newMailbox(const QString&name,const QString&mail ); 38 mailimf_mailbox *newMailbox(const QString&name,const QString&mail );
39 mailimf_fields *createImfFields(const Opie::osmart_pointer<Mail> &mail ); 39 mailimf_fields *createImfFields(const Opie::OSmartPointer<Mail> &mail );
40 mailmime *createMimeMail(const Opie::osmart_pointer<Mail>&mail ); 40 mailmime *createMimeMail(const Opie::OSmartPointer<Mail>&mail );
41 clist *createRcptList( mailimf_fields *fields ); 41 clist *createRcptList( mailimf_fields *fields );
42 42
43 static const char* USER_AGENT; 43 static const char* USER_AGENT;
44}; 44};
diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.cpp b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
index 6c8a5a1..ee2c8cd 100644
--- a/noncore/net/mail/libmailwrapper/genericwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/genericwrapper.cpp
@@ -330,25 +330,25 @@ QString Genericwrapper::parseMailboxList( mailimf_mailbox_list *list )
330 330
331 return result; 331 return result;
332} 332}
333 333
334encodedString* Genericwrapper::fetchDecodedPart(const RecMail&,const RecPart&part) 334encodedString* Genericwrapper::fetchDecodedPart(const RecMailP&,const RecPart&part)
335{ 335{
336 QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part.Identifier()); 336 QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part.Identifier());
337 if (it==bodyCache.end()) return new encodedString(); 337 if (it==bodyCache.end()) return new encodedString();
338 encodedString*t = decode_String(it.data(),part.Encoding()); 338 encodedString*t = decode_String(it.data(),part.Encoding());
339 return t; 339 return t;
340} 340}
341 341
342encodedString* Genericwrapper::fetchRawPart(const RecMail&mail,const RecPart&part) 342encodedString* Genericwrapper::fetchRawPart(const RecMailP&mail,const RecPart&part)
343{ 343{
344 QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part.Identifier()); 344 QMap<QString,encodedString*>::ConstIterator it = bodyCache.find(part.Identifier());
345 if (it==bodyCache.end()) return new encodedString(); 345 if (it==bodyCache.end()) return new encodedString();
346 encodedString*t = it.data(); 346 encodedString*t = it.data();
347 return t; 347 return t;
348} 348}
349 349
350QString Genericwrapper::fetchTextPart(const RecMail&mail,const RecPart&part) 350QString Genericwrapper::fetchTextPart(const RecMailP&mail,const RecPart&part)
351{ 351{
352 encodedString*t = fetchDecodedPart(mail,part); 352 encodedString*t = fetchDecodedPart(mail,part);
353 QString text=t->Content(); 353 QString text=t->Content();
354 delete t; 354 delete t;
@@ -386,9 +386,9 @@ QStringList Genericwrapper::parseInreplies(mailimf_in_reply_to * in_replies)
386 } 386 }
387 return res; 387 return res;
388} 388}
389 389
390void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const QString&mailbox,bool mbox_as_to) 390void Genericwrapper::parseList(QValueList<Opie::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to)
391{ 391{
392 int r; 392 int r;
393 mailmessage_list * env_list = 0; 393 mailmessage_list * env_list = 0;
394 r = mailsession_get_messages_list(session,&env_list); 394 r = mailsession_get_messages_list(session,&env_list);
@@ -414,9 +414,9 @@ void Genericwrapper::parseList(QList<RecMail> &target,mailsession*session,const
414 if (msg->msg_fields == NULL) { 414 if (msg->msg_fields == NULL) {
415 //qDebug("could not fetch envelope of message %i", i); 415 //qDebug("could not fetch envelope of message %i", i);
416 continue; 416 continue;
417 } 417 }
418 RecMail * mail = new RecMail(); 418 RecMailP mail = new RecMail();
419 mail->setWrapper(this); 419 mail->setWrapper(this);
420 mail_flags * flag_result = 0; 420 mail_flags * flag_result = 0;
421 r = mailmessage_get_flags(msg,&flag_result); 421 r = mailmessage_get_flags(msg,&flag_result);
422 if (r == MAIL_ERROR_NOT_IMPLEMENTED) { 422 if (r == MAIL_ERROR_NOT_IMPLEMENTED) {
diff --git a/noncore/net/mail/libmailwrapper/genericwrapper.h b/noncore/net/mail/libmailwrapper/genericwrapper.h
index d0db45a..f9968d1 100644
--- a/noncore/net/mail/libmailwrapper/genericwrapper.h
+++ b/noncore/net/mail/libmailwrapper/genericwrapper.h
@@ -33,13 +33,13 @@ class Genericwrapper : public AbstractMail
33public: 33public:
34 Genericwrapper(); 34 Genericwrapper();
35 virtual ~Genericwrapper(); 35 virtual ~Genericwrapper();
36 36
37 virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part); 37 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPart&part);
38 virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part); 38 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPart&part);
39 virtual QString fetchTextPart(const RecMail&mail,const RecPart&part); 39 virtual QString fetchTextPart(const RecMailP&mail,const RecPart&part);
40 virtual void cleanMimeCache(); 40 virtual void cleanMimeCache();
41 virtual int deleteMbox(const Opie::osmart_pointer<Folder>&){return 1;} 41 virtual int deleteMbox(const Opie::OSmartPointer<Folder>&){return 1;}
42 virtual void logout(){}; 42 virtual void logout(){};
43 virtual void storeMessage(const char*msg,size_t length, const QString&folder){}; 43 virtual void storeMessage(const char*msg,size_t length, const QString&folder){};
44 44
45protected: 45protected:
@@ -53,9 +53,9 @@ protected:
53 void traverseBody(RecBody&target,mailmessage*message,mailmime*mime,QValueList<int>recList,unsigned int current_rek=0,int current_count=1); 53 void traverseBody(RecBody&target,mailmessage*message,mailmime*mime,QValueList<int>recList,unsigned int current_rek=0,int current_count=1);
54 static void fillSingleBody(RecPart&target,mailmessage*message,mailmime*mime); 54 static void fillSingleBody(RecPart&target,mailmessage*message,mailmime*mime);
55 static void fillParameters(RecPart&target,clist*parameters); 55 static void fillParameters(RecPart&target,clist*parameters);
56 static QString getencoding(mailmime_mechanism*aEnc); 56 static QString getencoding(mailmime_mechanism*aEnc);
57 virtual void parseList(QList<RecMail> &target,mailsession*session,const QString&mailbox,bool mbox_as_to=false); 57 virtual void parseList(QValueList<Opie::OSmartPointer<RecMail> > &target,mailsession*session,const QString&mailbox,bool mbox_as_to=false);
58 QStringList parseInreplies(mailimf_in_reply_to * in_replies); 58 QStringList parseInreplies(mailimf_in_reply_to * in_replies);
59 59
60 QString msgTempName; 60 QString msgTempName;
61 unsigned int last_msg_id; 61 unsigned int last_msg_id;
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.cpp b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
index 3b3be0f..071e734 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.cpp
@@ -204,9 +204,9 @@ void IMAPwrapper::logout()
204 m_imap = 0; 204 m_imap = 0;
205 m_Lastmbox = ""; 205 m_Lastmbox = "";
206} 206}
207 207
208void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target ) 208void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::OSmartPointer<RecMail> > &target )
209{ 209{
210 int err = MAILIMAP_NO_ERROR; 210 int err = MAILIMAP_NO_ERROR;
211 clist *result = 0; 211 clist *result = 0;
212 clistcell *current; 212 clistcell *current;
@@ -265,9 +265,9 @@ void IMAPwrapper::listMessages(const QString&mailbox,QList<RecMail> &target )
265 } 265 }
266 if (result) mailimap_fetch_list_free(result); 266 if (result) mailimap_fetch_list_free(result);
267} 267}
268 268
269QValueList<Opie::osmart_pointer<Folder> >* IMAPwrapper::listFolders() 269QValueList<Opie::OSmartPointer<Folder> >* IMAPwrapper::listFolders()
270{ 270{
271 const char *path, *mask; 271 const char *path, *mask;
272 int err = MAILIMAP_NO_ERROR; 272 int err = MAILIMAP_NO_ERROR;
273 clist *result = 0; 273 clist *result = 0;
@@ -481,9 +481,9 @@ RecMail*IMAPwrapper::parse_list_result(mailimap_msg_att* m_att)
481 } 481 }
482 return m; 482 return m;
483} 483}
484 484
485RecBody IMAPwrapper::fetchBody(const RecMail&mail) 485RecBody IMAPwrapper::fetchBody(const RecMailP&mail)
486{ 486{
487 RecBody body; 487 RecBody body;
488 const char *mb; 488 const char *mb;
489 int err = MAILIMAP_NO_ERROR; 489 int err = MAILIMAP_NO_ERROR;
@@ -493,21 +493,21 @@ RecBody IMAPwrapper::fetchBody(const RecMail&mail)
493 mailimap_fetch_type *fetchType = 0; 493 mailimap_fetch_type *fetchType = 0;
494 mailimap_set *set = 0; 494 mailimap_set *set = 0;
495 mailimap_body*body_desc = 0; 495 mailimap_body*body_desc = 0;
496 496
497 mb = mail.getMbox().latin1(); 497 mb = mail->getMbox().latin1();
498 498
499 login(); 499 login();
500 if (!m_imap) { 500 if (!m_imap) {
501 return body; 501 return body;
502 } 502 }
503 err = selectMbox(mail.getMbox()); 503 err = selectMbox(mail->getMbox());
504 if ( err != MAILIMAP_NO_ERROR ) { 504 if ( err != MAILIMAP_NO_ERROR ) {
505 return body; 505 return body;
506 } 506 }
507 507
508 /* the range has to start at 1!!! not with 0!!!! */ 508 /* the range has to start at 1!!! not with 0!!!! */
509 set = mailimap_set_new_interval( mail.getNumber(),mail.getNumber() ); 509 set = mailimap_set_new_interval( mail->getNumber(),mail->getNumber() );
510 fetchAtt = mailimap_fetch_att_new_bodystructure(); 510 fetchAtt = mailimap_fetch_att_new_bodystructure();
511 fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt); 511 fetchType = mailimap_fetch_type_new_fetch_att(fetchAtt);
512 err = mailimap_fetch( m_imap, set, fetchType, &result ); 512 err = mailimap_fetch( m_imap, set, fetchType, &result );
513 mailimap_set_free( set ); 513 mailimap_set_free( set );
@@ -567,9 +567,9 @@ QStringList IMAPwrapper::address_list_to_stringlist(clist*list)
567 } 567 }
568 return l; 568 return l;
569} 569}
570 570
571encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>&path,bool internal_call) 571encodedString*IMAPwrapper::fetchRawPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call)
572{ 572{
573 encodedString*res=new encodedString; 573 encodedString*res=new encodedString;
574 int err; 574 int err;
575 mailimap_fetch_type *fetchType; 575 mailimap_fetch_type *fetchType;
@@ -584,14 +584,14 @@ encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>
584 if (!m_imap) { 584 if (!m_imap) {
585 return res; 585 return res;
586 } 586 }
587 if (!internal_call) { 587 if (!internal_call) {
588 err = selectMbox(mail.getMbox()); 588 err = selectMbox(mail->getMbox());
589 if ( err != MAILIMAP_NO_ERROR ) { 589 if ( err != MAILIMAP_NO_ERROR ) {
590 return res; 590 return res;
591 } 591 }
592 } 592 }
593 set = mailimap_set_new_single(mail.getNumber()); 593 set = mailimap_set_new_single(mail->getNumber());
594 594
595 clist*id_list = 0; 595 clist*id_list = 0;
596 596
597 /* if path == empty then its a request for the whole rfc822 mail and generates 597 /* if path == empty then its a request for the whole rfc822 mail and generates
@@ -640,9 +640,9 @@ encodedString*IMAPwrapper::fetchRawPart(const RecMail&mail,const QValueList<int>
640} 640}
641 641
642/* current_recursion is for recursive calls. 642/* current_recursion is for recursive calls.
643 current_count means the position inside the internal loop! */ 643 current_count means the position inside the internal loop! */
644void IMAPwrapper::traverseBody(const RecMail&mail,mailimap_body*body,RecBody&target_body, 644void IMAPwrapper::traverseBody(const RecMailP&mail,mailimap_body*body,RecBody&target_body,
645 int current_recursion,QValueList<int>recList,int current_count) 645 int current_recursion,QValueList<int>recList,int current_count)
646{ 646{
647 if (!body || current_recursion>=10) { 647 if (!body || current_recursion>=10) {
648 return; 648 return;
@@ -868,9 +868,9 @@ void IMAPwrapper::fillBodyFields(RecPart&target_part,mailimap_body_fields*which)
868 target_part.setEncoding(encoding); 868 target_part.setEncoding(encoding);
869 target_part.setSize(which->bd_size); 869 target_part.setSize(which->bd_size);
870} 870}
871 871
872void IMAPwrapper::deleteMail(const RecMail&mail) 872void IMAPwrapper::deleteMail(const RecMailP&mail)
873{ 873{
874 mailimap_flag_list*flist; 874 mailimap_flag_list*flist;
875 mailimap_set *set; 875 mailimap_set *set;
876 mailimap_store_att_flags * store_flags; 876 mailimap_store_att_flags * store_flags;
@@ -878,16 +878,16 @@ void IMAPwrapper::deleteMail(const RecMail&mail)
878 login(); 878 login();
879 if (!m_imap) { 879 if (!m_imap) {
880 return; 880 return;
881 } 881 }
882 err = selectMbox(mail.getMbox()); 882 err = selectMbox(mail->getMbox());
883 if ( err != MAILIMAP_NO_ERROR ) { 883 if ( err != MAILIMAP_NO_ERROR ) {
884 return; 884 return;
885 } 885 }
886 flist = mailimap_flag_list_new_empty(); 886 flist = mailimap_flag_list_new_empty();
887 mailimap_flag_list_add(flist,mailimap_flag_new_deleted()); 887 mailimap_flag_list_add(flist,mailimap_flag_new_deleted());
888 store_flags = mailimap_store_att_flags_new_set_flags(flist); 888 store_flags = mailimap_store_att_flags_new_set_flags(flist);
889 set = mailimap_set_new_single(mail.getNumber()); 889 set = mailimap_set_new_single(mail->getNumber());
890 err = mailimap_store(m_imap,set,store_flags); 890 err = mailimap_store(m_imap,set,store_flags);
891 mailimap_set_free( set ); 891 mailimap_set_free( set );
892 mailimap_store_att_flags_free(store_flags); 892 mailimap_store_att_flags_free(store_flags);
893 893
@@ -903,9 +903,9 @@ void IMAPwrapper::deleteMail(const RecMail&mail)
903 } 903 }
904 qDebug("Delete successfull %s",m_imap->imap_response); 904 qDebug("Delete successfull %s",m_imap->imap_response);
905} 905}
906 906
907void IMAPwrapper::answeredMail(const RecMail&mail) 907void IMAPwrapper::answeredMail(const RecMailP&mail)
908{ 908{
909 mailimap_flag_list*flist; 909 mailimap_flag_list*flist;
910 mailimap_set *set; 910 mailimap_set *set;
911 mailimap_store_att_flags * store_flags; 911 mailimap_store_att_flags * store_flags;
@@ -913,16 +913,16 @@ void IMAPwrapper::answeredMail(const RecMail&mail)
913 login(); 913 login();
914 if (!m_imap) { 914 if (!m_imap) {
915 return; 915 return;
916 } 916 }
917 err = selectMbox(mail.getMbox()); 917 err = selectMbox(mail->getMbox());
918 if ( err != MAILIMAP_NO_ERROR ) { 918 if ( err != MAILIMAP_NO_ERROR ) {
919 return; 919 return;
920 } 920 }
921 flist = mailimap_flag_list_new_empty(); 921 flist = mailimap_flag_list_new_empty();
922 mailimap_flag_list_add(flist,mailimap_flag_new_answered()); 922 mailimap_flag_list_add(flist,mailimap_flag_new_answered());
923 store_flags = mailimap_store_att_flags_new_add_flags(flist); 923 store_flags = mailimap_store_att_flags_new_add_flags(flist);
924 set = mailimap_set_new_single(mail.getNumber()); 924 set = mailimap_set_new_single(mail->getNumber());
925 err = mailimap_store(m_imap,set,store_flags); 925 err = mailimap_store(m_imap,set,store_flags);
926 mailimap_set_free( set ); 926 mailimap_set_free( set );
927 mailimap_store_att_flags_free(store_flags); 927 mailimap_store_att_flags_free(store_flags);
928 928
@@ -931,9 +931,9 @@ void IMAPwrapper::answeredMail(const RecMail&mail)
931 return; 931 return;
932 } 932 }
933} 933}
934 934
935QString IMAPwrapper::fetchTextPart(const RecMail&mail,const QValueList<int>&path,bool internal_call,const QString&enc) 935QString IMAPwrapper::fetchTextPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call,const QString&enc)
936{ 936{
937 QString body(""); 937 QString body("");
938 encodedString*res = fetchRawPart(mail,path,internal_call); 938 encodedString*res = fetchRawPart(mail,path,internal_call);
939 encodedString*r = decode_String(res,enc); 939 encodedString*r = decode_String(res,enc);
@@ -946,22 +946,22 @@ QString IMAPwrapper::fetchTextPart(const RecMail&mail,const QValueList<int>&path
946 } 946 }
947 return body; 947 return body;
948} 948}
949 949
950QString IMAPwrapper::fetchTextPart(const RecMail&mail,const RecPart&part) 950QString IMAPwrapper::fetchTextPart(const RecMailP&mail,const RecPart&part)
951{ 951{
952 return fetchTextPart(mail,part.Positionlist(),false,part.Encoding()); 952 return fetchTextPart(mail,part.Positionlist(),false,part.Encoding());
953} 953}
954 954
955encodedString* IMAPwrapper::fetchDecodedPart(const RecMail&mail,const RecPart&part) 955encodedString* IMAPwrapper::fetchDecodedPart(const RecMailP&mail,const RecPart&part)
956{ 956{
957 encodedString*res = fetchRawPart(mail,part.Positionlist(),false); 957 encodedString*res = fetchRawPart(mail,part.Positionlist(),false);
958 encodedString*r = decode_String(res,part.Encoding()); 958 encodedString*r = decode_String(res,part.Encoding());
959 delete res; 959 delete res;
960 return r; 960 return r;
961} 961}
962 962
963encodedString* IMAPwrapper::fetchRawPart(const RecMail&mail,const RecPart&part) 963encodedString* IMAPwrapper::fetchRawPart(const RecMailP&mail,const RecPart&part)
964{ 964{
965 return fetchRawPart(mail,part.Positionlist(),false); 965 return fetchRawPart(mail,part.Positionlist(),false);
966} 966}
967 967
@@ -1054,9 +1054,8 @@ void IMAPwrapper::statusFolder(folderStat&target_stat,const QString & mailbox)
1054 mailimap_status_att_list * att_list =0; 1054 mailimap_status_att_list * att_list =0;
1055 mailimap_mailbox_data_status * status=0; 1055 mailimap_mailbox_data_status * status=0;
1056 clistiter * cur = 0; 1056 clistiter * cur = 0;
1057 int r = 0; 1057 int r = 0;
1058 int res = 0;
1059 target_stat.message_count = 0; 1058 target_stat.message_count = 0;
1060 target_stat.message_unseen = 0; 1059 target_stat.message_unseen = 0;
1061 target_stat.message_recent = 0; 1060 target_stat.message_recent = 0;
1062 login(); 1061 login();
@@ -1114,9 +1113,9 @@ const QString&IMAPwrapper::getName()const
1114 qDebug("Get name: %s",account->getAccountName().latin1()); 1113 qDebug("Get name: %s",account->getAccountName().latin1());
1115 return account->getAccountName(); 1114 return account->getAccountName();
1116} 1115}
1117 1116
1118encodedString* IMAPwrapper::fetchRawBody(const RecMail&mail) 1117encodedString* IMAPwrapper::fetchRawBody(const RecMailP&mail)
1119{ 1118{
1120 // dummy 1119 // dummy
1121 QValueList<int> path; 1120 QValueList<int> path;
1122 return fetchRawPart(mail,path,false); 1121 return fetchRawPart(mail,path,false);
@@ -1153,9 +1152,9 @@ void IMAPwrapper::mvcpAllMails(const FolderP&fromFolder,
1153 deleteAllMail(fromFolder); 1152 deleteAllMail(fromFolder);
1154 } 1153 }
1155} 1154}
1156 1155
1157void IMAPwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 1156void IMAPwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
1158{ 1157{
1159 if (targetWrapper != this) { 1158 if (targetWrapper != this) {
1160 qDebug("Using generic"); 1159 qDebug("Using generic");
1161 AbstractMail::mvcpMail(mail,targetFolder,targetWrapper,moveit); 1160 AbstractMail::mvcpMail(mail,targetFolder,targetWrapper,moveit);
@@ -1165,13 +1164,13 @@ void IMAPwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,Abstrac
1165 login(); 1164 login();
1166 if (!m_imap) { 1165 if (!m_imap) {
1167 return; 1166 return;
1168 } 1167 }
1169 int err = selectMbox(mail.getMbox()); 1168 int err = selectMbox(mail->getMbox());
1170 if ( err != MAILIMAP_NO_ERROR ) { 1169 if ( err != MAILIMAP_NO_ERROR ) {
1171 return; 1170 return;
1172 } 1171 }
1173 set = mailimap_set_new_single(mail.getNumber()); 1172 set = mailimap_set_new_single(mail->getNumber());
1174 err = mailimap_copy(m_imap,set,targetFolder.latin1()); 1173 err = mailimap_copy(m_imap,set,targetFolder.latin1());
1175 mailimap_set_free( set ); 1174 mailimap_set_free( set );
1176 if ( err != MAILIMAP_NO_ERROR ) { 1175 if ( err != MAILIMAP_NO_ERROR ) {
1177 QString error_msg = tr("error copy mail: %1").arg(m_imap->imap_response); 1176 QString error_msg = tr("error copy mail: %1").arg(m_imap->imap_response);
diff --git a/noncore/net/mail/libmailwrapper/imapwrapper.h b/noncore/net/mail/libmailwrapper/imapwrapper.h
index 15f049f..3bd5967 100644
--- a/noncore/net/mail/libmailwrapper/imapwrapper.h
+++ b/noncore/net/mail/libmailwrapper/imapwrapper.h
@@ -22,29 +22,29 @@ class IMAPwrapper : public AbstractMail
22 Q_OBJECT 22 Q_OBJECT
23public: 23public:
24 IMAPwrapper( IMAPaccount *a ); 24 IMAPwrapper( IMAPaccount *a );
25 virtual ~IMAPwrapper(); 25 virtual ~IMAPwrapper();
26 virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); 26 virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders();
27 virtual void listMessages(const QString & mailbox,QList<RecMail>&target ); 27 virtual void listMessages(const QString & mailbox,QValueList<Opie::OSmartPointer<RecMail> >&target );
28 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 28 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
29 29
30 virtual void deleteMail(const RecMail&mail); 30 virtual void deleteMail(const RecMailP&mail);
31 virtual void answeredMail(const RecMail&mail); 31 virtual void answeredMail(const RecMailP&mail);
32 virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&folder); 32 virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&folder);
33 virtual void storeMessage(const char*msg,size_t length, const QString&folder); 33 virtual void storeMessage(const char*msg,size_t length, const QString&folder);
34 virtual void mvcpAllMails(const Opie::osmart_pointer<Folder>&fromFolder, 34 virtual void mvcpAllMails(const Opie::OSmartPointer<Folder>&fromFolder,
35 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 35 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
36 virtual void mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 36 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
37 37
38 virtual RecBody fetchBody(const RecMail&mail); 38 virtual RecBody fetchBody(const RecMailP&mail);
39 virtual QString fetchTextPart(const RecMail&mail,const RecPart&part); 39 virtual QString fetchTextPart(const RecMailP&mail,const RecPart&part);
40 virtual encodedString* fetchDecodedPart(const RecMail&mail,const RecPart&part); 40 virtual encodedString* fetchDecodedPart(const RecMailP&mail,const RecPart&part);
41 virtual encodedString* fetchRawPart(const RecMail&mail,const RecPart&part); 41 virtual encodedString* fetchRawPart(const RecMailP&mail,const RecPart&part);
42 virtual encodedString* fetchRawBody(const RecMail&mail); 42 virtual encodedString* fetchRawBody(const RecMailP&mail);
43 43
44 virtual int createMbox(const QString&,const Opie::osmart_pointer<Folder>&parentfolder=0, 44 virtual int createMbox(const QString&,const Opie::OSmartPointer<Folder>&parentfolder=0,
45 const QString& delemiter="/",bool getsubfolder=false); 45 const QString& delemiter="/",bool getsubfolder=false);
46 virtual int deleteMbox(const Opie::osmart_pointer<Folder>&folder); 46 virtual int deleteMbox(const Opie::OSmartPointer<Folder>&folder);
47 47
48 static void imap_progress( size_t current, size_t maximum ); 48 static void imap_progress( size_t current, size_t maximum );
49 49
50 virtual void logout(); 50 virtual void logout();
@@ -55,18 +55,18 @@ protected:
55 RecMail*parse_list_result(mailimap_msg_att*); 55 RecMail*parse_list_result(mailimap_msg_att*);
56 void login(); 56 void login();
57 bool start_tls(bool force=true); 57 bool start_tls(bool force=true);
58 58
59 virtual QString fetchTextPart(const RecMail&mail,const QValueList<int>&path,bool internal_call=false,const QString&enc=""); 59 virtual QString fetchTextPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call=false,const QString&enc="");
60 virtual encodedString*fetchRawPart(const RecMail&mail,const QValueList<int>&path,bool internal_call); 60 virtual encodedString*fetchRawPart(const RecMailP&mail,const QValueList<int>&path,bool internal_call);
61 int selectMbox(const QString&mbox); 61 int selectMbox(const QString&mbox);
62 62
63 void fillSinglePart(RecPart&target_part,mailimap_body_type_1part*Description); 63 void fillSinglePart(RecPart&target_part,mailimap_body_type_1part*Description);
64 void fillSingleTextPart(RecPart&target_part,mailimap_body_type_text*which); 64 void fillSingleTextPart(RecPart&target_part,mailimap_body_type_text*which);
65 void fillSingleBasicPart(RecPart&target_part,mailimap_body_type_basic*which); 65 void fillSingleBasicPart(RecPart&target_part,mailimap_body_type_basic*which);
66 void fillSingleMsgPart(RecPart&target_part,mailimap_body_type_msg*which); 66 void fillSingleMsgPart(RecPart&target_part,mailimap_body_type_msg*which);
67 void fillMultiPart(RecPart&target_part,mailimap_body_type_mpart*which); 67 void fillMultiPart(RecPart&target_part,mailimap_body_type_mpart*which);
68 void traverseBody(const RecMail&mail,mailimap_body*body,RecBody&target_body,int current_recursion,QValueList<int>recList,int current_count=1); 68 void traverseBody(const RecMailP&mail,mailimap_body*body,RecBody&target_body,int current_recursion,QValueList<int>recList,int current_count=1);
69 69
70 /* just helpers */ 70 /* just helpers */
71 static void fillBodyFields(RecPart&target_part,mailimap_body_fields*which); 71 static void fillBodyFields(RecPart&target_part,mailimap_body_fields*which);
72 static QStringList address_list_to_stringlist(clist*list); 72 static QStringList address_list_to_stringlist(clist*list);
diff --git a/noncore/net/mail/libmailwrapper/mailtypes.cpp b/noncore/net/mail/libmailwrapper/mailtypes.cpp
index 49b3caa..7dd7e58 100644
--- a/noncore/net/mail/libmailwrapper/mailtypes.cpp
+++ b/noncore/net/mail/libmailwrapper/mailtypes.cpp
@@ -1,15 +1,15 @@
1#include "mailtypes.h" 1#include "mailtypes.h"
2#include <stdlib.h> 2#include <stdlib.h>
3 3
4RecMail::RecMail() 4RecMail::RecMail()
5 :subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_size(0),msg_flags(7) 5 :Opie::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_size(0),msg_flags(7)
6{ 6{
7 init(); 7 init();
8} 8}
9 9
10RecMail::RecMail(const RecMail&old) 10RecMail::RecMail(const RecMail&old)
11 :subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_flags(7) 11 :Opie::ORefCount(),subject(""),date(""),from(""),mbox(""),msg_id(""),msg_number(0),msg_flags(7)
12{ 12{
13 init(); 13 init();
14 copy_old(old); 14 copy_old(old);
15 qDebug("Copy constructor RecMail"); 15 qDebug("Copy constructor RecMail");
diff --git a/noncore/net/mail/libmailwrapper/mailtypes.h b/noncore/net/mail/libmailwrapper/mailtypes.h
index 10d367f..dc10de6 100644
--- a/noncore/net/mail/libmailwrapper/mailtypes.h
+++ b/noncore/net/mail/libmailwrapper/mailtypes.h
@@ -7,8 +7,10 @@
7#define FLAG_SEEN 3 7#define FLAG_SEEN 3
8#define FLAG_DRAFT 4 8#define FLAG_DRAFT 4
9#define FLAG_RECENT 5 9#define FLAG_RECENT 5
10 10
11#include <opie2/osmartpointer.h>
12
11#include <qbitarray.h> 13#include <qbitarray.h>
12#include <qstring.h> 14#include <qstring.h>
13#include <qstringlist.h> 15#include <qstringlist.h>
14#include <qmap.h> 16#include <qmap.h>
@@ -26,17 +28,17 @@ class AbstractMail;
26 So there is no interface "const QString&body()" but you should 28 So there is no interface "const QString&body()" but you should
27 make a request to the mailwrapper with this class as parameter to 29 make a request to the mailwrapper with this class as parameter to
28 get the body. Same words for the attachments. 30 get the body. Same words for the attachments.
29*/ 31*/
30class RecMail 32class RecMail:public Opie::ORefCount
31{ 33{
32public: 34public:
33 RecMail(); 35 RecMail();
34 RecMail(const RecMail&old); 36 RecMail(const RecMail&old);
35 virtual ~RecMail(); 37 virtual ~RecMail();
36 38
37 const int getNumber()const{return msg_number;} 39 const unsigned int getNumber()const{return msg_number;}
38 void setNumber(int number){msg_number=number;} 40 void setNumber(unsigned int number){msg_number=number;}
39 const QString&getDate()const{ return date; } 41 const QString&getDate()const{ return date; }
40 void setDate( const QString&a ) { date = a; } 42 void setDate( const QString&a ) { date = a; }
41 const QString&getFrom()const{ return from; } 43 const QString&getFrom()const{ return from; }
42 void setFrom( const QString&a ) { from = a; } 44 void setFrom( const QString&a ) { from = a; }
@@ -47,10 +49,10 @@ public:
47 void setMsgid(const QString&id){msg_id=id;} 49 void setMsgid(const QString&id){msg_id=id;}
48 const QString&Msgid()const{return msg_id;} 50 const QString&Msgid()const{return msg_id;}
49 void setReplyto(const QString&reply){replyto=reply;} 51 void setReplyto(const QString&reply){replyto=reply;}
50 const QString&Replyto()const{return replyto;} 52 const QString&Replyto()const{return replyto;}
51 void setMsgsize(int size){msg_size = size;} 53 void setMsgsize(unsigned int size){msg_size = size;}
52 const int Msgsize()const{return msg_size;} 54 const unsigned int Msgsize()const{return msg_size;}
53 55
54 56
55 void setTo(const QStringList&list); 57 void setTo(const QStringList&list);
56 const QStringList&To()const; 58 const QStringList&To()const;
@@ -70,16 +72,17 @@ public:
70 AbstractMail* Wrapper(); 72 AbstractMail* Wrapper();
71 73
72protected: 74protected:
73 QString subject,date,from,mbox,msg_id,replyto; 75 QString subject,date,from,mbox,msg_id,replyto;
74 int msg_number,msg_size; 76 unsigned int msg_number,msg_size;
75 QBitArray msg_flags; 77 QBitArray msg_flags;
76 QStringList to,cc,bcc,in_reply_to,references; 78 QStringList to,cc,bcc,in_reply_to,references;
77 AbstractMail*wrapper; 79 AbstractMail*wrapper;
78 void init(); 80 void init();
79 void copy_old(const RecMail&old); 81 void copy_old(const RecMail&old);
80}; 82};
81 83
84typedef Opie::OSmartPointer<RecMail> RecMailP;
82typedef QMap<QString,QString> part_plist_t; 85typedef QMap<QString,QString> part_plist_t;
83 86
84class RecPart 87class RecPart
85{ 88{
diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.cpp b/noncore/net/mail/libmailwrapper/mailwrapper.cpp
index c71d69f..9bf2fd3 100644
--- a/noncore/net/mail/libmailwrapper/mailwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/mailwrapper.cpp
@@ -154,9 +154,9 @@ QString IMAPFolder::decodeFolderName( const QString &name )
154 return QString::fromUtf8( dst.data() ); 154 return QString::fromUtf8( dst.data() );
155} 155}
156 156
157Mail::Mail() 157Mail::Mail()
158 :Opie::oref_count(),name(""), mail(""), to(""), cc(""), bcc(""), reply(""), subject(""), message("") 158 :Opie::ORefCount(),name(""), mail(""), to(""), cc(""), bcc(""), reply(""), subject(""), message("")
159{ 159{
160} 160}
161 161
162MHFolder::MHFolder(const QString&disp_name,const QString&mbox) 162MHFolder::MHFolder(const QString&disp_name,const QString&mbox)
diff --git a/noncore/net/mail/libmailwrapper/mailwrapper.h b/noncore/net/mail/libmailwrapper/mailwrapper.h
index 3b3bb32..6bf0078 100644
--- a/noncore/net/mail/libmailwrapper/mailwrapper.h
+++ b/noncore/net/mail/libmailwrapper/mailwrapper.h
@@ -7,9 +7,9 @@
7#include <qdatetime.h> 7#include <qdatetime.h>
8 8
9#include "settings.h" 9#include "settings.h"
10 10
11#include <opie2/osmart_pointer.h> 11#include <opie2/osmartpointer.h>
12 12
13class Attachment 13class Attachment
14{ 14{
15public: 15public:
@@ -27,9 +27,9 @@ protected:
27 int size; 27 int size;
28 28
29}; 29};
30 30
31class Mail:public Opie::oref_count 31class Mail:public Opie::ORefCount
32{ 32{
33public: 33public:
34 Mail(); 34 Mail();
35 /* Possible that this destructor must not be declared virtual 35 /* Possible that this destructor must not be declared virtual
@@ -65,9 +65,9 @@ private:
65 QString name, mail, to, cc, bcc, reply, subject, message; 65 QString name, mail, to, cc, bcc, reply, subject, message;
66 QStringList m_in_reply_to; 66 QStringList m_in_reply_to;
67}; 67};
68 68
69class Folder:public Opie::oref_count 69class Folder:public Opie::ORefCount
70{ 70{
71public: 71public:
72 Folder( const QString&init_name,const QString&sep ); 72 Folder( const QString&init_name,const QString&sep );
73 virtual ~Folder(); 73 virtual ~Folder();
@@ -81,9 +81,9 @@ public:
81protected: 81protected:
82 QString nameDisplay, name, separator,prefix; 82 QString nameDisplay, name, separator,prefix;
83}; 83};
84 84
85typedef Opie::osmart_pointer<Folder> FolderP; 85typedef Opie::OSmartPointer<Folder> FolderP;
86 86
87class MHFolder : public Folder 87class MHFolder : public Folder
88{ 88{
89public: 89public:
diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
index 9ff3de2..5e6b714 100644
--- a/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/mboxwrapper.cpp
@@ -18,9 +18,9 @@ MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name)
18MBOXwrapper::~MBOXwrapper() 18MBOXwrapper::~MBOXwrapper()
19{ 19{
20} 20}
21 21
22void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) 22void MBOXwrapper::listMessages(const QString & mailbox, QValueList<RecMailP> &target )
23{ 23{
24 mailstorage*storage = mailstorage_new(NULL); 24 mailstorage*storage = mailstorage_new(NULL);
25 QString p = MBOXPath+"/"; 25 QString p = MBOXPath+"/";
26 p+=mailbox; 26 p+=mailbox;
@@ -43,11 +43,11 @@ void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target )
43 mailstorage_free(storage); 43 mailstorage_free(storage);
44 Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); 44 Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count()));
45} 45}
46 46
47QValueList<Opie::osmart_pointer<Folder> >* MBOXwrapper::listFolders() 47QValueList<Opie::OSmartPointer<Folder> >* MBOXwrapper::listFolders()
48{ 48{
49 QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<Folder> >(); 49 QValueList<Opie::OSmartPointer<Folder> >* folders = new QValueList<Opie::OSmartPointer<Folder> >();
50 QDir dir(MBOXPath); 50 QDir dir(MBOXPath);
51 if (!dir.exists()) return folders; 51 if (!dir.exists()) return folders;
52 dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable); 52 dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable);
53 QStringList entries = dir.entryList(); 53 QStringList entries = dir.entryList();
@@ -58,13 +58,13 @@ QValueList<Opie::osmart_pointer<Folder> >* MBOXwrapper::listFolders()
58 } 58 }
59 return folders; 59 return folders;
60} 60}
61 61
62void MBOXwrapper::deleteMail(const RecMail&mail) 62void MBOXwrapper::deleteMail(const RecMailP & mail)
63{ 63{
64 mailstorage*storage = mailstorage_new(NULL); 64 mailstorage*storage = mailstorage_new(NULL);
65 QString p = MBOXPath+"/"; 65 QString p = MBOXPath+"/";
66 p+=mail.getMbox(); 66 p+=mail->getMbox();
67 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); 67 int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0);
68 mailfolder*folder; 68 mailfolder*folder;
69 folder = mailfolder_new( storage,(char*)p.latin1(),NULL); 69 folder = mailfolder_new( storage,(char*)p.latin1(),NULL);
70 r = mailfolder_connect(folder); 70 r = mailfolder_connect(folder);
@@ -73,26 +73,26 @@ void MBOXwrapper::deleteMail(const RecMail&mail)
73 mailfolder_free(folder); 73 mailfolder_free(folder);
74 mailstorage_free(storage); 74 mailstorage_free(storage);
75 return; 75 return;
76 } 76 }
77 r = mailsession_remove_message(folder->fld_session,mail.getNumber()); 77 r = mailsession_remove_message(folder->fld_session,mail->getNumber());
78 if (r != MAIL_NO_ERROR) { 78 if (r != MAIL_NO_ERROR) {
79 qDebug("error deleting mail"); 79 qDebug("error deleting mail");
80 } 80 }
81 mailfolder_free(folder); 81 mailfolder_free(folder);
82 mailstorage_free(storage); 82 mailstorage_free(storage);
83} 83}
84 84
85void MBOXwrapper::answeredMail(const RecMail&) 85void MBOXwrapper::answeredMail(const RecMailP&)
86{ 86{
87} 87}
88 88
89RecBody MBOXwrapper::fetchBody( const RecMail &mail ) 89RecBody MBOXwrapper::fetchBody( const RecMailP &mail )
90{ 90{
91 RecBody body; 91 RecBody body;
92 mailstorage*storage = mailstorage_new(NULL); 92 mailstorage*storage = mailstorage_new(NULL);
93 QString p = MBOXPath+"/"; 93 QString p = MBOXPath+"/";
94 p+=mail.getMbox(); 94 p+=mail->getMbox();
95 mailmessage * msg; 95 mailmessage * msg;
96 char*data=0; 96 char*data=0;
97 size_t size; 97 size_t size;
98 98
@@ -105,18 +105,18 @@ RecBody MBOXwrapper::fetchBody( const RecMail &mail )
105 mailfolder_free(folder); 105 mailfolder_free(folder);
106 mailstorage_free(storage); 106 mailstorage_free(storage);
107 return body; 107 return body;
108 } 108 }
109 r = mailsession_get_message(folder->fld_session, mail.getNumber(), &msg); 109 r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg);
110 if (r != MAIL_NO_ERROR) { 110 if (r != MAIL_NO_ERROR) {
111 qDebug("Error fetching mail %i",mail.getNumber()); 111 qDebug("Error fetching mail %i",mail->getNumber());
112 mailfolder_free(folder); 112 mailfolder_free(folder);
113 mailstorage_free(storage); 113 mailstorage_free(storage);
114 return body; 114 return body;
115 } 115 }
116 r = mailmessage_fetch(msg,&data,&size); 116 r = mailmessage_fetch(msg,&data,&size);
117 if (r != MAIL_NO_ERROR) { 117 if (r != MAIL_NO_ERROR) {
118 qDebug("Error fetching mail %i",mail.getNumber()); 118 qDebug("Error fetching mail %i",mail->getNumber());
119 mailfolder_free(folder); 119 mailfolder_free(folder);
120 mailstorage_free(storage); 120 mailstorage_free(storage);
121 mailmessage_free(msg); 121 mailmessage_free(msg);
122 return body; 122 return body;
@@ -168,14 +168,14 @@ void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folde
168 } 168 }
169 mailmbox_done(f); 169 mailmbox_done(f);
170} 170}
171 171
172encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail) 172encodedString* MBOXwrapper::fetchRawBody(const RecMailP&mail)
173{ 173{
174 RecBody body; 174 RecBody body;
175 mailstorage*storage = mailstorage_new(NULL); 175 mailstorage*storage = mailstorage_new(NULL);
176 QString p = MBOXPath+"/"; 176 QString p = MBOXPath+"/";
177 p+=mail.getMbox(); 177 p+=mail->getMbox();
178 mailmessage * msg; 178 mailmessage * msg;
179 char*data=0; 179 char*data=0;
180 size_t size; 180 size_t size;
181 181
@@ -188,18 +188,18 @@ encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail)
188 mailfolder_free(folder); 188 mailfolder_free(folder);
189 mailstorage_free(storage); 189 mailstorage_free(storage);
190 return 0; 190 return 0;
191 } 191 }
192 r = mailsession_get_message(folder->fld_session, mail.getNumber(), &msg); 192 r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg);
193 if (r != MAIL_NO_ERROR) { 193 if (r != MAIL_NO_ERROR) {
194 Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); 194 Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber()));
195 mailfolder_free(folder); 195 mailfolder_free(folder);
196 mailstorage_free(storage); 196 mailstorage_free(storage);
197 return 0; 197 return 0;
198 } 198 }
199 r = mailmessage_fetch(msg,&data,&size); 199 r = mailmessage_fetch(msg,&data,&size);
200 if (r != MAIL_NO_ERROR) { 200 if (r != MAIL_NO_ERROR) {
201 Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); 201 Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber()));
202 mailfolder_free(folder); 202 mailfolder_free(folder);
203 mailstorage_free(storage); 203 mailstorage_free(storage);
204 mailmessage_free(msg); 204 mailmessage_free(msg);
205 return 0; 205 return 0;
@@ -211,9 +211,9 @@ encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail)
211 mailmessage_free(msg); 211 mailmessage_free(msg);
212 return result; 212 return result;
213} 213}
214 214
215void MBOXwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) 215void MBOXwrapper::deleteMails(const QString & mailbox,const QValueList<RecMailP> &target)
216{ 216{
217 QString p = MBOXPath+"/"; 217 QString p = MBOXPath+"/";
218 p+=mailbox; 218 p+=mailbox;
219 mailmbox_folder*f = 0; 219 mailmbox_folder*f = 0;
@@ -225,14 +225,15 @@ void MBOXwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target)
225 deleteMails(f,target); 225 deleteMails(f,target);
226 mailmbox_done(f); 226 mailmbox_done(f);
227} 227}
228 228
229void MBOXwrapper::deleteMails(mailmbox_folder*f,QList<RecMail> &target) 229void MBOXwrapper::deleteMails(mailmbox_folder*f,const QValueList<RecMailP> &target)
230{ 230{
231 if (!f) return; 231 if (!f) return;
232 int r; 232 int r;
233 for (unsigned int i=0; i < target.count();++i) { 233 QValueList<RecMailP>::ConstIterator it;
234 r = mailmbox_delete_msg(f,target.at(i)->getNumber()); 234 for (it=target.begin(); it != target.end();++it) {
235 r = mailmbox_delete_msg(f,(*it)->getNumber());
235 if (r!=MAILMBOX_NO_ERROR) { 236 if (r!=MAILMBOX_NO_ERROR) {
236 qDebug("error delete mail"); 237 qDebug("error delete mail");
237 } 238 }
238 } 239 }
diff --git a/noncore/net/mail/libmailwrapper/mboxwrapper.h b/noncore/net/mail/libmailwrapper/mboxwrapper.h
index c3d9b50..33eeb1e 100644
--- a/noncore/net/mail/libmailwrapper/mboxwrapper.h
+++ b/noncore/net/mail/libmailwrapper/mboxwrapper.h
@@ -3,10 +3,8 @@
3 3
4#include "genericwrapper.h" 4#include "genericwrapper.h"
5#include <qstring.h> 5#include <qstring.h>
6 6
7class RecMail;
8class RecBody;
9class encodedString; 7class encodedString;
10struct mailmbox_folder; 8struct mailmbox_folder;
11 9
12class MBOXwrapper : public Genericwrapper 10class MBOXwrapper : public Genericwrapper
@@ -16,32 +14,32 @@ class MBOXwrapper : public Genericwrapper
16public: 14public:
17 MBOXwrapper(const QString & dir,const QString&name); 15 MBOXwrapper(const QString & dir,const QString&name);
18 virtual ~MBOXwrapper(); 16 virtual ~MBOXwrapper();
19 17
20 virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); 18 virtual void listMessages(const QString & mailbox, QValueList<RecMailP>&target );
21 virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); 19 virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders();
22 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 20 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
23 21
24 virtual void deleteMail(const RecMail&mail); 22 virtual void deleteMail(const RecMailP&mail);
25 virtual void answeredMail(const RecMail&mail); 23 virtual void answeredMail(const RecMailP&mail);
26 24
27 virtual int createMbox(const QString&folder,const Opie::osmart_pointer<Folder>&f=0, 25 virtual int createMbox(const QString&folder,const Opie::OSmartPointer<Folder>&f=0,
28 const QString&d="",bool s=false); 26 const QString&d="",bool s=false);
29 virtual int deleteMbox(const Opie::osmart_pointer<Folder>&); 27 virtual int deleteMbox(const Opie::OSmartPointer<Folder>&);
30 28
31 virtual void storeMessage(const char*msg,size_t length, const QString&folder); 29 virtual void storeMessage(const char*msg,size_t length, const QString&folder);
32 30
33 virtual RecBody fetchBody( const RecMail &mail ); 31 virtual RecBody fetchBody( const RecMailP &mail );
34 static void mbox_progress( size_t current, size_t maximum ); 32 static void mbox_progress( size_t current, size_t maximum );
35 33
36 virtual encodedString* fetchRawBody(const RecMail&mail); 34 virtual encodedString* fetchRawBody(const RecMailP&mail);
37 virtual void deleteMails(const QString & FolderName,QList<RecMail> &target); 35 virtual void deleteMails(const QString & FolderName,const QValueList<RecMailP> &target);
38 virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&); 36 virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&);
39 virtual MAILLIB::ATYPE getType()const; 37 virtual MAILLIB::ATYPE getType()const;
40 virtual const QString&getName()const; 38 virtual const QString&getName()const;
41 39
42protected: 40protected:
43 static void deleteMails(mailmbox_folder*f,QList<RecMail> &target); 41 static void deleteMails(mailmbox_folder*f,const QValueList<RecMailP> &target);
44 QString MBOXPath; 42 QString MBOXPath;
45 QString MBOXName; 43 QString MBOXName;
46}; 44};
47 45
diff --git a/noncore/net/mail/libmailwrapper/mhwrapper.cpp b/noncore/net/mail/libmailwrapper/mhwrapper.cpp
index aaaa20a..0b00a2e 100644
--- a/noncore/net/mail/libmailwrapper/mhwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/mhwrapper.cpp
@@ -59,9 +59,9 @@ MHwrapper::~MHwrapper()
59{ 59{
60 clean_storage(); 60 clean_storage();
61} 61}
62 62
63void MHwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) 63void MHwrapper::listMessages(const QString & mailbox, QValueList<Opie::OSmartPointer<RecMail> > &target )
64{ 64{
65 init_storage(); 65 init_storage();
66 if (!m_storage) { 66 if (!m_storage) {
67 return; 67 return;
@@ -75,11 +75,11 @@ void MHwrapper::listMessages(const QString & mailbox, QList<RecMail> &target )
75 parseList(target,m_storage->sto_session,f); 75 parseList(target,m_storage->sto_session,f);
76 Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); 76 Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count()));
77} 77}
78 78
79QValueList<Opie::osmart_pointer<Folder> >* MHwrapper::listFolders() 79QValueList<Opie::OSmartPointer<Folder> >* MHwrapper::listFolders()
80{ 80{
81 QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<Folder> >(); 81 QValueList<Opie::OSmartPointer<Folder> >* folders = new QValueList<Opie::OSmartPointer<Folder> >();
82 /* this is needed! */ 82 /* this is needed! */
83 if (m_storage) mailstorage_disconnect(m_storage); 83 if (m_storage) mailstorage_disconnect(m_storage);
84 init_storage(); 84 init_storage();
85 if (!m_storage) { 85 if (!m_storage) {
@@ -100,48 +100,47 @@ QValueList<Opie::osmart_pointer<Folder> >* MHwrapper::listFolders()
100 mail_list_free(flist); 100 mail_list_free(flist);
101 return folders; 101 return folders;
102} 102}
103 103
104void MHwrapper::deleteMail(const RecMail&mail) 104void MHwrapper::deleteMail(const RecMailP&mail)
105{ 105{
106 init_storage(); 106 init_storage();
107 if (!m_storage) { 107 if (!m_storage) {
108 return; 108 return;
109 } 109 }
110 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); 110 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1());
111 if (r!=MAIL_NO_ERROR) { 111 if (r!=MAIL_NO_ERROR) {
112 qDebug("error selecting folder!"); 112 qDebug("error selecting folder!");
113 return; 113 return;
114 } 114 }
115 r = mailsession_remove_message(m_storage->sto_session,mail.getNumber()); 115 r = mailsession_remove_message(m_storage->sto_session,mail->getNumber());
116 if (r != MAIL_NO_ERROR) { 116 if (r != MAIL_NO_ERROR) {
117 qDebug("error deleting mail"); 117 qDebug("error deleting mail");
118 } 118 }
119} 119}
120 120
121void MHwrapper::answeredMail(const RecMail&) 121void MHwrapper::answeredMail(const RecMailP&)
122{ 122{
123} 123}
124 124
125RecBody MHwrapper::fetchBody( const RecMail &mail ) 125RecBody MHwrapper::fetchBody( const RecMailP &mail )
126{ 126{
127 RecBody body; 127 RecBody body;
128 init_storage(); 128 init_storage();
129 if (!m_storage) { 129 if (!m_storage) {
130 return body; 130 return body;
131 } 131 }
132 mailmessage * msg; 132 mailmessage * msg;
133 char*data=0; 133 char*data=0;
134 size_t size;
135 134
136 /* mail should hold the complete path! */ 135 /* mail should hold the complete path! */
137 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); 136 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1());
138 if (r != MAIL_NO_ERROR) { 137 if (r != MAIL_NO_ERROR) {
139 return body; 138 return body;
140 } 139 }
141 r = mailsession_get_message(m_storage->sto_session, mail.getNumber(), &msg); 140 r = mailsession_get_message(m_storage->sto_session, mail->getNumber(), &msg);
142 if (r != MAIL_NO_ERROR) { 141 if (r != MAIL_NO_ERROR) {
143 qDebug("Error fetching mail %i",mail.getNumber()); 142 qDebug("Error fetching mail %i",mail->getNumber());
144 return body; 143 return body;
145 } 144 }
146 body = parseMail(msg); 145 body = parseMail(msg);
147 mailmessage_fetch_result_free(msg,data); 146 mailmessage_fetch_result_free(msg,data);
@@ -211,9 +210,9 @@ void MHwrapper::storeMessage(const char*msg,size_t length, const QString&Folder)
211 } 210 }
212 return; 211 return;
213} 212}
214 213
215encodedString* MHwrapper::fetchRawBody(const RecMail&mail) 214encodedString* MHwrapper::fetchRawBody(const RecMailP&mail)
216{ 215{
217 encodedString*result = 0; 216 encodedString*result = 0;
218 init_storage(); 217 init_storage();
219 if (!m_storage) { 218 if (!m_storage) {
@@ -221,41 +220,40 @@ encodedString* MHwrapper::fetchRawBody(const RecMail&mail)
221 } 220 }
222 mailmessage * msg = 0; 221 mailmessage * msg = 0;
223 char*data=0; 222 char*data=0;
224 size_t size; 223 size_t size;
225 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); 224 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1());
226 if (r!=MAIL_NO_ERROR) { 225 if (r!=MAIL_NO_ERROR) {
227 qDebug("error selecting folder!"); 226 qDebug("error selecting folder!");
228 return result; 227 return result;
229 } 228 }
230 r = mailsession_get_message(m_storage->sto_session, mail.getNumber(), &msg); 229 r = mailsession_get_message(m_storage->sto_session, mail->getNumber(), &msg);
231 if (r != MAIL_NO_ERROR) { 230 if (r != MAIL_NO_ERROR) {
232 Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); 231 Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber()));
233 return 0; 232 return 0;
234 } 233 }
235 r = mailmessage_fetch(msg,&data,&size); 234 r = mailmessage_fetch(msg,&data,&size);
236 if (r != MAIL_NO_ERROR) { 235 if (r != MAIL_NO_ERROR) {
237 Global::statusMessage(tr("Error fetching mail %i").arg(mail.getNumber())); 236 Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber()));
238 if (msg) mailmessage_free(msg); 237 if (msg) mailmessage_free(msg);
239 return 0; 238 return 0;
240 } 239 }
241 result = new encodedString(data,size); 240 result = new encodedString(data,size);
242 if (msg) mailmessage_free(msg); 241 if (msg) mailmessage_free(msg);
243 return result; 242 return result;
244} 243}
245 244
246void MHwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) 245void MHwrapper::deleteMails(const QString & mailbox,const QValueList<RecMailP> &target)
247{ 246{
248 QString f = buildPath(mailbox); 247 QString f = buildPath(mailbox);
249 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); 248 int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1());
250 if (r!=MAIL_NO_ERROR) { 249 if (r!=MAIL_NO_ERROR) {
251 qDebug("deleteMails: error selecting folder!"); 250 qDebug("deleteMails: error selecting folder!");
252 return; 251 return;
253 } 252 }
254 RecMail*c = 0; 253 QValueList<RecMailP>::ConstIterator it;
255 for (unsigned int i=0; i < target.count();++i) { 254 for (it=target.begin(); it!=target.end();++it) {
256 c = target.at(i); 255 r = mailsession_remove_message(m_storage->sto_session,(*it)->getNumber());
257 r = mailsession_remove_message(m_storage->sto_session,c->getNumber());
258 if (r != MAIL_NO_ERROR) { 256 if (r != MAIL_NO_ERROR) {
259 qDebug("error deleting mail"); 257 qDebug("error deleting mail");
260 break; 258 break;
261 } 259 }
@@ -371,9 +369,9 @@ MAILLIB::ATYPE MHwrapper::getType()const
371const QString&MHwrapper::getName()const 369const QString&MHwrapper::getName()const
372{ 370{
373 return MHName; 371 return MHName;
374} 372}
375void MHwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) 373void MHwrapper::mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit)
376{ 374{
377 init_storage(); 375 init_storage();
378 if (!m_storage) { 376 if (!m_storage) {
379 return; 377 return;
@@ -384,17 +382,17 @@ void MHwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractM
384 return; 382 return;
385 } 383 }
386 qDebug("Using internal routines for move/copy"); 384 qDebug("Using internal routines for move/copy");
387 QString tf = buildPath(targetFolder); 385 QString tf = buildPath(targetFolder);
388 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail.getMbox().latin1()); 386 int r = mailsession_select_folder(m_storage->sto_session,(char*)mail->getMbox().latin1());
389 if (r != MAIL_NO_ERROR) { 387 if (r != MAIL_NO_ERROR) {
390 qDebug("Error selecting source mailbox"); 388 qDebug("Error selecting source mailbox");
391 return; 389 return;
392 } 390 }
393 if (moveit) { 391 if (moveit) {
394 r = mailsession_move_message(m_storage->sto_session,mail.getNumber(),(char*)tf.latin1()); 392 r = mailsession_move_message(m_storage->sto_session,mail->getNumber(),(char*)tf.latin1());
395 } else { 393 } else {
396 r = mailsession_copy_message(m_storage->sto_session,mail.getNumber(),(char*)tf.latin1()); 394 r = mailsession_copy_message(m_storage->sto_session,mail->getNumber(),(char*)tf.latin1());
397 } 395 }
398 if (r != MAIL_NO_ERROR) { 396 if (r != MAIL_NO_ERROR) {
399 qDebug("Error copy/moving mail internal (%i)",r); 397 qDebug("Error copy/moving mail internal (%i)",r);
400 } 398 }
diff --git a/noncore/net/mail/libmailwrapper/mhwrapper.h b/noncore/net/mail/libmailwrapper/mhwrapper.h
index c7c8183..208cf2f 100644
--- a/noncore/net/mail/libmailwrapper/mhwrapper.h
+++ b/noncore/net/mail/libmailwrapper/mhwrapper.h
@@ -5,10 +5,8 @@
5 5
6#include "genericwrapper.h" 6#include "genericwrapper.h"
7#include <qstring.h> 7#include <qstring.h>
8 8
9class RecMail;
10class RecBody;
11class encodedString; 9class encodedString;
12struct mailmbox_folder; 10struct mailmbox_folder;
13class OProcess; 11class OProcess;
14 12
@@ -18,30 +16,30 @@ class MHwrapper : public Genericwrapper
18public: 16public:
19 MHwrapper(const QString & dir,const QString&name); 17 MHwrapper(const QString & dir,const QString&name);
20 virtual ~MHwrapper(); 18 virtual ~MHwrapper();
21 19
22 virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); 20 virtual void listMessages(const QString & mailbox, QValueList<Opie::OSmartPointer<RecMail> > &target );
23 virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); 21 virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders();
24 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 22 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
25 23
26 virtual void deleteMail(const RecMail&mail); 24 virtual void deleteMail(const RecMailP&mail);
27 virtual void answeredMail(const RecMail&mail); 25 virtual void answeredMail(const RecMailP&mail);
28 virtual void mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 26 virtual void mvcpMail(const RecMailP&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
29 virtual void mvcpAllMails(const Opie::osmart_pointer<Folder>&fromFolder, 27 virtual void mvcpAllMails(const Opie::OSmartPointer<Folder>&fromFolder,
30 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit); 28 const QString&targetFolder,AbstractMail*targetWrapper,bool moveit);
31 29
32 virtual int createMbox(const QString&folder,const Opie::osmart_pointer<Folder>&f=0, 30 virtual int createMbox(const QString&folder,const Opie::OSmartPointer<Folder>&f=0,
33 const QString&d="",bool s=false); 31 const QString&d="",bool s=false);
34 virtual int deleteMbox(const Opie::osmart_pointer<Folder>&); 32 virtual int deleteMbox(const Opie::OSmartPointer<Folder>&);
35 33
36 virtual void storeMessage(const char*msg,size_t length, const QString&folder); 34 virtual void storeMessage(const char*msg,size_t length, const QString&folder);
37 35
38 virtual RecBody fetchBody( const RecMail &mail ); 36 virtual RecBody fetchBody( const RecMailP &mail );
39 static void mbox_progress( size_t current, size_t maximum ); 37 static void mbox_progress( size_t current, size_t maximum );
40 38
41 virtual encodedString* fetchRawBody(const RecMail&mail); 39 virtual encodedString* fetchRawBody(const RecMailP&mail);
42 virtual void deleteMails(const QString & FolderName,QList<RecMail> &target); 40 virtual void deleteMails(const QString & FolderName,const QValueList<Opie::OSmartPointer<RecMail> > &target);
43 virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&); 41 virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&);
44 virtual MAILLIB::ATYPE getType()const; 42 virtual MAILLIB::ATYPE getType()const;
45 virtual const QString&getName()const; 43 virtual const QString&getName()const;
46 44
47public slots: 45public slots:
diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
index 2ec052c..c0b3eec 100644
--- a/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/nntpwrapper.cpp
@@ -31,9 +31,9 @@ void NNTPwrapper::nntp_progress( size_t current, size_t maximum ) {
31 qDebug( "NNTP: %i of %i", current, maximum ); 31 qDebug( "NNTP: %i of %i", current, maximum );
32} 32}
33 33
34 34
35RecBody NNTPwrapper::fetchBody( const RecMail &mail ) { 35RecBody NNTPwrapper::fetchBody( const RecMailP &mail ) {
36 int err = NEWSNNTP_NO_ERROR; 36 int err = NEWSNNTP_NO_ERROR;
37 char *message = 0; 37 char *message = 0;
38 size_t length = 0; 38 size_t length = 0;
39 39
@@ -43,24 +43,24 @@ RecBody NNTPwrapper::fetchBody( const RecMail &mail ) {
43 } 43 }
44 44
45 RecBody body; 45 RecBody body;
46 mailmessage * mailmsg; 46 mailmessage * mailmsg;
47 if (mail.Msgsize()>HARD_MSG_SIZE_LIMIT) { 47 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) {
48 qDebug("Message to large: %i",mail.Msgsize()); 48 qDebug("Message to large: %i",mail->Msgsize());
49 return body; 49 return body;
50 } 50 }
51 51
52 QFile msg_cache(msgTempName); 52 QFile msg_cache(msgTempName);
53 53
54 cleanMimeCache(); 54 cleanMimeCache();
55 55
56 if (mail.getNumber()!=last_msg_id) { 56 if (mail->getNumber()!=last_msg_id) {
57 if (msg_cache.exists()) { 57 if (msg_cache.exists()) {
58 msg_cache.remove(); 58 msg_cache.remove();
59 } 59 }
60 msg_cache.open(IO_ReadWrite|IO_Truncate); 60 msg_cache.open(IO_ReadWrite|IO_Truncate);
61 last_msg_id = mail.getNumber(); 61 last_msg_id = mail->getNumber();
62 err = mailsession_get_message(m_nntp->sto_session, mail.getNumber(), &mailmsg); 62 err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg);
63 err = mailmessage_fetch(mailmsg,&message,&length); 63 err = mailmessage_fetch(mailmsg,&message,&length);
64 msg_cache.writeBlock(message,length); 64 msg_cache.writeBlock(message,length);
65 } else { 65 } else {
66 QString msg=""; 66 QString msg="";
@@ -95,9 +95,9 @@ RecBody NNTPwrapper::fetchBody( const RecMail &mail ) {
95 return body; 95 return body;
96} 96}
97 97
98 98
99void NNTPwrapper::listMessages(const QString & which, QList<RecMail> &target ) 99void NNTPwrapper::listMessages(const QString & which, QValueList<Opie::OSmartPointer<RecMail> > &target )
100{ 100{
101 login(); 101 login();
102 if (!m_nntp) 102 if (!m_nntp)
103 return; 103 return;
@@ -187,11 +187,11 @@ void NNTPwrapper::logout()
187 mailstorage_free(m_nntp); 187 mailstorage_free(m_nntp);
188 m_nntp = 0; 188 m_nntp = 0;
189} 189}
190 190
191QValueList<Opie::osmart_pointer<Folder> >* NNTPwrapper::listFolders() { 191QValueList<Opie::OSmartPointer<Folder> >* NNTPwrapper::listFolders() {
192 192
193 QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<Opie::osmart_pointer<Folder> >(); 193 QValueList<Opie::OSmartPointer<Folder> >* folders = new QValueList<Opie::OSmartPointer<Folder> >();
194 QStringList groups; 194 QStringList groups;
195 if (account) { 195 if (account) {
196 groups = account->getGroups(); 196 groups = account->getGroups();
197 } 197 }
@@ -238,9 +238,9 @@ QStringList NNTPwrapper::listAllNewsgroups(const QString&mask) {
238 } 238 }
239 return res; 239 return res;
240} 240}
241 241
242void NNTPwrapper::answeredMail(const RecMail&) {} 242void NNTPwrapper::answeredMail(const RecMailP&) {}
243 243
244void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) { 244void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) {
245 login(); 245 login();
246 target_stat.message_count = 0; 246 target_stat.message_count = 0;
@@ -252,14 +252,14 @@ void NNTPwrapper::statusFolder(folderStat&target_stat,const QString&) {
252 &target_stat.message_recent,&target_stat.message_unseen); 252 &target_stat.message_recent,&target_stat.message_unseen);
253} 253}
254 254
255 255
256encodedString* NNTPwrapper::fetchRawBody(const RecMail&mail) { 256encodedString* NNTPwrapper::fetchRawBody(const RecMailP&mail) {
257 char*target=0; 257 char*target=0;
258 size_t length=0; 258 size_t length=0;
259 encodedString*res = 0; 259 encodedString*res = 0;
260 mailmessage * mailmsg = 0; 260 mailmessage * mailmsg = 0;
261 int err = mailsession_get_message(m_nntp->sto_session, mail.getNumber(), &mailmsg); 261 int err = mailsession_get_message(m_nntp->sto_session, mail->getNumber(), &mailmsg);
262 err = mailmessage_fetch(mailmsg,&target,&length); 262 err = mailmessage_fetch(mailmsg,&target,&length);
263 if (mailmsg) 263 if (mailmsg)
264 mailmessage_free(mailmsg); 264 mailmessage_free(mailmsg);
265 if (target) { 265 if (target) {
@@ -275,9 +275,9 @@ MAILLIB::ATYPE NNTPwrapper::getType()const {
275const QString&NNTPwrapper::getName()const{ 275const QString&NNTPwrapper::getName()const{
276 return account->getAccountName(); 276 return account->getAccountName();
277} 277}
278 278
279void NNTPwrapper::deleteMail(const RecMail&) { 279void NNTPwrapper::deleteMail(const RecMailP&) {
280} 280}
281 281
282int NNTPwrapper::deleteAllMail(const FolderP&) { 282int NNTPwrapper::deleteAllMail(const FolderP&) {
283} 283}
diff --git a/noncore/net/mail/libmailwrapper/nntpwrapper.h b/noncore/net/mail/libmailwrapper/nntpwrapper.h
index d3a384a..a7e4b95 100644
--- a/noncore/net/mail/libmailwrapper/nntpwrapper.h
+++ b/noncore/net/mail/libmailwrapper/nntpwrapper.h
@@ -19,20 +19,20 @@ public:
19 NNTPwrapper( NNTPaccount *a ); 19 NNTPwrapper( NNTPaccount *a );
20 virtual ~NNTPwrapper(); 20 virtual ~NNTPwrapper();
21 21
22 /* mailbox will be ignored */ 22 /* mailbox will be ignored */
23 virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); 23 virtual void listMessages(const QString & mailbox, QValueList<Opie::OSmartPointer<RecMail> > &target );
24 /* should only get the subscribed one */ 24 /* should only get the subscribed one */
25 virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); 25 virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders();
26 /* mailbox will be ignored */ 26 /* mailbox will be ignored */
27 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 27 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
28 QStringList listAllNewsgroups(const QString&mask = QString::null); 28 QStringList listAllNewsgroups(const QString&mask = QString::null);
29 virtual void deleteMail(const RecMail&mail); 29 virtual void deleteMail(const RecMailP&mail);
30 virtual void answeredMail(const RecMail&mail); 30 virtual void answeredMail(const RecMailP&mail);
31 virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&); 31 virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&);
32 32
33 virtual RecBody fetchBody( const RecMail &mail ); 33 virtual RecBody fetchBody( const RecMailP &mail );
34 virtual encodedString* fetchRawBody(const RecMail&mail); 34 virtual encodedString* fetchRawBody(const RecMailP&mail);
35 virtual void logout(); 35 virtual void logout();
36 virtual MAILLIB::ATYPE getType()const; 36 virtual MAILLIB::ATYPE getType()const;
37 virtual const QString&getName()const; 37 virtual const QString&getName()const;
38 static void nntp_progress( size_t current, size_t maximum ); 38 static void nntp_progress( size_t current, size_t maximum );
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
index 7bf7ed2..6737d6c 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.cpp
@@ -29,9 +29,9 @@ POP3wrapper::~POP3wrapper() {
29void POP3wrapper::pop3_progress( size_t current, size_t maximum ) { 29void POP3wrapper::pop3_progress( size_t current, size_t maximum ) {
30 qDebug( "POP3: %i of %i", current, maximum ); 30 qDebug( "POP3: %i of %i", current, maximum );
31} 31}
32 32
33RecBody POP3wrapper::fetchBody( const RecMail &mail ) { 33RecBody POP3wrapper::fetchBody( const RecMailP &mail ) {
34 int err = MAILPOP3_NO_ERROR; 34 int err = MAILPOP3_NO_ERROR;
35 char *message = 0; 35 char *message = 0;
36 size_t length = 0; 36 size_t length = 0;
37 37
@@ -41,24 +41,24 @@ RecBody POP3wrapper::fetchBody( const RecMail &mail ) {
41 } 41 }
42 42
43 RecBody body; 43 RecBody body;
44 mailmessage * mailmsg; 44 mailmessage * mailmsg;
45 if (mail.Msgsize()>HARD_MSG_SIZE_LIMIT) { 45 if (mail->Msgsize()>HARD_MSG_SIZE_LIMIT) {
46 qDebug("Message to large: %i",mail.Msgsize()); 46 qDebug("Message to large: %i",mail->Msgsize());
47 return body; 47 return body;
48 } 48 }
49 49
50 QFile msg_cache(msgTempName); 50 QFile msg_cache(msgTempName);
51 51
52 cleanMimeCache(); 52 cleanMimeCache();
53 53
54 if (mail.getNumber()!=last_msg_id) { 54 if (mail->getNumber()!=last_msg_id) {
55 if (msg_cache.exists()) { 55 if (msg_cache.exists()) {
56 msg_cache.remove(); 56 msg_cache.remove();
57 } 57 }
58 msg_cache.open(IO_ReadWrite|IO_Truncate); 58 msg_cache.open(IO_ReadWrite|IO_Truncate);
59 last_msg_id = mail.getNumber(); 59 last_msg_id = mail->getNumber();
60 err = mailsession_get_message(m_pop3->sto_session, mail.getNumber(), &mailmsg); 60 err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg);
61 err = mailmessage_fetch(mailmsg,&message,&length); 61 err = mailmessage_fetch(mailmsg,&message,&length);
62 msg_cache.writeBlock(message,length); 62 msg_cache.writeBlock(message,length);
63 } else { 63 } else {
64 QString msg=""; 64 QString msg="";
@@ -92,9 +92,9 @@ RecBody POP3wrapper::fetchBody( const RecMail &mail ) {
92 92
93 return body; 93 return body;
94} 94}
95 95
96void POP3wrapper::listMessages(const QString &, QList<RecMail> &target ) 96void POP3wrapper::listMessages(const QString &, QValueList<Opie::OSmartPointer<RecMail> > &target )
97{ 97{
98 login(); 98 login();
99 if (!m_pop3) 99 if (!m_pop3)
100 return; 100 return;
@@ -168,34 +168,33 @@ void POP3wrapper::login()
168} 168}
169 169
170void POP3wrapper::logout() 170void POP3wrapper::logout()
171{ 171{
172 int err = MAILPOP3_NO_ERROR;
173 if ( m_pop3 == NULL ) 172 if ( m_pop3 == NULL )
174 return; 173 return;
175 mailstorage_free(m_pop3); 174 mailstorage_free(m_pop3);
176 m_pop3 = 0; 175 m_pop3 = 0;
177} 176}
178 177
179 178
180QValueList<Opie::osmart_pointer<Folder> >* POP3wrapper::listFolders() { 179QValueList<Opie::OSmartPointer<Folder> >* POP3wrapper::listFolders() {
181 QValueList<Opie::osmart_pointer<Folder> >* folders = new QValueList<FolderP>(); 180 QValueList<Opie::OSmartPointer<Folder> >* folders = new QValueList<FolderP>();
182 FolderP inb=new Folder("INBOX","/"); 181 FolderP inb=new Folder("INBOX","/");
183 folders->append(inb); 182 folders->append(inb);
184 return folders; 183 return folders;
185} 184}
186 185
187void POP3wrapper::deleteMail(const RecMail&mail) { 186void POP3wrapper::deleteMail(const RecMailP&mail) {
188 login(); 187 login();
189 if (!m_pop3) 188 if (!m_pop3)
190 return; 189 return;
191 int err = mailsession_remove_message(m_pop3->sto_session,mail.getNumber()); 190 int err = mailsession_remove_message(m_pop3->sto_session,mail->getNumber());
192 if (err != MAIL_NO_ERROR) { 191 if (err != MAIL_NO_ERROR) {
193 Global::statusMessage(tr("error deleting mail")); 192 Global::statusMessage(tr("error deleting mail"));
194 } 193 }
195} 194}
196 195
197void POP3wrapper::answeredMail(const RecMail&) {} 196void POP3wrapper::answeredMail(const RecMailP&) {}
198 197
199int POP3wrapper::deleteAllMail(const FolderP&) { 198int POP3wrapper::deleteAllMail(const FolderP&) {
200 login(); 199 login();
201 if (!m_pop3) 200 if (!m_pop3)
@@ -227,16 +226,19 @@ void POP3wrapper::statusFolder(folderStat&target_stat,const QString&) {
227 if (!m_pop3) 226 if (!m_pop3)
228 return; 227 return;
229 int r = mailsession_status_folder(m_pop3->sto_session,0,&target_stat.message_count, 228 int r = mailsession_status_folder(m_pop3->sto_session,0,&target_stat.message_count,
230 &target_stat.message_recent,&target_stat.message_unseen); 229 &target_stat.message_recent,&target_stat.message_unseen);
230 if (r != MAIL_NO_ERROR) {
231 qDebug("error getting folter status.");
232 }
231} 233}
232 234
233encodedString* POP3wrapper::fetchRawBody(const RecMail&mail) { 235encodedString* POP3wrapper::fetchRawBody(const RecMailP&mail) {
234 char*target=0; 236 char*target=0;
235 size_t length=0; 237 size_t length=0;
236 encodedString*res = 0; 238 encodedString*res = 0;
237 mailmessage * mailmsg = 0; 239 mailmessage * mailmsg = 0;
238 int err = mailsession_get_message(m_pop3->sto_session, mail.getNumber(), &mailmsg); 240 int err = mailsession_get_message(m_pop3->sto_session, mail->getNumber(), &mailmsg);
239 err = mailmessage_fetch(mailmsg,&target,&length); 241 err = mailmessage_fetch(mailmsg,&target,&length);
240 if (mailmsg) 242 if (mailmsg)
241 mailmessage_free(mailmsg); 243 mailmessage_free(mailmsg);
242 if (target) { 244 if (target) {
diff --git a/noncore/net/mail/libmailwrapper/pop3wrapper.h b/noncore/net/mail/libmailwrapper/pop3wrapper.h
index e4afb94..31eb6f1 100644
--- a/noncore/net/mail/libmailwrapper/pop3wrapper.h
+++ b/noncore/net/mail/libmailwrapper/pop3wrapper.h
@@ -16,19 +16,19 @@ class POP3wrapper : public Genericwrapper
16public: 16public:
17 POP3wrapper( POP3account *a ); 17 POP3wrapper( POP3account *a );
18 virtual ~POP3wrapper(); 18 virtual ~POP3wrapper();
19 /* mailbox will be ignored */ 19 /* mailbox will be ignored */
20 virtual void listMessages(const QString & mailbox, QList<RecMail> &target ); 20 virtual void listMessages(const QString & mailbox, QValueList<Opie::OSmartPointer<RecMail> > &target );
21 virtual QValueList<Opie::osmart_pointer<Folder> >* listFolders(); 21 virtual QValueList<Opie::OSmartPointer<Folder> >* listFolders();
22 /* mailbox will be ignored */ 22 /* mailbox will be ignored */
23 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX"); 23 virtual void statusFolder(folderStat&target_stat,const QString & mailbox="INBOX");
24 24
25 virtual void deleteMail(const RecMail&mail); 25 virtual void deleteMail(const RecMailP&mail);
26 virtual void answeredMail(const RecMail&mail); 26 virtual void answeredMail(const RecMailP&mail);
27 virtual int deleteAllMail(const Opie::osmart_pointer<Folder>&); 27 virtual int deleteAllMail(const Opie::OSmartPointer<Folder>&);
28 28
29 virtual RecBody fetchBody( const RecMail &mail ); 29 virtual RecBody fetchBody( const RecMailP &mail );
30 virtual encodedString* fetchRawBody(const RecMail&mail); 30 virtual encodedString* fetchRawBody(const RecMailP&mail);
31 virtual void logout(); 31 virtual void logout();
32 virtual MAILLIB::ATYPE getType()const; 32 virtual MAILLIB::ATYPE getType()const;
33 virtual const QString&getName()const; 33 virtual const QString&getName()const;
34 static void pop3_progress( size_t current, size_t maximum ); 34 static void pop3_progress( size_t current, size_t maximum );
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
index afc5618..86673aa 100644
--- a/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
+++ b/noncore/net/mail/libmailwrapper/smtpwrapper.cpp
@@ -311,9 +311,9 @@ int SMTPwrapper::smtpSend(char*from,clist*rcpts,const char*data,size_t size )
311 } 311 }
312 return result; 312 return result;
313} 313}
314 314
315void SMTPwrapper::sendMail(const Opie::osmart_pointer<Mail>&mail,bool later ) 315void SMTPwrapper::sendMail(const Opie::OSmartPointer<Mail>&mail,bool later )
316{ 316{
317 mailmime * mimeMail; 317 mailmime * mimeMail;
318 318
319 mimeMail = createMimeMail(mail ); 319 mimeMail = createMimeMail(mail );
@@ -331,17 +331,17 @@ void SMTPwrapper::sendMail(const Opie::osmart_pointer<Mail>&mail,bool later )
331 mailmime_free( mimeMail ); 331 mailmime_free( mimeMail );
332 } 332 }
333} 333}
334 334
335int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,RecMail*which) { 335int SMTPwrapper::sendQueuedMail(AbstractMail*wrap,const RecMailP&which) {
336 size_t curTok = 0; 336 size_t curTok = 0;
337 mailimf_fields *fields = 0; 337 mailimf_fields *fields = 0;
338 mailimf_field*ffrom = 0; 338 mailimf_field*ffrom = 0;
339 clist *rcpts = 0; 339 clist *rcpts = 0;
340 char*from = 0; 340 char*from = 0;
341 int res = 0; 341 int res = 0;
342 342
343 encodedString * data = wrap->fetchRawBody(*which); 343 encodedString * data = wrap->fetchRawBody(which);
344 if (!data) 344 if (!data)
345 return 0; 345 return 0;
346 int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields ); 346 int err = mailimf_fields_parse( data->Content(), data->Length(), &curTok, &fields );
347 if (err != MAILIMF_NO_ERROR) { 347 if (err != MAILIMF_NO_ERROR) {
@@ -390,10 +390,10 @@ bool SMTPwrapper::flushOutbox() {
390 qDebug("memory error"); 390 qDebug("memory error");
391 return false; 391 return false;
392 } 392 }
393 QString oldPw, oldUser; 393 QString oldPw, oldUser;
394 QList<RecMail> mailsToSend; 394 QValueList<RecMailP> mailsToSend;
395 QList<RecMail> mailsToRemove; 395 QValueList<RecMailP> mailsToRemove;
396 QString mbox("Outgoing"); 396 QString mbox("Outgoing");
397 wrap->listMessages(mbox,mailsToSend); 397 wrap->listMessages(mbox,mailsToSend);
398 if (mailsToSend.count()==0) { 398 if (mailsToSend.count()==0) {
399 delete wrap; 399 delete wrap;
@@ -420,22 +420,21 @@ bool SMTPwrapper::flushOutbox() {
420 } 420 }
421 } 421 }
422 422
423 423
424 mailsToSend.setAutoDelete(false);
425 sendProgress = new progressMailSend(); 424 sendProgress = new progressMailSend();
426 sendProgress->show(); 425 sendProgress->show();
427 sendProgress->setMaxMails(mailsToSend.count()); 426 sendProgress->setMaxMails(mailsToSend.count());
428 427
429 while (mailsToSend.count()>0) { 428 while (mailsToSend.count()>0) {
430 if (sendQueuedMail(wrap,mailsToSend.at(0))==0) { 429 if (sendQueuedMail(wrap, (*mailsToSend.begin()))==0) {
431 QMessageBox::critical(0,tr("Error sending mail"), 430 QMessageBox::critical(0,tr("Error sending mail"),
432 tr("Error sending queued mail - breaking")); 431 tr("Error sending queued mail - breaking"));
433 returnValue = false; 432 returnValue = false;
434 break; 433 break;
435 } 434 }
436 mailsToRemove.append(mailsToSend.at(0)); 435 mailsToRemove.append((*mailsToSend.begin()));
437 mailsToSend.removeFirst(); 436 mailsToSend.remove(mailsToSend.begin());
438 sendProgress->setCurrentMails(mailsToRemove.count()); 437 sendProgress->setCurrentMails(mailsToRemove.count());
439 } 438 }
440 if (reset_user_value) { 439 if (reset_user_value) {
441 m_SmtpAccount->setUser(oldUser); 440 m_SmtpAccount->setUser(oldUser);
@@ -449,8 +448,7 @@ bool SMTPwrapper::flushOutbox() {
449 sendProgress->hide(); 448 sendProgress->hide();
450 delete sendProgress; 449 delete sendProgress;
451 sendProgress = 0; 450 sendProgress = 0;
452 wrap->deleteMails(mbox,mailsToRemove); 451 wrap->deleteMails(mbox,mailsToRemove);
453 mailsToSend.setAutoDelete(true);
454 delete wrap; 452 delete wrap;
455 return returnValue; 453 return returnValue;
456} 454}
diff --git a/noncore/net/mail/libmailwrapper/smtpwrapper.h b/noncore/net/mail/libmailwrapper/smtpwrapper.h
index 08bde74..71ae35c 100644
--- a/noncore/net/mail/libmailwrapper/smtpwrapper.h
+++ b/noncore/net/mail/libmailwrapper/smtpwrapper.h
@@ -10,9 +10,9 @@
10 10
11#include "settings.h" 11#include "settings.h"
12#include "generatemail.h" 12#include "generatemail.h"
13 13
14#include <opie2/osmart_pointer.h> 14#include <opie2/osmartpointer.h>
15 15
16class SMTPaccount; 16class SMTPaccount;
17class AbstractMail; 17class AbstractMail;
18 18
@@ -22,9 +22,9 @@ class SMTPwrapper : public Generatemail
22 22
23public: 23public:
24 SMTPwrapper(SMTPaccount * aSmtp); 24 SMTPwrapper(SMTPaccount * aSmtp);
25 virtual ~SMTPwrapper(); 25 virtual ~SMTPwrapper();
26 void sendMail(const Opie::osmart_pointer<Mail>& mail,bool later=false ); 26 void sendMail(const Opie::OSmartPointer<Mail>& mail,bool later=false );
27 bool flushOutbox(); 27 bool flushOutbox();
28 28
29 static progressMailSend*sendProgress; 29 static progressMailSend*sendProgress;
30 30
@@ -49,9 +49,9 @@ protected:
49 int smtpSend(char*from,clist*rcpts,const char*data,size_t size); 49 int smtpSend(char*from,clist*rcpts,const char*data,size_t size);
50 50
51 void storeMail(mailmime*mail, const QString&box); 51 void storeMail(mailmime*mail, const QString&box);
52 52
53 int sendQueuedMail(AbstractMail*wrap,RecMail*which); 53 int sendQueuedMail(AbstractMail*wrap,const Opie::OSmartPointer<RecMail>&which);
54 void storeFailedMail(const char*data,unsigned int size, const char*failuremessage); 54 void storeFailedMail(const char*data,unsigned int size, const char*failuremessage);
55 55
56 int m_queuedMail; 56 int m_queuedMail;
57 57
diff --git a/noncore/net/mail/libmailwrapper/storemail.cpp b/noncore/net/mail/libmailwrapper/storemail.cpp
index 052e0f1..595e7fc 100644
--- a/noncore/net/mail/libmailwrapper/storemail.cpp
+++ b/noncore/net/mail/libmailwrapper/storemail.cpp
@@ -48,9 +48,9 @@ Storemail::Storemail(const QString&aFolder)
48Storemail::~Storemail() 48Storemail::~Storemail()
49{ 49{
50} 50}
51 51
52int Storemail::storeMail(const Opie::osmart_pointer<Mail>&mail) 52int Storemail::storeMail(const Opie::OSmartPointer<Mail>&mail)
53{ 53{
54 if (!wrapper) return 0; 54 if (!wrapper) return 0;
55 int ret = 1; 55 int ret = 1;
56 56
diff --git a/noncore/net/mail/libmailwrapper/storemail.h b/noncore/net/mail/libmailwrapper/storemail.h
index 7d8ea3d..80c7431 100644
--- a/noncore/net/mail/libmailwrapper/storemail.h
+++ b/noncore/net/mail/libmailwrapper/storemail.h
@@ -17,9 +17,9 @@ public:
17 Storemail(const QString&dir,const QString&aFolder); 17 Storemail(const QString&dir,const QString&aFolder);
18 Storemail(const QString&aFolder); 18 Storemail(const QString&aFolder);
19 virtual ~Storemail(); 19 virtual ~Storemail();
20 20
21 int storeMail(const Opie::osmart_pointer<Mail>&mail); 21 int storeMail(const Opie::OSmartPointer<Mail>&mail);
22 22
23protected: 23protected:
24 Account* m_Account; 24 Account* m_Account;
25 QString m_tfolder; 25 QString m_tfolder;