summaryrefslogtreecommitdiff
authoralwin <alwin>2004-01-05 23:33:29 (UTC)
committer alwin <alwin>2004-01-05 23:33:29 (UTC)
commitfa6a2e24a70be69724387355970814c0fb63701d (patch) (side-by-side diff)
tree6c11151aef233a96157ba575e3b12668691a266a
parentc8d0dd53a75b7142a5ce924e4afbea77b86e56b0 (diff)
downloadopie-fa6a2e24a70be69724387355970814c0fb63701d.zip
opie-fa6a2e24a70be69724387355970814c0fb63701d.tar.gz
opie-fa6a2e24a70be69724387355970814c0fb63701d.tar.bz2
small bugfix
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/mail/libmailwrapper/statusmail.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/noncore/net/mail/libmailwrapper/statusmail.cpp b/noncore/net/mail/libmailwrapper/statusmail.cpp
index 9f4c47c..98f6204 100644
--- a/noncore/net/mail/libmailwrapper/statusmail.cpp
+++ b/noncore/net/mail/libmailwrapper/statusmail.cpp
@@ -1,81 +1,89 @@
#include "statusmail.h"
#include <qlist.h>
StatusMail::StatusMail(QList<Account>&list)
{
currentImapStat.message_count=0;
currentImapStat.message_unseen=0;
currentImapStat.message_recent=0;
lastPop3Stat = currentImapStat;
currentPop3Stat = currentImapStat;
connectionList.setAutoDelete(true);
connectionList.clear();
initAccounts(list);
}
StatusMail::~StatusMail()
{
}
void StatusMail::initAccounts(QList<Account>&accounts)
{
Account *it;
folderStat currentStat;
AbstractMail * current = 0;
+ currentPop3Stat.message_count=0;
+ currentPop3Stat.message_recent=0;
+ currentPop3Stat.message_unseen=0;
for ( it = accounts.first(); it; it = accounts.next() ) {
if ( it->getType().compare( "IMAP" ) == 0 ) {
IMAPaccount*ima = static_cast<IMAPaccount *>(it);
current = AbstractMail::getWrapper(ima);
connectionList.append(current);
current->statusFolder(currentStat);
currentImapStat.message_count+=currentStat.message_unseen;
currentImapStat.message_count+=currentStat.message_recent;
currentImapStat.message_count+=currentStat.message_count;
} else if ( it->getType().compare( "POP3" ) == 0 ) {
POP3account *pop3 = static_cast<POP3account *>(it);
current = AbstractMail::getWrapper(pop3);
connectionList.append(current);
current->statusFolder(currentStat);
currentPop3Stat.message_count+=currentStat.message_unseen;
currentPop3Stat.message_count+=currentStat.message_recent;
currentPop3Stat.message_count+=currentStat.message_count;
}
current->logout();
}
lastPop3Stat = currentPop3Stat;
}
void StatusMail::reset_status()
{
lastPop3Stat = currentPop3Stat;
}
void StatusMail::check_current_stat(folderStat&targetStat)
{
AbstractMail*it = 0;
folderStat currentStat;
currentPop3Stat.message_recent = 0;
currentPop3Stat.message_count = 0;
currentPop3Stat.message_unseen = 0;
currentImapStat = currentPop3Stat;
for ( it = connectionList.first(); it; it = connectionList.next() ) {
it->statusFolder(currentStat);
it->logout();
if (it->getType().lower()=="imap") {
currentImapStat.message_unseen+=currentStat.message_unseen;
currentImapStat.message_recent+=currentStat.message_recent;
currentImapStat.message_count+=currentStat.message_count;
} else if (it->getType().lower()=="pop3") {
currentPop3Stat.message_count+=currentStat.message_count;
+ qDebug("Pop3 count: %i",currentPop3Stat.message_count);
}
}
+ qDebug("Pop3 last: %i",lastPop3Stat.message_count);
if (currentPop3Stat.message_count > lastPop3Stat.message_count) {
currentPop3Stat.message_recent = currentPop3Stat.message_count - lastPop3Stat.message_count;
currentPop3Stat.message_unseen = currentPop3Stat.message_recent;
+ } else {
+ lastPop3Stat.message_count = currentPop3Stat.message_count;
+ currentPop3Stat.message_recent = currentPop3Stat.message_unseen = 0;
}
targetStat = currentImapStat;
targetStat.message_unseen+=currentPop3Stat.message_unseen;
targetStat.message_recent+=currentPop3Stat.message_recent;
targetStat.message_count+=currentPop3Stat.message_count;
}