SVN_SILENT

svn path=/trunk/KDE/kdepim/; revision=818123
wilder-work
Thomas McGuire 18 years ago
parent b18b2731f1
commit ddfe4c4b21
  1. 107
      actionscheduler.cpp

@ -60,9 +60,9 @@ bool ActionScheduler::sEnabled = false;
bool ActionScheduler::sEnabledChecked = false;
ActionScheduler::ActionScheduler(KMFilterMgr::FilterSet set,
QList<KMFilter*> filters,
KMHeaders *headers,
KMFolder *srcFolder)
QList<KMFilter*> 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<ActionScheduler*>::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<ActionScheduler*>::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 )

Loading…
Cancel
Save