diff -r 199e6e1e0b54 -r a91aa46552be commonutilities/common/src/glxfilterfactory.cpp --- a/commonutilities/common/src/glxfilterfactory.cpp Fri Sep 17 08:29:24 2010 +0300 +++ b/commonutilities/common/src/glxfilterfactory.cpp Mon Oct 04 00:17:18 2010 +0300 @@ -223,7 +223,20 @@ filterProperties.iExcludeAnimation = ETrue;; return CreateCombinedFilterL(filterProperties, aOriginalFilter); } - + +// --------------------------------------------------------------------------- +// Creates a URI filter object +// --------------------------------------------------------------------------- +// +EXPORT_C CMPXFilter* TGlxFilterFactory::CreateMimeTypeFilterL(const TDesC& aMimeType) + { + TGlxFilterProperties filterProperties; + filterProperties.iItemType = EGlxFilterImage; + filterProperties.iNoDRM = ETrue; + filterProperties.iMimeType = &aMimeType; + return CreateCombinedFilterL(filterProperties); + } + // --------------------------------------------------------------------------- // Creates a combined filter object. // --------------------------------------------------------------------------- @@ -470,7 +483,19 @@ { filter->SetTextValueL(KGlxFilterGeneralUri, *uri); } - + const TDesC* mimeType = aFilterProperties.iMimeType; + if( aOriginalFilter->IsSupported(KGlxFilterGeneralMimeType) ) + { + if( !aOverrideOriginal || ( !aFilterProperties.iMimeType ) ) + { + mimeType = &aOriginalFilter->ValueText(KGlxFilterGeneralMimeType); + } + } + if( mimeType ) + { + filter->SetTextValueL(KGlxFilterGeneralMimeType, *mimeType); + } + CleanupStack::Pop(filter); return filter; } @@ -548,6 +573,10 @@ { filterProperties.iUri = &aFilter->ValueText(KGlxFilterGeneralUri); } + if( aFilter->IsSupported(KGlxFilterGeneralMimeType) ) + { + filterProperties.iMimeType = &aFilter->ValueText(KGlxFilterGeneralMimeType); + } return filterProperties; }