summaryrefslogtreecommitdiff
path: root/noncore/net/mail/accountitem.cpp
Unidiff
Diffstat (limited to 'noncore/net/mail/accountitem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/mail/accountitem.cpp309
1 files changed, 197 insertions, 112 deletions
diff --git a/noncore/net/mail/accountitem.cpp b/noncore/net/mail/accountitem.cpp
index 2d3cd4b..c8f6ec4 100644
--- a/noncore/net/mail/accountitem.cpp
+++ b/noncore/net/mail/accountitem.cpp
@@ -1,37 +1,46 @@
1
1#include "accountitem.h" 2#include "accountitem.h"
2#include "accountview.h" 3#include "accountview.h"
3#include <qpopupmenu.h>
4#include <qmessagebox.h>
5#include "selectstore.h" 4#include "selectstore.h"
6#include "newmaildir.h" 5#include "newmaildir.h"
6#include "defines.h"
7
8/* OPIE */
7#include <libmailwrapper/mailtypes.h> 9#include <libmailwrapper/mailtypes.h>
8#include <libmailwrapper/abstractmail.h> 10#include <libmailwrapper/abstractmail.h>
9#include <libmailwrapper/mailwrapper.h> 11#include <libmailwrapper/mailwrapper.h>
10#include "defines.h" 12#include <qpe/qpeapplication.h>
13
14/* QT */
15#include <qpopupmenu.h>
16#include <qmessagebox.h>
11 17
12#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );} 18#define SETPIX(x) if (!account->getOffline()) {setPixmap( 0,x);} else {setPixmap( 0, PIXMAP_OFFLINE );}
13/** 19/**
14 * POP3 Account stuff 20 * POP3 Account stuff
15 */ 21 */
16POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent ) 22POP3viewItem::POP3viewItem( POP3account *a, AccountView *parent )
17 : AccountViewItem( parent ) 23 : AccountViewItem( parent )
18{ 24{
19 account = a; 25 account = a;
20 wrapper = AbstractMail::getWrapper( account ); 26 wrapper = AbstractMail::getWrapper( account );
21 SETPIX(PIXMAP_POP3FOLDER); 27 SETPIX(PIXMAP_POP3FOLDER);
22#if 0 28#if 0
23 if (!account->getOffline()) { 29 if (!account->getOffline())
30 {
24 setPixmap( 0, ); 31 setPixmap( 0, );
25 } else { 32 }
33 else
34 {
26 setPixmap( 0, PIXMAP_OFFLINE ); 35 setPixmap( 0, PIXMAP_OFFLINE );
27 } 36 }
28#endif 37#endif
29 setText( 0, account->getAccountName() ); 38 setText( 0, account->getAccountName() );
30 setOpen( true ); 39 setOpen( true );
31} 40}
32 41
33POP3viewItem::~POP3viewItem() 42POP3viewItem::~POP3viewItem()
34{ 43{
35 delete wrapper; 44 delete wrapper;
36} 45}
37 46
@@ -41,165 +50,178 @@ AbstractMail *POP3viewItem::getWrapper()
41} 50}
42 51
43void POP3viewItem::refresh( QList<RecMail> & ) 52void POP3viewItem::refresh( QList<RecMail> & )
44{ 53{
45 refresh(); 54 refresh();
46} 55}
47 56
48void POP3viewItem::refresh() 57void POP3viewItem::refresh()
49{ 58{
50 if (account->getOffline()) return; 59 if (account->getOffline()) return;
51 QList<Folder> *folders = wrapper->listFolders(); 60 QList<Folder> *folders = wrapper->listFolders();
52 QListViewItem *child = firstChild(); 61 QListViewItem *child = firstChild();
53 while ( child ) { 62 while ( child )
63 {
54 QListViewItem *tmp = child; 64 QListViewItem *tmp = child;
55 child = child->nextSibling(); 65 child = child->nextSibling();
56 delete tmp; 66 delete tmp;
57 } 67 }
58 Folder *it; 68 Folder *it;
59 QListViewItem*item = 0; 69 QListViewItem*item = 0;
60 for ( it = folders->first(); it; it = folders->next() ) { 70 for ( it = folders->first(); it; it = folders->next() )
71 {
61 item = new POP3folderItem( it, this , item ); 72 item = new POP3folderItem( it, this , item );
62 item->setSelectable(it->may_select()); 73 item->setSelectable(it->may_select());
63 } 74 }
64 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 75 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
65 folders->setAutoDelete(false); 76 folders->setAutoDelete(false);
66 delete folders; 77 delete folders;
67} 78}
68 79
69RecBody POP3viewItem::fetchBody( const RecMail &mail ) 80RecBody POP3viewItem::fetchBody( const RecMail &mail )
70{ 81{
71 qDebug( "POP3 fetchBody" ); 82 qDebug( "POP3 fetchBody" );
72 return wrapper->fetchBody( mail ); 83 return wrapper->fetchBody( mail );
73} 84}
74 85
75QPopupMenu * POP3viewItem::getContextMenu() 86QPopupMenu * POP3viewItem::getContextMenu()
76{ 87{
77 QPopupMenu *m = new QPopupMenu(0); 88 QPopupMenu *m = new QPopupMenu(0);
78 if (m) { 89 if (m)
79 if (!account->getOffline()) { 90 {
91 if (!account->getOffline())
92 {
80 m->insertItem(QObject::tr("Disconnect",contextName),0); 93 m->insertItem(QObject::tr("Disconnect",contextName),0);
81 m->insertItem(QObject::tr("Set offline",contextName),1); 94 m->insertItem(QObject::tr("Set offline",contextName),1);
82 } else { 95 }
96 else
97 {
83 m->insertItem(QObject::tr("Set online",contextName),1); 98 m->insertItem(QObject::tr("Set online",contextName),1);
84 } 99 }
85 } 100 }
86 return m; 101 return m;
87} 102}
88 103
89void POP3viewItem::disconnect() 104void POP3viewItem::disconnect()
90{ 105{
91 QListViewItem *child = firstChild(); 106 QListViewItem *child = firstChild();
92 while ( child ) { 107 while ( child )
108 {
93 QListViewItem *tmp = child; 109 QListViewItem *tmp = child;
94 child = child->nextSibling(); 110 child = child->nextSibling();
95 delete tmp; 111 delete tmp;
96 } 112 }
97 wrapper->logout(); 113 wrapper->logout();
98} 114}
99 115
100void POP3viewItem::setOnOffline() 116void POP3viewItem::setOnOffline()
101{ 117{
102 if (!account->getOffline()) { 118 if (!account->getOffline())
119 {
103 disconnect(); 120 disconnect();
104 } 121 }
105 account->setOffline(!account->getOffline()); 122 account->setOffline(!account->getOffline());
106 account->save(); 123 account->save();
107 SETPIX(PIXMAP_POP3FOLDER); 124 SETPIX(PIXMAP_POP3FOLDER);
108 refresh(); 125 refresh();
109} 126}
110 127
111void POP3viewItem::contextMenuSelected(int which) 128void POP3viewItem::contextMenuSelected(int which)
112{ 129{
113 switch (which) { 130 switch (which)
131 {
114 case 0: 132 case 0:
115 disconnect(); 133 disconnect();
116 break; 134 break;
117 case 1: 135 case 1:
118 setOnOffline(); 136 setOnOffline();
119 break; 137 break;
120 } 138 }
121} 139}
122 140
123POP3folderItem::~POP3folderItem() 141POP3folderItem::~POP3folderItem()
124{ 142{}
125}
126 143
127POP3folderItem::POP3folderItem( Folder *folderInit, POP3viewItem *parent , QListViewItem*after ) 144POP3folderItem::POP3folderItem( Folder *folderInit, POP3viewItem *parent , QListViewItem*after )
128 : AccountViewItem( parent,after ) 145 : AccountViewItem( parent,after )
129{ 146{
130 folder = folderInit; 147 folder = folderInit;
131 pop3 = parent; 148 pop3 = parent;
132 if (folder->getDisplayName().lower()!="inbox") { 149 if (folder->getDisplayName().lower()!="inbox")
150 {
133 setPixmap( 0, PIXMAP_POP3FOLDER ); 151 setPixmap( 0, PIXMAP_POP3FOLDER );
134 } else { 152 }
153 else
154 {
135 setPixmap( 0, PIXMAP_INBOXFOLDER); 155 setPixmap( 0, PIXMAP_INBOXFOLDER);
136 } 156 }
137 setText( 0, folder->getDisplayName() ); 157 setText( 0, folder->getDisplayName() );
138} 158}
139 159
140void POP3folderItem::refresh(QList<RecMail>&target) 160void POP3folderItem::refresh(QList<RecMail>&target)
141{ 161{
142 if (folder->may_select()) 162 if (folder->may_select())
143 pop3->getWrapper()->listMessages( folder->getName(),target ); 163 pop3->getWrapper()->listMessages( folder->getName(),target );
144} 164}
145 165
146RecBody POP3folderItem::fetchBody(const RecMail&aMail) 166RecBody POP3folderItem::fetchBody(const RecMail&aMail)
147{ 167{
148 return pop3->getWrapper()->fetchBody(aMail); 168 return pop3->getWrapper()->fetchBody(aMail);
149} 169}
150 170
151QPopupMenu * POP3folderItem::getContextMenu() 171QPopupMenu * POP3folderItem::getContextMenu()
152{ 172{
153 QPopupMenu *m = new QPopupMenu(0); 173 QPopupMenu *m = new QPopupMenu(0);
154 if (m) { 174 if (m)
175 {
155 m->insertItem(QObject::tr("Refresh header list",contextName),0); 176 m->insertItem(QObject::tr("Refresh header list",contextName),0);
156 m->insertItem(QObject::tr("Delete all mails",contextName),1); 177 m->insertItem(QObject::tr("Delete all mails",contextName),1);
157 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 178 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
158 } 179 }
159 return m; 180 return m;
160} 181}
161 182
162void POP3folderItem::downloadMails() 183void POP3folderItem::downloadMails()
163{ 184{
164 AccountView*bl = pop3->accountView(); 185 AccountView*bl = pop3->accountView();
165 if (!bl) return; 186 if (!bl) return;
166 bl->downloadMails(folder,pop3->getWrapper()); 187 bl->downloadMails(folder,pop3->getWrapper());
167} 188}
168 189
169void POP3folderItem::contextMenuSelected(int which) 190void POP3folderItem::contextMenuSelected(int which)
170{ 191{
171 AccountView * view = (AccountView*)listView(); 192 AccountView * view = (AccountView*)listView();
172 switch (which) { 193 switch (which)
194 {
173 case 0: 195 case 0:
174 /* must be 'cause pop3 lists are cached */ 196 /* must be 'cause pop3 lists are cached */
175 pop3->getWrapper()->logout(); 197 pop3->getWrapper()->logout();
176 view->refreshCurrent(); 198 view->refreshCurrent();
177 break; 199 break;
178 case 1: 200 case 1:
179 deleteAllMail(pop3->getWrapper(),folder); 201 deleteAllMail(pop3->getWrapper(),folder);
180 break; 202 break;
181 case 2: 203 case 2:
182 downloadMails(); 204 downloadMails();
183 break; 205 break;
184 default: 206 default:
185 break; 207 break;
186 } 208 }
187} 209}
188 210
189/** 211/**
190 * IMAP Account stuff 212 * IMAP Account stuff
191 */ 213 */
192IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent ) 214IMAPviewItem::IMAPviewItem( IMAPaccount *a, AccountView *parent )
193 : AccountViewItem( parent ) 215 : AccountViewItem( parent )
194{ 216{
195 account = a; 217 account = a;
196 wrapper = AbstractMail::getWrapper( account ); 218 wrapper = AbstractMail::getWrapper( account );
197 SETPIX(PIXMAP_IMAPFOLDER); 219 SETPIX(PIXMAP_IMAPFOLDER);
198 setText( 0, account->getAccountName() ); 220 setText( 0, account->getAccountName() );
199 setOpen( true ); 221 setOpen( true );
200} 222}
201 223
202IMAPviewItem::~IMAPviewItem() 224IMAPviewItem::~IMAPviewItem()
203{ 225{
204 delete wrapper; 226 delete wrapper;
205} 227}
@@ -213,256 +235,288 @@ void IMAPviewItem::refresh(QList<RecMail>&)
213{ 235{
214 refreshFolders(false); 236 refreshFolders(false);
215} 237}
216 238
217const QStringList&IMAPviewItem::subFolders() 239const QStringList&IMAPviewItem::subFolders()
218{ 240{
219 return currentFolders; 241 return currentFolders;
220} 242}
221 243
222void IMAPviewItem::refreshFolders(bool force) 244void IMAPviewItem::refreshFolders(bool force)
223{ 245{
224 if (childCount()>0 && force==false) return; 246 if (childCount()>0 && force==false) return;
225 if (account->getOffline()) return; 247 if (account->getOffline()) return;
226 248
227 removeChilds(); 249 removeChilds();
228 currentFolders.clear(); 250 currentFolders.clear();
229 QList<Folder> *folders = wrapper->listFolders(); 251 QList<Folder> *folders = wrapper->listFolders();
230 252
231 Folder *it; 253 Folder *it;
232 QListViewItem*item = 0; 254 QListViewItem*item = 0;
233 QListViewItem*titem = 0; 255 QListViewItem*titem = 0;
234 QString fname,del,search; 256 QString fname,del,search;
235 int pos; 257 int pos;
236 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 258 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
237 folders->setAutoDelete(false); 259 folders->setAutoDelete(false);
238 260
239 for ( it = folders->first(); it; it = folders->next() ) { 261 for ( it = folders->first(); it; it = folders->next() )
240 if (it->getDisplayName().lower()=="inbox") { 262 {
263 if (it->getDisplayName().lower()=="inbox")
264 {
241 item = new IMAPfolderItem( it, this , item ); 265 item = new IMAPfolderItem( it, this , item );
242 folders->remove(it); 266 folders->remove(it);
243 qDebug("inbox found"); 267 qDebug("inbox found");
244 break; 268 break;
245 } 269 }
246 } 270 }
247 for ( it = folders->first(); it; it = folders->next() ) { 271 for ( it = folders->first(); it; it = folders->next() )
272 {
248 fname = it->getDisplayName(); 273 fname = it->getDisplayName();
249 currentFolders.append(it->getName()); 274 currentFolders.append(it->getName());
250 pos = fname.findRev(it->Separator()); 275 pos = fname.findRev(it->Separator());
251 if (pos != -1) { 276 if (pos != -1)
277 {
252 fname = fname.left(pos); 278 fname = fname.left(pos);
253 } 279 }
254 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname); 280 IMAPfolderItem*pitem = (IMAPfolderItem*)findSubItem(fname);
255 if (pitem) { 281 if (pitem)
282 {
256 titem = item; 283 titem = item;
257 item = new IMAPfolderItem(it,pitem,pitem->firstChild(),this); 284 item = new IMAPfolderItem(it,pitem,pitem->firstChild(),this);
258 /* setup the short name */ 285 /* setup the short name */
259 item->setText(0,it->getDisplayName().right(it->getDisplayName().length()-pos-1)); 286 item->setText(0,it->getDisplayName().right(it->getDisplayName().length()-pos-1));
260 item = titem; 287 item = titem;
261 } else { 288 }
289 else
290 {
262 item = new IMAPfolderItem( it, this , item ); 291 item = new IMAPfolderItem( it, this , item );
263 } 292 }
264 } 293 }
265 delete folders; 294 delete folders;
266} 295}
267 296
268QPopupMenu * IMAPviewItem::getContextMenu() 297QPopupMenu * IMAPviewItem::getContextMenu()
269{ 298{
270 QPopupMenu *m = new QPopupMenu(0); 299 QPopupMenu *m = new QPopupMenu(0);
271 if (m) { 300 if (m)
272 if (!account->getOffline()) { 301 {
302 if (!account->getOffline())
303 {
273 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 304 m->insertItem(QObject::tr("Refresh folder list",contextName),0);
274 m->insertItem(QObject::tr("Create new folder",contextName),1); 305 m->insertItem(QObject::tr("Create new folder",contextName),1);
275 m->insertSeparator(); 306 m->insertSeparator();
276 m->insertItem(QObject::tr("Disconnect",contextName),2); 307 m->insertItem(QObject::tr("Disconnect",contextName),2);
277 m->insertItem(QObject::tr("Set offline",contextName),3); 308 m->insertItem(QObject::tr("Set offline",contextName),3);
278 } else { 309 }
310 else
311 {
279 m->insertItem(QObject::tr("Set online",contextName),3); 312 m->insertItem(QObject::tr("Set online",contextName),3);
280 } 313 }
281 } 314 }
282 return m; 315 return m;
283} 316}
284 317
285void IMAPviewItem::createNewFolder() 318void IMAPviewItem::createNewFolder()
286{ 319{
287 Newmdirdlg ndirdlg; 320 Newmdirdlg ndirdlg;
288 ndirdlg.showMaximized(); 321 if ( QPEApplication::execDialog( &ndirdlg ))
289 if (ndirdlg.exec()) { 322 {
290 QString ndir = ndirdlg.Newdir(); 323 QString ndir = ndirdlg.Newdir();
291 bool makesubs = ndirdlg.subpossible(); 324 bool makesubs = ndirdlg.subpossible();
292 QString delemiter = "/"; 325 QString delemiter = "/";
293 IMAPfolderItem*item = (IMAPfolderItem*)firstChild(); 326 IMAPfolderItem*item = (IMAPfolderItem*)firstChild();
294 if (item) { 327 if (item)
328 {
295 delemiter = item->Delemiter(); 329 delemiter = item->Delemiter();
296 } 330 }
297 if (wrapper->createMbox(ndir,0,delemiter,makesubs)) { 331 if (wrapper->createMbox(ndir,0,delemiter,makesubs))
332 {
298 refreshFolders(true); 333 refreshFolders(true);
299 } 334 }
300 } 335 }
301} 336}
302 337
303void IMAPviewItem::contextMenuSelected(int id) 338void IMAPviewItem::contextMenuSelected(int id)
304{ 339{
305 qDebug("Id selected: %i",id); 340 qDebug("Id selected: %i",id);
306 switch (id) { 341 switch (id)
342 {
307 case 0: 343 case 0:
308 refreshFolders(true); 344 refreshFolders(true);
309 break; 345 break;
310 case 1: 346 case 1:
311 createNewFolder(); 347 createNewFolder();
312 break; 348 break;
313 case 2: 349 case 2:
314 removeChilds(); 350 removeChilds();
315 wrapper->logout(); 351 wrapper->logout();
316 break; 352 break;
317 case 3: 353 case 3:
318 if (account->getOffline()==false) { 354 if (account->getOffline()==false)
355 {
319 removeChilds(); 356 removeChilds();
320 wrapper->logout(); 357 wrapper->logout();
321 } 358 }
322 account->setOffline(!account->getOffline()); 359 account->setOffline(!account->getOffline());
323 account->save(); 360 account->save();
324 SETPIX(PIXMAP_IMAPFOLDER); 361 SETPIX(PIXMAP_IMAPFOLDER);
325 refreshFolders(false); 362 refreshFolders(false);
326 break; 363 break;
327 default: 364 default:
328 break; 365 break;
329 } 366 }
330} 367}
331 368
332RecBody IMAPviewItem::fetchBody(const RecMail&) 369RecBody IMAPviewItem::fetchBody(const RecMail&)
333{ 370{
334 return RecBody(); 371 return RecBody();
335} 372}
336 373
337bool IMAPviewItem::offline() 374bool IMAPviewItem::offline()
338{ 375{
339 return account->getOffline(); 376 return account->getOffline();
340} 377}
341 378
342IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent , QListViewItem*after ) 379IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPviewItem *parent , QListViewItem*after )
343 : AccountViewItem( parent , after ) 380 : AccountViewItem( parent , after )
344{ 381{
345 folder = folderInit; 382 folder = folderInit;
346 imap = parent; 383 imap = parent;
347 if (folder->getDisplayName().lower()!="inbox") { 384 if (folder->getDisplayName().lower()!="inbox")
385 {
348 setPixmap( 0, PIXMAP_IMAPFOLDER ); 386 setPixmap( 0, PIXMAP_IMAPFOLDER );
349 } else { 387 }
388 else
389 {
350 setPixmap( 0, PIXMAP_INBOXFOLDER); 390 setPixmap( 0, PIXMAP_INBOXFOLDER);
351 } 391 }
352 setText( 0, folder->getDisplayName() ); 392 setText( 0, folder->getDisplayName() );
353} 393}
354 394
355IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master ) 395IMAPfolderItem::IMAPfolderItem( Folder *folderInit, IMAPfolderItem *parent , QListViewItem*after, IMAPviewItem *master )
356 : AccountViewItem( parent,after ) 396 : AccountViewItem( parent,after )
357{ 397{
358 folder = folderInit; 398 folder = folderInit;
359 imap = master; 399 imap = master;
360 if (folder->getDisplayName().lower()!="inbox") { 400 if (folder->getDisplayName().lower()!="inbox")
401 {
361 setPixmap( 0, PIXMAP_IMAPFOLDER ); 402 setPixmap( 0, PIXMAP_IMAPFOLDER );
362 } else { 403 }
404 else
405 {
363 setPixmap( 0, PIXMAP_INBOXFOLDER); 406 setPixmap( 0, PIXMAP_INBOXFOLDER);
364 } 407 }
365 setText( 0, folder->getDisplayName() ); 408 setText( 0, folder->getDisplayName() );
366} 409}
367 410
368IMAPfolderItem::~IMAPfolderItem() 411IMAPfolderItem::~IMAPfolderItem()
369{ 412{}
370}
371 413
372const QString& IMAPfolderItem::Delemiter()const 414const QString& IMAPfolderItem::Delemiter()const
373{ 415{
374 return folder->Separator(); 416 return folder->Separator();
375} 417}
376 418
377void IMAPfolderItem::refresh(QList<RecMail>&target) 419void IMAPfolderItem::refresh(QList<RecMail>&target)
378{ 420{
379 if (folder->may_select()) { 421 if (folder->may_select())
422 {
380 imap->getWrapper()->listMessages( folder->getName(),target ); 423 imap->getWrapper()->listMessages( folder->getName(),target );
381 } else { 424 }
425 else
426 {
382 target.clear(); 427 target.clear();
383 } 428 }
384} 429}
385 430
386RecBody IMAPfolderItem::fetchBody(const RecMail&aMail) 431RecBody IMAPfolderItem::fetchBody(const RecMail&aMail)
387{ 432{
388 return imap->getWrapper()->fetchBody(aMail); 433 return imap->getWrapper()->fetchBody(aMail);
389} 434}
390 435
391QPopupMenu * IMAPfolderItem::getContextMenu() 436QPopupMenu * IMAPfolderItem::getContextMenu()
392{ 437{
393 QPopupMenu *m = new QPopupMenu(0); 438 QPopupMenu *m = new QPopupMenu(0);
394 if (m) { 439 if (m)
395 if (folder->may_select()) { 440 {
441 if (folder->may_select())
442 {
396 m->insertItem(QObject::tr("Refresh header list",contextName),0); 443 m->insertItem(QObject::tr("Refresh header list",contextName),0);
397 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4); 444 m->insertItem(QObject::tr("Move/Copie all mails",contextName),4);
398 m->insertItem(QObject::tr("Delete all mails",contextName),1); 445 m->insertItem(QObject::tr("Delete all mails",contextName),1);
399 } 446 }
400 if (folder->no_inferior()==false) { 447 if (folder->no_inferior()==false)
448 {
401 m->insertItem(QObject::tr("Create new subfolder",contextName),2); 449 m->insertItem(QObject::tr("Create new subfolder",contextName),2);
402 } 450 }
403 if (folder->getDisplayName().lower()!="inbox") { 451 if (folder->getDisplayName().lower()!="inbox")
452 {
404 m->insertItem(QObject::tr("Delete folder",contextName),3); 453 m->insertItem(QObject::tr("Delete folder",contextName),3);
405 } 454 }
406 } 455 }
407 return m; 456 return m;
408} 457}
409 458
410void IMAPfolderItem::createNewFolder() 459void IMAPfolderItem::createNewFolder()
411{ 460{
412 Newmdirdlg ndirdlg; 461 Newmdirdlg ndirdlg;
413 ndirdlg.showMaximized(); 462 if ( QPEApplication::execDialog( &ndirdlg ) )
414 if (ndirdlg.exec()) { 463 {
415 QString ndir = ndirdlg.Newdir(); 464 QString ndir = ndirdlg.Newdir();
416 bool makesubs = ndirdlg.subpossible(); 465 bool makesubs = ndirdlg.subpossible();
417 QString delemiter = Delemiter(); 466 QString delemiter = Delemiter();
418 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs)) { 467 if (imap->wrapper->createMbox(ndir,folder,delemiter,makesubs))
468 {
419 imap->refreshFolders(true); 469 imap->refreshFolders(true);
420 } 470 }
421 } 471 }
422} 472}
423 473
424void IMAPfolderItem::deleteFolder() 474void IMAPfolderItem::deleteFolder()
425{ 475{
426 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), 476 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName),
427 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), 477 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
428 QObject::tr("Yes",contextName), 478 QObject::tr("Yes",contextName),
429 QObject::tr("No",contextName),QString::null,1,1); 479 QObject::tr("No",contextName),QString::null,1,1);
430 qDebug("Auswahl: %i",yesno); 480 qDebug("Auswahl: %i",yesno);
431 if (yesno == 0) { 481 if (yesno == 0)
432 if (imap->getWrapper()->deleteMbox(folder)) { 482 {
483 if (imap->getWrapper()->deleteMbox(folder))
484 {
433 QListView*v=listView(); 485 QListView*v=listView();
434 IMAPviewItem * box = imap; 486 IMAPviewItem * box = imap;
435 /* be carefull - after that this object is destroyd so don't use 487 /* be carefull - after that this object is destroyd so don't use
436 * any member of it after that call!!*/ 488 * any member of it after that call!!*/
437 imap->refreshFolders(true); 489 imap->refreshFolders(true);
438 if (v) { 490 if (v)
491 {
439 v->setSelected(box,true); 492 v->setSelected(box,true);
440 } 493 }
441 } 494 }
442 } 495 }
443} 496}
444 497
445void IMAPfolderItem::downloadMails() 498void IMAPfolderItem::downloadMails()
446{ 499{
447 AccountView*bl = imap->accountView(); 500 AccountView*bl = imap->accountView();
448 if (!bl) return; 501 if (!bl) return;
449 bl->downloadMails(folder,imap->getWrapper()); 502 bl->downloadMails(folder,imap->getWrapper());
450} 503}
451 504
452void IMAPfolderItem::contextMenuSelected(int id) 505void IMAPfolderItem::contextMenuSelected(int id)
453{ 506{
454 qDebug("Selected id: %i",id); 507 qDebug("Selected id: %i",id);
455 AccountView * view = (AccountView*)listView(); 508 AccountView * view = (AccountView*)listView();
456 switch(id) { 509 switch(id)
510 {
457 case 0: 511 case 0:
458 view->refreshCurrent(); 512 view->refreshCurrent();
459 break; 513 break;
460 case 1: 514 case 1:
461 deleteAllMail(imap->getWrapper(),folder); 515 deleteAllMail(imap->getWrapper(),folder);
462 break; 516 break;
463 case 2: 517 case 2:
464 createNewFolder(); 518 createNewFolder();
465 break; 519 break;
466 case 3: 520 case 3:
467 deleteFolder(); 521 deleteFolder();
468 break; 522 break;
@@ -471,25 +525,25 @@ void IMAPfolderItem::contextMenuSelected(int id)
471 break; 525 break;
472 default: 526 default:
473 break; 527 break;
474 } 528 }
475} 529}
476 530
477/** 531/**
478 * MH Account stuff 532 * MH Account stuff
479 */ 533 */
480/* MH is a little bit different - the top folder can contains messages other than in IMAP and 534/* MH is a little bit different - the top folder can contains messages other than in IMAP and
481 POP3 and MBOX */ 535 POP3 and MBOX */
482MHviewItem::MHviewItem( const QString&aPath, AccountView *parent ) 536MHviewItem::MHviewItem( const QString&aPath, AccountView *parent )
483 : AccountViewItem( parent ) 537 : AccountViewItem( parent )
484{ 538{
485 m_Path = aPath; 539 m_Path = aPath;
486 /* be carefull - the space within settext is wanted - thats why the string twice */ 540 /* be carefull - the space within settext is wanted - thats why the string twice */
487 wrapper = AbstractMail::getWrapper( m_Path,"Local Folders"); 541 wrapper = AbstractMail::getWrapper( m_Path,"Local Folders");
488 setPixmap( 0, PIXMAP_LOCALFOLDER ); 542 setPixmap( 0, PIXMAP_LOCALFOLDER );
489 setText( 0, " Local Folders" ); 543 setText( 0, " Local Folders" );
490 setOpen( true ); 544 setOpen( true );
491 folder = 0; 545 folder = 0;
492} 546}
493 547
494MHviewItem::~MHviewItem() 548MHviewItem::~MHviewItem()
495{ 549{
@@ -509,270 +563,294 @@ void MHviewItem::refresh( QList<RecMail> & target)
509 563
510void MHviewItem::refresh(bool force) 564void MHviewItem::refresh(bool force)
511{ 565{
512 if (childCount()>0 && force==false) return; 566 if (childCount()>0 && force==false) return;
513 removeChilds(); 567 removeChilds();
514 currentFolders.clear(); 568 currentFolders.clear();
515 QList<Folder> *folders = wrapper->listFolders(); 569 QList<Folder> *folders = wrapper->listFolders();
516 Folder *it; 570 Folder *it;
517 MHfolderItem*item = 0; 571 MHfolderItem*item = 0;
518 MHfolderItem*pmaster = 0; 572 MHfolderItem*pmaster = 0;
519 QString fname = ""; 573 QString fname = "";
520 int pos; 574 int pos;
521 for ( it = folders->first(); it; it = folders->next() ) { 575 for ( it = folders->first(); it; it = folders->next() )
576 {
522 fname = it->getDisplayName(); 577 fname = it->getDisplayName();
523 /* this folder itself */ 578 /* this folder itself */
524 if (fname=="/") { 579 if (fname=="/")
580 {
525 currentFolders.append(fname); 581 currentFolders.append(fname);
526 folder = it; 582 folder = it;
527 continue; 583 continue;
528 } 584 }
529 currentFolders.append(fname); 585 currentFolders.append(fname);
530 pos = fname.findRev("/"); 586 pos = fname.findRev("/");
531 if (pos > 0) { 587 if (pos > 0)
588 {
532 fname = fname.left(pos); 589 fname = fname.left(pos);
533 pmaster = (MHfolderItem*)findSubItem(fname); 590 pmaster = (MHfolderItem*)findSubItem(fname);
534 } else { 591 }
592 else
593 {
535 pmaster = 0; 594 pmaster = 0;
536 } 595 }
537 if (pmaster) { 596 if (pmaster)
597 {
538 item = new MHfolderItem( it, pmaster, item, this ); 598 item = new MHfolderItem( it, pmaster, item, this );
539 } else { 599 }
600 else
601 {
540 item = new MHfolderItem( it, this , item ); 602 item = new MHfolderItem( it, this , item );
541 } 603 }
542 item->setSelectable(it->may_select()); 604 item->setSelectable(it->may_select());
543 } 605 }
544 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 606 // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
545 folders->setAutoDelete(false); 607 folders->setAutoDelete(false);
546 delete folders; 608 delete folders;
547} 609}
548 610
549RecBody MHviewItem::fetchBody( const RecMail &mail ) 611RecBody MHviewItem::fetchBody( const RecMail &mail )
550{ 612{
551 qDebug( "MH fetchBody" ); 613 qDebug( "MH fetchBody" );
552 return wrapper->fetchBody( mail ); 614 return wrapper->fetchBody( mail );
553} 615}
554 616
555QPopupMenu * MHviewItem::getContextMenu() 617QPopupMenu * MHviewItem::getContextMenu()
556{ 618{
557 QPopupMenu *m = new QPopupMenu(0); 619 QPopupMenu *m = new QPopupMenu(0);
558 if (m) { 620 if (m)
621 {
559 m->insertItem(QObject::tr("Refresh folder list",contextName),0); 622 m->insertItem(QObject::tr("Refresh folder list",contextName),0);
560 m->insertItem(QObject::tr("Create new folder",contextName),1); 623 m->insertItem(QObject::tr("Create new folder",contextName),1);
561 m->insertItem(QObject::tr("Delete all mails",contextName),2); 624 m->insertItem(QObject::tr("Delete all mails",contextName),2);
562 m->insertItem(QObject::tr("Move/Copie all mails",contextName),3); 625 m->insertItem(QObject::tr("Move/Copie all mails",contextName),3);
563 } 626 }
564 return m; 627 return m;
565} 628}
566 629
567void MHviewItem::createFolder() 630void MHviewItem::createFolder()
568{ 631{
569 Newmdirdlg ndirdlg(0,0,true); 632 Newmdirdlg ndirdlg(0,0,true);
570 ndirdlg.showMaximized(); 633 if ( QPEApplication::execDialog( &ndirdlg ) )
571 if (ndirdlg.exec()) { 634 {
572 QString ndir = ndirdlg.Newdir(); 635 QString ndir = ndirdlg.Newdir();
573 if (wrapper->createMbox(ndir)) { 636 if (wrapper->createMbox(ndir))
637 {
574 refresh(true); 638 refresh(true);
575 } 639 }
576 } 640 }
577} 641}
578 642
579void MHviewItem::downloadMails() 643void MHviewItem::downloadMails()
580{ 644{
581 AccountView*bl = accountView(); 645 AccountView*bl = accountView();
582 if (!bl) return; 646 if (!bl) return;
583 bl->downloadMails(folder,getWrapper()); 647 bl->downloadMails(folder,getWrapper());
584} 648}
585 649
586QStringList MHviewItem::subFolders() 650QStringList MHviewItem::subFolders()
587{ 651{
588 return currentFolders; 652 return currentFolders;
589} 653}
590 654
591void MHviewItem::contextMenuSelected(int which) 655void MHviewItem::contextMenuSelected(int which)
592{ 656{
593 switch (which) { 657 switch (which)
658 {
594 case 0: 659 case 0:
595 refresh(true); 660 refresh(true);
596 break; 661 break;
597 case 1: 662 case 1:
598 createFolder(); 663 createFolder();
599 break; 664 break;
600 case 2: 665 case 2:
601 deleteAllMail(getWrapper(),folder); 666 deleteAllMail(getWrapper(),folder);
602 break; 667 break;
603 case 3: 668 case 3:
604 downloadMails(); 669 downloadMails();
605 break; 670 break;
606 default: 671 default:
607 break; 672 break;
608 } 673 }
609} 674}
610 675
611MHfolderItem::~MHfolderItem() 676MHfolderItem::~MHfolderItem()
612{ 677{}
613}
614 678
615MHfolderItem::MHfolderItem( Folder *folderInit, MHviewItem *parent , QListViewItem*after ) 679MHfolderItem::MHfolderItem( Folder *folderInit, MHviewItem *parent , QListViewItem*after )
616 : AccountViewItem( parent,after ) 680 : AccountViewItem( parent,after )
617{ 681{
618 folder = folderInit; 682 folder = folderInit;
619 mbox = parent; 683 mbox = parent;
620 initName(); 684 initName();
621} 685}
622 686
623MHfolderItem::MHfolderItem( Folder *folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master) 687MHfolderItem::MHfolderItem( Folder *folderInit, MHfolderItem *parent, QListViewItem*after, MHviewItem*master)
624 : AccountViewItem( parent,after ) 688 : AccountViewItem( parent,after )
625{ 689{
626 folder = folderInit; 690 folder = folderInit;
627 mbox = master; 691 mbox = master;
628 initName(); 692 initName();
629} 693}
630 694
631void MHfolderItem::initName() 695void MHfolderItem::initName()
632{ 696{
633 QString bName = folder->getDisplayName(); 697 QString bName = folder->getDisplayName();
634 if (bName.startsWith("/")&&bName.length()>1) { 698 if (bName.startsWith("/")&&bName.length()>1)
699 {
635 bName.replace(0,1,""); 700 bName.replace(0,1,"");
636 } 701 }
637 int pos = bName.findRev("/"); 702 int pos = bName.findRev("/");
638 if (pos > 0) { 703 if (pos > 0)
704 {
639 bName.replace(0,pos+1,""); 705 bName.replace(0,pos+1,"");
640 } 706 }
641 if (bName.lower() == "outgoing") { 707 if (bName.lower() == "outgoing")
708 {
642 setPixmap( 0, PIXMAP_OUTBOXFOLDER ); 709 setPixmap( 0, PIXMAP_OUTBOXFOLDER );
643 } else if (bName.lower() == "inbox") { 710 }
711 else if (bName.lower() == "inbox")
712 {
644 setPixmap( 0, PIXMAP_INBOXFOLDER); 713 setPixmap( 0, PIXMAP_INBOXFOLDER);
645 } else { 714 }
715 else
716 {
646 setPixmap( 0, PIXMAP_MBOXFOLDER ); 717 setPixmap( 0, PIXMAP_MBOXFOLDER );
647 } 718 }
648 setText( 0, bName ); 719 setText( 0, bName );
649} 720}
650 721
651Folder*MHfolderItem::getFolder() 722Folder*MHfolderItem::getFolder()
652{ 723{
653 return folder; 724 return folder;
654} 725}
655 726
656void MHfolderItem::refresh(QList<RecMail>&target) 727void MHfolderItem::refresh(QList<RecMail>&target)
657{ 728{
658 if (folder->may_select()) 729 if (folder->may_select())
659 mbox->getWrapper()->listMessages( folder->getName(),target ); 730 mbox->getWrapper()->listMessages( folder->getName(),target );
660} 731}
661 732
662RecBody MHfolderItem::fetchBody(const RecMail&aMail) 733RecBody MHfolderItem::fetchBody(const RecMail&aMail)
663{ 734{
664 return mbox->getWrapper()->fetchBody(aMail); 735 return mbox->getWrapper()->fetchBody(aMail);
665} 736}
666 737
667void MHfolderItem::deleteFolder() 738void MHfolderItem::deleteFolder()
668{ 739{
669 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName), 740 int yesno = QMessageBox::warning(0,QObject::tr("Delete folder",contextName),
670 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()), 741 QObject::tr("<center>Realy delete folder <br><b>%1</b><br>and all if it content?</center>",contextName).arg(folder->getDisplayName()),
671 QObject::tr("Yes",contextName), 742 QObject::tr("Yes",contextName),
672 QObject::tr("No",contextName),QString::null,1,1); 743 QObject::tr("No",contextName),QString::null,1,1);
673 qDebug("Auswahl: %i",yesno); 744 qDebug("Auswahl: %i",yesno);
674 if (yesno == 0) { 745 if (yesno == 0)
675 if (mbox->getWrapper()->deleteMbox(folder)) { 746 {
747 if (mbox->getWrapper()->deleteMbox(folder))
748 {
676 QListView*v=listView(); 749 QListView*v=listView();
677 MHviewItem * box = mbox; 750 MHviewItem * box = mbox;
678 /* be carefull - after that this object is destroyd so don't use 751 /* be carefull - after that this object is destroyd so don't use
679 * any member of it after that call!!*/ 752 * any member of it after that call!!*/
680 mbox->refresh(true); 753 mbox->refresh(true);
681 if (v) { 754 if (v)
755 {
682 v->setSelected(box,true); 756 v->setSelected(box,true);
683 } 757 }
684 } 758 }
685 } 759 }
686} 760}
687 761
688QPopupMenu * MHfolderItem::getContextMenu() 762QPopupMenu * MHfolderItem::getContextMenu()
689{ 763{
690 QPopupMenu *m = new QPopupMenu(0); 764 QPopupMenu *m = new QPopupMenu(0);
691 if (m) { 765 if (m)
766 {
692 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2); 767 m->insertItem(QObject::tr("Move/Copie all mails",contextName),2);
693 m->insertItem(QObject::tr("Delete all mails",contextName),0); 768 m->insertItem(QObject::tr("Delete all mails",contextName),0);
694 m->insertItem(QObject::tr("Create new subfolder",contextName),3); 769 m->insertItem(QObject::tr("Create new subfolder",contextName),3);
695 m->insertItem(QObject::tr("Delete folder",contextName),1); 770 m->insertItem(QObject::tr("Delete folder",contextName),1);
696 } 771 }
697 return m; 772 return m;
698} 773}
699 774
700void MHfolderItem::downloadMails() 775void MHfolderItem::downloadMails()
701{ 776{
702 AccountView*bl = mbox->accountView(); 777 AccountView*bl = mbox->accountView();
703 if (!bl) return; 778 if (!bl) return;
704 bl->downloadMails(folder,mbox->getWrapper()); 779 bl->downloadMails(folder,mbox->getWrapper());
705} 780}
706 781
707void MHfolderItem::createFolder() 782void MHfolderItem::createFolder()
708{ 783{
709 Newmdirdlg ndirdlg(0,0,true); 784 Newmdirdlg ndirdlg(0,0,true);
710 ndirdlg.showMaximized(); 785 if ( QPEApplication::execDialog( &ndirdlg ) )
711 if (ndirdlg.exec()) { 786 {
712 QString ndir = ndirdlg.Newdir(); 787 QString ndir = ndirdlg.Newdir();
713 if (mbox->getWrapper()->createMbox(ndir,folder)) { 788 if (mbox->getWrapper()->createMbox(ndir,folder))
789 {
714 QListView*v=listView(); 790 QListView*v=listView();
715 MHviewItem * box = mbox; 791 MHviewItem * box = mbox;
716 /* be carefull - after that this object is destroyd so don't use 792 /* be carefull - after that this object is destroyd so don't use
717 * any member of it after that call!!*/ 793 * any member of it after that call!!*/
718 mbox->refresh(true); 794 mbox->refresh(true);
719 if (v) { 795 if (v)
796 {
720 v->setSelected(box,true); 797 v->setSelected(box,true);
721 } 798 }
722 } 799 }
723 } 800 }
724} 801}
725 802
726void MHfolderItem::contextMenuSelected(int which) 803void MHfolderItem::contextMenuSelected(int which)
727{ 804{
728 switch(which) { 805 switch(which)
806 {
729 case 0: 807 case 0:
730 deleteAllMail(mbox->getWrapper(),folder); 808 deleteAllMail(mbox->getWrapper(),folder);
731 break; 809 break;
732 case 1: 810 case 1:
733 deleteFolder(); 811 deleteFolder();
734 break; 812 break;
735 case 2: 813 case 2:
736 downloadMails(); 814 downloadMails();
737 break; 815 break;
738 case 3: 816 case 3:
739 createFolder(); 817 createFolder();
740 break; 818 break;
741 default: 819 default:
742 break; 820 break;
743 } 821 }
744} 822}
745 823
746/** 824/**
747 * Generic stuff 825 * Generic stuff
748 */ 826 */
749 827
750const QString AccountViewItem::contextName="AccountViewItem"; 828const QString AccountViewItem::contextName="AccountViewItem";
751 829
752AccountViewItem::AccountViewItem( AccountView *parent ) 830AccountViewItem::AccountViewItem( AccountView *parent )
753 : QListViewItem( parent ) 831 : QListViewItem( parent )
754{ 832{
755 init(); 833 init();
756 m_Backlink = parent; 834 m_Backlink = parent;
757} 835}
758 836
759AccountViewItem::AccountViewItem( QListViewItem *parent) 837AccountViewItem::AccountViewItem( QListViewItem *parent)
760 : QListViewItem( parent) 838 : QListViewItem( parent)
761{ 839{
762 init(); 840 init();
763} 841}
764 842
765AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after ) 843AccountViewItem::AccountViewItem( QListViewItem *parent , QListViewItem*after )
766 :QListViewItem( parent,after ) 844 :QListViewItem( parent,after )
767{ 845{
768 init(); 846 init();
769} 847}
770 848
771void AccountViewItem::init() 849void AccountViewItem::init()
772{ 850{
773 m_Backlink = 0; 851 m_Backlink = 0;
774 folder = 0; 852 folder = 0;
775} 853}
776 854
777AccountViewItem::~AccountViewItem() 855AccountViewItem::~AccountViewItem()
778{ 856{
@@ -781,62 +859,69 @@ AccountViewItem::~AccountViewItem()
781 859
782AccountView*AccountViewItem::accountView() 860AccountView*AccountViewItem::accountView()
783{ 861{
784 return m_Backlink; 862 return m_Backlink;
785} 863}
786 864
787void AccountViewItem::deleteAllMail(AbstractMail*wrapper,Folder*folder) 865void AccountViewItem::deleteAllMail(AbstractMail*wrapper,Folder*folder)
788{ 866{
789 if (!wrapper) return; 867 if (!wrapper) return;
790 QString fname=""; 868 QString fname="";
791 if (folder) fname = folder->getDisplayName(); 869 if (folder) fname = folder->getDisplayName();
792 int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName), 870 int yesno = QMessageBox::warning(0,QObject::tr("Delete all mails",contextName),
793 QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName). 871 QObject::tr("<center>Realy delete all mails in box <br>%1</center>",contextName).
794 arg(fname), 872 arg(fname),
795 QObject::tr("Yes",contextName), 873 QObject::tr("Yes",contextName),
796 QObject::tr("No",contextName),QString::null,1,1); 874 QObject::tr("No",contextName),QString::null,1,1);
797 qDebug("Auswahl: %i",yesno); 875 qDebug("Auswahl: %i",yesno);
798 if (yesno == 0) { 876 if (yesno == 0)
799 if (wrapper->deleteAllMail(folder)) { 877 {
878 if (wrapper->deleteAllMail(folder))
879 {
800 AccountView * view = (AccountView*)listView(); 880 AccountView * view = (AccountView*)listView();
801 if (view) view->refreshCurrent(); 881 if (view) view->refreshCurrent();
802 } 882 }
803 } 883 }
804} 884}
805 885
806void AccountViewItem::removeChilds() 886void AccountViewItem::removeChilds()
807{ 887{
808 QListViewItem *child = firstChild(); 888 QListViewItem *child = firstChild();
809 while ( child ) { 889 while ( child )
890 {
810 QListViewItem *tmp = child; 891 QListViewItem *tmp = child;
811 child = child->nextSibling(); 892 child = child->nextSibling();
812 delete tmp; 893 delete tmp;
813 } 894 }
814} 895}
815 896
816bool AccountViewItem::matchName(const QString&name)const 897bool AccountViewItem::matchName(const QString&name)const
817{ 898{
818 if (!folder) return false; 899 if (!folder) return false;
819 return folder->getDisplayName()==name; 900 return folder->getDisplayName()==name;
820} 901}
821 902
822 903
823AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start) 904AccountViewItem*AccountViewItem::findSubItem(const QString&path,AccountViewItem*start)
824{ 905{
825 AccountViewItem*pitem,*sitem; 906 AccountViewItem*pitem,*sitem;
826 if (!start) pitem = (AccountViewItem*)firstChild(); 907 if (!start) pitem = (AccountViewItem*)firstChild();
827 else pitem = (AccountViewItem*)start->firstChild(); 908 else pitem = (AccountViewItem*)start->firstChild();
828 while (pitem) { 909 while (pitem)
829 if (pitem->matchName(path)) { 910 {
911 if (pitem->matchName(path))
912 {
830 break; 913 break;
831 } 914 }
832 if (pitem->childCount()>0) { 915 if (pitem->childCount()>0)
916 {
833 sitem = findSubItem(path,pitem); 917 sitem = findSubItem(path,pitem);
834 if (sitem) { 918 if (sitem)
919 {
835 pitem = sitem; 920 pitem = sitem;
836 break; 921 break;
837 } 922 }
838 } 923 }
839 pitem=(AccountViewItem*)pitem->nextSibling(); 924 pitem=(AccountViewItem*)pitem->nextSibling();
840 } 925 }
841 return pitem; 926 return pitem;
842} 927}