photosgallery/common/src/glxfilterfactory.cpp
branchRCL_3
changeset 13 bcb43dc84c44
parent 0 4e91876724a2
child 24 ea65f74e6de4
--- 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);