summaryrefslogtreecommitdiff
path: root/noncore/net/mail/accountview.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/mail/accountview.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountview.cpp33
1 files changed, 29 insertions, 4 deletions
diff --git a/noncore/net/mail/accountview.cpp b/noncore/net/mail/accountview.cpp
index 77fa706..faa6982 100644
--- a/noncore/net/mail/accountview.cpp
+++ b/noncore/net/mail/accountview.cpp
@@ -1,11 +1,12 @@
#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>
/**
* POP3 Account stuff
*/
@@ -87,26 +88,39 @@ RecBody POP3folderItem::fetchBody(const RecMail&aMail)
QPopupMenu * POP3folderItem::getContextMenu()
{
QPopupMenu *m = new QPopupMenu(0);
if (m) {
m->insertItem(QObject::tr("Refresh header list",contextName),0);
m->insertItem(QObject::tr("Delete all mails",contextName),1);
+ m->insertItem(QObject::tr("Download all mails",contextName),2);
}
return m;
}
+void POP3folderItem::downloadMails()
+{
+ Selectstore sels;
+ sels.showMaximized();
+ sels.exec();
+}
+
void POP3folderItem::contextMenuSelected(int which)
{
AccountView * view = (AccountView*)listView();
switch (which) {
case 0:
+ /* must be 'cause pop3 lists are cached */
+ pop3->getWrapper()->logout();
view->refreshCurrent();
break;
case 1:
deleteAllMail(pop3->getWrapper(),folder);
break;
+ case 2:
+ downloadMails();
+ break;
default:
break;
}
}
/**
@@ -155,24 +169,31 @@ IMAPfolderItem*IMAPviewItem::findSubItem(const QString&path,IMAPfolderItem*start
void IMAPviewItem::refresh(QList<RecMail>&)
{
refreshFolders(false);
}
-void IMAPviewItem::refreshFolders(bool force)
+void IMAPviewItem::removeChilds()
{
- if (childCount()>0 && force==false) return;
- QList<Folder> *folders = wrapper->listFolders();
-
QListViewItem *child = firstChild();
while ( child ) {
QListViewItem *tmp = child;
child = child->nextSibling();
delete tmp;
}
+}
+
+void IMAPviewItem::refreshFolders(bool force)
+{
+ if (childCount()>0 && force==false) return;
+
+ removeChilds();
+
+ QList<Folder> *folders = wrapper->listFolders();
+
Folder *it;
QListViewItem*item = 0;
QListViewItem*titem = 0;
QString fname,del,search;
int pos;
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -243,12 +264,16 @@ void IMAPviewItem::contextMenuSelected(int id)
case 0:
refreshFolders(true);
break;
case 1:
createNewFolder();
break;
+ case 2:
+ removeChilds();
+ wrapper->logout();
+ break;
default:
break;
}
}
RecBody IMAPviewItem::fetchBody(const RecMail&)