diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/common/src/glxfilterfactory.cpp --- 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(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(KGlxFilterGeneralMinCount, minCount); } + TInt maxCount = aFilterProperties.iMaxCount; + if( aOriginalFilter->IsSupported(KGlxFilterGeneralMaxCount) ) + { + if( !aOverrideOriginal || ( 0 == aFilterProperties.iMaxCount ) ) + { + maxCount = aOriginalFilter->ValueTObjectL(KGlxFilterGeneralMaxCount); + } + } + if( !(maxCount == 0) ) + { + filter->SetTObjectValueL(KGlxFilterGeneralMaxCount, maxCount); + } TGlxMediaId itemId = aFilterProperties.iContainsItem; if( aOriginalFilter->IsSupported(KGlxFilterGeneralItemId) ) @@ -515,6 +546,10 @@ { filterProperties.iMinCount = aFilter->ValueTObjectL(KGlxFilterGeneralMinCount); } + if (aFilter->IsSupported(KGlxFilterGeneralMaxCount)) + { + filterProperties.iMaxCount = aFilter->ValueTObjectL(KGlxFilterGeneralMaxCount); + } if (aFilter->IsSupported(KGlxFilterGeneralItemId)) { filterProperties.iContainsItem = (TGlxMediaId)(TUint32)aFilter->ValueTObjectL(KGlxFilterGeneralItemId);