photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp
branchRCL_3
changeset 9 6b87b143d312
parent 1 9ba538e329bd
child 14 ce1c7ad1f18b
equal deleted inserted replaced
5:f7f0874bfe7d 9:6b87b143d312
   117 // ----------------------------------------------------------------------------
   117 // ----------------------------------------------------------------------------
   118 //  
   118 //  
   119 void CGlxDataSourceTaskMde::CancelRequest()
   119 void CGlxDataSourceTaskMde::CancelRequest()
   120     {
   120     {
   121     TRACER("CGlxDataSourceTaskMde::CancelRequest()");
   121     TRACER("CGlxDataSourceTaskMde::CancelRequest()");
   122     DestroyQueries();
       
   123     iCancelled = ETrue;
   122     iCancelled = ETrue;
       
   123     DestroyQueries();    
   124     }
   124     }
   125 
   125 
   126 // ----------------------------------------------------------------------------
   126 // ----------------------------------------------------------------------------
   127 //  CGlxDataSourceTaskMde::HandleQueryNewResults
   127 //  CGlxDataSourceTaskMde::HandleQueryNewResults
   128 // ----------------------------------------------------------------------------
   128 // ----------------------------------------------------------------------------
   163     if (err == KErrNone)
   163     if (err == KErrNone)
   164         {
   164         {
   165         TRAP(err, HandleQueryCompletedL(aQuery));
   165         TRAP(err, HandleQueryCompletedL(aQuery));
   166         }
   166         }
   167 
   167 
   168     if (err != KErrNone)
   168     if (err != KErrNone && !iCancelled)
   169         {
   169         {
   170         HandleRequestComplete(err);
   170         HandleRequestComplete(err);
   171         }
   171         }
   172     }
   172     }
   173 
   173 
   441             aQuery.AppendOrderRuleL(orderRule);
   441             aQuery.AppendOrderRuleL(orderRule);
   442             break;
   442             break;
   443             }
   443             }
   444          case EGlxFilterSortOrderItemCount:
   444          case EGlxFilterSortOrderItemCount:
   445             {            
   445             {            
   446             //Order rule is not necessary for item count query
   446             //Order rule is needed for tags popularity            
       
   447             TMdEOrderRule orderRule(EOrderRuleTypeUsageCount, aFilterProperties.iSortDirection ==
       
   448             EGlxFilterSortDirectionAscending);
       
   449             aQuery.AppendOrderRuleL(orderRule);            
   447             break;
   450             break;
   448             }
   451             }
   449         case EGlxFilterSortOrderCaptureDate:
   452         case EGlxFilterSortOrderCaptureDate:
   450             {
   453             {
   451             CMdEPropertyDef& creationDateProperty = aObjectDef.GetPropertyDefL(
   454             CMdEPropertyDef& creationDateProperty = aObjectDef.GetPropertyDefL(
   670 // 
   673 // 
   671 void CGlxDataSourceTaskMde::HandleQueryCompletedL(CMdEQuery& aQuery)
   674 void CGlxDataSourceTaskMde::HandleQueryCompletedL(CMdEQuery& aQuery)
   672     {
   675     {
   673     TRACER("CGlxDataSourceTaskMde::HandleQueryCompletedL()");
   676     TRACER("CGlxDataSourceTaskMde::HandleQueryCompletedL()");
   674     DoHandleQueryCompletedL(aQuery);
   677     DoHandleQueryCompletedL(aQuery);
   675     RemoveQuery();
   678     
       
   679     // Both the function calls should be executed if any
       
   680     // request is not cancelled before completion.
       
   681     // All the pending Queries are already destroyed in CancelRequest.
       
   682     // Hence we do not have to call RemoveQuery here. That will lead to
       
   683     // User 130 crash. 
       
   684     // DoNextQuery tries to get iQueries.Count(). Since iQueries is destroyed
       
   685     // in CancelRequest 
       
   686     if (iCancelled)
       
   687     	{ 
       
   688     	GLX_LOG_INFO("***Query already Removed. Hence Return***");
       
   689     	return;  	
       
   690     	}  
       
   691     RemoveQuery();  
   676     DoNextQueryL();
   692     DoNextQueryL();
   677     }
   693     }
   678 
   694 
   679 // ----------------------------------------------------------------------------
   695 // ----------------------------------------------------------------------------
   680 //  CGlxDataSourceTaskMde::DestroyQueries
   696 //  CGlxDataSourceTaskMde::DestroyQueries