summaryrefslogtreecommitdiffabout
path: root/kmicromail/libmailwrapper/mboxwrapper.cpp
Unidiff
Diffstat (limited to 'kmicromail/libmailwrapper/mboxwrapper.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/libmailwrapper/mboxwrapper.cpp29
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
11using namespace Opie::Core; 12using namespace Opie::Core;
12MBOXwrapper::MBOXwrapper(const QString & mbox_dir,const QString&mbox_name) 13MBOXwrapper::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
50QValueList<Opie::Core::OSmartPointer<Folder> >* MBOXwrapper::listFolders() 51QValueList<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
135void MBOXwrapper::mbox_progress( size_t current, size_t maximum ) 136void 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
140int MBOXwrapper::createMbox(const QString&folder,const FolderP&,const QString&,bool ) 141int 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
158void MBOXwrapper::storeMessage(const char*msg,size_t length, const QString&folder) 159void 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
175encodedString* MBOXwrapper::fetchRawBody(const RecMailP&mail) 176encodedString* 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
249int MBOXwrapper::deleteAllMail(const FolderP&tfolder) 250int 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
292int MBOXwrapper::deleteMbox(const FolderP&tfolder) 293int 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
308void MBOXwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) 309void 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
330MAILLIB::ATYPE MBOXwrapper::getType()const 331MAILLIB::ATYPE MBOXwrapper::getType()const