summaryrefslogtreecommitdiffabout
path: root/kmicromail/accountitem.cpp
Unidiff
Diffstat (limited to 'kmicromail/accountitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/accountitem.cpp7
1 files changed, 3 insertions, 4 deletions
diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp
index 7795055..49d86fc 100644
--- a/kmicromail/accountitem.cpp
+++ b/kmicromail/accountitem.cpp
@@ -113,385 +113,385 @@ void POP3viewItem::disconnect()
113 QListViewItem *tmp = child; 113 QListViewItem *tmp = child;
114 child = child->nextSibling(); 114 child = child->nextSibling();
115 delete tmp; 115 delete tmp;
116 } 116 }
117 wrapper->logout(); 117 wrapper->logout();
118} 118}
119 119
120void POP3viewItem::setOnOffline() 120void POP3viewItem::setOnOffline()
121{ 121{
122 if (!account->getOffline()) 122 if (!account->getOffline())
123 { 123 {
124 disconnect(); 124 disconnect();
125 } 125 }
126 account->setOffline(!account->getOffline()); 126 account->setOffline(!account->getOffline());
127 account->save(); 127 account->save();
128 SETPIX(PIXMAP_POP3FOLDER); 128 SETPIX(PIXMAP_POP3FOLDER);
129 refresh(); 129 refresh();
130} 130}
131 131
132void POP3viewItem::contextMenuSelected(int which) 132void POP3viewItem::contextMenuSelected(int which)
133{ 133{
134 switch (which) 134 switch (which)
135 { 135 {
136 case 0: 136 case 0:
137 disconnect(); 137 disconnect();
138 break; 138 break;
139 case 1: 139 case 1:
140 setOnOffline(); 140 setOnOffline();
141 break; 141 break;
142 case GET_NEW_MAILS: // daunlood 142 case GET_NEW_MAILS: // daunlood
143 if (account->getOffline()) 143 if (account->getOffline())
144 setOnOffline(); 144 setOnOffline();
145 AccountView*bl = accountView(); 145 AccountView*bl = accountView();
146 if (!bl) return; 146 if (!bl) return;
147 AccountViewItem* in = findSubItem( "inbox" , 0); 147 AccountViewItem* in = findSubItem( "inbox" , 0);
148 if ( ! in ) 148 if ( ! in )
149 return; 149 return;
150 bl->downloadMailsInbox(in->getFolder() ,getWrapper()); 150 bl->downloadMailsInbox(in->getFolder() ,getWrapper());
151 setOnOffline(); 151 setOnOffline();
152 break; 152 break;
153 } 153 }
154} 154}
155 155
156POP3folderItem::~POP3folderItem() 156POP3folderItem::~POP3folderItem()
157{} 157{}
158 158
159POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after ) 159POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after )
160 : AccountViewItem(folderInit,parent,after ) 160 : AccountViewItem(folderInit,parent,after )
161{ 161{
162 pop3 = parent; 162 pop3 = parent;
163 if (folder->getDisplayName().lower()!="inbox") 163 if (folder->getDisplayName().lower()!="inbox")
164 { 164 {
165 setPixmap( 0, PIXMAP_POP3FOLDER ); 165 setPixmap( 0, PIXMAP_POP3FOLDER );
166 } 166 }
167 else 167 else
168 { 168 {
169 setPixmap( 0, PIXMAP_INBOXFOLDER); 169 setPixmap( 0, PIXMAP_INBOXFOLDER);
170 } 170 }
171 setText( 0, folder->getDisplayName() ); 171 setText( 0, folder->getDisplayName() );
172} 172}
173 173
174void POP3folderItem::refresh(QValueList<RecMailP>&target) 174void POP3folderItem::refresh(QValueList<RecMailP>&target)
175{ 175{
176 if (folder->may_select()) 176 if (folder->may_select())
177 pop3->getWrapper()->listMessages( folder->getName(),target ); 177 pop3->getWrapper()->listMessages( folder->getName(),target );
178} 178}
179 179
180RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) 180RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail)
181{ 181{
182 return pop3->getWrapper()->fetchBody(aMail); 182 return pop3->getWrapper()->fetchBody(aMail);
183} 183}
184 184
185QPopupMenu * POP3folderItem::getContextMenu() 185QPopupMenu * POP3folderItem::getContextMenu()
186{ 186{
187 QPopupMenu *m = new QPopupMenu(0); 187 QPopupMenu *m = new QPopupMenu(0);
188 if (m) 188 if (m)
189 { 189 {
190 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); 190 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
191 m->insertItem(QObject::tr("Refresh header list",contextName),0); 191 m->insertItem(QObject::tr("Refresh header list",contextName),0);
192 m->insertItem(QObject::tr("Delete all mails",contextName),1); 192 m->insertItem(QObject::tr("Delete all mails",contextName),1);
193 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 193 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
194 } 194 }
195 return m; 195 return m;
196} 196}
197 197
198void POP3folderItem::downloadMails() 198void POP3folderItem::downloadMails()
199{ 199{
200 AccountView*bl = pop3->accountView(); 200 AccountView*bl = pop3->accountView();
201 if (!bl) return; 201 if (!bl) return;
202 bl->downloadMails(folder,pop3->getWrapper()); 202 bl->downloadMails(folder,pop3->getWrapper());
203} 203}
204 204
205void POP3folderItem::contextMenuSelected(int which) 205void POP3folderItem::contextMenuSelected(int which)
206{ 206{
207 AccountView * view = (AccountView*)listView(); 207 AccountView * view = (AccountView*)listView();
208 switch (which) 208 switch (which)
209 { 209 {
210 case 0: 210 case 0:
211 /* must be 'cause pop3 lists are cached */ 211 /* must be 'cause pop3 lists are cached */
212 pop3->getWrapper()->logout(); 212 pop3->getWrapper()->logout();
213 view->refreshCurrent(); 213 view->refreshCurrent();
214 break; 214 break;
215 case 1: 215 case 1:
216 deleteAllMail(pop3->getWrapper(),folder); 216 deleteAllMail(pop3->getWrapper(),folder);
217 break; 217 break;
218 case 2: 218 case 2:
219 downloadMails(); 219 downloadMails();
220 break; 220 break;
221 case GET_NEW_MAILS: // daunlood 221 case GET_NEW_MAILS: // daunlood
222 view->downloadMailsInbox(getFolder() ,pop3->getWrapper()); 222 view->downloadMailsInbox(getFolder() ,pop3->getWrapper());
223 break; 223 break;
224 default: 224 default:
225 break; 225 break;
226 } 226 }
227} 227}
228 228
229/** 229/**
230 * NNTP Account stuff 230 * NNTP Account stuff
231 */ 231 */
232NNTPviewItem::NNTPviewItem( NNTPaccount *a, AccountView *parent ) 232NNTPviewItem::NNTPviewItem( NNTPaccount *a, AccountView *parent )
233 : AccountViewItem( parent ) 233 : AccountViewItem( parent )
234{ 234{
235 account = a; 235 account = a;
236 wrapper = AbstractMail::getWrapper( account ); 236 wrapper = AbstractMail::getWrapper( account );
237 //FIXME 237 //FIXME
238 SETPIX(PIXMAP_POP3FOLDER); 238 SETPIX(PIXMAP_POP3FOLDER);
239#if 0 239#if 0
240 if (!account->getOffline()) 240 if (!account->getOffline())
241 { 241 {
242 setPixmap( 0, ); 242 setPixmap( 0, );
243 } 243 }
244 else 244 else
245 { 245 {
246 setPixmap( 0, PIXMAP_OFFLINE ); 246 setPixmap( 0, PIXMAP_OFFLINE );
247 } 247 }
248#endif 248#endif
249 setText( 0, account->getAccountName() ); 249 setText( 0, account->getAccountName() );
250 setOpen( true ); 250 setOpen( true );
251} 251}
252 252
253NNTPviewItem::~NNTPviewItem() 253NNTPviewItem::~NNTPviewItem()
254{ 254{
255 delete wrapper; 255 delete wrapper;
256} 256}
257 257
258AbstractMail *NNTPviewItem::getWrapper() 258AbstractMail *NNTPviewItem::getWrapper()
259{ 259{
260 return wrapper; 260 return wrapper;
261} 261}
262 262
263void NNTPviewItem::refresh( QValueList<RecMailP> & ) 263void NNTPviewItem::refresh( QValueList<RecMailP> & )
264{ 264{
265 refresh(); 265 refresh();
266} 266}
267 267
268void NNTPviewItem::refresh() 268void NNTPviewItem::refresh()
269{ 269{
270 if (account->getOffline()) return; 270 if (account->getOffline()) return;
271 QValueList<FolderP> *folders = wrapper->listFolders(); 271 QValueList<FolderP> *folders = wrapper->listFolders();
272 272
273 QListViewItem *child = firstChild(); 273 QListViewItem *child = firstChild();
274 while ( child ) 274 while ( child )
275 { 275 {
276 QListViewItem *tmp = child; 276 QListViewItem *tmp = child;
277 child = child->nextSibling(); 277 child = child->nextSibling();
278 delete tmp; 278 delete tmp;
279 } 279 }
280 QValueList<FolderP>::ConstIterator it; 280 QValueList<FolderP>::ConstIterator it;
281 QListViewItem*item = 0; 281 QListViewItem*item = 0;
282 for ( it = folders->begin(); it!=folders->end(); ++it) 282 for ( it = folders->begin(); it!=folders->end(); ++it)
283 { 283 {
284 item = new NNTPfolderItem( (*it), this , item ); 284 item = new NNTPfolderItem( (*it), this , item );
285 item->setSelectable( (*it)->may_select()); 285 item->setSelectable( (*it)->may_select());
286 } 286 }
287 delete folders; 287 delete folders;
288} 288}
289 289
290RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail ) 290RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail )
291{ 291{
292 292
293 return wrapper->fetchBody( mail ); 293 return wrapper->fetchBody( mail );
294} 294}
295 295
296QPopupMenu * NNTPviewItem::getContextMenu() 296QPopupMenu * NNTPviewItem::getContextMenu()
297{ 297{
298 QPopupMenu *m = new QPopupMenu(0); 298 QPopupMenu *m = new QPopupMenu(0);
299 if (m) 299 if (m)
300 { 300 {
301 if (!account->getOffline()) 301 if (!account->getOffline())
302 { 302 {
303 m->insertItem(QObject::tr("Disconnect",contextName),0); 303 m->insertItem(QObject::tr("Disconnect",contextName),0);
304 m->insertItem(QObject::tr("Set offline",contextName),1); 304 m->insertItem(QObject::tr("Set offline",contextName),1);
305 m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2); 305 //m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2);
306 } 306 }
307 else 307 else
308 { 308 {
309 m->insertItem(QObject::tr("Set online",contextName),1); 309 m->insertItem(QObject::tr("Set online",contextName),1);
310 } 310 }
311 } 311 }
312 return m; 312 return m;
313} 313}
314 314
315void NNTPviewItem::subscribeGroups() 315void NNTPviewItem::subscribeGroups()
316{ 316{
317 NNTPGroupsDlg dlg(account); 317 NNTPGroupsDlg dlg(account);
318 dlg.showMaximized(); 318 dlg.showMaximized();
319 if ( dlg.exec()== QDialog::Accepted ){ 319 if ( dlg.exec()== QDialog::Accepted ){
320 refresh(); 320 refresh();
321 } 321 }
322} 322}
323 323
324void NNTPviewItem::disconnect() 324void NNTPviewItem::disconnect()
325{ 325{
326 QListViewItem *child = firstChild(); 326 QListViewItem *child = firstChild();
327 while ( child ) 327 while ( child )
328 { 328 {
329 QListViewItem *tmp = child; 329 QListViewItem *tmp = child;
330 child = child->nextSibling(); 330 child = child->nextSibling();
331 delete tmp; 331 delete tmp;
332 } 332 }
333 wrapper->logout(); 333 wrapper->logout();
334} 334}
335 335
336void NNTPviewItem::setOnOffline() 336void NNTPviewItem::setOnOffline()
337{ 337{
338 if (!account->getOffline()) 338 if (!account->getOffline())
339 { 339 {
340 disconnect(); 340 disconnect();
341 } 341 }
342 account->setOffline(!account->getOffline()); 342 account->setOffline(!account->getOffline());
343 account->save(); 343 account->save();
344 //FIXME 344 //FIXME
345 SETPIX(PIXMAP_POP3FOLDER); 345 SETPIX(PIXMAP_POP3FOLDER);
346 refresh(); 346 refresh();
347} 347}
348 348
349void NNTPviewItem::contextMenuSelected(int which) 349void NNTPviewItem::contextMenuSelected(int which)
350{ 350{
351 switch (which) 351 switch (which)
352 { 352 {
353 case 0: 353 case 0:
354 disconnect(); 354 disconnect();
355 break; 355 break;
356 case 1: 356 case 1:
357 setOnOffline(); 357 setOnOffline();
358 break; 358 break;
359 case 2: 359 case 2:
360 subscribeGroups(); 360 subscribeGroups();
361 break; 361 break;
362 } 362 }
363} 363}
364 364
365NNTPfolderItem::~NNTPfolderItem() 365NNTPfolderItem::~NNTPfolderItem()
366{} 366{}
367 367
368NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , QListViewItem*after ) 368NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , QListViewItem*after )
369 : AccountViewItem( folderInit, parent,after ) 369 : AccountViewItem( folderInit, parent,after )
370{ 370{
371 nntp = parent; 371 nntp = parent;
372 if (folder->getDisplayName().lower()!="inbox") 372 if (folder->getDisplayName().lower()!="inbox")
373 { 373 {
374 setPixmap( 0, PIXMAP_POP3FOLDER ); 374 setPixmap( 0, PIXMAP_POP3FOLDER );
375 } 375 }
376 else 376 else
377 { 377 {
378 setPixmap( 0, PIXMAP_INBOXFOLDER); 378 setPixmap( 0, PIXMAP_INBOXFOLDER);
379 } 379 }
380 setText( 0, folder->getDisplayName() ); 380 setText( 0, folder->getDisplayName() );
381} 381}
382 382
383void NNTPfolderItem::refresh(QValueList<RecMailP>&target) 383void NNTPfolderItem::refresh(QValueList<RecMailP>&target)
384{ 384{
385 if (folder->may_select()) 385 if (folder->may_select())
386 nntp->getWrapper()->listMessages( folder->getName(),target ); 386 nntp->getWrapper()->listMessages( folder->getName(),target );
387} 387}
388 388
389RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail) 389RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail)
390{ 390{
391 return nntp->getWrapper()->fetchBody(aMail); 391 return nntp->getWrapper()->fetchBody(aMail);
392} 392}
393 393
394QPopupMenu * NNTPfolderItem::getContextMenu() 394QPopupMenu * NNTPfolderItem::getContextMenu()
395{ 395{
396 QPopupMenu *m = new QPopupMenu(0); 396 QPopupMenu *m = new QPopupMenu(0);
397 if (m) 397 if (m)
398 { 398 {
399 m->insertItem(QObject::tr("Refresh header list",contextName),0); 399 m->insertItem(QObject::tr("Refresh header list",contextName),0);
400 m->insertItem(QObject::tr("Copy all postings",contextName),1); 400 m->insertItem(QObject::tr("Copy all postings",contextName),1);
401 } 401 }
402 return m; 402 return m;
403} 403}
404 404
405void NNTPfolderItem::downloadMails() 405void NNTPfolderItem::downloadMails()
406{ 406{
407 AccountView*bl = nntp->accountView(); 407 AccountView*bl = nntp->accountView();
408 if (!bl) return; 408 if (!bl) return;
409 bl->downloadMails(folder,nntp->getWrapper()); 409 bl->downloadMails(folder,nntp->getWrapper());
410} 410}
411 411
412void NNTPfolderItem::contextMenuSelected(int which) 412void NNTPfolderItem::contextMenuSelected(int which)
413{ 413{
414 AccountView * view = (AccountView*)listView(); 414 AccountView * view = (AccountView*)listView();
415 switch (which) 415 switch (which)
416 { 416 {
417 case 0: 417 case 0:
418 /* must be 'cause pop3 lists are cached */ 418 /* must be 'cause pop3 lists are cached */
419 nntp->getWrapper()->logout(); 419 nntp->getWrapper()->logout();
420 view->refreshCurrent(); 420 view->refreshCurrent();
421 break; 421 break;
422 case 1: 422 case 1:
423 downloadMails(); 423 downloadMails();
424 break; 424 break;
425 default: 425 default:
426 break; 426 break;
427 } 427 }
428} 428}
429 429
430/** 430/**
431 * IMAP Account stuff 431 * IMAP Account stuff
432 */ 432 */
433IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent ) 433IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent )
434 : AccountViewItem( parent ) 434 : AccountViewItem( parent )
435{ 435{
436 account = a; 436 account = a;
437 wrapper = AbstractMail::getWrapper( account ); 437 wrapper = AbstractMail::getWrapper( account );
438 SETPIX(PIXMAP_IMAPFOLDER); 438 SETPIX(PIXMAP_IMAPFOLDER);
439 setText( 0, account->getAccountName() ); 439 setText( 0, account->getAccountName() );
440 setOpen( true ); 440 setOpen( true );
441} 441}
442 442
443IMAPviewItem::~IMAPviewItem() 443IMAPviewItem::~IMAPviewItem()
444{ 444{
445 delete wrapper; 445 delete wrapper;
446} 446}
447 447
448AbstractMail *IMAPviewItem::getWrapper() 448AbstractMail *IMAPviewItem::getWrapper()
449{ 449{
450 return wrapper; 450 return wrapper;
451} 451}
452 452
453void IMAPviewItem::refresh(QValueList<RecMailP>&) 453void IMAPviewItem::refresh(QValueList<RecMailP>&)
454{ 454{
455 refreshFolders(false); 455 refreshFolders(false);
456} 456}
457 457
458const QStringList&IMAPviewItem::subFolders() 458const QStringList&IMAPviewItem::subFolders()
459{ 459{
460 return currentFolders; 460 return currentFolders;
461} 461}
462 462
463void IMAPviewItem::refreshFolders(bool force) 463void IMAPviewItem::refreshFolders(bool force)
464{ 464{
465 if (childCount()>0 && force==false) return; 465 if (childCount()>0 && force==false) return;
466 if (account->getOffline()) return; 466 if (account->getOffline()) return;
467 467
468 removeChilds(); 468 removeChilds();
469 currentFolders.clear(); 469 currentFolders.clear();
470 QValueList<FolderP> * folders = wrapper->listFolders(); 470 QValueList<FolderP> * folders = wrapper->listFolders();
471 471
472 QValueList<FolderP>::Iterator it; 472 QValueList<FolderP>::Iterator it;
473 QListViewItem*item = 0; 473 QListViewItem*item = 0;
474 QListViewItem*titem = 0; 474 QListViewItem*titem = 0;
475 QString fname,del,search; 475 QString fname,del,search;
476 int pos; 476 int pos;
477 477
478 for ( it = folders->begin(); it!=folders->end(); ++it) 478 for ( it = folders->begin(); it!=folders->end(); ++it)
479 { 479 {
480 if ((*it)->getDisplayName().lower()=="inbox") 480 if ((*it)->getDisplayName().lower()=="inbox")
481 { 481 {
482 item = new IMAPfolderItem( (*it), this , item ); 482 item = new IMAPfolderItem( (*it), this , item );
483 folders->remove(it); 483 folders->remove(it);
484 break; 484 break;
485 } 485 }
486 } 486 }
487 for ( it = folders->begin(); it!=folders->end(); ++it) 487 for ( it = folders->begin(); it!=folders->end(); ++it)
488 { 488 {
489 fname = (*it)->getDisplayName(); 489 fname = (*it)->getDisplayName();
490 currentFolders.append((*it)->getName()); 490 currentFolders.append((*it)->getName());
491 pos = fname.findRev((*it)->Separator()); 491 pos = fname.findRev((*it)->Separator());
492 if (pos != -1) 492 if (pos != -1)
493 { 493 {
494 fname = fname.left(pos); 494 fname = fname.left(pos);
495 } 495 }
496 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname); 496 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname);
497 if (pitem) 497 if (pitem)
@@ -570,387 +570,386 @@ void IMAPviewItem::contextMenuSelected(int id)
570 case 2: 570 case 2:
571 removeChilds(); 571 removeChilds();
572 wrapper->logout(); 572 wrapper->logout();
573 break; 573 break;
574 case 3: 574 case 3:
575 if (account->getOffline()==false) 575 if (account->getOffline()==false)
576 { 576 {
577 removeChilds(); 577 removeChilds();
578 wrapper->logout(); 578 wrapper->logout();
579 } 579 }
580 account->setOffline(!account->getOffline()); 580 account->setOffline(!account->getOffline());
581 account->save(); 581 account->save();
582 SETPIX(PIXMAP_IMAPFOLDER); 582 SETPIX(PIXMAP_IMAPFOLDER);
583 refreshFolders(false); 583 refreshFolders(false);
584 break; 584 break;
585 case GET_NEW_MAILS: // daunlood 585 case GET_NEW_MAILS: // daunlood
586 { 586 {
587 if (account->getOffline()) { 587 if (account->getOffline()) {
588 contextMenuSelected( 3 ); 588 contextMenuSelected( 3 );
589 } 589 }
590 AccountView*bl = accountView(); 590 AccountView*bl = accountView();
591 if (!bl) return; 591 if (!bl) return;
592 AccountViewItem* in = findSubItem( "inbox" , 0); 592 AccountViewItem* in = findSubItem( "inbox" , 0);
593 if ( ! in ) 593 if ( ! in )
594 return; 594 return;
595 bl->downloadMailsInbox(in->getFolder(),getWrapper()); 595 bl->downloadMailsInbox(in->getFolder(),getWrapper());
596 } 596 }
597 break; 597 break;
598 default: 598 default:
599 break; 599 break;
600 } 600 }
601} 601}
602 602
603RECBODYP IMAPviewItem::fetchBody(const RecMailP&) 603RECBODYP IMAPviewItem::fetchBody(const RecMailP&)
604{ 604{
605 return new RecBody(); 605 return new RecBody();
606} 606}
607 607
608bool IMAPviewItem::offline() 608bool IMAPviewItem::offline()
609{ 609{
610 return account->getOffline(); 610 return account->getOffline();
611} 611}
612 612
613IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , QListViewItem*after ) 613IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , QListViewItem*after )
614 : AccountViewItem( folderInit, parent , after ) 614 : AccountViewItem( folderInit, parent , after )
615{ 615{
616 imap = parent; 616 imap = parent;
617 if (folder->getDisplayName().lower()!="inbox") 617 if (folder->getDisplayName().lower()!="inbox")
618 { 618 {
619 setPixmap( 0, PIXMAP_IMAPFOLDER ); 619 setPixmap( 0, PIXMAP_IMAPFOLDER );
620 } 620 }
621 else 621 else
622 { 622 {
623 setPixmap( 0, PIXMAP_INBOXFOLDER); 623 setPixmap( 0, PIXMAP_INBOXFOLDER);
624 } 624 }
625 setText( 0, folder->getDisplayName() ); 625 setText( 0, folder->getDisplayName() );
626} 626}
627 627
628IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ) 628IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master )
629 : AccountViewItem(folderInit, parent,after ) 629 : AccountViewItem(folderInit, parent,after )
630{ 630{
631 imap = master; 631 imap = master;
632 if (folder->getDisplayName().lower()!="inbox") 632 if (folder->getDisplayName().lower()!="inbox")
633 { 633 {
634 setPixmap( 0, PIXMAP_IMAPFOLDER ); 634 setPixmap( 0, PIXMAP_IMAPFOLDER );
635 } 635 }
636 else 636 else
637 { 637 {
638 setPixmap( 0, PIXMAP_INBOXFOLDER); 638 setPixmap( 0, PIXMAP_INBOXFOLDER);
639 } 639 }
640 setText( 0, folder->getDisplayName() ); 640 setText( 0, folder->getDisplayName() );
641} 641}
642 642
643IMAPfolderItem::~IMAPfolderItem() 643IMAPfolderItem::~IMAPfolderItem()
644{} 644{}
645 645
646const QString& IMAPfolderItem::Delemiter()const 646const QString& IMAPfolderItem::Delemiter()const
647{ 647{
648 return folder->Separator(); 648 return folder->Separator();
649} 649}
650 650
651void IMAPfolderItem::refresh(QValueList<RecMailP>&target) 651void IMAPfolderItem::refresh(QValueList<RecMailP>&target)
652{ 652{
653 if (folder->may_select()) 653 if (folder->may_select())
654 { 654 {
655 imap->getWrapper()->listMessages( folder->getName(),target ); 655 imap->getWrapper()->listMessages( folder->getName(),target );
656 } 656 }
657 else 657 else
658 { 658 {
659 target.clear(); 659 target.clear();
660 } 660 }
661} 661}
662 662
663RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail) 663RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail)
664{ 664{
665 return imap->getWrapper()->fetchBody(aMail); 665 return imap->getWrapper()->fetchBody(aMail);
666} 666}
667 667
668QPopupMenu * IMAPfolderItem::getContextMenu() 668QPopupMenu * IMAPfolderItem::getContextMenu()
669{ 669{
670 QPopupMenu *m = new QPopupMenu(0); 670 QPopupMenu *m = new QPopupMenu(0);
671 if (m) 671 if (m)
672 { 672 {
673 if (folder->may_select()) 673 if (folder->may_select())
674 { 674 {
675 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS); 675 m->insertItem(QObject::tr("Get new messages",contextName),GET_NEW_MAILS);
676 m->insertItem(QObject::tr("Refresh header list",contextName),0); 676 m->insertItem(QObject::tr("Refresh header list",contextName),0);
677 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4); 677 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4);
678 m->insertItem(QObject::tr("Delete all mails",contextName),1); 678 m->insertItem(QObject::tr("Delete all mails",contextName),1);
679 } 679 }
680 if (folder->no_inferior()==false) 680 if (folder->no_inferior()==false)
681 { 681 {
682 m->insertItem(QObject::tr("Create new subfolder",contextName),2); 682 m->insertItem(QObject::tr("Create new subfolder",contextName),2);
683 } 683 }
684 if (folder->getDisplayName().lower()!="inbox") 684 if (folder->getDisplayName().lower()!="inbox")
685 { 685 {
686 m->insertItem(QObject::tr("Delete folder",contextName),3); 686 m->insertItem(QObject::tr("Delete folder",contextName),3);
687 } 687 }
688 } 688 }
689 return m; 689 return m;
690} 690}
691 691
692void IMAPfolderItem::createNewFolder() 692void IMAPfolderItem::createNewFolder()
693{ 693{
694 Newmdirdlg ndirdlg; 694 Newmdirdlg ndirdlg;
695 ndirdlg.showMaximized(); 695 ndirdlg.showMaximized();
696 if ( ndirdlg.exec() ) 696 if ( ndirdlg.exec() )
697 { 697 {
698 QString ndir = ndirdlg.Newdir(); 698 QString ndir = ndirdlg.Newdir();
699 bool makesubs = ndirdlg.subpossible(); 699 bool makesubs = ndirdlg.subpossible();
700 QString delemiter = Delemiter(); 700 QString delemiter = Delemiter();
701 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs)) 701 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs))
702 { 702 {
703 imap->refreshFolders(true); 703 imap->refreshFolders(true);
704 } 704 }
705 } 705 }
706} 706}
707 707
708void IMAPfolderItem::deleteFolder() 708void IMAPfolderItem::deleteFolder()
709{ 709{
710 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), 710 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName),
711 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), 711 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
712 QObject::tr("Yes",contextName), 712 QObject::tr("Yes",contextName),
713 QObject::tr("No",contextName),QString::null,1,1); 713 QObject::tr("No",contextName),QString::null,1,1);
714 714
715 if (yesno == 0) 715 if (yesno == 0)
716 { 716 {
717 if (imap->getWrapper()->deleteMbox(folder)) 717 if (imap->getWrapper()->deleteMbox(folder))
718 { 718 {
719 QListView*v=listView(); 719 QListView*v=listView();
720 IMAPviewItem * box = imap; 720 IMAPviewItem * box = imap;
721 /* be carefull - after that this object is destroyd so don't use 721 /* be carefull - after that this object is destroyd so don't use
722 * any member of it after that call!!*/ 722 * any member of it after that call!!*/
723 imap->refreshFolders(true); 723 imap->refreshFolders(true);
724 if (v) 724 if (v)
725 { 725 {
726 v->setSelected(box,true); 726 v->setSelected(box,true);
727 } 727 }
728 } 728 }
729 } 729 }
730} 730}
731 731
732void IMAPfolderItem::downloadMails() 732void IMAPfolderItem::downloadMails()
733{ 733{
734 AccountView*bl = imap->accountView(); 734 AccountView*bl = imap->accountView();
735 if (!bl) return; 735 if (!bl) return;
736 bl->downloadMails(folder,imap->getWrapper()); 736 bl->downloadMails(folder,imap->getWrapper());
737} 737}
738 738
739void IMAPfolderItem::contextMenuSelected(int id) 739void IMAPfolderItem::contextMenuSelected(int id)
740{ 740{
741 741
742 AccountView * view = (AccountView*)listView(); 742 AccountView * view = (AccountView*)listView();
743 switch(id) 743 switch(id)
744 { 744 {
745 case 0: 745 case 0:
746 view->refreshCurrent(); 746 view->refreshCurrent();
747 break; 747 break;
748 case 1: 748 case 1:
749 deleteAllMail(imap->getWrapper(),folder); 749 deleteAllMail(imap->getWrapper(),folder);
750 break; 750 break;
751 case 2: 751 case 2:
752 createNewFolder(); 752 createNewFolder();
753 break; 753 break;
754 case 3: 754 case 3:
755 deleteFolder(); 755 deleteFolder();
756 break; 756 break;
757 case 4: 757 case 4:
758 downloadMails(); 758 downloadMails();
759 break; 759 break;
760 case GET_NEW_MAILS: // daunlood 760 case GET_NEW_MAILS: // daunlood
761 { 761 {
762 AccountView*bl = accountView(); 762 if (!view) return;
763 if (!bl) return; 763 view->downloadMailsInbox(getFolder(),imap->getWrapper());
764 bl->downloadMailsInbox(getFolder(),imap->getWrapper());
765 } 764 }
766 break; 765 break;
767 default: 766 default:
768 break; 767 break;
769 } 768 }
770} 769}
771 770
772/** 771/**
773 * MH Account stuff 772 * MH Account stuff
774 */ 773 */
775/* MH is a little bit different - the top folder can contains messages other than in IMAP and 774/* MH is a little bit different - the top folder can contains messages other than in IMAP and
776 POP3 and MBOX */ 775 POP3 and MBOX */
777MHviewItem::MHviewItem( const QString&aPath, AccountView *parent ) 776MHviewItem::MHviewItem( const QString&aPath, AccountView *parent )
778 : AccountViewItem( parent ) 777 : AccountViewItem( parent )
779{ 778{
780 m_Path = aPath; 779 m_Path = aPath;
781 /* be carefull - the space within settext is wanted - thats why the string twice */ 780 /* be carefull - the space within settext is wanted - thats why the string twice */
782 wrapper = AbstractMail::getWrapper( m_Path,"Local Folders"); 781 wrapper = AbstractMail::getWrapper( m_Path,"Local Folders");
783 setPixmap( 0, PIXMAP_LOCALFOLDER ); 782 setPixmap( 0, PIXMAP_LOCALFOLDER );
784 setText( 0, " Local Folders" ); 783 setText( 0, " Local Folders" );
785 setOpen( true ); 784 setOpen( true );
786 folder = 0; 785 folder = 0;
787} 786}
788 787
789MHviewItem::~MHviewItem() 788MHviewItem::~MHviewItem()
790{ 789{
791 delete wrapper; 790 delete wrapper;
792} 791}
793 792
794AbstractMail *MHviewItem::getWrapper() 793AbstractMail *MHviewItem::getWrapper()
795{ 794{
796 return wrapper; 795 return wrapper;
797} 796}
798 797
799void MHviewItem::refresh( QValueList<RecMailP> & target) 798void MHviewItem::refresh( QValueList<RecMailP> & target)
800{ 799{
801 refresh(false); 800 refresh(false);
802 getWrapper()->listMessages( "",target ); 801 getWrapper()->listMessages( "",target );
803} 802}
804 803
805void MHviewItem::refresh(bool force) 804void MHviewItem::refresh(bool force)
806{ 805{
807 if (childCount()>0 && force==false) return; 806 if (childCount()>0 && force==false) return;
808 removeChilds(); 807 removeChilds();
809 currentFolders.clear(); 808 currentFolders.clear();
810 QValueList<FolderP> *folders = wrapper->listFolders(); 809 QValueList<FolderP> *folders = wrapper->listFolders();
811 QValueList<FolderP>::ConstIterator it; 810 QValueList<FolderP>::ConstIterator it;
812 MHfolderItem*item = 0; 811 MHfolderItem*item = 0;
813 MHfolderItem*pmaster = 0; 812 MHfolderItem*pmaster = 0;
814 QString fname = ""; 813 QString fname = "";
815 int pos; 814 int pos;
816 for ( it = folders->begin(); it!=folders->end(); ++it) 815 for ( it = folders->begin(); it!=folders->end(); ++it)
817 { 816 {
818 fname = (*it)->getDisplayName(); 817 fname = (*it)->getDisplayName();
819 /* this folder itself */ 818 /* this folder itself */
820 if (fname=="/") 819 if (fname=="/")
821 { 820 {
822 currentFolders.append(fname); 821 currentFolders.append(fname);
823 folder = (*it); 822 folder = (*it);
824 continue; 823 continue;
825 } 824 }
826 currentFolders.append(fname); 825 currentFolders.append(fname);
827 pos = fname.findRev("/"); 826 pos = fname.findRev("/");
828 if (pos > 0) 827 if (pos > 0)
829 { 828 {
830 fname = fname.left(pos); 829 fname = fname.left(pos);
831 pmaster = (MHfolderItem*)findSubItem(fname); 830 pmaster = (MHfolderItem*)findSubItem(fname);
832 } 831 }
833 else 832 else
834 { 833 {
835 pmaster = 0; 834 pmaster = 0;
836 } 835 }
837 if (pmaster) 836 if (pmaster)
838 { 837 {
839 item = new MHfolderItem( (*it), pmaster, item, this ); 838 item = new MHfolderItem( (*it), pmaster, item, this );
840 } 839 }
841 else 840 else
842 { 841 {
843 item = new MHfolderItem( (*it), this , item ); 842 item = new MHfolderItem( (*it), this , item );
844 } 843 }
845 item->setSelectable((*it)->may_select()); 844 item->setSelectable((*it)->may_select());
846 } 845 }
847 delete folders; 846 delete folders;
848} 847}
849 848
850RECBODYP MHviewItem::fetchBody( const RecMailP &mail ) 849RECBODYP MHviewItem::fetchBody( const RecMailP &mail )
851{ 850{
852 851
853 return wrapper->fetchBody( mail ); 852 return wrapper->fetchBody( mail );
854} 853}
855 854
856QPopupMenu * MHviewItem::getContextMenu() 855QPopupMenu * MHviewItem::getContextMenu()
857{ 856{
858 QPopupMenu *m = new QPopupMenu(0); 857 QPopupMenu *m = new QPopupMenu(0);
859 if (m) 858 if (m)
860 { 859 {
861 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 860 m->insertItem(QObject::tr("Refresh folder list",contextName),0);
862 m->insertItem(QObject::tr("Create new folder",contextName),1); 861 m->insertItem(QObject::tr("Create new folder",contextName),1);
863 m->insertItem(QObject::tr("Delete all mails",contextName),2); 862 m->insertItem(QObject::tr("Delete all mails",contextName),2);
864 m->insertItem(QObject::tr("Move/Copie all mails",contextName),3); 863 m->insertItem(QObject::tr("Move/Copie all mails",contextName),3);
865 } 864 }
866 return m; 865 return m;
867} 866}
868 867
869void MHviewItem::createFolder() 868void MHviewItem::createFolder()
870{ 869{
871 Newmdirdlg ndirdlg(0,0,true); 870 Newmdirdlg ndirdlg(0,0,true);
872 ndirdlg.showMaximized(); 871 ndirdlg.showMaximized();
873 if ( ndirdlg.exec() ) 872 if ( ndirdlg.exec() )
874 { 873 {
875 QString ndir = ndirdlg.Newdir(); 874 QString ndir = ndirdlg.Newdir();
876 if (wrapper->createMbox(ndir)) 875 if (wrapper->createMbox(ndir))
877 { 876 {
878 refresh(true); 877 refresh(true);
879 } 878 }
880 } 879 }
881} 880}
882 881
883void MHviewItem::downloadMails() 882void MHviewItem::downloadMails()
884{ 883{
885 AccountView*bl = accountView(); 884 AccountView*bl = accountView();
886 if (!bl) return; 885 if (!bl) return;
887 bl->downloadMails(folder,getWrapper()); 886 bl->downloadMails(folder,getWrapper());
888} 887}
889 888
890QStringList MHviewItem::subFolders() 889QStringList MHviewItem::subFolders()
891{ 890{
892 return currentFolders; 891 return currentFolders;
893} 892}
894 893
895void MHviewItem::contextMenuSelected(int which) 894void MHviewItem::contextMenuSelected(int which)
896{ 895{
897 switch (which) 896 switch (which)
898 { 897 {
899 case 0: 898 case 0:
900 refresh(true); 899 refresh(true);
901 break; 900 break;
902 case 1: 901 case 1:
903 createFolder(); 902 createFolder();
904 break; 903 break;
905 case 2: 904 case 2:
906 deleteAllMail(getWrapper(),folder); 905 deleteAllMail(getWrapper(),folder);
907 break; 906 break;
908 case 3: 907 case 3:
909 downloadMails(); 908 downloadMails();
910 break; 909 break;
911 default: 910 default:
912 break; 911 break;
913 } 912 }
914} 913}
915 914
916MHfolderItem::~MHfolderItem() 915MHfolderItem::~MHfolderItem()
917{} 916{}
918 917
919MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , QListViewItem*after ) 918MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , QListViewItem*after )
920 : AccountViewItem(folderInit, parent,after ) 919 : AccountViewItem(folderInit, parent,after )
921{ 920{
922 mbox = parent; 921 mbox = parent;
923 initName(); 922 initName();
924} 923}
925 924
926MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master) 925MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master)
927 : AccountViewItem(folderInit, parent,after ) 926 : AccountViewItem(folderInit, parent,after )
928{ 927{
929 folder = folderInit; 928 folder = folderInit;
930 mbox = master; 929 mbox = master;
931 initName(); 930 initName();
932} 931}
933 932
934void MHfolderItem::initName() 933void MHfolderItem::initName()
935{ 934{
936 QString bName = folder->getDisplayName(); 935 QString bName = folder->getDisplayName();
937 if (bName.startsWith("/")&&bName.length()>1) 936 if (bName.startsWith("/")&&bName.length()>1)
938 { 937 {
939 bName.replace(0,1,""); 938 bName.replace(0,1,"");
940 } 939 }
941 int pos = bName.findRev("/"); 940 int pos = bName.findRev("/");
942 if (pos > 0) 941 if (pos > 0)
943 { 942 {
944 bName.replace(0,pos+1,""); 943 bName.replace(0,pos+1,"");
945 } 944 }
946 if (bName.lower() == "outgoing") 945 if (bName.lower() == "outgoing")
947 { 946 {
948 setPixmap( 0, PIXMAP_OUTBOXFOLDER ); 947 setPixmap( 0, PIXMAP_OUTBOXFOLDER );
949 } 948 }
950 else if (bName.lower() == "inbox") 949 else if (bName.lower() == "inbox")
951 { 950 {
952 setPixmap( 0, PIXMAP_INBOXFOLDER); 951 setPixmap( 0, PIXMAP_INBOXFOLDER);
953 } else if (bName.lower() == "drafts") { 952 } else if (bName.lower() == "drafts") {
954 setPixmap(0, SmallIcon ("edit")); 953 setPixmap(0, SmallIcon ("edit"));
955 } else { 954 } else {
956 setPixmap( 0, PIXMAP_MBOXFOLDER ); 955 setPixmap( 0, PIXMAP_MBOXFOLDER );