author | alwin <alwin> | 2004-03-12 19:24:38 (UTC) |
---|---|---|
committer | alwin <alwin> | 2004-03-12 19:24:38 (UTC) |
commit | b600871ce93553a116a66fd80acd6dfc1cc46829 (patch) (unidiff) | |
tree | b361346a49e09d9f0220993583bf183cf29bd974 /noncore/net/mail/libmailwrapper/mboxwrapper.cpp | |
parent | 874d5a34eca296263dcd1adf857aebe9981825a1 (diff) | |
download | opie-b600871ce93553a116a66fd80acd6dfc1cc46829.zip opie-b600871ce93553a116a66fd80acd6dfc1cc46829.tar.gz opie-b600871ce93553a116a66fd80acd6dfc1cc46829.tar.bz2 |
some more smart-pointers
some bugfixes
some renaming of internals
Diffstat (limited to 'noncore/net/mail/libmailwrapper/mboxwrapper.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/mboxwrapper.cpp | 43 |
1 files changed, 22 insertions, 21 deletions
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 | |||
@@ -16,13 +16,13 @@ MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) | |||
16 | } | 16 | } |
17 | 17 | ||
18 | MBOXwrapper::~MBOXwrapper() | 18 | MBOXwrapper::~MBOXwrapper() |
19 | { | 19 | { |
20 | } | 20 | } |
21 | 21 | ||
22 | void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) | 22 | void 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; |
27 | 27 | ||
28 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); | 28 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); |
@@ -41,60 +41,60 @@ void MBOXwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) | |||
41 | mailfolder_disconnect(folder); | 41 | mailfolder_disconnect(folder); |
42 | mailfolder_free(folder); | 42 | mailfolder_free(folder); |
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 | ||
47 | QValueList<Opie::osmart_pointer<Folder> >* MBOXwrapper::listFolders() | 47 | QValueList<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(); |
54 | QStringList::ConstIterator it = entries.begin(); | 54 | QStringList::ConstIterator it = entries.begin(); |
55 | for (;it!=entries.end();++it) { | 55 | for (;it!=entries.end();++it) { |
56 | FolderP inb=new Folder(*it,"/"); | 56 | FolderP inb=new Folder(*it,"/"); |
57 | folders->append(inb); | 57 | folders->append(inb); |
58 | } | 58 | } |
59 | return folders; | 59 | return folders; |
60 | } | 60 | } |
61 | 61 | ||
62 | void MBOXwrapper::deleteMail(const RecMail&mail) | 62 | void 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); |
71 | if (r != MAIL_NO_ERROR) { | 71 | if (r != MAIL_NO_ERROR) { |
72 | qDebug("Error initializing mbox"); | 72 | qDebug("Error initializing mbox"); |
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 | ||
85 | void MBOXwrapper::answeredMail(const RecMail&) | 85 | void MBOXwrapper::answeredMail(const RecMailP&) |
86 | { | 86 | { |
87 | } | 87 | } |
88 | 88 | ||
89 | RecBody MBOXwrapper::fetchBody( const RecMail &mail ) | 89 | RecBody 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 | ||
99 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); | 99 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); |
100 | mailfolder*folder; | 100 | mailfolder*folder; |
@@ -103,22 +103,22 @@ RecBody MBOXwrapper::fetchBody( const RecMail &mail ) | |||
103 | if (r != MAIL_NO_ERROR) { | 103 | if (r != MAIL_NO_ERROR) { |
104 | qDebug("Error initializing mbox"); | 104 | qDebug("Error initializing mbox"); |
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; |
123 | } | 123 | } |
124 | body = parseMail(msg); | 124 | body = parseMail(msg); |
@@ -166,18 +166,18 @@ void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folde | |||
166 | if (r != MAIL_NO_ERROR) { | 166 | if (r != MAIL_NO_ERROR) { |
167 | Global::statusMessage(tr("Error writing to message folder")); | 167 | Global::statusMessage(tr("Error writing to message folder")); |
168 | } | 168 | } |
169 | mailmbox_done(f); | 169 | mailmbox_done(f); |
170 | } | 170 | } |
171 | 171 | ||
172 | encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail) | 172 | encodedString* 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 | ||
182 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); | 182 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); |
183 | mailfolder*folder; | 183 | mailfolder*folder; |
@@ -186,22 +186,22 @@ encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail) | |||
186 | if (r != MAIL_NO_ERROR) { | 186 | if (r != MAIL_NO_ERROR) { |
187 | Global::statusMessage(tr("Error initializing mbox")); | 187 | Global::statusMessage(tr("Error initializing mbox")); |
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; |
206 | } | 206 | } |
207 | encodedString*result = new encodedString(data,size); | 207 | encodedString*result = new encodedString(data,size); |
@@ -209,13 +209,13 @@ encodedString* MBOXwrapper::fetchRawBody(const RecMail&mail) | |||
209 | mailfolder_free(folder); | 209 | mailfolder_free(folder); |
210 | mailstorage_free(storage); | 210 | mailstorage_free(storage); |
211 | mailmessage_free(msg); | 211 | mailmessage_free(msg); |
212 | return result; | 212 | return result; |
213 | } | 213 | } |
214 | 214 | ||
215 | void MBOXwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) | 215 | void 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; |
220 | int r = mailmbox_init(p.latin1(),0,1,0,&f); | 220 | int r = mailmbox_init(p.latin1(),0,1,0,&f); |
221 | if (r != MAIL_NO_ERROR) { | 221 | if (r != MAIL_NO_ERROR) { |
@@ -223,18 +223,19 @@ void MBOXwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) | |||
223 | return; | 223 | return; |
224 | } | 224 | } |
225 | deleteMails(f,target); | 225 | deleteMails(f,target); |
226 | mailmbox_done(f); | 226 | mailmbox_done(f); |
227 | } | 227 | } |
228 | 228 | ||
229 | void MBOXwrapper::deleteMails(mailmbox_folder*f,QList<RecMail> &target) | 229 | void 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 | } |
239 | r = mailmbox_expunge(f); | 240 | r = mailmbox_expunge(f); |
240 | if (r != MAILMBOX_NO_ERROR) { | 241 | if (r != MAILMBOX_NO_ERROR) { |