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
@@ -209,193 +209,193 @@ void POP3folderItem::contextMenuSelected(int 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 }
@@ -666,195 +666,194 @@ RECBODYP IMAPfolderItem::fetchBody(const RecMailP&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 {