diff -r ffa62e555b02 -r b790c5b3d11f imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp --- a/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Mon May 03 12:48:51 2010 +0300 +++ b/imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp Fri May 14 16:10:12 2010 +0300 @@ -295,7 +295,7 @@ delete iQueryAllItems; iQueryAllItems = NULL; } - else if(&aQuery == iQuery ) + else if(&aQuery == iQuery ) { TN_DEBUG1( "CThumbAGProcessor::HandleQueryCompleted - Query completed"); @@ -318,7 +318,7 @@ TInt itemIndex(KErrNotFound); - //search delta items + //search delta items which were queried, but not found for(TInt queryItem =0; queryItem < iQueryQueue.Count();queryItem++) { TBool found(EFalse); @@ -369,7 +369,8 @@ } else { - DeleteAndCancelQuery(); + //Delete and cancel query, do not return items back to original queue + DeleteAndCancelQuery( EFalse ); TN_DEBUG1( "CThumbAGProcessor::HandleQueryCompleted() Query FAILED!"); } } @@ -664,6 +665,7 @@ } } + // 10.1 specific if( imageObjectDef.Id() != aObject->Def().Id() ) { TN_DEBUG1( "CThumbAGProcessor::CreateThumbnailsL() 1st round not image"); @@ -1030,7 +1032,8 @@ //force is coming, but executing non-forced query complete-> cancel old else { - DeleteAndCancelQuery(); + //cancel query and move items back to original processing queue + DeleteAndCancelQuery( ETrue ); ActivateAO(); return; } @@ -1048,9 +1051,11 @@ //waiting for MDS query to complete else if( iQueryActive ) { + //state mismatch if(iForceRun && !iModify) { - DeleteAndCancelQuery(); + //cancel query and move items back to original processing queue + DeleteAndCancelQuery(ETrue); ActivateAO(); } else @@ -1126,7 +1131,7 @@ // CThumbAGProcessor::DeleteAndCancelQuery() // --------------------------------------------------------------------------- // -void CThumbAGProcessor::DeleteAndCancelQuery() +void CThumbAGProcessor::DeleteAndCancelQuery(TBool aRestoreItems) { TN_DEBUG1( "CThumbAGProcessor::DeleteAndCancelQuery() in" ); @@ -1145,7 +1150,7 @@ //move remainig IDs in query queue back to original queue while(iQueryQueue.Count()) { - if(iLastQueue) + if(aRestoreItems && iLastQueue) { if(iLastQueue->FindInOrder(iQueryQueue[0], Compare) == KErrNotFound) { @@ -1794,7 +1799,7 @@ //cancel 2nd round generarion when there is items in 1st round queues if(itemsLeft && i2ndRound) { - DeleteAndCancelQuery(); + DeleteAndCancelQuery(ETrue); i2ndRound = EFalse; }