author | harlekin <harlekin> | 2003-12-08 13:37:32 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2003-12-08 13:37:32 (UTC) |
commit | 3b37149813d940535b12ba3b1edd938c41804a1b (patch) (side-by-side diff) | |
tree | 0e35a3b28fb147514f22a6a6cb5aaf246e4c5670 /noncore/net/mail/accountview.cpp | |
parent | 3d49fc2f7bba9c9e8856e5f4f7ec6c15ef84c252 (diff) | |
download | opie-3b37149813d940535b12ba3b1edd938c41804a1b.zip opie-3b37149813d940535b12ba3b1edd938c41804a1b.tar.gz opie-3b37149813d940535b12ba3b1edd938c41804a1b.tar.bz2 |
beginning of the new mailer
Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/accountview.cpp | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp new file mode 100644 index 0000000..c6a44ab --- a/dev/null +++ b/noncore/net/mail/accountview.cpp @@ -0,0 +1,110 @@ +#include "accountview.h" +#include "defines.h" + +IMAPviewItem::IMAPviewItem( IMAPaccount *a, QListView *parent ) + : AccountViewItem( parent ) +{ + account = a; + wrapper = new IMAPwrapper( account ); + setPixmap( 0, PIXMAP_IMAPFOLDER ); + setText( 0, account->getAccountName() ); + setOpen( true ); +} + +IMAPviewItem::~IMAPviewItem() +{ + delete wrapper; +} + +IMAPwrapper *IMAPviewItem::getWrapper() +{ + return wrapper; +} + +void IMAPviewItem::refresh(Maillist&) +{ + QList<IMAPFolder> *folders = wrapper->listFolders(); + + QListViewItem *child = firstChild(); + while ( child ) { + QListViewItem *tmp = child; + child = child->nextSibling(); + delete tmp; + } + + IMAPFolder *it; + for ( it = folders->first(); it; it = folders->next() ) { + (void) new IMAPfolderItem( it, this ); + } +} + + +IMAPfolderItem::~IMAPfolderItem() +{ + delete folder; +} + +IMAPfolderItem::IMAPfolderItem( IMAPFolder *folderInit, IMAPviewItem *parent ) + : AccountViewItem( parent ) +{ + folder = folderInit; + imap = parent; + setPixmap( 0, PIXMAP_IMAPFOLDER ); + setText( 0, folder->getDisplayName() ); +} + +void IMAPfolderItem::refresh(Maillist&target) +{ + imap->getWrapper()->listMessages( folder->getName(),target ); +} + +QString IMAPfolderItem::fetchBody(const RecMail&aMail) +{ + return imap->getWrapper()->fetchBody(folder->getName(),aMail); +} + +AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) + : QListView( parent, name, flags ) +{ + connect( this, SIGNAL( clicked( QListViewItem * ) ), + SLOT( refresh( QListViewItem * ) ) ); +} + +void AccountView::populate( QList<Account> list ) +{ + clear(); + + Account *it; + for ( it = list.first(); it; it = list.next() ) { + if ( it->getType().compare( "IMAP" ) == 0 ) { + IMAPaccount *imap = static_cast<IMAPaccount *>(it); + qDebug( "added IMAP " + imap->getAccountName() ); + (void) new IMAPviewItem( imap, this ); + } + } +} + +void AccountView::refresh(QListViewItem *item) { + qDebug("AccountView refresh..."); + if ( item ) { + Maillist headerlist; + headerlist.setAutoDelete(true); + AccountViewItem *view = static_cast<AccountViewItem *>(item); + view->refresh(headerlist); + emit refreshMailview(&headerlist); + } +} + +void AccountView::refreshAll() +{ + +} + +QString AccountView::fetchBody(const RecMail&aMail) +{ + QString Body; + QListViewItem*item = selectedItem (); + if (!item) return Body; + AccountViewItem *view = static_cast<AccountViewItem *>(item); + return view->fetchBody(aMail); +} |