summaryrefslogtreecommitdiffabout
authorzautrix <zautrix>2004-09-11 08:56:57 (UTC)
committer zautrix <zautrix>2004-09-11 08:56:57 (UTC)
commit0f45c977d7530b6ca827b7a7c7da7469f01800ca (patch) (unidiff)
tree0368bbd4865a0b21bb197cfd0a190fd0c2cd9242
parent1b41a0e3bf63364940daf132446939e3570c57ad (diff)
downloadkdepimpi-0f45c977d7530b6ca827b7a7c7da7469f01800ca.zip
kdepimpi-0f45c977d7530b6ca827b7a7c7da7469f01800ca.tar.gz
kdepimpi-0f45c977d7530b6ca827b7a7c7da7469f01800ca.tar.bz2
More config changes
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--kmicromail/accountitem.cpp12
-rw-r--r--kmicromail/accountitem.h1
-rw-r--r--kmicromail/accountview.cpp27
-rw-r--r--kmicromail/accountview.h1
-rw-r--r--kmicromail/imapconfigui.ui506
-rw-r--r--kmicromail/libmailwrapper/settings.cpp14
-rw-r--r--kmicromail/libmailwrapper/settings.h4
-rw-r--r--kmicromail/pop3configui.ui19
8 files changed, 434 insertions, 150 deletions
diff --git a/kmicromail/accountitem.cpp b/kmicromail/accountitem.cpp
index d0321ef..1698b40 100644
--- a/kmicromail/accountitem.cpp
+++ b/kmicromail/accountitem.cpp
@@ -1,1140 +1,1150 @@
1 1
2#include "accountitem.h" 2#include "accountitem.h"
3#include "accountview.h" 3#include "accountview.h"
4#include "newmaildir.h" 4#include "newmaildir.h"
5#include "nntpgroupsdlg.h" 5#include "nntpgroupsdlg.h"
6#include "defines.h" 6#include "defines.h"
7 7
8#include <libmailwrapper/mailtypes.h> 8#include <libmailwrapper/mailtypes.h>
9#include <libmailwrapper/abstractmail.h> 9#include <libmailwrapper/abstractmail.h>
10#include <libmailwrapper/mailwrapper.h> 10#include <libmailwrapper/mailwrapper.h>
11/* OPIE */ 11/* OPIE */
12//#include <qpe/qpeapplication.h> 12//#include <qpe/qpeapplication.h>
13 13
14/* QT */ 14/* QT */
15#include <qpopupmenu.h> 15#include <qpopupmenu.h>
16#include <qmessagebox.h> 16#include <qmessagebox.h>
17#include <kiconloader.h> 17#include <kiconloader.h>
18 18
19using namespace Opie::Core; 19using namespace Opie::Core;
20#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );} 20#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );}
21/** 21/**
22 * POP3 Account stuff 22 * POP3 Account stuff
23 */ 23 */
24POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) 24POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent )
25 : AccountViewItem( parent ) 25 : AccountViewItem( parent )
26{ 26{
27 account = a; 27 account = a;
28 wrapper = AbstractMail::getWrapper( account ); 28 wrapper = AbstractMail::getWrapper( account );
29 SETPIX(PIXMAP_POP3FOLDER); 29 SETPIX(PIXMAP_POP3FOLDER);
30#if 0 30#if 0
31 if (!account->getOffline()) 31 if (!account->getOffline())
32 { 32 {
33 setPixmap( 0, ); 33 setPixmap( 0, );
34 } 34 }
35 else 35 else
36 { 36 {
37 setPixmap( 0, PIXMAP_OFFLINE ); 37 setPixmap( 0, PIXMAP_OFFLINE );
38 } 38 }
39#endif 39#endif
40 setText( 0, account->getAccountName() ); 40 setText( 0, account->getAccountName() );
41 setOpen( true ); 41 setOpen( true );
42} 42}
43 43
44POP3viewItem::~POP3viewItem() 44POP3viewItem::~POP3viewItem()
45{ 45{
46 delete wrapper; 46 delete wrapper;
47} 47}
48 48
49AbstractMail *POP3viewItem::getWrapper() 49AbstractMail *POP3viewItem::getWrapper()
50{ 50{
51 return wrapper; 51 return wrapper;
52} 52}
53 53
54void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & ) 54void POP3viewItem::refresh(QValueList<Opie::Core::OSmartPointer<RecMail> > & )
55{ 55{
56 refresh(); 56 refresh();
57} 57}
58 58
59void POP3viewItem::refresh() 59void POP3viewItem::refresh()
60{ 60{
61 if (account->getOffline()) return; 61 if (account->getOffline()) return;
62 QValueList<FolderP> *folders = wrapper->listFolders(); 62 QValueList<FolderP> *folders = wrapper->listFolders();
63 QListViewItem *child = firstChild(); 63 QListViewItem *child = firstChild();
64 while ( child ) 64 while ( child )
65 { 65 {
66 QListViewItem *tmp = child; 66 QListViewItem *tmp = child;
67 child = child->nextSibling(); 67 child = child->nextSibling();
68 delete tmp; 68 delete tmp;
69 } 69 }
70 QValueList<FolderP>::ConstIterator it; 70 QValueList<FolderP>::ConstIterator it;
71 QListViewItem*item = 0; 71 QListViewItem*item = 0;
72 for ( it = folders->begin(); it!=folders->end(); ++it) 72 for ( it = folders->begin(); it!=folders->end(); ++it)
73 { 73 {
74 item = new POP3folderItem( (*it), this , item ); 74 item = new POP3folderItem( (*it), this , item );
75 item->setSelectable( (*it)->may_select()); 75 item->setSelectable( (*it)->may_select());
76 } 76 }
77 delete folders; 77 delete folders;
78} 78}
79 79
80RECBODYP POP3viewItem::fetchBody( const RecMailP &mail ) 80RECBODYP POP3viewItem::fetchBody( const RecMailP &mail )
81{ 81{
82 82
83 return wrapper->fetchBody( mail ); 83 return wrapper->fetchBody( mail );
84} 84}
85 85
86QPopupMenu * POP3viewItem::getContextMenu() 86QPopupMenu * POP3viewItem::getContextMenu()
87{ 87{
88 QPopupMenu *m = new QPopupMenu(0); 88 QPopupMenu *m = new QPopupMenu(0);
89 if (m) 89 if (m)
90 { 90 {
91 if (!account->getOffline()) 91 if (!account->getOffline())
92 { 92 {
93 m->insertItem(QObject::tr("Disconnect",contextName),0); 93 m->insertItem(QObject::tr("Disconnect",contextName),0);
94 m->insertItem(QObject::tr("Set offline",contextName),1); 94 m->insertItem(QObject::tr("Set offline",contextName),1);
95 m->insertItem(QObject::tr("Download messages",contextName),2);
95 } 96 }
96 else 97 else
97 { 98 {
98 m->insertItem(QObject::tr("Set online",contextName),1); 99 m->insertItem(QObject::tr("Set online",contextName),1);
99 } 100 }
100 } 101 }
101 return m; 102 return m;
102} 103}
103 104
104void POP3viewItem::disconnect() 105void POP3viewItem::disconnect()
105{ 106{
106 QListViewItem *child = firstChild(); 107 QListViewItem *child = firstChild();
107 while ( child ) 108 while ( child )
108 { 109 {
109 QListViewItem *tmp = child; 110 QListViewItem *tmp = child;
110 child = child->nextSibling(); 111 child = child->nextSibling();
111 delete tmp; 112 delete tmp;
112 } 113 }
113 wrapper->logout(); 114 wrapper->logout();
114} 115}
115 116
116void POP3viewItem::setOnOffline() 117void POP3viewItem::setOnOffline()
117{ 118{
118 if (!account->getOffline()) 119 if (!account->getOffline())
119 { 120 {
120 disconnect(); 121 disconnect();
121 } 122 }
122 account->setOffline(!account->getOffline()); 123 account->setOffline(!account->getOffline());
123 account->save(); 124 account->save();
124 SETPIX(PIXMAP_POP3FOLDER); 125 SETPIX(PIXMAP_POP3FOLDER);
125 refresh(); 126 refresh();
126} 127}
127 128
128void POP3viewItem::contextMenuSelected(int which) 129void POP3viewItem::contextMenuSelected(int which)
129{ 130{
130 switch (which) 131 switch (which)
131 { 132 {
132 case 0: 133 case 0:
133 disconnect(); 134 disconnect();
134 break; 135 break;
135 case 1: 136 case 1:
136 setOnOffline(); 137 setOnOffline();
137 break; 138 break;
139 case 2: // daunlood
140 AccountView*bl = accountView();
141 if (!bl) return;
142 AccountViewItem* in = findSubItem( "inbox" , 0);
143 if ( ! in )
144 return;
145 bl->downloadMailsInbox(in->getFolder() ,getWrapper());
146 setOnOffline();
147 break;
138 } 148 }
139} 149}
140 150
141POP3folderItem::~POP3folderItem() 151POP3folderItem::~POP3folderItem()
142{} 152{}
143 153
144POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after ) 154POP3folderItem::POP3folderItem( const FolderP&folderInit, POP3viewItem *parent , QListViewItem*after )
145 : AccountViewItem(folderInit,parent,after ) 155 : AccountViewItem(folderInit,parent,after )
146{ 156{
147 pop3 = parent; 157 pop3 = parent;
148 if (folder->getDisplayName().lower()!="inbox") 158 if (folder->getDisplayName().lower()!="inbox")
149 { 159 {
150 setPixmap( 0, PIXMAP_POP3FOLDER ); 160 setPixmap( 0, PIXMAP_POP3FOLDER );
151 } 161 }
152 else 162 else
153 { 163 {
154 setPixmap( 0, PIXMAP_INBOXFOLDER); 164 setPixmap( 0, PIXMAP_INBOXFOLDER);
155 } 165 }
156 setText( 0, folder->getDisplayName() ); 166 setText( 0, folder->getDisplayName() );
157} 167}
158 168
159void POP3folderItem::refresh(QValueList<RecMailP>&target) 169void POP3folderItem::refresh(QValueList<RecMailP>&target)
160{ 170{
161 if (folder->may_select()) 171 if (folder->may_select())
162 pop3->getWrapper()->listMessages( folder->getName(),target ); 172 pop3->getWrapper()->listMessages( folder->getName(),target );
163} 173}
164 174
165RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail) 175RECBODYP POP3folderItem::fetchBody(const RecMailP&aMail)
166{ 176{
167 return pop3->getWrapper()->fetchBody(aMail); 177 return pop3->getWrapper()->fetchBody(aMail);
168} 178}
169 179
170QPopupMenu * POP3folderItem::getContextMenu() 180QPopupMenu * POP3folderItem::getContextMenu()
171{ 181{
172 QPopupMenu *m = new QPopupMenu(0); 182 QPopupMenu *m = new QPopupMenu(0);
173 if (m) 183 if (m)
174 { 184 {
175 m->insertItem(QObject::tr("Refresh header list",contextName),0); 185 m->insertItem(QObject::tr("Refresh header list",contextName),0);
176 m->insertItem(QObject::tr("Delete all mails",contextName),1); 186 m->insertItem(QObject::tr("Delete all mails",contextName),1);
177 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 187 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
178 } 188 }
179 return m; 189 return m;
180} 190}
181 191
182void POP3folderItem::downloadMails() 192void POP3folderItem::downloadMails()
183{ 193{
184 AccountView*bl = pop3->accountView(); 194 AccountView*bl = pop3->accountView();
185 if (!bl) return; 195 if (!bl) return;
186 bl->downloadMails(folder,pop3->getWrapper()); 196 bl->downloadMails(folder,pop3->getWrapper());
187} 197}
188 198
189void POP3folderItem::contextMenuSelected(int which) 199void POP3folderItem::contextMenuSelected(int which)
190{ 200{
191 AccountView * view = (AccountView*)listView(); 201 AccountView * view = (AccountView*)listView();
192 switch (which) 202 switch (which)
193 { 203 {
194 case 0: 204 case 0:
195 /* must be 'cause pop3 lists are cached */ 205 /* must be 'cause pop3 lists are cached */
196 pop3->getWrapper()->logout(); 206 pop3->getWrapper()->logout();
197 view->refreshCurrent(); 207 view->refreshCurrent();
198 break; 208 break;
199 case 1: 209 case 1:
200 deleteAllMail(pop3->getWrapper(),folder); 210 deleteAllMail(pop3->getWrapper(),folder);
201 break; 211 break;
202 case 2: 212 case 2:
203 downloadMails(); 213 downloadMails();
204 break; 214 break;
205 default: 215 default:
206 break; 216 break;
207 } 217 }
208} 218}
209 219
210/** 220/**
211 * NNTP Account stuff 221 * NNTP Account stuff
212 */ 222 */
213NNTPviewItem::NNTPviewItem( NNTPaccount *a, AccountView *parent ) 223NNTPviewItem::NNTPviewItem( NNTPaccount *a, AccountView *parent )
214 : AccountViewItem( parent ) 224 : AccountViewItem( parent )
215{ 225{
216 account = a; 226 account = a;
217 wrapper = AbstractMail::getWrapper( account ); 227 wrapper = AbstractMail::getWrapper( account );
218 //FIXME 228 //FIXME
219 SETPIX(PIXMAP_POP3FOLDER); 229 SETPIX(PIXMAP_POP3FOLDER);
220#if 0 230#if 0
221 if (!account->getOffline()) 231 if (!account->getOffline())
222 { 232 {
223 setPixmap( 0, ); 233 setPixmap( 0, );
224 } 234 }
225 else 235 else
226 { 236 {
227 setPixmap( 0, PIXMAP_OFFLINE ); 237 setPixmap( 0, PIXMAP_OFFLINE );
228 } 238 }
229#endif 239#endif
230 setText( 0, account->getAccountName() ); 240 setText( 0, account->getAccountName() );
231 setOpen( true ); 241 setOpen( true );
232} 242}
233 243
234NNTPviewItem::~NNTPviewItem() 244NNTPviewItem::~NNTPviewItem()
235{ 245{
236 delete wrapper; 246 delete wrapper;
237} 247}
238 248
239AbstractMail *NNTPviewItem::getWrapper() 249AbstractMail *NNTPviewItem::getWrapper()
240{ 250{
241 return wrapper; 251 return wrapper;
242} 252}
243 253
244void NNTPviewItem::refresh( QValueList<RecMailP> & ) 254void NNTPviewItem::refresh( QValueList<RecMailP> & )
245{ 255{
246 refresh(); 256 refresh();
247} 257}
248 258
249void NNTPviewItem::refresh() 259void NNTPviewItem::refresh()
250{ 260{
251 if (account->getOffline()) return; 261 if (account->getOffline()) return;
252 QValueList<FolderP> *folders = wrapper->listFolders(); 262 QValueList<FolderP> *folders = wrapper->listFolders();
253 263
254 QListViewItem *child = firstChild(); 264 QListViewItem *child = firstChild();
255 while ( child ) 265 while ( child )
256 { 266 {
257 QListViewItem *tmp = child; 267 QListViewItem *tmp = child;
258 child = child->nextSibling(); 268 child = child->nextSibling();
259 delete tmp; 269 delete tmp;
260 } 270 }
261 QValueList<FolderP>::ConstIterator it; 271 QValueList<FolderP>::ConstIterator it;
262 QListViewItem*item = 0; 272 QListViewItem*item = 0;
263 for ( it = folders->begin(); it!=folders->end(); ++it) 273 for ( it = folders->begin(); it!=folders->end(); ++it)
264 { 274 {
265 item = new NNTPfolderItem( (*it), this , item ); 275 item = new NNTPfolderItem( (*it), this , item );
266 item->setSelectable( (*it)->may_select()); 276 item->setSelectable( (*it)->may_select());
267 } 277 }
268 delete folders; 278 delete folders;
269} 279}
270 280
271RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail ) 281RECBODYP NNTPviewItem::fetchBody( const RecMailP &mail )
272{ 282{
273 283
274 return wrapper->fetchBody( mail ); 284 return wrapper->fetchBody( mail );
275} 285}
276 286
277QPopupMenu * NNTPviewItem::getContextMenu() 287QPopupMenu * NNTPviewItem::getContextMenu()
278{ 288{
279 QPopupMenu *m = new QPopupMenu(0); 289 QPopupMenu *m = new QPopupMenu(0);
280 if (m) 290 if (m)
281 { 291 {
282 if (!account->getOffline()) 292 if (!account->getOffline())
283 { 293 {
284 m->insertItem(QObject::tr("Disconnect",contextName),0); 294 m->insertItem(QObject::tr("Disconnect",contextName),0);
285 m->insertItem(QObject::tr("Set offline",contextName),1); 295 m->insertItem(QObject::tr("Set offline",contextName),1);
286 m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2); 296 m->insertItem(QObject::tr("(Un-)Subscribe groups",contextName),2);
287 } 297 }
288 else 298 else
289 { 299 {
290 m->insertItem(QObject::tr("Set online",contextName),1); 300 m->insertItem(QObject::tr("Set online",contextName),1);
291 } 301 }
292 } 302 }
293 return m; 303 return m;
294} 304}
295 305
296void NNTPviewItem::subscribeGroups() 306void NNTPviewItem::subscribeGroups()
297{ 307{
298 NNTPGroupsDlg dlg(account); 308 NNTPGroupsDlg dlg(account);
299 dlg.showMaximized(); 309 dlg.showMaximized();
300 if ( dlg.exec()== QDialog::Accepted ){ 310 if ( dlg.exec()== QDialog::Accepted ){
301 refresh(); 311 refresh();
302 } 312 }
303} 313}
304 314
305void NNTPviewItem::disconnect() 315void NNTPviewItem::disconnect()
306{ 316{
307 QListViewItem *child = firstChild(); 317 QListViewItem *child = firstChild();
308 while ( child ) 318 while ( child )
309 { 319 {
310 QListViewItem *tmp = child; 320 QListViewItem *tmp = child;
311 child = child->nextSibling(); 321 child = child->nextSibling();
312 delete tmp; 322 delete tmp;
313 } 323 }
314 wrapper->logout(); 324 wrapper->logout();
315} 325}
316 326
317void NNTPviewItem::setOnOffline() 327void NNTPviewItem::setOnOffline()
318{ 328{
319 if (!account->getOffline()) 329 if (!account->getOffline())
320 { 330 {
321 disconnect(); 331 disconnect();
322 } 332 }
323 account->setOffline(!account->getOffline()); 333 account->setOffline(!account->getOffline());
324 account->save(); 334 account->save();
325 //FIXME 335 //FIXME
326 SETPIX(PIXMAP_POP3FOLDER); 336 SETPIX(PIXMAP_POP3FOLDER);
327 refresh(); 337 refresh();
328} 338}
329 339
330void NNTPviewItem::contextMenuSelected(int which) 340void NNTPviewItem::contextMenuSelected(int which)
331{ 341{
332 switch (which) 342 switch (which)
333 { 343 {
334 case 0: 344 case 0:
335 disconnect(); 345 disconnect();
336 break; 346 break;
337 case 1: 347 case 1:
338 setOnOffline(); 348 setOnOffline();
339 break; 349 break;
340 case 2: 350 case 2:
341 subscribeGroups(); 351 subscribeGroups();
342 break; 352 break;
343 } 353 }
344} 354}
345 355
346NNTPfolderItem::~NNTPfolderItem() 356NNTPfolderItem::~NNTPfolderItem()
347{} 357{}
348 358
349NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , QListViewItem*after ) 359NNTPfolderItem::NNTPfolderItem( const FolderP &folderInit, NNTPviewItem *parent , QListViewItem*after )
350 : AccountViewItem( folderInit, parent,after ) 360 : AccountViewItem( folderInit, parent,after )
351{ 361{
352 nntp = parent; 362 nntp = parent;
353 if (folder->getDisplayName().lower()!="inbox") 363 if (folder->getDisplayName().lower()!="inbox")
354 { 364 {
355 setPixmap( 0, PIXMAP_POP3FOLDER ); 365 setPixmap( 0, PIXMAP_POP3FOLDER );
356 } 366 }
357 else 367 else
358 { 368 {
359 setPixmap( 0, PIXMAP_INBOXFOLDER); 369 setPixmap( 0, PIXMAP_INBOXFOLDER);
360 } 370 }
361 setText( 0, folder->getDisplayName() ); 371 setText( 0, folder->getDisplayName() );
362} 372}
363 373
364void NNTPfolderItem::refresh(QValueList<RecMailP>&target) 374void NNTPfolderItem::refresh(QValueList<RecMailP>&target)
365{ 375{
366 if (folder->may_select()) 376 if (folder->may_select())
367 nntp->getWrapper()->listMessages( folder->getName(),target ); 377 nntp->getWrapper()->listMessages( folder->getName(),target );
368} 378}
369 379
370RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail) 380RECBODYP NNTPfolderItem::fetchBody(const RecMailP&aMail)
371{ 381{
372 return nntp->getWrapper()->fetchBody(aMail); 382 return nntp->getWrapper()->fetchBody(aMail);
373} 383}
374 384
375QPopupMenu * NNTPfolderItem::getContextMenu() 385QPopupMenu * NNTPfolderItem::getContextMenu()
376{ 386{
377 QPopupMenu *m = new QPopupMenu(0); 387 QPopupMenu *m = new QPopupMenu(0);
378 if (m) 388 if (m)
379 { 389 {
380 m->insertItem(QObject::tr("Refresh header list",contextName),0); 390 m->insertItem(QObject::tr("Refresh header list",contextName),0);
381 m->insertItem(QObject::tr("Copy all postings",contextName),1); 391 m->insertItem(QObject::tr("Copy all postings",contextName),1);
382 } 392 }
383 return m; 393 return m;
384} 394}
385 395
386void NNTPfolderItem::downloadMails() 396void NNTPfolderItem::downloadMails()
387{ 397{
388 AccountView*bl = nntp->accountView(); 398 AccountView*bl = nntp->accountView();
389 if (!bl) return; 399 if (!bl) return;
390 bl->downloadMails(folder,nntp->getWrapper()); 400 bl->downloadMails(folder,nntp->getWrapper());
391} 401}
392 402
393void NNTPfolderItem::contextMenuSelected(int which) 403void NNTPfolderItem::contextMenuSelected(int which)
394{ 404{
395 AccountView * view = (AccountView*)listView(); 405 AccountView * view = (AccountView*)listView();
396 switch (which) 406 switch (which)
397 { 407 {
398 case 0: 408 case 0:
399 /* must be 'cause pop3 lists are cached */ 409 /* must be 'cause pop3 lists are cached */
400 nntp->getWrapper()->logout(); 410 nntp->getWrapper()->logout();
401 view->refreshCurrent(); 411 view->refreshCurrent();
402 break; 412 break;
403 case 1: 413 case 1:
404 downloadMails(); 414 downloadMails();
405 break; 415 break;
406 default: 416 default:
407 break; 417 break;
408 } 418 }
409} 419}
410 420
411/** 421/**
412 * IMAP Account stuff 422 * IMAP Account stuff
413 */ 423 */
414IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent ) 424IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent )
415 : AccountViewItem( parent ) 425 : AccountViewItem( parent )
416{ 426{
417 account = a; 427 account = a;
418 wrapper = AbstractMail::getWrapper( account ); 428 wrapper = AbstractMail::getWrapper( account );
419 SETPIX(PIXMAP_IMAPFOLDER); 429 SETPIX(PIXMAP_IMAPFOLDER);
420 setText( 0, account->getAccountName() ); 430 setText( 0, account->getAccountName() );
421 setOpen( true ); 431 setOpen( true );
422} 432}
423 433
424IMAPviewItem::~IMAPviewItem() 434IMAPviewItem::~IMAPviewItem()
425{ 435{
426 delete wrapper; 436 delete wrapper;
427} 437}
428 438
429AbstractMail *IMAPviewItem::getWrapper() 439AbstractMail *IMAPviewItem::getWrapper()
430{ 440{
431 return wrapper; 441 return wrapper;
432} 442}
433 443
434void IMAPviewItem::refresh(QValueList<RecMailP>&) 444void IMAPviewItem::refresh(QValueList<RecMailP>&)
435{ 445{
436 refreshFolders(false); 446 refreshFolders(false);
437} 447}
438 448
439const QStringList&IMAPviewItem::subFolders() 449const QStringList&IMAPviewItem::subFolders()
440{ 450{
441 return currentFolders; 451 return currentFolders;
442} 452}
443 453
444void IMAPviewItem::refreshFolders(bool force) 454void IMAPviewItem::refreshFolders(bool force)
445{ 455{
446 if (childCount()>0 && force==false) return; 456 if (childCount()>0 && force==false) return;
447 if (account->getOffline()) return; 457 if (account->getOffline()) return;
448 458
449 removeChilds(); 459 removeChilds();
450 currentFolders.clear(); 460 currentFolders.clear();
451 QValueList<FolderP> * folders = wrapper->listFolders(); 461 QValueList<FolderP> * folders = wrapper->listFolders();
452 462
453 QValueList<FolderP>::Iterator it; 463 QValueList<FolderP>::Iterator it;
454 QListViewItem*item = 0; 464 QListViewItem*item = 0;
455 QListViewItem*titem = 0; 465 QListViewItem*titem = 0;
456 QString fname,del,search; 466 QString fname,del,search;
457 int pos; 467 int pos;
458 468
459 for ( it = folders->begin(); it!=folders->end(); ++it) 469 for ( it = folders->begin(); it!=folders->end(); ++it)
460 { 470 {
461 if ((*it)->getDisplayName().lower()=="inbox") 471 if ((*it)->getDisplayName().lower()=="inbox")
462 { 472 {
463 item = new IMAPfolderItem( (*it), this , item ); 473 item = new IMAPfolderItem( (*it), this , item );
464 folders->remove(it); 474 folders->remove(it);
465 break; 475 break;
466 } 476 }
467 } 477 }
468 for ( it = folders->begin(); it!=folders->end(); ++it) 478 for ( it = folders->begin(); it!=folders->end(); ++it)
469 { 479 {
470 fname = (*it)->getDisplayName(); 480 fname = (*it)->getDisplayName();
471 currentFolders.append((*it)->getName()); 481 currentFolders.append((*it)->getName());
472 pos = fname.findRev((*it)->Separator()); 482 pos = fname.findRev((*it)->Separator());
473 if (pos != -1) 483 if (pos != -1)
474 { 484 {
475 fname = fname.left(pos); 485 fname = fname.left(pos);
476 } 486 }
477 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname); 487 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname);
478 if (pitem) 488 if (pitem)
479 { 489 {
480 titem = item; 490 titem = item;
481 item = new IMAPfolderItem( (*it),pitem,pitem->firstChild(),this); 491 item = new IMAPfolderItem( (*it),pitem,pitem->firstChild(),this);
482 /* setup the short name */ 492 /* setup the short name */
483 item->setText(0,(*it)->getDisplayName().right((*it)->getDisplayName().length()-pos-1)); 493 item->setText(0,(*it)->getDisplayName().right((*it)->getDisplayName().length()-pos-1));
484 item = titem; 494 item = titem;
485 } 495 }
486 else 496 else
487 { 497 {
488 item = new IMAPfolderItem( (*it), this , item ); 498 item = new IMAPfolderItem( (*it), this , item );
489 } 499 }
490 } 500 }
491 delete folders; 501 delete folders;
492} 502}
493 503
494QPopupMenu * IMAPviewItem::getContextMenu() 504QPopupMenu * IMAPviewItem::getContextMenu()
495{ 505{
496 QPopupMenu *m = new QPopupMenu(0); 506 QPopupMenu *m = new QPopupMenu(0);
497 if (m) 507 if (m)
498 { 508 {
499 if (!account->getOffline()) 509 if (!account->getOffline())
500 { 510 {
501 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 511 m->insertItem(QObject::tr("Refresh folder list",contextName),0);
502 m->insertItem(QObject::tr("Create new folder",contextName),1); 512 m->insertItem(QObject::tr("Create new folder",contextName),1);
503 m->insertSeparator(); 513 m->insertSeparator();
504 m->insertItem(QObject::tr("Disconnect",contextName),2); 514 m->insertItem(QObject::tr("Disconnect",contextName),2);
505 m->insertItem(QObject::tr("Set offline",contextName),3); 515 m->insertItem(QObject::tr("Set offline",contextName),3);
506 } 516 }
507 else 517 else
508 { 518 {
509 m->insertItem(QObject::tr("Set online",contextName),3); 519 m->insertItem(QObject::tr("Set online",contextName),3);
510 } 520 }
511 } 521 }
512 return m; 522 return m;
513} 523}
514 524
515void IMAPviewItem::createNewFolder() 525void IMAPviewItem::createNewFolder()
516{ 526{
517 Newmdirdlg ndirdlg; 527 Newmdirdlg ndirdlg;
518 528
519 ndirdlg.showMaximized(); 529 ndirdlg.showMaximized();
520 if ( ndirdlg.exec() ) 530 if ( ndirdlg.exec() )
521 { 531 {
522 QString ndir = ndirdlg.Newdir(); 532 QString ndir = ndirdlg.Newdir();
523 bool makesubs = ndirdlg.subpossible(); 533 bool makesubs = ndirdlg.subpossible();
524 QString delemiter = "/"; 534 QString delemiter = "/";
525 IMAPfolderItem*item = (IMAPfolderItem*)firstChild(); 535 IMAPfolderItem*item = (IMAPfolderItem*)firstChild();
526 if (item) 536 if (item)
527 { 537 {
528 delemiter = item->Delemiter(); 538 delemiter = item->Delemiter();
529 } 539 }
530 if (wrapper->createMbox(ndir,0,delemiter,makesubs)) 540 if (wrapper->createMbox(ndir,0,delemiter,makesubs))
531 { 541 {
532 refreshFolders(true); 542 refreshFolders(true);
533 } 543 }
534 } 544 }
535} 545}
536 546
537void IMAPviewItem::contextMenuSelected(int id) 547void IMAPviewItem::contextMenuSelected(int id)
538{ 548{
539 549
540 switch (id) 550 switch (id)
541 { 551 {
542 case 0: 552 case 0:
543 refreshFolders(true); 553 refreshFolders(true);
544 break; 554 break;
545 case 1: 555 case 1:
546 createNewFolder(); 556 createNewFolder();
547 break; 557 break;
548 case 2: 558 case 2:
549 removeChilds(); 559 removeChilds();
550 wrapper->logout(); 560 wrapper->logout();
551 break; 561 break;
552 case 3: 562 case 3:
553 if (account->getOffline()==false) 563 if (account->getOffline()==false)
554 { 564 {
555 removeChilds(); 565 removeChilds();
556 wrapper->logout(); 566 wrapper->logout();
557 } 567 }
558 account->setOffline(!account->getOffline()); 568 account->setOffline(!account->getOffline());
559 account->save(); 569 account->save();
560 SETPIX(PIXMAP_IMAPFOLDER); 570 SETPIX(PIXMAP_IMAPFOLDER);
561 refreshFolders(false); 571 refreshFolders(false);
562 break; 572 break;
563 default: 573 default:
564 break; 574 break;
565 } 575 }
566} 576}
567 577
568RECBODYP IMAPviewItem::fetchBody(const RecMailP&) 578RECBODYP IMAPviewItem::fetchBody(const RecMailP&)
569{ 579{
570 return new RecBody(); 580 return new RecBody();
571} 581}
572 582
573bool IMAPviewItem::offline() 583bool IMAPviewItem::offline()
574{ 584{
575 return account->getOffline(); 585 return account->getOffline();
576} 586}
577 587
578IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , QListViewItem*after ) 588IMAPfolderItem::IMAPfolderItem( const FolderP& folderInit, IMAPviewItem *parent , QListViewItem*after )
579 : AccountViewItem( folderInit, parent , after ) 589 : AccountViewItem( folderInit, parent , after )
580{ 590{
581 imap = parent; 591 imap = parent;
582 if (folder->getDisplayName().lower()!="inbox") 592 if (folder->getDisplayName().lower()!="inbox")
583 { 593 {
584 setPixmap( 0, PIXMAP_IMAPFOLDER ); 594 setPixmap( 0, PIXMAP_IMAPFOLDER );
585 } 595 }
586 else 596 else
587 { 597 {
588 setPixmap( 0, PIXMAP_INBOXFOLDER); 598 setPixmap( 0, PIXMAP_INBOXFOLDER);
589 } 599 }
590 setText( 0, folder->getDisplayName() ); 600 setText( 0, folder->getDisplayName() );
591} 601}
592 602
593IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ) 603IMAPfolderItem::IMAPfolderItem(const FolderP &folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master )
594 : AccountViewItem(folderInit, parent,after ) 604 : AccountViewItem(folderInit, parent,after )
595{ 605{
596 imap = master; 606 imap = master;
597 if (folder->getDisplayName().lower()!="inbox") 607 if (folder->getDisplayName().lower()!="inbox")
598 { 608 {
599 setPixmap( 0, PIXMAP_IMAPFOLDER ); 609 setPixmap( 0, PIXMAP_IMAPFOLDER );
600 } 610 }
601 else 611 else
602 { 612 {
603 setPixmap( 0, PIXMAP_INBOXFOLDER); 613 setPixmap( 0, PIXMAP_INBOXFOLDER);
604 } 614 }
605 setText( 0, folder->getDisplayName() ); 615 setText( 0, folder->getDisplayName() );
606} 616}
607 617
608IMAPfolderItem::~IMAPfolderItem() 618IMAPfolderItem::~IMAPfolderItem()
609{} 619{}
610 620
611const QString& IMAPfolderItem::Delemiter()const 621const QString& IMAPfolderItem::Delemiter()const
612{ 622{
613 return folder->Separator(); 623 return folder->Separator();
614} 624}
615 625
616void IMAPfolderItem::refresh(QValueList<RecMailP>&target) 626void IMAPfolderItem::refresh(QValueList<RecMailP>&target)
617{ 627{
618 if (folder->may_select()) 628 if (folder->may_select())
619 { 629 {
620 imap->getWrapper()->listMessages( folder->getName(),target ); 630 imap->getWrapper()->listMessages( folder->getName(),target );
621 } 631 }
622 else 632 else
623 { 633 {
624 target.clear(); 634 target.clear();
625 } 635 }
626} 636}
627 637
628RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail) 638RECBODYP IMAPfolderItem::fetchBody(const RecMailP&aMail)
629{ 639{
630 return imap->getWrapper()->fetchBody(aMail); 640 return imap->getWrapper()->fetchBody(aMail);
631} 641}
632 642
633QPopupMenu * IMAPfolderItem::getContextMenu() 643QPopupMenu * IMAPfolderItem::getContextMenu()
634{ 644{
635 QPopupMenu *m = new QPopupMenu(0); 645 QPopupMenu *m = new QPopupMenu(0);
636 if (m) 646 if (m)
637 { 647 {
638 if (folder->may_select()) 648 if (folder->may_select())
639 { 649 {
640 m->insertItem(QObject::tr("Refresh header list",contextName),0); 650 m->insertItem(QObject::tr("Refresh header list",contextName),0);
641 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4); 651 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4);
642 m->insertItem(QObject::tr("Delete all mails",contextName),1); 652 m->insertItem(QObject::tr("Delete all mails",contextName),1);
643 } 653 }
644 if (folder->no_inferior()==false) 654 if (folder->no_inferior()==false)
645 { 655 {
646 m->insertItem(QObject::tr("Create new subfolder",contextName),2); 656 m->insertItem(QObject::tr("Create new subfolder",contextName),2);
647 } 657 }
648 if (folder->getDisplayName().lower()!="inbox") 658 if (folder->getDisplayName().lower()!="inbox")
649 { 659 {
650 m->insertItem(QObject::tr("Delete folder",contextName),3); 660 m->insertItem(QObject::tr("Delete folder",contextName),3);
651 } 661 }
652 } 662 }
653 return m; 663 return m;
654} 664}
655 665
656void IMAPfolderItem::createNewFolder() 666void IMAPfolderItem::createNewFolder()
657{ 667{
658 Newmdirdlg ndirdlg; 668 Newmdirdlg ndirdlg;
659 ndirdlg.showMaximized(); 669 ndirdlg.showMaximized();
660 if ( ndirdlg.exec() ) 670 if ( ndirdlg.exec() )
661 { 671 {
662 QString ndir = ndirdlg.Newdir(); 672 QString ndir = ndirdlg.Newdir();
663 bool makesubs = ndirdlg.subpossible(); 673 bool makesubs = ndirdlg.subpossible();
664 QString delemiter = Delemiter(); 674 QString delemiter = Delemiter();
665 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs)) 675 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs))
666 { 676 {
667 imap->refreshFolders(true); 677 imap->refreshFolders(true);
668 } 678 }
669 } 679 }
670} 680}
671 681
672void IMAPfolderItem::deleteFolder() 682void IMAPfolderItem::deleteFolder()
673{ 683{
674 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), 684 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName),
675 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), 685 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
676 QObject::tr("Yes",contextName), 686 QObject::tr("Yes",contextName),
677 QObject::tr("No",contextName),QString::null,1,1); 687 QObject::tr("No",contextName),QString::null,1,1);
678 688
679 if (yesno == 0) 689 if (yesno == 0)
680 { 690 {
681 if (imap->getWrapper()->deleteMbox(folder)) 691 if (imap->getWrapper()->deleteMbox(folder))
682 { 692 {
683 QListView*v=listView(); 693 QListView*v=listView();
684 IMAPviewItem * box = imap; 694 IMAPviewItem * box = imap;
685 /* be carefull - after that this object is destroyd so don't use 695 /* be carefull - after that this object is destroyd so don't use
686 * any member of it after that call!!*/ 696 * any member of it after that call!!*/
687 imap->refreshFolders(true); 697 imap->refreshFolders(true);
688 if (v) 698 if (v)
689 { 699 {
690 v->setSelected(box,true); 700 v->setSelected(box,true);
691 } 701 }
692 } 702 }
693 } 703 }
694} 704}
695 705
696void IMAPfolderItem::downloadMails() 706void IMAPfolderItem::downloadMails()
697{ 707{
698 AccountView*bl = imap->accountView(); 708 AccountView*bl = imap->accountView();
699 if (!bl) return; 709 if (!bl) return;
700 bl->downloadMails(folder,imap->getWrapper()); 710 bl->downloadMails(folder,imap->getWrapper());
701} 711}
702 712
703void IMAPfolderItem::contextMenuSelected(int id) 713void IMAPfolderItem::contextMenuSelected(int id)
704{ 714{
705 715
706 AccountView * view = (AccountView*)listView(); 716 AccountView * view = (AccountView*)listView();
707 switch(id) 717 switch(id)
708 { 718 {
709 case 0: 719 case 0:
710 view->refreshCurrent(); 720 view->refreshCurrent();
711 break; 721 break;
712 case 1: 722 case 1:
713 deleteAllMail(imap->getWrapper(),folder); 723 deleteAllMail(imap->getWrapper(),folder);
714 break; 724 break;
715 case 2: 725 case 2:
716 createNewFolder(); 726 createNewFolder();
717 break; 727 break;
718 case 3: 728 case 3:
719 deleteFolder(); 729 deleteFolder();
720 break; 730 break;
721 case 4: 731 case 4:
722 downloadMails(); 732 downloadMails();
723 break; 733 break;
724 default: 734 default:
725 break; 735 break;
726 } 736 }
727} 737}
728 738
729/** 739/**
730 * MH Account stuff 740 * MH Account stuff
731 */ 741 */
732/* MH is a little bit different - the top folder can contains messages other than in IMAP and 742/* MH is a little bit different - the top folder can contains messages other than in IMAP and
733 POP3 and MBOX */ 743 POP3 and MBOX */
734MHviewItem::MHviewItem( const QString&aPath, AccountView *parent ) 744MHviewItem::MHviewItem( const QString&aPath, AccountView *parent )
735 : AccountViewItem( parent ) 745 : AccountViewItem( parent )
736{ 746{
737 m_Path = aPath; 747 m_Path = aPath;
738 /* be carefull - the space within settext is wanted - thats why the string twice */ 748 /* be carefull - the space within settext is wanted - thats why the string twice */
739 wrapper = AbstractMail::getWrapper( m_Path,"Local Folders"); 749 wrapper = AbstractMail::getWrapper( m_Path,"Local Folders");
740 setPixmap( 0, PIXMAP_LOCALFOLDER ); 750 setPixmap( 0, PIXMAP_LOCALFOLDER );
741 setText( 0, " Local Folders" ); 751 setText( 0, " Local Folders" );
742 setOpen( true ); 752 setOpen( true );
743 folder = 0; 753 folder = 0;
744} 754}
745 755
746MHviewItem::~MHviewItem() 756MHviewItem::~MHviewItem()
747{ 757{
748 delete wrapper; 758 delete wrapper;
749} 759}
750 760
751AbstractMail *MHviewItem::getWrapper() 761AbstractMail *MHviewItem::getWrapper()
752{ 762{
753 return wrapper; 763 return wrapper;
754} 764}
755 765
756void MHviewItem::refresh( QValueList<RecMailP> & target) 766void MHviewItem::refresh( QValueList<RecMailP> & target)
757{ 767{
758 refresh(false); 768 refresh(false);
759 getWrapper()->listMessages( "",target ); 769 getWrapper()->listMessages( "",target );
760} 770}
761 771
762void MHviewItem::refresh(bool force) 772void MHviewItem::refresh(bool force)
763{ 773{
764 if (childCount()>0 && force==false) return; 774 if (childCount()>0 && force==false) return;
765 removeChilds(); 775 removeChilds();
766 currentFolders.clear(); 776 currentFolders.clear();
767 QValueList<FolderP> *folders = wrapper->listFolders(); 777 QValueList<FolderP> *folders = wrapper->listFolders();
768 QValueList<FolderP>::ConstIterator it; 778 QValueList<FolderP>::ConstIterator it;
769 MHfolderItem*item = 0; 779 MHfolderItem*item = 0;
770 MHfolderItem*pmaster = 0; 780 MHfolderItem*pmaster = 0;
771 QString fname = ""; 781 QString fname = "";
772 int pos; 782 int pos;
773 for ( it = folders->begin(); it!=folders->end(); ++it) 783 for ( it = folders->begin(); it!=folders->end(); ++it)
774 { 784 {
775 fname = (*it)->getDisplayName(); 785 fname = (*it)->getDisplayName();
776 /* this folder itself */ 786 /* this folder itself */
777 if (fname=="/") 787 if (fname=="/")
778 { 788 {
779 currentFolders.append(fname); 789 currentFolders.append(fname);
780 folder = (*it); 790 folder = (*it);
781 continue; 791 continue;
782 } 792 }
783 currentFolders.append(fname); 793 currentFolders.append(fname);
784 pos = fname.findRev("/"); 794 pos = fname.findRev("/");
785 if (pos > 0) 795 if (pos > 0)
786 { 796 {
787 fname = fname.left(pos); 797 fname = fname.left(pos);
788 pmaster = (MHfolderItem*)findSubItem(fname); 798 pmaster = (MHfolderItem*)findSubItem(fname);
789 } 799 }
790 else 800 else
791 { 801 {
792 pmaster = 0; 802 pmaster = 0;
793 } 803 }
794 if (pmaster) 804 if (pmaster)
795 { 805 {
796 item = new MHfolderItem( (*it), pmaster, item, this ); 806 item = new MHfolderItem( (*it), pmaster, item, this );
797 } 807 }
798 else 808 else
799 { 809 {
800 item = new MHfolderItem( (*it), this , item ); 810 item = new MHfolderItem( (*it), this , item );
801 } 811 }
802 item->setSelectable((*it)->may_select()); 812 item->setSelectable((*it)->may_select());
803 } 813 }
804 delete folders; 814 delete folders;
805} 815}
806 816
807RECBODYP MHviewItem::fetchBody( const RecMailP &mail ) 817RECBODYP MHviewItem::fetchBody( const RecMailP &mail )
808{ 818{
809 819
810 return wrapper->fetchBody( mail ); 820 return wrapper->fetchBody( mail );
811} 821}
812 822
813QPopupMenu * MHviewItem::getContextMenu() 823QPopupMenu * MHviewItem::getContextMenu()
814{ 824{
815 QPopupMenu *m = new QPopupMenu(0); 825 QPopupMenu *m = new QPopupMenu(0);
816 if (m) 826 if (m)
817 { 827 {
818 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 828 m->insertItem(QObject::tr("Refresh folder list",contextName),0);
819 m->insertItem(QObject::tr("Create new folder",contextName),1); 829 m->insertItem(QObject::tr("Create new folder",contextName),1);
820 m->insertItem(QObject::tr("Delete all mails",contextName),2); 830 m->insertItem(QObject::tr("Delete all mails",contextName),2);
821 m->insertItem(QObject::tr("Move/Copie all mails",contextName),3); 831 m->insertItem(QObject::tr("Move/Copie all mails",contextName),3);
822 } 832 }
823 return m; 833 return m;
824} 834}
825 835
826void MHviewItem::createFolder() 836void MHviewItem::createFolder()
827{ 837{
828 Newmdirdlg ndirdlg(0,0,true); 838 Newmdirdlg ndirdlg(0,0,true);
829 ndirdlg.showMaximized(); 839 ndirdlg.showMaximized();
830 if ( ndirdlg.exec() ) 840 if ( ndirdlg.exec() )
831 { 841 {
832 QString ndir = ndirdlg.Newdir(); 842 QString ndir = ndirdlg.Newdir();
833 if (wrapper->createMbox(ndir)) 843 if (wrapper->createMbox(ndir))
834 { 844 {
835 refresh(true); 845 refresh(true);
836 } 846 }
837 } 847 }
838} 848}
839 849
840void MHviewItem::downloadMails() 850void MHviewItem::downloadMails()
841{ 851{
842 AccountView*bl = accountView(); 852 AccountView*bl = accountView();
843 if (!bl) return; 853 if (!bl) return;
844 bl->downloadMails(folder,getWrapper()); 854 bl->downloadMails(folder,getWrapper());
845} 855}
846 856
847QStringList MHviewItem::subFolders() 857QStringList MHviewItem::subFolders()
848{ 858{
849 return currentFolders; 859 return currentFolders;
850} 860}
851 861
852void MHviewItem::contextMenuSelected(int which) 862void MHviewItem::contextMenuSelected(int which)
853{ 863{
854 switch (which) 864 switch (which)
855 { 865 {
856 case 0: 866 case 0:
857 refresh(true); 867 refresh(true);
858 break; 868 break;
859 case 1: 869 case 1:
860 createFolder(); 870 createFolder();
861 break; 871 break;
862 case 2: 872 case 2:
863 deleteAllMail(getWrapper(),folder); 873 deleteAllMail(getWrapper(),folder);
864 break; 874 break;
865 case 3: 875 case 3:
866 downloadMails(); 876 downloadMails();
867 break; 877 break;
868 default: 878 default:
869 break; 879 break;
870 } 880 }
871} 881}
872 882
873MHfolderItem::~MHfolderItem() 883MHfolderItem::~MHfolderItem()
874{} 884{}
875 885
876MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , QListViewItem*after ) 886MHfolderItem::MHfolderItem( const FolderP &folderInit, MHviewItem *parent , QListViewItem*after )
877 : AccountViewItem(folderInit, parent,after ) 887 : AccountViewItem(folderInit, parent,after )
878{ 888{
879 mbox = parent; 889 mbox = parent;
880 initName(); 890 initName();
881} 891}
882 892
883MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master) 893MHfolderItem::MHfolderItem(const FolderP& folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master)
884 : AccountViewItem(folderInit, parent,after ) 894 : AccountViewItem(folderInit, parent,after )
885{ 895{
886 folder = folderInit; 896 folder = folderInit;
887 mbox = master; 897 mbox = master;
888 initName(); 898 initName();
889} 899}
890 900
891void MHfolderItem::initName() 901void MHfolderItem::initName()
892{ 902{
893 QString bName = folder->getDisplayName(); 903 QString bName = folder->getDisplayName();
894 if (bName.startsWith("/")&&bName.length()>1) 904 if (bName.startsWith("/")&&bName.length()>1)
895 { 905 {
896 bName.replace(0,1,""); 906 bName.replace(0,1,"");
897 } 907 }
898 int pos = bName.findRev("/"); 908 int pos = bName.findRev("/");
899 if (pos > 0) 909 if (pos > 0)
900 { 910 {
901 bName.replace(0,pos+1,""); 911 bName.replace(0,pos+1,"");
902 } 912 }
903 if (bName.lower() == "outgoing") 913 if (bName.lower() == "outgoing")
904 { 914 {
905 setPixmap( 0, PIXMAP_OUTBOXFOLDER ); 915 setPixmap( 0, PIXMAP_OUTBOXFOLDER );
906 } 916 }
907 else if (bName.lower() == "inbox") 917 else if (bName.lower() == "inbox")
908 { 918 {
909 setPixmap( 0, PIXMAP_INBOXFOLDER); 919 setPixmap( 0, PIXMAP_INBOXFOLDER);
910 } else if (bName.lower() == "drafts") { 920 } else if (bName.lower() == "drafts") {
911 setPixmap(0, SmallIcon ("edit")); 921 setPixmap(0, SmallIcon ("edit"));
912 } else { 922 } else {
913 setPixmap( 0, PIXMAP_MBOXFOLDER ); 923 setPixmap( 0, PIXMAP_MBOXFOLDER );
914 } 924 }
915 setText( 0, bName ); 925 setText( 0, bName );
916} 926}
917 927
918const FolderP&MHfolderItem::getFolder()const 928const FolderP&MHfolderItem::getFolder()const
919{ 929{
920 return folder; 930 return folder;
921} 931}
922 932
923void MHfolderItem::refresh(QValueList<RecMailP>&target) 933void MHfolderItem::refresh(QValueList<RecMailP>&target)
924{ 934{
925 if (folder->may_select()) 935 if (folder->may_select())
926 mbox->getWrapper()->listMessages( folder->getName(),target ); 936 mbox->getWrapper()->listMessages( folder->getName(),target );
927} 937}
928 938
929RECBODYP MHfolderItem::fetchBody(const RecMailP&aMail) 939RECBODYP MHfolderItem::fetchBody(const RecMailP&aMail)
930{ 940{
931 return mbox->getWrapper()->fetchBody(aMail); 941 return mbox->getWrapper()->fetchBody(aMail);
932} 942}
933 943
934void MHfolderItem::deleteFolder() 944void MHfolderItem::deleteFolder()
935{ 945{
936 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), 946 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName),
937 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), 947 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
938 QObject::tr("Yes",contextName), 948 QObject::tr("Yes",contextName),
939 QObject::tr("No",contextName),QString::null,1,1); 949 QObject::tr("No",contextName),QString::null,1,1);
940 950
941 if (yesno == 0) 951 if (yesno == 0)
942 { 952 {
943 if (mbox->getWrapper()->deleteMbox(folder)) 953 if (mbox->getWrapper()->deleteMbox(folder))
944 { 954 {
945 QListView*v=listView(); 955 QListView*v=listView();
946 MHviewItem * box = mbox; 956 MHviewItem * box = mbox;
947 /* be carefull - after that this object is destroyd so don't use 957 /* be carefull - after that this object is destroyd so don't use
948 * any member of it after that call!!*/ 958 * any member of it after that call!!*/
949 mbox->refresh(true); 959 mbox->refresh(true);
950 if (v) 960 if (v)
951 { 961 {
952 v->setSelected(box,true); 962 v->setSelected(box,true);
953 } 963 }
954 } 964 }
955 } 965 }
956} 966}
957 967
958QPopupMenu * MHfolderItem::getContextMenu() 968QPopupMenu * MHfolderItem::getContextMenu()
959{ 969{
960 QPopupMenu *m = new QPopupMenu(0); 970 QPopupMenu *m = new QPopupMenu(0);
961 if (m) 971 if (m)
962 { 972 {
963 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 973 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
964 m->insertItem(QObject::tr("Delete all mails",contextName),0); 974 m->insertItem(QObject::tr("Delete all mails",contextName),0);
965 m->insertItem(QObject::tr("Create new subfolder",contextName),3); 975 m->insertItem(QObject::tr("Create new subfolder",contextName),3);
966 m->insertItem(QObject::tr("Delete folder",contextName),1); 976 m->insertItem(QObject::tr("Delete folder",contextName),1);
967 } 977 }
968 return m; 978 return m;
969} 979}
970 980
971void MHfolderItem::downloadMails() 981void MHfolderItem::downloadMails()
972{ 982{
973 AccountView*bl = mbox->accountView(); 983 AccountView*bl = mbox->accountView();
974 if (!bl) return; 984 if (!bl) return;
975 bl->downloadMails(folder,mbox->getWrapper()); 985 bl->downloadMails(folder,mbox->getWrapper());
976} 986}
977 987
978void MHfolderItem::createFolder() 988void MHfolderItem::createFolder()
979{ 989{
980 Newmdirdlg ndirdlg(0,0,true); 990 Newmdirdlg ndirdlg(0,0,true);
981 ndirdlg.showMaximized(); 991 ndirdlg.showMaximized();
982 if (ndirdlg.exec() ) 992 if (ndirdlg.exec() )
983 { 993 {
984 QString ndir = ndirdlg.Newdir(); 994 QString ndir = ndirdlg.Newdir();
985 if (mbox->getWrapper()->createMbox(ndir,folder)) 995 if (mbox->getWrapper()->createMbox(ndir,folder))
986 { 996 {
987 QListView*v=listView(); 997 QListView*v=listView();
988 MHviewItem * box = mbox; 998 MHviewItem * box = mbox;
989 /* be carefull - after that this object is destroyd so don't use 999 /* be carefull - after that this object is destroyd so don't use
990 * any member of it after that call!!*/ 1000 * any member of it after that call!!*/
991 mbox->refresh(true); 1001 mbox->refresh(true);
992 if (v) 1002 if (v)
993 { 1003 {
994 v->setSelected(box,true); 1004 v->setSelected(box,true);
995 } 1005 }
996 } 1006 }
997 } 1007 }
998} 1008}
999 1009
1000void MHfolderItem::contextMenuSelected(int which) 1010void MHfolderItem::contextMenuSelected(int which)
1001{ 1011{
1002 switch(which) 1012 switch(which)
1003 { 1013 {
1004 case 0: 1014 case 0:
1005 deleteAllMail(mbox->getWrapper(),folder); 1015 deleteAllMail(mbox->getWrapper(),folder);
1006 break; 1016 break;
1007 case 1: 1017 case 1:
1008 deleteFolder(); 1018 deleteFolder();
1009 break; 1019 break;
1010 case 2: 1020 case 2:
1011 downloadMails(); 1021 downloadMails();
1012 break; 1022 break;
1013 case 3: 1023 case 3:
1014 createFolder(); 1024 createFolder();
1015 break; 1025 break;
1016 default: 1026 default:
1017 break; 1027 break;
1018 } 1028 }
1019} 1029}
1020 1030
1021bool MHfolderItem::isDraftfolder() 1031bool MHfolderItem::isDraftfolder()
1022{ 1032{
1023 if (folder && folder->getName()==AbstractMail::defaultLocalfolder()+"/"+AbstractMail::draftFolder()) return true; 1033 if (folder && folder->getName()==AbstractMail::defaultLocalfolder()+"/"+AbstractMail::draftFolder()) return true;
1024 return false; 1034 return false;
1025} 1035}
1026 1036
1027/** 1037/**
1028 * Generic stuff 1038 * Generic stuff
1029 */ 1039 */
1030 1040
1031const QString AccountViewItem::contextName="AccountViewItem"; 1041const QString AccountViewItem::contextName="AccountViewItem";
1032 1042
1033AccountViewItem::AccountViewItem( AccountView *parent ) 1043AccountViewItem::AccountViewItem( AccountView *parent )
1034 : QListViewItem( parent ) 1044 : QListViewItem( parent )
1035{ 1045{
1036 init(); 1046 init();
1037 m_Backlink = parent; 1047 m_Backlink = parent;
1038} 1048}
1039 1049
1040AccountViewItem::AccountViewItem( QListViewItem *parent) 1050AccountViewItem::AccountViewItem( QListViewItem *parent)
1041 : QListViewItem( parent),folder(0) 1051 : QListViewItem( parent),folder(0)
1042{ 1052{
1043 init(); 1053 init();
1044} 1054}
1045 1055
1046AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after ) 1056AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after )
1047 :QListViewItem( parent,after ),folder(0) 1057 :QListViewItem( parent,after ),folder(0)
1048{ 1058{
1049 init(); 1059 init();
1050} 1060}
1051 1061
1052AccountViewItem::AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ) 1062AccountViewItem::AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after )
1053 :QListViewItem( parent,after ),folder(folderInit) 1063 :QListViewItem( parent,after ),folder(folderInit)
1054{ 1064{
1055 init(); 1065 init();
1056} 1066}
1057 1067
1058void AccountViewItem::init() 1068void AccountViewItem::init()
1059{ 1069{
1060 m_Backlink = 0; 1070 m_Backlink = 0;
1061} 1071}
1062 1072
1063AccountViewItem::~AccountViewItem() 1073AccountViewItem::~AccountViewItem()
1064{ 1074{
1065 folder = 0; 1075 folder = 0;
1066} 1076}
1067 1077
1068AccountView*AccountViewItem::accountView() 1078AccountView*AccountViewItem::accountView()
1069{ 1079{
1070 return m_Backlink; 1080 return m_Backlink;
1071} 1081}
1072 1082
1073void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder) 1083void AccountViewItem::deleteAllMail(AbstractMail*wrapper,const FolderP&folder)
1074{ 1084{
1075 if (!wrapper) return; 1085 if (!wrapper) return;
1076 QString fname=""; 1086 QString fname="";
1077 if (folder) fname = folder->getDisplayName(); 1087 if (folder) fname = folder->getDisplayName();
1078 int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName), 1088 int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName),
1079 QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName). 1089 QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName).
1080 arg(fname), 1090 arg(fname),
1081 QObject::tr("Yes",contextName), 1091 QObject::tr("Yes",contextName),
1082 QObject::tr("No",contextName),QString::null,1,1); 1092 QObject::tr("No",contextName),QString::null,1,1);
1083 1093
1084 if (yesno == 0) 1094 if (yesno == 0)
1085 { 1095 {
1086 if (wrapper->deleteAllMail(folder)) 1096 if (wrapper->deleteAllMail(folder))
1087 { 1097 {
1088 AccountView * view = (AccountView*)listView(); 1098 AccountView * view = (AccountView*)listView();
1089 if (view) view->refreshCurrent(); 1099 if (view) view->refreshCurrent();
1090 } 1100 }
1091 } 1101 }
1092} 1102}
1093 1103
1094void AccountViewItem::removeChilds() 1104void AccountViewItem::removeChilds()
1095{ 1105{
1096 QListViewItem *child = firstChild(); 1106 QListViewItem *child = firstChild();
1097 while ( child ) 1107 while ( child )
1098 { 1108 {
1099 QListViewItem *tmp = child; 1109 QListViewItem *tmp = child;
1100 child = child->nextSibling(); 1110 child = child->nextSibling();
1101 delete tmp; 1111 delete tmp;
1102 } 1112 }
1103} 1113}
1104 1114
1105bool AccountViewItem::matchName(const QString&name)const 1115bool AccountViewItem::matchName(const QString&name)const
1106{ 1116{
1107 if (!folder) return false; 1117 if (!folder) return false;
1108 return folder->getDisplayName()==name; 1118 return folder->getDisplayName().lower()==name.lower();
1109} 1119}
1110 1120
1111 1121
1112AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start) 1122AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start)
1113{ 1123{
1114 AccountViewItem*pitem,*sitem; 1124 AccountViewItem*pitem,*sitem;
1115 if (!start) pitem = (AccountViewItem*)firstChild(); 1125 if (!start) pitem = (AccountViewItem*)firstChild();
1116 else pitem = (AccountViewItem*)start->firstChild(); 1126 else pitem = (AccountViewItem*)start->firstChild();
1117 while (pitem) 1127 while (pitem)
1118 { 1128 {
1119 if (pitem->matchName(path)) 1129 if (pitem->matchName(path))
1120 { 1130 {
1121 break; 1131 break;
1122 } 1132 }
1123 if (pitem->childCount()>0) 1133 if (pitem->childCount()>0)
1124 { 1134 {
1125 sitem = findSubItem(path,pitem); 1135 sitem = findSubItem(path,pitem);
1126 if (sitem) 1136 if (sitem)
1127 { 1137 {
1128 pitem = sitem; 1138 pitem = sitem;
1129 break; 1139 break;
1130 } 1140 }
1131 } 1141 }
1132 pitem=(AccountViewItem*)pitem->nextSibling(); 1142 pitem=(AccountViewItem*)pitem->nextSibling();
1133 } 1143 }
1134 return pitem; 1144 return pitem;
1135} 1145}
1136 1146
1137bool AccountViewItem::isDraftfolder() 1147bool AccountViewItem::isDraftfolder()
1138{ 1148{
1139 return false; 1149 return false;
1140} 1150}
diff --git a/kmicromail/accountitem.h b/kmicromail/accountitem.h
index f125eeb..faf919d 100644
--- a/kmicromail/accountitem.h
+++ b/kmicromail/accountitem.h
@@ -1,212 +1,213 @@
1#ifndef __ACCOUNT_ITEM 1#ifndef __ACCOUNT_ITEM
2#define __ACCOUNT_ITEM 2#define __ACCOUNT_ITEM
3 3
4#include <qlistview.h> 4#include <qlistview.h>
5#include <qlist.h> 5#include <qlist.h>
6#include <opie2/osmartpointer.h> 6#include <opie2/osmartpointer.h>
7 7
8class POP3wrapper; 8class POP3wrapper;
9class RecMail; 9class RecMail;
10class RecBody; 10class RecBody;
11class QPopupMenu; 11class QPopupMenu;
12class Selectstore; 12class Selectstore;
13class AccountView; 13class AccountView;
14class POP3account; 14class POP3account;
15class NNTPaccount; 15class NNTPaccount;
16class IMAPaccount; 16class IMAPaccount;
17class AbstractMail; 17class AbstractMail;
18class Folder; 18class Folder;
19 19
20#define RECBODYP Opie::Core::OSmartPointer<RecBody> 20#define RECBODYP Opie::Core::OSmartPointer<RecBody>
21 21
22class AccountViewItem : public QListViewItem 22class AccountViewItem : public QListViewItem
23{ 23{
24 24
25public: 25public:
26 AccountViewItem( AccountView *parent ); 26 AccountViewItem( AccountView *parent );
27 AccountViewItem( QListViewItem *parent); 27 AccountViewItem( QListViewItem *parent);
28 AccountViewItem( QListViewItem *parent , QListViewItem*after ); 28 AccountViewItem( QListViewItem *parent , QListViewItem*after );
29 AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after ); 29 AccountViewItem( const Opie::Core::OSmartPointer<Folder>&folderInit,QListViewItem *parent , QListViewItem*after );
30 30
31 virtual ~AccountViewItem(); 31 virtual ~AccountViewItem();
32 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&)=0; 32 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&)=0;
33 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&)=0; 33 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&)=0;
34 virtual QPopupMenu * getContextMenu(){return 0;}; 34 virtual QPopupMenu * getContextMenu(){return 0;};
35 virtual void contextMenuSelected(int){} 35 virtual void contextMenuSelected(int){}
36 virtual AccountView*accountView(); 36 virtual AccountView*accountView();
37 virtual bool matchName(const QString&name)const; 37 virtual bool matchName(const QString&name)const;
38 virtual bool isDraftfolder(); 38 virtual bool isDraftfolder();
39 Opie::Core::OSmartPointer<Folder> getFolder() { return folder; };
39 40
40protected: 41protected:
41 AccountViewItem*findSubItem(const QString&path,AccountViewItem*start=0); 42 AccountViewItem*findSubItem(const QString&path,AccountViewItem*start=0);
42 virtual void init(); 43 virtual void init();
43 virtual void removeChilds(); 44 virtual void removeChilds();
44 virtual void deleteAllMail(AbstractMail*wrapper,const Opie::Core::OSmartPointer<Folder>&f); 45 virtual void deleteAllMail(AbstractMail*wrapper,const Opie::Core::OSmartPointer<Folder>&f);
45 static const QString contextName; 46 static const QString contextName;
46 AccountView*m_Backlink; 47 AccountView*m_Backlink;
47 Opie::Core::OSmartPointer<Folder> folder; 48 Opie::Core::OSmartPointer<Folder> folder;
48}; 49};
49 50
50class POP3viewItem : public AccountViewItem 51class POP3viewItem : public AccountViewItem
51{ 52{
52 53
53public: 54public:
54 POP3viewItem( POP3account *a, AccountView *parent ); 55 POP3viewItem( POP3account *a, AccountView *parent );
55 virtual ~POP3viewItem(); 56 virtual ~POP3viewItem();
56 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); 57 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target );
57 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); 58 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail );
58 AbstractMail *getWrapper(); 59 AbstractMail *getWrapper();
59 virtual QPopupMenu * getContextMenu(); 60 virtual QPopupMenu * getContextMenu();
60 virtual void contextMenuSelected(int); 61 virtual void contextMenuSelected(int);
61 62
62protected: 63protected:
63 POP3account *account; 64 POP3account *account;
64 virtual void refresh(); 65 virtual void refresh();
65 AbstractMail *wrapper; 66 AbstractMail *wrapper;
66 void disconnect(); 67 void disconnect();
67 void setOnOffline(); 68 void setOnOffline();
68}; 69};
69 70
70class POP3folderItem : public AccountViewItem 71class POP3folderItem : public AccountViewItem
71{ 72{
72 73
73public: 74public:
74 POP3folderItem( const Opie::Core::OSmartPointer<Folder>&folder, POP3viewItem *parent , QListViewItem*after ); 75 POP3folderItem( const Opie::Core::OSmartPointer<Folder>&folder, POP3viewItem *parent , QListViewItem*after );
75 virtual ~POP3folderItem(); 76 virtual ~POP3folderItem();
76 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 77 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&);
77 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 78 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
78 virtual QPopupMenu * getContextMenu(); 79 virtual QPopupMenu * getContextMenu();
79 virtual void contextMenuSelected(int); 80 virtual void contextMenuSelected(int);
80 81
81protected: 82protected:
82 void downloadMails(); 83 void downloadMails();
83 POP3viewItem *pop3; 84 POP3viewItem *pop3;
84}; 85};
85 86
86 87
87class NNTPviewItem : public AccountViewItem 88class NNTPviewItem : public AccountViewItem
88{ 89{
89 90
90public: 91public:
91 NNTPviewItem( NNTPaccount *a, AccountView *parent ); 92 NNTPviewItem( NNTPaccount *a, AccountView *parent );
92 virtual ~NNTPviewItem(); 93 virtual ~NNTPviewItem();
93 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); 94 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target );
94 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); 95 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail );
95 AbstractMail *getWrapper(); 96 AbstractMail *getWrapper();
96 virtual QPopupMenu * getContextMenu(); 97 virtual QPopupMenu * getContextMenu();
97 virtual void contextMenuSelected(int); 98 virtual void contextMenuSelected(int);
98 99
99protected: 100protected:
100 NNTPaccount *account; 101 NNTPaccount *account;
101 virtual void refresh(); 102 virtual void refresh();
102 AbstractMail *wrapper; 103 AbstractMail *wrapper;
103 void disconnect(); 104 void disconnect();
104 void setOnOffline(); 105 void setOnOffline();
105 void subscribeGroups(); 106 void subscribeGroups();
106}; 107};
107 108
108class NNTPfolderItem : public AccountViewItem 109class NNTPfolderItem : public AccountViewItem
109{ 110{
110 111
111public: 112public:
112 NNTPfolderItem(const Opie::Core::OSmartPointer<Folder>&folder, NNTPviewItem *parent , QListViewItem*after ); 113 NNTPfolderItem(const Opie::Core::OSmartPointer<Folder>&folder, NNTPviewItem *parent , QListViewItem*after );
113 virtual ~NNTPfolderItem(); 114 virtual ~NNTPfolderItem();
114 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 115 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&);
115 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 116 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
116 virtual QPopupMenu * getContextMenu(); 117 virtual QPopupMenu * getContextMenu();
117 virtual void contextMenuSelected(int); 118 virtual void contextMenuSelected(int);
118 119
119protected: 120protected:
120 void downloadMails(); 121 void downloadMails();
121 NNTPviewItem *nntp; 122 NNTPviewItem *nntp;
122}; 123};
123 124
124 125
125 126
126class IMAPviewItem : public AccountViewItem 127class IMAPviewItem : public AccountViewItem
127{ 128{
128 friend class IMAPfolderItem; 129 friend class IMAPfolderItem;
129public: 130public:
130 IMAPviewItem( IMAPaccount *a, AccountView *parent ); 131 IMAPviewItem( IMAPaccount *a, AccountView *parent );
131 virtual ~IMAPviewItem(); 132 virtual ~IMAPviewItem();
132 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 133 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&);
133 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 134 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
134 AbstractMail *getWrapper(); 135 AbstractMail *getWrapper();
135 virtual QPopupMenu * getContextMenu(); 136 virtual QPopupMenu * getContextMenu();
136 virtual void contextMenuSelected(int); 137 virtual void contextMenuSelected(int);
137 const QStringList&subFolders(); 138 const QStringList&subFolders();
138 virtual void refreshFolders(bool force=false); 139 virtual void refreshFolders(bool force=false);
139 bool offline(); 140 bool offline();
140 141
141protected: 142protected:
142 virtual void createNewFolder(); 143 virtual void createNewFolder();
143 IMAPaccount *account; 144 IMAPaccount *account;
144 AbstractMail *wrapper; 145 AbstractMail *wrapper;
145 QStringList currentFolders; 146 QStringList currentFolders;
146}; 147};
147 148
148class IMAPfolderItem : public AccountViewItem 149class IMAPfolderItem : public AccountViewItem
149{ 150{
150 151
151public: 152public:
152 IMAPfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, IMAPviewItem *parent , QListViewItem*after ); 153 IMAPfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, IMAPviewItem *parent , QListViewItem*after );
153 IMAPfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ); 154 IMAPfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master );
154 virtual ~IMAPfolderItem(); 155 virtual ~IMAPfolderItem();
155 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 156 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&);
156 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 157 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
157 virtual QPopupMenu * getContextMenu(); 158 virtual QPopupMenu * getContextMenu();
158 virtual void contextMenuSelected(int); 159 virtual void contextMenuSelected(int);
159 virtual const QString& Delemiter()const; 160 virtual const QString& Delemiter()const;
160protected: 161protected:
161 virtual void createNewFolder(); 162 virtual void createNewFolder();
162 virtual void deleteFolder(); 163 virtual void deleteFolder();
163 virtual void downloadMails(); 164 virtual void downloadMails();
164 IMAPviewItem *imap; 165 IMAPviewItem *imap;
165}; 166};
166 167
167class MHviewItem : public AccountViewItem 168class MHviewItem : public AccountViewItem
168{ 169{
169 friend class MHfolderItem; 170 friend class MHfolderItem;
170 171
171public: 172public:
172 MHviewItem( const QString&aMboxPath, AccountView *parent ); 173 MHviewItem( const QString&aMboxPath, AccountView *parent );
173 virtual ~MHviewItem(); 174 virtual ~MHviewItem();
174 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target ); 175 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&target );
175 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail ); 176 virtual RECBODYP fetchBody( const Opie::Core::OSmartPointer<RecMail> &mail );
176 AbstractMail *getWrapper(); 177 AbstractMail *getWrapper();
177 virtual QPopupMenu * getContextMenu(); 178 virtual QPopupMenu * getContextMenu();
178 virtual void contextMenuSelected(int); 179 virtual void contextMenuSelected(int);
179 QStringList subFolders(); 180 QStringList subFolders();
180 virtual void refresh(bool force=false); 181 virtual void refresh(bool force=false);
181 182
182protected: 183protected:
183 void downloadMails(); 184 void downloadMails();
184 virtual void createFolder(); 185 virtual void createFolder();
185 QString m_Path; 186 QString m_Path;
186 AbstractMail *wrapper; 187 AbstractMail *wrapper;
187 QStringList currentFolders; 188 QStringList currentFolders;
188}; 189};
189 190
190class MHfolderItem : public AccountViewItem 191class MHfolderItem : public AccountViewItem
191{ 192{
192 193
193public: 194public:
194 MHfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, MHviewItem *parent , QListViewItem*after ); 195 MHfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, MHviewItem *parent , QListViewItem*after );
195 MHfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, MHfolderItem *parent, QListViewItem*after, MHviewItem*master); 196 MHfolderItem( const Opie::Core::OSmartPointer<Folder>&folder, MHfolderItem *parent, QListViewItem*after, MHviewItem*master);
196 virtual ~MHfolderItem(); 197 virtual ~MHfolderItem();
197 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&); 198 virtual void refresh(QValueList<Opie::Core::OSmartPointer<RecMail> >&);
198 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&); 199 virtual RECBODYP fetchBody(const Opie::Core::OSmartPointer<RecMail>&);
199 virtual QPopupMenu * getContextMenu(); 200 virtual QPopupMenu * getContextMenu();
200 virtual void contextMenuSelected(int); 201 virtual void contextMenuSelected(int);
201 virtual const Opie::Core::OSmartPointer<Folder>&getFolder()const; 202 virtual const Opie::Core::OSmartPointer<Folder>&getFolder()const;
202 virtual bool isDraftfolder(); 203 virtual bool isDraftfolder();
203 204
204protected: 205protected:
205 void downloadMails(); 206 void downloadMails();
206 virtual void createFolder(); 207 virtual void createFolder();
207 virtual void deleteFolder(); 208 virtual void deleteFolder();
208 void initName(); 209 void initName();
209 MHviewItem *mbox; 210 MHviewItem *mbox;
210}; 211};
211 212
212#endif 213#endif
diff --git a/kmicromail/accountview.cpp b/kmicromail/accountview.cpp
index 4ead545..85523b1 100644
--- a/kmicromail/accountview.cpp
+++ b/kmicromail/accountview.cpp
@@ -1,176 +1,203 @@
1 1
2#include "accountview.h" 2#include "accountview.h"
3#include "accountitem.h" 3#include "accountitem.h"
4#include "selectstore.h" 4#include "selectstore.h"
5 5
6#include <libmailwrapper/settings.h> 6#include <libmailwrapper/settings.h>
7#include <libmailwrapper/mailwrapper.h> 7#include <libmailwrapper/mailwrapper.h>
8#include <libmailwrapper/mailtypes.h> 8#include <libmailwrapper/mailtypes.h>
9#include <libmailwrapper/abstractmail.h> 9#include <libmailwrapper/abstractmail.h>
10 10
11/* OPIE */ 11/* OPIE */
12#include <qpe/qpeapplication.h> 12#include <qpe/qpeapplication.h>
13 13
14/* QT */ 14/* QT */
15#include <qmessagebox.h> 15#include <qmessagebox.h>
16#include <qpopupmenu.h> 16#include <qpopupmenu.h>
17#include <qcheckbox.h> 17#include <qcheckbox.h>
18#include <qspinbox.h> 18#include <qspinbox.h>
19 19
20using namespace Opie::Core; 20using namespace Opie::Core;
21AccountView::AccountView( QWidget *parent, const char *name, WFlags flags ) 21AccountView::AccountView( QWidget *parent, const char *name, WFlags flags )
22 : QListView( parent, name, flags ) 22 : QListView( parent, name, flags )
23{ 23{
24 connect( this, SIGNAL( selectionChanged(QListViewItem*) ), 24 connect( this, SIGNAL( selectionChanged(QListViewItem*) ),
25 SLOT( refresh(QListViewItem*) ) ); 25 SLOT( refresh(QListViewItem*) ) );
26 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this, 26 connect( this, SIGNAL( mouseButtonPressed(int,QListViewItem*,const QPoint&,int) ),this,
27 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) ); 27 SLOT( slotHold(int,QListViewItem*,const QPoint&,int) ) );
28 setSorting(0); 28 setSorting(0);
29} 29}
30 30
31AccountView::~AccountView() 31AccountView::~AccountView()
32{ 32{
33 imapAccounts.clear(); 33 imapAccounts.clear();
34 mhAccounts.clear(); 34 mhAccounts.clear();
35} 35}
36 36
37void AccountView::slotContextMenu(int id) 37void AccountView::slotContextMenu(int id)
38{ 38{
39 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); 39 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
40 if (!view) return; 40 if (!view) return;
41 view->contextMenuSelected(id); 41 view->contextMenuSelected(id);
42} 42}
43 43
44void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int) 44void AccountView::slotHold(int button, QListViewItem * item,const QPoint&,int)
45{ 45{
46 if (button==1) {return;} 46 if (button==1) {return;}
47 if (!item) return; 47 if (!item) return;
48 AccountViewItem *view = static_cast<AccountViewItem *>(item); 48 AccountViewItem *view = static_cast<AccountViewItem *>(item);
49 QPopupMenu*m = view->getContextMenu(); 49 QPopupMenu*m = view->getContextMenu();
50 if (!m) return; 50 if (!m) return;
51 connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int))); 51 connect(m,SIGNAL(activated(int)),this,SLOT(slotContextMenu(int)));
52 m->setFocus(); 52 m->setFocus();
53 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) ); 53 m->exec( QPoint( QCursor::pos().x(), QCursor::pos().y()) );
54 delete m; 54 delete m;
55} 55}
56 56
57void AccountView::populate( QList<Account> list ) 57void AccountView::populate( QList<Account> list )
58{ 58{
59 clear(); 59 clear();
60 60
61 imapAccounts.clear(); 61 imapAccounts.clear();
62 mhAccounts.clear(); 62 mhAccounts.clear();
63 63
64 mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this)); 64 mhAccounts.append(new MHviewItem(AbstractMail::defaultLocalfolder(),this));
65 65
66 Account *it; 66 Account *it;
67 for ( it = list.first(); it; it = list.next() ) 67 for ( it = list.first(); it; it = list.next() )
68 { 68 {
69 if ( it->getType() == MAILLIB::A_IMAP ) 69 if ( it->getType() == MAILLIB::A_IMAP )
70 { 70 {
71 IMAPaccount *imap = static_cast<IMAPaccount *>(it); 71 IMAPaccount *imap = static_cast<IMAPaccount *>(it);
72 imapAccounts.append(new IMAPviewItem( imap, this )); 72 imapAccounts.append(new IMAPviewItem( imap, this ));
73 } 73 }
74 else if ( it->getType() == MAILLIB::A_POP3 ) 74 else if ( it->getType() == MAILLIB::A_POP3 )
75 { 75 {
76 POP3account *pop3 = static_cast<POP3account *>(it); 76 POP3account *pop3 = static_cast<POP3account *>(it);
77 /* must not be hold 'cause it isn't required */ 77 /* must not be hold 'cause it isn't required */
78 (void) new POP3viewItem( pop3, this ); 78 (void) new POP3viewItem( pop3, this );
79 } 79 }
80 else if ( it->getType() == MAILLIB::A_NNTP ) 80 else if ( it->getType() == MAILLIB::A_NNTP )
81 { 81 {
82 NNTPaccount *nntp = static_cast<NNTPaccount *>(it); 82 NNTPaccount *nntp = static_cast<NNTPaccount *>(it);
83 /* must not be hold 'cause it isn't required */ 83 /* must not be hold 'cause it isn't required */
84 (void) new NNTPviewItem( nntp, this ); 84 (void) new NNTPviewItem( nntp, this );
85 } 85 }
86 } 86 }
87} 87}
88 88
89void AccountView::refresh(QListViewItem *item) 89void AccountView::refresh(QListViewItem *item)
90{ 90{
91 if ( item ) 91 if ( item )
92 { 92 {
93 m_currentItem = item; 93 m_currentItem = item;
94 QValueList<RecMailP> headerlist; 94 QValueList<RecMailP> headerlist;
95 AccountViewItem *view = static_cast<AccountViewItem *>(item); 95 AccountViewItem *view = static_cast<AccountViewItem *>(item);
96 view->refresh(headerlist); 96 view->refresh(headerlist);
97 emit refreshMailview(headerlist); 97 emit refreshMailview(headerlist);
98 } 98 }
99} 99}
100 100
101void AccountView::refreshCurrent() 101void AccountView::refreshCurrent()
102{ 102{
103 m_currentItem = currentItem(); 103 m_currentItem = currentItem();
104 if ( !m_currentItem ) return; 104 if ( !m_currentItem ) return;
105 QValueList<RecMailP> headerlist; 105 QValueList<RecMailP> headerlist;
106 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem); 106 AccountViewItem *view = static_cast<AccountViewItem *>(m_currentItem);
107 view->refresh(headerlist); 107 view->refresh(headerlist);
108 emit refreshMailview(headerlist); 108 emit refreshMailview(headerlist);
109} 109}
110 110
111void AccountView::refreshAll() 111void AccountView::refreshAll()
112{ 112{
113} 113}
114 114
115RecBodyP AccountView::fetchBody(const RecMailP&aMail) 115RecBodyP AccountView::fetchBody(const RecMailP&aMail)
116{ 116{
117 QListViewItem*item = selectedItem (); 117 QListViewItem*item = selectedItem ();
118 if (!item) return new RecBody(); 118 if (!item) return new RecBody();
119 AccountViewItem *view = static_cast<AccountViewItem *>(item); 119 AccountViewItem *view = static_cast<AccountViewItem *>(item);
120 return view->fetchBody(aMail); 120 return view->fetchBody(aMail);
121} 121}
122 122
123void AccountView::setupFolderselect(Selectstore*sels) 123void AccountView::setupFolderselect(Selectstore*sels)
124{ 124{
125 sels->showMaximized(); 125 sels->showMaximized();
126 QStringList sFolders; 126 QStringList sFolders;
127 unsigned int i = 0; 127 unsigned int i = 0;
128 for (i=0; i < mhAccounts.count();++i) 128 for (i=0; i < mhAccounts.count();++i)
129 { 129 {
130 mhAccounts[i]->refresh(false); 130 mhAccounts[i]->refresh(false);
131 sFolders = mhAccounts[i]->subFolders(); 131 sFolders = mhAccounts[i]->subFolders();
132 sels->addAccounts(mhAccounts[i]->getWrapper(),sFolders); 132 sels->addAccounts(mhAccounts[i]->getWrapper(),sFolders);
133 } 133 }
134 for (i=0; i < imapAccounts.count();++i) 134 for (i=0; i < imapAccounts.count();++i)
135 { 135 {
136 if (imapAccounts[i]->offline()) 136 if (imapAccounts[i]->offline())
137 continue; 137 continue;
138 imapAccounts[i]->refreshFolders(false); 138 imapAccounts[i]->refreshFolders(false);
139 sels->addAccounts(imapAccounts[i]->getWrapper(),imapAccounts[i]->subFolders()); 139 sels->addAccounts(imapAccounts[i]->getWrapper(),imapAccounts[i]->subFolders());
140 } 140 }
141} 141}
142void AccountView::downloadMailsInbox(const FolderP&fromFolder,AbstractMail*fromWrapper)
143{
144 AbstractMail*targetMail = 0;
145 QString targetFolder = "";
146 Selectstore sels;
147 setupFolderselect(&sels);
148 if (!sels.exec()) return;
149 targetMail = sels.currentMail();
150 targetFolder = sels.currentFolder();
151 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) ||
152 targetFolder.isEmpty())
153 {
154 return;
155 }
156 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
157 {
158 QMessageBox::critical(0,tr("Error creating new Folder"),
159 tr("<center>Error while creating<br>new folder - breaking.</center>"));
160 return;
161 }
162 int maxsize = 0;
163 if ( sels.useSize->isChecked())
164 maxsize = sels.sizeSpinBox->value();
165
166 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize);
167 refreshCurrent();
168}
142 169
143void AccountView::downloadMails(const FolderP&fromFolder,AbstractMail*fromWrapper) 170void AccountView::downloadMails(const FolderP&fromFolder,AbstractMail*fromWrapper)
144{ 171{
145 AbstractMail*targetMail = 0; 172 AbstractMail*targetMail = 0;
146 QString targetFolder = ""; 173 QString targetFolder = "";
147 Selectstore sels; 174 Selectstore sels;
148 setupFolderselect(&sels); 175 setupFolderselect(&sels);
149 if (!sels.exec()) return; 176 if (!sels.exec()) return;
150 targetMail = sels.currentMail(); 177 targetMail = sels.currentMail();
151 targetFolder = sels.currentFolder(); 178 targetFolder = sels.currentFolder();
152 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) || 179 if ( (fromWrapper==targetMail && fromFolder->getName()==targetFolder) ||
153 targetFolder.isEmpty()) 180 targetFolder.isEmpty())
154 { 181 {
155 return; 182 return;
156 } 183 }
157 if (sels.newFolder() && !targetMail->createMbox(targetFolder)) 184 if (sels.newFolder() && !targetMail->createMbox(targetFolder))
158 { 185 {
159 QMessageBox::critical(0,tr("Error creating new Folder"), 186 QMessageBox::critical(0,tr("Error creating new Folder"),
160 tr("<center>Error while creating<br>new folder - breaking.</center>")); 187 tr("<center>Error while creating<br>new folder - breaking.</center>"));
161 return; 188 return;
162 } 189 }
163 int maxsize = 0; 190 int maxsize = 0;
164 if ( sels.useSize->isChecked()) 191 if ( sels.useSize->isChecked())
165 maxsize = sels.sizeSpinBox->value(); 192 maxsize = sels.sizeSpinBox->value();
166 193
167 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize); 194 fromWrapper->mvcpAllMails(fromFolder,targetFolder,targetMail,sels.moveMails(), maxsize);
168 refreshCurrent(); 195 refreshCurrent();
169} 196}
170 197
171bool AccountView::currentisDraft() 198bool AccountView::currentisDraft()
172{ 199{
173 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem()); 200 AccountViewItem *view = static_cast<AccountViewItem *>(currentItem());
174 if (!view) return false; 201 if (!view) return false;
175 return view->isDraftfolder(); 202 return view->isDraftfolder();
176} 203}
diff --git a/kmicromail/accountview.h b/kmicromail/accountview.h
index 787b0b0..fcf33d1 100644
--- a/kmicromail/accountview.h
+++ b/kmicromail/accountview.h
@@ -1,45 +1,46 @@
1#ifndef ACCOUNTVIEW_H 1#ifndef ACCOUNTVIEW_H
2#define ACCOUNTVIEW_H 2#define ACCOUNTVIEW_H
3 3
4#include <qlistview.h> 4#include <qlistview.h>
5#include <qlist.h> 5#include <qlist.h>
6#include <opie2/osmartpointer.h> 6#include <opie2/osmartpointer.h>
7#include <libmailwrapper/mailtypes.h> 7#include <libmailwrapper/mailtypes.h>
8 8
9class Selectstore; 9class Selectstore;
10class Folder; 10class Folder;
11class AbstractMail; 11class AbstractMail;
12class Account; 12class Account;
13class IMAPviewItem; 13class IMAPviewItem;
14class MHviewItem; 14class MHviewItem;
15 15
16class AccountView : public QListView 16class AccountView : public QListView
17{ 17{
18 Q_OBJECT 18 Q_OBJECT
19 19
20public: 20public:
21 AccountView( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 ); 21 AccountView( QWidget *parent = 0, const char *name = 0, WFlags flags = 0 );
22 virtual ~AccountView(); 22 virtual ~AccountView();
23 virtual void populate( QList<Account> list ); 23 virtual void populate( QList<Account> list );
24 virtual RecBodyP fetchBody(const Opie::Core::OSmartPointer<RecMail>&aMail); 24 virtual RecBodyP fetchBody(const Opie::Core::OSmartPointer<RecMail>&aMail);
25 virtual void downloadMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper); 25 virtual void downloadMails(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper);
26 virtual void downloadMailsInbox(const Opie::Core::OSmartPointer<Folder>&fromFolder,AbstractMail*fromWrapper);
26 virtual bool currentisDraft(); 27 virtual bool currentisDraft();
27 28
28public slots: 29public slots:
29 virtual void refreshAll(); 30 virtual void refreshAll();
30 virtual void refresh(QListViewItem *item); 31 virtual void refresh(QListViewItem *item);
31 virtual void refreshCurrent(); 32 virtual void refreshCurrent();
32 virtual void slotHold(int, QListViewItem *,const QPoint&,int); 33 virtual void slotHold(int, QListViewItem *,const QPoint&,int);
33 virtual void slotContextMenu(int id); 34 virtual void slotContextMenu(int id);
34 void setupFolderselect(Selectstore*sels); 35 void setupFolderselect(Selectstore*sels);
35 36
36signals: 37signals:
37 void refreshMailview(const QValueList<RecMailP>& ); 38 void refreshMailview(const QValueList<RecMailP>& );
38 39
39protected: 40protected:
40 QListViewItem* m_currentItem; 41 QListViewItem* m_currentItem;
41 QValueList<IMAPviewItem*> imapAccounts; 42 QValueList<IMAPviewItem*> imapAccounts;
42 QValueList<MHviewItem*> mhAccounts; 43 QValueList<MHviewItem*> mhAccounts;
43}; 44};
44 45
45#endif 46#endif
diff --git a/kmicromail/imapconfigui.ui b/kmicromail/imapconfigui.ui
index a96c1a2..2e4c9ca 100644
--- a/kmicromail/imapconfigui.ui
+++ b/kmicromail/imapconfigui.ui
@@ -1,259 +1,475 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>IMAPconfigUI</class> 2<class>IMAPconfigUI</class>
3<widget> 3<widget>
4 <class>QDialog</class> 4 <class>QDialog</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>IMAPconfigUI</cstring> 7 <cstring>IMAPconfigUI</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>425</width> 14 <width>306</width>
15 <height>428</height> 15 <height>396</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>Configure IMAP</string> 20 <string>Configure IMAP</string>
21 </property> 21 </property>
22 <property> 22 <property>
23 <name>layoutMargin</name> 23 <name>layoutMargin</name>
24 </property> 24 </property>
25 <property> 25 <property>
26 <name>layoutSpacing</name> 26 <name>layoutSpacing</name>
27 </property> 27 </property>
28 <grid> 28 <vbox>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>3</number> 31 <number>3</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>3</number> 35 <number>1</number>
36 </property> 36 </property>
37 <widget row="2" column="1" > 37 <widget>
38 <class>QLineEdit</class> 38 <class>QLayoutWidget</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>serverLine</cstring> 41 <cstring>Layout22</cstring>
42 </property> 42 </property>
43 </widget> 43 <hbox>
44 <widget row="3" column="0" > 44 <property stdset="1">
45 <class>QLabel</class> 45 <name>margin</name>
46 <property stdset="1"> 46 <number>0</number>
47 <name>name</name> 47 </property>
48 <cstring>portLabel</cstring> 48 <property stdset="1">
49 </property> 49 <name>spacing</name>
50 <property stdset="1"> 50 <number>6</number>
51 <name>text</name> 51 </property>
52 <string>Port</string> 52 <widget>
53 </property> 53 <class>QLabel</class>
54 <property stdset="1">
55 <name>name</name>
56 <cstring>accountLabel</cstring>
57 </property>
58 <property stdset="1">
59 <name>text</name>
60 <string>Account</string>
61 </property>
62 </widget>
63 <widget>
64 <class>QLineEdit</class>
65 <property stdset="1">
66 <name>name</name>
67 <cstring>accountLine</cstring>
68 </property>
69 <property>
70 <name>toolTip</name>
71 <string>Name of the Account</string>
72 </property>
73 </widget>
74 </hbox>
54 </widget> 75 </widget>
55 <widget row="2" column="0" > 76 <widget>
56 <class>QLabel</class>
57 <property stdset="1">
58 <name>name</name>
59 <cstring>serverLabel</cstring>
60 </property>
61 <property stdset="1">
62 <name>text</name>
63 <string>Server</string>
64 </property>
65 </widget>
66 <widget row="3" column="1" >
67 <class>QLineEdit</class>
68 <property stdset="1">
69 <name>name</name>
70 <cstring>portLine</cstring>
71 </property>
72 </widget>
73 <widget row="0" column="1" >
74 <class>QLineEdit</class>
75 <property stdset="1">
76 <name>name</name>
77 <cstring>accountLine</cstring>
78 </property>
79 <property>
80 <name>toolTip</name>
81 <string>Name of the Account</string>
82 </property>
83 </widget>
84 <widget row="0" column="0" >
85 <class>QLabel</class>
86 <property stdset="1">
87 <name>name</name>
88 <cstring>accountLabel</cstring>
89 </property>
90 <property stdset="1">
91 <name>text</name>
92 <string>Account</string>
93 </property>
94 </widget>
95 <widget row="1" column="0" rowspan="1" colspan="2" >
96 <class>Line</class> 77 <class>Line</class>
97 <property stdset="1"> 78 <property stdset="1">
98 <name>name</name> 79 <name>name</name>
99 <cstring>line1</cstring> 80 <cstring>line1</cstring>
100 </property> 81 </property>
101 <property stdset="1"> 82 <property stdset="1">
102 <name>orientation</name> 83 <name>orientation</name>
103 <enum>Horizontal</enum> 84 <enum>Horizontal</enum>
104 </property> 85 </property>
105 </widget> 86 </widget>
106 <spacer row="12" column="1" > 87 <widget>
107 <property> 88 <class>QLayoutWidget</class>
108 <name>name</name>
109 <cstring>spacer</cstring>
110 </property>
111 <property stdset="1">
112 <name>orientation</name>
113 <enum>Vertical</enum>
114 </property>
115 <property stdset="1">
116 <name>sizeType</name>
117 <enum>Expanding</enum>
118 </property>
119 <property>
120 <name>sizeHint</name>
121 <size>
122 <width>20</width>
123 <height>20</height>
124 </size>
125 </property>
126 </spacer>
127 <widget row="8" column="1" >
128 <class>QLineEdit</class>
129 <property stdset="1"> 89 <property stdset="1">
130 <name>name</name> 90 <name>name</name>
131 <cstring>userLine</cstring> 91 <cstring>Layout23</cstring>
132 </property> 92 </property>
133 </widget> 93 <hbox>
134 <widget row="9" column="1" > 94 <property stdset="1">
135 <class>QLineEdit</class> 95 <name>margin</name>
136 <property stdset="1"> 96 <number>0</number>
137 <name>name</name> 97 </property>
138 <cstring>passLine</cstring> 98 <property stdset="1">
139 </property> 99 <name>spacing</name>
140 <property stdset="1"> 100 <number>6</number>
141 <name>echoMode</name> 101 </property>
142 <enum>Password</enum> 102 <widget>
143 </property> 103 <class>QLabel</class>
144 </widget> 104 <property stdset="1">
145 <widget row="11" column="0" > 105 <name>name</name>
146 <class>QLabel</class> 106 <cstring>serverLabel</cstring>
147 <property stdset="1"> 107 </property>
148 <name>name</name> 108 <property stdset="1">
149 <cstring>prefixLabel</cstring> 109 <name>text</name>
150 </property> 110 <string>Server</string>
151 <property stdset="1"> 111 </property>
152 <name>text</name> 112 </widget>
153 <string>Prefix</string> 113 <widget>
154 </property> 114 <class>QLineEdit</class>
115 <property stdset="1">
116 <name>name</name>
117 <cstring>serverLine</cstring>
118 </property>
119 </widget>
120 </hbox>
155 </widget> 121 </widget>
156 <widget row="11" column="1" > 122 <widget>
157 <class>QLineEdit</class> 123 <class>QLayoutWidget</class>
158 <property stdset="1"> 124 <property stdset="1">
159 <name>name</name> 125 <name>name</name>
160 <cstring>prefixLine</cstring> 126 <cstring>Layout24</cstring>
161 </property> 127 </property>
128 <hbox>
129 <property stdset="1">
130 <name>margin</name>
131 <number>0</number>
132 </property>
133 <property stdset="1">
134 <name>spacing</name>
135 <number>6</number>
136 </property>
137 <widget>
138 <class>QLabel</class>
139 <property stdset="1">
140 <name>name</name>
141 <cstring>portLabel</cstring>
142 </property>
143 <property stdset="1">
144 <name>text</name>
145 <string>Port</string>
146 </property>
147 </widget>
148 <widget>
149 <class>QLineEdit</class>
150 <property stdset="1">
151 <name>name</name>
152 <cstring>portLine</cstring>
153 </property>
154 </widget>
155 </hbox>
162 </widget> 156 </widget>
163 <widget row="8" column="0" > 157 <widget>
164 <class>QLabel</class> 158 <class>QLayoutWidget</class>
165 <property stdset="1"> 159 <property stdset="1">
166 <name>name</name> 160 <name>name</name>
167 <cstring>userLabel</cstring> 161 <cstring>Layout16</cstring>
168 </property> 162 </property>
169 <property stdset="1"> 163 <vbox>
170 <name>text</name> 164 <property stdset="1">
171 <string>User</string> 165 <name>margin</name>
172 </property> 166 <number>0</number>
167 </property>
168 <property stdset="1">
169 <name>spacing</name>
170 <number>6</number>
171 </property>
172 <widget>
173 <class>QLabel</class>
174 <property stdset="1">
175 <name>name</name>
176 <cstring>TextLabel1</cstring>
177 </property>
178 <property stdset="1">
179 <name>text</name>
180 <string>Use secure sockets:</string>
181 </property>
182 </widget>
183 <widget>
184 <class>QComboBox</class>
185 <property stdset="1">
186 <name>name</name>
187 <cstring>ComboBox1</cstring>
188 </property>
189 </widget>
190 <widget>
191 <class>QLineEdit</class>
192 <property stdset="1">
193 <name>name</name>
194 <cstring>CommandEdit</cstring>
195 </property>
196 <property stdset="1">
197 <name>text</name>
198 <string>ssh $SERVER exec</string>
199 </property>
200 </widget>
201 </vbox>
173 </widget> 202 </widget>
174 <widget row="7" column="0" rowspan="1" colspan="2" > 203 <widget>
175 <class>Line</class> 204 <class>Line</class>
176 <property stdset="1"> 205 <property stdset="1">
177 <name>name</name> 206 <name>name</name>
178 <cstring>line2</cstring> 207 <cstring>line2</cstring>
179 </property> 208 </property>
180 <property stdset="1"> 209 <property stdset="1">
181 <name>enabled</name> 210 <name>enabled</name>
182 <bool>true</bool> 211 <bool>true</bool>
183 </property> 212 </property>
184 <property stdset="1"> 213 <property stdset="1">
185 <name>caption</name> 214 <name>caption</name>
186 <string></string> 215 <string></string>
187 </property> 216 </property>
188 <property stdset="1"> 217 <property stdset="1">
189 <name>orientation</name> 218 <name>orientation</name>
190 <enum>Horizontal</enum> 219 <enum>Horizontal</enum>
191 </property> 220 </property>
192 <property> 221 <property>
193 <name>layoutMargin</name> 222 <name>layoutMargin</name>
194 </property> 223 </property>
195 <property> 224 <property>
196 <name>layoutSpacing</name> 225 <name>layoutSpacing</name>
197 </property> 226 </property>
198 </widget> 227 </widget>
199 <widget row="10" column="0" rowspan="1" colspan="2" > 228 <widget>
229 <class>QLayoutWidget</class>
230 <property stdset="1">
231 <name>name</name>
232 <cstring>Layout25</cstring>
233 </property>
234 <hbox>
235 <property stdset="1">
236 <name>margin</name>
237 <number>0</number>
238 </property>
239 <property stdset="1">
240 <name>spacing</name>
241 <number>6</number>
242 </property>
243 <widget>
244 <class>QLabel</class>
245 <property stdset="1">
246 <name>name</name>
247 <cstring>userLabel</cstring>
248 </property>
249 <property stdset="1">
250 <name>text</name>
251 <string>User</string>
252 </property>
253 </widget>
254 <widget>
255 <class>QLineEdit</class>
256 <property stdset="1">
257 <name>name</name>
258 <cstring>userLine</cstring>
259 </property>
260 </widget>
261 </hbox>
262 </widget>
263 <widget>
264 <class>QLayoutWidget</class>
265 <property stdset="1">
266 <name>name</name>
267 <cstring>Layout26</cstring>
268 </property>
269 <hbox>
270 <property stdset="1">
271 <name>margin</name>
272 <number>0</number>
273 </property>
274 <property stdset="1">
275 <name>spacing</name>
276 <number>6</number>
277 </property>
278 <widget>
279 <class>QLabel</class>
280 <property stdset="1">
281 <name>name</name>
282 <cstring>passLabel</cstring>
283 </property>
284 <property stdset="1">
285 <name>text</name>
286 <string>Password</string>
287 </property>
288 </widget>
289 <widget>
290 <class>QLineEdit</class>
291 <property stdset="1">
292 <name>name</name>
293 <cstring>passLine</cstring>
294 </property>
295 <property stdset="1">
296 <name>echoMode</name>
297 <enum>Password</enum>
298 </property>
299 </widget>
300 </hbox>
301 </widget>
302 <widget>
200 <class>Line</class> 303 <class>Line</class>
201 <property stdset="1"> 304 <property stdset="1">
202 <name>name</name> 305 <name>name</name>
203 <cstring>Line3</cstring> 306 <cstring>Line3</cstring>
204 </property> 307 </property>
205 <property stdset="1"> 308 <property stdset="1">
206 <name>orientation</name> 309 <name>orientation</name>
207 <enum>Horizontal</enum> 310 <enum>Horizontal</enum>
208 </property> 311 </property>
209 </widget> 312 </widget>
210 <widget row="9" column="0" > 313 <widget>
211 <class>QLabel</class> 314 <class>QLayoutWidget</class>
212 <property stdset="1"> 315 <property stdset="1">
213 <name>name</name> 316 <name>name</name>
214 <cstring>passLabel</cstring> 317 <cstring>Layout27</cstring>
215 </property> 318 </property>
319 <hbox>
320 <property stdset="1">
321 <name>margin</name>
322 <number>0</number>
323 </property>
324 <property stdset="1">
325 <name>spacing</name>
326 <number>6</number>
327 </property>
328 <widget>
329 <class>QLabel</class>
330 <property stdset="1">
331 <name>name</name>
332 <cstring>prefixLabel</cstring>
333 </property>
334 <property stdset="1">
335 <name>text</name>
336 <string>Prefix</string>
337 </property>
338 </widget>
339 <widget>
340 <class>QLineEdit</class>
341 <property stdset="1">
342 <name>name</name>
343 <cstring>prefixLine</cstring>
344 </property>
345 </widget>
346 </hbox>
347 </widget>
348 <widget>
349 <class>QLayoutWidget</class>
216 <property stdset="1"> 350 <property stdset="1">
217 <name>text</name> 351 <name>name</name>
218 <string>Password</string> 352 <cstring>Layout11</cstring>
219 </property> 353 </property>
354 <hbox>
355 <property stdset="1">
356 <name>margin</name>
357 <number>0</number>
358 </property>
359 <property stdset="1">
360 <name>spacing</name>
361 <number>6</number>
362 </property>
363 <widget>
364 <class>QLabel</class>
365 <property stdset="1">
366 <name>name</name>
367 <cstring>TextLabel1_2</cstring>
368 </property>
369 <property stdset="1">
370 <name>text</name>
371 <string>Local storage folder:</string>
372 </property>
373 </widget>
374 <widget>
375 <class>QLineEdit</class>
376 <property stdset="1">
377 <name>name</name>
378 <cstring>localFolder</cstring>
379 </property>
380 <property stdset="1">
381 <name>text</name>
382 <string></string>
383 </property>
384 </widget>
385 </hbox>
386 </widget>
387 <widget>
388 <class>QLayoutWidget</class>
389 <property stdset="1">
390 <name>name</name>
391 <cstring>Layout12</cstring>
392 </property>
393 <hbox>
394 <property stdset="1">
395 <name>margin</name>
396 <number>0</number>
397 </property>
398 <property stdset="1">
399 <name>spacing</name>
400 <number>6</number>
401 </property>
402 <widget>
403 <class>QCheckBox</class>
404 <property stdset="1">
405 <name>name</name>
406 <cstring>CheckBoxDown</cstring>
407 </property>
408 <property stdset="1">
409 <name>text</name>
410 <string>Download only messages smaller</string>
411 </property>
412 </widget>
413 <widget>
414 <class>QSpinBox</class>
415 <property stdset="1">
416 <name>name</name>
417 <cstring>SpinBoxDown</cstring>
418 </property>
419 <property stdset="1">
420 <name>suffix</name>
421 <string>kB</string>
422 </property>
423 <property stdset="1">
424 <name>maxValue</name>
425 <number>99999</number>
426 </property>
427 <property stdset="1">
428 <name>minValue</name>
429 <number>1</number>
430 </property>
431 </widget>
432 </hbox>
220 </widget> 433 </widget>
221 <widget row="6" column="0" rowspan="1" colspan="2" > 434 <widget>
222 <class>QLineEdit</class> 435 <class>QCheckBox</class>
223 <property stdset="1"> 436 <property stdset="1">
224 <name>name</name> 437 <name>name</name>
225 <cstring>CommandEdit</cstring> 438 <cstring>CheckBoxLeaveOn</cstring>
226 </property> 439 </property>
227 <property stdset="1"> 440 <property stdset="1">
228 <name>text</name> 441 <name>text</name>
229 <string>ssh $SERVER exec</string> 442 <string>Leave Messages on Server</string>
230 </property> 443 </property>
231 </widget> 444 </widget>
232 <widget row="5" column="0" rowspan="1" colspan="2" > 445 <spacer>
233 <class>QComboBox</class> 446 <property>
234 <property stdset="1">
235 <name>name</name> 447 <name>name</name>
236 <cstring>ComboBox1</cstring> 448 <cstring>spacer</cstring>
237 </property> 449 </property>
238 </widget>
239 <widget row="4" column="0" rowspan="1" colspan="2" >
240 <class>QLabel</class>
241 <property stdset="1"> 450 <property stdset="1">
242 <name>name</name> 451 <name>orientation</name>
243 <cstring>TextLabel1</cstring> 452 <enum>Vertical</enum>
244 </property> 453 </property>
245 <property stdset="1"> 454 <property stdset="1">
246 <name>text</name> 455 <name>sizeType</name>
247 <string>Use secure sockets:</string> 456 <enum>Expanding</enum>
248 </property> 457 </property>
249 </widget> 458 <property>
250 </grid> 459 <name>sizeHint</name>
460 <size>
461 <width>20</width>
462 <height>20</height>
463 </size>
464 </property>
465 </spacer>
466 </vbox>
251</widget> 467</widget>
252<tabstops> 468<tabstops>
253 <tabstop>accountLine</tabstop> 469 <tabstop>accountLine</tabstop>
254 <tabstop>serverLine</tabstop> 470 <tabstop>serverLine</tabstop>
255 <tabstop>portLine</tabstop> 471 <tabstop>portLine</tabstop>
256 <tabstop>userLine</tabstop> 472 <tabstop>userLine</tabstop>
257 <tabstop>passLine</tabstop> 473 <tabstop>passLine</tabstop>
258</tabstops> 474</tabstops>
259</UI> 475</UI>
diff --git a/kmicromail/libmailwrapper/settings.cpp b/kmicromail/libmailwrapper/settings.cpp
index 90e32fa..f996d9c 100644
--- a/kmicromail/libmailwrapper/settings.cpp
+++ b/kmicromail/libmailwrapper/settings.cpp
@@ -1,450 +1,464 @@
1#include <stdlib.h> 1#include <stdlib.h>
2#include <qdir.h> 2#include <qdir.h>
3 3
4//#include <opie2/odebug.h> 4//#include <opie2/odebug.h>
5#include <qpe/config.h> 5#include <qpe/config.h>
6 6
7#include <kstandarddirs.h> 7#include <kstandarddirs.h>
8#include "settings.h" 8#include "settings.h"
9//#include "defines.h" 9//#include "defines.h"
10 10
11#define IMAP_PORT "143" 11#define IMAP_PORT "143"
12#define IMAP_SSL_PORT "993" 12#define IMAP_SSL_PORT "993"
13#define SMTP_PORT "25" 13#define SMTP_PORT "25"
14#define SMTP_SSL_PORT "465" 14#define SMTP_SSL_PORT "465"
15#define POP3_PORT "110" 15#define POP3_PORT "110"
16#define POP3_SSL_PORT "995" 16#define POP3_SSL_PORT "995"
17#define NNTP_PORT "119" 17#define NNTP_PORT "119"
18#define NNTP_SSL_PORT "563" 18#define NNTP_SSL_PORT "563"
19 19
20 20
21Settings::Settings() 21Settings::Settings()
22 : QObject() 22 : QObject()
23{ 23{
24 updateAccounts(); 24 updateAccounts();
25} 25}
26 26
27void Settings::checkDirectory() 27void Settings::checkDirectory()
28{ 28{
29 qDebug("Settings::checkDirectory() "); 29 qDebug("Settings::checkDirectory() ");
30 return; 30 return;
31 locateLocal("data", "kopiemail" ); 31 locateLocal("data", "kopiemail" );
32 /* 32 /*
33 if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) { 33 if ( !QDir( (QString) getenv( "HOME" ) + "/Applications/opiemail/" ).exists() ) {
34 system( "mkdir -p $HOME/Applications/opiemail" ); 34 system( "mkdir -p $HOME/Applications/opiemail" );
35 qDebug("$HOME/Applications/opiemail created "); 35 qDebug("$HOME/Applications/opiemail created ");
36 } 36 }
37 */ 37 */
38} 38}
39 39
40QList<Account> Settings::getAccounts() 40QList<Account> Settings::getAccounts()
41{ 41{
42 return accounts; 42 return accounts;
43} 43}
44 44
45void Settings::addAccount( Account *account ) 45void Settings::addAccount( Account *account )
46{ 46{
47 accounts.append( account ); 47 accounts.append( account );
48} 48}
49 49
50void Settings::delAccount( Account *account ) 50void Settings::delAccount( Account *account )
51{ 51{
52 accounts.remove( account ); 52 accounts.remove( account );
53 account->remove(); 53 account->remove();
54} 54}
55 55
56void Settings::updateAccounts() 56void Settings::updateAccounts()
57{ 57{
58 accounts.clear(); 58 accounts.clear();
59 QDir dir( locateLocal("data", "kopiemail" ) ); 59 QDir dir( locateLocal("data", "kopiemail" ) );
60 QStringList::Iterator it; 60 QStringList::Iterator it;
61 61
62 QStringList imap = dir.entryList( "imap-*" ); 62 QStringList imap = dir.entryList( "imap-*" );
63 for ( it = imap.begin(); it != imap.end(); it++ ) { 63 for ( it = imap.begin(); it != imap.end(); it++ ) {
64 IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") ); 64 IMAPaccount *account = new IMAPaccount( (*it).replace(0, 5, "") );
65 accounts.append( account ); 65 accounts.append( account );
66 } 66 }
67 67
68 QStringList pop3 = dir.entryList( "pop3-*" ); 68 QStringList pop3 = dir.entryList( "pop3-*" );
69 for ( it = pop3.begin(); it != pop3.end(); it++ ) { 69 for ( it = pop3.begin(); it != pop3.end(); it++ ) {
70 POP3account *account = new POP3account( (*it).replace(0, 5, "") ); 70 POP3account *account = new POP3account( (*it).replace(0, 5, "") );
71 accounts.append( account ); 71 accounts.append( account );
72 } 72 }
73 73
74 QStringList smtp = dir.entryList( "smtp-*" ); 74 QStringList smtp = dir.entryList( "smtp-*" );
75 for ( it = smtp.begin(); it != smtp.end(); it++ ) { 75 for ( it = smtp.begin(); it != smtp.end(); it++ ) {
76 SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") ); 76 SMTPaccount *account = new SMTPaccount( (*it).replace(0, 5, "") );
77 accounts.append( account ); 77 accounts.append( account );
78 } 78 }
79 79
80 QStringList nntp = dir.entryList( "nntp-*" ); 80 QStringList nntp = dir.entryList( "nntp-*" );
81 for ( it = nntp.begin(); it != nntp.end(); it++ ) { 81 for ( it = nntp.begin(); it != nntp.end(); it++ ) {
82 NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") ); 82 NNTPaccount *account = new NNTPaccount( (*it).replace(0, 5, "") );
83 accounts.append( account ); 83 accounts.append( account );
84 } 84 }
85 85
86 readAccounts(); 86 readAccounts();
87} 87}
88 88
89void Settings::saveAccounts() 89void Settings::saveAccounts()
90{ 90{
91 checkDirectory(); 91 checkDirectory();
92 Account *it; 92 Account *it;
93 93
94 for ( it = accounts.first(); it; it = accounts.next() ) { 94 for ( it = accounts.first(); it; it = accounts.next() ) {
95 it->save(); 95 it->save();
96 } 96 }
97} 97}
98 98
99void Settings::readAccounts() 99void Settings::readAccounts()
100{ 100{
101 checkDirectory(); 101 checkDirectory();
102 Account *it; 102 Account *it;
103 103
104 for ( it = accounts.first(); it; it = accounts.next() ) { 104 for ( it = accounts.first(); it; it = accounts.next() ) {
105 it->read(); 105 it->read();
106 } 106 }
107} 107}
108 108
109Account::Account() 109Account::Account()
110{ 110{
111 accountName = "changeMe"; 111 accountName = "changeMe";
112 type = MAILLIB::A_UNDEFINED; 112 type = MAILLIB::A_UNDEFINED;
113 ssl = false; 113 ssl = false;
114 connectionType = 1; 114 connectionType = 1;
115 offline = false; 115 offline = false;
116} 116}
117 117
118void Account::remove() 118void Account::remove()
119{ 119{
120 QFile file( getFileName() ); 120 QFile file( getFileName() );
121 file.remove(); 121 file.remove();
122} 122}
123 123
124IMAPaccount::IMAPaccount() 124IMAPaccount::IMAPaccount()
125 : Account() 125 : Account()
126{ 126{
127 file = IMAPaccount::getUniqueFileName(); 127 file = IMAPaccount::getUniqueFileName();
128 accountName = "New IMAP Account"; 128 accountName = "New IMAP Account";
129 ssl = false; 129 ssl = false;
130 connectionType = 1; 130 connectionType = 1;
131 type = MAILLIB::A_IMAP; 131 type = MAILLIB::A_IMAP;
132 port = IMAP_PORT; 132 port = IMAP_PORT;
133} 133}
134 134
135IMAPaccount::IMAPaccount( QString filename ) 135IMAPaccount::IMAPaccount( QString filename )
136 : Account() 136 : Account()
137{ 137{
138 file = filename; 138 file = filename;
139 accountName = "New IMAP Account"; 139 accountName = "New IMAP Account";
140 ssl = false; 140 ssl = false;
141 connectionType = 1; 141 connectionType = 1;
142 type = MAILLIB::A_IMAP; 142 type = MAILLIB::A_IMAP;
143 port = IMAP_PORT; 143 port = IMAP_PORT;
144} 144}
145 145
146QString IMAPaccount::getUniqueFileName() 146QString IMAPaccount::getUniqueFileName()
147{ 147{
148 int num = 0; 148 int num = 0;
149 QString unique; 149 QString unique;
150 150
151 QDir dir( locateLocal("data", "kopiemail" ) ); 151 QDir dir( locateLocal("data", "kopiemail" ) );
152 152
153 QStringList imap = dir.entryList( "imap-*" ); 153 QStringList imap = dir.entryList( "imap-*" );
154 do { 154 do {
155 unique.setNum( num++ ); 155 unique.setNum( num++ );
156 } while ( imap.contains( "imap-" + unique ) > 0 ); 156 } while ( imap.contains( "imap-" + unique ) > 0 );
157 157
158 return unique; 158 return unique;
159} 159}
160 160
161void IMAPaccount::read() 161void IMAPaccount::read()
162{ 162{
163 Config *conf = new Config( getFileName(), Config::File ); 163 Config *conf = new Config( getFileName(), Config::File );
164 conf->setGroup( "IMAP Account" ); 164 conf->setGroup( "IMAP Account" );
165 accountName = conf->readEntry( "Account","" ); 165 accountName = conf->readEntry( "Account","" );
166 if (accountName.isNull()) accountName = ""; 166 if (accountName.isNull()) accountName = "";
167 server = conf->readEntry( "Server","" ); 167 server = conf->readEntry( "Server","" );
168 if (server.isNull()) server=""; 168 if (server.isNull()) server="";
169 port = conf->readEntry( "Port","" ); 169 port = conf->readEntry( "Port","" );
170 if (port.isNull()) port="143"; 170 if (port.isNull()) port="143";
171 connectionType = conf->readNumEntry( "ConnectionType" ); 171 connectionType = conf->readNumEntry( "ConnectionType" );
172 ssl = conf->readBoolEntry( "SSL",false ); 172 ssl = conf->readBoolEntry( "SSL",false );
173 user = conf->readEntry( "User","" ); 173 user = conf->readEntry( "User","" );
174 if (user.isNull()) user = ""; 174 if (user.isNull()) user = "";
175 password = conf->readEntryCrypt( "Password","" ); 175 password = conf->readEntryCrypt( "Password","" );
176 if (password.isNull()) password = ""; 176 if (password.isNull()) password = "";
177 prefix = conf->readEntry("MailPrefix",""); 177 prefix = conf->readEntry("MailPrefix","");
178 if (prefix.isNull()) prefix = ""; 178 if (prefix.isNull()) prefix = "";
179 offline = conf->readBoolEntry("Offline",false); 179 offline = conf->readBoolEntry("Offline",false);
180 localFolder = conf->readEntry( "LocalFolder" );
181 maxMailSize = conf->readNumEntry( "MaxSize",0 );
182 int lf = conf->readNumEntry( "LastFetch",0 );
183 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
184 leaveOnServer = conf->readBoolEntry("LeaveOnServer",false);
185 lastFetch = dt.addSecs( lf );
180 delete conf; 186 delete conf;
181} 187}
182 188
183void IMAPaccount::save() 189void IMAPaccount::save()
184{ 190{
185 qDebug("saving %s ",getFileName().latin1() ); 191 qDebug("saving %s ",getFileName().latin1() );
186 Settings::checkDirectory(); 192 Settings::checkDirectory();
187 193
188 Config *conf = new Config( getFileName(), Config::File ); 194 Config *conf = new Config( getFileName(), Config::File );
189 conf->setGroup( "IMAP Account" ); 195 conf->setGroup( "IMAP Account" );
190 conf->writeEntry( "Account", accountName ); 196 conf->writeEntry( "Account", accountName );
191 conf->writeEntry( "Server", server ); 197 conf->writeEntry( "Server", server );
192 conf->writeEntry( "Port", port ); 198 conf->writeEntry( "Port", port );
193 conf->writeEntry( "SSL", ssl ); 199 conf->writeEntry( "SSL", ssl );
194 conf->writeEntry( "ConnectionType", connectionType ); 200 conf->writeEntry( "ConnectionType", connectionType );
195 conf->writeEntry( "User", user ); 201 conf->writeEntry( "User", user );
196 conf->writeEntryCrypt( "Password", password ); 202 conf->writeEntryCrypt( "Password", password );
197 conf->writeEntry( "MailPrefix",prefix); 203 conf->writeEntry( "MailPrefix",prefix);
198 conf->writeEntry( "Offline",offline); 204 conf->writeEntry( "Offline",offline);
205 conf->writeEntry( "LocalFolder", localFolder );
206 conf->writeEntry( "MaxSize", maxMailSize );
207 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
208 int lf = dt.secsTo ( lastFetch );
209 conf->writeEntry( "LastFetch", lf );
210 conf->writeEntry( "LeaveOnServer", leaveOnServer);
199 conf->write(); 211 conf->write();
200 delete conf; 212 delete conf;
201} 213}
202 214
203 215
204QString IMAPaccount::getFileName() 216QString IMAPaccount::getFileName()
205{ 217{
206 return locateLocal("data", "kopiemail" ) +"/imap-" + file; 218 return locateLocal("data", "kopiemail" ) +"/imap-" + file;
207} 219}
208 220
209POP3account::POP3account() 221POP3account::POP3account()
210 : Account() 222 : Account()
211{ 223{
212 file = POP3account::getUniqueFileName(); 224 file = POP3account::getUniqueFileName();
213 accountName = "New POP3 Account"; 225 accountName = "New POP3 Account";
214 ssl = false; 226 ssl = false;
215 connectionType = 1; 227 connectionType = 1;
216 type = MAILLIB::A_POP3; 228 type = MAILLIB::A_POP3;
217 port = POP3_PORT; 229 port = POP3_PORT;
218} 230}
219 231
220POP3account::POP3account( QString filename ) 232POP3account::POP3account( QString filename )
221 : Account() 233 : Account()
222{ 234{
223 file = filename; 235 file = filename;
224 accountName = "New POP3 Account"; 236 accountName = "New POP3 Account";
225 ssl = false; 237 ssl = false;
226 connectionType = 1; 238 connectionType = 1;
227 type = MAILLIB::A_POP3; 239 type = MAILLIB::A_POP3;
228 port = POP3_PORT; 240 port = POP3_PORT;
229} 241}
230 242
231QString POP3account::getUniqueFileName() 243QString POP3account::getUniqueFileName()
232{ 244{
233 int num = 0; 245 int num = 0;
234 QString unique; 246 QString unique;
235 247
236 QDir dir( locateLocal("data", "kopiemail" ) ); 248 QDir dir( locateLocal("data", "kopiemail" ) );
237 249
238 QStringList imap = dir.entryList( "pop3-*" ); 250 QStringList imap = dir.entryList( "pop3-*" );
239 do { 251 do {
240 unique.setNum( num++ ); 252 unique.setNum( num++ );
241 } while ( imap.contains( "pop3-" + unique ) > 0 ); 253 } while ( imap.contains( "pop3-" + unique ) > 0 );
242 254
243 return unique; 255 return unique;
244} 256}
245 257
246void POP3account::read() 258void POP3account::read()
247{ 259{
248 Config *conf = new Config( getFileName(), Config::File ); 260 Config *conf = new Config( getFileName(), Config::File );
249 conf->setGroup( "POP3 Account" ); 261 conf->setGroup( "POP3 Account" );
250 accountName = conf->readEntry( "Account" ); 262 accountName = conf->readEntry( "Account" );
251 server = conf->readEntry( "Server" ); 263 server = conf->readEntry( "Server" );
252 port = conf->readEntry( "Port" ); 264 port = conf->readEntry( "Port" );
253 ssl = conf->readBoolEntry( "SSL" ); 265 ssl = conf->readBoolEntry( "SSL" );
254 connectionType = conf->readNumEntry( "ConnectionType" ); 266 connectionType = conf->readNumEntry( "ConnectionType" );
255 user = conf->readEntry( "User" ); 267 user = conf->readEntry( "User" );
256 password = conf->readEntryCrypt( "Password" ); 268 password = conf->readEntryCrypt( "Password" );
257 offline = conf->readBoolEntry("Offline",false); 269 offline = conf->readBoolEntry("Offline",false);
258 localFolder = conf->readEntry( "LocalFolder" ); 270 localFolder = conf->readEntry( "LocalFolder" );
259 maxMailSize = conf->readNumEntry( "MaxSize",0 ); 271 maxMailSize = conf->readNumEntry( "MaxSize",0 );
260 int lf = conf->readNumEntry( "LastFetch",0 ); 272 int lf = conf->readNumEntry( "LastFetch",0 );
261 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) ); 273 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
274 leaveOnServer = conf->readBoolEntry("LeaveOnServer",false);
262 lastFetch = dt.addSecs( lf ); 275 lastFetch = dt.addSecs( lf );
263 delete conf; 276 delete conf;
264} 277}
265 278
266void POP3account::save() 279void POP3account::save()
267{ 280{
268 Settings::checkDirectory(); 281 Settings::checkDirectory();
269 282
270 Config *conf = new Config( getFileName(), Config::File ); 283 Config *conf = new Config( getFileName(), Config::File );
271 conf->setGroup( "POP3 Account" ); 284 conf->setGroup( "POP3 Account" );
272 conf->writeEntry( "Account", accountName ); 285 conf->writeEntry( "Account", accountName );
273 conf->writeEntry( "Server", server ); 286 conf->writeEntry( "Server", server );
274 conf->writeEntry( "Port", port ); 287 conf->writeEntry( "Port", port );
275 conf->writeEntry( "SSL", ssl ); 288 conf->writeEntry( "SSL", ssl );
276 conf->writeEntry( "ConnectionType", connectionType ); 289 conf->writeEntry( "ConnectionType", connectionType );
277 conf->writeEntry( "User", user ); 290 conf->writeEntry( "User", user );
278 conf->writeEntryCrypt( "Password", password ); 291 conf->writeEntryCrypt( "Password", password );
279 conf->writeEntry( "Offline",offline); 292 conf->writeEntry( "Offline",offline);
280 conf->writeEntry( "LocalFolder", localFolder ); 293 conf->writeEntry( "LocalFolder", localFolder );
281 conf->writeEntry( "MaxSize", maxMailSize ); 294 conf->writeEntry( "MaxSize", maxMailSize );
282 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) ); 295 QDateTime dt ( QDate ( 2004, 1, 1 ), QTime( 0,0,0) );
283 int lf = dt.secsTo ( lastFetch ); 296 int lf = dt.secsTo ( lastFetch );
284 conf->writeEntry( "LastFetch", lf ); 297 conf->writeEntry( "LastFetch", lf );
298 conf->writeEntry( "LeaveOnServer", leaveOnServer);
285 conf->write(); 299 conf->write();
286 delete conf; 300 delete conf;
287} 301}
288 302
289 303
290QString POP3account::getFileName() 304QString POP3account::getFileName()
291{ 305{
292 return locateLocal("data", "kopiemail" ) +"/pop3-" + file; 306 return locateLocal("data", "kopiemail" ) +"/pop3-" + file;
293} 307}
294 308
295SMTPaccount::SMTPaccount() 309SMTPaccount::SMTPaccount()
296 : Account() 310 : Account()
297{ 311{
298 file = SMTPaccount::getUniqueFileName(); 312 file = SMTPaccount::getUniqueFileName();
299 accountName = "New SMTP Account"; 313 accountName = "New SMTP Account";
300 ssl = false; 314 ssl = false;
301 connectionType = 1; 315 connectionType = 1;
302 login = false; 316 login = false;
303 useCC = false; 317 useCC = false;
304 useBCC = false; 318 useBCC = false;
305 useReply = false; 319 useReply = false;
306 type = MAILLIB::A_SMTP; 320 type = MAILLIB::A_SMTP;
307 port = SMTP_PORT; 321 port = SMTP_PORT;
308} 322}
309 323
310SMTPaccount::SMTPaccount( QString filename ) 324SMTPaccount::SMTPaccount( QString filename )
311 : Account() 325 : Account()
312{ 326{
313 file = filename; 327 file = filename;
314 accountName = "New SMTP Account"; 328 accountName = "New SMTP Account";
315 ssl = false; 329 ssl = false;
316 connectionType = 1; 330 connectionType = 1;
317 login = false; 331 login = false;
318 type = MAILLIB::A_SMTP; 332 type = MAILLIB::A_SMTP;
319 port = SMTP_PORT; 333 port = SMTP_PORT;
320} 334}
321 335
322QString SMTPaccount::getUniqueFileName() 336QString SMTPaccount::getUniqueFileName()
323{ 337{
324 int num = 0; 338 int num = 0;
325 QString unique; 339 QString unique;
326 340
327 QDir dir( locateLocal("data", "kopiemail" ) ); 341 QDir dir( locateLocal("data", "kopiemail" ) );
328 342
329 QStringList imap = dir.entryList( "smtp-*" ); 343 QStringList imap = dir.entryList( "smtp-*" );
330 do { 344 do {
331 unique.setNum( num++ ); 345 unique.setNum( num++ );
332 } while ( imap.contains( "smtp-" + unique ) > 0 ); 346 } while ( imap.contains( "smtp-" + unique ) > 0 );
333 347
334 return unique; 348 return unique;
335} 349}
336 350
337void SMTPaccount::read() 351void SMTPaccount::read()
338{ 352{
339 Config *conf = new Config( getFileName(), Config::File ); 353 Config *conf = new Config( getFileName(), Config::File );
340 conf->setGroup( "SMTP Account" ); 354 conf->setGroup( "SMTP Account" );
341 accountName = conf->readEntry( "Account" ); 355 accountName = conf->readEntry( "Account" );
342 server = conf->readEntry( "Server" ); 356 server = conf->readEntry( "Server" );
343 port = conf->readEntry( "Port" ); 357 port = conf->readEntry( "Port" );
344 ssl = conf->readBoolEntry( "SSL" ); 358 ssl = conf->readBoolEntry( "SSL" );
345 connectionType = conf->readNumEntry( "ConnectionType" ); 359 connectionType = conf->readNumEntry( "ConnectionType" );
346 login = conf->readBoolEntry( "Login" ); 360 login = conf->readBoolEntry( "Login" );
347 user = conf->readEntry( "User" ); 361 user = conf->readEntry( "User" );
348 password = conf->readEntryCrypt( "Password" ); 362 password = conf->readEntryCrypt( "Password" );
349 delete conf; 363 delete conf;
350} 364}
351 365
352void SMTPaccount::save() 366void SMTPaccount::save()
353{ 367{
354 Settings::checkDirectory(); 368 Settings::checkDirectory();
355 369
356 Config *conf = new Config( getFileName(), Config::File ); 370 Config *conf = new Config( getFileName(), Config::File );
357 conf->setGroup( "SMTP Account" ); 371 conf->setGroup( "SMTP Account" );
358 conf->writeEntry( "Account", accountName ); 372 conf->writeEntry( "Account", accountName );
359 conf->writeEntry( "Server", server ); 373 conf->writeEntry( "Server", server );
360 conf->writeEntry( "Port", port ); 374 conf->writeEntry( "Port", port );
361 conf->writeEntry( "SSL", ssl ); 375 conf->writeEntry( "SSL", ssl );
362 conf->writeEntry( "ConnectionType", connectionType ); 376 conf->writeEntry( "ConnectionType", connectionType );
363 conf->writeEntry( "Login", login ); 377 conf->writeEntry( "Login", login );
364 conf->writeEntry( "User", user ); 378 conf->writeEntry( "User", user );
365 conf->writeEntryCrypt( "Password", password ); 379 conf->writeEntryCrypt( "Password", password );
366 conf->write(); 380 conf->write();
367 delete conf; 381 delete conf;
368} 382}
369 383
370 384
371QString SMTPaccount::getFileName() 385QString SMTPaccount::getFileName()
372{ 386{
373 return locateLocal("data", "kopiemail" ) +"/smtp-" + file; 387 return locateLocal("data", "kopiemail" ) +"/smtp-" + file;
374} 388}
375 389
376NNTPaccount::NNTPaccount() 390NNTPaccount::NNTPaccount()
377 : Account() 391 : Account()
378{ 392{
379 file = NNTPaccount::getUniqueFileName(); 393 file = NNTPaccount::getUniqueFileName();
380 accountName = "New NNTP Account"; 394 accountName = "New NNTP Account";
381 ssl = false; 395 ssl = false;
382 login = false; 396 login = false;
383 type = MAILLIB::A_NNTP; 397 type = MAILLIB::A_NNTP;
384 port = NNTP_PORT; 398 port = NNTP_PORT;
385} 399}
386 400
387NNTPaccount::NNTPaccount( QString filename ) 401NNTPaccount::NNTPaccount( QString filename )
388 : Account() 402 : Account()
389{ 403{
390 file = filename; 404 file = filename;
391 accountName = "New NNTP Account"; 405 accountName = "New NNTP Account";
392 ssl = false; 406 ssl = false;
393 login = false; 407 login = false;
394 type = MAILLIB::A_NNTP; 408 type = MAILLIB::A_NNTP;
395 port = NNTP_PORT; 409 port = NNTP_PORT;
396} 410}
397 411
398QString NNTPaccount::getUniqueFileName() 412QString NNTPaccount::getUniqueFileName()
399{ 413{
400 int num = 0; 414 int num = 0;
401 QString unique; 415 QString unique;
402 416
403 QDir dir( locateLocal("data", "kopiemail" ) ); 417 QDir dir( locateLocal("data", "kopiemail" ) );
404 418
405 QStringList imap = dir.entryList( "nntp-*" ); 419 QStringList imap = dir.entryList( "nntp-*" );
406 do { 420 do {
407 unique.setNum( num++ ); 421 unique.setNum( num++ );
408 } while ( imap.contains( "nntp-" + unique ) > 0 ); 422 } while ( imap.contains( "nntp-" + unique ) > 0 );
409 423
410 return unique; 424 return unique;
411} 425}
412 426
413void NNTPaccount::read() 427void NNTPaccount::read()
414{ 428{
415 Config *conf = new Config( getFileName(), Config::File ); 429 Config *conf = new Config( getFileName(), Config::File );
416 conf->setGroup( "NNTP Account" ); 430 conf->setGroup( "NNTP Account" );
417 accountName = conf->readEntry( "Account" ); 431 accountName = conf->readEntry( "Account" );
418 server = conf->readEntry( "Server" ); 432 server = conf->readEntry( "Server" );
419 port = conf->readEntry( "Port" ); 433 port = conf->readEntry( "Port" );
420 ssl = conf->readBoolEntry( "SSL" ); 434 ssl = conf->readBoolEntry( "SSL" );
421 login = conf->readBoolEntry( "Login" ); 435 login = conf->readBoolEntry( "Login" );
422 user = conf->readEntry( "User" ); 436 user = conf->readEntry( "User" );
423 password = conf->readEntryCrypt( "Password" ); 437 password = conf->readEntryCrypt( "Password" );
424 subscribedGroups = conf->readListEntry( "Subscribed", ',' ); 438 subscribedGroups = conf->readListEntry( "Subscribed", ',' );
425 delete conf; 439 delete conf;
426} 440}
427 441
428void NNTPaccount::save() 442void NNTPaccount::save()
429{ 443{
430 Settings::checkDirectory(); 444 Settings::checkDirectory();
431 445
432 Config *conf = new Config( getFileName(), Config::File ); 446 Config *conf = new Config( getFileName(), Config::File );
433 conf->setGroup( "NNTP Account" ); 447 conf->setGroup( "NNTP Account" );
434 conf->writeEntry( "Account", accountName ); 448 conf->writeEntry( "Account", accountName );
435 conf->writeEntry( "Server", server ); 449 conf->writeEntry( "Server", server );
436 conf->writeEntry( "Port", port ); 450 conf->writeEntry( "Port", port );
437 conf->writeEntry( "SSL", ssl ); 451 conf->writeEntry( "SSL", ssl );
438 conf->writeEntry( "Login", login ); 452 conf->writeEntry( "Login", login );
439 conf->writeEntry( "User", user ); 453 conf->writeEntry( "User", user );
440 conf->writeEntryCrypt( "Password", password ); 454 conf->writeEntryCrypt( "Password", password );
441 conf->writeEntry( "Subscribed" , subscribedGroups, ',' ); 455 conf->writeEntry( "Subscribed" , subscribedGroups, ',' );
442 conf->write(); 456 conf->write();
443 delete conf; 457 delete conf;
444} 458}
445 459
446 460
447QString NNTPaccount::getFileName() 461QString NNTPaccount::getFileName()
448{ 462{
449 return locateLocal("data", "kopiemail" ) +"/nntp-" + file; 463 return locateLocal("data", "kopiemail" ) +"/nntp-" + file;
450} 464}
diff --git a/kmicromail/libmailwrapper/settings.h b/kmicromail/libmailwrapper/settings.h
index c33c403..85b817c 100644
--- a/kmicromail/libmailwrapper/settings.h
+++ b/kmicromail/libmailwrapper/settings.h
@@ -1,173 +1,177 @@
1#ifndef SETTINGS_H 1#ifndef SETTINGS_H
2#define SETTINGS_H 2#define SETTINGS_H
3 3
4#include "maildefines.h" 4#include "maildefines.h"
5 5
6/* OPIE */ 6/* OPIE */
7 7
8/* QT */ 8/* QT */
9#include <qobject.h> 9#include <qobject.h>
10#include <qlist.h> 10#include <qlist.h>
11#include <qdatetime.h> 11#include <qdatetime.h>
12 12
13class Account 13class Account
14{ 14{
15 15
16public: 16public:
17 Account(); 17 Account();
18 virtual ~Account() {} 18 virtual ~Account() {}
19 19
20 void remove(); 20 void remove();
21 void setAccountName( QString name ) { accountName = name; } 21 void setAccountName( QString name ) { accountName = name; }
22 const QString&getAccountName()const{ return accountName; } 22 const QString&getAccountName()const{ return accountName; }
23 MAILLIB::ATYPE getType()const{ return type; } 23 MAILLIB::ATYPE getType()const{ return type; }
24 24
25 void setServer(const QString&str){ server = str; } 25 void setServer(const QString&str){ server = str; }
26 const QString&getServer()const{ return server; } 26 const QString&getServer()const{ return server; }
27 27
28 void setLocalFolder( QString name ) { localFolder = name; } 28 void setLocalFolder( QString name ) { localFolder = name; }
29 const QString& getLocalFolder()const{ return localFolder; } 29 const QString& getLocalFolder()const{ return localFolder; }
30 30
31 void setPort(const QString&str) { port = str; } 31 void setPort(const QString&str) { port = str; }
32 const QString&getPort()const{ return port; } 32 const QString&getPort()const{ return port; }
33 33
34 void setUser(const QString&str){ user = str; } 34 void setUser(const QString&str){ user = str; }
35 const QString&getUser()const{ return user; } 35 const QString&getUser()const{ return user; }
36 36
37 void setPassword(const QString&str) { password = str; } 37 void setPassword(const QString&str) { password = str; }
38 const QString&getPassword()const { return password; } 38 const QString&getPassword()const { return password; }
39 39
40 void setSSL( bool b ) { ssl = b; } 40 void setSSL( bool b ) { ssl = b; }
41 bool getSSL() { return ssl; } 41 bool getSSL() { return ssl; }
42 42
43 void setConnectionType( int x ) { connectionType = x; } 43 void setConnectionType( int x ) { connectionType = x; }
44 int ConnectionType() { return connectionType; } 44 int ConnectionType() { return connectionType; }
45 45
46 void setMaxMailSize( int x ) { maxMailSize = x; } 46 void setMaxMailSize( int x ) { maxMailSize = x; }
47 int getMaxMailSize() { return maxMailSize; } 47 int getMaxMailSize() { return maxMailSize; }
48 48
49 void setOffline(bool b) {offline = b;} 49 void setOffline(bool b) {offline = b;}
50 bool getOffline()const{return offline;} 50 bool getOffline()const{return offline;}
51 51
52 bool getLeaveOnServer(){ return leaveOnServer;}
53 void setLeaveOnServer(bool b){ leaveOnServer = b;}
54
52 virtual QString getFileName() { return accountName; } 55 virtual QString getFileName() { return accountName; }
53 virtual void read() { ; } 56 virtual void read() { ; }
54 virtual void save() { ; } 57 virtual void save() { ; }
55 58
56protected: 59protected:
57 QString accountName, server, port, user, password; 60 QString accountName, server, port, user, password;
58 bool ssl; 61 bool ssl;
59 int connectionType; 62 int connectionType;
60 bool offline; 63 bool offline;
61 MAILLIB::ATYPE type; 64 MAILLIB::ATYPE type;
62 QString localFolder; 65 QString localFolder;
63 int maxMailSize; 66 int maxMailSize;
64 QDateTime lastFetch; 67 QDateTime lastFetch;
68 bool leaveOnServer;
65}; 69};
66 70
67class IMAPaccount : public Account 71class IMAPaccount : public Account
68{ 72{
69 73
70public: 74public:
71 IMAPaccount(); 75 IMAPaccount();
72 IMAPaccount( QString filename ); 76 IMAPaccount( QString filename );
73 77
74 static QString getUniqueFileName(); 78 static QString getUniqueFileName();
75 79
76 virtual void read(); 80 virtual void read();
77 virtual void save(); 81 virtual void save();
78 virtual QString getFileName(); 82 virtual QString getFileName();
79 83
80 void setPrefix(const QString&str) {prefix=str;} 84 void setPrefix(const QString&str) {prefix=str;}
81 const QString&getPrefix()const{return prefix;} 85 const QString&getPrefix()const{return prefix;}
82 86
83private: 87private:
84 QString file,prefix; 88 QString file,prefix;
85 89
86}; 90};
87 91
88class POP3account : public Account 92class POP3account : public Account
89{ 93{
90 94
91public: 95public:
92 POP3account(); 96 POP3account();
93 POP3account( QString filename ); 97 POP3account( QString filename );
94 98
95 static QString getUniqueFileName(); 99 static QString getUniqueFileName();
96 100
97 virtual void read(); 101 virtual void read();
98 virtual void save(); 102 virtual void save();
99 virtual QString getFileName(); 103 virtual QString getFileName();
100 104
101private: 105private:
102 QString file; 106 QString file;
103 107
104}; 108};
105 109
106class SMTPaccount : public Account 110class SMTPaccount : public Account
107{ 111{
108 112
109public: 113public:
110 SMTPaccount(); 114 SMTPaccount();
111 SMTPaccount( QString filename ); 115 SMTPaccount( QString filename );
112 116
113 static QString getUniqueFileName(); 117 static QString getUniqueFileName();
114 118
115 virtual void read(); 119 virtual void read();
116 virtual void save(); 120 virtual void save();
117 virtual QString getFileName(); 121 virtual QString getFileName();
118 122
119 void setLogin( bool b ) { login = b; } 123 void setLogin( bool b ) { login = b; }
120 bool getLogin() { return login; } 124 bool getLogin() { return login; }
121 125
122private: 126private:
123 QString file, name, mail, org, cc, bcc, reply, signature; 127 QString file, name, mail, org, cc, bcc, reply, signature;
124 bool useCC, useBCC, useReply, login; 128 bool useCC, useBCC, useReply, login;
125 129
126}; 130};
127 131
128class NNTPaccount : public Account 132class NNTPaccount : public Account
129{ 133{
130 134
131public: 135public:
132 NNTPaccount(); 136 NNTPaccount();
133 NNTPaccount( QString filename ); 137 NNTPaccount( QString filename );
134 138
135 static QString getUniqueFileName(); 139 static QString getUniqueFileName();
136 140
137 virtual void read(); 141 virtual void read();
138 virtual void save(); 142 virtual void save();
139 virtual QString getFileName(); 143 virtual QString getFileName();
140 144
141 void setLogin( bool b ) { login = b; } 145 void setLogin( bool b ) { login = b; }
142 bool getLogin() { return login; } 146 bool getLogin() { return login; }
143 147
144 void setGroups( QStringList list ) { subscribedGroups = list; } 148 void setGroups( QStringList list ) { subscribedGroups = list; }
145 QStringList getGroups() { return subscribedGroups; } 149 QStringList getGroups() { return subscribedGroups; }
146 150
147private: 151private:
148 QString file; 152 QString file;
149 bool login; 153 bool login;
150 QStringList subscribedGroups; 154 QStringList subscribedGroups;
151 155
152}; 156};
153 157
154class Settings : public QObject 158class Settings : public QObject
155{ 159{
156 Q_OBJECT 160 Q_OBJECT
157 161
158public: 162public:
159 Settings(); 163 Settings();
160 QList<Account> getAccounts(); 164 QList<Account> getAccounts();
161 void addAccount(Account *account); 165 void addAccount(Account *account);
162 void delAccount(Account *account); 166 void delAccount(Account *account);
163 void saveAccounts(); 167 void saveAccounts();
164 void readAccounts(); 168 void readAccounts();
165 static void checkDirectory(); 169 static void checkDirectory();
166 170
167private: 171private:
168 void updateAccounts(); 172 void updateAccounts();
169 QList<Account> accounts; 173 QList<Account> accounts;
170 174
171}; 175};
172 176
173#endif 177#endif
diff --git a/kmicromail/pop3configui.ui b/kmicromail/pop3configui.ui
index a2d43bd..6acd394 100644
--- a/kmicromail/pop3configui.ui
+++ b/kmicromail/pop3configui.ui
@@ -1,438 +1,449 @@
1<!DOCTYPE UI><UI> 1<!DOCTYPE UI><UI>
2<class>POP3configUI</class> 2<class>POP3configUI</class>
3<widget> 3<widget>
4 <class>QDialog</class> 4 <class>QDialog</class>
5 <property stdset="1"> 5 <property stdset="1">
6 <name>name</name> 6 <name>name</name>
7 <cstring>POP3configUI</cstring> 7 <cstring>POP3configUI</cstring>
8 </property> 8 </property>
9 <property stdset="1"> 9 <property stdset="1">
10 <name>geometry</name> 10 <name>geometry</name>
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>322</width> 14 <width>306</width>
15 <height>404</height> 15 <height>371</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
18 <property stdset="1"> 18 <property stdset="1">
19 <name>caption</name> 19 <name>caption</name>
20 <string>Configure POP3</string> 20 <string>Configure POP3</string>
21 </property> 21 </property>
22 <property> 22 <property>
23 <name>layoutMargin</name> 23 <name>layoutMargin</name>
24 </property> 24 </property>
25 <property> 25 <property>
26 <name>layoutSpacing</name> 26 <name>layoutSpacing</name>
27 </property> 27 </property>
28 <vbox> 28 <vbox>
29 <property stdset="1"> 29 <property stdset="1">
30 <name>margin</name> 30 <name>margin</name>
31 <number>11</number> 31 <number>3</number>
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>6</number> 35 <number>1</number>
36 </property> 36 </property>
37 <widget> 37 <widget>
38 <class>QLayoutWidget</class> 38 <class>QLayoutWidget</class>
39 <property stdset="1"> 39 <property stdset="1">
40 <name>name</name> 40 <name>name</name>
41 <cstring>Layout12</cstring> 41 <cstring>Layout12</cstring>
42 </property> 42 </property>
43 <hbox> 43 <hbox>
44 <property stdset="1"> 44 <property stdset="1">
45 <name>margin</name> 45 <name>margin</name>
46 <number>0</number> 46 <number>0</number>
47 </property> 47 </property>
48 <property stdset="1"> 48 <property stdset="1">
49 <name>spacing</name> 49 <name>spacing</name>
50 <number>6</number> 50 <number>6</number>
51 </property> 51 </property>
52 <widget> 52 <widget>
53 <class>QLabel</class> 53 <class>QLabel</class>
54 <property stdset="1"> 54 <property stdset="1">
55 <name>name</name> 55 <name>name</name>
56 <cstring>accountLabel</cstring> 56 <cstring>accountLabel</cstring>
57 </property> 57 </property>
58 <property stdset="1"> 58 <property stdset="1">
59 <name>text</name> 59 <name>text</name>
60 <string>Account</string> 60 <string>Account</string>
61 </property> 61 </property>
62 </widget> 62 </widget>
63 <widget> 63 <widget>
64 <class>QLineEdit</class> 64 <class>QLineEdit</class>
65 <property stdset="1"> 65 <property stdset="1">
66 <name>name</name> 66 <name>name</name>
67 <cstring>accountLine</cstring> 67 <cstring>accountLine</cstring>
68 </property> 68 </property>
69 <property> 69 <property>
70 <name>toolTip</name> 70 <name>toolTip</name>
71 <string>Name of the Account</string> 71 <string>Name of the Account</string>
72 </property> 72 </property>
73 </widget> 73 </widget>
74 </hbox> 74 </hbox>
75 </widget> 75 </widget>
76 <widget> 76 <widget>
77 <class>Line</class> 77 <class>Line</class>
78 <property stdset="1"> 78 <property stdset="1">
79 <name>name</name> 79 <name>name</name>
80 <cstring>line1</cstring> 80 <cstring>line1</cstring>
81 </property> 81 </property>
82 <property stdset="1"> 82 <property stdset="1">
83 <name>orientation</name> 83 <name>orientation</name>
84 <enum>Horizontal</enum> 84 <enum>Horizontal</enum>
85 </property> 85 </property>
86 </widget> 86 </widget>
87 <widget> 87 <widget>
88 <class>QLayoutWidget</class> 88 <class>QLayoutWidget</class>
89 <property stdset="1"> 89 <property stdset="1">
90 <name>name</name> 90 <name>name</name>
91 <cstring>Layout11</cstring> 91 <cstring>Layout11</cstring>
92 </property> 92 </property>
93 <hbox> 93 <hbox>
94 <property stdset="1"> 94 <property stdset="1">
95 <name>margin</name> 95 <name>margin</name>
96 <number>0</number> 96 <number>0</number>
97 </property> 97 </property>
98 <property stdset="1"> 98 <property stdset="1">
99 <name>spacing</name> 99 <name>spacing</name>
100 <number>6</number> 100 <number>6</number>
101 </property> 101 </property>
102 <widget> 102 <widget>
103 <class>QLayoutWidget</class> 103 <class>QLayoutWidget</class>
104 <property stdset="1"> 104 <property stdset="1">
105 <name>name</name> 105 <name>name</name>
106 <cstring>Layout9</cstring> 106 <cstring>Layout9</cstring>
107 </property> 107 </property>
108 <vbox> 108 <vbox>
109 <property stdset="1"> 109 <property stdset="1">
110 <name>margin</name> 110 <name>margin</name>
111 <number>0</number> 111 <number>0</number>
112 </property> 112 </property>
113 <property stdset="1"> 113 <property stdset="1">
114 <name>spacing</name> 114 <name>spacing</name>
115 <number>6</number> 115 <number>6</number>
116 </property> 116 </property>
117 <widget> 117 <widget>
118 <class>QLabel</class> 118 <class>QLabel</class>
119 <property stdset="1"> 119 <property stdset="1">
120 <name>name</name> 120 <name>name</name>
121 <cstring>serverLabel</cstring> 121 <cstring>serverLabel</cstring>
122 </property> 122 </property>
123 <property stdset="1"> 123 <property stdset="1">
124 <name>text</name> 124 <name>text</name>
125 <string>Server</string> 125 <string>Server</string>
126 </property> 126 </property>
127 </widget> 127 </widget>
128 <widget> 128 <widget>
129 <class>QLabel</class> 129 <class>QLabel</class>
130 <property stdset="1"> 130 <property stdset="1">
131 <name>name</name> 131 <name>name</name>
132 <cstring>portLabel</cstring> 132 <cstring>portLabel</cstring>
133 </property> 133 </property>
134 <property stdset="1"> 134 <property stdset="1">
135 <name>text</name> 135 <name>text</name>
136 <string>Port</string> 136 <string>Port</string>
137 </property> 137 </property>
138 </widget> 138 </widget>
139 </vbox> 139 </vbox>
140 </widget> 140 </widget>
141 <widget> 141 <widget>
142 <class>QLayoutWidget</class> 142 <class>QLayoutWidget</class>
143 <property stdset="1"> 143 <property stdset="1">
144 <name>name</name> 144 <name>name</name>
145 <cstring>Layout10</cstring> 145 <cstring>Layout10</cstring>
146 </property> 146 </property>
147 <vbox> 147 <vbox>
148 <property stdset="1"> 148 <property stdset="1">
149 <name>margin</name> 149 <name>margin</name>
150 <number>0</number> 150 <number>0</number>
151 </property> 151 </property>
152 <property stdset="1"> 152 <property stdset="1">
153 <name>spacing</name> 153 <name>spacing</name>
154 <number>6</number> 154 <number>6</number>
155 </property> 155 </property>
156 <widget> 156 <widget>
157 <class>QLineEdit</class> 157 <class>QLineEdit</class>
158 <property stdset="1"> 158 <property stdset="1">
159 <name>name</name> 159 <name>name</name>
160 <cstring>serverLine</cstring> 160 <cstring>serverLine</cstring>
161 </property> 161 </property>
162 </widget> 162 </widget>
163 <widget> 163 <widget>
164 <class>QLineEdit</class> 164 <class>QLineEdit</class>
165 <property stdset="1"> 165 <property stdset="1">
166 <name>name</name> 166 <name>name</name>
167 <cstring>portLine</cstring> 167 <cstring>portLine</cstring>
168 </property> 168 </property>
169 </widget> 169 </widget>
170 </vbox> 170 </vbox>
171 </widget> 171 </widget>
172 </hbox> 172 </hbox>
173 </widget> 173 </widget>
174 <widget> 174 <widget>
175 <class>QLayoutWidget</class> 175 <class>QLayoutWidget</class>
176 <property stdset="1"> 176 <property stdset="1">
177 <name>name</name> 177 <name>name</name>
178 <cstring>Layout13</cstring> 178 <cstring>Layout13</cstring>
179 </property> 179 </property>
180 <vbox> 180 <vbox>
181 <property stdset="1"> 181 <property stdset="1">
182 <name>margin</name> 182 <name>margin</name>
183 <number>0</number> 183 <number>0</number>
184 </property> 184 </property>
185 <property stdset="1"> 185 <property stdset="1">
186 <name>spacing</name> 186 <name>spacing</name>
187 <number>6</number> 187 <number>6</number>
188 </property> 188 </property>
189 <widget> 189 <widget>
190 <class>QLabel</class> 190 <class>QLabel</class>
191 <property stdset="1"> 191 <property stdset="1">
192 <name>name</name> 192 <name>name</name>
193 <cstring>TextLabel1</cstring> 193 <cstring>TextLabel1</cstring>
194 </property> 194 </property>
195 <property stdset="1"> 195 <property stdset="1">
196 <name>text</name> 196 <name>text</name>
197 <string>Use secure sockets:</string> 197 <string>Use secure sockets:</string>
198 </property> 198 </property>
199 </widget> 199 </widget>
200 <widget> 200 <widget>
201 <class>QComboBox</class> 201 <class>QComboBox</class>
202 <property stdset="1"> 202 <property stdset="1">
203 <name>name</name> 203 <name>name</name>
204 <cstring>ComboBox1</cstring> 204 <cstring>ComboBox1</cstring>
205 </property> 205 </property>
206 </widget> 206 </widget>
207 </vbox> 207 </vbox>
208 </widget> 208 </widget>
209 <widget> 209 <widget>
210 <class>QLineEdit</class> 210 <class>QLineEdit</class>
211 <property stdset="1"> 211 <property stdset="1">
212 <name>name</name> 212 <name>name</name>
213 <cstring>CommandEdit</cstring> 213 <cstring>CommandEdit</cstring>
214 </property> 214 </property>
215 <property stdset="1"> 215 <property stdset="1">
216 <name>text</name> 216 <name>text</name>
217 <string>ssh $SERVER exec imapd</string> 217 <string>ssh $SERVER exec imapd</string>
218 </property> 218 </property>
219 </widget> 219 </widget>
220 <widget> 220 <widget>
221 <class>Line</class> 221 <class>Line</class>
222 <property stdset="1"> 222 <property stdset="1">
223 <name>name</name> 223 <name>name</name>
224 <cstring>line2</cstring> 224 <cstring>line2</cstring>
225 </property> 225 </property>
226 <property stdset="1"> 226 <property stdset="1">
227 <name>orientation</name> 227 <name>orientation</name>
228 <enum>Horizontal</enum> 228 <enum>Horizontal</enum>
229 </property> 229 </property>
230 </widget> 230 </widget>
231 <widget> 231 <widget>
232 <class>QLayoutWidget</class> 232 <class>QLayoutWidget</class>
233 <property stdset="1"> 233 <property stdset="1">
234 <name>name</name> 234 <name>name</name>
235 <cstring>Layout6</cstring> 235 <cstring>Layout6</cstring>
236 </property> 236 </property>
237 <hbox> 237 <hbox>
238 <property stdset="1"> 238 <property stdset="1">
239 <name>margin</name> 239 <name>margin</name>
240 <number>0</number> 240 <number>0</number>
241 </property> 241 </property>
242 <property stdset="1"> 242 <property stdset="1">
243 <name>spacing</name> 243 <name>spacing</name>
244 <number>6</number> 244 <number>6</number>
245 </property> 245 </property>
246 <widget> 246 <widget>
247 <class>QLayoutWidget</class> 247 <class>QLayoutWidget</class>
248 <property stdset="1"> 248 <property stdset="1">
249 <name>name</name> 249 <name>name</name>
250 <cstring>Layout4</cstring> 250 <cstring>Layout4</cstring>
251 </property> 251 </property>
252 <vbox> 252 <vbox>
253 <property stdset="1"> 253 <property stdset="1">
254 <name>margin</name> 254 <name>margin</name>
255 <number>0</number> 255 <number>0</number>
256 </property> 256 </property>
257 <property stdset="1"> 257 <property stdset="1">
258 <name>spacing</name> 258 <name>spacing</name>
259 <number>6</number> 259 <number>6</number>
260 </property> 260 </property>
261 <widget> 261 <widget>
262 <class>QLabel</class> 262 <class>QLabel</class>
263 <property stdset="1"> 263 <property stdset="1">
264 <name>name</name> 264 <name>name</name>
265 <cstring>userLabel</cstring> 265 <cstring>userLabel</cstring>
266 </property> 266 </property>
267 <property stdset="1"> 267 <property stdset="1">
268 <name>text</name> 268 <name>text</name>
269 <string>User</string> 269 <string>User</string>
270 </property> 270 </property>
271 </widget> 271 </widget>
272 <widget> 272 <widget>
273 <class>QLabel</class> 273 <class>QLabel</class>
274 <property stdset="1"> 274 <property stdset="1">
275 <name>name</name> 275 <name>name</name>
276 <cstring>passLabel</cstring> 276 <cstring>passLabel</cstring>
277 </property> 277 </property>
278 <property stdset="1"> 278 <property stdset="1">
279 <name>text</name> 279 <name>text</name>
280 <string>Password</string> 280 <string>Password</string>
281 </property> 281 </property>
282 </widget> 282 </widget>
283 </vbox> 283 </vbox>
284 </widget> 284 </widget>
285 <widget> 285 <widget>
286 <class>QLayoutWidget</class> 286 <class>QLayoutWidget</class>
287 <property stdset="1"> 287 <property stdset="1">
288 <name>name</name> 288 <name>name</name>
289 <cstring>Layout5</cstring> 289 <cstring>Layout5</cstring>
290 </property> 290 </property>
291 <vbox> 291 <vbox>
292 <property stdset="1"> 292 <property stdset="1">
293 <name>margin</name> 293 <name>margin</name>
294 <number>0</number> 294 <number>0</number>
295 </property> 295 </property>
296 <property stdset="1"> 296 <property stdset="1">
297 <name>spacing</name> 297 <name>spacing</name>
298 <number>6</number> 298 <number>6</number>
299 </property> 299 </property>
300 <widget> 300 <widget>
301 <class>QLineEdit</class> 301 <class>QLineEdit</class>
302 <property stdset="1"> 302 <property stdset="1">
303 <name>name</name> 303 <name>name</name>
304 <cstring>userLine</cstring> 304 <cstring>userLine</cstring>
305 </property> 305 </property>
306 </widget> 306 </widget>
307 <widget> 307 <widget>
308 <class>QLineEdit</class> 308 <class>QLineEdit</class>
309 <property stdset="1"> 309 <property stdset="1">
310 <name>name</name> 310 <name>name</name>
311 <cstring>passLine</cstring> 311 <cstring>passLine</cstring>
312 </property> 312 </property>
313 <property stdset="1"> 313 <property stdset="1">
314 <name>echoMode</name> 314 <name>echoMode</name>
315 <enum>Password</enum> 315 <enum>Password</enum>
316 </property> 316 </property>
317 </widget> 317 </widget>
318 </vbox> 318 </vbox>
319 </widget> 319 </widget>
320 </hbox> 320 </hbox>
321 </widget> 321 </widget>
322 <widget> 322 <widget>
323 <class>QLayoutWidget</class> 323 <class>QLayoutWidget</class>
324 <property stdset="1"> 324 <property stdset="1">
325 <name>name</name> 325 <name>name</name>
326 <cstring>Layout9</cstring> 326 <cstring>Layout9</cstring>
327 </property> 327 </property>
328 <hbox> 328 <hbox>
329 <property stdset="1"> 329 <property stdset="1">
330 <name>margin</name> 330 <name>margin</name>
331 <number>0</number> 331 <number>0</number>
332 </property> 332 </property>
333 <property stdset="1"> 333 <property stdset="1">
334 <name>spacing</name> 334 <name>spacing</name>
335 <number>6</number> 335 <number>6</number>
336 </property> 336 </property>
337 <widget> 337 <widget>
338 <class>QLabel</class> 338 <class>QLabel</class>
339 <property stdset="1"> 339 <property stdset="1">
340 <name>name</name> 340 <name>name</name>
341 <cstring>TextLabel1_2</cstring> 341 <cstring>TextLabel1_2</cstring>
342 </property> 342 </property>
343 <property stdset="1"> 343 <property stdset="1">
344 <name>text</name> 344 <name>text</name>
345 <string>Local storage folder:</string> 345 <string>Local storage folder:</string>
346 </property> 346 </property>
347 </widget> 347 </widget>
348 <widget> 348 <widget>
349 <class>QLineEdit</class> 349 <class>QLineEdit</class>
350 <property stdset="1"> 350 <property stdset="1">
351 <name>name</name> 351 <name>name</name>
352 <cstring>localFolder</cstring> 352 <cstring>localFolder</cstring>
353 </property> 353 </property>
354 <property stdset="1"> 354 <property stdset="1">
355 <name>text</name> 355 <name>text</name>
356 <string></string> 356 <string></string>
357 </property> 357 </property>
358 </widget> 358 </widget>
359 </hbox> 359 </hbox>
360 </widget> 360 </widget>
361 <widget> 361 <widget>
362 <class>QLayoutWidget</class> 362 <class>QLayoutWidget</class>
363 <property stdset="1"> 363 <property stdset="1">
364 <name>name</name> 364 <name>name</name>
365 <cstring>Layout10</cstring> 365 <cstring>Layout10</cstring>
366 </property> 366 </property>
367 <hbox> 367 <hbox>
368 <property stdset="1"> 368 <property stdset="1">
369 <name>margin</name> 369 <name>margin</name>
370 <number>0</number> 370 <number>0</number>
371 </property> 371 </property>
372 <property stdset="1"> 372 <property stdset="1">
373 <name>spacing</name> 373 <name>spacing</name>
374 <number>6</number> 374 <number>6</number>
375 </property> 375 </property>
376 <widget> 376 <widget>
377 <class>QCheckBox</class> 377 <class>QCheckBox</class>
378 <property stdset="1"> 378 <property stdset="1">
379 <name>name</name> 379 <name>name</name>
380 <cstring>CheckBoxDown</cstring> 380 <cstring>CheckBoxDown</cstring>
381 </property> 381 </property>
382 <property stdset="1"> 382 <property stdset="1">
383 <name>text</name> 383 <name>text</name>
384 <string>Download only messages smaller</string> 384 <string>Download only messages smaller</string>
385 </property> 385 </property>
386 </widget> 386 </widget>
387 <widget> 387 <widget>
388 <class>QSpinBox</class> 388 <class>QSpinBox</class>
389 <property stdset="1"> 389 <property stdset="1">
390 <name>name</name> 390 <name>name</name>
391 <cstring>SpinBoxDown</cstring> 391 <cstring>SpinBoxDown</cstring>
392 </property> 392 </property>
393 <property stdset="1"> 393 <property stdset="1">
394 <name>suffix</name> 394 <name>suffix</name>
395 <string>kB</string> 395 <string>kB</string>
396 </property> 396 </property>
397 <property stdset="1"> 397 <property stdset="1">
398 <name>maxValue</name> 398 <name>maxValue</name>
399 <number>99999</number> 399 <number>99999</number>
400 </property> 400 </property>
401 <property stdset="1"> 401 <property stdset="1">
402 <name>minValue</name> 402 <name>minValue</name>
403 <number>1</number> 403 <number>1</number>
404 </property> 404 </property>
405 </widget> 405 </widget>
406 </hbox> 406 </hbox>
407 </widget> 407 </widget>
408 <widget>
409 <class>QCheckBox</class>
410 <property stdset="1">
411 <name>name</name>
412 <cstring>CheckBoxLeaveOn</cstring>
413 </property>
414 <property stdset="1">
415 <name>text</name>
416 <string>Leave Messages on Server</string>
417 </property>
418 </widget>
408 <spacer> 419 <spacer>
409 <property> 420 <property>
410 <name>name</name> 421 <name>name</name>
411 <cstring>spacer</cstring> 422 <cstring>spacer</cstring>
412 </property> 423 </property>
413 <property stdset="1"> 424 <property stdset="1">
414 <name>orientation</name> 425 <name>orientation</name>
415 <enum>Vertical</enum> 426 <enum>Vertical</enum>
416 </property> 427 </property>
417 <property stdset="1"> 428 <property stdset="1">
418 <name>sizeType</name> 429 <name>sizeType</name>
419 <enum>Expanding</enum> 430 <enum>Expanding</enum>
420 </property> 431 </property>
421 <property> 432 <property>
422 <name>sizeHint</name> 433 <name>sizeHint</name>
423 <size> 434 <size>
424 <width>20</width> 435 <width>20</width>
425 <height>20</height> 436 <height>20</height>
426 </size> 437 </size>
427 </property> 438 </property>
428 </spacer> 439 </spacer>
429 </vbox> 440 </vbox>
430</widget> 441</widget>
431<tabstops> 442<tabstops>
432 <tabstop>accountLine</tabstop> 443 <tabstop>accountLine</tabstop>
433 <tabstop>serverLine</tabstop> 444 <tabstop>serverLine</tabstop>
434 <tabstop>portLine</tabstop> 445 <tabstop>portLine</tabstop>
435 <tabstop>userLine</tabstop> 446 <tabstop>userLine</tabstop>
436 <tabstop>passLine</tabstop> 447 <tabstop>passLine</tabstop>
437</tabstops> 448</tabstops>
438</UI> 449</UI>