summaryrefslogtreecommitdiff
path: root/noncore/net/mail/accountview.cpp
Unidiff
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,17 +1,18 @@
1#include "accountview.h" 1#include "accountview.h"
2#include <libmailwrapper/mailtypes.h> 2#include <libmailwrapper/mailtypes.h>
3#include <libmailwrapper/abstractmail.h> 3#include <libmailwrapper/abstractmail.h>
4#include "defines.h" 4#include "defines.h"
5#include "newmaildir.h" 5#include "newmaildir.h"
6#include "selectstore.h"
6#include <qmessagebox.h> 7#include <qmessagebox.h>
7#include <qpopupmenu.h> 8#include <qpopupmenu.h>
8 9
9/** 10/**
10 * POP3 Account stuff 11 * POP3 Account stuff
11 */ 12 */
12POP3viewItem::POP3viewItem( POP3account *a, QListView *parent ) 13POP3viewItem::POP3viewItem( POP3account *a, QListView *parent )
13 : AccountViewItem( parent ) 14 : AccountViewItem( parent )
14{ 15{
15 account = a; 16 account = a;
16 wrapper = AbstractMail::getWrapper( account ); 17 wrapper = AbstractMail::getWrapper( account );
17 setPixmap( 0, PIXMAP_POP3FOLDER ); 18 setPixmap( 0, PIXMAP_POP3FOLDER );
@@ -81,38 +82,51 @@ void POP3folderItem::refresh(QList<RecMail>&target)
81 82
82RecBody POP3folderItem::fetchBody(const RecMail&aMail) 83RecBody POP3folderItem::fetchBody(const RecMail&aMail)
83{ 84{
84 return pop3->getWrapper()->fetchBody(aMail); 85 return pop3->getWrapper()->fetchBody(aMail);
85} 86}
86 87
87QPopupMenu * POP3folderItem::getContextMenu() 88QPopupMenu * POP3folderItem::getContextMenu()
88{ 89{
89 QPopupMenu *m = new QPopupMenu(0); 90 QPopupMenu *m = new QPopupMenu(0);
90 if (m) { 91 if (m) {
91 m->insertItem(QObject::tr("Refresh header list",contextName),0); 92 m->insertItem(QObject::tr("Refresh header list",contextName),0);
92 m->insertItem(QObject::tr("Delete all mails",contextName),1); 93 m->insertItem(QObject::tr("Delete all mails",contextName),1);
94 m->insertItem(QObject::tr("Download all mails",contextName),2);
93 } 95 }
94 return m; 96 return m;
95} 97}
96 98
99void POP3folderItem::downloadMails()
100{
101 Selectstore sels;
102 sels.showMaximized();
103 sels.exec();
104}
105
97void POP3folderItem::contextMenuSelected(int which) 106void POP3folderItem::contextMenuSelected(int which)
98{ 107{
99 AccountView * view = (AccountView*)listView(); 108 AccountView * view = (AccountView*)listView();
100 switch (which) { 109 switch (which) {
101 case 0: 110 case 0:
111 /* must be 'cause pop3 lists are cached */
112 pop3->getWrapper()->logout();
102 view->refreshCurrent(); 113 view->refreshCurrent();
103 break; 114 break;
104 case 1: 115 case 1:
105 deleteAllMail(pop3->getWrapper(),folder); 116 deleteAllMail(pop3->getWrapper(),folder);
106 break; 117 break;
118 case 2:
119 downloadMails();
120 break;
107 default: 121 default:
108 break; 122 break;
109 } 123 }
110} 124}
111 125
112/** 126/**
113 * IMAP Account stuff 127 * IMAP Account stuff
114 */ 128 */
115IMAPviewItem::IMAPviewItem( IMAPaccount *a, QListView *parent ) 129IMAPviewItem::IMAPviewItem( IMAPaccount *a, QListView *parent )
116 : AccountViewItem( parent ) 130 : AccountViewItem( parent )
117{ 131{
118 account = a; 132 account = a;
@@ -149,36 +163,43 @@ IMAPfolderItem*IMAPviewItem::findSubItem(const QString&path,IMAPfolderItem*start
149 } 163 }
150 } 164 }
151 pitem=(IMAPfolderItem*)pitem->nextSibling(); 165 pitem=(IMAPfolderItem*)pitem->nextSibling();
152 } 166 }
153 return pitem; 167 return pitem;
154} 168}
155 169
156void IMAPviewItem::refresh(QList<RecMail>&) 170void IMAPviewItem::refresh(QList<RecMail>&)
157{ 171{
158 refreshFolders(false); 172 refreshFolders(false);
159} 173}
160 174
161void IMAPviewItem::refreshFolders(bool force) 175void IMAPviewItem::removeChilds()
162{ 176{
163 if (childCount()>0 && force==false) return;
164 QList<Folder> *folders = wrapper->listFolders();
165
166 QListViewItem *child = firstChild(); 177 QListViewItem *child = firstChild();
167 while ( child ) { 178 while ( child ) {
168 QListViewItem *tmp = child; 179 QListViewItem *tmp = child;
169 child = child->nextSibling(); 180 child = child->nextSibling();
170 delete tmp; 181 delete tmp;
171 } 182 }
172 183
184}
185
186void IMAPviewItem::refreshFolders(bool force)
187{
188 if (childCount()>0 && force==false) return;
189
190 removeChilds();
191
192 QList<Folder> *folders = wrapper->listFolders();
193
173 Folder *it; 194 Folder *it;
174 QListViewItem*item = 0; 195 QListViewItem*item = 0;
175 QListViewItem*titem = 0; 196 QListViewItem*titem = 0;
176 QString fname,del,search; 197 QString fname,del,search;
177 int pos; 198 int pos;
178 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 199 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
179 folders->setAutoDelete(false); 200 folders->setAutoDelete(false);
180 201
181 for ( it = folders->first(); it; it = folders->next() ) { 202 for ( it = folders->first(); it; it = folders->next() ) {
182 if (it->getDisplayName().lower()=="inbox") { 203 if (it->getDisplayName().lower()=="inbox") {
183 item = new IMAPfolderItem( it, this , item ); 204 item = new IMAPfolderItem( it, this , item );
184 folders->remove(it); 205 folders->remove(it);
@@ -237,24 +258,28 @@ void IMAPviewItem::createNewFolder()
237} 258}
238 259
239void IMAPviewItem::contextMenuSelected(int id) 260void IMAPviewItem::contextMenuSelected(int id)
240{ 261{
241 qDebug("Id selected: %i",id); 262 qDebug("Id selected: %i",id);
242 switch (id) { 263 switch (id) {
243 case 0: 264 case 0:
244 refreshFolders(true); 265 refreshFolders(true);
245 break; 266 break;
246 case 1: 267 case 1:
247 createNewFolder(); 268 createNewFolder();
248 break; 269 break;
270 case 2:
271 removeChilds();
272 wrapper->logout();
273 break;
249 default: 274 default:
250 break; 275 break;
251 } 276 }
252} 277}
253 278
254RecBody IMAPviewItem::fetchBody(const RecMail&) 279RecBody IMAPviewItem::fetchBody(const RecMail&)
255{ 280{
256 return RecBody(); 281 return RecBody();
257} 282}
258 283
259IMAPfolderItem::~IMAPfolderItem() 284IMAPfolderItem::~IMAPfolderItem()
260{ 285{