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, |