summaryrefslogtreecommitdiff
path: root/noncore/net/mail/accountview.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountview.cpp77
1 files changed, 66 insertions, 11 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index 62cbf62..3048e49 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -242,7 +242,6 @@ void IMAPviewItem::removeChilds()
242 child = child->nextSibling(); 242 child = child->nextSibling();
243 delete tmp; 243 delete tmp;
244 } 244 }
245
246} 245}
247 246
248const QStringList&IMAPviewItem::subFolders() 247const QStringList&IMAPviewItem::subFolders()
@@ -706,7 +705,8 @@ void AccountView::downloadMails(Folder*fromFolder,AbstractMail*fromWrapper)
706/** 705/**
707 * MH Account stuff 706 * MH Account stuff
708 */ 707 */
709 708/* MH is a little bit different - the top folder can contains messages other than in IMAP and
709 POP3 and MBOX */
710MHviewItem::MHviewItem( const QString&aPath, AccountView *parent ) 710MHviewItem::MHviewItem( const QString&aPath, AccountView *parent )
711 : AccountViewItem( parent ) 711 : AccountViewItem( parent )
712{ 712{
@@ -716,11 +716,13 @@ MHviewItem::MHviewItem( const QString&aPath, AccountView *parent )
716 setPixmap( 0, PIXMAP_LOCALFOLDER ); 716 setPixmap( 0, PIXMAP_LOCALFOLDER );
717 setText( 0, " Local Folders" ); 717 setText( 0, " Local Folders" );
718 setOpen( true ); 718 setOpen( true );
719 folder = 0;
719} 720}
720 721
721MHviewItem::~MHviewItem() 722MHviewItem::~MHviewItem()
722{ 723{
723 delete wrapper; 724 delete wrapper;
725 if (folder) delete folder;
724} 726}
725 727
726AbstractMail *MHviewItem::getWrapper() 728AbstractMail *MHviewItem::getWrapper()
@@ -728,25 +730,43 @@ AbstractMail *MHviewItem::getWrapper()
728 return wrapper; 730 return wrapper;
729} 731}
730 732
731void MHviewItem::refresh( QList<RecMail> & ) 733void MHviewItem::refresh( QList<RecMail> & target)
732{ 734{
733 refresh(false); 735 refresh(false);
736 getWrapper()->listMessages( "",target );
734} 737}
735 738
736void MHviewItem::refresh(bool force) 739void MHviewItem::removeChilds()
737{ 740{
738 if (childCount()>0 && force==false) return;
739 QList<Folder> *folders = wrapper->listFolders();
740 QListViewItem *child = firstChild(); 741 QListViewItem *child = firstChild();
741 while ( child ) { 742 while ( child ) {
742 QListViewItem *tmp = child; 743 QListViewItem *tmp = child;
743 child = child->nextSibling(); 744 child = child->nextSibling();
744 delete tmp; 745 delete tmp;
745 } 746 }
747}
748
749void MHviewItem::refresh(bool force)
750{
751 if (childCount()>0 && force==false) return;
752 removeChilds();
753 QList<Folder> *folders = wrapper->listFolders();
746 Folder *it; 754 Folder *it;
747 QListViewItem*item = 0; 755 MHfolderItem*item = 0;
756 MHfolderItem*pmaster = 0;
757 QString fname = "";
748 for ( it = folders->first(); it; it = folders->next() ) { 758 for ( it = folders->first(); it; it = folders->next() ) {
749 item = new MHfolderItem( it, this , item ); 759 fname = it->getDisplayName();
760 /* this folder itself */
761 if (fname=="/") {
762 folder = it;
763 continue;
764 }
765 if (pmaster) {
766 item = new MHfolderItem( it, pmaster, item, this );
767 } else {
768 item = new MHfolderItem( it, this , item );
769 }
750 item->setSelectable(it->may_select()); 770 item->setSelectable(it->may_select());
751 } 771 }
752 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 772 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -766,6 +786,8 @@ QPopupMenu * MHviewItem::getContextMenu()
766 if (m) { 786 if (m) {
767 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 787 m->insertItem(QObject::tr("Refresh folder list",contextName),0);
768 m->insertItem(QObject::tr("Create new folder",contextName),1); 788 m->insertItem(QObject::tr("Create new folder",contextName),1);
789 m->insertItem(QObject::tr("Delete all mails",contextName),2);
790 m->insertItem(QObject::tr("Move/Copie all mails",contextName),3);
769 } 791 }
770 return m; 792 return m;
771} 793}
@@ -782,10 +804,18 @@ void MHviewItem::createFolder()
782 } 804 }
783} 805}
784 806
807void MHviewItem::downloadMails()
808{
809 AccountView*bl = accountView();
810 if (!bl) return;
811 bl->downloadMails(folder,getWrapper());
812}
813
785QStringList MHviewItem::subFolders() 814QStringList MHviewItem::subFolders()
786{ 815{
787 QStringList result; 816 QStringList result;
788 QListViewItem *child = firstChild(); 817 QListViewItem *child = firstChild();
818 result.append("/");
789 while ( child ) { 819 while ( child ) {
790 MHfolderItem *tmp = (MHfolderItem*)child; 820 MHfolderItem *tmp = (MHfolderItem*)child;
791 child = child->nextSibling(); 821 child = child->nextSibling();
@@ -804,6 +834,12 @@ void MHviewItem::contextMenuSelected(int which)
804 case 1: 834 case 1:
805 createFolder(); 835 createFolder();
806 break; 836 break;
837 case 2:
838 deleteAllMail(getWrapper(),folder);
839 break;
840 case 3:
841 downloadMails();
842 break;
807 default: 843 default:
808 break; 844 break;
809 } 845 }
@@ -819,14 +855,31 @@ MHfolderItem::MHfolderItem( Folder *folderInit, MHviewItem *parent , QListViewIt
819{ 855{
820 folder = folderInit; 856 folder = folderInit;
821 mbox = parent; 857 mbox = parent;
822 if (folder->getDisplayName().lower() == "outgoing") { 858 initName();
859}
860
861MHfolderItem::MHfolderItem( Folder *folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master)
862 : AccountViewItem( parent,after )
863{
864 folder = folderInit;
865 mbox = master;
866 initName();
867}
868
869void MHfolderItem::initName()
870{
871 QString bName = folder->getDisplayName();
872 if (bName.startsWith("/")&&bName.length()>1) {
873 bName.replace(0,1,"");
874 }
875 if (bName.lower() == "outgoing") {
823 setPixmap( 0, PIXMAP_OUTBOXFOLDER ); 876 setPixmap( 0, PIXMAP_OUTBOXFOLDER );
824 } else if (folder->getDisplayName().lower() == "inbox") { 877 } else if (bName.lower() == "inbox") {
825 setPixmap( 0, PIXMAP_INBOXFOLDER); 878 setPixmap( 0, PIXMAP_INBOXFOLDER);
826 } else { 879 } else {
827 setPixmap( 0, PIXMAP_MBOXFOLDER ); 880 setPixmap( 0, PIXMAP_MBOXFOLDER );
828 } 881 }
829 setText( 0, folder->getDisplayName() ); 882 setText( 0, bName );
830} 883}
831 884
832Folder*MHfolderItem::getFolder() 885Folder*MHfolderItem::getFolder()
@@ -873,6 +926,7 @@ QPopupMenu * MHfolderItem::getContextMenu()
873 m->insertItem(QObject::tr("Delete all mails",contextName),0); 926 m->insertItem(QObject::tr("Delete all mails",contextName),0);
874 m->insertItem(QObject::tr("Delete folder",contextName),1); 927 m->insertItem(QObject::tr("Delete folder",contextName),1);
875 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 928 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
929 m->insertItem(QObject::tr("Create new folder",contextName),3);
876 } 930 }
877 return m; 931 return m;
878} 932}
@@ -900,3 +954,4 @@ void MHfolderItem::contextMenuSelected(int which)
900 break; 954 break;
901 } 955 }
902} 956}
957