imagehandlingutilities/thumbnailmanager/thumbagdaemon/src/thumbagprocessor.cpp
changeset 31 d429f823a6b7
parent 30 b67379558a75
child 33 221be23823c5
equal deleted inserted replaced
30:b67379558a75 31:d429f823a6b7
  1286         iUnknown = ETrue;
  1286         iUnknown = ETrue;
  1287         iQueryActive = ETrue;
  1287         iQueryActive = ETrue;
  1288 
  1288 
  1289         QueryL( EGenerationItemActionResolveType );
  1289         QueryL( EGenerationItemActionResolveType );
  1290        }
  1290        }
       
  1291     else if ( iDeleteItemCount > 0 )
       
  1292        {
       
  1293        TN_DEBUG1( "void CThumbAGProcessor::RunL() delete thumbnails");
       
  1294        // delete thumbs by URI
       
  1295        __ASSERT_DEBUG((iTMSession), User::Panic(_L("CThumbAGProcessor::RunL() !iTMSession "), KErrBadHandle));
       
  1296        if(iTMSession)
       
  1297            {
       
  1298            TInt itemIndex(KErrNotFound);
       
  1299                                
       
  1300            for(TInt i=0;i<iGenerationQueue.Count() || itemIndex == KErrNotFound;i++)
       
  1301                {
       
  1302                if(iGenerationQueue[i].iItemAction == EGenerationItemActionDelete)
       
  1303                    {
       
  1304                    itemIndex = i;
       
  1305                    }
       
  1306                }
       
  1307        
       
  1308            if(itemIndex >= 0)
       
  1309                {
       
  1310                if(!iGenerationQueue[itemIndex].iUri)
       
  1311                    {
       
  1312                    //URI is invalid
       
  1313                    TN_DEBUG1( "void CThumbAGProcessor::RunL() unable to delete URI inbalid");
       
  1314                    iGenerationQueue.Remove( itemIndex );
       
  1315                    ActivateAO();
       
  1316                    return;
       
  1317                    }
       
  1318 
       
  1319                TN_DEBUG2( "void CThumbAGProcessor::RunL() delete %S",  iGenerationQueue[itemIndex].iUri);
       
  1320                CThumbnailObjectSource* source = NULL;                
       
  1321                TRAPD(err,  source = CThumbnailObjectSource::NewL( *iGenerationQueue[itemIndex].iUri, KNullDesC));
       
  1322                   
       
  1323                if(err == KErrNone)
       
  1324                    {
       
  1325                    iTMSession->DeleteThumbnails( *source );
       
  1326                    }
       
  1327                delete source;
       
  1328                
       
  1329                delete iGenerationQueue[itemIndex].iUri;
       
  1330                iGenerationQueue[itemIndex].iUri = NULL;
       
  1331                iGenerationQueue.Remove( itemIndex );
       
  1332                
       
  1333                iActiveCount++;
       
  1334                }
       
  1335            }
       
  1336        }
  1291     // no items in query queue, start new
  1337     // no items in query queue, start new
  1292     // select queue to process, priority by type
  1338     // select queue to process, priority by type
  1293     else if ( iModifyItemCount > 0 )
  1339     else if ( iModifyItemCount > 0 )
  1294         {
  1340         {
  1295         TN_DEBUG1( "void CThumbAGProcessor::RunL() update thumbnails");
  1341         TN_DEBUG1( "void CThumbAGProcessor::RunL() update thumbnails");
  1310         iUnknown = EFalse;
  1356         iUnknown = EFalse;
  1311         // query for object info
  1357         // query for object info
  1312         iQueryActive = ETrue;
  1358         iQueryActive = ETrue;
  1313         
  1359         
  1314         QueryL( EGenerationItemActionAdd );     
  1360         QueryL( EGenerationItemActionAdd );     
  1315         }
       
  1316     else if ( iDeleteItemCount > 0 )
       
  1317         {
       
  1318         TN_DEBUG1( "void CThumbAGProcessor::RunL() delete thumbnails");
       
  1319         i2ndRound = EFalse;
       
  1320         iUnknown = EFalse;
       
  1321         // delete thumbs by URI
       
  1322         __ASSERT_DEBUG((iTMSession), User::Panic(_L("CThumbAGProcessor::RunL() !iTMSession "), KErrBadHandle));
       
  1323         if(iTMSession)
       
  1324             {
       
  1325             TInt itemIndex(KErrNotFound);
       
  1326                                 
       
  1327             for(TInt i=0;i<iGenerationQueue.Count() || itemIndex == KErrNotFound;i++)
       
  1328                 {
       
  1329                 if(iGenerationQueue[i].iItemAction == EGenerationItemActionDelete)
       
  1330                     {
       
  1331                     itemIndex = i;
       
  1332                     }
       
  1333                 }
       
  1334         
       
  1335             if(itemIndex >= 0)
       
  1336                 {
       
  1337                 if(!iGenerationQueue[itemIndex].iUri)
       
  1338                     {
       
  1339                     //URI is invalid
       
  1340                     TN_DEBUG1( "void CThumbAGProcessor::RunL() unable to delete URI inbalid");
       
  1341                     iGenerationQueue.Remove( itemIndex );
       
  1342                     ActivateAO();
       
  1343                     return;
       
  1344                     }
       
  1345 
       
  1346                 TN_DEBUG2( "void CThumbAGProcessor::RunL() delete %S",  iGenerationQueue[itemIndex].iUri);
       
  1347                 CThumbnailObjectSource* source = NULL;                
       
  1348                 TRAPD(err,  source = CThumbnailObjectSource::NewL( *iGenerationQueue[itemIndex].iUri, KNullDesC));
       
  1349                    
       
  1350                 if(err == KErrNone)
       
  1351                     {
       
  1352                     iTMSession->DeleteThumbnails( *source );
       
  1353                     }
       
  1354                 delete source;
       
  1355                 
       
  1356                 delete iGenerationQueue[itemIndex].iUri;
       
  1357                 iGenerationQueue[itemIndex].iUri = NULL;
       
  1358                 iGenerationQueue.Remove( itemIndex );
       
  1359                 
       
  1360                 iActiveCount++;
       
  1361                 }
       
  1362             }
       
  1363         }
  1361         }
  1364     else if( i2ndAddItemCount > 0)
  1362     else if( i2ndAddItemCount > 0)
  1365         {
  1363         {
  1366         TN_DEBUG1( "void CThumbAGProcessor::RunL() update 2nd round thumbnails");
  1364         TN_DEBUG1( "void CThumbAGProcessor::RunL() update 2nd round thumbnails");
  1367             
  1365             
  1685         TN_DEBUG1( "CThumbAGProcessor::ActivateAO() - FORMATTING - DAEMON ON PAUSE");
  1683         TN_DEBUG1( "CThumbAGProcessor::ActivateAO() - FORMATTING - DAEMON ON PAUSE");
  1686         return;
  1684         return;
  1687         }
  1685         }
  1688     
  1686     
  1689     //check if forced run needs to continue
  1687     //check if forced run needs to continue
  1690     if ( iModifyItemCount || iUnknownItemCount > 0 )
  1688     if ( iModifyItemCount > 0 || iUnknownItemCount > 0 || iDeleteItemCount > 0 )
  1691         {
  1689         {
       
  1690         TN_DEBUG1( "CThumbAGProcessor::ActivateAO() -  iModifyItemCount > 0 || iUnknownItemCount > 0 || iDeleteItemCount > 0");
  1692         SetForceRun( ETrue );
  1691         SetForceRun( ETrue );
  1693         }
  1692         }
  1694     else
  1693     else
  1695         {
  1694         {
  1696         iModify = EFalse;
  1695         iModify = EFalse;