summaryrefslogtreecommitdiff
path: root/noncore/net/mail/accountview.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/accountview.cpp40
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
@@ -4,21 +4,29 @@
#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()
{
@@ -29,12 +37,17 @@ 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();
@@ -86,12 +99,14 @@ 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:
@@ -175,13 +190,13 @@ void POP3folderItem::contextMenuSelected(int which)
*/
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()
{
@@ -334,12 +349,13 @@ void IMAPviewItem::contextMenuSelected(int id)
if (account->getOffline()==false) {
removeChilds();
wrapper->logout();
}
account->setOffline(!account->getOffline());
account->save();
+ SETPIX(PIXMAP_IMAPFOLDER);
refreshFolders(false);
break;
default:
break;
}
}
@@ -662,36 +678,32 @@ void AccountView::setupFolderselect(Selectstore*sels)
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
*/