diff -r 4e91876724a2 -r 9ba538e329bd photosgallery/viewframework/medialists/src/glxattributecontext.cpp --- a/photosgallery/viewframework/medialists/src/glxattributecontext.cpp Thu Dec 17 08:45:44 2009 +0200 +++ b/photosgallery/viewframework/medialists/src/glxattributecontext.cpp Thu Jan 07 12:46:23 2010 +0200 @@ -23,6 +23,7 @@ #include "glxtracer.h" #include "glxlog.h" #include "glxlistutils.h" +#include "glxthumbnailattributeinfo.h" // Default granularity of items to request for const TUint KGlxAttributeContextDefaultGranularity = 200; @@ -120,7 +121,7 @@ // TInt CGlxAttributeContext::AttributeRequestL(const MGlxMediaList* aList, RArray& aItemIndices, RArray& aAttributes, - CMPXAttributeSpecs*& /*aDetailedSpecs*/) const + CMPXAttributeSpecs*& aDetailedSpecs) const { TRACER("CGlxAttributeContext::AttributeRequestL"); @@ -170,6 +171,34 @@ error = KErrNone; } } + + + // If the attribute request is for Thumbnail, Check if there is a match found. + // And set the size and thumbnail quality + TIdentityRelation matchContent(&TMPXAttribute::MatchContentId); + TMPXAttribute tnAttr(KGlxMediaIdThumbnail, 0); + + if (iAttributes.Find(tnAttr, matchContent) != KErrNotFound) + { + // Allocate CMPXAttributeSpecs + CMPXAttributeSpecs* attributeSpecs = CMPXAttributeSpecs::NewL(); + CleanupStack::PushL(attributeSpecs); + + attributeSpecs->SetTObjectValueL( + TMPXAttribute( KGlxMediaIdThumbnail, + KGlxAttribSpecThumbnailSize ), + TSize(iDefaultSpecSize.iWidth,iDefaultSpecSize.iHeight) ); + + attributeSpecs->SetTObjectValueL( + TMPXAttribute( KGlxMediaIdThumbnail, + KGlxAttribSpecThumbnailQualityOverSpeed ), ETrue ); + + aDetailedSpecs = attributeSpecs; + + // Pop from stack + CleanupStack::Pop(attributeSpecs); + + } // If an error was found, return KErrGeneral if (error != KErrNone) @@ -372,3 +401,16 @@ iFromFocusIterator.SetRangeOffsets(aRearOffset, aFrontOffset); } + +// ----------------------------------------------------------------------------- +// Sets the default fetch specification +// ----------------------------------------------------------------------------- +// +EXPORT_C void CGlxAttributeContext::SetDefaultSpec(TInt aWidth, TInt aHeight) + + { + TRACER( " CGlxAttributeContext::SetDefaultSpec"); + + iDefaultSpecSize = TSize(aWidth, aHeight); + } +