photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp
branchRCL_3
changeset 35 420f6808bf21
parent 25 191387a8b767
equal deleted inserted replaced
32:78ad99c24f08 35:420f6808bf21
    24  */
    24  */
    25 
    25 
    26 #include "glxdatasourcetaskmds.h"
    26 #include "glxdatasourcetaskmds.h"
    27 
    27 
    28 #include <glxcollectionplugincamera.hrh>
    28 #include <glxcollectionplugincamera.hrh>
    29 #include <glxcollectionplugindownloads.hrh>
       
    30 #include <glxcollectionpluginmonths.hrh>
       
    31 #include <glxcollectionpluginalbums.hrh>
    29 #include <glxcollectionpluginalbums.hrh>
    32 #include <glxcollectionpluginall.hrh>
    30 #include <glxcollectionpluginall.hrh>
    33 #include <glxcollectionplugintags.hrh>
    31 #include <glxcollectionplugintags.hrh>
    34 #include <glxerrors.h>
    32 #include <glxerrors.h>
    35 #include <glxfilterfactory.h>
    33 #include <glxfilterfactory.h>
   178     TRACER("CGlxDataSourceTaskMde::DataSource()");
   176     TRACER("CGlxDataSourceTaskMde::DataSource()");
   179     return static_cast<CGlxDataSourceMde*>(iDataSource);
   177     return static_cast<CGlxDataSourceMde*>(iDataSource);
   180     }
   178     }
   181 
   179 
   182 // ----------------------------------------------------------------------------
   180 // ----------------------------------------------------------------------------
   183 //  CGlxDataSourceTaskMde::AddMonthFilterL
       
   184 // ----------------------------------------------------------------------------
       
   185 //     
       
   186 void CGlxDataSourceTaskMde::AddMonthFilterL(const TGlxMediaId& aContainerId,
       
   187         TGlxFilterProperties& aFilterProperties)
       
   188     {
       
   189     TRACER("CGlxDataSourceTaskMde::AddMonthFilterL(const TGlxMediaId& aContainerId, TGlxFilterProperties& aFilterProperties)");
       
   190     CMdEObject* month = DataSource()->Session().GetObjectL(aContainerId.Value());
       
   191     if( !month )
       
   192         {
       
   193         User::Leave(KErrNotFound);
       
   194         }
       
   195     CleanupStack::PushL(month);
       
   196     
       
   197     AddMonthFilterL(month, aFilterProperties);
       
   198         
       
   199     CleanupStack::PopAndDestroy(month);
       
   200     }
       
   201 
       
   202 
       
   203 // ----------------------------------------------------------------------------
       
   204 //  CGlxDataSourceTaskMde::AddMonthFilterL
       
   205 // ----------------------------------------------------------------------------
       
   206 //   
       
   207 void CGlxDataSourceTaskMde::AddMonthFilterL(CMdEObject* aMonth, TGlxFilterProperties& 
       
   208         aFilterProperties)
       
   209     {
       
   210     TRACER("CGlxDataSourceTaskMde::AddMonthFilterL(CMdEObject* aMonth, TGlxFilterProperties& aFilterProperties)");
       
   211     CMdEPropertyDef& creationDateDef = DataSource()->ObjectDef().GetPropertyDefL(
       
   212             KPropertyDefNameCreationDate);
       
   213     if (creationDateDef.PropertyType() != EPropertyTime)
       
   214         {
       
   215         User::Leave(KErrCorrupt);
       
   216         }
       
   217 
       
   218     CMdEPropertyDef& lmDateDef = DataSource()->ObjectDef().GetPropertyDefL(
       
   219             KPropertyDefNameLastModifiedDate);
       
   220     if (lmDateDef.PropertyType() != EPropertyTime)
       
   221         {
       
   222         User::Leave(KErrCorrupt);
       
   223         }
       
   224         
       
   225     CMdEProperty* startDate;
       
   226     TInt startDateIndex = aMonth->Property(creationDateDef, startDate);
       
   227     if( KErrNotFound == startDateIndex) 
       
   228         {
       
   229         User::Leave(KErrCorrupt);
       
   230         }
       
   231     aFilterProperties.iStartDate = static_cast<CMdETimeProperty*>(startDate)->Value();
       
   232      
       
   233     CMdEProperty* endDate;
       
   234     TInt endDateIndex = aMonth->Property(lmDateDef, endDate);
       
   235     if( KErrNotFound == endDateIndex) 
       
   236         {
       
   237         User::Leave(KErrCorrupt);
       
   238         }
       
   239     aFilterProperties.iEndDate = static_cast<CMdETimeProperty*>(endDate)->Value();
       
   240     }
       
   241 
       
   242 // ----------------------------------------------------------------------------
       
   243 //  CGlxDataSourceTaskMde::SetQueryConditionsL
   181 //  CGlxDataSourceTaskMde::SetQueryConditionsL
   244 // ----------------------------------------------------------------------------
   182 // ----------------------------------------------------------------------------
   245 //    
   183 //    
   246 void CGlxDataSourceTaskMde::SetQueryConditionsL(CMdEQuery& aQuery,
   184 void CGlxDataSourceTaskMde::SetQueryConditionsL(CMdEQuery& aQuery,
   247         const TGlxFilterProperties& aFilterProperties, const TGlxMediaId aContainerId,
   185         const TGlxFilterProperties& aFilterProperties, const TGlxMediaId aContainerId,
   352 			aLogicCondition.AddPropertyConditionL(originProperty, TMdEUintEqual(
   290 			aLogicCondition.AddPropertyConditionL(originProperty, TMdEUintEqual(
   353 			        MdeConstants::Object::ECamera));            
   291 			        MdeConstants::Object::ECamera));            
   354 			}
   292 			}
   355 		else if(EGlxFilterOriginAll == aFilterProperties.iOrigin )            
   293 		else if(EGlxFilterOriginAll == aFilterProperties.iOrigin )            
   356 			{
   294 			{
   357 			// The Months Collection Populates All the Items, filter 
   295 			// Filter for all Images and Videos
   358 		    // it for Images and Videos only
       
   359             CMdELogicCondition& logicCondition = 
   296             CMdELogicCondition& logicCondition = 
   360                 aLogicCondition.AddLogicConditionL(ELogicConditionOperatorOr);
   297                 aLogicCondition.AddLogicConditionL(ELogicConditionOperatorOr);
   361             logicCondition.AddObjectConditionL( DataSource()->ImageDef() ); 
   298             logicCondition.AddObjectConditionL( DataSource()->ImageDef() ); 
   362             logicCondition.AddObjectConditionL( DataSource()->VideoDef() );          
   299             logicCondition.AddObjectConditionL( DataSource()->VideoDef() );          
   363 			}        
   300 			}        
   602     {
   539     {
   603     TRACER("CGlxDataSourceTaskMde::QueueAlbumObjectQueryL()");
   540     TRACER("CGlxDataSourceTaskMde::QueueAlbumObjectQueryL()");
   604     QueueObjectQueryL(DataSource()->AlbumDef(), aObjectIds, EImageVideoQuery);
   541     QueueObjectQueryL(DataSource()->AlbumDef(), aObjectIds, EImageVideoQuery);
   605     }
   542     }
   606 
   543 
   607 
       
   608 void CGlxDataSourceTaskMde::QueueMonthObjectQueryL(const RArray<TGlxMediaId>& aObjectIds)
       
   609     {
       
   610     TRACER("CGlxDataSourceTaskMde::QueueMonthObjectQueryL()");
       
   611     QueueObjectQueryL(DataSource()->MonthDef(), aObjectIds, EImageVideoQuery);
       
   612     }
       
   613 
       
   614 // ----------------------------------------------------------------------------
   544 // ----------------------------------------------------------------------------
   615 // CGlxDataSourceTask::QueueObjectQueryL
   545 // CGlxDataSourceTask::QueueObjectQueryL
   616 // ----------------------------------------------------------------------------
   546 // ----------------------------------------------------------------------------
   617 //
   547 //
   618 void CGlxDataSourceTaskMde::QueueObjectQueryL(CMdEObjectDef& aObjectDef, 
   548 void CGlxDataSourceTaskMde::QueueObjectQueryL(CMdEObjectDef& aObjectDef,