author | alwin <alwin> | 2003-12-14 03:41:49 (UTC) |
---|---|---|
committer | alwin <alwin> | 2003-12-14 03:41:49 (UTC) |
commit | 84ac61a9b46d463c9e3112f55cc1e69957d1348a (patch) (side-by-side diff) | |
tree | aa2a03fc364b529a9863d44b9d51f030b22f4820 /noncore/net/mail/imapwrapper.cpp | |
parent | 12ba6ab9606538628afc7f7015e115a0251d0389 (diff) | |
download | opie-84ac61a9b46d463c9e3112f55cc1e69957d1348a.zip opie-84ac61a9b46d463c9e3112f55cc1e69957d1348a.tar.gz opie-84ac61a9b46d463c9e3112f55cc1e69957d1348a.tar.bz2 |
-memleak fixed
-check for non-selectable mailboxes
-potential crasher fixed
-selection handling better (app will not send a net-command on each mouse
click)
Diffstat (limited to 'noncore/net/mail/imapwrapper.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/mail/imapwrapper.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/noncore/net/mail/imapwrapper.cpp b/noncore/net/mail/imapwrapper.cpp index 9ee0dff..912a412 100644 --- a/noncore/net/mail/imapwrapper.cpp +++ b/noncore/net/mail/imapwrapper.cpp @@ -151,3 +151,3 @@ QList<Folder>* IMAPwrapper::listFolders() QList<Folder> * folders = new QList<Folder>(); - folders->setAutoDelete( true ); + folders->setAutoDelete( false ); login(); @@ -190,2 +190,4 @@ QList<Folder>* IMAPwrapper::listFolders() qDebug(path); + bool selectable = true; + mailimap_mbx_list_flags*bflags; err = mailimap_list( m_imap, (char*)path, (char*)mask, &result ); @@ -193,3 +195,3 @@ QList<Folder>* IMAPwrapper::listFolders() current = result->first; - for ( int i = result->count; i > 0; i-- ) { + for ( current=clist_begin(result);current!=NULL;current=clist_next(current)) { list = (mailimap_mailbox_list *) current->data; @@ -198,7 +200,9 @@ QList<Folder>* IMAPwrapper::listFolders() temp = list->mb_name; - current = current->next; if (temp.lower()=="inbox") continue; - folders->append(new IMAPFolder(temp)); - + if ( (bflags = list->mb_flag) ) { + selectable = !(bflags->mbf_type==MAILIMAP_MBX_LIST_FLAGS_SFLAG&& + bflags->mbf_sflag==MAILIMAP_MBX_LIST_SFLAG_NOSELECT); + } + folders->append(new IMAPFolder(temp,selectable)); } |