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/mhwrapper.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/mhwrapper.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/mail/libmailwrapper/mhwrapper.cpp | 50 |
1 files changed, 24 insertions, 26 deletions
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 | |||
@@ -51,105 +51,104 @@ void MHwrapper::clean_storage() | |||
51 | if (m_storage) { | 51 | if (m_storage) { |
52 | mailstorage_disconnect(m_storage); | 52 | mailstorage_disconnect(m_storage); |
53 | mailstorage_free(m_storage); | 53 | mailstorage_free(m_storage); |
54 | m_storage = 0; | 54 | m_storage = 0; |
55 | } | 55 | } |
56 | } | 56 | } |
57 | 57 | ||
58 | MHwrapper::~MHwrapper() | 58 | MHwrapper::~MHwrapper() |
59 | { | 59 | { |
60 | clean_storage(); | 60 | clean_storage(); |
61 | } | 61 | } |
62 | 62 | ||
63 | void MHwrapper::listMessages(const QString & mailbox, QList<RecMail> &target ) | 63 | void 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; |
68 | } | 68 | } |
69 | QString f = buildPath(mailbox); | 69 | QString f = buildPath(mailbox); |
70 | int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); | 70 | int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); |
71 | if (r!=MAIL_NO_ERROR) { | 71 | if (r!=MAIL_NO_ERROR) { |
72 | qDebug("listMessages: error selecting folder!"); | 72 | qDebug("listMessages: error selecting folder!"); |
73 | return; | 73 | return; |
74 | } | 74 | } |
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 | ||
79 | QValueList<Opie::osmart_pointer<Folder> >* MHwrapper::listFolders() | 79 | QValueList<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) { |
86 | return folders; | 86 | return folders; |
87 | } | 87 | } |
88 | mail_list*flist = 0; | 88 | mail_list*flist = 0; |
89 | clistcell*current=0; | 89 | clistcell*current=0; |
90 | int r = mailsession_list_folders(m_storage->sto_session,NULL,&flist); | 90 | int r = mailsession_list_folders(m_storage->sto_session,NULL,&flist); |
91 | if (r != MAIL_NO_ERROR || !flist) { | 91 | if (r != MAIL_NO_ERROR || !flist) { |
92 | qDebug("error getting folder list"); | 92 | qDebug("error getting folder list"); |
93 | return folders; | 93 | return folders; |
94 | } | 94 | } |
95 | for (current=clist_begin(flist->mb_list);current!=0;current=clist_next(current)) { | 95 | for (current=clist_begin(flist->mb_list);current!=0;current=clist_next(current)) { |
96 | QString t = (char*)current->data; | 96 | QString t = (char*)current->data; |
97 | t.replace(0,MHPath.length(),""); | 97 | t.replace(0,MHPath.length(),""); |
98 | folders->append(new MHFolder(t,MHPath)); | 98 | folders->append(new MHFolder(t,MHPath)); |
99 | } | 99 | } |
100 | mail_list_free(flist); | 100 | mail_list_free(flist); |
101 | return folders; | 101 | return folders; |
102 | } | 102 | } |
103 | 103 | ||
104 | void MHwrapper::deleteMail(const RecMail&mail) | 104 | void 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 | ||
121 | void MHwrapper::answeredMail(const RecMail&) | 121 | void MHwrapper::answeredMail(const RecMailP&) |
122 | { | 122 | { |
123 | } | 123 | } |
124 | 124 | ||
125 | RecBody MHwrapper::fetchBody( const RecMail &mail ) | 125 | RecBody 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); |
148 | return body; | 147 | return body; |
149 | } | 148 | } |
150 | 149 | ||
151 | void MHwrapper::mbox_progress( size_t current, size_t maximum ) | 150 | void MHwrapper::mbox_progress( size_t current, size_t maximum ) |
152 | { | 151 | { |
153 | qDebug("MH %i von %i",current,maximum); | 152 | qDebug("MH %i von %i",current,maximum); |
154 | } | 153 | } |
155 | 154 | ||
@@ -203,67 +202,66 @@ void MHwrapper::storeMessage(const char*msg,size_t length, const QString&Folder) | |||
203 | int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); | 202 | int r = mailsession_select_folder(m_storage->sto_session,(char*)f.latin1()); |
204 | if (r!=MAIL_NO_ERROR) { | 203 | if (r!=MAIL_NO_ERROR) { |
205 | qDebug("error selecting folder!"); | 204 | qDebug("error selecting folder!"); |
206 | return; | 205 | return; |
207 | } | 206 | } |
208 | r = mailsession_append_message(m_storage->sto_session,(char*)msg,length); | 207 | r = mailsession_append_message(m_storage->sto_session,(char*)msg,length); |
209 | if (r!=MAIL_NO_ERROR) { | 208 | if (r!=MAIL_NO_ERROR) { |
210 | qDebug("error storing mail"); | 209 | qDebug("error storing mail"); |
211 | } | 210 | } |
212 | return; | 211 | return; |
213 | } | 212 | } |
214 | 213 | ||
215 | encodedString* MHwrapper::fetchRawBody(const RecMail&mail) | 214 | encodedString* 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) { |
220 | return result; | 219 | return result; |
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 | ||
246 | void MHwrapper::deleteMails(const QString & mailbox,QList<RecMail> &target) | 245 | void 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 | } |
262 | } | 260 | } |
263 | } | 261 | } |
264 | 262 | ||
265 | int MHwrapper::deleteAllMail(const FolderP&tfolder) | 263 | int MHwrapper::deleteAllMail(const FolderP&tfolder) |
266 | { | 264 | { |
267 | init_storage(); | 265 | init_storage(); |
268 | if (!m_storage) { | 266 | if (!m_storage) { |
269 | return 0; | 267 | return 0; |
@@ -363,46 +361,46 @@ void MHwrapper::statusFolder(folderStat&target_stat,const QString & mailbox) | |||
363 | } | 361 | } |
364 | } | 362 | } |
365 | 363 | ||
366 | MAILLIB::ATYPE MHwrapper::getType()const | 364 | MAILLIB::ATYPE MHwrapper::getType()const |
367 | { | 365 | { |
368 | return MAILLIB::A_MH; | 366 | return MAILLIB::A_MH; |
369 | } | 367 | } |
370 | 368 | ||
371 | const QString&MHwrapper::getName()const | 369 | const QString&MHwrapper::getName()const |
372 | { | 370 | { |
373 | return MHName; | 371 | return MHName; |
374 | } | 372 | } |
375 | void MHwrapper::mvcpMail(const RecMail&mail,const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | 373 | void 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; |
380 | } | 378 | } |
381 | if (targetWrapper != this) { | 379 | if (targetWrapper != this) { |
382 | qDebug("Using generic"); | 380 | qDebug("Using generic"); |
383 | Genericwrapper::mvcpMail(mail,targetFolder,targetWrapper,moveit); | 381 | Genericwrapper::mvcpMail(mail,targetFolder,targetWrapper,moveit); |
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 | } |
401 | } | 399 | } |
402 | 400 | ||
403 | void MHwrapper::mvcpAllMails(const FolderP&fromFolder, | 401 | void MHwrapper::mvcpAllMails(const FolderP&fromFolder, |
404 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) | 402 | const QString&targetFolder,AbstractMail*targetWrapper,bool moveit) |
405 | { | 403 | { |
406 | init_storage(); | 404 | init_storage(); |
407 | if (!m_storage) { | 405 | if (!m_storage) { |
408 | return; | 406 | return; |