diff --git a/actionscheduler.cpp b/actionscheduler.cpp index 5da5fa945..321ed3023 100644 --- a/actionscheduler.cpp +++ b/actionscheduler.cpp @@ -60,9 +60,9 @@ bool ActionScheduler::sEnabled = false; bool ActionScheduler::sEnabledChecked = false; ActionScheduler::ActionScheduler(KMFilterMgr::FilterSet set, - QList filters, - KMHeaders *headers, - KMFolder *srcFolder) + QList filters, + KMHeaders *headers, + KMFolder *srcFolder) : mSet( set ), mHeaders( headers ) { ++count; @@ -178,7 +178,7 @@ void ActionScheduler::setSourceFolder( KMFolder *srcFolder ) } if ( mSrcFolder ) { connect( mSrcFolder, SIGNAL(msgAdded(KMFolder*, quint32)), - this, SLOT(msgAdded(KMFolder*, quint32)) ); + this, SLOT(msgAdded(KMFolder*, quint32)) ); connect( mSrcFolder, SIGNAL(closed()), this, SLOT(folderClosedOrExpunged()) ); connect( mSrcFolder, SIGNAL(expunged(KMFolder*)), @@ -263,16 +263,17 @@ void ActionScheduler::execFilters( KMMsgBase *msgBase ) void ActionScheduler::execFilters(quint32 serNum) { - if (mResult != ResultOk) { - if ((mResult != ResultCriticalError) && - !mExecuting && !mExecutingLock && !mFetchExecuting) { - mResult = ResultOk; // Recoverable error - if (!mFetchSerNums.isEmpty()) { - mFetchSerNums.push_back( mFetchSerNums.first() ); - mFetchSerNums.pop_front(); - } - } else - return; // An error has already occurred don't even try to process this msg + if ( mResult != ResultOk ) { + if ( ( mResult != ResultCriticalError ) && + !mExecuting && !mExecutingLock && !mFetchExecuting ) { + mResult = ResultOk; // Recoverable error + if ( !mFetchSerNums.isEmpty() ) { + mFetchSerNums.push_back( mFetchSerNums.first() ); + mFetchSerNums.pop_front(); + } + } + else + return; // An error has already occurred don't even try to process this msg } if (MessageProperty::filtering( serNum )) { // Not good someone else is already filtering this msg @@ -362,8 +363,8 @@ void ActionScheduler::finish() // then abandon filtering of queued messages. if (!mDeleteSrcFolder && !mDestFolder.isNull() ) { while ( mSrcFolder->count() > 0 ) { - KMMessage *msg = mSrcFolder->getMsg( 0 ); - mDestFolder->moveMsg( msg ); + KMMessage *msg = mSrcFolder->getMsg( 0 ); + mDestFolder->moveMsg( msg ); } // Wait a little while before closing temp folders, just in case @@ -434,7 +435,7 @@ void ActionScheduler::fetchMessage() fetchTimeOutTimer->start( 60 * 1000 ); FolderJob *job = msg->parent()->createJob( msg ); connect( job, SIGNAL(messageRetrieved( KMMessage* )), - SLOT(messageFetched( KMMessage* )) ); + SLOT(messageFetched( KMMessage* )) ); lastJob = job; job->start(); } else { @@ -797,7 +798,7 @@ void ActionScheduler::fetchTimeOut() assert( lastJob ); // sometimes imap jobs seem to just stall so give up and move on disconnect( lastJob, SIGNAL(messageRetrieved( KMMessage* )), - this, SLOT(messageFetched( KMMessage* )) ); + this, SLOT(messageFetched( KMMessage* )) ); lastJob->kill(); lastJob = 0; fetchMessageTimer->start( 0 ); @@ -805,47 +806,47 @@ void ActionScheduler::fetchTimeOut() QString ActionScheduler::debug() { - QString res; - QList::iterator it; - int i = 1; - for ( it = schedulerList->begin(); it != schedulerList->end(); ++it ) { - res.append( QString( "ActionScheduler #%1.\n" ).arg( i ) ); - if ((*it)->mAccount && kmkernel->acctMgr()->find( (*it)->mAccountId )) { - res.append( QString( "Account %1, Name %2.\n" ) - .arg( (*it)->mAccountId ) - .arg( kmkernel->acctMgr()->find( (*it)->mAccountId )->name() ) ); - } - res.append( QString( "mExecuting %1, " ).arg( (*it)->mExecuting ? "true" : "false" ) ); - res.append( QString( "mExecutingLock %1, " ).arg( (*it)->mExecutingLock ? "true" : "false" ) ); - res.append( QString( "mFetchExecuting %1.\n" ).arg( (*it)->mFetchExecuting ? "true" : "false" ) ); - res.append( QString( "mOriginalSerNum %1.\n" ).arg( (*it)->mOriginalSerNum ) ); - res.append( QString( "mSerNums count %1, " ).arg( (*it)->mSerNums.count() ) ); - res.append( QString( "mFetchSerNums count %1.\n" ).arg( (*it)->mFetchSerNums.count() ) ); - res.append( QString( "mResult " ) ); - if ((*it)->mResult == ResultOk) - res.append( QString( "ResultOk.\n" ) ); - else if ((*it)->mResult == ResultError) - res.append( QString( "ResultError.\n" ) ); - else if ((*it)->mResult == ResultCriticalError) - res.append( QString( "ResultCriticalError.\n" ) ); - else - res.append( QString( "Unknown.\n" ) ); - - ++i; + QString res; + QList::iterator it; + int i = 1; + for ( it = schedulerList->begin(); it != schedulerList->end(); ++it ) { + res.append( QString( "ActionScheduler #%1.\n" ).arg( i ) ); + if ((*it)->mAccount && kmkernel->acctMgr()->find( (*it)->mAccountId )) { + res.append( QString( "Account %1, Name %2.\n" ) + .arg( (*it)->mAccountId ) + .arg( kmkernel->acctMgr()->find( (*it)->mAccountId )->name() ) ); } - return res; + res.append( QString( "mExecuting %1, " ).arg( (*it)->mExecuting ? "true" : "false" ) ); + res.append( QString( "mExecutingLock %1, " ).arg( (*it)->mExecutingLock ? "true" : "false" ) ); + res.append( QString( "mFetchExecuting %1.\n" ).arg( (*it)->mFetchExecuting ? "true" : "false" ) ); + res.append( QString( "mOriginalSerNum %1.\n" ).arg( (*it)->mOriginalSerNum ) ); + res.append( QString( "mSerNums count %1, " ).arg( (*it)->mSerNums.count() ) ); + res.append( QString( "mFetchSerNums count %1.\n" ).arg( (*it)->mFetchSerNums.count() ) ); + res.append( QString( "mResult " ) ); + if ((*it)->mResult == ResultOk) + res.append( QString( "ResultOk.\n" ) ); + else if ((*it)->mResult == ResultError) + res.append( QString( "ResultError.\n" ) ); + else if ((*it)->mResult == ResultCriticalError) + res.append( QString( "ResultCriticalError.\n" ) ); + else + res.append( QString( "Unknown.\n" ) ); + + ++i; + } + return res; } bool ActionScheduler::isEnabled() { - if (sEnabledChecked) - return sEnabled; - - sEnabledChecked = true; - KConfig* config = KMKernel::config(); - KConfigGroup group(config, "General"); - sEnabled = group.readEntry("action-scheduler", false ); + if (sEnabledChecked) return sEnabled; + + sEnabledChecked = true; + KConfig* config = KMKernel::config(); + KConfigGroup group(config, "General"); + sEnabled = group.readEntry("action-scheduler", false ); + return sEnabled; } bool ActionScheduler::ignoreChanges( bool ignore )