--- a/photosgallery/common/src/glxfilterfactory.cpp Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/common/src/glxfilterfactory.cpp Wed Mar 31 21:31:03 2010 +0300
@@ -154,6 +154,21 @@
return CreateCombinedFilterL(filterProperties);
}
+// ---------------------------------------------------------------------------
+// Creates a preview TN filter object with one thumbnail
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CMPXFilter* TGlxFilterFactory::CreatePreviewTNFilterL()
+ {
+ TGlxFilterProperties filterProperties;
+ // Exclude empty containers
+ filterProperties.iMinCount = 1;
+ // If sorting on date, override sort direction to descending
+ filterProperties.iSortDirection = EGlxFilterSortDirectionOverrideToDescendingIfDate;
+ // Request only one item
+ filterProperties.iMaxCount = 1;
+ return CreateCombinedFilterL(filterProperties);
+ }
// ---------------------------------------------------------------------------
// Creates a preview filter object for container items (album, tags)
@@ -280,7 +295,11 @@
if( !aOverrideOriginal || ( EGlxFilterSortDirectionNotUsed == aFilterProperties.iSortDirection ) )
{
sortDirection = aOriginalFilter->ValueTObjectL<TGlxFilterSortDirection>(KGlxFilterGeneralSortDirection);
- TBool descendIfDate = ( EGlxFilterSortDirectionOverrideToDescendingIfDate == sortDirection ) && ( ( EGlxFilterSortOrderCaptureDate == sortFilter ) || ( EGlxFilterSortOrderModifiedDate == sortFilter ) );
+ TBool descendIfDate =
+ (EGlxFilterSortDirectionOverrideToDescendingIfDate == sortDirection) &&
+ ( (EGlxFilterSortOrderCaptureDate == sortFilter) ||
+ (EGlxFilterSortOrderModifiedDate == sortFilter)
+ );
if( EGlxFilterSortDirectionReverse == sortDirection )
{
if( EGlxFilterSortDirectionDescending == aFilterProperties.iSortDirection )
@@ -356,6 +375,18 @@
filter->SetTObjectValueL<TInt>(KGlxFilterGeneralMinCount, minCount);
}
+ TInt maxCount = aFilterProperties.iMaxCount;
+ if( aOriginalFilter->IsSupported(KGlxFilterGeneralMaxCount) )
+ {
+ if( !aOverrideOriginal || ( 0 == aFilterProperties.iMaxCount ) )
+ {
+ maxCount = aOriginalFilter->ValueTObjectL<TInt>(KGlxFilterGeneralMaxCount);
+ }
+ }
+ if( !(maxCount == 0) )
+ {
+ filter->SetTObjectValueL<TInt>(KGlxFilterGeneralMaxCount, maxCount);
+ }
TGlxMediaId itemId = aFilterProperties.iContainsItem;
if( aOriginalFilter->IsSupported(KGlxFilterGeneralItemId) )
@@ -515,6 +546,10 @@
{
filterProperties.iMinCount = aFilter->ValueTObjectL<TInt>(KGlxFilterGeneralMinCount);
}
+ if (aFilter->IsSupported(KGlxFilterGeneralMaxCount))
+ {
+ filterProperties.iMaxCount = aFilter->ValueTObjectL<TInt>(KGlxFilterGeneralMaxCount);
+ }
if (aFilter->IsSupported(KGlxFilterGeneralItemId))
{
filterProperties.iContainsItem = (TGlxMediaId)(TUint32)aFilter->ValueTObjectL<TMPXItemId>(KGlxFilterGeneralItemId);