Diffstat (limited to 'kmicromail/libmailwrapper/mboxwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | kmicromail/libmailwrapper/mboxwrapper.cpp | 29 |
1 files changed, 15 insertions, 14 deletions
diff --git a/kmicromail/libmailwrapper/mboxwrapper.cpp b/kmicromail/libmailwrapper/mboxwrapper.cpp index 39dd156..0cdbae4 100644 --- a/kmicromail/libmailwrapper/mboxwrapper.cpp +++ b/kmicromail/libmailwrapper/mboxwrapper.cpp | |||
@@ -1,18 +1,19 @@ | |||
1 | #include "mboxwrapper.h" | 1 | #include "mboxwrapper.h" |
2 | #include "mailtypes.h" | 2 | #include "mailtypes.h" |
3 | #include "mailwrapper.h" | 3 | #include "mailwrapper.h" |
4 | #include <libetpan/libetpan.h> | 4 | #include <libetpan/libetpan.h> |
5 | #include <qdir.h> | 5 | #include <qdir.h> |
6 | #include <stdlib.h> | 6 | #include <stdlib.h> |
7 | #include <klocale.h> | ||
7 | 8 | ||
8 | 9 | ||
9 | #include <qpe/global.h> | 10 | #include <qpe/global.h> |
10 | 11 | ||
11 | using namespace Opie::Core; | 12 | using namespace Opie::Core; |
12 | MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) | 13 | MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) |
13 | : Genericwrapper(),MBOXPath(mbox_dir),MBOXName(mbox_name) | 14 | : Genericwrapper(),MBOXPath(mbox_dir),MBOXName(mbox_name) |
14 | { | 15 | { |
15 | QDir dir(MBOXPath); | 16 | QDir dir(MBOXPath); |
16 | if (!dir.exists()) { | 17 | if (!dir.exists()) { |
17 | dir.mkdir(MBOXPath); | 18 | dir.mkdir(MBOXPath); |
18 | } | 19 | } |
@@ -35,25 +36,25 @@ void MBOXwrapper::listMessages(const QString & mailbox, QValueList<RecMailP> &ta | |||
35 | if (r != MAIL_NO_ERROR) { | 36 | if (r != MAIL_NO_ERROR) { |
36 | //odebug << "Error initializing mbox" << oendl; | 37 | //odebug << "Error initializing mbox" << oendl; |
37 | mailfolder_free(folder); | 38 | mailfolder_free(folder); |
38 | mailstorage_free(storage); | 39 | mailstorage_free(storage); |
39 | return; | 40 | return; |
40 | } | 41 | } |
41 | 42 | ||
42 | parseList(target,folder->fld_session,mailbox); | 43 | parseList(target,folder->fld_session,mailbox); |
43 | 44 | ||
44 | mailfolder_disconnect(folder); | 45 | mailfolder_disconnect(folder); |
45 | mailfolder_free(folder); | 46 | mailfolder_free(folder); |
46 | mailstorage_free(storage); | 47 | mailstorage_free(storage); |
47 | Global::statusMessage(tr("Mailbox has %1 mail(s)").arg(target.count())); | 48 | Global::statusMessage(i18n("Mailbox has %1 mail(s)").arg(target.count())); |
48 | } | 49 | } |
49 | 50 | ||
50 | QValueList<Opie::Core::OSmartPointer<Folder> >* MBOXwrapper::listFolders() | 51 | QValueList<Opie::Core::OSmartPointer<Folder> >* MBOXwrapper::listFolders() |
51 | { | 52 | { |
52 | QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >(); | 53 | QValueList<Opie::Core::OSmartPointer<Folder> >* folders = new QValueList<Opie::Core::OSmartPointer<Folder> >(); |
53 | QDir dir(MBOXPath); | 54 | QDir dir(MBOXPath); |
54 | if (!dir.exists()) return folders; | 55 | if (!dir.exists()) return folders; |
55 | dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable); | 56 | dir.setFilter(QDir::Files|QDir::Writable|QDir::Readable); |
56 | QStringList entries = dir.entryList(); | 57 | QStringList entries = dir.entryList(); |
57 | QStringList::ConstIterator it = entries.begin(); | 58 | QStringList::ConstIterator it = entries.begin(); |
58 | for (;it!=entries.end();++it) { | 59 | for (;it!=entries.end();++it) { |
59 | FolderP inb=new Folder(*it,"/"); | 60 | FolderP inb=new Folder(*it,"/"); |
@@ -134,83 +135,83 @@ RecBodyP MBOXwrapper::fetchBody( const RecMailP &mail ) | |||
134 | 135 | ||
135 | void MBOXwrapper::mbox_progress( size_t current, size_t maximum ) | 136 | void MBOXwrapper::mbox_progress( size_t current, size_t maximum ) |
136 | { | 137 | { |
137 | ; // << "MBOX " << current << " von " << maximum << "" << oendl; | 138 | ; // << "MBOX " << current << " von " << maximum << "" << oendl; |
138 | } | 139 | } |
139 | 140 | ||
140 | int MBOXwrapper::createMbox(const QString&folder,const FolderP&,const QString&,bool ) | 141 | int MBOXwrapper::createMbox(const QString&folder,const FolderP&,const QString&,bool ) |
141 | { | 142 | { |
142 | QString p = MBOXPath+"/"; | 143 | QString p = MBOXPath+"/"; |
143 | p+=folder; | 144 | p+=folder; |
144 | QFileInfo fi(p); | 145 | QFileInfo fi(p); |
145 | if (fi.exists()) { | 146 | if (fi.exists()) { |
146 | Global::statusMessage(tr("Mailbox exists.")); | 147 | Global::statusMessage(i18n("Mailbox exists.")); |
147 | return 0; | 148 | return 0; |
148 | } | 149 | } |
149 | mailmbox_folder*f = 0; | 150 | mailmbox_folder*f = 0; |
150 | if (mailmbox_init(p.latin1(),0,1,0,&f) != MAIL_NO_ERROR) { | 151 | if (mailmbox_init(p.latin1(),0,1,0,&f) != MAIL_NO_ERROR) { |
151 | Global::statusMessage(tr("Error init folder")); | 152 | Global::statusMessage(i18n("Error init folder")); |
152 | return 0; | 153 | return 0; |
153 | } | 154 | } |
154 | if (f) mailmbox_done(f); | 155 | if (f) mailmbox_done(f); |
155 | return 1; | 156 | return 1; |
156 | } | 157 | } |
157 | 158 | ||
158 | void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folder) | 159 | void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folder) |
159 | { | 160 | { |
160 | QString p = MBOXPath+"/"; | 161 | QString p = MBOXPath+"/"; |
161 | p+=folder; | 162 | p+=folder; |
162 | mailmbox_folder*f = 0; | 163 | mailmbox_folder*f = 0; |
163 | int r = mailmbox_init(p.latin1(),0,1,0,&f); | 164 | int r = mailmbox_init(p.latin1(),0,1,0,&f); |
164 | if (r != MAIL_NO_ERROR) { | 165 | if (r != MAIL_NO_ERROR) { |
165 | Global::statusMessage(tr("Error init folder")); | 166 | Global::statusMessage(i18n("Error init folder")); |
166 | return; | 167 | return; |
167 | } | 168 | } |
168 | r = mailmbox_append_message(f,msg,length); | 169 | r = mailmbox_append_message(f,msg,length); |
169 | if (r != MAIL_NO_ERROR) { | 170 | if (r != MAIL_NO_ERROR) { |
170 | Global::statusMessage(tr("Error writing to message folder")); | 171 | Global::statusMessage(i18n("Error writing to message folder")); |
171 | } | 172 | } |
172 | mailmbox_done(f); | 173 | mailmbox_done(f); |
173 | } | 174 | } |
174 | 175 | ||
175 | encodedString* MBOXwrapper::fetchRawBody(const RecMailP&mail) | 176 | encodedString* MBOXwrapper::fetchRawBody(const RecMailP&mail) |
176 | { | 177 | { |
177 | RecBody body; | 178 | RecBody body; |
178 | mailstorage*storage = mailstorage_new(NULL); | 179 | mailstorage*storage = mailstorage_new(NULL); |
179 | QString p = MBOXPath+"/"; | 180 | QString p = MBOXPath+"/"; |
180 | p+=mail->getMbox(); | 181 | p+=mail->getMbox(); |
181 | mailmessage * msg; | 182 | mailmessage * msg; |
182 | char*data=0; | 183 | char*data=0; |
183 | size_t size; | 184 | size_t size; |
184 | 185 | ||
185 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); | 186 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); |
186 | mailfolder*folder; | 187 | mailfolder*folder; |
187 | folder = mailfolder_new( storage,(char*)p.latin1(),NULL); | 188 | folder = mailfolder_new( storage,(char*)p.latin1(),NULL); |
188 | r = mailfolder_connect(folder); | 189 | r = mailfolder_connect(folder); |
189 | if (r != MAIL_NO_ERROR) { | 190 | if (r != MAIL_NO_ERROR) { |
190 | Global::statusMessage(tr("Error initializing mbox")); | 191 | Global::statusMessage(i18n("Error initializing mbox")); |
191 | mailfolder_free(folder); | 192 | mailfolder_free(folder); |
192 | mailstorage_free(storage); | 193 | mailstorage_free(storage); |
193 | return 0; | 194 | return 0; |
194 | } | 195 | } |
195 | r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg); | 196 | r = mailsession_get_message(folder->fld_session, mail->getNumber(), &msg); |
196 | if (r != MAIL_NO_ERROR) { | 197 | if (r != MAIL_NO_ERROR) { |
197 | Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber())); | 198 | Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber())); |
198 | mailfolder_free(folder); | 199 | mailfolder_free(folder); |
199 | mailstorage_free(storage); | 200 | mailstorage_free(storage); |
200 | return 0; | 201 | return 0; |
201 | } | 202 | } |
202 | r = mailmessage_fetch(msg,&data,&size); | 203 | r = mailmessage_fetch(msg,&data,&size); |
203 | if (r != MAIL_NO_ERROR) { | 204 | if (r != MAIL_NO_ERROR) { |
204 | Global::statusMessage(tr("Error fetching mail %i").arg(mail->getNumber())); | 205 | Global::statusMessage(i18n("Error fetching mail %i").arg(mail->getNumber())); |
205 | mailfolder_free(folder); | 206 | mailfolder_free(folder); |
206 | mailstorage_free(storage); | 207 | mailstorage_free(storage); |
207 | mailmessage_free(msg); | 208 | mailmessage_free(msg); |
208 | return 0; | 209 | return 0; |
209 | } | 210 | } |
210 | encodedString*result = new encodedString(data,size); | 211 | encodedString*result = new encodedString(data,size); |
211 | 212 | ||
212 | mailfolder_free(folder); | 213 | mailfolder_free(folder); |
213 | mailstorage_free(storage); | 214 | mailstorage_free(storage); |
214 | mailmessage_free(msg); | 215 | mailmessage_free(msg); |
215 | return result; | 216 | return result; |
216 | } | 217 | } |
@@ -248,83 +249,83 @@ void MBOXwrapper::deleteMails(mailmbox_folder*f,const QValueList<RecMailP> &targ | |||
248 | 249 | ||
249 | int MBOXwrapper::deleteAllMail(const FolderP&tfolder) | 250 | int MBOXwrapper::deleteAllMail(const FolderP&tfolder) |
250 | { | 251 | { |
251 | if (!tfolder) return 0; | 252 | if (!tfolder) return 0; |
252 | QString p = MBOXPath+"/"+tfolder->getDisplayName(); | 253 | QString p = MBOXPath+"/"+tfolder->getDisplayName(); |
253 | int res = 1; | 254 | int res = 1; |
254 | 255 | ||
255 | mailfolder*folder = 0; | 256 | mailfolder*folder = 0; |
256 | mailmessage_list*l=0; | 257 | mailmessage_list*l=0; |
257 | mailstorage*storage = mailstorage_new(NULL); | 258 | mailstorage*storage = mailstorage_new(NULL); |
258 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); | 259 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); |
259 | if (r != MAIL_NO_ERROR) { | 260 | if (r != MAIL_NO_ERROR) { |
260 | Global::statusMessage(tr("Error initializing mbox")); | 261 | Global::statusMessage(i18n("Error initializing mbox")); |
261 | res = 0; | 262 | res = 0; |
262 | } | 263 | } |
263 | if (res) { | 264 | if (res) { |
264 | folder = mailfolder_new( storage,(char*)p.latin1(),NULL); | 265 | folder = mailfolder_new( storage,(char*)p.latin1(),NULL); |
265 | r = mailfolder_connect(folder); | 266 | r = mailfolder_connect(folder); |
266 | if (r != MAIL_NO_ERROR) { | 267 | if (r != MAIL_NO_ERROR) { |
267 | Global::statusMessage(tr("Error initializing mbox")); | 268 | Global::statusMessage(i18n("Error initializing mbox")); |
268 | res = 0; | 269 | res = 0; |
269 | } | 270 | } |
270 | } | 271 | } |
271 | if (res) { | 272 | if (res) { |
272 | r = mailsession_get_messages_list(folder->fld_session,&l); | 273 | r = mailsession_get_messages_list(folder->fld_session,&l); |
273 | if (r != MAIL_NO_ERROR) { | 274 | if (r != MAIL_NO_ERROR) { |
274 | ; // << "Error message list" << oendl; | 275 | ; // << "Error message list" << oendl; |
275 | res=0; | 276 | res=0; |
276 | } | 277 | } |
277 | } | 278 | } |
278 | for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) { | 279 | for(unsigned int i = 0 ; l!= 0 && res==1 && i < carray_count(l->msg_tab) ; ++i) { |
279 | r = mailsession_remove_message(folder->fld_session,i+1); | 280 | r = mailsession_remove_message(folder->fld_session,i+1); |
280 | if (r != MAIL_NO_ERROR) { | 281 | if (r != MAIL_NO_ERROR) { |
281 | Global::statusMessage(tr("Error deleting mail %1").arg(i+1)); | 282 | Global::statusMessage(i18n("Error deleting mail %1").arg(i+1)); |
282 | res = 0; | 283 | res = 0; |
283 | break; | 284 | break; |
284 | } | 285 | } |
285 | } | 286 | } |
286 | if (l) mailmessage_list_free(l); | 287 | if (l) mailmessage_list_free(l); |
287 | if (folder) mailfolder_free(folder); | 288 | if (folder) mailfolder_free(folder); |
288 | if (storage) mailstorage_free(storage); | 289 | if (storage) mailstorage_free(storage); |
289 | return res; | 290 | return res; |
290 | } | 291 | } |
291 | 292 | ||
292 | int MBOXwrapper::deleteMbox(const FolderP&tfolder) | 293 | int MBOXwrapper::deleteMbox(const FolderP&tfolder) |
293 | { | 294 | { |
294 | if (!tfolder) return 0; | 295 | if (!tfolder) return 0; |
295 | QString p = MBOXPath+"/"+tfolder->getDisplayName(); | 296 | QString p = MBOXPath+"/"+tfolder->getDisplayName(); |
296 | QFile fi(p); | 297 | QFile fi(p); |
297 | if (!fi.exists()) { | 298 | if (!fi.exists()) { |
298 | Global::statusMessage(tr("Mailbox doesn't exist.")); | 299 | Global::statusMessage(i18n("Mailbox doesn't exist.")); |
299 | return 0; | 300 | return 0; |
300 | } | 301 | } |
301 | if (!fi.remove()) { | 302 | if (!fi.remove()) { |
302 | Global::statusMessage(tr("Error deleting Mailbox.")); | 303 | Global::statusMessage(i18n("Error deleting Mailbox.")); |
303 | return 0; | 304 | return 0; |
304 | } | 305 | } |
305 | return 1; | 306 | return 1; |
306 | } | 307 | } |
307 | 308 | ||
308 | void MBOXwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) | 309 | void MBOXwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) |
309 | { | 310 | { |
310 | mailfolder*folder = 0; | 311 | mailfolder*folder = 0; |
311 | mailstorage*storage = mailstorage_new(NULL); | 312 | mailstorage*storage = mailstorage_new(NULL); |
312 | target_stat.message_count = 0; | 313 | target_stat.message_count = 0; |
313 | target_stat.message_unseen = 0; | 314 | target_stat.message_unseen = 0; |
314 | target_stat.message_recent = 0; | 315 | target_stat.message_recent = 0; |
315 | QString p = MBOXPath+"/"+mailbox; | 316 | QString p = MBOXPath+"/"+mailbox; |
316 | QFile fi(p); | 317 | QFile fi(p); |
317 | if (!fi.exists()) { | 318 | if (!fi.exists()) { |
318 | Global::statusMessage(tr("Mailbox doesn't exist.")); | 319 | Global::statusMessage(i18n("Mailbox doesn't exist.")); |
319 | return; | 320 | return; |
320 | } | 321 | } |
321 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); | 322 | int r = mbox_mailstorage_init(storage,(char*)p.latin1(),0,0,0); |
322 | folder = mailfolder_new( storage,(char*)p.latin1(),NULL); | 323 | folder = mailfolder_new( storage,(char*)p.latin1(),NULL); |
323 | r = mailfolder_connect(folder); | 324 | r = mailfolder_connect(folder); |
324 | r = mailsession_status_folder(folder->fld_session,(char*)mailbox.latin1(),&target_stat.message_count, | 325 | r = mailsession_status_folder(folder->fld_session,(char*)mailbox.latin1(),&target_stat.message_count, |
325 | &target_stat.message_recent,&target_stat.message_unseen); | 326 | &target_stat.message_recent,&target_stat.message_unseen); |
326 | if (folder) mailfolder_free(folder); | 327 | if (folder) mailfolder_free(folder); |
327 | if (storage) mailstorage_free(storage); | 328 | if (storage) mailstorage_free(storage); |
328 | } | 329 | } |
329 | 330 | ||
330 | MAILLIB::ATYPE MBOXwrapper::getType()const | 331 | MAILLIB::ATYPE MBOXwrapper::getType()const |