-rw-r--r-- | kmicromail/libmailwrapper/imapwrapper.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/kmicromail/libmailwrapper/imapwrapper.cpp b/kmicromail/libmailwrapper/imapwrapper.cpp index b0dd1b8..a6688ed 100644 --- a/kmicromail/libmailwrapper/imapwrapper.cpp +++ b/kmicromail/libmailwrapper/imapwrapper.cpp @@ -61,7 +61,7 @@ void IMAPwrapper::progress( QString m ) static QString mProgrMess; if ( m != QString::null ) { mProgrMess = m; - mCurrent = 0; + mCurrent = 1; return; } QString mess; @@ -69,6 +69,7 @@ void IMAPwrapper::progress( QString m ) if ( mMax ) mess = mProgrMess +tr(" message %1 of %2").arg( mCurrent++).arg(mMax); else mess = mProgrMess +tr(" message %1").arg( mCurrent++); Global::statusMessage(mess); + qDebug("Progress %s %s", mess.latin1(), m.latin1()); qApp->processEvents(); } bool IMAPwrapper::start_tls(bool force_tls) @@ -233,6 +234,9 @@ void IMAPwrapper::logout() void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSmartPointer<RecMail> > &target , int maxSizeInKb) { + + int tryAgain = 1; + while ( tryAgain >= 0 ) { int err = MAILIMAP_NO_ERROR; clist *result = 0; clistcell *current; @@ -256,11 +260,15 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma return; } else { } - + progress( tr("Fetch ")); + mMax = last; + //qDebug("last %d ", last); Global::statusMessage(tr("Fetching header list")); qApp->processEvents(); /* the range has to start at 1!!! not with 0!!!! */ - set = mailimap_set_new_interval( 1, last ); + //LR the access to web.de imap server is no working with value 1 + qDebug("interval %d - %d ", tryAgain, last-1+tryAgain ); + set = mailimap_set_new_interval( tryAgain, last ); fetchType = mailimap_fetch_type_new_fetch_att_list_empty(); mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_envelope()); mailimap_fetch_type_new_fetch_att_list_add(fetchType,mailimap_fetch_att_new_flags()); @@ -274,10 +282,12 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma QString date,subject,from; if ( err == MAILIMAP_NO_ERROR ) { + tryAgain = -1; mailimap_msg_att * msg_att; int i = 0; for (current = clist_begin(result); current != 0; current=clist_next(current)) { ++i; + //qDebug("iii %d ",i); msg_att = (mailimap_msg_att*)current->data; RecMail*m = parse_list_result(msg_att); if (m) { @@ -291,10 +301,17 @@ void IMAPwrapper::listMessages(const QString&mailbox,QValueList<Opie::Core::OSma } Global::statusMessage(tr("Mailbox has %1 mails").arg(target.count())); } else { + --tryAgain; + --tryAgain; + if ( tryAgain < 0 ) Global::statusMessage(tr("Error fetching headers: %1").arg(m_imap->imap_response)); + else + qDebug("try again... "); } + if (result) mailimap_fetch_list_free(result); } +} QValueList<Opie::Core::OSmartPointer<Folder> >* IMAPwrapper::listFolders() { @@ -952,7 +969,7 @@ void IMAPwrapper::deleteMailList(const QValueList<RecMailP>&target) mMax = count; - //progress( tr("Delete")); + progress( tr("Delete")); QProgressBar wid ( count ); wid.setCaption( tr("Deleting ...")); |