Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

statusmail.cpp

Go to the documentation of this file.
00001 #include "statusmail.h"
00002 
00003 #include <opie2/odebug.h>
00004 
00005 using namespace Opie::Core;
00006 
00007 StatusMail::StatusMail(QList<Account>&list)
00008 {
00009     currentImapStat.message_count=0;
00010     currentImapStat.message_unseen=0;
00011     currentImapStat.message_recent=0;
00012     lastPop3Stat = currentImapStat;
00013     currentPop3Stat = currentImapStat;
00014     connectionList.setAutoDelete(true);
00015     connectionList.clear();
00016     initAccounts(list);
00017 }
00018 
00019 StatusMail::~StatusMail()
00020 {
00021 }
00022 
00023 void StatusMail::initAccounts(QList<Account>&accounts)
00024 {
00025 
00026     Account *it;
00027     folderStat currentStat;
00028     AbstractMail * current = 0;
00029     currentPop3Stat.message_count=0;
00030     currentPop3Stat.message_recent=0;
00031     currentPop3Stat.message_unseen=0;
00032     for ( it = accounts.first(); it; it = accounts.next() ) {
00033         if ( it->getType()==MAILLIB::A_IMAP && !it->getOffline() ) {
00034             IMAPaccount*ima = static_cast<IMAPaccount *>(it);
00035             current = AbstractMail::getWrapper(ima);
00036             connectionList.append(current);
00037             current->statusFolder(currentStat);
00038             currentImapStat.message_count+=currentStat.message_unseen;
00039             currentImapStat.message_count+=currentStat.message_recent;
00040             currentImapStat.message_count+=currentStat.message_count;
00041         } else if ( it->getType() == MAILLIB::A_POP3 && !it->getOffline() ) {
00042             POP3account *pop3 = static_cast<POP3account *>(it);
00043             current = AbstractMail::getWrapper(pop3);
00044             connectionList.append(current);
00045             current->statusFolder(currentStat);
00046             currentPop3Stat.message_count+=currentStat.message_count;
00047         }
00048         current->logout();
00049     }
00050     odebug << "Pop3 init count: " << currentPop3Stat.message_count << "" << oendl;
00051     currentPop3Stat.message_recent = currentPop3Stat.message_unseen = 0;
00052     lastPop3Stat.message_unseen = currentPop3Stat.message_unseen;
00053     lastPop3Stat.message_recent = currentPop3Stat.message_recent;
00054     lastPop3Stat.message_count = currentPop3Stat.message_count;
00055 }
00056 
00057 void StatusMail::reset_status()
00058 {
00059     lastPop3Stat = currentPop3Stat;
00060 }
00061 
00062 void StatusMail::check_current_stat(folderStat&targetStat)
00063 {
00064     AbstractMail*it = 0;
00065     folderStat currentStat;
00066     currentPop3Stat.message_recent = 0;
00067     currentPop3Stat.message_count = 0;
00068     currentPop3Stat.message_unseen = 0;
00069     currentImapStat = currentPop3Stat;
00070     for ( it = connectionList.first(); it; it = connectionList.next() ) {
00071         it->statusFolder(currentStat);
00072         it->logout();
00073         if (it->getType() == MAILLIB::A_IMAP) {
00074             currentImapStat.message_unseen+=currentStat.message_unseen;
00075             currentImapStat.message_recent+=currentStat.message_recent;
00076             currentImapStat.message_count+=currentStat.message_count;
00077         } else if (it->getType() == MAILLIB::A_POP3) {
00078             currentPop3Stat.message_count+=currentStat.message_count;
00079             odebug << "Pop3 count: " << currentPop3Stat.message_count << "" << oendl;
00080         }
00081     }
00082     odebug << "Pop3 last: " << lastPop3Stat.message_count << "" << oendl;
00083 
00084 #if 0
00085     if (currentPop3Stat.message_count > lastPop3Stat.message_count) {
00086         currentPop3Stat.message_recent = currentPop3Stat.message_count - lastPop3Stat.message_count;
00087         currentPop3Stat.message_unseen = currentPop3Stat.message_recent;
00088     } else {
00089         lastPop3Stat.message_count = currentPop3Stat.message_count;
00090         currentPop3Stat.message_recent = currentPop3Stat.message_unseen = 0;
00091     }
00092 #else
00093     currentPop3Stat.message_recent = currentPop3Stat.message_unseen=currentPop3Stat.message_count;
00094 #endif
00095 
00096     targetStat = currentImapStat;
00097     targetStat.message_unseen+=currentPop3Stat.message_unseen;
00098     targetStat.message_recent+=currentPop3Stat.message_recent;
00099     targetStat.message_count+=currentPop3Stat.message_count;
00100 }

Generated on Sat Nov 5 16:17:39 2005 for OPIE by  doxygen 1.4.2