Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/accountview.cpp | 77 |
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 @@ -244,3 +244,2 @@ void IMAPviewItem::removeChilds() } - } @@ -708,3 +707,4 @@ void AccountView::downloadMails(Folder*fromFolder,AbstractMail*fromWrapper) */ - +/* MH is a little bit different - the top folder can contains messages other than in IMAP and + POP3 and MBOX */ MHviewItem::MHviewItem( const QString&aPath, AccountView *parent ) @@ -718,2 +718,3 @@ MHviewItem::MHviewItem( const QString&aPath, AccountView *parent ) setOpen( true ); + folder = 0; } @@ -723,2 +724,3 @@ MHviewItem::~MHviewItem() delete wrapper; + if (folder) delete folder; } @@ -730,11 +732,10 @@ AbstractMail *MHviewItem::getWrapper() -void MHviewItem::refresh( QList<RecMail> & ) +void MHviewItem::refresh( QList<RecMail> & target) { refresh(false); + getWrapper()->listMessages( "",target ); } -void MHviewItem::refresh(bool force) +void MHviewItem::removeChilds() { - if (childCount()>0 && force==false) return; - QList<Folder> *folders = wrapper->listFolders(); QListViewItem *child = firstChild(); @@ -745,6 +746,25 @@ void MHviewItem::refresh(bool force) } +} + +void MHviewItem::refresh(bool force) +{ + if (childCount()>0 && force==false) return; + removeChilds(); + QList<Folder> *folders = wrapper->listFolders(); Folder *it; - QListViewItem*item = 0; + MHfolderItem*item = 0; + MHfolderItem*pmaster = 0; + QString fname = ""; for ( it = folders->first(); it; it = folders->next() ) { - item = new MHfolderItem( it, this , item ); + fname = it->getDisplayName(); + /* this folder itself */ + if (fname=="/") { + folder = it; + continue; + } + if (pmaster) { + item = new MHfolderItem( it, pmaster, item, this ); + } else { + item = new MHfolderItem( it, this , item ); + } item->setSelectable(it->may_select()); @@ -768,2 +788,4 @@ QPopupMenu * MHviewItem::getContextMenu() m->insertItem(QObject::tr("Create new folder",contextName),1); + m->insertItem(QObject::tr("Delete all mails",contextName),2); + m->insertItem(QObject::tr("Move/Copie all mails",contextName),3); } @@ -784,2 +806,9 @@ void MHviewItem::createFolder() +void MHviewItem::downloadMails() +{ + AccountView*bl = accountView(); + if (!bl) return; + bl->downloadMails(folder,getWrapper()); +} + QStringList MHviewItem::subFolders() @@ -788,2 +817,3 @@ QStringList MHviewItem::subFolders() QListViewItem *child = firstChild(); + result.append("/"); while ( child ) { @@ -806,2 +836,8 @@ void MHviewItem::contextMenuSelected(int which) break; + case 2: + deleteAllMail(getWrapper(),folder); + break; + case 3: + downloadMails(); + break; default: @@ -821,5 +857,22 @@ MHfolderItem::MHfolderItem( Folder *folderInit, MHviewItem *parent , QListViewIt mbox = parent; - if (folder->getDisplayName().lower() == "outgoing") { + initName(); +} + +MHfolderItem::MHfolderItem( Folder *folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master) + : AccountViewItem( parent,after ) +{ + folder = folderInit; + mbox = master; + initName(); +} + +void MHfolderItem::initName() +{ + QString bName = folder->getDisplayName(); + if (bName.startsWith("/")&&bName.length()>1) { + bName.replace(0,1,""); + } + if (bName.lower() == "outgoing") { setPixmap( 0, PIXMAP_OUTBOXFOLDER ); - } else if (folder->getDisplayName().lower() == "inbox") { + } else if (bName.lower() == "inbox") { setPixmap( 0, PIXMAP_INBOXFOLDER); @@ -828,3 +881,3 @@ MHfolderItem::MHfolderItem( Folder *folderInit, MHviewItem *parent , QListViewIt } - setText( 0, folder->getDisplayName() ); + setText( 0, bName ); } @@ -875,2 +928,3 @@ QPopupMenu * MHfolderItem::getContextMenu() m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); + m->insertItem(QObject::tr("Create new folder",contextName),3); } @@ -902 +956,2 @@ void MHfolderItem::contextMenuSelected(int which) } + |