Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/net/mail/accountview.cpp | 40 |
1 files changed, 26 insertions, 14 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp index eea021f..b7de7b9 100644 --- a/noncore/net/mail/accountview.cpp +++ b/noncore/net/mail/accountview.cpp @@ -1,46 +1,59 @@ #include "accountview.h" #include <libmailwrapper/mailtypes.h> #include <libmailwrapper/abstractmail.h> #include "defines.h" #include "newmaildir.h" #include "selectstore.h" #include <qmessagebox.h> #include <qpopupmenu.h> +#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );} /** * POP3 Account stuff */ POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) : AccountViewItem( parent ) { account = a; wrapper = AbstractMail::getWrapper( account ); - setPixmap( 0, PIXMAP_POP3FOLDER ); + SETPIX(PIXMAP_POP3FOLDER); +#if 0 + if (!account->getOffline()) { + setPixmap( 0, ); + } else { + setPixmap( 0, PIXMAP_OFFLINE ); + } +#endif setText( 0, account->getAccountName() ); setOpen( true ); } POP3viewItem::~POP3viewItem() { delete wrapper; } AbstractMail *POP3viewItem::getWrapper() { return wrapper; } void POP3viewItem::refresh( QList<RecMail> & ) { + refresh(); +} + +void POP3viewItem::refresh() +{ if (account->getOffline()) return; QList<Folder> *folders = wrapper->listFolders(); QListViewItem *child = firstChild(); while ( child ) { QListViewItem *tmp = child; child = child->nextSibling(); delete tmp; } Folder *it; QListViewItem*item = 0; for ( it = folders->first(); it; it = folders->next() ) { item = new POP3folderItem( it, this , item ); @@ -80,24 +93,26 @@ void POP3viewItem::disconnect() delete tmp; } wrapper->logout(); } void POP3viewItem::setOnOffline() { if (!account->getOffline()) { disconnect(); } account->setOffline(!account->getOffline()); account->save(); + SETPIX(PIXMAP_POP3FOLDER); + refresh(); } void POP3viewItem::contextMenuSelected(int which) { switch (which) { case 0: disconnect(); break; case 1: setOnOffline(); break; } @@ -169,25 +184,25 @@ void POP3folderItem::contextMenuSelected(int which) break; } } /** * IMAP Account stuff */ IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent ) : AccountViewItem( parent ) { account = a; wrapper = AbstractMail::getWrapper( account ); - setPixmap( 0, PIXMAP_IMAPFOLDER ); + SETPIX(PIXMAP_IMAPFOLDER); setText( 0, account->getAccountName() ); setOpen( true ); } IMAPviewItem::~IMAPviewItem() { delete wrapper; } AbstractMail *IMAPviewItem::getWrapper() { return wrapper; @@ -328,24 +343,25 @@ void IMAPviewItem::contextMenuSelected(int id) break; case 2: removeChilds(); wrapper->logout(); break; case 3: if (account->getOffline()==false) { removeChilds(); wrapper->logout(); } account->setOffline(!account->getOffline()); account->save(); + SETPIX(PIXMAP_IMAPFOLDER); refreshFolders(false); break; default: break; } } RecBody IMAPviewItem::fetchBody(const RecMail&) { return RecBody(); } @@ -656,48 +672,44 @@ void AccountView::setupFolderselect(Selectstore*sels) sels->addAccounts(mboxAccounts[i]->getWrapper(),sFolders); } for (i=0; i < imapAccounts.count();++i) { if (imapAccounts[i]->offline()) continue; imapAccounts[i]->refreshFolders(false); sels->addAccounts(imapAccounts[i]->getWrapper(),imapAccounts[i]->subFolders()); } } void AccountView::downloadMails(Folder*fromFolder,AbstractMail*fromWrapper) { - unsigned int i = 0; AbstractMail*targetMail = 0; QString targetFolder = ""; Selectstore sels; setupFolderselect(&sels); if (!sels.exec()) return; targetMail = sels.currentMail(); targetFolder = sels.currentFolder(); if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) || targetFolder.isEmpty()) { return; } - - QList<RecMail> t; - fromWrapper->listMessages(fromFolder->getName(),t); - encodedString*st = 0; - for (i = 0; i < t.count();++i) { - RecMail*r = t.at(i); - st = fromWrapper->fetchRawBody(*r); - if (st) { - targetMail->storeMessage(st->Content(),st->Length(),targetFolder); - delete st; - } + if (sels.newFolder() && !targetMail->createMbox(targetFolder)) { + QMessageBox::critical(0,tr("Error creating new Folder"), + tr("<center>Error while creating<br>new folder - breaking.</center>")); + return; } + qDebug("Targetfolder: %s",targetFolder.latin1()); + qDebug("Fromfolder: %s",fromFolder->getName().latin1()); + fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails()); + refreshCurrent(); } /** * MBOX Account stuff */ MBOXviewItem::MBOXviewItem( const QString&aPath, AccountView *parent ) : AccountViewItem( parent ) { m_Path = aPath; /* be carefull - the space within settext is wanted - thats why the string twice */ wrapper = AbstractMail::getWrapper( m_Path,"Local Folders"); |