summaryrefslogtreecommitdiffabout
path: root/kmicromail/accountitem.cpp
Unidiff
Diffstat (limited to 'kmicromail/accountitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/accountitem.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp
index 567de87..fcb2052 100644
--- a/kmicromail/accountitem.cpp
+++ b/kmicromail/accountitem.cpp
@@ -1,1183 +1,1187 @@
1 1
2#include "accountitem.h" 2#include "accountitem.h"
3#include "accountview.h" 3#include "accountview.h"
4#include "newmaildir.h" 4#include "newmaildir.h"
5#include "nntpgroupsdlg.h" 5#include "nntpgroupsdlg.h"
6#include "defines.h" 6#include "defines.h"
7 7
8#include <libmailwrapper/mailtypes.h> 8#include <libmailwrapper/mailtypes.h>
9#include <libmailwrapper/abstractmail.h> 9#include <libmailwrapper/abstractmail.h>
10#include <libmailwrapper/mailwrapper.h> 10#include <libmailwrapper/mailwrapper.h>
11/* OPIE */ 11/* OPIE */
12//#include <qpe/qpeapplication.h> 12//#include <qpe/qpeapplication.h>
13 13
14/* QT */ 14/* QT */
15#include <qpopupmenu.h> 15#include <qpopupmenu.h>
16#include <qmessagebox.h> 16#include <qmessagebox.h>
17#include <kiconloader.h> 17#include <kiconloader.h>
18#include <klocale.h> 18#include <klocale.h>
19 19
20#define GET_NEW_MAILS 101 20#define GET_NEW_MAILS 101
21 21
22using namespace Opie::Core; 22using namespace Opie::Core;
23#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );} 23#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );}
24/** 24/**
25 * POP3 Account stuff 25 * POP3 Account stuff
26 */ 26 */
27POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) 27POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent )
28 : AccountViewItem( parent ) 28 : AccountViewItem( parent )
29{ 29{
30 account = a; 30 account = a;
31 wrapper = AbstractMail::getWrapper( account ); 31 wrapper = AbstractMail::getWrapper( account );
32 SETPIX(PIXMAP_POP3FOLDER); 32 SETPIX(PIXMAP_POP3FOLDER);
33#if 0 33#if 0
34 if (!account->getOffline()) 34 if (!account->getOffline())
35 { 35 {
36 setPixmap( 0, ); 36 setPixmap( 0, );
37 } 37 }
38 else 38 else
39 { 39 {
40 setPixmap( 0, PIXMAP_OFFLINE ); 40 setPixmap( 0, PIXMAP_OFFLINE );
41 } 41 }
42#endif 42#endif
43 setText( 0, account->getAccountName() ); 43 setText( 0, account->getAccountName() );
44 setOpen( true ); 44 setOpen( true );
45} 45}
46 46
47POP3viewItem::~POP3viewItem() 47POP3viewItem::~POP3viewItem()
48{ 48{
49 delete wrapper; 49 delete wrapper;
50} 50}
51 51
52AbstractMail *POP3viewItem::getWrapper() 52AbstractMail *POP3viewItem::getWrapper()
53{ 53{
54 return wrapper; 54 return wrapper;
55} 55}
56 56
57void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) 57void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & )
58{ 58{
59 refresh(); 59 refresh();
60} 60}
61 61
62void POP3viewItem::refresh() 62void POP3viewItem::refresh()
63{ 63{
64 if (account->getOffline()) return; 64 if (account->getOffline()) return;
65 QValueList<FolderP> *folders = wrapper->listFolders(); 65 QValueList<FolderP> *folders = wrapper->listFolders();
66 QListViewItem *child = firstChild(); 66 QListViewItem *child = firstChild();
67 while ( child ) 67 while ( child )
68 { 68 {
69 QListViewItem *tmp = child; 69 QListViewItem *tmp = child;
70 child = child->nextSibling(); 70 child = child->nextSibling();
71 delete tmp; 71 delete tmp;
72 } 72 }
73 QValueList<FolderP>::ConstIterator it; 73 QValueList<FolderP>::ConstIterator it;
74 QListViewItem*item = 0; 74 QListViewItem*item = 0;
75 for ( it = folders->begin(); it!=folders->end(); ++it) 75 for ( it = folders->begin(); it!=folders->end(); ++it)
76 { 76 {
77 item = new POP3folderItem( (*it), this , item ); 77 item = new POP3folderItem( (*it), this , item );
78 item->setSelectable( (*it)->may_select()); 78 item->setSelectable( (*it)->may_select());
79 } 79 }
80 delete folders; 80 delete folders;
81} 81}
82 82
83RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) 83RECBODYP POP3viewItem::fetchBody( const RecMailP &mail )
84{ 84{
85 85
86 return wrapper->fetchBody( mail ); 86 return wrapper->fetchBody( mail );
87} 87}
88 88
89QPopupMenu * POP3viewItem::getContextMenu() 89QPopupMenu * POP3viewItem::getContextMenu()
90{ 90{
91 QPopupMenu *m = new QPopupMenu(0); 91 QPopupMenu *m = new QPopupMenu(0);
92 if (m) 92 if (m)
93 { 93 {
94 if (!account->getOffline()) 94 if (!account->getOffline())
95 { 95 {
96 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 96 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
97 m->insertItem(i18n("Disconnect"),0); 97 m->insertItem(i18n("Disconnect"),0);
98 m->insertItem(i18n("Set offline"),1); 98 m->insertItem(i18n("Set offline"),1);
99 } 99 }
100 else 100 else
101 { 101 {
102 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 102 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
103 m->insertItem(i18n("Set online"),1); 103 m->insertItem(i18n("Set online"),1);
104 } 104 }
105 } 105 }
106 return m; 106 return m;
107} 107}
108 108
109void POP3viewItem::disconnect() 109void POP3viewItem::disconnect()
110{ 110{
111 QListViewItem *child = firstChild(); 111 QListViewItem *child = firstChild();
112 while ( child ) 112 while ( child )
113 { 113 {
114 QListViewItem *tmp = child; 114 QListViewItem *tmp = child;
115 child = child->nextSibling(); 115 child = child->nextSibling();
116 delete tmp; 116 delete tmp;
117 } 117 }
118 wrapper->logout(); 118 wrapper->logout();
119} 119}
120 120
121void POP3viewItem::setOnOffline() 121void POP3viewItem::setOnOffline()
122{ 122{
123 if (!account->getOffline()) 123 if (!account->getOffline())
124 { 124 {
125 disconnect(); 125 disconnect();
126 } 126 }
127 account->setOffline(!account->getOffline()); 127 account->setOffline(!account->getOffline());
128 account->save(); 128 account->save();
129 SETPIX(PIXMAP_POP3FOLDER); 129 SETPIX(PIXMAP_POP3FOLDER);
130 refresh(); 130 refresh();
131} 131}
132 132
133void POP3viewItem::contextMenuSelected(int which) 133void POP3viewItem::contextMenuSelected(int which)
134{ 134{
135 switch (which) 135 switch (which)
136 { 136 {
137 case 0: 137 case 0:
138 disconnect(); 138 disconnect();
139 break; 139 break;
140 case 1: 140 case 1:
141 setOnOffline(); 141 setOnOffline();
142 break; 142 break;
143 case GET_NEW_MAILS: // daunlood 143 case GET_NEW_MAILS: // daunlood
144 if (account->getOffline()) 144 if (account->getOffline())
145 setOnOffline(); 145 setOnOffline();
146 AccountView*bl = accountView(); 146 AccountView*bl = accountView();
147 if (!bl) return; 147 if (!bl) return;
148 AccountViewItem* in = findSubItem( "inbox" , 0); 148 AccountViewItem* in = findSubItem( "inbox" , 0);
149 if ( ! in ) 149 if ( ! in )
150 return; 150 return;
151 bl->downloadMailsInbox(in->getFolder() ,getWrapper()); 151 bl->downloadMailsInbox(in->getFolder() ,getWrapper());
152 setOnOffline(); 152 setOnOffline();
153 break; 153 break;
154 } 154 }
155} 155}
156 156
157POP3folderItem::~POP3folderItem() 157POP3folderItem::~POP3folderItem()
158{} 158{}
159 159
160POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after ) 160POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after )
161 : AccountViewItem(folderInit,parent,after ) 161 : AccountViewItem(folderInit,parent,after )
162{ 162{
163 pop3 = parent; 163 pop3 = parent;
164 if (folder->getDisplayName().lower()!="inbox") 164 if (folder->getDisplayName().lower()!="inbox")
165 { 165 {
166 setPixmap( 0, PIXMAP_POP3FOLDER ); 166 setPixmap( 0, PIXMAP_POP3FOLDER );
167 } 167 }
168 else 168 else
169 { 169 {
170 setPixmap( 0, PIXMAP_INBOXFOLDER); 170 setPixmap( 0, PIXMAP_INBOXFOLDER);
171 } 171 }
172 setText( 0, folder->getDisplayName() ); 172 setText( 0, folder->getDisplayName() );
173} 173}
174 174
175void POP3folderItem::refresh(QValueList<RecMailP>&target) 175void POP3folderItem::refresh(QValueList<RecMailP>&target)
176{ 176{
177 if (folder->may_select()) 177 if (folder->may_select())
178 pop3->getWrapper()->listMessages( folder->getName(),target ); 178 pop3->getWrapper()->listMessages( folder->getName(),target );
179} 179}
180 180
181RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) 181RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail)
182{ 182{
183 return pop3->getWrapper()->fetchBody(aMail); 183 return pop3->getWrapper()->fetchBody(aMail);
184} 184}
185 185
186QPopupMenu * POP3folderItem::getContextMenu() 186QPopupMenu * POP3folderItem::getContextMenu()
187{ 187{
188 QPopupMenu *m = new QPopupMenu(0); 188 QPopupMenu *m = new QPopupMenu(0);
189 if (m) 189 if (m)
190 { 190 {
191 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 191 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
192 m->insertItem(i18n("Refresh header list"),0); 192 m->insertItem(i18n("Refresh header list"),0);
193 m->insertItem(i18n("Delete all mails"),1); 193 m->insertItem(i18n("Delete all mails"),1);
194 m->insertItem(i18n("Move/Copie all mails"),2); 194 m->insertItem(i18n("Move/Copie all mails"),2);
195 } 195 }
196 return m; 196 return m;
197} 197}
198 198
199void POP3folderItem::downloadMails() 199void POP3folderItem::downloadMails()
200{ 200{
201 AccountView*bl = pop3->accountView(); 201 AccountView*bl = pop3->accountView();
202 if (!bl) return; 202 if (!bl) return;
203 bl->downloadMails(folder,pop3->getWrapper()); 203 bl->downloadMails(folder,pop3->getWrapper());
204} 204}
205 205
206void POP3folderItem::contextMenuSelected(int which) 206void POP3folderItem::contextMenuSelected(int which)
207{ 207{
208 AccountView * view = (AccountView*)listView(); 208 AccountView * view = (AccountView*)listView();
209 switch (which) 209 switch (which)
210 { 210 {
211 case 0: 211 case 0:
212 /* must be 'cause pop3 lists are cached */ 212 /* must be 'cause pop3 lists are cached */
213 pop3->getWrapper()->logout(); 213 pop3->getWrapper()->logout();
214 view->refreshCurrent(); 214 view->refreshCurrent();
215 break; 215 break;
216 case 1: 216 case 1:
217 deleteAllMail(pop3->getWrapper(),folder); 217 deleteAllMail(pop3->getWrapper(),folder);
218 break; 218 break;
219 case 2: 219 case 2:
220 downloadMails(); 220 downloadMails();
221 break; 221 break;
222 case GET_NEW_MAILS: // daunlood 222 case GET_NEW_MAILS: // daunlood
223 view->downloadMailsInbox(getFolder() ,pop3->getWrapper()); 223 view->downloadMailsInbox(getFolder() ,pop3->getWrapper());
224 break; 224 break;
225 default: 225 default:
226 break; 226 break;
227 } 227 }
228} 228}
229 229
230/** 230/**
231 * NNTP Account stuff 231 * NNTP Account stuff
232 */ 232 */
233NNTPviewItem::NNTPviewItem( NNTPaccount *a, AccountView *parent ) 233NNTPviewItem::NNTPviewItem( NNTPaccount *a, AccountView *parent )
234 : AccountViewItem( parent ) 234 : AccountViewItem( parent )
235{ 235{
236 account = a; 236 account = a;
237 wrapper = AbstractMail::getWrapper( account ); 237 wrapper = AbstractMail::getWrapper( account );
238 //FIXME 238 //FIXME
239 SETPIX(PIXMAP_POP3FOLDER); 239 SETPIX(PIXMAP_POP3FOLDER);
240#if 0 240#if 0
241 if (!account->getOffline()) 241 if (!account->getOffline())
242 { 242 {
243 setPixmap( 0, ); 243 setPixmap( 0, );
244 } 244 }
245 else 245 else
246 { 246 {
247 setPixmap( 0, PIXMAP_OFFLINE ); 247 setPixmap( 0, PIXMAP_OFFLINE );
248 } 248 }
249#endif 249#endif
250 setText( 0, account->getAccountName() ); 250 setText( 0, account->getAccountName() );
251 setOpen( true ); 251 setOpen( true );
252} 252}
253 253
254NNTPviewItem::~NNTPviewItem() 254NNTPviewItem::~NNTPviewItem()
255{ 255{
256 delete wrapper; 256 delete wrapper;
257} 257}
258 258
259AbstractMail *NNTPviewItem::getWrapper() 259AbstractMail *NNTPviewItem::getWrapper()
260{ 260{
261 return wrapper; 261 return wrapper;
262} 262}
263 263
264void NNTPviewItem::refresh( QValueList<RecMailP> & ) 264void NNTPviewItem::refresh( QValueList<RecMailP> & )
265{ 265{
266 refresh(); 266 refresh();
267} 267}
268 268
269void NNTPviewItem::refresh() 269void NNTPviewItem::refresh()
270{ 270{
271 if (account->getOffline()) return; 271 if (account->getOffline()) return;
272 QValueList<FolderP> *folders = wrapper->listFolders(); 272 QValueList<FolderP> *folders = wrapper->listFolders();
273 273
274 QListViewItem *child = firstChild(); 274 QListViewItem *child = firstChild();
275 while ( child ) 275 while ( child )
276 { 276 {
277 QListViewItem *tmp = child; 277 QListViewItem *tmp = child;
278 child = child->nextSibling(); 278 child = child->nextSibling();
279 delete tmp; 279 delete tmp;
280 } 280 }
281 QValueList<FolderP>::ConstIterator it; 281 QValueList<FolderP>::ConstIterator it;
282 QListViewItem*item = 0; 282 QListViewItem*item = 0;
283 for ( it = folders->begin(); it!=folders->end(); ++it) 283 for ( it = folders->begin(); it!=folders->end(); ++it)
284 { 284 {
285 item = new NNTPfolderItem( (*it), this , item ); 285 item = new NNTPfolderItem( (*it), this , item );
286 item->setSelectable( (*it)->may_select()); 286 item->setSelectable( (*it)->may_select());
287 } 287 }
288 delete folders; 288 delete folders;
289} 289}
290 290
291RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail ) 291RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail )
292{ 292{
293 293
294 return wrapper->fetchBody( mail ); 294 return wrapper->fetchBody( mail );
295} 295}
296 296
297QPopupMenu * NNTPviewItem::getContextMenu() 297QPopupMenu * NNTPviewItem::getContextMenu()
298{ 298{
299 QPopupMenu *m = new QPopupMenu(0); 299 QPopupMenu *m = new QPopupMenu(0);
300 if (m) 300 if (m)
301 { 301 {
302 if (!account->getOffline()) 302 if (!account->getOffline())
303 { 303 {
304 m->insertItem(i18n("Disconnect"),0); 304 m->insertItem(i18n("Disconnect"),0);
305 m->insertItem(i18n("Set offline"),1); 305 m->insertItem(i18n("Set offline"),1);
306 //m->insertItem(i18n("(Un-)Subscribe groups"),2); 306 //m->insertItem(i18n("(Un-)Subscribe groups"),2);
307 } 307 }
308 else 308 else
309 { 309 {
310 m->insertItem(i18n("Set online"),1); 310 m->insertItem(i18n("Set online"),1);
311 } 311 }
312 } 312 }
313 return m; 313 return m;
314} 314}
315 315
316void NNTPviewItem::subscribeGroups() 316void NNTPviewItem::subscribeGroups()
317{ 317{
318 NNTPGroupsDlg dlg(account); 318 NNTPGroupsDlg dlg(account);
319#ifndef DESKTOP_VERSION
319 dlg.showMaximized(); 320 dlg.showMaximized();
321#endif
320 if ( dlg.exec()== QDialog::Accepted ){ 322 if ( dlg.exec()== QDialog::Accepted ){
321 refresh(); 323 refresh();
322 } 324 }
323} 325}
324 326
325void NNTPviewItem::disconnect() 327void NNTPviewItem::disconnect()
326{ 328{
327 QListViewItem *child = firstChild(); 329 QListViewItem *child = firstChild();
328 while ( child ) 330 while ( child )
329 { 331 {
330 QListViewItem *tmp = child; 332 QListViewItem *tmp = child;
331 child = child->nextSibling(); 333 child = child->nextSibling();
332 delete tmp; 334 delete tmp;
333 } 335 }
334 wrapper->logout(); 336 wrapper->logout();
335} 337}
336 338
337void NNTPviewItem::setOnOffline() 339void NNTPviewItem::setOnOffline()
338{ 340{
339 if (!account->getOffline()) 341 if (!account->getOffline())
340 { 342 {
341 disconnect(); 343 disconnect();
342 } 344 }
343 account->setOffline(!account->getOffline()); 345 account->setOffline(!account->getOffline());
344 account->save(); 346 account->save();
345 //FIXME 347 //FIXME
346 SETPIX(PIXMAP_POP3FOLDER); 348 SETPIX(PIXMAP_POP3FOLDER);
347 refresh(); 349 refresh();
348} 350}
349 351
350void NNTPviewItem::contextMenuSelected(int which) 352void NNTPviewItem::contextMenuSelected(int which)
351{ 353{
352 switch (which) 354 switch (which)
353 { 355 {
354 case 0: 356 case 0:
355 disconnect(); 357 disconnect();
356 break; 358 break;
357 case 1: 359 case 1:
358 setOnOffline(); 360 setOnOffline();
359 break; 361 break;
360 case 2: 362 case 2:
361 subscribeGroups(); 363 subscribeGroups();
362 break; 364 break;
363 } 365 }
364} 366}
365 367
366NNTPfolderItem::~NNTPfolderItem() 368NNTPfolderItem::~NNTPfolderItem()
367{} 369{}
368 370
369NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , QListViewItem*after ) 371NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , QListViewItem*after )
370 : AccountViewItem( folderInit, parent,after ) 372 : AccountViewItem( folderInit, parent,after )
371{ 373{
372 nntp = parent; 374 nntp = parent;
373 if (folder->getDisplayName().lower()!="inbox") 375 if (folder->getDisplayName().lower()!="inbox")
374 { 376 {
375 setPixmap( 0, PIXMAP_POP3FOLDER ); 377 setPixmap( 0, PIXMAP_POP3FOLDER );
376 } 378 }
377 else 379 else
378 { 380 {
379 setPixmap( 0, PIXMAP_INBOXFOLDER); 381 setPixmap( 0, PIXMAP_INBOXFOLDER);
380 } 382 }
381 setText( 0, folder->getDisplayName() ); 383 setText( 0, folder->getDisplayName() );
382} 384}
383 385
384void NNTPfolderItem::refresh(QValueList<RecMailP>&target) 386void NNTPfolderItem::refresh(QValueList<RecMailP>&target)
385{ 387{
386 if (folder->may_select()) 388 if (folder->may_select())
387 nntp->getWrapper()->listMessages( folder->getName(),target ); 389 nntp->getWrapper()->listMessages( folder->getName(),target );
388} 390}
389 391
390RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail) 392RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail)
391{ 393{
392 return nntp->getWrapper()->fetchBody(aMail); 394 return nntp->getWrapper()->fetchBody(aMail);
393} 395}
394 396
395QPopupMenu * NNTPfolderItem::getContextMenu() 397QPopupMenu * NNTPfolderItem::getContextMenu()
396{ 398{
397 QPopupMenu *m = new QPopupMenu(0); 399 QPopupMenu *m = new QPopupMenu(0);
398 if (m) 400 if (m)
399 { 401 {
400 m->insertItem(i18n("Refresh header list"),0); 402 m->insertItem(i18n("Refresh header list"),0);
401 m->insertItem(i18n("Copy all postings"),1); 403 m->insertItem(i18n("Copy all postings"),1);
402 } 404 }
403 return m; 405 return m;
404} 406}
405 407
406void NNTPfolderItem::downloadMails() 408void NNTPfolderItem::downloadMails()
407{ 409{
408 AccountView*bl = nntp->accountView(); 410 AccountView*bl = nntp->accountView();
409 if (!bl) return; 411 if (!bl) return;
410 bl->downloadMails(folder,nntp->getWrapper()); 412 bl->downloadMails(folder,nntp->getWrapper());
411} 413}
412 414
413void NNTPfolderItem::contextMenuSelected(int which) 415void NNTPfolderItem::contextMenuSelected(int which)
414{ 416{
415 AccountView * view = (AccountView*)listView(); 417 AccountView * view = (AccountView*)listView();
416 switch (which) 418 switch (which)
417 { 419 {
418 case 0: 420 case 0:
419 /* must be 'cause pop3 lists are cached */ 421 /* must be 'cause pop3 lists are cached */
420 nntp->getWrapper()->logout(); 422 nntp->getWrapper()->logout();
421 view->refreshCurrent(); 423 view->refreshCurrent();
422 break; 424 break;
423 case 1: 425 case 1:
424 downloadMails(); 426 downloadMails();
425 break; 427 break;
426 default: 428 default:
427 break; 429 break;
428 } 430 }
429} 431}
430 432
431/** 433/**
432 * IMAP Account stuff 434 * IMAP Account stuff
433 */ 435 */
434IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent ) 436IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent )
435 : AccountViewItem( parent ) 437 : AccountViewItem( parent )
436{ 438{
437 account = a; 439 account = a;
438 wrapper = AbstractMail::getWrapper( account ); 440 wrapper = AbstractMail::getWrapper( account );
439 SETPIX(PIXMAP_IMAPFOLDER); 441 SETPIX(PIXMAP_IMAPFOLDER);
440 setText( 0, account->getAccountName() ); 442 setText( 0, account->getAccountName() );
441 setOpen( true ); 443 setOpen( true );
442} 444}
443 445
444IMAPviewItem::~IMAPviewItem() 446IMAPviewItem::~IMAPviewItem()
445{ 447{
446 delete wrapper; 448 delete wrapper;
447} 449}
448 450
449AbstractMail *IMAPviewItem::getWrapper() 451AbstractMail *IMAPviewItem::getWrapper()
450{ 452{
451 return wrapper; 453 return wrapper;
452} 454}
453 455
454void IMAPviewItem::refresh(QValueList<RecMailP>&) 456void IMAPviewItem::refresh(QValueList<RecMailP>&)
455{ 457{
456 refreshFolders(false); 458 refreshFolders(false);
457} 459}
458 460
459const QStringList&IMAPviewItem::subFolders() 461const QStringList&IMAPviewItem::subFolders()
460{ 462{
461 return currentFolders; 463 return currentFolders;
462} 464}
463 465
464void IMAPviewItem::refreshFolders(bool force) 466void IMAPviewItem::refreshFolders(bool force)
465{ 467{
466 if (childCount()>0 && force==false) return; 468 if (childCount()>0 && force==false) return;
467 if (account->getOffline()) return; 469 if (account->getOffline()) return;
468 470
469 removeChilds(); 471 removeChilds();
470 currentFolders.clear(); 472 currentFolders.clear();
471 QValueList<FolderP> * folders = wrapper->listFolders(); 473 QValueList<FolderP> * folders = wrapper->listFolders();
472 474
473 QValueList<FolderP>::Iterator it; 475 QValueList<FolderP>::Iterator it;
474 QListViewItem*item = 0; 476 QListViewItem*item = 0;
475 QListViewItem*titem = 0; 477 QListViewItem*titem = 0;
476 QString fname,del,search; 478 QString fname,del,search;
477 int pos; 479 int pos;
478 480
479 for ( it = folders->begin(); it!=folders->end(); ++it) 481 for ( it = folders->begin(); it!=folders->end(); ++it)
480 { 482 {
481 if ((*it)->getDisplayName().lower()=="inbox") 483 if ((*it)->getDisplayName().lower()=="inbox")
482 { 484 {
483 item = new IMAPfolderItem( (*it), this , item ); 485 item = new IMAPfolderItem( (*it), this , item );
484 folders->remove(it); 486 folders->remove(it);
485 break; 487 break;
486 } 488 }
487 } 489 }
488 for ( it = folders->begin(); it!=folders->end(); ++it) 490 for ( it = folders->begin(); it!=folders->end(); ++it)
489 { 491 {
490 fname = (*it)->getDisplayName(); 492 fname = (*it)->getDisplayName();
491 currentFolders.append((*it)->getName()); 493 currentFolders.append((*it)->getName());
492 pos = fname.findRev((*it)->Separator()); 494 pos = fname.findRev((*it)->Separator());
493 if (pos != -1) 495 if (pos != -1)
494 { 496 {
495 fname = fname.left(pos); 497 fname = fname.left(pos);
496 } 498 }
497 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname); 499 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname);
498 if (pitem) 500 if (pitem)
499 { 501 {
500 titem = item; 502 titem = item;
501 item = new IMAPfolderItem( (*it),pitem,pitem->firstChild(),this); 503 item = new IMAPfolderItem( (*it),pitem,pitem->firstChild(),this);
502 /* setup the short name */ 504 /* setup the short name */
503 item->setText(0,(*it)->getDisplayName().mid(pos+1)); 505 item->setText(0,(*it)->getDisplayName().mid(pos+1));
504 item = titem; 506 item = titem;
505 } 507 }
506 else 508 else
507 { 509 {
508 item = new IMAPfolderItem( (*it), this , item ); 510 item = new IMAPfolderItem( (*it), this , item );
509 } 511 }
510 } 512 }
511 delete folders; 513 delete folders;
512} 514}
513 515
514QPopupMenu * IMAPviewItem::getContextMenu() 516QPopupMenu * IMAPviewItem::getContextMenu()
515{ 517{
516 QPopupMenu *m = new QPopupMenu(0); 518 QPopupMenu *m = new QPopupMenu(0);
517 if (m) 519 if (m)
518 { 520 {
519 if (!account->getOffline()) 521 if (!account->getOffline())
520 { 522 {
521 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 523 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
522 m->insertItem(i18n("Refresh folder list"),0); 524 m->insertItem(i18n("Refresh folder list"),0);
523 m->insertItem(i18n("Create new folder"),1); 525 m->insertItem(i18n("Create new folder"),1);
524 m->insertSeparator(); 526 m->insertSeparator();
525 m->insertItem(i18n("Disconnect"),2); 527 m->insertItem(i18n("Disconnect"),2);
526 m->insertItem(i18n("Set offline"),3); 528 m->insertItem(i18n("Set offline"),3);
527 m->insertSeparator(); 529 m->insertSeparator();
528 } 530 }
529 else 531 else
530 { 532 {
531 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 533 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
532 m->insertItem(i18n("Set online"),3); 534 m->insertItem(i18n("Set online"),3);
533 } 535 }
534 } 536 }
535 return m; 537 return m;
536} 538}
537 539
538void IMAPviewItem::createNewFolder() 540void IMAPviewItem::createNewFolder()
539{ 541{
540 Newmdirdlg ndirdlg; 542 Newmdirdlg ndirdlg;
541 543
542 ndirdlg.showMaximized(); 544#ifndef DESKTOP_VERSION
545 //ndirdlg.showMaximized();
546#endif
543 if ( ndirdlg.exec() ) 547 if ( ndirdlg.exec() )
544 { 548 {
545 QString ndir = ndirdlg.Newdir(); 549 QString ndir = ndirdlg.Newdir();
546 bool makesubs = ndirdlg.subpossible(); 550 bool makesubs = ndirdlg.subpossible();
547 QString delemiter = "/"; 551 QString delemiter = "/";
548 IMAPfolderItem*item = (IMAPfolderItem*)firstChild(); 552 IMAPfolderItem*item = (IMAPfolderItem*)firstChild();
549 if (item) 553 if (item)
550 { 554 {
551 delemiter = item->Delemiter(); 555 delemiter = item->Delemiter();
552 } 556 }
553 if (wrapper->createMbox(ndir,0,delemiter,makesubs)) 557 if (wrapper->createMbox(ndir,0,delemiter,makesubs))
554 { 558 {
555 refreshFolders(true); 559 refreshFolders(true);
556 } 560 }
557 } 561 }
558} 562}
559 563
560void IMAPviewItem::contextMenuSelected(int id) 564void IMAPviewItem::contextMenuSelected(int id)
561{ 565{
562 566
563 switch (id) 567 switch (id)
564 { 568 {
565 case 0: 569 case 0:
566 refreshFolders(true); 570 refreshFolders(true);
567 break; 571 break;
568 case 1: 572 case 1:
569 createNewFolder(); 573 createNewFolder();
570 break; 574 break;
571 case 2: 575 case 2:
572 removeChilds(); 576 removeChilds();
573 wrapper->logout(); 577 wrapper->logout();
574 break; 578 break;
575 case 3: 579 case 3:
576 if (account->getOffline()==false) 580 if (account->getOffline()==false)
577 { 581 {
578 removeChilds(); 582 removeChilds();
579 wrapper->logout(); 583 wrapper->logout();
580 } 584 }
581 account->setOffline(!account->getOffline()); 585 account->setOffline(!account->getOffline());
582 account->save(); 586 account->save();
583 SETPIX(PIXMAP_IMAPFOLDER); 587 SETPIX(PIXMAP_IMAPFOLDER);
584 refreshFolders(false); 588 refreshFolders(false);
585 break; 589 break;
586 case GET_NEW_MAILS: // daunlood 590 case GET_NEW_MAILS: // daunlood
587 { 591 {
588 if (account->getOffline()) { 592 if (account->getOffline()) {
589 contextMenuSelected( 3 ); 593 contextMenuSelected( 3 );
590 } 594 }
591 AccountView*bl = accountView(); 595 AccountView*bl = accountView();
592 if (!bl) return; 596 if (!bl) return;
593 AccountViewItem* in = findSubItem( "inbox" , 0); 597 AccountViewItem* in = findSubItem( "inbox" , 0);
594 if ( ! in ) 598 if ( ! in )
595 return; 599 return;
596 bl->downloadMailsInbox(in->getFolder(),getWrapper()); 600 bl->downloadMailsInbox(in->getFolder(),getWrapper());
597 } 601 }
598 break; 602 break;
599 default: 603 default:
600 break; 604 break;
601 } 605 }
602} 606}
603 607
604RECBODYP IMAPviewItem::fetchBody(const RecMailP&) 608RECBODYP IMAPviewItem::fetchBody(const RecMailP&)
605{ 609{
606 return new RecBody(); 610 return new RecBody();
607} 611}
608 612
609bool IMAPviewItem::offline() 613bool IMAPviewItem::offline()
610{ 614{
611 return account->getOffline(); 615 return account->getOffline();
612} 616}
613 617
614IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , QListViewItem*after ) 618IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , QListViewItem*after )
615 : AccountViewItem( folderInit, parent , after ) 619 : AccountViewItem( folderInit, parent , after )
616{ 620{
617 imap = parent; 621 imap = parent;
618 if (folder->getDisplayName().lower()!="inbox") 622 if (folder->getDisplayName().lower()!="inbox")
619 { 623 {
620 setPixmap( 0, PIXMAP_IMAPFOLDER ); 624 setPixmap( 0, PIXMAP_IMAPFOLDER );
621 } 625 }
622 else 626 else
623 { 627 {
624 setPixmap( 0, PIXMAP_INBOXFOLDER); 628 setPixmap( 0, PIXMAP_INBOXFOLDER);
625 } 629 }
626 setText( 0, folder->getDisplayName() ); 630 setText( 0, folder->getDisplayName() );
627} 631}
628 632
629IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ) 633IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master )
630 : AccountViewItem(folderInit, parent,after ) 634 : AccountViewItem(folderInit, parent,after )
631{ 635{
632 imap = master; 636 imap = master;
633 if (folder->getDisplayName().lower()!="inbox") 637 if (folder->getDisplayName().lower()!="inbox")
634 { 638 {
635 setPixmap( 0, PIXMAP_IMAPFOLDER ); 639 setPixmap( 0, PIXMAP_IMAPFOLDER );
636 } 640 }
637 else 641 else
638 { 642 {
639 setPixmap( 0, PIXMAP_INBOXFOLDER); 643 setPixmap( 0, PIXMAP_INBOXFOLDER);
640 } 644 }
641 setText( 0, folder->getDisplayName() ); 645 setText( 0, folder->getDisplayName() );
642} 646}
643 647
644IMAPfolderItem::~IMAPfolderItem() 648IMAPfolderItem::~IMAPfolderItem()
645{} 649{}
646 650
647const QString& IMAPfolderItem::Delemiter()const 651const QString& IMAPfolderItem::Delemiter()const
648{ 652{
649 return folder->Separator(); 653 return folder->Separator();
650} 654}
651 655
652void IMAPfolderItem::refresh(QValueList<RecMailP>&target) 656void IMAPfolderItem::refresh(QValueList<RecMailP>&target)
653{ 657{
654 if (folder->may_select()) 658 if (folder->may_select())
655 { 659 {
656 imap->getWrapper()->listMessages( folder->getName(),target ); 660 imap->getWrapper()->listMessages( folder->getName(),target );
657 } 661 }
658 else 662 else
659 { 663 {
660 target.clear(); 664 target.clear();
661 } 665 }
662} 666}
663 667
664RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail) 668RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail)
665{ 669{
666 return imap->getWrapper()->fetchBody(aMail); 670 return imap->getWrapper()->fetchBody(aMail);
667} 671}
668 672
669QPopupMenu * IMAPfolderItem::getContextMenu() 673QPopupMenu * IMAPfolderItem::getContextMenu()
670{ 674{
671 QPopupMenu *m = new QPopupMenu(0); 675 QPopupMenu *m = new QPopupMenu(0);
672 if (m) 676 if (m)
673 { 677 {
674 if (folder->may_select()) 678 if (folder->may_select())
675 { 679 {
676 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS); 680 m->insertItem(i18n("Get new messages"),GET_NEW_MAILS);
677 m->insertItem(i18n("Refresh header list"),0); 681 m->insertItem(i18n("Refresh header list"),0);
678 m->insertItem(i18n("Move/Copie all mails"),4); 682 m->insertItem(i18n("Move/Copie all mails"),4);
679 m->insertItem(i18n("Delete all mails"),1); 683 m->insertItem(i18n("Delete all mails"),1);
680 } 684 }
681 if (folder->no_inferior()==false) 685 if (folder->no_inferior()==false)
682 { 686 {
683 m->insertItem(i18n("Create new subfolder"),2); 687 m->insertItem(i18n("Create new subfolder"),2);
684 } 688 }
685 if (folder->getDisplayName().lower()!="inbox") 689 if (folder->getDisplayName().lower()!="inbox")
686 { 690 {
687 m->insertItem(i18n("Delete folder"),3); 691 m->insertItem(i18n("Delete folder"),3);
688 } 692 }
689 } 693 }
690 return m; 694 return m;
691} 695}
692 696
693void IMAPfolderItem::createNewFolder() 697void IMAPfolderItem::createNewFolder()
694{ 698{
695 Newmdirdlg ndirdlg; 699 Newmdirdlg ndirdlg;
696 ndirdlg.showMaximized(); 700 //ndirdlg.showMaximized();
697 if ( ndirdlg.exec() ) 701 if ( ndirdlg.exec() )
698 { 702 {
699 QString ndir = ndirdlg.Newdir(); 703 QString ndir = ndirdlg.Newdir();
700 bool makesubs = ndirdlg.subpossible(); 704 bool makesubs = ndirdlg.subpossible();
701 QString delemiter = Delemiter(); 705 QString delemiter = Delemiter();
702 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs)) 706 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs))
703 { 707 {
704 imap->refreshFolders(true); 708 imap->refreshFolders(true);
705 } 709 }
706 } 710 }
707} 711}
708 712
709void IMAPfolderItem::deleteFolder() 713void IMAPfolderItem::deleteFolder()
710{ 714{
711 int yesno = QMessageBox::warning(0,i18n("Delete folder"), 715 int yesno = QMessageBox::warning(0,i18n("Delete folder"),
712 i18n("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>").arg(folder->getDisplayName()), 716 i18n("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>").arg(folder->getDisplayName()),
713 i18n("Yes"), 717 i18n("Yes"),
714 i18n("No"),QString::null,1,1); 718 i18n("No"),QString::null,1,1);
715 719
716 if (yesno == 0) 720 if (yesno == 0)
717 { 721 {
718 if (imap->getWrapper()->deleteMbox(folder)) 722 if (imap->getWrapper()->deleteMbox(folder))
719 { 723 {
720 QListView*v=listView(); 724 QListView*v=listView();
721 IMAPviewItem * box = imap; 725 IMAPviewItem * box = imap;
722 /* be carefull - after that this object is destroyd so don't use 726 /* be carefull - after that this object is destroyd so don't use
723 * any member of it after that call!!*/ 727 * any member of it after that call!!*/
724 imap->refreshFolders(true); 728 imap->refreshFolders(true);
725 if (v) 729 if (v)
726 { 730 {
727 v->setSelected(box,true); 731 v->setSelected(box,true);
728 } 732 }
729 } 733 }
730 } 734 }
731} 735}
732 736
733void IMAPfolderItem::downloadMails() 737void IMAPfolderItem::downloadMails()
734{ 738{
735 AccountView*bl = imap->accountView(); 739 AccountView*bl = imap->accountView();
736 if (!bl) return; 740 if (!bl) return;
737 bl->downloadMails(folder,imap->getWrapper()); 741 bl->downloadMails(folder,imap->getWrapper());
738} 742}
739 743
740void IMAPfolderItem::contextMenuSelected(int id) 744void IMAPfolderItem::contextMenuSelected(int id)
741{ 745{
742 746
743 AccountView * view = (AccountView*)listView(); 747 AccountView * view = (AccountView*)listView();
744 switch(id) 748 switch(id)
745 { 749 {
746 case 0: 750 case 0:
747 view->refreshCurrent(); 751 view->refreshCurrent();
748 break; 752 break;
749 case 1: 753 case 1:
750 deleteAllMail(imap->getWrapper(),folder); 754 deleteAllMail(imap->getWrapper(),folder);
751 break; 755 break;
752 case 2: 756 case 2:
753 createNewFolder(); 757 createNewFolder();
754 break; 758 break;
755 case 3: 759 case 3:
756 deleteFolder(); 760 deleteFolder();
757 break; 761 break;
758 case 4: 762 case 4:
759 downloadMails(); 763 downloadMails();
760 break; 764 break;
761 case GET_NEW_MAILS: // daunlood 765 case GET_NEW_MAILS: // daunlood
762 { 766 {
763 if (!view) return; 767 if (!view) return;
764 view->downloadMailsInbox(getFolder(),imap->getWrapper()); 768 view->downloadMailsInbox(getFolder(),imap->getWrapper());
765 } 769 }
766 break; 770 break;
767 default: 771 default:
768 break; 772 break;
769 } 773 }
770} 774}
771 775
772/** 776/**
773 * MH Account stuff 777 * MH Account stuff
774 */ 778 */
775/* MH is a little bit different - the top folder can contains messages other than in IMAP and 779/* MH is a little bit different - the top folder can contains messages other than in IMAP and
776 POP3 and MBOX */ 780 POP3 and MBOX */
777MHviewItem::MHviewItem( const QString&aPath, AccountView *parent ) 781MHviewItem::MHviewItem( const QString&aPath, AccountView *parent )
778 : AccountViewItem( parent ) 782 : AccountViewItem( parent )
779{ 783{
780 m_Path = aPath; 784 m_Path = aPath;
781 /* be carefull - the space within settext is wanted - thats why the string twice */ 785 /* be carefull - the space within settext is wanted - thats why the string twice */
782 wrapper = AbstractMail::getWrapper( m_Path,"Local Folders"); 786 wrapper = AbstractMail::getWrapper( m_Path,"Local Folders");
783 setPixmap( 0, PIXMAP_LOCALFOLDER ); 787 setPixmap( 0, PIXMAP_LOCALFOLDER );
784 setText( 0, " Local Folders" ); 788 setText( 0, " Local Folders" );
785 setOpen( true ); 789 setOpen( true );
786 folder = 0; 790 folder = 0;
787} 791}
788 792
789MHviewItem::~MHviewItem() 793MHviewItem::~MHviewItem()
790{ 794{
791 delete wrapper; 795 delete wrapper;
792} 796}
793 797
794AbstractMail *MHviewItem::getWrapper() 798AbstractMail *MHviewItem::getWrapper()
795{ 799{
796 return wrapper; 800 return wrapper;
797} 801}
798 802
799void MHviewItem::refresh( QValueList<RecMailP> & target) 803void MHviewItem::refresh( QValueList<RecMailP> & target)
800{ 804{
801 refresh(false); 805 refresh(false);
802 getWrapper()->listMessages( "",target ); 806 getWrapper()->listMessages( "",target );
803} 807}
804 808
805void MHviewItem::refresh(bool force) 809void MHviewItem::refresh(bool force)
806{ 810{
807 if (childCount()>0 && force==false) return; 811 if (childCount()>0 && force==false) return;
808 removeChilds(); 812 removeChilds();
809 currentFolders.clear(); 813 currentFolders.clear();
810 QValueList<FolderP> *folders = wrapper->listFolders(); 814 QValueList<FolderP> *folders = wrapper->listFolders();
811 QValueList<FolderP>::ConstIterator it; 815 QValueList<FolderP>::ConstIterator it;
812 MHfolderItem*item = 0; 816 MHfolderItem*item = 0;
813 MHfolderItem*pmaster = 0; 817 MHfolderItem*pmaster = 0;
814 QString fname = ""; 818 QString fname = "";
815 int pos; 819 int pos;
816 for ( it = folders->begin(); it!=folders->end(); ++it) 820 for ( it = folders->begin(); it!=folders->end(); ++it)
817 { 821 {
818 fname = (*it)->getDisplayName(); 822 fname = (*it)->getDisplayName();
819 /* this folder itself */ 823 /* this folder itself */
820 if (fname=="/") 824 if (fname=="/")
821 { 825 {
822 currentFolders.append(fname); 826 currentFolders.append(fname);
823 folder = (*it); 827 folder = (*it);
824 continue; 828 continue;
825 } 829 }
826 currentFolders.append(fname); 830 currentFolders.append(fname);
827 pos = fname.findRev("/"); 831 pos = fname.findRev("/");
828 if (pos > 0) 832 if (pos > 0)
829 { 833 {
830 fname = fname.left(pos); 834 fname = fname.left(pos);
831 pmaster = (MHfolderItem*)findSubItem(fname); 835 pmaster = (MHfolderItem*)findSubItem(fname);
832 } 836 }
833 else 837 else
834 { 838 {
835 pmaster = 0; 839 pmaster = 0;
836 } 840 }
837 if (pmaster) 841 if (pmaster)
838 { 842 {
839 item = new MHfolderItem( (*it), pmaster, item, this ); 843 item = new MHfolderItem( (*it), pmaster, item, this );
840 } 844 }
841 else 845 else
842 { 846 {
843 item = new MHfolderItem( (*it), this , item ); 847 item = new MHfolderItem( (*it), this , item );
844 } 848 }
845 item->setSelectable((*it)->may_select()); 849 item->setSelectable((*it)->may_select());
846 } 850 }
847 delete folders; 851 delete folders;
848} 852}
849 853
850RECBODYP MHviewItem::fetchBody( const RecMailP &mail ) 854RECBODYP MHviewItem::fetchBody( const RecMailP &mail )
851{ 855{
852 856
853 return wrapper->fetchBody( mail ); 857 return wrapper->fetchBody( mail );
854} 858}
855 859
856QPopupMenu * MHviewItem::getContextMenu() 860QPopupMenu * MHviewItem::getContextMenu()
857{ 861{
858 QPopupMenu *m = new QPopupMenu(0); 862 QPopupMenu *m = new QPopupMenu(0);
859 if (m) 863 if (m)
860 { 864 {
861 m->insertItem(i18n("Refresh folder list"),0); 865 m->insertItem(i18n("Refresh folder list"),0);
862 m->insertItem(i18n("Create new folder"),1); 866 m->insertItem(i18n("Create new folder"),1);
863 m->insertItem(i18n("Delete all mails"),2); 867 m->insertItem(i18n("Delete all mails"),2);
864 m->insertItem(i18n("Move/Copie all mails"),3); 868 m->insertItem(i18n("Move/Copie all mails"),3);
865 } 869 }
866 return m; 870 return m;
867} 871}
868 872
869void MHviewItem::createFolder() 873void MHviewItem::createFolder()
870{ 874{
871 Newmdirdlg ndirdlg(0,0,true); 875 Newmdirdlg ndirdlg(0,0,true);
872 ndirdlg.showMaximized(); 876 //ndirdlg.showMaximized();
873 if ( ndirdlg.exec() ) 877 if ( ndirdlg.exec() )
874 { 878 {
875 QString ndir = ndirdlg.Newdir(); 879 QString ndir = ndirdlg.Newdir();
876 if (wrapper->createMbox(ndir)) 880 if (wrapper->createMbox(ndir))
877 { 881 {
878 refresh(true); 882 refresh(true);
879 } 883 }
880 } 884 }
881} 885}
882 886
883void MHviewItem::downloadMails() 887void MHviewItem::downloadMails()
884{ 888{
885 AccountView*bl = accountView(); 889 AccountView*bl = accountView();
886 if (!bl) return; 890 if (!bl) return;
887 bl->downloadMails(folder,getWrapper()); 891 bl->downloadMails(folder,getWrapper());
888} 892}
889 893
890QStringList MHviewItem::subFolders() 894QStringList MHviewItem::subFolders()
891{ 895{
892 return currentFolders; 896 return currentFolders;
893} 897}
894 898
895void MHviewItem::contextMenuSelected(int which) 899void MHviewItem::contextMenuSelected(int which)
896{ 900{
897 switch (which) 901 switch (which)
898 { 902 {
899 case 0: 903 case 0:
900 refresh(true); 904 refresh(true);
901 break; 905 break;
902 case 1: 906 case 1:
903 createFolder(); 907 createFolder();
904 break; 908 break;
905 case 2: 909 case 2:
906 deleteAllMail(getWrapper(),folder); 910 deleteAllMail(getWrapper(),folder);
907 break; 911 break;
908 case 3: 912 case 3:
909 downloadMails(); 913 downloadMails();
910 break; 914 break;
911 default: 915 default:
912 break; 916 break;
913 } 917 }
914} 918}
915 919
916MHfolderItem::~MHfolderItem() 920MHfolderItem::~MHfolderItem()
917{} 921{}
918 922
919MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , QListViewItem*after ) 923MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , QListViewItem*after )
920 : AccountViewItem(folderInit, parent,after ) 924 : AccountViewItem(folderInit, parent,after )
921{ 925{
922 mbox = parent; 926 mbox = parent;
923 initName(); 927 initName();
924} 928}
925 929
926MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master) 930MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master)
927 : AccountViewItem(folderInit, parent,after ) 931 : AccountViewItem(folderInit, parent,after )
928{ 932{
929 folder = folderInit; 933 folder = folderInit;
930 mbox = master; 934 mbox = master;
931 initName(); 935 initName();
932} 936}
933 937
934void MHfolderItem::initName() 938void MHfolderItem::initName()
935{ 939{
936 QString bName = folder->getDisplayName(); 940 QString bName = folder->getDisplayName();
937 if (bName.startsWith("/")&&bName.length()>1) 941 if (bName.startsWith("/")&&bName.length()>1)
938 { 942 {
939 bName.replace(0,1,""); 943 bName.replace(0,1,"");
940 } 944 }
941 int pos = bName.findRev("/"); 945 int pos = bName.findRev("/");
942 if (pos > 0) 946 if (pos > 0)
943 { 947 {
944 bName.replace(0,pos+1,""); 948 bName.replace(0,pos+1,"");
945 } 949 }
946 if (bName.lower() == "outgoing") 950 if (bName.lower() == "outgoing")
947 { 951 {
948 setPixmap( 0, PIXMAP_OUTBOXFOLDER ); 952 setPixmap( 0, PIXMAP_OUTBOXFOLDER );
949 } 953 }
950 else if (bName.lower() == "inbox") 954 else if (bName.lower() == "inbox")
951 { 955 {
952 setPixmap( 0, PIXMAP_INBOXFOLDER); 956 setPixmap( 0, PIXMAP_INBOXFOLDER);
953 } else if (bName.lower() == "drafts") { 957 } else if (bName.lower() == "drafts") {
954 setPixmap(0, SmallIcon ("edit")); 958 setPixmap(0, SmallIcon ("edit"));
955 } else { 959 } else {
956 setPixmap( 0, PIXMAP_MBOXFOLDER ); 960 setPixmap( 0, PIXMAP_MBOXFOLDER );
957 } 961 }
958 setText( 0, bName ); 962 setText( 0, bName );
959} 963}
960 964
961const FolderP&MHfolderItem::getFolder()const 965const FolderP&MHfolderItem::getFolder()const
962{ 966{
963 return folder; 967 return folder;
964} 968}
965 969
966void MHfolderItem::refresh(QValueList<RecMailP>&target) 970void MHfolderItem::refresh(QValueList<RecMailP>&target)
967{ 971{
968 if (folder->may_select()) 972 if (folder->may_select())
969 mbox->getWrapper()->listMessages( folder->getName(),target ); 973 mbox->getWrapper()->listMessages( folder->getName(),target );
970} 974}
971 975
972RECBODYP MHfolderItem::fetchBody(const RecMailP&aMail) 976RECBODYP MHfolderItem::fetchBody(const RecMailP&aMail)
973{ 977{
974 return mbox->getWrapper()->fetchBody(aMail); 978 return mbox->getWrapper()->fetchBody(aMail);
975} 979}
976 980
977void MHfolderItem::deleteFolder() 981void MHfolderItem::deleteFolder()
978{ 982{
979 int yesno = QMessageBox::warning(0,i18n("Delete folder"), 983 int yesno = QMessageBox::warning(0,i18n("Delete folder"),
980 i18n("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>").arg(folder->getDisplayName()), 984 i18n("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>").arg(folder->getDisplayName()),
981 i18n("Yes"), 985 i18n("Yes"),
982 i18n("No"),QString::null,1,1); 986 i18n("No"),QString::null,1,1);
983 987
984 if (yesno == 0) 988 if (yesno == 0)
985 { 989 {
986 if (mbox->getWrapper()->deleteMbox(folder)) 990 if (mbox->getWrapper()->deleteMbox(folder))
987 { 991 {
988 QListView*v=listView(); 992 QListView*v=listView();
989 MHviewItem * box = mbox; 993 MHviewItem * box = mbox;
990 /* be carefull - after that this object is destroyd so don't use 994 /* be carefull - after that this object is destroyd so don't use
991 * any member of it after that call!!*/ 995 * any member of it after that call!!*/
992 mbox->refresh(true); 996 mbox->refresh(true);
993 if (v) 997 if (v)
994 { 998 {
995 v->setSelected(box,true); 999 v->setSelected(box,true);
996 } 1000 }
997 } 1001 }
998 } 1002 }
999} 1003}
1000 1004
1001QPopupMenu * MHfolderItem::getContextMenu() 1005QPopupMenu * MHfolderItem::getContextMenu()
1002{ 1006{
1003 QPopupMenu *m = new QPopupMenu(0); 1007 QPopupMenu *m = new QPopupMenu(0);
1004 if (m) 1008 if (m)
1005 { 1009 {
1006 m->insertItem(i18n("Move/Copie all mails"),2); 1010 m->insertItem(i18n("Move/Copie all mails"),2);
1007 m->insertItem(i18n("Delete all mails"),0); 1011 m->insertItem(i18n("Delete all mails"),0);
1008 m->insertItem(i18n("Create new subfolder"),3); 1012 m->insertItem(i18n("Create new subfolder"),3);
1009 m->insertItem(i18n("Delete folder"),1); 1013 m->insertItem(i18n("Delete folder"),1);
1010 } 1014 }
1011 return m; 1015 return m;
1012} 1016}
1013 1017
1014void MHfolderItem::downloadMails() 1018void MHfolderItem::downloadMails()
1015{ 1019{
1016 AccountView*bl = mbox->accountView(); 1020 AccountView*bl = mbox->accountView();
1017 if (!bl) return; 1021 if (!bl) return;
1018 bl->downloadMails(folder,mbox->getWrapper()); 1022 bl->downloadMails(folder,mbox->getWrapper());
1019} 1023}
1020 1024
1021void MHfolderItem::createFolder() 1025void MHfolderItem::createFolder()
1022{ 1026{
1023 Newmdirdlg ndirdlg(0,0,true); 1027 Newmdirdlg ndirdlg(0,0,true);
1024 ndirdlg.showMaximized(); 1028 //ndirdlg.showMaximized();
1025 if (ndirdlg.exec() ) 1029 if (ndirdlg.exec() )
1026 { 1030 {
1027 QString ndir = ndirdlg.Newdir(); 1031 QString ndir = ndirdlg.Newdir();
1028 if (mbox->getWrapper()->createMbox(ndir,folder)) 1032 if (mbox->getWrapper()->createMbox(ndir,folder))
1029 { 1033 {
1030 QListView*v=listView(); 1034 QListView*v=listView();
1031 MHviewItem * box = mbox; 1035 MHviewItem * box = mbox;
1032 /* be carefull - after that this object is destroyd so don't use 1036 /* be carefull - after that this object is destroyd so don't use
1033 * any member of it after that call!!*/ 1037 * any member of it after that call!!*/
1034 mbox->refresh(true); 1038 mbox->refresh(true);
1035 if (v) 1039 if (v)
1036 { 1040 {
1037 v->setSelected(box,true); 1041 v->setSelected(box,true);
1038 } 1042 }
1039 } 1043 }
1040 } 1044 }
1041} 1045}
1042 1046
1043void MHfolderItem::contextMenuSelected(int which) 1047void MHfolderItem::contextMenuSelected(int which)
1044{ 1048{
1045 switch(which) 1049 switch(which)
1046 { 1050 {
1047 case 0: 1051 case 0:
1048 deleteAllMail(mbox->getWrapper(),folder); 1052 deleteAllMail(mbox->getWrapper(),folder);
1049 break; 1053 break;
1050 case 1: 1054 case 1:
1051 deleteFolder(); 1055 deleteFolder();
1052 break; 1056 break;
1053 case 2: 1057 case 2:
1054 downloadMails(); 1058 downloadMails();
1055 break; 1059 break;
1056 case 3: 1060 case 3:
1057 createFolder(); 1061 createFolder();
1058 break; 1062 break;
1059 default: 1063 default:
1060 break; 1064 break;
1061 } 1065 }
1062} 1066}
1063 1067
1064bool MHfolderItem::isDraftfolder() 1068bool MHfolderItem::isDraftfolder()
1065{ 1069{
1066 if (folder && folder->getName()==AbstractMail::defaultLocalfolder()+"/"+AbstractMail::draftFolder()) return true; 1070 if (folder && folder->getName()==AbstractMail::defaultLocalfolder()+"/"+AbstractMail::draftFolder()) return true;
1067 return false; 1071 return false;
1068} 1072}
1069 1073
1070/** 1074/**
1071 * Generic stuff 1075 * Generic stuff
1072 */ 1076 */
1073 1077
1074const QString AccountViewItem::contextName="AccountViewItem"; 1078const QString AccountViewItem::contextName="AccountViewItem";
1075 1079
1076AccountViewItem::AccountViewItem( AccountView *parent ) 1080AccountViewItem::AccountViewItem( AccountView *parent )
1077 : QListViewItem( parent ) 1081 : QListViewItem( parent )
1078{ 1082{
1079 init(); 1083 init();
1080 m_Backlink = parent; 1084 m_Backlink = parent;
1081} 1085}
1082 1086
1083AccountViewItem::AccountViewItem( QListViewItem *parent) 1087AccountViewItem::AccountViewItem( QListViewItem *parent)
1084 : QListViewItem( parent),folder(0) 1088 : QListViewItem( parent),folder(0)
1085{ 1089{
1086 init(); 1090 init();
1087} 1091}
1088 1092
1089AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after ) 1093AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after )
1090 :QListViewItem( parent,after ),folder(0) 1094 :QListViewItem( parent,after ),folder(0)
1091{ 1095{
1092 init(); 1096 init();
1093} 1097}
1094 1098
1095AccountViewItem::AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ) 1099AccountViewItem::AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after )
1096 :QListViewItem( parent,after ),folder(folderInit) 1100 :QListViewItem( parent,after ),folder(folderInit)
1097{ 1101{
1098 init(); 1102 init();
1099} 1103}
1100 1104
1101void AccountViewItem::init() 1105void AccountViewItem::init()
1102{ 1106{
1103 m_Backlink = 0; 1107 m_Backlink = 0;
1104} 1108}
1105 1109
1106AccountViewItem::~AccountViewItem() 1110AccountViewItem::~AccountViewItem()
1107{ 1111{
1108 folder = 0; 1112 folder = 0;
1109} 1113}
1110 1114
1111AccountView*AccountViewItem::accountView() 1115AccountView*AccountViewItem::accountView()
1112{ 1116{
1113 return m_Backlink; 1117 return m_Backlink;
1114} 1118}
1115 1119
1116void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder) 1120void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder)
1117{ 1121{
1118 if (!wrapper) return; 1122 if (!wrapper) return;
1119 QString fname=""; 1123 QString fname="";
1120 if (folder) fname = folder->getDisplayName(); 1124 if (folder) fname = folder->getDisplayName();
1121 int yesno = QMessageBox::warning(0,i18n("Delete all mails"), 1125 int yesno = QMessageBox::warning(0,i18n("Delete all mails"),
1122 i18n("<center>Realy delete all mails in box <br>%1</center>"). 1126 i18n("<center>Realy delete all mails in box <br>%1</center>").
1123 arg(fname), 1127 arg(fname),
1124 i18n("Yes"), 1128 i18n("Yes"),
1125 i18n("No"),QString::null,1,1); 1129 i18n("No"),QString::null,1,1);
1126 1130
1127 if (yesno == 0) 1131 if (yesno == 0)
1128 { 1132 {
1129 if (wrapper->deleteAllMail(folder)) 1133 if (wrapper->deleteAllMail(folder))
1130 { 1134 {
1131 AccountView * view = (AccountView*)listView(); 1135 AccountView * view = (AccountView*)listView();
1132 if (view) view->refreshCurrent(); 1136 if (view) view->refreshCurrent();
1133 } 1137 }
1134 } 1138 }
1135} 1139}
1136 1140
1137void AccountViewItem::removeChilds() 1141void AccountViewItem::removeChilds()
1138{ 1142{
1139 QListViewItem *child = firstChild(); 1143 QListViewItem *child = firstChild();
1140 while ( child ) 1144 while ( child )
1141 { 1145 {
1142 QListViewItem *tmp = child; 1146 QListViewItem *tmp = child;
1143 child = child->nextSibling(); 1147 child = child->nextSibling();
1144 delete tmp; 1148 delete tmp;
1145 } 1149 }
1146} 1150}
1147 1151
1148bool AccountViewItem::matchName(const QString&name)const 1152bool AccountViewItem::matchName(const QString&name)const
1149{ 1153{
1150 if (!folder) return false; 1154 if (!folder) return false;
1151 return folder->getDisplayName().lower()==name.lower(); 1155 return folder->getDisplayName().lower()==name.lower();
1152} 1156}
1153 1157
1154 1158
1155AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start) 1159AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start)
1156{ 1160{
1157 AccountViewItem*pitem,*sitem; 1161 AccountViewItem*pitem,*sitem;
1158 if (!start) pitem = (AccountViewItem*)firstChild(); 1162 if (!start) pitem = (AccountViewItem*)firstChild();
1159 else pitem = (AccountViewItem*)start->firstChild(); 1163 else pitem = (AccountViewItem*)start->firstChild();
1160 while (pitem) 1164 while (pitem)
1161 { 1165 {
1162 if (pitem->matchName(path)) 1166 if (pitem->matchName(path))
1163 { 1167 {
1164 break; 1168 break;
1165 } 1169 }
1166 if (pitem->childCount()>0) 1170 if (pitem->childCount()>0)
1167 { 1171 {
1168 sitem = findSubItem(path,pitem); 1172 sitem = findSubItem(path,pitem);
1169 if (sitem) 1173 if (sitem)
1170 { 1174 {
1171 pitem = sitem; 1175 pitem = sitem;
1172 break; 1176 break;
1173 } 1177 }
1174 } 1178 }
1175 pitem=(AccountViewItem*)pitem->nextSibling(); 1179 pitem=(AccountViewItem*)pitem->nextSibling();
1176 } 1180 }
1177 return pitem; 1181 return pitem;
1178} 1182}
1179 1183
1180bool AccountViewItem::isDraftfolder() 1184bool AccountViewItem::isDraftfolder()
1181{ 1185{
1182 return false; 1186 return false;
1183} 1187}