diff -r ce1c7ad1f18b -r bcb43dc84c44 photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp --- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp Mon Mar 15 12:40:30 2010 +0200 +++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp Wed Mar 31 21:31:03 2010 +0300 @@ -345,6 +345,7 @@ void CGlxDataSourceMde::HandleSessionError(CMdESession& /*aSession*/, TInt aError ) { TRACER("CGlxDataSourceMde::HandleSessionError(CMdESession& /*aSession*/, TInt aError)") + delete iSession; iSession = NULL; GLX_DEBUG2("void CGlxDataSourceMde::HandleSessionError() Session Error = %d", aError); @@ -521,8 +522,18 @@ iSession->AddRelationObserverL(*this); iSession->AddRelationPresentObserverL(*this); - iSession->AddObjectObserverL(*this); - iSession->AddObjectPresentObserverL(*this); + //when setting observing conditions, + //add filters for all images, videos, Albums & Tags + CMdELogicCondition* addCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorOr ); + addCondition->AddObjectConditionL( *iImageDef ); + addCondition->AddObjectConditionL( *iVideoDef ); + addCondition->AddObjectConditionL( *iAlbumDef ); + addCondition->AddObjectConditionL( *iTagDef ); + + iSession->AddObjectObserverL(*this, addCondition ); + iSession->AddObjectPresentObserverL(*this ); + + CleanupStack::PopAndDestroy( addCondition ); } // ---------------------------------------------------------------------------