diff -r 7403edfcf0fb -r dea39715fc05 imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Mon Mar 15 12:41:55 2010 +0200 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Wed Mar 31 22:04:49 2010 +0300 @@ -95,10 +95,10 @@ UpdatePSValues(ETrue); if(iForegroundGenerationObserver) - { - delete iForegroundGenerationObserver; - iForegroundGenerationObserver = NULL; - } + { + delete iForegroundGenerationObserver; + iForegroundGenerationObserver = NULL; + } RProperty::Define(KTAGDPSNotification, KMPXHarvesting, RProperty::EInt); @@ -503,7 +503,7 @@ iPlaceholderQueue.Remove( itemIndex ); } - if(iAddQueue.Find( aIDArray[i]) == KErrNotFound && i2ndRoundGenerateQueue.Find( aIDArray[i])) + if(iAddQueue.Find( aIDArray[i]) == KErrNotFound && i2ndRoundGenerateQueue.Find( aIDArray[i]) == KErrNotFound ) { TN_DEBUG1( "CThumbAGProcessor::AddToQueueL() - append to add queue"); iAddQueue.Append( aIDArray[i]); @@ -988,10 +988,10 @@ if(ret != KErrNone || !serveIdle ) { - //start inactivity timer and retry on after callback - TN_DEBUG1( "void CThumbAGProcessor::RunL() server not idle"); - StartTimeout(); - return; + //start inactivity timer and retry on after callback + TN_DEBUG1( "void CThumbAGProcessor::RunL() server not idle"); + StartTimeout(); + return; } TN_DEBUG1( "void CThumbAGProcessor::RunL() device and server idle, process"); } @@ -1497,11 +1497,26 @@ { SetForceRun( EFalse ); } - - continue; + } + + itemIndex = iQueryQueue.Find( aIDArray[i] ); + + if(itemIndex >= 0) + { + iQueryQueue.Remove(itemIndex); + TN_DEBUG1( "CThumbAGProcessor::RemoveFromQueues() - iQueryQueue" ); } - - /*if( aRemoveFromDelete ) + + itemIndex = iPlaceholderQueue.Find( aIDArray[i] ); + + if(itemIndex >= 0) + { + iPlaceholderQueue.Remove(itemIndex); + TN_DEBUG1( "CThumbAGProcessor::RemoveFromQueues() - iPlaceholderQueue" ); + } + + /* + if( aRemoveFromDelete ) { itemIndex = iRemoveQueue.Find( aIDArray[i] ); @@ -1755,6 +1770,21 @@ daemonProcessing = ETrue; } + //disable 2nd round generarion when there is items in 1st round queues + //or 2nd queue is empty + if( !i2ndRoundGenerateQueue.Count() || itemsLeft ) + { + i2ndRound = EFalse; + } + + //adjust items left to containing also items not yet processed but removed from queue under processing + if((iLastQueue == &iModifyQueue || iLastQueue == &iAddQueue) && !i2ndRound) + { + itemsLeft +=iQueryQueue.Count(); + } + + TN_DEBUG2( "CThumbAGProcessor::UpdatePSValues() KItemsleft == %d", itemsLeft); + if(aDefine) { TN_DEBUG1( "CThumbAGProcessor::UpdatePSValues() define");