Revision: 201015 RCL_3 PDK_3.0.i
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Tue, 27 Apr 2010 16:37:53 +0300
branchRCL_3
changeset 25 191387a8b767
parent 22 2dac0fdba72b
child 30 a60acebbbd9d
Revision: 201015 Kit: 201017
photosgallery/collectionframework/datasource/manager/src/glxcollectionpluginbase.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp
photosgallery/collectionframework/thumbnailcreator/inc/glxtnfileinfo.h
photosgallery/common/bwins/glxcommonu.def
photosgallery/common/eabi/glxcommonu.def
photosgallery/common/inc/glxresourceutilities.h
photosgallery/common/src/glxcommandparser.cpp
photosgallery/common/src/glxresourceutilities.cpp
photosgallery/controllers/collectionmanager/src/glxcollectionselectionpopup.cpp
photosgallery/controllers/fetcher/data/glxfetcherdialog.rss
photosgallery/controllers/fetcher/inc/glxfetchercontainer.h
photosgallery/controllers/fetcher/inc/glxfetcherdialog.h
photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp
photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp
photosgallery/controllers/imageviewer/src/glximageviewermanager.cpp
photosgallery/gallery/loc/photos.loc
photosgallery/gallery/src/glxappui.cpp
photosgallery/imgvwr/group/glxivwr.mmp
photosgallery/imgvwr/src/glxivwrappui.cpp
photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp
photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp
photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp
photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp
photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp
photosgallery/slideshow/engine/effectsrc/shwzoomandpaneffect.cpp
photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp
photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp
photosgallery/slideshow/settingsdialog/src/shwslideshowsettingsdialog.cpp
photosgallery/slideshow/utils/shwcallback.h
photosgallery/slideshow/utils/shwcleanupwrapper.h
photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp
photosgallery/slideshow/view/inc/shwslideshowview.h
photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp
photosgallery/slideshow/view/src/shwslideshowpausehandler.cpp
photosgallery/slideshow/view/src/shwslideshowpausehandler.h
photosgallery/slideshow/view/src/shwslideshowview.cpp
photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp
photosgallery/viewframework/commandhandlers/commandhandlerbase/bwins/glxcommandhandlerbaseu.def
photosgallery/viewframework/commandhandlers/commandhandlerbase/eabi/glxcommandhandlerbaseu.def
photosgallery/viewframework/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h
photosgallery/viewframework/commandhandlers/commandhandlerbase/inc/glxmedialistcommandhandler.h
photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/bwins/glxcommoncommandhandlersu.def
photosgallery/viewframework/commandhandlers/commoncommandhandlers/eabi/glxcommoncommandhandlersu.def
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwassign.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwbase.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwedit.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwprintpreview.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshareonovi.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowmap.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercopyandmove.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdelete.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdownload.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerfilterimagesorvideos.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerhelp.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerhideui.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerremovefrom.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrename.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersave.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerslideshow.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwassign.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwbase.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshareonovi.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshowmap.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshowonmaphardkey.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlercopyandmove.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerfilterimagesorvideos.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerhelp.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerhideui.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersave.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxmediaselectionpopup.cpp
photosgallery/viewframework/commandhandlers/inc/glxcommandhandlers.hrh
photosgallery/viewframework/dataprovider/inc/glxdetailsboundcommand.hrh
photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp
photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp
photosgallery/viewframework/medialists/bwins/glxmedialistsu.def
photosgallery/viewframework/medialists/eabi/glxmedialistsu.def
photosgallery/viewframework/medialists/inc/glxmedia.h
photosgallery/viewframework/medialists/src/glxattributecontext.cpp
photosgallery/viewframework/medialists/src/glxcache.cpp
photosgallery/viewframework/medialists/src/glxcachemanager.cpp
photosgallery/viewframework/medialists/src/glxmedia.cpp
photosgallery/viewframework/medialists/src/glxnavigablelist.cpp
photosgallery/viewframework/medialists/src/glxustringconverter.cpp
photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxcacheu.def
photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxgarbagecollectoru.def
photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxmediau.def
photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxattributecontextu.def
photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxitemlistu.def
photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxnavigablelistu.def
photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxstaticitemlistu.def
photosgallery/viewframework/medialists/tsrc/BWINS/ut_glxerrormanageru.def
photosgallery/viewframework/medialists/tsrc/eabi/t_cglxcacheu.def
photosgallery/viewframework/medialists/tsrc/eabi/t_cglxgarbagecollectoru.def
photosgallery/viewframework/medialists/tsrc/eabi/t_cglxmediau.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxattributecontextu.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxitemlistu.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxnavigablelistu.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxstaticitemlistu.def
photosgallery/viewframework/medialists/tsrc/eabi/ut_glxerrormanageru.def
photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp
photosgallery/viewframework/plugins/fullscreenviewplugin/data/glxfullscreenviewdata.rss
photosgallery/viewframework/plugins/fullscreenviewplugin/src/glxalbumfullscreenviewplugin.cpp
photosgallery/viewframework/plugins/fullscreenviewplugin/src/glxtagfullscreenviewplugin.cpp
photosgallery/viewframework/plugins/fullscreenviewpluginbase/group/glxfullscreenviewpluginbase.mmp
photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp
photosgallery/viewframework/plugins/gridviewplugin/data/glxgridviewdata.rss
photosgallery/viewframework/plugins/gridviewplugin/src/glxalbumgridviewplugin.cpp
photosgallery/viewframework/plugins/gridviewplugin/src/glxtaggridviewplugin.cpp
photosgallery/viewframework/plugins/gridviewpluginbase/group/glxgridviewpluginbase.mmp
photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp
photosgallery/viewframework/plugins/listviewplugin/data/glxlistviewplugin.rss
photosgallery/viewframework/plugins/listviewplugin/group/glxlistviewplugin.mmp
photosgallery/viewframework/plugins/listviewplugin/src/glxalbumlistviewplugin.cpp
photosgallery/viewframework/plugins/listviewplugin/src/glxmonthlistviewplugin.cpp
photosgallery/viewframework/plugins/listviewpluginbase/src/glxlistviewpluginbase.cpp
photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss
photosgallery/viewframework/plugins/tagsbrowserviewplugin/src/glxtagsbrowserviewplugin.cpp
photosgallery/viewframework/tvout/bwins/glxtvoutu.def
photosgallery/viewframework/tvout/eabi/glxtvoutu.def
photosgallery/viewframework/tvout/group/glxtvout.mmp
photosgallery/viewframework/tvout/inc/glxhdmicontroller.h
photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h
photosgallery/viewframework/tvout/inc/glxtvconnectionmonitor.h
photosgallery/viewframework/tvout/src/glxactivedecoder.cpp
photosgallery/viewframework/tvout/src/glxhdmicontainer.cpp
photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp
photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp
photosgallery/viewframework/tvout/src/glxtv.cpp
photosgallery/viewframework/tvout/src/glxtvconnectionmonitor.cpp
photosgallery/viewframework/uiutilities/data/glxuiutilities.rss
photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h
photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp
photosgallery/viewframework/views/cloudview/src/glxtagscontextmenucontrol.cpp
photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp
photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h
photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp
photosgallery/viewframework/views/gridview/bwins/glxgridviewu.def
photosgallery/viewframework/views/gridview/eabi/glxgridviewu.def
photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h
photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h
photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp
photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp
photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp
photosgallery/viewframework/views/metadatadialog/bwins/glxmetadatadialogu.def
photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss
photosgallery/viewframework/views/metadatadialog/eabi/glxmetadatadialogu.def
photosgallery/viewframework/views/metadatadialog/inc/glxmetadatacommandhandler.h
photosgallery/viewframework/views/metadatadialog/inc/glxmetadatacontainer.h
photosgallery/viewframework/views/metadatadialog/inc/glxresourceutilities.h
photosgallery/viewframework/views/metadatadialog/src/glxmetadatacommandhandler.cpp
photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp
photosgallery/viewframework/views/metadatadialog/src/glxmetadatadialog.cpp
photosgallery/viewframework/views/metadatadialog/src/glxresourceutilities.cpp
photosgallery/viewframework/views/viewbase/group/glxviewbase.mmp
photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h
photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp
photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp
photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp
photosgallery/viewframework/views/zoomview/src/glxzoomeventhandler.cpp
--- a/photosgallery/collectionframework/datasource/manager/src/glxcollectionpluginbase.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/collectionframework/datasource/manager/src/glxcollectionpluginbase.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -218,7 +218,7 @@
 	    
 	    if(aSpecs->IsSupported(KMPXMediaGeneralSize))
 	    	{
-	    	tnFileInfo->iFileSize = aSpecs->ValueTObjectL<TInt>(KMPXMediaGeneralSize);
+	    	tnFileInfo->iFileSize = aSpecs->ValueTObjectL<TUint>(KMPXMediaGeneralSize);
 	    	countInfo++;
 	    	}
 	    if(aSpecs->IsSupported(KGlxMediaGeneralLastModifiedDate))
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -533,7 +533,7 @@
 	iSession->AddObjectObserverL(*this, addCondition );
 	iSession->AddObjectPresentObserverL(*this );
 		
-	CleanupStack::PopAndDestroy( addCondition ); 
+	CleanupStack::Pop( addCondition ); //This addCondition should only be popped. The destroy part will be done by MDS.
     }
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -253,7 +253,11 @@
     CMdEObjectDef* objectDef = &aObjectDef;
 
     SetQueryFilterConditionsL(rootCondition, *objectDef, aFilterProperties);
-    SetSortOrderL(aQuery, aObjectDef, aFilterProperties);
+
+    if (aQuery.ResultMode() != EQueryResultModeCount)
+        {
+        SetSortOrderL(aQuery, aObjectDef, aFilterProperties);
+        }
     
     if( KGlxCollectionRootId != aContainerId.Value() )
         {
@@ -544,8 +548,8 @@
             *queryBaseObject, this);
     CleanupStack::PushL(query);
     
+    query->SetResultMode(aResultMode);
     SetQueryConditionsL(*query, iFilterProperties, aContainerId, aObjectDef);   
-    query->SetResultMode(aResultMode);
     
     CleanupStack::Pop(query);
     
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -583,7 +583,7 @@
             CMdEPropertyDef& sizeProperty = aContainer->Def().GetPropertyDefL(
                     KPropertyDefNameSize);
             TInt sizeIndex = aContainer->Property(sizeProperty, size);
-            TInt sizeValue;
+            TUint sizeValue;
             if(sizeIndex == KErrNotFound)
                 {
                 sizeValue = 0;
@@ -1438,8 +1438,8 @@
     CMdEQuery* query = DataSource()->Session().NewObjectQueryL(*DataSource()->NamespaceDef(), 
             *queryBaseObject, this);
     CleanupStack::PushL(query);
+    query->SetResultMode(aResultMode);
     SetQueryConditionsL(*query, aFilterProperties, aContainerId, aObjectDef);
-    query->SetResultMode(aResultMode);
   
     iQueryAttributes.AppendL(TGlxQueryAttribute(aAttribute, aEntry, aFilterProperties));
 
--- a/photosgallery/collectionframework/thumbnailcreator/inc/glxtnfileinfo.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/collectionframework/thumbnailcreator/inc/glxtnfileinfo.h	Tue Apr 27 16:37:53 2010 +0300
@@ -71,7 +71,7 @@
 
 public:
     /** Size of the media file */
-    TInt iFileSize;
+    TUint iFileSize;
     /** Last modified time of the media file */
     TTime iFileTime;
     /** True if the thumbnail is temporary and should not be stored */
--- a/photosgallery/common/bwins/glxcommonu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/common/bwins/glxcommonu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -13,39 +13,40 @@
 	?StartL@CGlxIadUpdate@@QAEXXZ @ 12 NONAME ; void CGlxIadUpdate::StartL(void)
 	?AddToContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVCMPXCollectionPath@@0@Z @ 13 NONAME ; class CMPXMedia * TGlxCommandFactory::AddToContainerCommandLC(class CMPXCollectionPath const &, class CMPXCollectionPath const &)
 	?CreateCaptureDateSortFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 14 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateCaptureDateSortFilterL(enum TGlxFilterSortDirection)
-	?MoveCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@ABVCMPXCollectionPath@@@Z @ 15 NONAME ; class CMPXMedia * TGlxCommandFactory::MoveCommandLC(class TDesC16 const &, class CMPXCollectionPath const &)
-	?CreateSlideShowFilterFromExistingFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAV2@PAVCMPXCollectionPath@@H@Z @ 16 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateSlideShowFilterFromExistingFilterL(class CMPXMedia *, class CMPXCollectionPath *, int)
-	?CreateLastCaptureDateFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 17 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateLastCaptureDateFilterL(void)
-	?CreateExcludeAnimationFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 18 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateExcludeAnimationFilterL(enum TGlxFilterSortDirection)
-	?SupportedOrientations@CGlxSettingsModel@@QAE?AW4TSupportedOrientations@1@XZ @ 19 NONAME ; enum CGlxSettingsModel::TSupportedOrientations CGlxSettingsModel::SupportedOrientations(void)
-	?ShowGeoCoordinatesInDisplay@CGlxSettingsModel@@QAEHXZ @ 20 NONAME ; int CGlxSettingsModel::ShowGeoCoordinatesInDisplay(void)
-	?IsTextEntryPortrait@CGlxSettingsModel@@QAEHXZ @ 21 NONAME ; int CGlxSettingsModel::IsTextEntryPortrait(void)
-	?CreateItemCountSortFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 22 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateItemCountSortFilterL(enum TGlxFilterSortDirection)
-	?RenameCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@ABVCMPXCollectionPath@@@Z @ 23 NONAME ; class CMPXMedia * TGlxCommandFactory::RenameCommandLC(class TDesC16 const &, class CMPXCollectionPath const &)
-	?ExtractAttributes@TGlxFilterFactory@@SA?AVTGlxFilterProperties@@PAVCMPXMedia@@@Z @ 24 NONAME ; class TGlxFilterProperties TGlxFilterFactory::ExtractAttributes(class CMPXMedia *)
-	?ParseL@TGlxCommandParser@@SAXAAVMGlxCommandParserCallback@@ABVCMPXMedia@@@Z @ 25 NONAME ; void TGlxCommandParser::ParseL(class MGlxCommandParserCallback &, class CMPXMedia const &)
-	?AddToContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@ABVCMPXCollectionPath@@@Z @ 26 NONAME ; class CMPXMedia * TGlxCommandFactory::AddToContainerCommandLC(class TDesC16 const &, class CMPXCollectionPath const &)
-	?CreateExcludeEmptyContainersFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAV2@@Z @ 27 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateExcludeEmptyContainersFilterL(class CMPXMedia *)
-	?InstanceLC@CGlxSingletonStore@@CAPAV1@XZ @ 28 NONAME ; class CGlxSingletonStore * CGlxSingletonStore::InstanceLC(void)
-	?Close@CGlxSettingsModel@@QAEXXZ @ 29 NONAME ; void CGlxSettingsModel::Close(void)
-	?CreateCombinedFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@ABVTGlxFilterProperties@@PAV2@H@Z @ 30 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateCombinedFilterL(class TGlxFilterProperties const &, class CMPXMedia *, int)
-	?RemoveFromContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@VTGlxMediaId@@ABVCMPXCollectionPath@@@Z @ 31 NONAME ; class CMPXMedia * TGlxCommandFactory::RemoveFromContainerCommandLC(class TGlxMediaId, class CMPXCollectionPath const &)
-	?NewL@CGlxIadUpdate@@SAPAV1@XZ @ 32 NONAME ; class CGlxIadUpdate * CGlxIadUpdate::NewL(void)
-	?IdsL@TGlxCommandParser@@SAHAAVTUid@@AAKABVCMPXMedia@@@Z @ 33 NONAME ; int TGlxCommandParser::IdsL(class TUid &, unsigned long &, class CMPXMedia const &)
-	??1CGlxSingletonStore@@UAE@XZ @ 34 NONAME ; CGlxSingletonStore::~CGlxSingletonStore(void)
-	?CreateModifiedDateFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 35 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateModifiedDateFilterL(enum TGlxFilterSortDirection)
-	?AddContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@H@Z @ 36 NONAME ; class CMPXMedia * TGlxCommandFactory::AddContainerCommandLC(class TDesC16 const &, int)
-	?DeleteLocationCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVCMPXCollectionPath@@@Z @ 37 NONAME ; class CMPXMedia * TGlxCommandFactory::DeleteLocationCommandLC(class CMPXCollectionPath const &)
-	?CreateAlphabeticSortFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 38 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateAlphabeticSortFilterL(enum TGlxFilterSortDirection)
-	?CreateThumbnailLoadabilityFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@VTSize@@@Z @ 39 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateThumbnailLoadabilityFilterL(class TSize)
-	?ThumbnailCleanupCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@XZ @ 40 NONAME ; class CMPXMedia * TGlxCommandFactory::ThumbnailCleanupCommandLC(void)
-	?ShowSlideshowInToolbar@CGlxSettingsModel@@QAEHXZ @ 41 NONAME ; int CGlxSettingsModel::ShowSlideshowInToolbar(void)
-	?InstanceL@CGlxSettingsModel@@SAPAV1@XZ @ 42 NONAME ; class CGlxSettingsModel * CGlxSettingsModel::InstanceL(void)
-	?CreateIncludeEmptyContainersFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAV2@@Z @ 43 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateIncludeEmptyContainersFilterL(class CMPXMedia *)
-	?DeleteCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVCMPXCollectionPath@@@Z @ 44 NONAME ; class CMPXMedia * TGlxCommandFactory::DeleteCommandLC(class CMPXCollectionPath const &)
-	?CreateSlideShowFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAVCMPXCollectionPath@@W4TGlxFilterSortDirection@@W4TGlxFilterSortOrder@@@Z @ 45 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateSlideShowFilterL(class CMPXCollectionPath *, enum TGlxFilterSortDirection, enum TGlxFilterSortOrder)
-	?Close@CGlxSingletonStore@@SAXPAVCBase@@@Z @ 46 NONAME ; void CGlxSingletonStore::Close(class CBase *)
-	?CreatePreviewTNFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 47 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewTNFilterL(void)
-	?CreateContainerPreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 48 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateContainerPreviewFilterL(void)
-	?CreatePreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 49 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewFilterL(void)
+	?GetUiUtilitiesResourceFilenameL@CGlxResourceUtilities@@SA?AV?$TBuf@$0BAA@@@XZ @ 15 NONAME ; class TBuf<256> CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL(void)
+	?MoveCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@ABVCMPXCollectionPath@@@Z @ 16 NONAME ; class CMPXMedia * TGlxCommandFactory::MoveCommandLC(class TDesC16 const &, class CMPXCollectionPath const &)
+	?CreateSlideShowFilterFromExistingFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAV2@PAVCMPXCollectionPath@@H@Z @ 17 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateSlideShowFilterFromExistingFilterL(class CMPXMedia *, class CMPXCollectionPath *, int)
+	?CreateLastCaptureDateFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 18 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateLastCaptureDateFilterL(void)
+	?CreateExcludeAnimationFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 19 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateExcludeAnimationFilterL(enum TGlxFilterSortDirection)
+	?SupportedOrientations@CGlxSettingsModel@@QAE?AW4TSupportedOrientations@1@XZ @ 20 NONAME ; enum CGlxSettingsModel::TSupportedOrientations CGlxSettingsModel::SupportedOrientations(void)
+	?ShowGeoCoordinatesInDisplay@CGlxSettingsModel@@QAEHXZ @ 21 NONAME ; int CGlxSettingsModel::ShowGeoCoordinatesInDisplay(void)
+	?IsTextEntryPortrait@CGlxSettingsModel@@QAEHXZ @ 22 NONAME ; int CGlxSettingsModel::IsTextEntryPortrait(void)
+	?CreateItemCountSortFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 23 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateItemCountSortFilterL(enum TGlxFilterSortDirection)
+	?RenameCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@ABVCMPXCollectionPath@@@Z @ 24 NONAME ; class CMPXMedia * TGlxCommandFactory::RenameCommandLC(class TDesC16 const &, class CMPXCollectionPath const &)
+	?ExtractAttributes@TGlxFilterFactory@@SA?AVTGlxFilterProperties@@PAVCMPXMedia@@@Z @ 25 NONAME ; class TGlxFilterProperties TGlxFilterFactory::ExtractAttributes(class CMPXMedia *)
+	?ParseL@TGlxCommandParser@@SAXAAVMGlxCommandParserCallback@@ABVCMPXMedia@@@Z @ 26 NONAME ; void TGlxCommandParser::ParseL(class MGlxCommandParserCallback &, class CMPXMedia const &)
+	?AddToContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@ABVCMPXCollectionPath@@@Z @ 27 NONAME ; class CMPXMedia * TGlxCommandFactory::AddToContainerCommandLC(class TDesC16 const &, class CMPXCollectionPath const &)
+	?CreateExcludeEmptyContainersFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAV2@@Z @ 28 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateExcludeEmptyContainersFilterL(class CMPXMedia *)
+	?InstanceLC@CGlxSingletonStore@@CAPAV1@XZ @ 29 NONAME ; class CGlxSingletonStore * CGlxSingletonStore::InstanceLC(void)
+	?Close@CGlxSettingsModel@@QAEXXZ @ 30 NONAME ; void CGlxSettingsModel::Close(void)
+	?CreateCombinedFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@ABVTGlxFilterProperties@@PAV2@H@Z @ 31 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateCombinedFilterL(class TGlxFilterProperties const &, class CMPXMedia *, int)
+	?RemoveFromContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@VTGlxMediaId@@ABVCMPXCollectionPath@@@Z @ 32 NONAME ; class CMPXMedia * TGlxCommandFactory::RemoveFromContainerCommandLC(class TGlxMediaId, class CMPXCollectionPath const &)
+	?NewL@CGlxIadUpdate@@SAPAV1@XZ @ 33 NONAME ; class CGlxIadUpdate * CGlxIadUpdate::NewL(void)
+	?IdsL@TGlxCommandParser@@SAHAAVTUid@@AAKABVCMPXMedia@@@Z @ 34 NONAME ; int TGlxCommandParser::IdsL(class TUid &, unsigned long &, class CMPXMedia const &)
+	??1CGlxSingletonStore@@UAE@XZ @ 35 NONAME ; CGlxSingletonStore::~CGlxSingletonStore(void)
+	?CreateModifiedDateFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 36 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateModifiedDateFilterL(enum TGlxFilterSortDirection)
+	?AddContainerCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVTDesC16@@H@Z @ 37 NONAME ; class CMPXMedia * TGlxCommandFactory::AddContainerCommandLC(class TDesC16 const &, int)
+	?DeleteLocationCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVCMPXCollectionPath@@@Z @ 38 NONAME ; class CMPXMedia * TGlxCommandFactory::DeleteLocationCommandLC(class CMPXCollectionPath const &)
+	?CreateAlphabeticSortFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@W4TGlxFilterSortDirection@@@Z @ 39 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateAlphabeticSortFilterL(enum TGlxFilterSortDirection)
+	?CreateThumbnailLoadabilityFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@VTSize@@@Z @ 40 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateThumbnailLoadabilityFilterL(class TSize)
+	?ThumbnailCleanupCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@XZ @ 41 NONAME ; class CMPXMedia * TGlxCommandFactory::ThumbnailCleanupCommandLC(void)
+	?ShowSlideshowInToolbar@CGlxSettingsModel@@QAEHXZ @ 42 NONAME ; int CGlxSettingsModel::ShowSlideshowInToolbar(void)
+	?InstanceL@CGlxSettingsModel@@SAPAV1@XZ @ 43 NONAME ; class CGlxSettingsModel * CGlxSettingsModel::InstanceL(void)
+	?CreateIncludeEmptyContainersFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAV2@@Z @ 44 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateIncludeEmptyContainersFilterL(class CMPXMedia *)
+	?DeleteCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@ABVCMPXCollectionPath@@@Z @ 45 NONAME ; class CMPXMedia * TGlxCommandFactory::DeleteCommandLC(class CMPXCollectionPath const &)
+	?CreateSlideShowFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@PAVCMPXCollectionPath@@W4TGlxFilterSortDirection@@W4TGlxFilterSortOrder@@@Z @ 46 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateSlideShowFilterL(class CMPXCollectionPath *, enum TGlxFilterSortDirection, enum TGlxFilterSortOrder)
+	?Close@CGlxSingletonStore@@SAXPAVCBase@@@Z @ 47 NONAME ; void CGlxSingletonStore::Close(class CBase *)
+	?CreatePreviewTNFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 48 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewTNFilterL(void)
+	?CreateContainerPreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 49 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateContainerPreviewFilterL(void)
+	?CreatePreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 50 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewFilterL(void)
 
--- a/photosgallery/common/eabi/glxcommonu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/common/eabi/glxcommonu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -15,41 +15,42 @@
 	_ZN17TGlxFilterFactory20CreatePreviewFilterLEv @ 14 NONAME
 	_ZN17TGlxFilterFactory21CreateCombinedFilterLERK20TGlxFilterPropertiesP9CMPXMediai @ 15 NONAME
 	_ZN17TGlxFilterFactory21CreateItemTypeFilterLE18TGlxFilterItemType @ 16 NONAME
-	_ZN17TGlxFilterFactory22CreateSlideShowFilterLEP18CMPXCollectionPath23TGlxFilterSortDirection19TGlxFilterSortOrder @ 17 NONAME
-	_ZN17TGlxFilterFactory25CreateModifiedDateFilterLE23TGlxFilterSortDirection @ 18 NONAME
-	_ZN17TGlxFilterFactory26CreateItemCountSortFilterLE23TGlxFilterSortDirection @ 19 NONAME
-	_ZN17TGlxFilterFactory27CreateAlphabeticSortFilterLE23TGlxFilterSortDirection @ 20 NONAME
-	_ZN17TGlxFilterFactory28CreateCaptureDateSortFilterLE23TGlxFilterSortDirection @ 21 NONAME
-	_ZN17TGlxFilterFactory28CreateLastCaptureDateFilterLEv @ 22 NONAME
-	_ZN17TGlxFilterFactory29CreateContainerPreviewFilterLEv @ 23 NONAME
-	_ZN17TGlxFilterFactory29CreateExcludeAnimationFilterLE23TGlxFilterSortDirection @ 24 NONAME
-	_ZN17TGlxFilterFactory33CreateCameraAlbumExclusionFilterLEv @ 25 NONAME
-	_ZN17TGlxFilterFactory33CreateThumbnailLoadabilityFilterLE5TSize @ 26 NONAME
-	_ZN17TGlxFilterFactory35CreateExcludeEmptyContainersFilterLEP9CMPXMedia @ 27 NONAME
-	_ZN17TGlxFilterFactory35CreateIncludeEmptyContainersFilterLEP9CMPXMedia @ 28 NONAME
-	_ZN17TGlxFilterFactory40CreateSlideShowFilterFromExistingFilterLEP9CMPXMediaP18CMPXCollectionPathi @ 29 NONAME
-	_ZN17TGlxFilterFactory41CreateExcludeContainersWithoutItemFilterLE11TGlxMediaId @ 30 NONAME
-	_ZN18CGlxSingletonStore10InstanceLCEv @ 31 NONAME
-	_ZN18CGlxSingletonStore5CloseEP5CBase @ 32 NONAME
-	_ZN18CGlxSingletonStoreD0Ev @ 33 NONAME
-	_ZN18CGlxSingletonStoreD1Ev @ 34 NONAME
-	_ZN18CGlxSingletonStoreD2Ev @ 35 NONAME
-	_ZN18TGlxCommandFactory13CopyCommandLCERK7TDesC16RK18CMPXCollectionPath @ 36 NONAME
-	_ZN18TGlxCommandFactory13MoveCommandLCERK7TDesC16RK18CMPXCollectionPath @ 37 NONAME
-	_ZN18TGlxCommandFactory14BasicCommandLCEiRK18CMPXCollectionPath @ 38 NONAME
-	_ZN18TGlxCommandFactory15DeleteCommandLCERK18CMPXCollectionPath @ 39 NONAME
-	_ZN18TGlxCommandFactory15RenameCommandLCERK7TDesC16RK18CMPXCollectionPath @ 40 NONAME
-	_ZN18TGlxCommandFactory21AddContainerCommandLCERK7TDesC16i @ 41 NONAME
-	_ZN18TGlxCommandFactory23AddToContainerCommandLCERK18CMPXCollectionPathS2_ @ 42 NONAME
-	_ZN18TGlxCommandFactory23AddToContainerCommandLCERK7TDesC16RK18CMPXCollectionPath @ 43 NONAME
-	_ZN18TGlxCommandFactory23DeleteLocationCommandLCERK18CMPXCollectionPath @ 44 NONAME
-	_ZN18TGlxCommandFactory23SetDescriptionCommandLCERK7TDesC16RK18CMPXCollectionPath @ 45 NONAME
-	_ZN18TGlxCommandFactory25ThumbnailCleanupCommandLCEv @ 46 NONAME
-	_ZN18TGlxCommandFactory28RemoveFromContainerCommandLCE11TGlxMediaIdRK18CMPXCollectionPath @ 47 NONAME
-	_ZN18TGlxCommandFactory28RemoveFromContainerCommandLCERK18CMPXCollectionPath @ 48 NONAME
-	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EE @ 49 NONAME
-	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EER3RFs @ 50 NONAME
-	_ZTI13CGlxIadUpdate @ 51 NONAME
-	_ZTV13CGlxIadUpdate @ 52 NONAME
-	_ZN17TGlxFilterFactory22CreatePreviewTNFilterLEv @ 53 NONAME
+	_ZN17TGlxFilterFactory22CreatePreviewTNFilterLEv @ 17 NONAME
+	_ZN17TGlxFilterFactory22CreateSlideShowFilterLEP18CMPXCollectionPath23TGlxFilterSortDirection19TGlxFilterSortOrder @ 18 NONAME
+	_ZN17TGlxFilterFactory25CreateModifiedDateFilterLE23TGlxFilterSortDirection @ 19 NONAME
+	_ZN17TGlxFilterFactory26CreateItemCountSortFilterLE23TGlxFilterSortDirection @ 20 NONAME
+	_ZN17TGlxFilterFactory27CreateAlphabeticSortFilterLE23TGlxFilterSortDirection @ 21 NONAME
+	_ZN17TGlxFilterFactory28CreateCaptureDateSortFilterLE23TGlxFilterSortDirection @ 22 NONAME
+	_ZN17TGlxFilterFactory28CreateLastCaptureDateFilterLEv @ 23 NONAME
+	_ZN17TGlxFilterFactory29CreateContainerPreviewFilterLEv @ 24 NONAME
+	_ZN17TGlxFilterFactory29CreateExcludeAnimationFilterLE23TGlxFilterSortDirection @ 25 NONAME
+	_ZN17TGlxFilterFactory33CreateCameraAlbumExclusionFilterLEv @ 26 NONAME
+	_ZN17TGlxFilterFactory33CreateThumbnailLoadabilityFilterLE5TSize @ 27 NONAME
+	_ZN17TGlxFilterFactory35CreateExcludeEmptyContainersFilterLEP9CMPXMedia @ 28 NONAME
+	_ZN17TGlxFilterFactory35CreateIncludeEmptyContainersFilterLEP9CMPXMedia @ 29 NONAME
+	_ZN17TGlxFilterFactory40CreateSlideShowFilterFromExistingFilterLEP9CMPXMediaP18CMPXCollectionPathi @ 30 NONAME
+	_ZN17TGlxFilterFactory41CreateExcludeContainersWithoutItemFilterLE11TGlxMediaId @ 31 NONAME
+	_ZN18CGlxSingletonStore10InstanceLCEv @ 32 NONAME
+	_ZN18CGlxSingletonStore5CloseEP5CBase @ 33 NONAME
+	_ZN18CGlxSingletonStoreD0Ev @ 34 NONAME
+	_ZN18CGlxSingletonStoreD1Ev @ 35 NONAME
+	_ZN18CGlxSingletonStoreD2Ev @ 36 NONAME
+	_ZN18TGlxCommandFactory13CopyCommandLCERK7TDesC16RK18CMPXCollectionPath @ 37 NONAME
+	_ZN18TGlxCommandFactory13MoveCommandLCERK7TDesC16RK18CMPXCollectionPath @ 38 NONAME
+	_ZN18TGlxCommandFactory14BasicCommandLCEiRK18CMPXCollectionPath @ 39 NONAME
+	_ZN18TGlxCommandFactory15DeleteCommandLCERK18CMPXCollectionPath @ 40 NONAME
+	_ZN18TGlxCommandFactory15RenameCommandLCERK7TDesC16RK18CMPXCollectionPath @ 41 NONAME
+	_ZN18TGlxCommandFactory21AddContainerCommandLCERK7TDesC16i @ 42 NONAME
+	_ZN18TGlxCommandFactory23AddToContainerCommandLCERK18CMPXCollectionPathS2_ @ 43 NONAME
+	_ZN18TGlxCommandFactory23AddToContainerCommandLCERK7TDesC16RK18CMPXCollectionPath @ 44 NONAME
+	_ZN18TGlxCommandFactory23DeleteLocationCommandLCERK18CMPXCollectionPath @ 45 NONAME
+	_ZN18TGlxCommandFactory23SetDescriptionCommandLCERK7TDesC16RK18CMPXCollectionPath @ 46 NONAME
+	_ZN18TGlxCommandFactory25ThumbnailCleanupCommandLCEv @ 47 NONAME
+	_ZN18TGlxCommandFactory28RemoveFromContainerCommandLCE11TGlxMediaIdRK18CMPXCollectionPath @ 48 NONAME
+	_ZN18TGlxCommandFactory28RemoveFromContainerCommandLCERK18CMPXCollectionPath @ 49 NONAME
+	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EE @ 50 NONAME
+	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EER3RFs @ 51 NONAME
+	_ZN21CGlxResourceUtilities31GetUiUtilitiesResourceFilenameLEv @ 52 NONAME
+	_ZTI13CGlxIadUpdate @ 53 NONAME
+	_ZTV13CGlxIadUpdate @ 54 NONAME
 
--- a/photosgallery/common/inc/glxresourceutilities.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/common/inc/glxresourceutilities.h	Tue Apr 27 16:37:53 2010 +0300
@@ -51,6 +51,12 @@
       * @param The file server session, must be connected before the call
       */
     IMPORT_C static void GetResourceFilenameL( TFileName& aResFile, RFs& aFs );
+    
+    /** 
+	 * Gets the full name of the UiUtilities resource file.
+	 * @return TFileName  - The resource filename for UiUtilities
+	 */
+	IMPORT_C static TFileName GetUiUtilitiesResourceFilenameL();
     };
     
 
--- a/photosgallery/common/src/glxcommandparser.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/common/src/glxcommandparser.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -206,8 +206,10 @@
 // TTGlxCommandParser::ArrayValueL
 // -----------------------------------------------------------------------------
 //	
-void TGlxCommandParser::ArrayValueL(const TMPXAttribute & aAttribute, RArray<TGlxMediaId>& aArray, const CMPXCommand& aCommand)
+void TGlxCommandParser::ArrayValueL(const TMPXAttribute & aAttribute, 
+        RArray<TGlxMediaId>& aArray, const CMPXCommand& aCommand)
     {
+    CleanupClosePushL(aArray);
     if (!aCommand.IsSupported(aAttribute) || aCommand.Type(aAttribute) != EMPXTypeCObject)
         {
         User::Leave(KErrArgument);
@@ -228,6 +230,7 @@
     		aArray.AppendL(TGlxMediaId(list[i]));
     		}
     	}
+    CleanupStack::Pop(&aArray);
     }
 
 /// @todo minor: Rowland Cook 12/06/2007 Add method decription.
--- a/photosgallery/common/src/glxresourceutilities.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/common/src/glxresourceutilities.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -17,7 +17,6 @@
 
 
 
-
 //  CLASS HEADER
 #include "glxresourceutilities.h"
     
@@ -25,7 +24,9 @@
 #include <bautils.h>
 #include <AknUtils.h>
 #include <f32file.h>
+#include <data_caging_path_literals.hrh>
 
+_LIT(KGlxUiUtilitiesResource, "glxuiutilities.rsc");  
 //  INTERNAL INCLUDES
 
 // ---------------------------------------------------------------------------
@@ -67,5 +68,16 @@
             }
         }
     }
+// ---------------------------------------------------------------------------
+// GetUiUtilitiesResourceFilenameL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TFileName CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL()
 
-
+    {
+    TParse parse;
+    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
+    TFileName resourceFile(parse.FullName());
+    GetResourceFilenameL(resourceFile);
+    return resourceFile;
+    }
--- a/photosgallery/controllers/collectionmanager/src/glxcollectionselectionpopup.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/controllers/collectionmanager/src/glxcollectionselectionpopup.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -35,6 +35,7 @@
         RArray<TUint32>& aSelectedIds, TUint32 aCollectionType, 
         TBool aAllowMultipleSelection, TBool aEnableContainerCreation)
 	{
+    CleanupClosePushL(aSelectedIds);
 	TUint32 collectionId = 0;
 	CMPXFilter* filter = NULL;
 
@@ -95,6 +96,7 @@
     	CleanupStack::PopAndDestroy(filter);
     	}
     	
+    CleanupStack::Pop(&aSelectedIds);
     
     if (accepted)
         {        
--- a/photosgallery/controllers/fetcher/data/glxfetcherdialog.rss	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/controllers/fetcher/data/glxfetcherdialog.rss	Tue Apr 27 16:37:53 2010 +0300
@@ -213,21 +213,6 @@
   // Do not add any items
   }
 
-RESOURCE TBUF r_fetcher_empty_view_text
-    {
-    buf = qtn_lgal_empty_grid_no_items;
-    }
-
-RESOURCE TBUF r_fetcher_empty_view_text_image
-    {
-    buf = qtn_lgal_empty_grid_no_images;
-    }
-
-RESOURCE TBUF r_fetcher_empty_view_text_video
-    {
-    buf = qtn_lgal_empty_grid_no_videos;
-    }
-
 RESOURCE TBUF r_glx_softkey_cancel  { buf = text_softkey_cancel; }
 
 RESOURCE TBUF r_glx_marking_mark
--- a/photosgallery/controllers/fetcher/inc/glxfetchercontainer.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/controllers/fetcher/inc/glxfetchercontainer.h	Tue Apr 27 16:37:53 2010 +0300
@@ -92,12 +92,6 @@
      *  CreateAndDisplayGridL
      */
      void CreateAndDisplayGridL( ); 
-
-     /** 
-     * Creates and Displays appropriate empty Strings when no 
-     * items selected
-     */
-     void CreateEmptyDisplayL(TGlxFilterItemType aFilterType );
      
      /** 
       *  SetPreviousTitleL
--- a/photosgallery/controllers/fetcher/inc/glxfetcherdialog.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/controllers/fetcher/inc/glxfetcherdialog.h	Tue Apr 27 16:37:53 2010 +0300
@@ -171,6 +171,9 @@
        
         //mmc notifier
         CGlxMMCNotifier* iMMCNotifier;
+        
+        /// Resource file offset
+        TInt iResourceOffset;
 	};
 
 #endif /*GLXFETCHERDIALOG_H_*/
--- a/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -159,8 +159,6 @@
     
     CreateGridMediaListObserverL();
 	
-    CreateEmptyDisplayL( iFilterType );
-	
 	// If multiple image selection is allowed, then set marking flag on grid widget.
 	if(iMultiSelectionEnabled)
 	    {
@@ -172,29 +170,6 @@
 	    }
 	}
 // ---------------------------------------------------------------------------
-// CreateEmptyDisplayL
-// Displays the empty string if no items in grid with respect to item selected.
-// ---------------------------------------------------------------------------
-//  
-void CGlxFetcherContainer::CreateEmptyDisplayL( TGlxFilterItemType aFilterType )
-	{
-	TRACER("CGlxFetcherContainer::CreateEmptyDisplayL");
-    if (aFilterType == EGlxFilterImage)
-        {
-        HBufC* emptyText = 
-                  StringLoader::LoadLC(R_FETCHER_EMPTY_VIEW_TEXT_IMAGE);
-        iHgGrid->SetEmptyTextL(*emptyText);
-        CleanupStack::PopAndDestroy(emptyText);
-        }
-    else if (aFilterType == EGlxFilterVideo)
-        {
-        HBufC* emptyText = 
-                  StringLoader::LoadLC(R_FETCHER_EMPTY_VIEW_TEXT_VIDEO);
-        iHgGrid->SetEmptyTextL(*emptyText);
-        CleanupStack::PopAndDestroy(emptyText);
-        }
-	}
-// ---------------------------------------------------------------------------
 // CreateMediaListL()
 // Creates a collection path
 // Create a filter as requested filtertype
@@ -238,14 +213,6 @@
     iThumbnailContext->SetDefaultSpec( iUiUtility->GetGridIconSize().iWidth,
             iUiUtility->GetGridIconSize().iHeight );
 
-    CGlxDefaultAttributeContext* attrContext = CGlxDefaultAttributeContext::NewL();
-    CleanupStack::PushL(attrContext);
-    attrContext->AddAttributeL(KMPXMediaGeneralCount);
-    attrContext->SetRangeOffsets(KItemsPerPage, KItemsPerPage);
-    iMediaList->AddContextL(attrContext, KGlxFetchContextPriorityGridViewVisibleThumbnail);
-    User::LeaveIfError(GlxAttributeRetriever::RetrieveL(*attrContext,*iMediaList,EFalse));
-    iMediaList->RemoveContext(attrContext);
-    CleanupStack::PopAndDestroy( attrContext );
     iMediaList->AddContextL(iThumbnailContext, KGlxFetchContextPriorityNormal );
 
     if (!iHgGrid)
@@ -276,6 +243,8 @@
         CleanupStack::Pop(bitmap);
         }
 
+	// Set the grid to use different layout for landscape mode in fetcher
+    //iHgGrid->SetToolbarVisibility(EFalse);
     iHgGrid->SetSelectedIndex(iMediaList->FocusIndex());
     // Setting to MopParent to update background skin
     iHgGrid->SetMopParent(this);
@@ -297,7 +266,8 @@
 //  
 void CGlxFetcherContainer::CreateGridMediaListObserverL()
     {
-    iGlxGridMLObserver = CGlxGridViewMLObserver::NewL(*iMediaList , iHgGrid);
+    iGlxGridMLObserver = CGlxGridViewMLObserver::NewL(*iMediaList, iHgGrid,
+            iFilterType);
     }
     
 // ---------------------------------------------------------------------------
--- a/photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/controllers/fetcher/src/glxfetcherdialog.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -26,13 +26,13 @@
 #include <eikdialogext.h>
 #include <AknsBasicBackgroundControlContext.h>
 #include <MMGFetchVerifier.h>             // For VerifySelectionL()
-
+#include <glxresourceutilities.h>         // for CGlxResourceUtilities
 #include <glxuiutility.h>
 #include <glxscreenfurniture.h>
 #include <glxtracer.h> 					  // Logging macros
 #include <glxlog.h>
 #include <glxcommandhandlers.hrh>         //command ids
-
+#include <data_caging_path_literals.hrh>  // KDC_APP_RESOURCE_DIR
 #include <mglxmedialist.h>				  // MGlxMediaList, CMPXCollectionPath
 
 #include <alf/alfevent.h>
@@ -45,7 +45,9 @@
 #include "glxfetcher.hrh"
 
 const TInt KControlId = 1;
-     
+
+_LIT(KGlxGridviewResource, "glxgridviewdata.rsc");
+
 //-----------------------------------------------------------------------------
 // C++ default constructor.
 //-----------------------------------------------------------------------------
@@ -88,6 +90,11 @@
 CGlxFetcherDialog::~CGlxFetcherDialog()
 	{
 	TRACER("CGlxFetcherDialog::~CGlxFetcherDialog");
+    if (iResourceOffset)
+        {
+        CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
+        }
+    
 	if(iMMCNotifier)
 	    {
         delete iMMCNotifier;
@@ -124,6 +131,15 @@
         {
         iAvkonAppUi->CurrentFixedToolbar()->SetToolbarVisibility(EFalse);
         }
+    
+    // Load resource file for grid view empty text
+    TParse parse;
+    parse.Set(KGlxGridviewResource, &KDC_APP_RESOURCE_DIR, NULL);
+    TFileName resourceFile;
+    resourceFile.Append(parse.FullName());
+    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
+    iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
+    
 	// Get the Hitchcock environment.
     iUiUtility = CGlxUiUtility::UtilityL();
     iEnv = iUiUtility->Env();
--- a/photosgallery/controllers/imageviewer/src/glximageviewermanager.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/controllers/imageviewer/src/glximageviewermanager.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -28,7 +28,9 @@
 
 _LIT( KPrivateFolder, "\\Private\\" );
 _LIT( KGifFileExt, ".gif" );
-_LIT( KTempFilePath, "?:\\data\\images\\200104E7.gif" );
+_LIT( KMbmFileExt, ".mbm");
+_LIT( KTempGifFilePath, "?:\\data\\images\\200104E7.gif" );
+_LIT( KTempMbmFilePath, "?:\\data\\images\\200104E7.mbm" );
     
 EXPORT_C CGlxImageViewerManager* CGlxImageViewerManager::InstanceL()
     {
@@ -173,10 +175,19 @@
         iFile = new (ELeave) RFile64;
         User::LeaveIfError(iFile->Duplicate(aFileHandle));
         iIsPrivate = ETrue;
-        if (parse.Ext().Compare(KGifFileExt) == 0)
+        // Gif / MBM file from private path, hence make a local copy.
+        if (parse.Ext().Compare(KGifFileExt) == 0 || parse.Ext().Compare(
+                KMbmFileExt) == 0)
             {
-            // Gif file from private path, hence make a local copy.
-            TFileName ramFilePath(KTempFilePath);
+            TFileName ramFilePath;
+            if (parse.Ext().Compare(KGifFileExt) == 0)
+                {
+                ramFilePath.Copy(KTempGifFilePath);
+                }
+            else
+                {
+                ramFilePath.Copy(KTempMbmFilePath);
+                }
             TChar drive;
             User::LeaveIfError(DriveInfo::GetDefaultDrive(
                     DriveInfo::EDefaultRam, drive));
--- a/photosgallery/gallery/loc/photos.loc	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/gallery/loc/photos.loc	Tue Apr 27 16:37:53 2010 +0300
@@ -65,6 +65,12 @@
 // d:In English language, "home network" should be shortened to "home net." if the longer version does not fit.
 
 
+//d: Title of the Photos app shown in matrix menu.
+//d: This is provided as part of the app registration file.
+//l: cell_app_pane_t1
+//r: 11.0
+#define qtn_lgal_photos_app_title "Photos"
+
 
 // d:Delete single item confirmation note
 // d:%U will be replaced with name of item about to be deleted
@@ -1050,6 +1056,12 @@
 //
 #define qtn_lgal_tooltip_save       "Save"
 
+// d:Option menu item to save the image.
+// l:list_single_pane_t1_cp2
+// r:11.0
+//
+#define qtn_lgal_options_save	   "Save"
+
 // d:Tooltip displayed when user focuses on use-image icon in the toolbar.
 // d:This submenu option enables the image to be set as wallpaper, as caller image, and so on
 // l:toolbar_text_tooltip
@@ -1180,7 +1192,7 @@
 //-----------------------------------------------------------------------------
 //
 // d:slideshow settings view title text
-// l:title_pane_t2/opt9
+// l:title_pane_t1/opt3
 // r:4.0
 //
 #define qtn_lgal_view_slideshow_settings_title_general  "Slide show settings"
--- a/photosgallery/gallery/src/glxappui.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/gallery/src/glxappui.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -318,7 +318,7 @@
 void CGlxAppUi::GetViewScoringIdsL( RArray<TUid>& aIds ) const
     {
     TRACER("void CGlxAppUi::GetViewScoringIdsL( RArray<TUid>& aIds ) const");
-
+    CleanupClosePushL(aIds);
     aIds.Reset(); // For maintenance safety
 
     // get current navigational state
@@ -349,7 +349,9 @@
         }
 
     CleanupStack::PopAndDestroy(naviState);
+    CleanupStack::Pop(&aIds);
     }
+
 // ---------------------------------------------------------------------------
 // Handles the foreground events
 // ---------------------------------------------------------------------------
@@ -425,9 +427,7 @@
 void CGlxAppUi::HandleActivationMessageL(const TApaCommand& /*aCommand*/, 
         const TFileName& /*aDocumentName*/, const TDesC8& aData)
     {
-    TRACER("void CGlxAppUi::HandleActivationMessageL("
-            "const TApaCommand& aCommand, const TFileName& aDocumentName, "
-            "const TDesC8& aData)");
+    TRACER("void CGlxAppUi::HandleActivationMessageL(const TApaCommand& aCommand, const TFileName& aDocumentName,const TDesC8& aData)");
     GLX_LOG_INFO1("Glx-HandleActivationMessageL() aData length=%d",
             aData.Length());
 
--- a/photosgallery/imgvwr/group/glxivwr.mmp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/imgvwr/group/glxivwr.mmp	Tue Apr 27 16:37:53 2010 +0300
@@ -30,7 +30,7 @@
 TARGETTYPE              exe
 UID                     0x100039CE 0x200104E7
 
-CAPABILITY              GLX_CAPABILITIES
+CAPABILITY              CAP_APPLICATION
 
 SOURCEPATH              ../src
 SOURCE                  glxivwrapplication.cpp 
--- a/photosgallery/imgvwr/src/glxivwrappui.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/imgvwr/src/glxivwrappui.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -239,7 +239,7 @@
 void CGlxIVwrAppUi::GetViewScoringIdsL( RArray<TUid>& aIds ) const
 {
 TRACER("void CGlxIVwrAppUi::GetViewScoringIdsL( RArray<TUid>& aIds ) const");
-
+    CleanupClosePushL(aIds);
 aIds.Reset(); // For maintenance safety
 
 // get current navigational state
@@ -249,10 +249,12 @@
 // to be removed.added by gopa   
 if ( naviState->Levels() >= 1)
     {
-    if (iNavigationalState->ViewingMode() == NGlxNavigationalState::EBrowse) 
+        if (iNavigationalState->ViewingMode()
+                == NGlxNavigationalState::EBrowse)
         {
         // For image viewer collection, goto view mode
-        if (naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid))
+            if (naviState->Id() == TMPXItemId(
+                    KGlxCollectionPluginImageViewerImplementationUid))
             {
             aIds.AppendL( TUid::Uid(  KGlxViewingModeView ) );
             }
@@ -280,6 +282,7 @@
     }
 
 CleanupStack::PopAndDestroy( naviState );
+    CleanupStack::Pop(&aIds);
 }
 // ---------------------------------------------------------------------------
 // Handles the foreground events
--- a/photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -585,9 +585,9 @@
     SendEventL( &readyToView );
 
     // need to start timer to send the transition ready
-    iTransitionTimer->Start(
-        duration, duration, 
-        TShwCallBack< CShwEffectControl, SendTransitionReadyL >( this ) );
+    iTransitionTimer->Start(duration, duration, TShwCallBack<
+            CShwEffectControl, &CShwEffectControl::SendTransitionReadyL> (
+            this));
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -104,8 +104,8 @@
 	        "CShwTimerControl::NotifyL - TShwEventStartView %d", interval );
 
 		// Start the timer with the appropriate values for the event
-		iTimer->Start( interval, interval,
-			TShwCallBack< CShwTimerControl, SendTimerBeatL >( this ) );		
+        iTimer->Start(interval, interval, TShwCallBack<CShwTimerControl,
+                &CShwTimerControl::SendTimerBeatL> (this));     
 		}
     // was it start pause
 	else if ( dynamic_cast<TShwEventPause*>( aEvent ) )
--- a/photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -357,8 +357,10 @@
     {
     TRACER("CShwPlaybackFactory::CShwPlaybackFactoryImpl::CreateEffectsL");
 	GLX_LOG_INFO( "CShwPlaybackFactoryImpl::CreateEffectsL" );
+    ShwCleanupResetAndDestroyPushL(aEffects);
 	aEffects.AppendL( CShwZoomAndPanEffect::NewLC() );
 	CleanupStack::Pop(); // CShwZoomAndPanEffect::NewLC()
 	aEffects.AppendL( CShwCrossFadeEffect::NewLC() );
 	CleanupStack::Pop(); // CShwCrossFadeEffect::NewLC()
+    CleanupStack::Pop(&aEffects);
     }
--- a/photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -322,20 +322,20 @@
     // is faster than the timers we have
     iCompletedCallBack = new( ELeave ) CAsyncCallBack( CActive::EPriorityHigh );
     // set the callback
-    iCompletedCallBack->Set( 
-        TShwCallBack< CShwThumbnailLoaderImpl, CompletedNotifyL >( this ) );
+    iCompletedCallBack->Set(TShwCallBack<CShwThumbnailLoaderImpl,
+            &CShwThumbnailLoaderImpl::CompletedNotifyL> (this));
 
     // create async callback to give error callbacks once scheduler runs
     iErrorCallBack = new( ELeave ) CAsyncCallBack( CActive::EPriorityHigh );
     // set the callback
-    iErrorCallBack->Set( 
-        TShwCallBack< CShwThumbnailLoaderImpl, ErrorNotifyL >( this ) );
+    iErrorCallBack->Set(TShwCallBack<CShwThumbnailLoaderImpl,
+            &CShwThumbnailLoaderImpl::ErrorNotifyL> (this));
         
     // create async callback to give callback once we run onto errors
     iErrorHandlerCallBack = new( ELeave ) CAsyncCallBack( CActive::EPriorityHigh );
     // set the callback
-    iErrorHandlerCallBack->Set( 
-        TShwCallBack< CShwThumbnailLoaderImpl, AsyncErrorHandleL >( this ) );
+    iErrorHandlerCallBack->Set(TShwCallBack<CShwThumbnailLoaderImpl,
+            &CShwThumbnailLoaderImpl::AsyncErrorHandleL> (this));
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -25,6 +25,7 @@
 
 #include <glxlog.h>
 #include <glxtracer.h>
+#include <shwcleanupwrapper.h>
 
 #include "shweffect.h"
 #include "shwconstants.h"
@@ -219,12 +220,14 @@
     {
     TRACER("CShwDefaultEffectManager::GetActiveEffectsL");
     GLX_LOG_INFO( "CShwDefaultEffectManager::GetActiveEffectsL" );
+    ShwCleanupResetAndDestroyPushL(aEffects);
     // Retrieve each effect
     for( TInt i = 0; i < iEffects.Count(); ++i )
         {
         // append the effect pointer to the given array
         aEffects.AppendL( iEffects[i] );  
         }
+    CleanupStack::Pop(&aEffects);
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/slideshow/engine/effectsrc/shwzoomandpaneffect.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/engine/effectsrc/shwzoomandpaneffect.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -348,7 +348,7 @@
 			zoom_and_pan_dur,
 			TShwCallBack< 
 				TShwZoomAndPanLayout, 
-				TShwZoomAndPanLayout::InvertZoom >( 
+                &TShwZoomAndPanLayout::InvertZoom >( 
 				&iImpl->iZoomAndPanLayout ) );
 		}
 	else
--- a/photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -172,10 +172,8 @@
 	// iCShwTimerControl to send any event
 	// start asynch wait for 1 second
 	iStoppedForTimer = EFalse;
-	timer->Start( 
-		1 * 1000000, 
-		1 * 1000000, 
-		TShwCallBack< T_CShwTimerControl, TimerCallBack >( this ) );
+    timer->Start(1 * 1000000, 1 * 1000000, TShwCallBack<T_CShwTimerControl,
+            &T_CShwTimerControl::TimerCallBack> (this));
 
 	// Need to let the scheduler loop
 	iWait.Start();
@@ -191,10 +189,8 @@
 
 	// start the timer again
 	iStoppedForTimer = EFalse;
-	timer->Start( 
-		1 * 1000000, 
-		1 * 1000000, 
-		TShwCallBack< T_CShwTimerControl, TimerCallBack >( this ) );
+    timer->Start(1 * 1000000, 1 * 1000000, TShwCallBack<T_CShwTimerControl,
+            &T_CShwTimerControl::TimerCallBack> (this));
 
 	// Need to let the scheduler loop
 	iWait.Start();
@@ -215,7 +211,8 @@
 	timer->Start( 
 		1 * 1000000, 
 		1 * 1000000, 
-		TShwCallBack< T_CShwTimerControl, TimerCallBack >( this ) );
+        TShwCallBack<T_CShwTimerControl,
+            &T_CShwTimerControl::TimerCallBack> (this));
 	// Need to let the scheduler loop
 	iWait.Start();
 	timer->Cancel();
--- a/photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -592,10 +592,9 @@
 	// create timer to give us callback
 	TShwAutoPtr< CPeriodic > timer = CPeriodic::NewL( CActive::EPriorityStandard );
 	// wait for 1.5 seconds (to be sure the zoom completes)
-	timer->Start( 
-		1.5 * 1000000, 
-		1.5 * 1000000, 
-		TShwCallBack< T_CShwZoomAndPanEffect, CancelAsyncL >( this ) );
+    timer->Start(1.5 * 1000000, 1.5 * 1000000, TShwCallBack<
+            T_CShwZoomAndPanEffect, &T_CShwZoomAndPanEffect::CancelAsyncL> (
+            this));
 	// start async wait
 	iAsyncWait.Start();
 
@@ -620,10 +619,9 @@
 	// cancel old timer
 	timer->Cancel();
 	// wait for 1.5 seconds (to be sure the zoom completes)
-	timer->Start( 
-		1.5 * 1000000, 
-		1.5 * 1000000, 
-		TShwCallBack< T_CShwZoomAndPanEffect, CancelAsyncL >( this ) );
+    timer->Start(1.5 * 1000000, 1.5 * 1000000, TShwCallBack<
+            T_CShwZoomAndPanEffect, &T_CShwZoomAndPanEffect::CancelAsyncL> (
+            this));
 	// start async wait
 	iAsyncWait.Start();
 
@@ -682,10 +680,9 @@
 	// create timer to give us callback
 	TShwAutoPtr< CPeriodic > timer = CPeriodic::NewL( CActive::EPriorityStandard );
 	// start asynch wait for 1.5 second
-	timer->Start( 
-		1.5 * 1000000, 
-		1.5 * 1000000, 
-		TShwCallBack< T_CShwZoomAndPanEffect, CancelAsyncL >( this ) );
+    timer->Start(1.5 * 1000000, 1.5 * 1000000, TShwCallBack<
+            T_CShwZoomAndPanEffect, &T_CShwZoomAndPanEffect::CancelAsyncL> (
+            this));
 	// start async wait
 	iAsyncWait.Start();
 	// cancel the timer
@@ -716,10 +713,9 @@
 	iCShwZoomAndPanEffect->Resume();
 	
 	// start timer for 1.5 seconds
-	timer->Start( 
-		1.5 * 1000000, 
-		1.5 * 1000000, 
-		TShwCallBack< T_CShwZoomAndPanEffect, CancelAsyncL >( this ) );
+    timer->Start(1.5 * 1000000, 1.5 * 1000000, TShwCallBack<
+            T_CShwZoomAndPanEffect, &T_CShwZoomAndPanEffect::CancelAsyncL> (
+            this));
 	// start async wait
 	iAsyncWait.Start();
 	// cancel the timer
@@ -755,10 +751,9 @@
 	// run the layout to get values
 	layout->SetLayoutValues( info );
 	// start timer for .1 seconds, to make sure opacity does not run too fast
-	timer->Start( 
-		0.1 * 1000000, 
-		0.1 * 1000000, 
-		TShwCallBack< T_CShwZoomAndPanEffect, CancelAsyncL >( this ) );
+    timer->Start(0.1 * 1000000, 0.1 * 1000000, TShwCallBack<
+            T_CShwZoomAndPanEffect, &T_CShwZoomAndPanEffect::CancelAsyncL> (
+            this));
 	// start async wait
 	iAsyncWait.Start();
 	// cancel the timer
@@ -783,10 +778,9 @@
 	// run the layout to get values
 	layout->SetLayoutValues( info2 );
 	// start timer for 1.0 seconds
-	timer->Start( 
-		1.0 * 1000000, 
-		1.0 * 1000000, 
-		TShwCallBack< T_CShwZoomAndPanEffect, CancelAsyncL >( this ) );
+    timer->Start(1.0 * 1000000, 1.0 * 1000000, TShwCallBack<
+            T_CShwZoomAndPanEffect, &T_CShwZoomAndPanEffect::CancelAsyncL> (
+            this));
 	// start async wait
 	iAsyncWait.Start();
 	// cancel the timer
@@ -813,10 +807,9 @@
 	// now do the resume
 	iCShwZoomAndPanEffect->Resume();
 	// start timer for 1.0 seconds
-	timer->Start( 
-		1.0 * 1000000, 
-		1.0 * 1000000, 
-		TShwCallBack< T_CShwZoomAndPanEffect, CancelAsyncL >( this ) );
+    timer->Start(1.0 * 1000000, 1.0 * 1000000, TShwCallBack<
+            T_CShwZoomAndPanEffect, &T_CShwZoomAndPanEffect::CancelAsyncL> (
+            this));
 	// start async wait
 	iAsyncWait.Start();
 	// cancel the timer
--- a/photosgallery/slideshow/settingsdialog/src/shwslideshowsettingsdialog.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/settingsdialog/src/shwslideshowsettingsdialog.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -156,7 +156,10 @@
     TRACER("CShwSlideshowSettingsDialog::SetSlShwToolbarVisibility");
     CAknAppUi* appUi = iAvkonAppUi;
     __ASSERT_DEBUG(appUi, Panic(EGlxPanicNullPointer));
-
+    if (!appUi)
+        {
+        return;
+        }
     CAknToolbar* popupToolbar = appUi->PopupToolbar();
     if(popupToolbar)
         {
--- a/photosgallery/slideshow/utils/shwcallback.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/utils/shwcallback.h	Tue Apr 27 16:37:53 2010 +0300
@@ -26,10 +26,10 @@
  * Helper class to construct a TCallBack from any 
  * public non static TInt (*method)() of a class
  * Usage:
- *      TShwCallBack< %ClassName%, %MethodName% >( 
+ *      TShwCallBack< %ClassName%, %&ClassName::%MethodName% >( 
  *          %ClassPointer% )
  * Example:
- *      TShwCallBack< CShwEngineImpl, DoStartL >( 
+ *      TShwCallBack< CShwEngineImpl, &CShwEngineImpl::DoStartL >( 
  *          this );
  */
 template< class Object, TInt (Object::*Method)() >
--- a/photosgallery/slideshow/utils/shwcleanupwrapper.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/utils/shwcleanupwrapper.h	Tue Apr 27 16:37:53 2010 +0300
@@ -76,7 +76,7 @@
 void ShwCleanupResetAndDestroyPushL( T& aObject )
 	{
 	CleanupStack::PushL( 
-		TShwCleanupWrapper< T, T::ResetAndDestroy >( aObject ) );
+	        TShwCleanupWrapper< T, &T::ResetAndDestroy >( aObject ) );
 	}
 
 #endif // __TSHWCLEANUPWRAPPER_H__
--- a/photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp	Tue Apr 27 16:37:53 2010 +0300
@@ -130,5 +130,5 @@
 LIBRARY         remconinterfacebase.lib
 //LIBRARY 		hgcontextutility.lib 					// For Teleport
 LIBRARY			glxtvout.lib
-
+LIBRARY			fbscli.lib
 // End of File
--- a/photosgallery/slideshow/view/inc/shwslideshowview.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/view/inc/shwslideshowview.h	Tue Apr 27 16:37:53 2010 +0300
@@ -32,6 +32,8 @@
 #include "shwgestureobserver.h"
 #include "gesturecontrol.h"
 #include "glxmmcnotifier.h"
+#include <mglxtvobserver.h>
+#include <glxtv.h>
 // FORWARD DECLARATIONS
 class CAlfEnv;
 class CAlfDisplay;
@@ -67,7 +69,8 @@
                                        public MProgressDialogCallback,
                                        public MShwTickObserver,
                                        public MShwGestureObserver,
-                                       public MStorageNotifierObserver
+                                       public MStorageNotifierObserver,
+                                       public MGlxTvObserver
     {
     public:
 
@@ -179,6 +182,9 @@
     	/// @ref MGlxMediaListObserver::HandlePopulatedL
     	void HandlePopulatedL( MGlxMediaList* aList );
 
+    	// From MGlxTVObserver
+    	virtual void HandleTvStatusChangedL ( TTvChangeType aChangeType );
+    	
     	//form CAknView
 		void ProcessCommandL(TInt aCommandId);
     private: // From MShwEngineObserver
@@ -379,7 +385,10 @@
 
         CMPXCollectionPath* iCollectionPath;            // owned
         NShwSlideshow::TPlayDirection iPlayDirection;   // owned
-
+    	
+        /// Own: The TV connection monitor
+    	CGlxTv *  iTvConnection;
+		
         TBool iEngineStartFailed;
 
         /// Own: asynch callback needed for media list population
@@ -413,6 +422,8 @@
 	CGlxMMCNotifier* iMMCNotifier;
 	TBool iMMCState;
 	TBool iIsForegrnd;
+	TSize iScrnSize;
+	TSize iGridIconSize;
 	//to check if slideshow is paused in BG 
 	//and after that we are bringing to foreground
 	TBool iPrevNotInBackground;
--- a/photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -140,8 +140,9 @@
 	iStartTime.HomeTime();
 	User::ResetInactivityTime();
     iPeriodic->Cancel(); // in case it actually was running
-	iPeriodic->Start( iSettingsDelay, iSettingsDelay,
-	    TShwCallBack< CShwSlideshowBackLightTimer, Tick >( this ) );
+    iPeriodic->Start(iSettingsDelay, iSettingsDelay,
+            TShwCallBack<CShwSlideshowBackLightTimer,
+                    &CShwSlideshowBackLightTimer::Tick> (this));
 	}
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/slideshow/view/src/shwslideshowpausehandler.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/view/src/shwslideshowpausehandler.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -185,4 +185,12 @@
         iEngine.ResumeL(); 
         }
     }
+// -----------------------------------------------------------------------------
+// IsSlideShowEngineStatePaused
+// -----------------------------------------------------------------------------
+TBool CShwSlideShowPauseHandler::IsSlideShowEngineStatePaused()
+	{
+	TRACER("CShwSlideShowPauseHandler::IsSlideShowEngineStatePaused()");
+	return iUserPaused;
+	}
 
--- a/photosgallery/slideshow/view/src/shwslideshowpausehandler.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/view/src/shwslideshowpausehandler.h	Tue Apr 27 16:37:53 2010 +0300
@@ -104,6 +104,12 @@
           * Informs the pause handler that MSK Preesed when slide show is running. 
           */
         void ToggleUiControlsVisibiltyL();
+        
+        /**
+         * Returns the slideshow engine paused state.
+         * @return ETrue, if slideshow engine is in paused state
+         */
+        TBool IsSlideShowEngineStatePaused();
 
     private: // Implementation
 
--- a/photosgallery/slideshow/view/src/shwslideshowview.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/view/src/shwslideshowview.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -67,6 +67,10 @@
 #include <glxtexturemanager.h>
 #include <glxerrormanager.h>             
 #include <glxthumbnailattributeinfo.h>   
+#include <glxicons.mbg>
+#include <AknIconUtils.h>
+#include <glxuistd.h>
+
 namespace
     {
     _LIT(KShwSlideshowViewResource,"shwslideshowview.rsc");
@@ -201,8 +205,8 @@
 	// Show the dialog, we show it non blocking so no use for the return value
 	iWaitDialog->RunLD();
 	// set the callback to be engine start
-	iAsyncCallBack->Set( 
-	    TShwCallBack< CShwSlideshowView, StartEngineL >( this ) );
+    iAsyncCallBack->Set(TShwCallBack<CShwSlideshowView,
+            &CShwSlideshowView::StartEngineL> (this));
     // if both lists are ready
     if( iInputListReady && iPlayListReady )
         {
@@ -325,7 +329,9 @@
     
 	iEnv = iUiUtility->Env();
    	iDisplay = iUiUtility->Display();
-
+   	iScrnSize = iUiUtility->DisplaySize();
+   	iGridIconSize = iUiUtility->GetGridIconSize();
+   	
     // Construct the volume control
     iVolumeControl = CShwSlideshowVolumeControl::
         NewL( *iEnv,
@@ -354,8 +360,8 @@
     iPopulateListCallBack = new( ELeave )
         CAsyncCallBack( CActive::EPriorityStandard );
     // set the callback for the media list population
-    iPopulateListCallBack->Set(
-        TShwCallBack< CShwSlideshowView, PopulateListL >( this ) );
+    iPopulateListCallBack->Set(TShwCallBack<CShwSlideshowView,
+            &CShwSlideshowView::PopulateListL> (this));
     iMSKPressed = EFalse;
     iLSKPressed = EFalse;
     }
@@ -434,6 +440,10 @@
 		{
 	    iHdmiController = CGlxHdmiController::NewL();
 		}
+	if(!iTvConnection)
+		{
+		iTvConnection = CGlxTv::NewL( *this );
+		}
     // Engine related construction
     // Instantiate the slideshow engine, with this class as its observer
     __ASSERT_DEBUG( !iEngine, Panic( EGlxPanicAlreadyInitialised ) );
@@ -464,8 +474,8 @@
 
     // Request asynch callback that will end up in ShowProgressDialogL
     // once the active scheduler runs
-    iAsyncCallBack->Set( 
-        TShwCallBack< CShwSlideshowView, ShowProgressDialogL >( this ) );
+    iAsyncCallBack->Set(TShwCallBack<CShwSlideshowView,
+            &CShwSlideshowView::ShowProgressDialogL> (this));
     iAsyncCallBack->CallBack();
 
     iDisplay->Roster().ShowL( *iGestureControlGroup,KAlfRosterShowAtTop );
@@ -494,6 +504,11 @@
         delete iHdmiController;
         iHdmiController = NULL;
         }
+    if(iTvConnection)
+        {
+        delete iTvConnection;
+        iTvConnection = NULL;
+        }
 
     //check if we have engine active object starting
     if( iPopulateListCallBack->IsActive() )
@@ -1291,8 +1306,60 @@
     if ( (item.Category() != EMPXVideo) 
             && (error == KErrNone) )
         {
-        GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Setting the Image");
-        iHdmiController->SetImageL(item.Uri());
+        GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Fetch FS thumbnail");
+        TMPXAttribute fsTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail,
+                GlxFullThumbnailAttributeId(ETrue, iScrnSize.iWidth,
+                        iScrnSize.iHeight));
+        const CGlxThumbnailAttribute* fsValue = item.ThumbnailAttribute(
+                fsTnAttrib);
+        if (fsValue)
+            {
+            GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Setting FS Bitmap");
+            CFbsBitmap* fsBitmap = new (ELeave) CFbsBitmap;
+            CleanupStack::PushL(fsBitmap);
+            fsBitmap->Duplicate( fsValue->iBitmap->Handle());
+            
+            GLX_LOG_INFO2("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - FS Bitmap Size width=%d, height=%d", 
+                    fsBitmap->SizeInPixels().iWidth, fsBitmap->SizeInPixels().iHeight);
+            iHdmiController->SetImageL(item.Uri(),fsBitmap);
+            CleanupStack::PopAndDestroy(fsBitmap);
+            }
+        else
+            {
+            GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Fetch Grid thumbnail");
+            TMPXAttribute gridTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail,
+                    GlxFullThumbnailAttributeId(ETrue, iGridIconSize.iWidth,
+                            iGridIconSize.iHeight));
+            const CGlxThumbnailAttribute* gridvalue = item.ThumbnailAttribute(
+                    gridTnAttrib);
+
+            if (gridvalue)
+                {
+                GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Setting Grid Bitmap");
+                CFbsBitmap* gridBitmap = new (ELeave) CFbsBitmap;
+                CleanupStack::PushL(gridBitmap);
+                gridBitmap->Duplicate( gridvalue->iBitmap->Handle());
+                
+                GLX_LOG_INFO2("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - gridBitmap Size width=%d, height=%d", 
+                        gridBitmap->SizeInPixels().iWidth, gridBitmap->SizeInPixels().iHeight);
+                iHdmiController->SetImageL(item.Uri(),gridBitmap);
+                CleanupStack::PopAndDestroy(gridBitmap);
+                }
+            else
+                {
+                GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Setting Null Bitmap");
+                TFileName resFile(KDC_APP_BITMAP_DIR);
+                resFile.Append(KGlxIconsFilename);
+                CFbsBitmap* defaultBitmap = new (ELeave) CFbsBitmap;
+                CleanupStack::PushL(defaultBitmap);
+                defaultBitmap = AknIconUtils::CreateIconL(resFile,
+                        EMbmGlxiconsQgn_prop_image_notcreated);
+                GLX_LOG_INFO2("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Default Size width=%d, height=%d", 
+                        defaultBitmap->SizeInPixels().iWidth, defaultBitmap->SizeInPixels().iHeight);
+                iHdmiController->SetImageL(item.Uri(),defaultBitmap);
+                CleanupStack::PopAndDestroy(defaultBitmap); 
+                }
+            }
         }
     else
         {
@@ -1371,4 +1438,26 @@
     ProcessCommandL(EAknSoftkeyExit);
     }
 
+// ---------------------------------------------------------------------------
+//
+// HandleTvStatusChangedL
+// ---------------------------------------------------------------------------
+//
+void CShwSlideshowView::HandleTvStatusChangedL(TTvChangeType aChangeType )
+	{
+	TRACER("CShwSlideshowView::HandleTvConnectionStatusChangedL");
+    // This is a common function for both HDMI and TV-out status changes 
+    // (see CGlxTv::HandleTvConnectionStatusChangedL)
+    if ((aChangeType == ETvConnectionChanged)
+            && (!iTvConnection->IsHDMIConnected()
+                   	&& !iTvConnection->IsConnected()))
+	         {
+                 GLX_LOG_INFO("CShwSlideshowView::HandleTvConnectionStatusChangedL- Acessory Not Connected");
+	         //Issue pause command if not already paused
+                 if (!iPauseHandler->IsSlideShowEngineStatePaused())
+                    {
+	              ProcessCommandL(EShwSlideshowCmdPause);
+	            }
+		}
+	}
 
--- a/photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -231,9 +231,9 @@
 	        {
 	        // Restart the timer
 	        iTimer->Cancel();
-	        iTimer->Start( iInterval, iInterval,
-	                TShwCallBack< CShwSlideshowVolumeControl, TimerCallback>
-	        ( this ) );
+	        iTimer->Start(iInterval, iInterval, TShwCallBack< 
+	                CShwSlideshowVolumeControl, 
+	                &CShwSlideshowVolumeControl::TimerCallback> (this));
 	        }
 	    }
 	}
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/bwins/glxcommandhandlerbaseu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/bwins/glxcommandhandlerbaseu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -1,58 +1,58 @@
 EXPORTS
-	??0CGlxCommandHandler@@QAE@H@Z @ 1 NONAME ; CGlxCommandHandler::CGlxCommandHandler(int)
-	??0CGlxMediaListCommandHandler@@QAE@PAVMGlxMediaListProvider@@H@Z @ 2 NONAME ; CGlxMediaListCommandHandler::CGlxMediaListCommandHandler(class MGlxMediaListProvider *, int)
-	??0CGlxMpxCommandCommandHandler@@QAE@PAVMGlxMediaListProvider@@H@Z @ 3 NONAME ; CGlxMpxCommandCommandHandler::CGlxMpxCommandCommandHandler(class MGlxMediaListProvider *, int)
-	??0TCommandInfo@CGlxMediaListCommandHandler@@QAE@H@Z @ 4 NONAME ; CGlxMediaListCommandHandler::TCommandInfo::TCommandInfo(int)
-	??1CGlxCommandHandler@@UAE@XZ @ 5 NONAME ; CGlxCommandHandler::~CGlxCommandHandler(void)
+	?MediaList@CGlxMediaListCommandHandler@@IBEABVMGlxMediaList@@XZ @ 1 NONAME ; class MGlxMediaList const & CGlxMediaListCommandHandler::MediaList(void) const
+	?OkToExit@CGlxMpxCommandCommandHandler@@MBEHXZ @ 2 NONAME ; int CGlxMpxCommandCommandHandler::OkToExit(void) const
+	??1CGlxCommandHandler@@UAE@XZ @ 3 NONAME ; CGlxCommandHandler::~CGlxCommandHandler(void)
+	?HandleFocusChangedL@CGlxMpxCommandCommandHandler@@MAEXW4TFocusChangeType@NGlxListDefs@@HHPAVMGlxMediaList@@@Z @ 4 NONAME ; void CGlxMpxCommandCommandHandler::HandleFocusChangedL(enum NGlxListDefs::TFocusChangeType, int, int, class MGlxMediaList *)
+	?ConfirmationNoteMultipleL@CGlxMpxCommandCommandHandler@@ABEHHAAVMGlxMediaList@@@Z @ 5 NONAME ; int CGlxMpxCommandCommandHandler::ConfirmationNoteMultipleL(int, class MGlxMediaList &) const
 	??1CGlxMediaListCommandHandler@@UAE@XZ @ 6 NONAME ; CGlxMediaListCommandHandler::~CGlxMediaListCommandHandler(void)
-	??1CGlxMpxCommandCommandHandler@@UAE@XZ @ 7 NONAME ; CGlxMpxCommandCommandHandler::~CGlxMpxCommandCommandHandler(void)
-	?ActivateL@CGlxCommandHandler@@QAEXH@Z @ 8 NONAME ; void CGlxCommandHandler::ActivateL(int)
-	?AddCommandL@CGlxMediaListCommandHandler@@IAEXABUTCommandInfo@1@@Z @ 9 NONAME ; void CGlxMediaListCommandHandler::AddCommandL(struct CGlxMediaListCommandHandler::TCommandInfo const &)
-	?BypassFiltersForExecute@CGlxMediaListCommandHandler@@MBEHXZ @ 10 NONAME ; int CGlxMediaListCommandHandler::BypassFiltersForExecute(void) const
-	?BypassFiltersForMenu@CGlxMediaListCommandHandler@@MBEHXZ @ 11 NONAME ; int CGlxMediaListCommandHandler::BypassFiltersForMenu(void) const
-	?CommandInfo@CGlxMediaListCommandHandler@@IAEAAUTCommandInfo@1@H@Z @ 12 NONAME ; struct CGlxMediaListCommandHandler::TCommandInfo & CGlxMediaListCommandHandler::CommandInfo(int)
-	?CommandInfoIndex@CGlxMediaListCommandHandler@@ABEHH@Z @ 13 NONAME ; int CGlxMediaListCommandHandler::CommandInfoIndex(int) const
-	?CompletionTextL@CGlxMpxCommandCommandHandler@@MBEPAVHBufC16@@XZ @ 14 NONAME ; class HBufC16 * CGlxMpxCommandCommandHandler::CompletionTextL(void) const
-	?ConfirmationNoteL@CGlxMpxCommandCommandHandler@@EBEHHAAVMGlxMediaList@@@Z @ 15 NONAME ; int CGlxMpxCommandCommandHandler::ConfirmationNoteL(int, class MGlxMediaList &) const
-	?ConfirmationNoteMultipleL@CGlxMpxCommandCommandHandler@@ABEHHAAVMGlxMediaList@@@Z @ 16 NONAME ; int CGlxMpxCommandCommandHandler::ConfirmationNoteMultipleL(int, class MGlxMediaList &) const
-	?ConfirmationNoteSingleL@CGlxMpxCommandCommandHandler@@ABEHHAAVMGlxMediaList@@@Z @ 17 NONAME ; int CGlxMpxCommandCommandHandler::ConfirmationNoteSingleL(int, class MGlxMediaList &) const
-	?ConfirmationTextL@CGlxMpxCommandCommandHandler@@MBEPAVHBufC16@@HH@Z @ 18 NONAME ; class HBufC16 * CGlxMpxCommandCommandHandler::ConfirmationTextL(int, int) const
-	?Deactivate@CGlxMediaListCommandHandler@@UAEXXZ @ 19 NONAME ; void CGlxMediaListCommandHandler::Deactivate(void)
-	?Deactivate@CGlxMpxCommandCommandHandler@@MAEXXZ @ 20 NONAME ; void CGlxMpxCommandCommandHandler::Deactivate(void)
-	?DialogDismissedL@CGlxMpxCommandCommandHandler@@UAEXH@Z @ 21 NONAME ; void CGlxMpxCommandCommandHandler::DialogDismissedL(int)
-	?DoActivateL@CGlxCommandHandler@@MAEXH@Z @ 22 NONAME ; void CGlxCommandHandler::DoActivateL(int)
-	?DoActivateL@CGlxMediaListCommandHandler@@MAEXH@Z @ 23 NONAME ; void CGlxMediaListCommandHandler::DoActivateL(int)
-	?DoActivateL@CGlxMpxCommandCommandHandler@@MAEXH@Z @ 24 NONAME ; void CGlxMpxCommandCommandHandler::DoActivateL(int)
-	?DoDynInitMenuPaneL@CGlxMediaListCommandHandler@@MAEXHPAVCEikMenuPane@@@Z @ 25 NONAME ; void CGlxMediaListCommandHandler::DoDynInitMenuPaneL(int, class CEikMenuPane *)
-	?DoExecuteL@CGlxMpxCommandCommandHandler@@EAEHHAAVMGlxMediaList@@@Z @ 26 NONAME ; int CGlxMpxCommandCommandHandler::DoExecuteL(int, class MGlxMediaList &)
-	?DoGetRequiredAttributesL@CGlxMediaListCommandHandler@@MBEXAAV?$RArray@VTMPXAttribute@@@@H@Z @ 27 NONAME ; void CGlxMediaListCommandHandler::DoGetRequiredAttributesL(class RArray<class TMPXAttribute> &, int) const
-	?DoHandleCommandCompleteL@CGlxMpxCommandCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 28 NONAME ; void CGlxMpxCommandCommandHandler::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
-	?DoHandleItemAddedL@CGlxMpxCommandCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 29 NONAME ; void CGlxMpxCommandCommandHandler::DoHandleItemAddedL(int, int, class MGlxMediaList *)
-	?DoHandleMessageL@CGlxMpxCommandCommandHandler@@MAEHABVCMPXMedia@@AAVMGlxMediaList@@@Z @ 30 NONAME ; int CGlxMpxCommandCommandHandler::DoHandleMessageL(class CMPXMedia const &, class MGlxMediaList &)
-	?DoIsDisabled@CGlxMediaListCommandHandler@@MBEHHAAVMGlxMediaList@@@Z @ 31 NONAME ; int CGlxMediaListCommandHandler::DoIsDisabled(int, class MGlxMediaList &) const
-	?DynInitMenuPaneL@CGlxMediaListCommandHandler@@UAEXHPAVCEikMenuPane@@@Z @ 32 NONAME ; void CGlxMediaListCommandHandler::DynInitMenuPaneL(int, class CEikMenuPane *)
-	?ExecuteL@CGlxMediaListCommandHandler@@UAEHH@Z @ 33 NONAME ; int CGlxMediaListCommandHandler::ExecuteL(int)
-	?GetRequiredAttributesL@CGlxMediaListCommandHandler@@UBEXAAV?$RArray@VTMPXAttribute@@@@HHH@Z @ 34 NONAME ; void CGlxMediaListCommandHandler::GetRequiredAttributesL(class RArray<class TMPXAttribute> &, int, int, int) const
-	?HandleAttributesAvailableL@CGlxMpxCommandCommandHandler@@MAEXHABV?$RArray@VTMPXAttribute@@@@PAVMGlxMediaList@@@Z @ 35 NONAME ; void CGlxMpxCommandCommandHandler::HandleAttributesAvailableL(int, class RArray<class TMPXAttribute> const &, class MGlxMediaList *)
-	?HandleCommandCompleteL@CGlxMpxCommandCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 36 NONAME ; void CGlxMpxCommandCommandHandler::HandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
-	?HandleErrorL@CGlxMpxCommandCommandHandler@@MAEXH@Z @ 37 NONAME ; void CGlxMpxCommandCommandHandler::HandleErrorL(int)
-	?HandleFocusChangedL@CGlxMpxCommandCommandHandler@@MAEXW4TFocusChangeType@NGlxListDefs@@HHPAVMGlxMediaList@@@Z @ 38 NONAME ; void CGlxMpxCommandCommandHandler::HandleFocusChangedL(enum NGlxListDefs::TFocusChangeType, int, int, class MGlxMediaList *)
-	?HandleItemAddedL@CGlxMpxCommandCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 39 NONAME ; void CGlxMpxCommandCommandHandler::HandleItemAddedL(int, int, class MGlxMediaList *)
-	?HandleItemModifiedL@CGlxMpxCommandCommandHandler@@MAEXABV?$RArray@H@@PAVMGlxMediaList@@@Z @ 40 NONAME ; void CGlxMpxCommandCommandHandler::HandleItemModifiedL(class RArray<int> const &, class MGlxMediaList *)
-	?HandleItemRemovedL@CGlxMpxCommandCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 41 NONAME ; void CGlxMpxCommandCommandHandler::HandleItemRemovedL(int, int, class MGlxMediaList *)
-	?HandleItemSelectedL@CGlxMpxCommandCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 42 NONAME ; void CGlxMpxCommandCommandHandler::HandleItemSelectedL(int, int, class MGlxMediaList *)
-	?HandleMediaL@CGlxMpxCommandCommandHandler@@MAEXHPAVMGlxMediaList@@@Z @ 43 NONAME ; void CGlxMpxCommandCommandHandler::HandleMediaL(int, class MGlxMediaList *)
-	?HandleMessageL@CGlxMpxCommandCommandHandler@@MAEXABVCMPXMedia@@PAVMGlxMediaList@@@Z @ 44 NONAME ; void CGlxMpxCommandCommandHandler::HandleMessageL(class CMPXMedia const &, class MGlxMediaList *)
-	?IsDisabledL@CGlxMediaListCommandHandler@@IBEHHAAVMGlxMediaList@@@Z @ 45 NONAME ; int CGlxMediaListCommandHandler::IsDisabledL(int, class MGlxMediaList &) const
-	?IsSupported@CGlxMediaListCommandHandler@@IBEHH@Z @ 46 NONAME ; int CGlxMediaListCommandHandler::IsSupported(int) const
-	?MediaList@CGlxMediaListCommandHandler@@IAEAAVMGlxMediaList@@XZ @ 47 NONAME ; class MGlxMediaList & CGlxMediaListCommandHandler::MediaList(void)
-	?MediaList@CGlxMediaListCommandHandler@@IBEABVMGlxMediaList@@XZ @ 48 NONAME ; class MGlxMediaList const & CGlxMediaListCommandHandler::MediaList(void) const
-	?OfferKeyEventL@CGlxMediaListCommandHandler@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 49 NONAME ; enum TKeyResponse CGlxMediaListCommandHandler::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?OkToExit@CGlxMpxCommandCommandHandler@@MBEHXZ @ 50 NONAME ; int CGlxMpxCommandCommandHandler::OkToExit(void) const
-	?PopulateToolbarL@CGlxCommandHandler@@MAEXXZ @ 51 NONAME ; void CGlxCommandHandler::PopulateToolbarL(void)
-	?PreDynInitMenuPaneL@CGlxMediaListCommandHandler@@UAEXH@Z @ 52 NONAME ; void CGlxMediaListCommandHandler::PreDynInitMenuPaneL(int)
-	?ProgressTextL@CGlxMpxCommandCommandHandler@@MBEPAVHBufC16@@H@Z @ 53 NONAME ; class HBufC16 * CGlxMpxCommandCommandHandler::ProgressTextL(int) const
-	?SelectionLength@CGlxMediaListCommandHandler@@IBEHXZ @ 54 NONAME ; int CGlxMediaListCommandHandler::SelectionLength(void) const
-	?TryExitL@CGlxMpxCommandCommandHandler@@IAEXH@Z @ 55 NONAME ; void CGlxMpxCommandCommandHandler::TryExitL(int)
-	?ViewingState@CGlxMediaListCommandHandler@@IBE?AW4TViewingState@TCommandInfo@1@XZ @ 56 NONAME ; enum CGlxMediaListCommandHandler::TCommandInfo::TViewingState CGlxMediaListCommandHandler::ViewingState(void) const
+	?SelectionLength@CGlxMediaListCommandHandler@@IBEHXZ @ 7 NONAME ; int CGlxMediaListCommandHandler::SelectionLength(void) const
+	?CommandInfo@CGlxMediaListCommandHandler@@IAEAAUTCommandInfo@1@H@Z @ 8 NONAME ; struct CGlxMediaListCommandHandler::TCommandInfo & CGlxMediaListCommandHandler::CommandInfo(int)
+	?DynInitMenuPaneL@CGlxMediaListCommandHandler@@UAEXHPAVCEikMenuPane@@H@Z @ 9 NONAME ; void CGlxMediaListCommandHandler::DynInitMenuPaneL(int, class CEikMenuPane *, int)
+	?Deactivate@CGlxMediaListCommandHandler@@UAEXXZ @ 10 NONAME ; void CGlxMediaListCommandHandler::Deactivate(void)
+	?CompletionTextL@CGlxMpxCommandCommandHandler@@MBEPAVHBufC16@@XZ @ 11 NONAME ; class HBufC16 * CGlxMpxCommandCommandHandler::CompletionTextL(void) const
+	??0CGlxMpxCommandCommandHandler@@QAE@PAVMGlxMediaListProvider@@H@Z @ 12 NONAME ; CGlxMpxCommandCommandHandler::CGlxMpxCommandCommandHandler(class MGlxMediaListProvider *, int)
+	?HandleErrorL@CGlxMpxCommandCommandHandler@@MAEXH@Z @ 13 NONAME ; void CGlxMpxCommandCommandHandler::HandleErrorL(int)
+	??0TCommandInfo@CGlxMediaListCommandHandler@@QAE@H@Z @ 14 NONAME ; CGlxMediaListCommandHandler::TCommandInfo::TCommandInfo(int)
+	?BypassFiltersForExecute@CGlxMediaListCommandHandler@@MBEHXZ @ 15 NONAME ; int CGlxMediaListCommandHandler::BypassFiltersForExecute(void) const
+	?DoIsDisabled@CGlxMediaListCommandHandler@@MBEHHAAVMGlxMediaList@@@Z @ 16 NONAME ; int CGlxMediaListCommandHandler::DoIsDisabled(int, class MGlxMediaList &) const
+	?AddCommandL@CGlxMediaListCommandHandler@@IAEXABUTCommandInfo@1@@Z @ 17 NONAME ; void CGlxMediaListCommandHandler::AddCommandL(struct CGlxMediaListCommandHandler::TCommandInfo const &)
+	?MediaList@CGlxMediaListCommandHandler@@IAEAAVMGlxMediaList@@XZ @ 18 NONAME ; class MGlxMediaList & CGlxMediaListCommandHandler::MediaList(void)
+	?HandleMessageL@CGlxMpxCommandCommandHandler@@MAEXABVCMPXMedia@@PAVMGlxMediaList@@@Z @ 19 NONAME ; void CGlxMpxCommandCommandHandler::HandleMessageL(class CMPXMedia const &, class MGlxMediaList *)
+	?IsDisabledL@CGlxMediaListCommandHandler@@IBEHHAAVMGlxMediaList@@@Z @ 20 NONAME ; int CGlxMediaListCommandHandler::IsDisabledL(int, class MGlxMediaList &) const
+	?HandleItemRemovedL@CGlxMpxCommandCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 21 NONAME ; void CGlxMpxCommandCommandHandler::HandleItemRemovedL(int, int, class MGlxMediaList *)
+	?DoHandleMessageL@CGlxMpxCommandCommandHandler@@MAEHABVCMPXMedia@@AAVMGlxMediaList@@@Z @ 22 NONAME ; int CGlxMpxCommandCommandHandler::DoHandleMessageL(class CMPXMedia const &, class MGlxMediaList &)
+	?ExecuteL@CGlxMediaListCommandHandler@@UAEHH@Z @ 23 NONAME ; int CGlxMediaListCommandHandler::ExecuteL(int)
+	?TryExitL@CGlxMpxCommandCommandHandler@@IAEXH@Z @ 24 NONAME ; void CGlxMpxCommandCommandHandler::TryExitL(int)
+	?HandleCommandCompleteL@CGlxMpxCommandCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 25 NONAME ; void CGlxMpxCommandCommandHandler::HandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
+	?ConfirmationTextL@CGlxMpxCommandCommandHandler@@MBEPAVHBufC16@@HH@Z @ 26 NONAME ; class HBufC16 * CGlxMpxCommandCommandHandler::ConfirmationTextL(int, int) const
+	?HandleMediaL@CGlxMpxCommandCommandHandler@@MAEXHPAVMGlxMediaList@@@Z @ 27 NONAME ; void CGlxMpxCommandCommandHandler::HandleMediaL(int, class MGlxMediaList *)
+	?HandleItemModifiedL@CGlxMpxCommandCommandHandler@@MAEXABV?$RArray@H@@PAVMGlxMediaList@@@Z @ 28 NONAME ; void CGlxMpxCommandCommandHandler::HandleItemModifiedL(class RArray<int> const &, class MGlxMediaList *)
+	?IsSupported@CGlxMediaListCommandHandler@@IBEHH@Z @ 29 NONAME ; int CGlxMediaListCommandHandler::IsSupported(int) const
+	?GetRequiredAttributesL@CGlxMediaListCommandHandler@@UBEXAAV?$RArray@VTMPXAttribute@@@@HHH@Z @ 30 NONAME ; void CGlxMediaListCommandHandler::GetRequiredAttributesL(class RArray<class TMPXAttribute> &, int, int, int) const
+	?HandleItemAddedL@CGlxMpxCommandCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 31 NONAME ; void CGlxMpxCommandCommandHandler::HandleItemAddedL(int, int, class MGlxMediaList *)
+	?DoActivateL@CGlxMediaListCommandHandler@@MAEXH@Z @ 32 NONAME ; void CGlxMediaListCommandHandler::DoActivateL(int)
+	??0CGlxCommandHandler@@QAE@H@Z @ 33 NONAME ; CGlxCommandHandler::CGlxCommandHandler(int)
+	?DoHandleCommandCompleteL@CGlxMpxCommandCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 34 NONAME ; void CGlxMpxCommandCommandHandler::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
+	?DoActivateL@CGlxCommandHandler@@MAEXH@Z @ 35 NONAME ; void CGlxCommandHandler::DoActivateL(int)
+	?PreDynInitMenuPaneL@CGlxMediaListCommandHandler@@UAEXH@Z @ 36 NONAME ; void CGlxMediaListCommandHandler::PreDynInitMenuPaneL(int)
+	?ActivateL@CGlxCommandHandler@@QAEXH@Z @ 37 NONAME ; void CGlxCommandHandler::ActivateL(int)
+	?DoHandleItemAddedL@CGlxMpxCommandCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 38 NONAME ; void CGlxMpxCommandCommandHandler::DoHandleItemAddedL(int, int, class MGlxMediaList *)
+	?HandleAttributesAvailableL@CGlxMpxCommandCommandHandler@@MAEXHABV?$RArray@VTMPXAttribute@@@@PAVMGlxMediaList@@@Z @ 39 NONAME ; void CGlxMpxCommandCommandHandler::HandleAttributesAvailableL(int, class RArray<class TMPXAttribute> const &, class MGlxMediaList *)
+	?DoGetRequiredAttributesL@CGlxMediaListCommandHandler@@MBEXAAV?$RArray@VTMPXAttribute@@@@H@Z @ 40 NONAME ; void CGlxMediaListCommandHandler::DoGetRequiredAttributesL(class RArray<class TMPXAttribute> &, int) const
+	?ProgressTextL@CGlxMpxCommandCommandHandler@@MBEPAVHBufC16@@H@Z @ 41 NONAME ; class HBufC16 * CGlxMpxCommandCommandHandler::ProgressTextL(int) const
+	?BypassFiltersForMenu@CGlxMediaListCommandHandler@@MBEHXZ @ 42 NONAME ; int CGlxMediaListCommandHandler::BypassFiltersForMenu(void) const
+	?ViewingState@CGlxMediaListCommandHandler@@IBE?AW4TViewingState@TCommandInfo@1@XZ @ 43 NONAME ; enum CGlxMediaListCommandHandler::TCommandInfo::TViewingState CGlxMediaListCommandHandler::ViewingState(void) const
+	?CommandInfoIndex@CGlxMediaListCommandHandler@@ABEHH@Z @ 44 NONAME ; int CGlxMediaListCommandHandler::CommandInfoIndex(int) const
+	?DoActivateL@CGlxMpxCommandCommandHandler@@MAEXH@Z @ 45 NONAME ; void CGlxMpxCommandCommandHandler::DoActivateL(int)
+	?DoExecuteL@CGlxMpxCommandCommandHandler@@EAEHHAAVMGlxMediaList@@@Z @ 46 NONAME ; int CGlxMpxCommandCommandHandler::DoExecuteL(int, class MGlxMediaList &)
+	?DialogDismissedL@CGlxMpxCommandCommandHandler@@UAEXH@Z @ 47 NONAME ; void CGlxMpxCommandCommandHandler::DialogDismissedL(int)
+	?OfferKeyEventL@CGlxMediaListCommandHandler@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 48 NONAME ; enum TKeyResponse CGlxMediaListCommandHandler::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?Deactivate@CGlxMpxCommandCommandHandler@@MAEXXZ @ 49 NONAME ; void CGlxMpxCommandCommandHandler::Deactivate(void)
+	??1CGlxMpxCommandCommandHandler@@UAE@XZ @ 50 NONAME ; CGlxMpxCommandCommandHandler::~CGlxMpxCommandCommandHandler(void)
+	?HandleItemSelectedL@CGlxMpxCommandCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 51 NONAME ; void CGlxMpxCommandCommandHandler::HandleItemSelectedL(int, int, class MGlxMediaList *)
+	??0CGlxMediaListCommandHandler@@QAE@PAVMGlxMediaListProvider@@H@Z @ 52 NONAME ; CGlxMediaListCommandHandler::CGlxMediaListCommandHandler(class MGlxMediaListProvider *, int)
+	?ConfirmationNoteSingleL@CGlxMpxCommandCommandHandler@@ABEHHAAVMGlxMediaList@@@Z @ 53 NONAME ; int CGlxMpxCommandCommandHandler::ConfirmationNoteSingleL(int, class MGlxMediaList &) const
+	?DoDynInitMenuPaneL@CGlxMediaListCommandHandler@@MAEXHPAVCEikMenuPane@@@Z @ 54 NONAME ; void CGlxMediaListCommandHandler::DoDynInitMenuPaneL(int, class CEikMenuPane *)
+	?ConfirmationNoteL@CGlxMpxCommandCommandHandler@@EBEHHAAVMGlxMediaList@@@Z @ 55 NONAME ; int CGlxMpxCommandCommandHandler::ConfirmationNoteL(int, class MGlxMediaList &) const
+	?PopulateToolbarL@CGlxCommandHandler@@MAEXXZ @ 56 NONAME ; void CGlxCommandHandler::PopulateToolbarL(void)
 
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/eabi/glxcommandhandlerbaseu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/eabi/glxcommandhandlerbaseu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -13,7 +13,7 @@
 	_ZN27CGlxMediaListCommandHandler12TCommandInfoC1Ei @ 12 NONAME
 	_ZN27CGlxMediaListCommandHandler12TCommandInfoC2Ei @ 13 NONAME
 	_ZN27CGlxMediaListCommandHandler14OfferKeyEventLERK9TKeyEvent10TEventCode @ 14 NONAME
-	_ZN27CGlxMediaListCommandHandler16DynInitMenuPaneLEiP12CEikMenuPane @ 15 NONAME
+	_ZN27CGlxMediaListCommandHandler16DynInitMenuPaneLEiP12CEikMenuPanei @ 15 NONAME
 	_ZN27CGlxMediaListCommandHandler18DoDynInitMenuPaneLEiP12CEikMenuPane @ 16 NONAME
 	_ZN27CGlxMediaListCommandHandler19PreDynInitMenuPaneLEi @ 17 NONAME
 	_ZN27CGlxMediaListCommandHandler8ExecuteLEi @ 18 NONAME
@@ -62,20 +62,20 @@
 	_ZNK28CGlxMpxCommandCommandHandler23ConfirmationNoteSingleLEiR13MGlxMediaList @ 61 NONAME
 	_ZNK28CGlxMpxCommandCommandHandler25ConfirmationNoteMultipleLEiR13MGlxMediaList @ 62 NONAME
 	_ZNK28CGlxMpxCommandCommandHandler8OkToExitEv @ 63 NONAME
-	_ZTI18CGlxCommandHandler @ 64 NONAME ; #<TI>#
-	_ZTI27CGlxMediaListCommandHandler @ 65 NONAME ; #<TI>#
-	_ZTI28CGlxMpxCommandCommandHandler @ 66 NONAME ; #<TI>#
-	_ZTV18CGlxCommandHandler @ 67 NONAME ; #<VT>#
-	_ZTV27CGlxMediaListCommandHandler @ 68 NONAME ; #<VT>#
-	_ZTV28CGlxMpxCommandCommandHandler @ 69 NONAME ; #<VT>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler12HandleMediaLEiP13MGlxMediaList @ 70 NONAME ; #<thunk>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 71 NONAME ; #<thunk>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 72 NONAME ; #<thunk>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler18HandleItemRemovedLEiiP13MGlxMediaList @ 73 NONAME ; #<thunk>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler19HandleFocusChangedLEN12NGlxListDefs16TFocusChangeTypeEiiP13MGlxMediaList @ 74 NONAME ; #<thunk>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler19HandleItemModifiedLERK6RArrayIiEP13MGlxMediaList @ 75 NONAME ; #<thunk>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler19HandleItemSelectedLEiiP13MGlxMediaList @ 76 NONAME ; #<thunk>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler22HandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 77 NONAME ; #<thunk>#
-	_ZThn48_N28CGlxMpxCommandCommandHandler26HandleAttributesAvailableLEiRK6RArrayI13TMPXAttributeEP13MGlxMediaList @ 78 NONAME ; #<thunk>#
-	_ZThn52_N28CGlxMpxCommandCommandHandler16DialogDismissedLEi @ 79 NONAME ; #<thunk>#
+	_ZTI18CGlxCommandHandler @ 64 NONAME
+	_ZTI27CGlxMediaListCommandHandler @ 65 NONAME
+	_ZTI28CGlxMpxCommandCommandHandler @ 66 NONAME
+	_ZTV18CGlxCommandHandler @ 67 NONAME
+	_ZTV27CGlxMediaListCommandHandler @ 68 NONAME
+	_ZTV28CGlxMpxCommandCommandHandler @ 69 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler12HandleMediaLEiP13MGlxMediaList @ 70 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 71 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 72 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler18HandleItemRemovedLEiiP13MGlxMediaList @ 73 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler19HandleFocusChangedLEN12NGlxListDefs16TFocusChangeTypeEiiP13MGlxMediaList @ 74 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler19HandleItemModifiedLERK6RArrayIiEP13MGlxMediaList @ 75 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler19HandleItemSelectedLEiiP13MGlxMediaList @ 76 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler22HandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 77 NONAME
+	_ZThn48_N28CGlxMpxCommandCommandHandler26HandleAttributesAvailableLEiRK6RArrayI13TMPXAttributeEP13MGlxMediaList @ 78 NONAME
+	_ZThn52_N28CGlxMpxCommandCommandHandler16DialogDismissedLEi @ 79 NONAME
 
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h	Tue Apr 27 16:37:53 2010 +0300
@@ -51,8 +51,10 @@
 	 * Modify a menu before it is displayed.
 	 * @param aResourceId The resource ID of the menu
 	 * @param aMenuPane The in-memory representation of the menu pane
+ 	 * @param aIsBrowseMode ETrue if in grid view
 	 */
-	virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane) = 0;
+	virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane,
+                                   TBool aIsBrowseMode) = 0;
 
 	/**
 	 * Called when the owning view is activated
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/inc/glxmedialistcommandhandler.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/inc/glxmedialistcommandhandler.h	Tue Apr 27 16:37:53 2010 +0300
@@ -161,7 +161,8 @@
     IMPORT_C virtual TBool ExecuteL(TInt aCommand);
 
     /// See @ref MGlxCommandHandler::DynInitMenuPaneL */
-    IMPORT_C virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+    IMPORT_C virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane,
+                                            TBool aIsBrowseMode);
     
     /**
      * See @ref MGlxCommandHandler::Deactivate 
@@ -328,6 +329,17 @@
     void GetRequiredAttributesL(RArray< TMPXAttribute >& aAttributes, 
                                      TBool aFilterUsingSelection) const;
     
+	/**
+     * Check if the command handler is currently disabled in browse mode
+  	 * @param aCommandId command ID of the command.
+	 * @param aMediaList Medialist instance to check the counts
+ 	 * @param aIsContextItem ETrue if the current item is an context menu item.
+     */
+    TBool CGlxMediaListCommandHandler::CheckDisabledForBrowseModeL(
+													TInt aCommandId, 
+										            MGlxMediaList& aMediaList,
+													TBool aIsContextItem);
+    
 private:
 
     /** Provider of media list */
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -155,7 +155,7 @@
 // -----------------------------------------------------------------------------
 //	
 EXPORT_C void CGlxMediaListCommandHandler::DynInitMenuPaneL(TInt aResourceId, 
-        CEikMenuPane* aMenuPane)
+        CEikMenuPane* aMenuPane, TBool aIsBrowseMode)
 	{
 	if ( aMenuPane )
 	    {
@@ -175,8 +175,31 @@
 
         	    // Check if the menu command is know to this command handler
         	    if ( IsSupported( item.iCommandId ) )
-        	        {
-        	        TBool isDisabled = IsDisabledL(item.iCommandId, MediaList());
+        	        { 
+                    TBool isDisabled = EFalse;
+					//If we are in grid view check whether to disable the item
+					//with a light weight API, since the API IsDisabledL( )
+					//takes time to execute randomly over the time, which is
+					//not predictable. This is not be required for list view
+					//since it has only 2-3 commands and there are no AIW 
+					//menu.                        
+                    if(aIsBrowseMode)
+                        {
+                        TBool isContextItem = EFalse;
+    					//Check whether its a context menu item.
+                        if(item.iFlags & EEikMenuItemSpecific)
+                            {
+                            isContextItem = ETrue;
+                            }
+							
+                        isDisabled = CheckDisabledForBrowseModeL(item.iCommandId, 
+                                MediaList(), isContextItem);
+                        }
+                    else
+                        {
+                        isDisabled = IsDisabledL(item.iCommandId, MediaList());
+                        }
+                    
         	        // Check visibility of the menu item
     				aMenuPane->SetItemDimmed( item.iCommandId, isDisabled);
     				
@@ -239,10 +262,12 @@
             		                TBool aFilterUsingCommandId,
                                     TInt aCommandId) const
     {
+    CleanupClosePushL(aAttributes);
     if (!aFilterUsingCommandId || IsSupported(aCommandId))
     	{
     	GetRequiredAttributesL(aAttributes, aFilterUsingSelection);
     	}
+    CleanupStack::Pop(&aAttributes);    
     }
     
 // -----------------------------------------------------------------------------
@@ -645,3 +670,61 @@
     	
     DoGetRequiredAttributesL(aAttributes, aFilterUsingSelection);
 	}
+
+// -----------------------------------------------------------------------------
+// Check if the command should be disabled/enabled for grid view
+// -----------------------------------------------------------------------------
+//  
+TBool CGlxMediaListCommandHandler::CheckDisabledForBrowseModeL(TInt aCommandId, 
+        MGlxMediaList& aMediaList, TBool aIsContextItem)
+        
+    {    
+    TInt mlCount = aMediaList.Count();
+    TInt selectionCount = aMediaList.SelectionCount();
+    
+    if(mlCount<=0)
+        {
+		//If no items are present then enable Help and Exit in options
+        if(aCommandId != EAknCmdHelp &&
+                aCommandId != EAknCmdExit)
+            {
+            return ETrue;
+            }        
+        }
+		//If count is >0 and if its context menu item then enable them
+		//always, Since all the items are static it would not affect
+		//the normal behaviour present earlier.
+    else if(aIsContextItem)
+        {
+        return EFalse;
+        }
+		//If selectionCount is 0 then enable only slideshow, markall
+		//help and exit as present currently.		
+    else if((selectionCount == 0) && 
+            (aCommandId != EAknCmdHelp &&
+            aCommandId != EAknCmdExit &&
+            aCommandId != EGlxCmdSlideshow &&
+            aCommandId != EAknMarkAll &&
+            aCommandId != EGlxCmdSlideshowPlay &&
+            aCommandId != EGlxCmdSlideshowSettings))
+        {
+        return ETrue;
+        }
+		//If selectionCount is same as media count then disable
+		//Markall and Details view. If only one item is present
+		//then only disable MarkAll.				
+    else if((selectionCount == mlCount) && 
+            (aCommandId == EAknMarkAll ||
+            (aCommandId == EGlxCmdDetails && mlCount>1)))
+        {
+        return ETrue;
+        }             
+		//If selectionCount > 1 then disable Details view.
+    else if((selectionCount > 1) &&
+            (aCommandId == EGlxCmdDetails))
+        {
+        return ETrue;
+        }       
+           
+    return EFalse;
+    }
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/bwins/glxcommoncommandhandlersu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/bwins/glxcommoncommandhandlersu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -1,66 +1,66 @@
 EXPORTS
-	?NewL@CGlxCommandHandlerHelp@@SAPAV1@VTGlxHelpContext@@@Z @ 1 NONAME ; class CGlxCommandHandlerHelp * CGlxCommandHandlerHelp::NewL(class TGlxHelpContext)
-	?HandleItemAddedL@CGlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 2 NONAME ; void CGlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *)
-	?ExecuteLD@CGlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 3 NONAME ; int CGlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &)
-	??1CGlxCommandHandlerFilterImagesOrVideos@@UAE@XZ @ 4 NONAME ; CGlxCommandHandlerFilterImagesOrVideos::~CGlxCommandHandlerFilterImagesOrVideos(void)
-	?OfferKeyEventL@CGlxSingleGraphicPopupMenuStyleListBox@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 5 NONAME ; enum TKeyResponse CGlxSingleGraphicPopupMenuStyleListBox::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	??0CGlxMediaListAdaptor@@QAE@PBVMGlxMediaList@@H@Z @ 6 NONAME ; CGlxMediaListAdaptor::CGlxMediaListAdaptor(class MGlxMediaList const *, int)
-	?NewL@CGlxCommandHandlerUpload@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 7 NONAME ; class CGlxCommandHandlerUpload * CGlxCommandHandlerUpload::NewL(class MGlxMediaListProvider *, int)
-	?NewL@CGlxCommandHandlerRename@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 8 NONAME ; class CGlxCommandHandlerRename * CGlxCommandHandlerRename::NewL(class MGlxMediaListProvider *, int)
-	?NewL@CGlxCommandHandlerSend@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 9 NONAME ; class CGlxCommandHandlerSend * CGlxCommandHandlerSend::NewL(class MGlxMediaListProvider *, int)
-	??1CGlxCommandHandlerUpload@@UAE@XZ @ 10 NONAME ; CGlxCommandHandlerUpload::~CGlxCommandHandlerUpload(void)
-	??1CGlxCommandHandlerNewMedia@@UAE@XZ @ 11 NONAME ; CGlxCommandHandlerNewMedia::~CGlxCommandHandlerNewMedia(void)
-	??1CGlxCommandHandlerSlideshow@@UAE@XZ @ 12 NONAME ; CGlxCommandHandlerSlideshow::~CGlxCommandHandlerSlideshow(void)
-	?NewL@CGlxCommandHandlerAiwShowMap@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 13 NONAME ; class CGlxCommandHandlerAiwShowMap * CGlxCommandHandlerAiwShowMap::NewL(class MGlxMediaListProvider *, int)
-	??1CGlxCommandHandlerSave@@UAE@XZ @ 14 NONAME ; CGlxCommandHandlerSave::~CGlxCommandHandlerSave(void)
-	?NewL@CGlxCommandHandlerDelete@@SAPAV1@PAVMGlxMediaListProvider@@HH@Z @ 15 NONAME ; class CGlxCommandHandlerDelete * CGlxCommandHandlerDelete::NewL(class MGlxMediaListProvider *, int, int)
-	??1CGlxCommandHandlerAddToContainer@@UAE@XZ @ 16 NONAME ; CGlxCommandHandlerAddToContainer::~CGlxCommandHandlerAddToContainer(void)
-	??0CGlxMediaSelectionPopup@@QAE@XZ @ 17 NONAME ; CGlxMediaSelectionPopup::CGlxMediaSelectionPopup(void)
-	?NewL@CGlxCommandHandlerRotate@@SAPAV1@PAVMGlxMediaListProvider@@PAVMGlxLayoutOwner@@H@Z @ 18 NONAME ; class CGlxCommandHandlerRotate * CGlxCommandHandlerRotate::NewL(class MGlxMediaListProvider *, class MGlxLayoutOwner *, int)
-	?NewL@CGlxCommandHandlerNewMedia@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 19 NONAME ; class CGlxCommandHandlerNewMedia * CGlxCommandHandlerNewMedia::NewL(class MGlxMediaListProvider *)
-	?ExecuteLD@CGlxMediaSelectionPopup@@QAEPAVCMPXCollectionPath@@AAV2@AAHHHPAVCMPXMedia@@@Z @ 20 NONAME ; class CMPXCollectionPath * CGlxMediaSelectionPopup::ExecuteLD(class CMPXCollectionPath &, int &, int, int, class CMPXMedia *)
-	?NewL@CGlxCommandHandlerCopyAndMove@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 21 NONAME ; class CGlxCommandHandlerCopyAndMove * CGlxCommandHandlerCopyAndMove::NewL(class MGlxMediaListProvider *, int)
-	?OkToExit@CGlxCommandHandlerNewMedia@@UBEHXZ @ 22 NONAME ; int CGlxCommandHandlerNewMedia::OkToExit(void) const
-	??1CGlxCommandHandlerBack@@UAE@XZ @ 23 NONAME ; CGlxCommandHandlerBack::~CGlxCommandHandlerBack(void)
-	?NewPreviousViewCommandHandlerL@CGlxCommandHandlerBack@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 24 NONAME ; class CGlxCommandHandlerBack * CGlxCommandHandlerBack::NewPreviousViewCommandHandlerL(class MGlxMediaListProvider *)
-	??1CGlxCommandHandlerCopyAndMove@@UAE@XZ @ 25 NONAME ; CGlxCommandHandlerCopyAndMove::~CGlxCommandHandlerCopyAndMove(void)
-	??1CGlxCommandHandlerAiwEdit@@UAE@XZ @ 26 NONAME ; CGlxCommandHandlerAiwEdit::~CGlxCommandHandlerAiwEdit(void)
-	?SetContainerId@CGlxCommandHandlerRemoveFrom@@QAEXVTGlxMediaId@@@Z @ 27 NONAME ; void CGlxCommandHandlerRemoveFrom::SetContainerId(class TGlxMediaId)
-	?NewL@CGlxCommandHandlerVideoPlayback@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 28 NONAME ; class CGlxCommandHandlerVideoPlayback * CGlxCommandHandlerVideoPlayback::NewL(class MGlxMediaListProvider *)
-	?MdcaCount@CGlxMediaListAdaptor@@UBEHXZ @ 29 NONAME ; int CGlxMediaListAdaptor::MdcaCount(void) const
-	??0TGlxHelpContext@@QAE@XZ @ 30 NONAME ; TGlxHelpContext::TGlxHelpContext(void)
-	??1CGlxCommandHandlerSortOrder@@UAE@XZ @ 31 NONAME ; CGlxCommandHandlerSortOrder::~CGlxCommandHandlerSortOrder(void)
-	?NewL@CGlxCommandHandlerFilterImagesOrVideos@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 32 NONAME ; class CGlxCommandHandlerFilterImagesOrVideos * CGlxCommandHandlerFilterImagesOrVideos::NewL(class MGlxMediaListProvider *)
-	??1CGlxCommandHandlerRemoveFrom@@UAE@XZ @ 33 NONAME ; CGlxCommandHandlerRemoveFrom::~CGlxCommandHandlerRemoveFrom(void)
-	?NewL@CGlxCommandHandlerAiwShowMapHardKey@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 34 NONAME ; class CGlxCommandHandlerAiwShowMapHardKey * CGlxCommandHandlerAiwShowMapHardKey::NewL(class MGlxMediaListProvider *, int)
-	?NewL@CGlxCommandHandlerHideUi@@SAPAV1@XZ @ 35 NONAME ; class CGlxCommandHandlerHideUi * CGlxCommandHandlerHideUi::NewL(void)
-	?NewL@CGlxCommandHandlerAiwAssign@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 36 NONAME ; class CGlxCommandHandlerAiwAssign * CGlxCommandHandlerAiwAssign::NewL(class MGlxMediaListProvider *, int)
-	??1CGlxCommandHandlerSend@@UAE@XZ @ 37 NONAME ; CGlxCommandHandlerSend::~CGlxCommandHandlerSend(void)
-	?NewAddToAlbumSingleClickCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 38 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToAlbumSingleClickCommandHandlerL(class MGlxMediaListProvider *, int)
-	?NewAddToTagCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 39 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL(class MGlxMediaListProvider *, int)
-	?NewL@CGlxCommandHandlerOpen@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 40 NONAME ; class CGlxCommandHandlerOpen * CGlxCommandHandlerOpen::NewL(class MGlxMediaListProvider *)
-	??1CGlxCommandHandlerDelete@@UAE@XZ @ 41 NONAME ; CGlxCommandHandlerDelete::~CGlxCommandHandlerDelete(void)
-	??1CGlxCommandHandlerDetails@@UAE@XZ @ 42 NONAME ; CGlxCommandHandlerDetails::~CGlxCommandHandlerDetails(void)
-	??1CGlxCommandHandlerDownload@@UAE@XZ @ 43 NONAME ; CGlxCommandHandlerDownload::~CGlxCommandHandlerDownload(void)
-	?NewL@CGlxCommandHandlerSave@@SAPAV1@XZ @ 44 NONAME ; class CGlxCommandHandlerSave * CGlxCommandHandlerSave::NewL(void)
-	??1CGlxCommandHandlerOpen@@UAE@XZ @ 45 NONAME ; CGlxCommandHandlerOpen::~CGlxCommandHandlerOpen(void)
-	?NewL@CGlxCommandHandlerSlideshow@@SAPAV1@PAVMGlxMediaListProvider@@HH@Z @ 46 NONAME ; class CGlxCommandHandlerSlideshow * CGlxCommandHandlerSlideshow::NewL(class MGlxMediaListProvider *, int, int)
-	?NewL@CGlxCommandHandlerAiwShareOnOvi@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 47 NONAME ; class CGlxCommandHandlerAiwShareOnOvi * CGlxCommandHandlerAiwShareOnOvi::NewL(class MGlxMediaListProvider *, int)
-	?NewAddToTagSingleClickCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 48 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToTagSingleClickCommandHandlerL(class MGlxMediaListProvider *, int)
-	?NewAddToAlbumCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 49 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL(class MGlxMediaListProvider *, int)
+	?NewL@CGlxCommandHandlerAiwAssign@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 1 NONAME ; class CGlxCommandHandlerAiwAssign * CGlxCommandHandlerAiwAssign::NewL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?NewL@CGlxCommandHandlerHelp@@SAPAV1@VTGlxHelpContext@@@Z @ 2 NONAME ; class CGlxCommandHandlerHelp * CGlxCommandHandlerHelp::NewL(class TGlxHelpContext)
+	?NewAddToAlbumSingleClickCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 3 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToAlbumSingleClickCommandHandlerL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?HandleItemAddedL@CGlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 4 NONAME ; void CGlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *)
+	?ExecuteLD@CGlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 5 NONAME ; int CGlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &)
+	??1CGlxCommandHandlerFilterImagesOrVideos@@UAE@XZ @ 6 NONAME ; CGlxCommandHandlerFilterImagesOrVideos::~CGlxCommandHandlerFilterImagesOrVideos(void)
+	?OfferKeyEventL@CGlxSingleGraphicPopupMenuStyleListBox@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 7 NONAME ; enum TKeyResponse CGlxSingleGraphicPopupMenuStyleListBox::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?NewL@CGlxCommandHandlerNewMedia@@SAPAV1@PAVMGlxMediaListProvider@@ABVTDesC16@@@Z @ 8 NONAME ; class CGlxCommandHandlerNewMedia * CGlxCommandHandlerNewMedia::NewL(class MGlxMediaListProvider *, class TDesC16 const &)
+	?NewL@CGlxCommandHandlerRemoveFrom@@SAPAV1@PAVMGlxMediaListProvider@@W4TMPXGeneralCategory@@ABVTDesC16@@@Z @ 9 NONAME ; class CGlxCommandHandlerRemoveFrom * CGlxCommandHandlerRemoveFrom::NewL(class MGlxMediaListProvider *, enum TMPXGeneralCategory, class TDesC16 const &)
+	??0CGlxMediaListAdaptor@@QAE@PBVMGlxMediaList@@H@Z @ 10 NONAME ; CGlxMediaListAdaptor::CGlxMediaListAdaptor(class MGlxMediaList const *, int)
+	?NewL@CGlxCommandHandlerUpload@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 11 NONAME ; class CGlxCommandHandlerUpload * CGlxCommandHandlerUpload::NewL(class MGlxMediaListProvider *, int)
+	??1CGlxCommandHandlerUpload@@UAE@XZ @ 12 NONAME ; CGlxCommandHandlerUpload::~CGlxCommandHandlerUpload(void)
+	??1CGlxCommandHandlerNewMedia@@UAE@XZ @ 13 NONAME ; CGlxCommandHandlerNewMedia::~CGlxCommandHandlerNewMedia(void)
+	?NewL@CGlxCommandHandlerAiwPrintPreview@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 14 NONAME ; class CGlxCommandHandlerAiwPrintPreview * CGlxCommandHandlerAiwPrintPreview::NewL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	??1CGlxCommandHandlerSlideshow@@UAE@XZ @ 15 NONAME ; CGlxCommandHandlerSlideshow::~CGlxCommandHandlerSlideshow(void)
+	??1CGlxCommandHandlerSave@@UAE@XZ @ 16 NONAME ; CGlxCommandHandlerSave::~CGlxCommandHandlerSave(void)
+	?NewAddToFavCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 17 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	??1CGlxCommandHandlerAddToContainer@@UAE@XZ @ 18 NONAME ; CGlxCommandHandlerAddToContainer::~CGlxCommandHandlerAddToContainer(void)
+	??0CGlxMediaSelectionPopup@@QAE@XZ @ 19 NONAME ; CGlxMediaSelectionPopup::CGlxMediaSelectionPopup(void)
+	?NewL@CGlxCommandHandlerRotate@@SAPAV1@PAVMGlxMediaListProvider@@PAVMGlxLayoutOwner@@H@Z @ 20 NONAME ; class CGlxCommandHandlerRotate * CGlxCommandHandlerRotate::NewL(class MGlxMediaListProvider *, class MGlxLayoutOwner *, int)
+	?NewAddToTagSingleClickCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 21 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToTagSingleClickCommandHandlerL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?ExecuteLD@CGlxMediaSelectionPopup@@QAEPAVCMPXCollectionPath@@AAV2@AAHHHPAVCMPXMedia@@@Z @ 22 NONAME ; class CMPXCollectionPath * CGlxMediaSelectionPopup::ExecuteLD(class CMPXCollectionPath &, int &, int, int, class CMPXMedia *)
+	?NewL@CGlxCommandHandlerSend@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 23 NONAME ; class CGlxCommandHandlerSend * CGlxCommandHandlerSend::NewL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?OkToExit@CGlxCommandHandlerNewMedia@@UBEHXZ @ 24 NONAME ; int CGlxCommandHandlerNewMedia::OkToExit(void) const
+	?NewL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@HHABVTDesC16@@@Z @ 25 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewL(class MGlxMediaListProvider *, int, int, class TDesC16 const &)
+	??1CGlxCommandHandlerBack@@UAE@XZ @ 26 NONAME ; CGlxCommandHandlerBack::~CGlxCommandHandlerBack(void)
+	?NewPreviousViewCommandHandlerL@CGlxCommandHandlerBack@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 27 NONAME ; class CGlxCommandHandlerBack * CGlxCommandHandlerBack::NewPreviousViewCommandHandlerL(class MGlxMediaListProvider *)
+	??1CGlxCommandHandlerCopyAndMove@@UAE@XZ @ 28 NONAME ; CGlxCommandHandlerCopyAndMove::~CGlxCommandHandlerCopyAndMove(void)
+	??1CGlxCommandHandlerAiwEdit@@UAE@XZ @ 29 NONAME ; CGlxCommandHandlerAiwEdit::~CGlxCommandHandlerAiwEdit(void)
+	?SetContainerId@CGlxCommandHandlerRemoveFrom@@QAEXVTGlxMediaId@@@Z @ 30 NONAME ; void CGlxCommandHandlerRemoveFrom::SetContainerId(class TGlxMediaId)
+	?NewL@CGlxCommandHandlerVideoPlayback@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 31 NONAME ; class CGlxCommandHandlerVideoPlayback * CGlxCommandHandlerVideoPlayback::NewL(class MGlxMediaListProvider *)
+	?MdcaCount@CGlxMediaListAdaptor@@UBEHXZ @ 32 NONAME ; int CGlxMediaListAdaptor::MdcaCount(void) const
+	??0TGlxHelpContext@@QAE@XZ @ 33 NONAME ; TGlxHelpContext::TGlxHelpContext(void)
+	??1CGlxCommandHandlerSortOrder@@UAE@XZ @ 34 NONAME ; CGlxCommandHandlerSortOrder::~CGlxCommandHandlerSortOrder(void)
+	?NewL@CGlxCommandHandlerFilterImagesOrVideos@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 35 NONAME ; class CGlxCommandHandlerFilterImagesOrVideos * CGlxCommandHandlerFilterImagesOrVideos::NewL(class MGlxMediaListProvider *)
+	??1CGlxCommandHandlerRemoveFrom@@UAE@XZ @ 36 NONAME ; CGlxCommandHandlerRemoveFrom::~CGlxCommandHandlerRemoveFrom(void)
+	?NewL@CGlxCommandHandlerAiwShowMapHardKey@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 37 NONAME ; class CGlxCommandHandlerAiwShowMapHardKey * CGlxCommandHandlerAiwShowMapHardKey::NewL(class MGlxMediaListProvider *, int)
+	?NewL@CGlxCommandHandlerHideUi@@SAPAV1@XZ @ 38 NONAME ; class CGlxCommandHandlerHideUi * CGlxCommandHandlerHideUi::NewL(void)
+	??1CGlxCommandHandlerSend@@UAE@XZ @ 39 NONAME ; CGlxCommandHandlerSend::~CGlxCommandHandlerSend(void)
+	?NewL@CGlxCommandHandlerAiwShowMap@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 40 NONAME ; class CGlxCommandHandlerAiwShowMap * CGlxCommandHandlerAiwShowMap::NewL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?NewL@CGlxCommandHandlerOpen@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 41 NONAME ; class CGlxCommandHandlerOpen * CGlxCommandHandlerOpen::NewL(class MGlxMediaListProvider *)
+	??1CGlxCommandHandlerDelete@@UAE@XZ @ 42 NONAME ; CGlxCommandHandlerDelete::~CGlxCommandHandlerDelete(void)
+	??1CGlxCommandHandlerDetails@@UAE@XZ @ 43 NONAME ; CGlxCommandHandlerDetails::~CGlxCommandHandlerDetails(void)
+	??1CGlxCommandHandlerDownload@@UAE@XZ @ 44 NONAME ; CGlxCommandHandlerDownload::~CGlxCommandHandlerDownload(void)
+	?NewAddToTagCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 45 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?NewL@CGlxCommandHandlerSave@@SAPAV1@XZ @ 46 NONAME ; class CGlxCommandHandlerSave * CGlxCommandHandlerSave::NewL(void)
+	?NewL@CGlxCommandHandlerCopyAndMove@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 47 NONAME ; class CGlxCommandHandlerCopyAndMove * CGlxCommandHandlerCopyAndMove::NewL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?NewL@CGlxCommandHandlerDelete@@SAPAV1@PAVMGlxMediaListProvider@@HHABVTDesC16@@@Z @ 48 NONAME ; class CGlxCommandHandlerDelete * CGlxCommandHandlerDelete::NewL(class MGlxMediaListProvider *, int, int, class TDesC16 const &)
+	??1CGlxCommandHandlerOpen@@UAE@XZ @ 49 NONAME ; CGlxCommandHandlerOpen::~CGlxCommandHandlerOpen(void)
 	??1CGlxCommandHandlerRename@@UAE@XZ @ 50 NONAME ; CGlxCommandHandlerRename::~CGlxCommandHandlerRename(void)
 	??1CGlxCommandHandlerVideoPlayback@@UAE@XZ @ 51 NONAME ; CGlxCommandHandlerVideoPlayback::~CGlxCommandHandlerVideoPlayback(void)
 	?MdcaPoint@CGlxMediaListAdaptor@@UBE?AVTPtrC16@@H@Z @ 52 NONAME ; class TPtrC16 CGlxMediaListAdaptor::MdcaPoint(int) const
-	?NewL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@HH@Z @ 53 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewL(class MGlxMediaListProvider *, int, int)
+	?NewAddToAlbumCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 53 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL(class MGlxMediaListProvider *, int, class TDesC16 const &)
 	?NewL@CGlxCommandHandlerDownload@@SAPAV1@XZ @ 54 NONAME ; class CGlxCommandHandlerDownload * CGlxCommandHandlerDownload::NewL(void)
-	??1CGlxCommandHandlerHelp@@UAE@XZ @ 55 NONAME ; CGlxCommandHandlerHelp::~CGlxCommandHandlerHelp(void)
-	?BypassFiltersForExecute@CGlxCommandHandlerNewMedia@@UBEHXZ @ 56 NONAME ; int CGlxCommandHandlerNewMedia::BypassFiltersForExecute(void) const
-	?NewL@CGlxCommandHandlerRemoveFrom@@SAPAV1@PAVMGlxMediaListProvider@@W4TMPXGeneralCategory@@@Z @ 57 NONAME ; class CGlxCommandHandlerRemoveFrom * CGlxCommandHandlerRemoveFrom::NewL(class MGlxMediaListProvider *, enum TMPXGeneralCategory)
-	?NewL@CGlxCommandHandlerDetails@@SAPAV1@PAVMGlxMediaListProvider@@@Z @ 58 NONAME ; class CGlxCommandHandlerDetails * CGlxCommandHandlerDetails::NewL(class MGlxMediaListProvider *)
-	?NewL@CGlxCommandHandlerAiwPrintPreview@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 59 NONAME ; class CGlxCommandHandlerAiwPrintPreview * CGlxCommandHandlerAiwPrintPreview::NewL(class MGlxMediaListProvider *, int)
-	?NewL@CGlxCommandHandlerSortOrder@@SAPAV1@PAVMGlxMediaListProvider@@K@Z @ 60 NONAME ; class CGlxCommandHandlerSortOrder * CGlxCommandHandlerSortOrder::NewL(class MGlxMediaListProvider *, unsigned long)
+	?NewL@CGlxCommandHandlerDetails@@SAPAV1@PAVMGlxMediaListProvider@@ABVTDesC16@@@Z @ 55 NONAME ; class CGlxCommandHandlerDetails * CGlxCommandHandlerDetails::NewL(class MGlxMediaListProvider *, class TDesC16 const &)
+	??1CGlxCommandHandlerHelp@@UAE@XZ @ 56 NONAME ; CGlxCommandHandlerHelp::~CGlxCommandHandlerHelp(void)
+	?BypassFiltersForExecute@CGlxCommandHandlerNewMedia@@UBEHXZ @ 57 NONAME ; int CGlxCommandHandlerNewMedia::BypassFiltersForExecute(void) const
+	?NewL@CGlxCommandHandlerAiwShareOnOvi@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 58 NONAME ; class CGlxCommandHandlerAiwShareOnOvi * CGlxCommandHandlerAiwShareOnOvi::NewL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?NewL@CGlxCommandHandlerSortOrder@@SAPAV1@PAVMGlxMediaListProvider@@K@Z @ 59 NONAME ; class CGlxCommandHandlerSortOrder * CGlxCommandHandlerSortOrder::NewL(class MGlxMediaListProvider *, unsigned long)
+	?NewL@CGlxCommandHandlerSlideshow@@SAPAV1@PAVMGlxMediaListProvider@@HHABVTDesC16@@@Z @ 60 NONAME ; class CGlxCommandHandlerSlideshow * CGlxCommandHandlerSlideshow::NewL(class MGlxMediaListProvider *, int, int, class TDesC16 const &)
 	?NewBackCommandHandlerL@CGlxCommandHandlerBack@@SAPAV1@XZ @ 61 NONAME ; class CGlxCommandHandlerBack * CGlxCommandHandlerBack::NewBackCommandHandlerL(void)
 	?NewL@CGlxCommandHandlerAiwEdit@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 62 NONAME ; class CGlxCommandHandlerAiwEdit * CGlxCommandHandlerAiwEdit::NewL(class MGlxMediaListProvider *, int)
-	?NewContainerPreviousViewCommandHandlerL@CGlxCommandHandlerBack@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 63 NONAME ; class CGlxCommandHandlerBack * CGlxCommandHandlerBack::NewContainerPreviousViewCommandHandlerL(class MGlxMediaListProvider *, int)
-	?NewAddToFavCommandHandlerL@CGlxCommandHandlerAddToContainer@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 64 NONAME ; class CGlxCommandHandlerAddToContainer * CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL(class MGlxMediaListProvider *, int)
+	?NewL@CGlxCommandHandlerRename@@SAPAV1@PAVMGlxMediaListProvider@@HABVTDesC16@@@Z @ 63 NONAME ; class CGlxCommandHandlerRename * CGlxCommandHandlerRename::NewL(class MGlxMediaListProvider *, int, class TDesC16 const &)
+	?NewContainerPreviousViewCommandHandlerL@CGlxCommandHandlerBack@@SAPAV1@PAVMGlxMediaListProvider@@H@Z @ 64 NONAME ; class CGlxCommandHandlerBack * CGlxCommandHandlerBack::NewContainerPreviousViewCommandHandlerL(class MGlxMediaListProvider *, int)
 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/eabi/glxcommoncommandhandlersu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/eabi/glxcommoncommandhandlersu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -21,19 +21,19 @@
 	_ZN22CGlxCommandHandlerSaveD0Ev @ 20 NONAME
 	_ZN22CGlxCommandHandlerSaveD1Ev @ 21 NONAME
 	_ZN22CGlxCommandHandlerSaveD2Ev @ 22 NONAME
-	_ZN22CGlxCommandHandlerSend4NewLEP21MGlxMediaListProvideri @ 23 NONAME
+	_ZN22CGlxCommandHandlerSend4NewLEP21MGlxMediaListProvideriRK7TDesC16 @ 23 NONAME
 	_ZN22CGlxCommandHandlerSendD0Ev @ 24 NONAME
 	_ZN22CGlxCommandHandlerSendD1Ev @ 25 NONAME
 	_ZN22CGlxCommandHandlerSendD2Ev @ 26 NONAME
 	_ZN23CGlxMediaSelectionPopup9ExecuteLDER18CMPXCollectionPathRiiiP9CMPXMedia @ 27 NONAME
 	_ZN23CGlxMediaSelectionPopupC1Ev @ 28 NONAME
 	_ZN23CGlxMediaSelectionPopupC2Ev @ 29 NONAME
-	_ZN24CGlxCommandHandlerDelete4NewLEP21MGlxMediaListProviderii @ 30 NONAME
+	_ZN24CGlxCommandHandlerDelete4NewLEP21MGlxMediaListProvideriiRK7TDesC16 @ 30 NONAME
 	_ZN24CGlxCommandHandlerDeleteD0Ev @ 31 NONAME
 	_ZN24CGlxCommandHandlerDeleteD1Ev @ 32 NONAME
 	_ZN24CGlxCommandHandlerDeleteD2Ev @ 33 NONAME
 	_ZN24CGlxCommandHandlerHideUi4NewLEv @ 34 NONAME
-	_ZN24CGlxCommandHandlerRename4NewLEP21MGlxMediaListProvideri @ 35 NONAME
+	_ZN24CGlxCommandHandlerRename4NewLEP21MGlxMediaListProvideriRK7TDesC16 @ 35 NONAME
 	_ZN24CGlxCommandHandlerRenameD0Ev @ 36 NONAME
 	_ZN24CGlxCommandHandlerRenameD1Ev @ 37 NONAME
 	_ZN24CGlxCommandHandlerRenameD2Ev @ 38 NONAME
@@ -46,7 +46,7 @@
 	_ZN25CGlxCommandHandlerAiwEditD0Ev @ 45 NONAME
 	_ZN25CGlxCommandHandlerAiwEditD1Ev @ 46 NONAME
 	_ZN25CGlxCommandHandlerAiwEditD2Ev @ 47 NONAME
-	_ZN25CGlxCommandHandlerDetails4NewLEP21MGlxMediaListProvider @ 48 NONAME
+	_ZN25CGlxCommandHandlerDetails4NewLEP21MGlxMediaListProviderRK7TDesC16 @ 48 NONAME
 	_ZN25CGlxCommandHandlerDetailsD0Ev @ 49 NONAME
 	_ZN25CGlxCommandHandlerDetailsD1Ev @ 50 NONAME
 	_ZN25CGlxCommandHandlerDetailsD2Ev @ 51 NONAME
@@ -55,13 +55,13 @@
 	_ZN26CGlxCommandHandlerDownloadD1Ev @ 54 NONAME
 	_ZN26CGlxCommandHandlerDownloadD2Ev @ 55 NONAME
 	_ZN26CGlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 56 NONAME
-	_ZN26CGlxCommandHandlerNewMedia4NewLEP21MGlxMediaListProvider @ 57 NONAME
+	_ZN26CGlxCommandHandlerNewMedia4NewLEP21MGlxMediaListProviderRK7TDesC16 @ 57 NONAME
 	_ZN26CGlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 58 NONAME
 	_ZN26CGlxCommandHandlerNewMediaD0Ev @ 59 NONAME
 	_ZN26CGlxCommandHandlerNewMediaD1Ev @ 60 NONAME
 	_ZN26CGlxCommandHandlerNewMediaD2Ev @ 61 NONAME
-	_ZN27CGlxCommandHandlerAiwAssign4NewLEP21MGlxMediaListProvideri @ 62 NONAME
-	_ZN27CGlxCommandHandlerSlideshow4NewLEP21MGlxMediaListProviderii @ 63 NONAME
+	_ZN27CGlxCommandHandlerAiwAssign4NewLEP21MGlxMediaListProvideriRK7TDesC16 @ 62 NONAME
+	_ZN27CGlxCommandHandlerSlideshow4NewLEP21MGlxMediaListProvideriiRK7TDesC16 @ 63 NONAME
 	_ZN27CGlxCommandHandlerSlideshowD0Ev @ 64 NONAME
 	_ZN27CGlxCommandHandlerSlideshowD1Ev @ 65 NONAME
 	_ZN27CGlxCommandHandlerSlideshowD2Ev @ 66 NONAME
@@ -69,31 +69,31 @@
 	_ZN27CGlxCommandHandlerSortOrderD0Ev @ 68 NONAME
 	_ZN27CGlxCommandHandlerSortOrderD1Ev @ 69 NONAME
 	_ZN27CGlxCommandHandlerSortOrderD2Ev @ 70 NONAME
-	_ZN28CGlxCommandHandlerAiwShowMap4NewLEP21MGlxMediaListProvideri @ 71 NONAME
+	_ZN28CGlxCommandHandlerAiwShowMap4NewLEP21MGlxMediaListProvideriRK7TDesC16 @ 71 NONAME
 	_ZN28CGlxCommandHandlerRemoveFrom14SetContainerIdE11TGlxMediaId @ 72 NONAME
-	_ZN28CGlxCommandHandlerRemoveFrom4NewLEP21MGlxMediaListProvider19TMPXGeneralCategory @ 73 NONAME
+	_ZN28CGlxCommandHandlerRemoveFrom4NewLEP21MGlxMediaListProvider19TMPXGeneralCategoryRK7TDesC16 @ 73 NONAME
 	_ZN28CGlxCommandHandlerRemoveFromD0Ev @ 74 NONAME
 	_ZN28CGlxCommandHandlerRemoveFromD1Ev @ 75 NONAME
 	_ZN28CGlxCommandHandlerRemoveFromD2Ev @ 76 NONAME
-	_ZN29CGlxCommandHandlerCopyAndMove4NewLEP21MGlxMediaListProvideri @ 77 NONAME
+	_ZN29CGlxCommandHandlerCopyAndMove4NewLEP21MGlxMediaListProvideriRK7TDesC16 @ 77 NONAME
 	_ZN29CGlxCommandHandlerCopyAndMoveD0Ev @ 78 NONAME
 	_ZN29CGlxCommandHandlerCopyAndMoveD1Ev @ 79 NONAME
 	_ZN29CGlxCommandHandlerCopyAndMoveD2Ev @ 80 NONAME
-	_ZN31CGlxCommandHandlerAiwShareOnOvi4NewLEP21MGlxMediaListProvideri @ 81 NONAME
+	_ZN31CGlxCommandHandlerAiwShareOnOvi4NewLEP21MGlxMediaListProvideriRK7TDesC16 @ 81 NONAME
 	_ZN31CGlxCommandHandlerVideoPlayback4NewLEP21MGlxMediaListProvider @ 82 NONAME
 	_ZN31CGlxCommandHandlerVideoPlaybackD0Ev @ 83 NONAME
 	_ZN31CGlxCommandHandlerVideoPlaybackD1Ev @ 84 NONAME
 	_ZN31CGlxCommandHandlerVideoPlaybackD2Ev @ 85 NONAME
-	_ZN32CGlxCommandHandlerAddToContainer26NewAddToFavCommandHandlerLEP21MGlxMediaListProvideri @ 86 NONAME
-	_ZN32CGlxCommandHandlerAddToContainer26NewAddToTagCommandHandlerLEP21MGlxMediaListProvideri @ 87 NONAME
-	_ZN32CGlxCommandHandlerAddToContainer28NewAddToAlbumCommandHandlerLEP21MGlxMediaListProvideri @ 88 NONAME
-	_ZN32CGlxCommandHandlerAddToContainer37NewAddToTagSingleClickCommandHandlerLEP21MGlxMediaListProvideri @ 89 NONAME
-	_ZN32CGlxCommandHandlerAddToContainer39NewAddToAlbumSingleClickCommandHandlerLEP21MGlxMediaListProvideri @ 90 NONAME
-	_ZN32CGlxCommandHandlerAddToContainer4NewLEP21MGlxMediaListProviderii @ 91 NONAME
+	_ZN32CGlxCommandHandlerAddToContainer26NewAddToFavCommandHandlerLEP21MGlxMediaListProvideriRK7TDesC16 @ 86 NONAME
+	_ZN32CGlxCommandHandlerAddToContainer26NewAddToTagCommandHandlerLEP21MGlxMediaListProvideriRK7TDesC16 @ 87 NONAME
+	_ZN32CGlxCommandHandlerAddToContainer28NewAddToAlbumCommandHandlerLEP21MGlxMediaListProvideriRK7TDesC16 @ 88 NONAME
+	_ZN32CGlxCommandHandlerAddToContainer37NewAddToTagSingleClickCommandHandlerLEP21MGlxMediaListProvideriRK7TDesC16 @ 89 NONAME
+	_ZN32CGlxCommandHandlerAddToContainer39NewAddToAlbumSingleClickCommandHandlerLEP21MGlxMediaListProvideriRK7TDesC16 @ 90 NONAME
+	_ZN32CGlxCommandHandlerAddToContainer4NewLEP21MGlxMediaListProvideriiRK7TDesC16 @ 91 NONAME
 	_ZN32CGlxCommandHandlerAddToContainerD0Ev @ 92 NONAME
 	_ZN32CGlxCommandHandlerAddToContainerD1Ev @ 93 NONAME
 	_ZN32CGlxCommandHandlerAddToContainerD2Ev @ 94 NONAME
-	_ZN33CGlxCommandHandlerAiwPrintPreview4NewLEP21MGlxMediaListProvideri @ 95 NONAME
+	_ZN33CGlxCommandHandlerAiwPrintPreview4NewLEP21MGlxMediaListProvideriRK7TDesC16 @ 95 NONAME
 	_ZN35CGlxCommandHandlerAiwShowMapHardKey4NewLEP21MGlxMediaListProvideri @ 96 NONAME
 	_ZN38CGlxCommandHandlerFilterImagesOrVideos4NewLEP21MGlxMediaListProvider @ 97 NONAME
 	_ZN38CGlxCommandHandlerFilterImagesOrVideosD0Ev @ 98 NONAME
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Tue Apr 27 16:37:53 2010 +0300
@@ -40,46 +40,63 @@
 	/** 
 	 * Create add to album command handler 
 	 * @param aMediaListProvider object that provides the media list.
+     * @param aFileName resource file
 	 */
-    IMPORT_C static CGlxCommandHandlerAddToContainer* NewAddToAlbumCommandHandlerL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem);
+    IMPORT_C static CGlxCommandHandlerAddToContainer
+			* NewAddToAlbumCommandHandlerL(
+					MGlxMediaListProvider* aMediaListProvider,
+					TBool aHasToolbarItem, const TDesC& aFileName);
 
 	/** 
 	 * Create add to album command handler for singleclick
 	 * @param aMediaListProvider object that provides the media list.
+     * @param aFileName resource file
 	 */
-    IMPORT_C static CGlxCommandHandlerAddToContainer* NewAddToAlbumSingleClickCommandHandlerL(
-            MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem);
+	IMPORT_C static CGlxCommandHandlerAddToContainer
+			* NewAddToAlbumSingleClickCommandHandlerL(
+					MGlxMediaListProvider* aMediaListProvider,
+					TBool aHasToolbarItem, const TDesC& aFileName);
 
      /** 
-     * Create add (to) tags command handler 
-     * @param aMediaListProvider object that provides the media list.
-     */
-    IMPORT_C static CGlxCommandHandlerAddToContainer* NewAddToTagCommandHandlerL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem);
+	 * Create add (to) tags command handler 
+	 * @param aMediaListProvider object that provides the media list.
+     * @param aFileName resource file
+	 */
+	IMPORT_C static CGlxCommandHandlerAddToContainer
+			* NewAddToTagCommandHandlerL(
+					MGlxMediaListProvider* aMediaListProvider,
+					TBool aHasToolbarItem, const TDesC& aFileName);
 
      /** 
-     * Create add (to) tags command handler for singleclick
-     * @param aMediaListProvider object that provides the media list.
-     */
-    IMPORT_C static CGlxCommandHandlerAddToContainer* NewAddToTagSingleClickCommandHandlerL(
-            MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem);
+	 * Create add (to) tags command handler for singleclick
+	 * @param aMediaListProvider object that provides the media list.
+     * @param aFileName resource file
+	 */
+	IMPORT_C static CGlxCommandHandlerAddToContainer
+			* NewAddToTagSingleClickCommandHandlerL(
+					MGlxMediaListProvider* aMediaListProvider,
+					TBool aHasToolbarItem, const TDesC& aFileName);
 
     /** 
-    * Create add (to) Favourites command handler 
-    * @param aMediaListProvider object that provides the media list.
-    */
-   IMPORT_C static CGlxCommandHandlerAddToContainer* NewAddToFavCommandHandlerL(
-       MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem);
+	 * Create add (to) Favourites command handler 
+	 * @param aMediaListProvider object that provides the media list.
+    * @param aFileName resource file
+	 */
+	IMPORT_C static CGlxCommandHandlerAddToContainer
+			* NewAddToFavCommandHandlerL(
+					MGlxMediaListProvider* aMediaListProvider,
+					TBool aHasToolbarItem, const TDesC& aFileName);
 
    /** 
-     * Two-phase constructor: 
-     * Prefer NewAddToAlbumCommandHandlerL or NewAddToTagsCommandHandlerL
-     * @param aMediaListProvider object that provides the media list.
-     * @param aCommand The command to handle.
-     */
-	IMPORT_C static CGlxCommandHandlerAddToContainer* NewL(MGlxMediaListProvider* aMediaListProvider,
-	                                                       TInt aCommandId, TBool aHasToolbarItem );
+	 * Two-phase constructor: 
+	 * Prefer NewAddToAlbumCommandHandlerL or NewAddToTagsCommandHandlerL
+	 * @param aMediaListProvider object that provides the media list.
+	 * @param aCommand The command to handle.
+     * @param aFileName resource file
+	 */
+	IMPORT_C static CGlxCommandHandlerAddToContainer* NewL(
+			MGlxMediaListProvider* aMediaListProvider, TInt aCommandId,
+			TBool aHasToolbarItem, const TDesC& aFileName);
 	    
     /** Destructor */
 	IMPORT_C ~CGlxCommandHandlerAddToContainer();
@@ -114,9 +131,9 @@
 	/** 
 	 * Second phase constructor
 	 * @param aCommand The command to handle.
+     * @param aFileName resource file
 	 */
-	void ConstructL(TInt aCommandId);
-
+	void ConstructL(TInt aCommandId, const TDesC& aFileName);
 	
     /** 
      * First phase constructor 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwassign.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwassign.h	Tue Apr 27 16:37:53 2010 +0300
@@ -41,17 +41,19 @@
     {
 public:
     /**
-     * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aMenuResource The menu resource that the AIW command will be 
-     *          implented in
-     * @return Fully constructed command handler
-     * @warning ConstructL of base class is called. If ConstructL is 
-     *          implemented in this class, then care must be taken to call 
-     *          CGlxCommandHandlerAiwBase::ConstructL
-     */
+	 * Two-phase constructor
+	 * @param aMediaListProvider object that provides the media list
+	 * @param aMenuResource The menu resource that the AIW command will be 
+	 *          implented in
+     * @param aFileName resource file
+	 * @return Fully constructed command handler
+	 * @warning ConstructL of base class is called. If ConstructL is 
+	 *          implemented in this class, then care must be taken to call 
+	 *          CGlxCommandHandlerAiwBase::ConstructL
+	 */
 	IMPORT_C static CGlxCommandHandlerAiwAssign* NewL(
-	    MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource);
+			MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+			const TDesC& aFileName);
 	
 	~CGlxCommandHandlerAiwAssign();
 	
@@ -77,8 +79,10 @@
      */
     CGlxCommandHandlerAiwAssign(MGlxMediaListProvider* aMediaListProvider, 
         TInt aMenuResource);
-    
-    void ConstructL();
+    /**
+     * @param aFileName resource file
+     */
+    void ConstructL(const TDesC& aFileName);
 
 private: // Data Members
     
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwbase.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwbase.h	Tue Apr 27 16:37:53 2010 +0300
@@ -74,8 +74,10 @@
 	CGlxCommandHandlerAiwBase(MGlxMediaListProvider* aMediaListProvider, 
 	                          TInt aMenuResource);
 
-    /** Second phase constructor */
-	void ConstructL();
+    /** Second phase constructor
+     * @param aFileName resource file
+     */
+	void ConstructL(const TDesC& aFileName);
 	
     /**
      *  This appends a Uri and/or a mimetype parameter to the InParams list (see Aiw Service Handler)
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwedit.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwedit.h	Tue Apr 27 16:37:53 2010 +0300
@@ -80,7 +80,8 @@
 
     void DoActivateL(TInt aViewId);
     TBool DoExecuteL( TInt aCommandId , MGlxMediaList& aList);
-    void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+    void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane, 
+							TBool aIsBrowseMode);
     
 private: // Data Members
     
@@ -95,7 +96,9 @@
     // Not own
     CGlxImageViewerManager* iImageViewerInstance;
     
-    CFeatureDiscovery* iFeatManager;
+	//If in fullscreen mode
+    TBool iIsFullScreenMode;
+    
     };
 
 #endif // C_GLXCOMMANDHANDLERAIWEDIT_H
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwprintpreview.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwprintpreview.h	Tue Apr 27 16:37:53 2010 +0300
@@ -40,17 +40,19 @@
     {
 public:
     /**
-     * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aMenuResource The menu resource that the AIW command will be 
-     *          implented in
-     * @return Fully constructed command handler
-     * @warning ConstructL of base class is called. If ConstructL is 
-     *          implemented in this class, then care must be taken to call 
-     *          CGlxCommandHandlerAiwBase::ConstructL
-     */
+	 * Two-phase constructor
+	 * @param aMediaListProvider object that provides the media list
+	 * @param aMenuResource The menu resource that the AIW command will be 
+	 *          implented in
+     * @param aFileName resource file
+	 * @return Fully constructed command handler
+	 * @warning ConstructL of base class is called. If ConstructL is 
+	 *          implemented in this class, then care must be taken to call 
+	 *          CGlxCommandHandlerAiwBase::ConstructL
+	 */
 	IMPORT_C static CGlxCommandHandlerAiwPrintPreview* NewL(
-	        MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource);
+			MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+			const TDesC& aFileName);
 	void PreDynInitMenuPaneL(TInt aResourceId);
 	
 protected: // From CGlxMediaListCommandHandler
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshareonovi.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshareonovi.h	Tue Apr 27 16:37:53 2010 +0300
@@ -37,17 +37,19 @@
     {
 public:
     /**
-     * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aMenuResource The menu resource that the AIW command will be 
-     *          implented in
-     * @return Fully constructed command handler
-     * @warning ConstructL of base class is called. If ConstructL is 
-     *          implemented in this class, then care must be taken to call 
-     *          CGlxCommandHandlerAiwBase::ConstructL
-     */
-    IMPORT_C static CGlxCommandHandlerAiwShareOnOvi* NewL(
-        MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource);
+	 * Two-phase constructor
+	 * @param aMediaListProvider object that provides the media list
+	 * @param aMenuResource The menu resource that the AIW command will be 
+	 *          implented in
+	 * @param aFileName resource file
+	 * @return Fully constructed command handler
+	 * @warning ConstructL of base class is called. If ConstructL is 
+	 *          implemented in this class, then care must be taken to call 
+	 *          CGlxCommandHandlerAiwBase::ConstructL
+	 */
+	IMPORT_C static CGlxCommandHandlerAiwShareOnOvi* NewL(
+			MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+			const TDesC& aFileName);
         
 protected: // From CGlxMediaListCommandHandler
     /**
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowmap.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowmap.h	Tue Apr 27 16:37:53 2010 +0300
@@ -42,17 +42,19 @@
     {
 public:
     /**
-     * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aMenuResource The menu resource that the AIW command will be 
-     *          implented in
-     * @return Fully constructed command handler
-     * @warning ConstructL of base class is called. If ConstructL is 
-     *          implemented in this class, then care must be taken to call 
-     *          CGlxCommandHandlerAiwBase::ConstructL
-     */
+	 * Two-phase constructor
+	 * @param aMediaListProvider object that provides the media list
+	 * @param aMenuResource The menu resource that the AIW command will be 
+	 *          implented in
+	 * @param aFileName resource file
+	 * @return Fully constructed command handler
+	 * @warning ConstructL of base class is called. If ConstructL is 
+	 *          implemented in this class, then care must be taken to call 
+	 *          CGlxCommandHandlerAiwBase::ConstructL
+	 */
 	IMPORT_C static CGlxCommandHandlerAiwShowMap* NewL(
-	    MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource);
+			MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+			const TDesC& aFileName);
 	
     /**
      * Perform any actions needed before the options menu is displayed.
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h	Tue Apr 27 16:37:53 2010 +0300
@@ -119,8 +119,10 @@
 	 * Modify a menu before it is displayed.
 	 * @param aResourceId The resource ID of the menu
 	 * @param aMenuPane The in-memory representation of the menu pane
+ 	 * @param aIsBrowseMode ETrue if in grid view
 	 */
-	void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+	void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane,
+                            TBool aIsBrowseMode);
 	
 	/**
 	 * Called when the owning view is activated
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercopyandmove.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercopyandmove.h	Tue Apr 27 16:37:53 2010 +0300
@@ -40,9 +40,11 @@
 
 public:
     /** 
-     * Two-phase constructor: 
-     */
-    IMPORT_C static CGlxCommandHandlerCopyAndMove* NewL(MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource);
+	 * Two-phase constructor: 
+	 */
+	IMPORT_C static CGlxCommandHandlerCopyAndMove* NewL(
+			MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+			const TDesC& aFileName);
     
     /** Destructor */
     IMPORT_C ~CGlxCommandHandlerCopyAndMove();
@@ -57,8 +59,10 @@
     void DoDynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
 
 private:
-    /** Second phase constructor */
-    void ConstructL();
+    /** Second phase constructor
+	 * @param aResourceFile resource file
+	 */
+	void ConstructL(const TDesC& aFileName);
 
     /** First phase constructor */
     CGlxCommandHandlerCopyAndMove(MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource);
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdelete.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdelete.h	Tue Apr 27 16:37:53 2010 +0300
@@ -40,18 +40,20 @@
 	{
 public:
     /**
-     * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aIsContainerList If ETrue, shows "delete container"
-     *                         confirmation notes and does not allow
-     *                         deleting system items
-     *                         If EFalse, shows "delete item" 
-     *                         confirmation notes and does not check 
-     *                         for system items
-     */
+	 * Two-phase constructor
+	 * @param aMediaListProvider object that provides the media list
+	 * @param aIsContainerList If ETrue, shows "delete container"
+	 *                         confirmation notes and does not allow
+	 *                         deleting system items
+	 *                         If EFalse, shows "delete item" 
+	 *                         confirmation notes and does not check 
+	 *                         for system items
+	 * @param aFileName resource file
+	 */
 	IMPORT_C static CGlxCommandHandlerDelete* NewL(
-	    MGlxMediaListProvider* aMediaListProvider, TBool aIsContainerList, TBool aHasToolbarItem);
-	    
+			MGlxMediaListProvider* aMediaListProvider, TBool aIsContainerList,
+			TBool aHasToolbarItem, const TDesC& aFileName);
+
 	/** Destructor */
 	IMPORT_C ~CGlxCommandHandlerDelete();
     
@@ -79,7 +81,7 @@
 
 private:
     /** Second phase constructor */
-	void ConstructL(TBool aIsContainerList);
+	void ConstructL(TBool aIsContainerList, const TDesC& aFileName);
 
     /** Constructor */
 	CGlxCommandHandlerDelete(MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem);
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h	Tue Apr 27 16:37:53 2010 +0300
@@ -35,32 +35,34 @@
     : public CGlxMediaListCommandHandler
 	{
 	public:
-		/** 
-		 * Create command handler for launcing Metadata view or Tag manager
-		 * use above method for creating command handler
-		 * 
-		 * @param aCommandId Command id for command handler
-		 * @param aMediaListProvider media list owner
-		 */
-		IMPORT_C static CGlxCommandHandlerDetails* NewL(
-		                        MGlxMediaListProvider* aMediaListProvider );		
-			    
-	    /** Destructor */
-		IMPORT_C ~CGlxCommandHandlerDetails();
+	/** 
+	 * Create command handler for launcing Metadata view or Tag manager
+	 * use above method for creating command handler
+	 * 
+	 * @param aCommandId Command id for command handler
+	 * @param aMediaListProvider media list owner
+	 * @param aFileName resource file
+	 */
+	IMPORT_C static CGlxCommandHandlerDetails* NewL(
+			MGlxMediaListProvider* aMediaListProvider, const TDesC& aFileName);
+
+	/** Destructor */
+	IMPORT_C ~CGlxCommandHandlerDetails();
 	
 	private:
-				
-    	/** Second phase constructor 
-    	 * 
-		 * @param aCommandId Command id for command handler
-    	 */
-		void ConstructL();
-		
-		/**
-	     * Constructor
-    	 * @param aMediaListProvider The owner of the media list to use
-	     */
-		CGlxCommandHandlerDetails( MGlxMediaListProvider* aMediaListProvider );
+
+	/** Second phase constructor 
+	 * 
+	 * @param aCommandId Command id for command handler
+	 * @param aFileName resource file
+	 */
+	void ConstructL(const TDesC& aFileName);
+
+	/**
+	 * Constructor
+	 * @param aMediaListProvider The owner of the media list to use
+	 */
+	CGlxCommandHandlerDetails(MGlxMediaListProvider* aMediaListProvider);
 		
 	private: // From CGlxMediaListCommandHandler
 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdownload.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdownload.h	Tue Apr 27 16:37:53 2010 +0300
@@ -81,9 +81,11 @@
      * Null implementation
      * @param aResourceId The resource ID of the menu
      * @param aMenuPane The in-memory representation of the menu pane
+     * @param aIsBrowseMode ETrue if in grid view
      * see @ref MGlxCommandHandler::DynInitMenuPaneL 
      */
-    void DynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane* /*aMenuPane*/) {};
+    void DynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane* /*aMenuPane*/,
+            TBool /*aIsBrowseMode*/) {};
     
     /**
      * Called when the owning view is activated
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerfilterimagesorvideos.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerfilterimagesorvideos.h	Tue Apr 27 16:37:53 2010 +0300
@@ -70,7 +70,8 @@
     private: // From CGlxMediaListCommandHandler
 
         /// @ref CGlxMediaListCommandHandler
-        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane );
+        void DynInitMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane, 
+								TBool aIsBrowseMode );
 
         /// @ref CGlxMediaListCommandHandler
         void DoActivateL( TInt aViewId );
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerhelp.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerhelp.h	Tue Apr 27 16:37:53 2010 +0300
@@ -96,7 +96,8 @@
     TBool ExecuteL(TInt aCommandId);
     
     /** see @ref MGlxCommandHandler::DynInitMenuPaneL */
-    void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+    void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane,
+                        TBool aIsBrowseMode);
     
     /** see @ref MGlxCommandHandler::OfferKeyEventL */
     TKeyResponse OfferKeyEventL(const TKeyEvent& /*aKeyEvent*/, 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerhideui.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerhideui.h	Tue Apr 27 16:37:53 2010 +0300
@@ -51,7 +51,8 @@
 
 public: // From CGlxCommandHandler
 	virtual TBool ExecuteL(TInt aCommand);
-	virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+	virtual void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane,
+                                    TBool aIsBrowseMode);
 	virtual void DoActivateL(TInt aViewId);
 	virtual void Deactivate();
 	virtual TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent, TEventCode aType);
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h	Tue Apr 27 16:37:53 2010 +0300
@@ -39,10 +39,12 @@
 	{
 public:
     /** 
-     * Two-phase constructor: 
-     * @param aMediaListProvider object that provides the media list.
-     */
-	IMPORT_C static CGlxCommandHandlerNewMedia* NewL(MGlxMediaListProvider* aMediaListProvider);
+	 * Two-phase constructor: 
+	 * @param aMediaListProvider object that provides the media list.
+	 * @param aFileName resource file
+	 */
+	IMPORT_C static CGlxCommandHandlerNewMedia* NewL(
+			MGlxMediaListProvider* aMediaListProvider, const TDesC& aFileName);
     
 	/** Destructor */
 	IMPORT_C ~CGlxCommandHandlerNewMedia();
@@ -78,7 +80,7 @@
 	
 private:
     /** Second phase constructor */
-	void ConstructL();
+	void ConstructL(const TDesC& aFileName);
 	
     /** 
      * First phase constructor 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerremovefrom.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerremovefrom.h	Tue Apr 27 16:37:53 2010 +0300
@@ -40,15 +40,17 @@
 	{
 public:
     /**
-     * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aContainerType specifies the container type. (Used to determine
-     * the correct confirmation note.) Only confirmation notes for EMPXAlbum
-     * and EMPXTag are supported. A confirmation note will not be displayed for
-     * unsupported types.
-     */
+	 * Two-phase constructor
+	 * @param aMediaListProvider object that provides the media list
+	 * @param aContainerType specifies the container type. (Used to determine
+	 * the correct confirmation note.) Only confirmation notes for EMPXAlbum
+	 * and EMPXTag are supported. A confirmation note will not be displayed for
+	 * unsupported types.
+	 * @param aFileName resource file
+	 */
 	IMPORT_C static CGlxCommandHandlerRemoveFrom* NewL(
-	    MGlxMediaListProvider* aMediaListProvider, TMPXGeneralCategory aContainerType);
+			MGlxMediaListProvider* aMediaListProvider,
+			TMPXGeneralCategory aContainerType, const TDesC& aFileName);
 	    
 	/** Destructor */
 	IMPORT_C ~CGlxCommandHandlerRemoveFrom();
@@ -79,7 +81,7 @@
 
 private:
     /** Second phase constructor */
-	void ConstructL();
+	void ConstructL(const TDesC& aFileName);
 
     /** Constructor */
 	CGlxCommandHandlerRemoveFrom(MGlxMediaListProvider* aMediaListProvider, TMPXGeneralCategory aContainerType);
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrename.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrename.h	Tue Apr 27 16:37:53 2010 +0300
@@ -41,12 +41,14 @@
 	{
 public:
     /**
-     * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aHasToolbarItem Whether Command Should be toolbar item (ETrue - if toolbar item)
-     */
+	 * Two-phase constructor
+	 * @param aMediaListProvider object that provides the media list
+	 * @param aHasToolbarItem Whether Command Should be toolbar item (ETrue - if toolbar item)
+	 * @param aFileName resource file
+	 */
 	IMPORT_C static CGlxCommandHandlerRename* NewL(
-	    MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem );
+			MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+			const TDesC& aFileName);
 	    
 	/** Destructor */
 	IMPORT_C ~CGlxCommandHandlerRename();
@@ -75,7 +77,7 @@
 
 private:
     /** Second phase constructor */
-	void ConstructL();
+	void ConstructL(const TDesC& aFileName);
 
     /**
      *  Constructor
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersave.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersave.h	Tue Apr 27 16:37:53 2010 +0300
@@ -55,7 +55,8 @@
 	 * @param aResourceId The resource ID of the menu
 	 * @param aMenuPane The in-memory representation of the menu pane
 	 */
-	void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane);
+	void DynInitMenuPaneL(TInt aResourceId, CEikMenuPane* aMenuPane,
+                            TBool aIsBrowseMode);
 	
 	/**
 	 * Called when the owning view is activated
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h	Tue Apr 27 16:37:53 2010 +0300
@@ -51,13 +51,15 @@
 	{
 public:  // Constructors and destructor
 	/**
-	* Two-phased constructor.
-    * @param aMediaListProvider pointer to media list owner
-    * @param aHasToolbarItem Whether Command Should be toolbar item (ETrue - if toolbar item)
-    * @return pointer to CGlxCommandHandlerSend object
-    */
-	IMPORT_C static CGlxCommandHandlerSend* NewL( 
-				MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem );
+	 * Two-phased constructor.
+	 * @param aMediaListProvider pointer to media list owner
+	 * @param aHasToolbarItem Whether Command Should be toolbar item (ETrue - if toolbar item)
+	 * @param aFileName resource file
+	 * @return pointer to CGlxCommandHandlerSend object
+	 */
+	IMPORT_C static CGlxCommandHandlerSend* NewL(
+			MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+			const TDesC& aFileName);
     
     /**
     * Destructor.
@@ -73,9 +75,9 @@
 
 private:
 	/**
-    * Symbian 2nd phase constructor
-	*/
-    void ConstructL();
+	 * Symbian 2nd phase constructor
+	 */
+	void ConstructL(const TDesC& aFileName);
 
     /**
     * C++ default constructor.
@@ -157,11 +159,10 @@
     				TInt aOldIndex, MGlxMediaList* aList);
 
     /**
-    * not implemented
 	* @ref MGlxMediaListObserver::HandleItemSelectedL
 	*/
-    void HandleItemSelectedL(TInt /*aIndex*/, TBool /*aSelected*/, 
-    							MGlxMediaList* /*aList*/){};
+    void HandleItemSelectedL(TInt aIndex, TBool aSelected, 
+    							MGlxMediaList* aList);
 
     /**
     * not implemented
@@ -190,9 +191,10 @@
 	void SendSelectedItemsL();
 	
 	/**
-	* Load the resource file
-	*/
-	void LoadRscFileL();	
+	 * Load the resource file
+	 * @param aFileName resource file
+	 */
+	void LoadRscFileL(const TDesC& aFileName);	
 
 	/**
 	* Return the static capabilities for sending a media item
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerslideshow.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerslideshow.h	Tue Apr 27 16:37:53 2010 +0300
@@ -44,16 +44,18 @@
             public MGlxMediaListObserver
 	{
 public:
-    /**
-     * Two-phase constructor
-     * @param aMediaListProvider object that provides the media list
-     * @param aStepBack EFalse if the command handler should not change
-     *	 the path's level. E.g. this may depend on whether the view's media 
-     *   list contains media items or if it is a "list of lists"
-     * @param aHasToolbarItem Whether Command Should be toolbar item (ETrue - if toolbar item)
-     */
+	/**
+	 * Two-phase constructor
+	 * @param aMediaListProvider object that provides the media list
+	 * @param aStepBack EFalse if the command handler should not change
+	 *	 the path's level. E.g. this may depend on whether the view's media 
+	 *   list contains media items or if it is a "list of lists"
+	 * @param aHasToolbarItem Whether Command Should be toolbar item (ETrue - if toolbar item)
+	 * @param aFileName resource file
+	 */
 	IMPORT_C static CGlxCommandHandlerSlideshow* NewL(
-	    MGlxMediaListProvider* aMediaListProvider, TBool aStepBack, TBool aHasToolbarItem );
+			MGlxMediaListProvider* aMediaListProvider, TBool aStepBack,
+			TBool aHasToolbarItem, const TDesC& aFileName);
 	    
 	/** Destructor */
 	IMPORT_C ~CGlxCommandHandlerSlideshow();
@@ -88,7 +90,7 @@
     
 private:
     /** Second phase constructor */
-	void ConstructL();
+	void ConstructL(const TDesC& aFileName);
 
     /** Constructor */
 	CGlxCommandHandlerSlideshow(MGlxMediaListProvider* aMediaListProvider,
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -56,82 +56,89 @@
 // Return add to album command handler
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerAddToContainer* 
-    CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem) 
-    {
-    TRACER("CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL");
-    return CGlxCommandHandlerAddToContainer::NewL (aMediaListProvider, 
-                                                EGlxCmdAddToAlbum, aHasToolbarItem);
-    }
+EXPORT_C CGlxCommandHandlerAddToContainer*
+CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL(
+		MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+		const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL");
+	return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider,
+			EGlxCmdAddToAlbum, aHasToolbarItem, aFileName);
+	}
 
 // ---------------------------------------------------------------------------
 // Return add to album command handler for singleclick options menu
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerAddToContainer* 
-    CGlxCommandHandlerAddToContainer::NewAddToAlbumSingleClickCommandHandlerL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem) 
-    {
-    return CGlxCommandHandlerAddToContainer::NewL (aMediaListProvider, 
-                              EGlxCmdSingleClickAddToAlbum, aHasToolbarItem);
-    }
+EXPORT_C CGlxCommandHandlerAddToContainer*
+CGlxCommandHandlerAddToContainer::NewAddToAlbumSingleClickCommandHandlerL(
+		MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+		const TDesC& aFileName)
+	{
+	return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider,
+			EGlxCmdSingleClickAddToAlbum, aHasToolbarItem, aFileName);
+	}
 
 
 // ---------------------------------------------------------------------------
 // Return add (to) tags command handler
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerAddToContainer* 
-    CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem) 
-    {
-    TRACER("CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL");
-    return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider, 
-                                                EGlxCmdAddTag, aHasToolbarItem);
-    }
+EXPORT_C CGlxCommandHandlerAddToContainer*
+CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL(
+		MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+		const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL");
+	return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider,
+			EGlxCmdAddTag, aHasToolbarItem, aFileName);
+	}
 
 // ---------------------------------------------------------------------------
 // Return add (to) tags command handler for singleclick option menu
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerAddToContainer* 
-    CGlxCommandHandlerAddToContainer::NewAddToTagSingleClickCommandHandlerL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem) 
-    {
-    return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider, 
-                                EGlxCmdSingleClickAddTag, aHasToolbarItem);
-    }
+EXPORT_C CGlxCommandHandlerAddToContainer*
+CGlxCommandHandlerAddToContainer::NewAddToTagSingleClickCommandHandlerL(
+		MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+		const TDesC& aFileName)
+	{
+	return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider,
+			EGlxCmdSingleClickAddTag, aHasToolbarItem, aFileName);
+	}
 
 
 // ---------------------------------------------------------------------------
 // Return add (to) Favourites command handler
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerAddToContainer* 
-    CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem) 
-    {
-    TRACER("CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL");
-    return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider, 
-                                    EGlxCmdAddToFavourites, aHasToolbarItem);
-    }
+EXPORT_C CGlxCommandHandlerAddToContainer*
+CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL(
+		MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+		const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL");
+	return CGlxCommandHandlerAddToContainer::NewL(aMediaListProvider,
+			EGlxCmdAddToFavourites, aHasToolbarItem, aFileName);
+	}
 
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
 // ---------------------------------------------------------------------------
 //
 EXPORT_C CGlxCommandHandlerAddToContainer* CGlxCommandHandlerAddToContainer::NewL(
-        MGlxMediaListProvider* aMediaListProvider, TInt aCommandId, TBool aHasToolbarItem)
-    {
-    TRACER("CGlxCommandHandlerAddToContainer::NewL");
-    CGlxCommandHandlerAddToContainer* self = 
-        new ( ELeave ) CGlxCommandHandlerAddToContainer( aMediaListProvider, aHasToolbarItem );
-    CleanupStack::PushL( self );
-    self->ConstructL( aCommandId );
-    CleanupStack::Pop( self );
-    return self;
-    }
+		MGlxMediaListProvider* aMediaListProvider, TInt aCommandId,
+		TBool aHasToolbarItem, const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerAddToContainer::NewL");
+	CGlxCommandHandlerAddToContainer* self =
+			new (ELeave) CGlxCommandHandlerAddToContainer(aMediaListProvider,
+					aHasToolbarItem);
+	CleanupStack::PushL(self);
+	self->ConstructL(aCommandId, aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
     
 // ---------------------------------------------------------------------------
 // Constructor
@@ -148,28 +155,24 @@
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerAddToContainer::ConstructL(TInt aCommandId)
-    {
-    TRACER("CGlxCommandHandlerAddToContainer::ConstructL");
-    // Load resource
-	TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
-   	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
+void CGlxCommandHandlerAddToContainer::ConstructL(TInt aCommandId,
+		const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerAddToContainer::ConstructL");
+	// Load resource
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
 	// Reset the Flag inorder to allow for a new selection pop-up to be created.
-   	iIsProcessOngoing = EFalse;
-   	// Add supported command
-   	TCommandInfo info(aCommandId);
-   	
-    // Filter out static items - user must have selected at least one item to
-    // enable the command handler    
-    const TInt KGlxCommandHandlerMinSelectionAllowSingle = 1;
-    info.iMinSelectionLength = KGlxCommandHandlerMinSelectionAllowSingle;
-    
-   	AddCommandL(info);
-   	iCommandId = aCommandId;
+	iIsProcessOngoing = EFalse;
+	// Add supported command
+	TCommandInfo info(aCommandId);
+
+	// Filter out static items - user must have selected at least one item to
+	// enable the command handler    
+	const TInt KGlxCommandHandlerMinSelectionAllowSingle = 1;
+	info.iMinSelectionLength = KGlxCommandHandlerMinSelectionAllowSingle;
+
+	AddCommandL(info);
+	iCommandId = aCommandId;
 	}
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwassign.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwassign.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -33,6 +33,7 @@
 #include <glxcollectionpluginimageviewer.hrh>
 #include "glxaiwservicehandler.h"
 #include <featdiscovery.h>
+#include <glximageviewermanager.h>          // for CGlxImageViewerManager
 
 const TInt KGlxAiwAssignCommandSpace = 0x00000100;
 
@@ -41,16 +42,18 @@
 // -----------------------------------------------------------------------------
 //	
 EXPORT_C CGlxCommandHandlerAiwAssign* CGlxCommandHandlerAiwAssign::NewL(
-        MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource)
-    {
-    TRACER("CGlxCommandHandlerAiwAssign* CGlxCommandHandlerAiwAssign::NewL");
-    CGlxCommandHandlerAiwAssign* self = new ( ELeave ) 
-        CGlxCommandHandlerAiwAssign(aMediaListProvider, aMenuResource);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
+		MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+		const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerAiwAssign* CGlxCommandHandlerAiwAssign::NewL");
+	CGlxCommandHandlerAiwAssign* self =
+			new (ELeave) CGlxCommandHandlerAiwAssign(aMediaListProvider,
+					aMenuResource);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
     
 // -----------------------------------------------------------------------------
 // Constructor
@@ -68,13 +71,13 @@
     delete iFeatManager;
     }
 
-void CGlxCommandHandlerAiwAssign::ConstructL()
-    {
-    //Calling base class implementation
-    CGlxCommandHandlerAiwBase::ConstructL();
-    
-    iFeatManager = CFeatureDiscovery::NewL();
-    }
+void CGlxCommandHandlerAiwAssign::ConstructL(const TDesC& aFileName)
+	{
+	//Calling base class implementation
+	CGlxCommandHandlerAiwBase::ConstructL(aFileName);
+
+	iFeatManager = CFeatureDiscovery::NewL();
+	}
 
 // -----------------------------------------------------------------------------
 // CGlxCommandHandlerAiwAssign::DoGetRequiredAttributesL
@@ -150,6 +153,7 @@
     {
     TRACER("void CGlxCommandHandlerAiwAssign::AiwDoDynInitMenuPaneL");
     TBool fullscreenViewingMode = EFalse;
+    TBool privateFile = EFalse;
     CGlxNavigationalState* aNavigationalState = CGlxNavigationalState::InstanceL();
     CMPXCollectionPath* naviState = aNavigationalState->StateLC();
     
@@ -178,6 +182,17 @@
     CleanupStack::PopAndDestroy( naviState );
     aNavigationalState->Close();
     
+    if (fullscreenViewingMode)
+        {
+        CGlxImageViewerManager* viewerInst =
+                CGlxImageViewerManager::InstanceL();
+        if (viewerInst && viewerInst->IsPrivate())
+            {
+            privateFile = ETrue;
+            }
+        viewerInst->DeleteInstance();
+        }
+
     HBufC* currentTitle = StringLoader::LoadLC( R_QTN_LGAL_OPTIONS_USE_ITEMS );
     // get commandId for the current menupane item title
     TInt cmdId = AiwMenuCmdIdL( *currentTitle,aMenuPane ) ;
@@ -188,7 +203,8 @@
         {
         MGlxMediaList& mediaList = MediaList();
 
-        if (mediaList.SelectionCount() == 1 || fullscreenViewingMode )
+        if (mediaList.SelectionCount() == 1 || (fullscreenViewingMode
+                && !privateFile))
             {
     		TGlxSelectionIterator iterator;
             
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwbase.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwbase.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -53,33 +53,26 @@
 // ConstructL
 // -----------------------------------------------------------------------------
 //	
-void CGlxCommandHandlerAiwBase::ConstructL()
-    {
+void CGlxCommandHandlerAiwBase::ConstructL(const TDesC& aFileName)
+	{
 
-    TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
 
-    iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
+	iAiwServiceHandler = CGlxAiwServiceHandler::InstanceL();
+
+	iAiwServiceHandler->AttachMenuL(iMenuResource, AiwInterestResource());
 
-    iAiwServiceHandler = CGlxAiwServiceHandler::InstanceL();
-    
-    iAiwServiceHandler->AttachMenuL( iMenuResource, AiwInterestResource() ); 
+	// Add supported command
+	TCommandInfo info(CommandId());
+	// Filter out static items
+	info.iMinSelectionLength = 1;
+	info.iMaxSelectionLength = MaxSelectedItems();
+	info.iStopAnimationForExecution = ETrue;
+	info.iCategoryFilter = EMPXCommand;
+	info.iCategoryRule = TCommandInfo::EForbidAll;
+	AddCommandL(info);
 
-   	// Add supported command
-   	TCommandInfo info(CommandId());
-   	// Filter out static items
-    info.iMinSelectionLength = 1;
-    info.iMaxSelectionLength = MaxSelectedItems();
-    info.iStopAnimationForExecution = ETrue;
-    info.iCategoryFilter = EMPXCommand;
-    info.iCategoryRule = TCommandInfo::EForbidAll; 
-   	AddCommandL(info);
-   	
-
-    }
+	}
     
 // -----------------------------------------------------------------------------
 // Destructor
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -60,7 +60,6 @@
 //
 EXPORT_C CGlxCommandHandlerAiwEdit::~CGlxCommandHandlerAiwEdit()
     {
-    delete iFeatManager;
     delete iServiceHandler;
 
     if (NULL != iImageViewerInstance)
@@ -75,12 +74,20 @@
 //
 void CGlxCommandHandlerAiwEdit::ConstructL()
     {
-    TRAP_IGNORE(
-                {
-                iServiceHandler = CAiwServiceHandler::NewL();
-                iServiceHandler->AttachL( R_GLX_AIW_EDIT_INTEREST );
-                iEditSupported = ETrue;
-                });
+    CFeatureDiscovery* featManager = CFeatureDiscovery::NewL();
+    CleanupStack::PushL(featManager);
+    
+    if(featManager->IsFeatureSupportedL(KFeatureIdFfImageEditor)
+       && featManager->IsFeatureSupportedL(KFeatureIdFfVideoEditor))
+        {
+        TRAP_IGNORE(
+                    {
+                    iServiceHandler = CAiwServiceHandler::NewL();
+                    iServiceHandler->AttachL( R_GLX_AIW_EDIT_INTEREST );
+                    iEditSupported = ETrue;
+                    });
+        }
+    CleanupStack::PopAndDestroy(featManager);
 
     if (iCommandSingleClick)
         {
@@ -93,8 +100,9 @@
         AddCommandL(info);
         }
 
-    iImageViewerInstance = CGlxImageViewerManager::InstanceL();
-    iFeatManager = CFeatureDiscovery::NewL();
+    iImageViewerInstance = CGlxImageViewerManager::InstanceL();   
+    
+    iIsFullScreenMode = IsInFullScreenViewingModeL();
     }
 
 // -----------------------------------------------------------------------------
@@ -123,22 +131,19 @@
 // -----------------------------------------------------------------------------
 //
 void CGlxCommandHandlerAiwEdit::DynInitMenuPaneL(TInt /*aResourceId*/,
-        CEikMenuPane* aMenuPane)
+        CEikMenuPane* aMenuPane, TBool /*aIsBrowseMode*/)
     {
-    MGlxMediaList& mediaList = MediaList();
-    TInt pos;
 
     if (aMenuPane)
         {
+        MGlxMediaList& mediaList = MediaList();
+        TInt pos;
         //If stylus menu is present, hide it for multiple selection
         if (iCommandSingleClick && aMenuPane->MenuItemExists(
                 EGlxCmdAiwSingleClickEdit, pos)
 
                 && (((!mediaList.Count()) || (mediaList.SelectionCount() > 1))
-                        || (!iFeatManager->IsFeatureSupportedL(
-                                KFeatureIdFfImageEditor)
-                                && !iFeatManager->IsFeatureSupportedL(
-                                        KFeatureIdFfVideoEditor))))
+                        || !iEditSupported))
             {
             aMenuPane->SetItemDimmed(EGlxCmdAiwSingleClickEdit, ETrue);
             }
@@ -149,11 +154,8 @@
             // selection is not equal to 1, we should hide Edit menu item 
             if ((iImageViewerInstance->IsPrivate()
                     || (mediaList.SelectionCount() != 1
-                            && !IsInFullScreenViewingModeL()))
-                    || (!iFeatManager->IsFeatureSupportedL(
-                            KFeatureIdFfImageEditor)
-                            && !iFeatManager->IsFeatureSupportedL(
-                                    KFeatureIdFfVideoEditor)))
+                            && !iIsFullScreenMode))
+                    || !iEditSupported)
                 {
                 aMenuPane->SetItemDimmed(EGlxCmdAiwEdit, ETrue);
                 }
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -37,17 +37,19 @@
 // NewL
 // -----------------------------------------------------------------------------
 //	
-EXPORT_C CGlxCommandHandlerAiwPrintPreview* 
-        CGlxCommandHandlerAiwPrintPreview::NewL(
-        MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource)
-    {
-    CGlxCommandHandlerAiwPrintPreview* self = new ( ELeave ) 
-        CGlxCommandHandlerAiwPrintPreview(aMediaListProvider, aMenuResource);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
+EXPORT_C CGlxCommandHandlerAiwPrintPreview*
+CGlxCommandHandlerAiwPrintPreview::NewL(
+		MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+		const TDesC& aFileName)
+	{
+	CGlxCommandHandlerAiwPrintPreview* self =
+			new (ELeave) CGlxCommandHandlerAiwPrintPreview(aMediaListProvider,
+					aMenuResource);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
     
 // -----------------------------------------------------------------------------
 // CGlxCommandHandlerAiwPrintPreview::DoGetRequiredAttributesL
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshareonovi.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshareonovi.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -34,15 +34,17 @@
 // -----------------------------------------------------------------------------
 //  
 EXPORT_C CGlxCommandHandlerAiwShareOnOvi* CGlxCommandHandlerAiwShareOnOvi::NewL(
-        MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource)
-    {
-    CGlxCommandHandlerAiwShareOnOvi* self = new ( ELeave ) 
-    CGlxCommandHandlerAiwShareOnOvi(aMediaListProvider, aMenuResource);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
+		MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+		const TDesC& aFileName)
+	{
+	CGlxCommandHandlerAiwShareOnOvi* self =
+			new (ELeave) CGlxCommandHandlerAiwShareOnOvi(aMediaListProvider,
+					aMenuResource);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
 
 // -----------------------------------------------------------------------------
 // CGlxCommandHandlerAiwShareOnOvi::DoGetRequiredAttributesL
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshowmap.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshowmap.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -47,16 +47,18 @@
 // -----------------------------------------------------------------------------
 //
 EXPORT_C CGlxCommandHandlerAiwShowMap* CGlxCommandHandlerAiwShowMap::NewL(
-    MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource )
-    {
-    TRACER("CGlxCommandHandlerAiwShowMap::NewL");
-    CGlxCommandHandlerAiwShowMap* self = new ( ELeave )
-        CGlxCommandHandlerAiwShowMap( aMediaListProvider, aMenuResource );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
+		MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+		const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerAiwShowMap::NewL");
+	CGlxCommandHandlerAiwShowMap* self =
+			new (ELeave) CGlxCommandHandlerAiwShowMap(aMediaListProvider,
+					aMenuResource);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
 
 // -----------------------------------------------------------------------------
 // Destructor
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshowonmaphardkey.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwshowonmaphardkey.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -110,50 +110,10 @@
 TBool CGlxCommandHandlerAiwShowMapHardKey::DoExecuteL (TInt /*aCommandId*/, MGlxMediaList& aList)
     {
     TRACER("CGlxCommandHandlerAiwShowMapHardKey::DoExecuteL");
-    TBool handled = EFalse;
-    TCoordinate coordinate; 
-    TInt focusIndex = aList.FocusIndex();
-    const TGlxMedia& item = aList.Item(focusIndex);
-
-    if(item.GetCoordinate(coordinate))
-        {
-        CPosLandmark* lmk = CPosLandmark::NewLC();
-        TLocality locality;
-        HBufC8* lmBuf;
-        
-        //set location
-        locality.SetCoordinate( coordinate.Latitude(), coordinate.Longitude(), 
-                coordinate.Altitude() );
-     
-        lmk->SetPositionL(locality);
-        
-        //set  in parameters
-        iInList->Reset();
-        lmBuf =PosLandmarkSerialization::PackL( *lmk );
-        CleanupStack::PushL( lmBuf );
-        TAiwGenericParam param( EGenericParamLandmark, TAiwVariant( *lmBuf ) );     
-        iInList->AppendL( param );       
-        TMnAiwCommonOptionsParam options;
-        options.iRunChained = EFalse;
-        TPckg<TMnAiwCommonOptionsParam> optionsPack( options );
-        TAiwGenericParam optParam( EGenericParamMnCommonOptions, TAiwVariant( optionsPack ) );
-        iInList->AppendL( optParam );
-                
-        iAiwServiceHandler->ExecuteServiceCmdL( KAiwCmdMnShowMap, *iInList, *iOutList, 0); 
-        
-        CleanupStack::PopAndDestroy( lmBuf);
-        CleanupStack::PopAndDestroy( lmk); 
-        handled = ETrue;
-        }
-    else
-        {
-        // if location info not present then display note to put on camera settings
-        HBufC* popupText = StringLoader::LoadLC(
-                R_GLX_POPUP_NO_LOCATION_INFO);                  
-        GlxGeneralUiUtilities::ShowInfoNoteL( popupText->Des(), EFalse ); 
-        CleanupStack::PopAndDestroy( popupText ); 
-        }
-    return handled;
+    
+    // Show on Map Hard key is not there in 9.2.
+    // if need arises this can be readded from synergy: v7 of this file and older.   
+    return EFalse;
     }
 
 // ----------------------------------------------------------------------------
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -284,7 +284,8 @@
 // -----------------------------------------------------------------------------
 //
 void CGlxCommandHandlerBack::DynInitMenuPaneL(TInt /*aResourceId*/, 
-												CEikMenuPane* /*aMenuPane*/)
+												CEikMenuPane* /*aMenuPane*/,
+												TBool /*aIsBrowseMode*/)
 	{
 	// Do Nothing		
 	}
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlercopyandmove.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlercopyandmove.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -45,14 +45,18 @@
 // Two-phased constructor.
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerCopyAndMove* CGlxCommandHandlerCopyAndMove::NewL(MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource)
-    {
-    CGlxCommandHandlerCopyAndMove* self = new (ELeave) CGlxCommandHandlerCopyAndMove(aMediaListProvider, aMenuResource);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
+EXPORT_C CGlxCommandHandlerCopyAndMove* CGlxCommandHandlerCopyAndMove::NewL(
+		MGlxMediaListProvider* aMediaListProvider, TInt aMenuResource,
+		const TDesC& aFileName)
+	{
+	CGlxCommandHandlerCopyAndMove* self =
+			new (ELeave) CGlxCommandHandlerCopyAndMove(aMediaListProvider,
+					aMenuResource);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
 
 // ---------------------------------------------------------------------------
 // Destructor.
@@ -147,51 +151,46 @@
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerCopyAndMove::ConstructL()
-    {
-    // Load resource file
-    TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
+void CGlxCommandHandlerCopyAndMove::ConstructL(const TDesC& aFileName)
+	{
+	// Load resource file
+
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
 
-    iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
+	// Add supported command
+	TCommandInfo copyInfo(EGlxCmdCopy);
+	copyInfo.iMinSelectionLength = 1;
+	copyInfo.iMaxSelectionLength = KMaxTInt;
+	// Filter out static items
+	AddCommandL(copyInfo);
+
+	TCommandInfo moveInfo(EGlxCmdMove);
+	moveInfo.iMinSelectionLength = 1;
+	moveInfo.iMaxSelectionLength = KMaxTInt;
+	// Filter out static items
+	AddCommandL(moveInfo);
 
-    // Add supported command
-    TCommandInfo copyInfo(EGlxCmdCopy);
-    copyInfo.iMinSelectionLength = 1;
-    copyInfo.iMaxSelectionLength = KMaxTInt;
-    // Filter out static items
-    AddCommandL(copyInfo);
-    
-    TCommandInfo moveInfo(EGlxCmdMove);
-    moveInfo.iMinSelectionLength = 1;
-    moveInfo.iMaxSelectionLength = KMaxTInt;
-    // Filter out static items
-    AddCommandL(moveInfo);
-    
-    TCommandInfo copyAndMoveSubmenuInfo(EGlxCmdCopyMoveSubmenu);
-    copyAndMoveSubmenuInfo.iMinSelectionLength = 1;
-    copyAndMoveSubmenuInfo.iMaxSelectionLength = KMaxTInt;
-    // Show in Grid View
-    copyAndMoveSubmenuInfo.iViewingState = TCommandInfo::EViewingStateBrowse;
-    // Filter out static items 
-    // (The whole sub menu should be filtered out if a static item is selected)
-    AddCommandL(copyAndMoveSubmenuInfo);
-    
-    TCommandInfo browseInfo(EGlxCmdStateBrowse);
-    browseInfo.iMinSelectionLength = 0;
-    browseInfo.iMaxSelectionLength = KMaxTInt;
-    // Filter out static items
-    AddCommandL(browseInfo);
-    
-    TCommandInfo viewInfo(EGlxCmdStateView);
-    viewInfo.iMinSelectionLength = 0;
-    viewInfo.iMaxSelectionLength = KMaxTInt;
-    // Filter out static items
-    AddCommandL(viewInfo);
-    }
+	TCommandInfo copyAndMoveSubmenuInfo(EGlxCmdCopyMoveSubmenu);
+	copyAndMoveSubmenuInfo.iMinSelectionLength = 1;
+	copyAndMoveSubmenuInfo.iMaxSelectionLength = KMaxTInt;
+	// Show in Grid View
+	copyAndMoveSubmenuInfo.iViewingState = TCommandInfo::EViewingStateBrowse;
+	// Filter out static items 
+	// (The whole sub menu should be filtered out if a static item is selected)
+	AddCommandL(copyAndMoveSubmenuInfo);
+
+	TCommandInfo browseInfo(EGlxCmdStateBrowse);
+	browseInfo.iMinSelectionLength = 0;
+	browseInfo.iMaxSelectionLength = KMaxTInt;
+	// Filter out static items
+	AddCommandL(browseInfo);
+
+	TCommandInfo viewInfo(EGlxCmdStateView);
+	viewInfo.iMinSelectionLength = 0;
+	viewInfo.iMaxSelectionLength = KMaxTInt;
+	// Filter out static items
+	AddCommandL(viewInfo);
+	}
 
 // ---------------------------------------------------------------------------
 // C++ default constructor can NOT contain any code, that
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -45,15 +45,17 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C CGlxCommandHandlerDelete* CGlxCommandHandlerDelete::NewL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aContainerList, TBool aHasToolbarItem)
-    {
-    /// @todo Minor: Rowland Cook 06/06/07 no use of glx logging
-    CGlxCommandHandlerDelete* self = new (ELeave) CGlxCommandHandlerDelete(aMediaListProvider, aHasToolbarItem);
-    CleanupStack::PushL( self );
-    self->ConstructL(aContainerList);
-    CleanupStack::Pop( self );
-    return self;
-    }
+		MGlxMediaListProvider* aMediaListProvider, TBool aContainerList,
+		TBool aHasToolbarItem, const TDesC& aFileName)
+	{
+	/// @todo Minor: Rowland Cook 06/06/07 no use of glx logging
+	CGlxCommandHandlerDelete* self = new (ELeave) CGlxCommandHandlerDelete(
+			aMediaListProvider, aHasToolbarItem);
+	CleanupStack::PushL(self);
+	self->ConstructL(aContainerList, aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
 
 // ---------------------------------------------------------------------------
 // C++ default constructor can NOT contain any code, that
@@ -66,34 +68,32 @@
     // Don't do anything.
     }
  
+
+
 // ---------------------------------------------------------------------------
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerDelete::ConstructL(TBool aIsContainerList)
-    {
-    iIsContainerList = aIsContainerList;
-    iUiUtility = CGlxUiUtility::UtilityL();
-    
-    // Load resource file
-	TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
-   	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
+void CGlxCommandHandlerDelete::ConstructL(TBool aIsContainerList,
+		const TDesC& aFileName)
+	{
+	iIsContainerList = aIsContainerList;
+	iUiUtility = CGlxUiUtility::UtilityL();
+
+	// Load resource file
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
 
-   	// Add supported command
-   	TCommandInfo info( EGlxCmdDelete );
-   	// Filter out static items
-    info.iMinSelectionLength = 1;
-    info.iDisallowSystemItems = aIsContainerList;
-   	AddCommandL(info);
-   	
-   	TCommandInfo singleclkinfo( EGlxCmdSingleClickDelete );
-    singleclkinfo.iMinSelectionLength = 1;
-    singleclkinfo.iDisallowSystemItems = aIsContainerList;
-    AddCommandL(singleclkinfo);
+	// Add supported command
+	TCommandInfo info(EGlxCmdDelete);
+	// Filter out static items
+	info.iMinSelectionLength = 1;
+	info.iDisallowSystemItems = aIsContainerList;
+	AddCommandL(info);
+
+	TCommandInfo singleclkinfo(EGlxCmdSingleClickDelete);
+	singleclkinfo.iMinSelectionLength = 1;
+	singleclkinfo.iDisallowSystemItems = aIsContainerList;
+	AddCommandL(singleclkinfo);
 	}
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -58,13 +58,14 @@
 // Two-phased constructor.
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerDetails* 
-			CGlxCommandHandlerDetails::NewL( 
-			MGlxMediaListProvider* aMediaListProvider )
+EXPORT_C CGlxCommandHandlerDetails*
+CGlxCommandHandlerDetails::NewL(MGlxMediaListProvider* aMediaListProvider,
+		const TDesC& aFileName)
 	{
-	CGlxCommandHandlerDetails* self = new (ELeave) CGlxCommandHandlerDetails(aMediaListProvider);
+	CGlxCommandHandlerDetails* self = new (ELeave) CGlxCommandHandlerDetails(
+			aMediaListProvider);
 	CleanupStack::PushL(self);
-	self->ConstructL();
+	self->ConstructL(aFileName);
 	CleanupStack::Pop(self);
 	return self;
 	}
@@ -80,50 +81,45 @@
 	//Do nothing
 	}			
 
+
+
 // ---------------------------------------------------------------------------
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //	
-void CGlxCommandHandlerDetails::ConstructL()
+void CGlxCommandHandlerDetails::ConstructL(const TDesC& aFileName)
 	{
-    // Load resource file
-    GLX_FUNC("GLX_Property::ConstructL");
-	
-	// register property command in command handler
-	TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
+	// Load resource file
+	GLX_FUNC("GLX_Property::ConstructL");
 
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile); 
-   	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
-				
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
+
 	// register property command in command handler
-   	TCommandInfo infoProp(EGlxCmdDetails);
-   	// Filter out static items and only allows one item to select
-    infoProp.iMinSelectionLength = 1;
-    infoProp.iMaxSelectionLength = 1;
-    //Allow DRM
-    infoProp.iDisallowDRM = EFalse;
-    //Allow system items
-    infoProp.iDisallowSystemItems= EFalse;
-    //Allow animation
-    infoProp.iStopAnimationForExecution = EFalse;  
-    //no category filter
-    infoProp.iCategoryFilter = EMPXNoCategory;
-   	AddCommandL(infoProp);
-		   			   	
-   	TCommandInfo infoSubMenu(EGlxCmdDetailsOption);
-    infoSubMenu.iViewingState = TCommandInfo::EViewingStateBrowse;
-   	
-   	// register for the reset view command so that we can 
-   	// dismiss the dialog if it is being shown when we are activated
-   	// from SpaceUI 
-    TCommandInfo resetViewCmd( EGlxCmdResetView );
-    AddCommandL( resetViewCmd );
-    
-   	// get pointer to HUI utility
-    iUiUtility = CGlxUiUtility::UtilityL();
+	TCommandInfo infoProp(EGlxCmdDetails);
+	// Filter out static items and only allows one item to select
+	infoProp.iMinSelectionLength = 1;
+	infoProp.iMaxSelectionLength = 1;
+	//Allow DRM
+	infoProp.iDisallowDRM = EFalse;
+	//Allow system items
+	infoProp.iDisallowSystemItems = EFalse;
+	//Allow animation
+	infoProp.iStopAnimationForExecution = EFalse;
+	//no category filter
+	infoProp.iCategoryFilter = EMPXNoCategory;
+	AddCommandL(infoProp);
+
+	TCommandInfo infoSubMenu(EGlxCmdDetailsOption);
+	infoSubMenu.iViewingState = TCommandInfo::EViewingStateBrowse;
+
+	// register for the reset view command so that we can 
+	// dismiss the dialog if it is being shown when we are activated
+	// from SpaceUI 
+	TCommandInfo resetViewCmd(EGlxCmdResetView);
+	AddCommandL(resetViewCmd);
+
+	// get pointer to HUI utility
+	iUiUtility = CGlxUiUtility::UtilityL();
 	}	
 	
 // ---------------------------------------------------------------------------
@@ -177,6 +173,8 @@
 			// context off the list
 			CleanupStack::PopAndDestroy( &contextRemover );
 
+			iAvkonAppUi->ProcessCommandL(EGlxCmdDialogLaunched);
+
 			if ( err == KErrNone )
 				{
 				TInt focusIndex = aList.FocusIndex();
@@ -225,6 +223,9 @@
                     }
                 }
             CleanupStack::PopAndDestroy( attrContext );
+
+            iAvkonAppUi->ProcessCommandL(EGlxCmdResetView);
+
             consume = ETrue;
             break;
             }// contextRemover goes out of scope and removes the context from media list
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerfilterimagesorvideos.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerfilterimagesorvideos.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -111,7 +111,7 @@
 // DynInitMenuPaneL
 // -----------------------------------------------------------------------------
 void CGlxCommandHandlerFilterImagesOrVideos::DynInitMenuPaneL(
-    TInt /*aResourceId*/, CEikMenuPane* aMenuPane )
+    TInt /*aResourceId*/, CEikMenuPane* aMenuPane, TBool /*aIsBrowseMode*/ )
 	{
 	if( iInFullScreen )
 	    {
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerhelp.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerhelp.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -135,7 +135,8 @@
 // ---------------------------------------------------------------------------
 //
 void CGlxCommandHandlerHelp::DynInitMenuPaneL(TInt /*aResourceId*/, 
-                                                CEikMenuPane* /*aMenuPane*/)
+                                                CEikMenuPane* /*aMenuPane*/,
+                                                TBool /*aIsBrowseMode*/)
     {
     // No implementation
     }    
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerhideui.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerhideui.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -110,7 +110,8 @@
 // DynInitMenuPaneL
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerHideUi::DynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane* aMenuPane)
+void CGlxCommandHandlerHideUi::DynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane* aMenuPane,
+        TBool /*aIsBrowseMode*/)
     {
     if ( !iCommandAvailable && aMenuPane )
         {
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -56,19 +56,22 @@
 _LIT(KOpenBracket, "(");
 _LIT(KCloseBracket, ")");
 _LIT(KFileNameFormatString, "(%+02u)");
+
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
 // ---------------------------------------------------------------------------
 //
-EXPORT_C CGlxCommandHandlerNewMedia* CGlxCommandHandlerNewMedia::NewL(MGlxMediaListProvider* aMediaListProvider)
-    {
-    TRACER("CGlxCommandHandlerNewMedia* CGlxCommandHandlerNewMedia::NewL");
-    CGlxCommandHandlerNewMedia* self = new (ELeave) CGlxCommandHandlerNewMedia(aMediaListProvider);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
+EXPORT_C CGlxCommandHandlerNewMedia* CGlxCommandHandlerNewMedia::NewL(
+		MGlxMediaListProvider* aMediaListProvider, const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerNewMedia* CGlxCommandHandlerNewMedia::NewL");
+	CGlxCommandHandlerNewMedia* self = new (ELeave) CGlxCommandHandlerNewMedia(
+			aMediaListProvider);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
 
 // ---------------------------------------------------------------------------
 // C++ default constructor can NOT contain any code, that
@@ -118,23 +121,18 @@
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerNewMedia::ConstructL()
-    {
-    TRACER("CGlxCommandHandlerNewMedia::ConstructL()");
-    iFileNameAlreadyExists = EFalse ;
-    // Load resource file
-	TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
-   	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
+void CGlxCommandHandlerNewMedia::ConstructL(const TDesC& aFileName)
+	{
+	TRACER("CGlxCommandHandlerNewMedia::ConstructL()");
+	iFileNameAlreadyExists = EFalse;
 
-    iAsyncFocuser = new (ELeave) CGlxAsyncFocuser(this);
-   	// Add supported command
-   	TCommandInfo info(EGlxCmdAddMedia);
-   	// Filter out static items
-   	AddCommandL(info);
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
+
+	iAsyncFocuser = new (ELeave) CGlxAsyncFocuser(this);
+	// Add supported command
+	TCommandInfo info(EGlxCmdAddMedia);
+	// Filter out static items
+	AddCommandL(info);
 	}
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -41,14 +41,17 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C CGlxCommandHandlerRemoveFrom* CGlxCommandHandlerRemoveFrom::NewL(
-        MGlxMediaListProvider* aMediaListProvider, TMPXGeneralCategory aContainerType)
-    {
-    CGlxCommandHandlerRemoveFrom* self = new (ELeave) CGlxCommandHandlerRemoveFrom(aMediaListProvider, aContainerType);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
+		MGlxMediaListProvider* aMediaListProvider,
+		TMPXGeneralCategory aContainerType, const TDesC& aFileName)
+	{
+	CGlxCommandHandlerRemoveFrom* self =
+			new (ELeave) CGlxCommandHandlerRemoveFrom(aMediaListProvider,
+					aContainerType);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
 
 // ---------------------------------------------------------------------------
 // C++ default constructor can NOT contain any code, that
@@ -65,27 +68,21 @@
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerRemoveFrom::ConstructL()
-    {
-    // Load resource file
-	TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
-   	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
+void CGlxCommandHandlerRemoveFrom::ConstructL(const TDesC& aFileName)
+	{
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
 
-   	// Add supported command
-   	TCommandInfo info(EGlxCmdRemoveFrom);
-   	// Filter out static items
-    info.iMinSelectionLength = 1;
-    info.iMaxSelectionLength = KMaxTInt;
-   	AddCommandL(info);
-   	
-   	TCommandInfo singleclickinfo(EGlxCmdSingleClickRemoveFrom);
-   	singleclickinfo.iMinSelectionLength = 1;
-   	singleclickinfo.iMaxSelectionLength = KMaxTInt;
-    AddCommandL(singleclickinfo);
+	// Add supported command
+	TCommandInfo info(EGlxCmdRemoveFrom);
+	// Filter out static items
+	info.iMinSelectionLength = 1;
+	info.iMaxSelectionLength = KMaxTInt;
+	AddCommandL(info);
+
+	TCommandInfo singleclickinfo(EGlxCmdSingleClickRemoveFrom);
+	singleclickinfo.iMinSelectionLength = 1;
+	singleclickinfo.iMaxSelectionLength = KMaxTInt;
+	AddCommandL(singleclickinfo);
 	}
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -51,15 +51,16 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C CGlxCommandHandlerRename* CGlxCommandHandlerRename::NewL(
-        MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem )
-    {
-    CGlxCommandHandlerRename* self = new ( ELeave ) CGlxCommandHandlerRename
-    	( aMediaListProvider, aHasToolbarItem );
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
+		MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+		const TDesC& aFileName)
+	{
+	CGlxCommandHandlerRename* self = new (ELeave) CGlxCommandHandlerRename(
+			aMediaListProvider, aHasToolbarItem);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
 
 // ---------------------------------------------------------------------------
 // C++ default constructor can NOT contain any code, that
@@ -73,38 +74,33 @@
     // Do nothing
     }
  
+
 // ---------------------------------------------------------------------------
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerRename::ConstructL()
-    {
-    iRenameText = HBufC::NewL( KNameMaxLength );
+void CGlxCommandHandlerRename::ConstructL(const TDesC& aFileName)
+	{
+	iRenameText = HBufC::NewL(KNameMaxLength);
 
-    // Load resource file
-	TParse parse;
-    parse.Set( KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL );
-    TFileName resourceFile;
-    resourceFile.Append( parse.FullName() );
-    CGlxResourceUtilities::GetResourceFilenameL( resourceFile );  
-   	iResourceOffset = CCoeEnv::Static()->AddResourceFileL( resourceFile );
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
 
-   	// Add supported command
-   	TCommandInfo info( EGlxCmdRename );
-   	// This setup disables the command if a static item is focused,
-   	// if the view is empty or if more than one item is selected.
-    info.iMinSelectionLength = 1;
-    info.iMaxSelectionLength = 1;
-    // Filter out system items
-    info.iDisallowSystemItems = ETrue;
-    // Allow animated GIFs to be renamed
-    info.iStopAnimationForExecution = ETrue;
-    
-   	AddCommandL( info );
+	// Add supported command
+	TCommandInfo info(EGlxCmdRename);
+	// This setup disables the command if a static item is focused,
+	// if the view is empty or if more than one item is selected.
+	info.iMinSelectionLength = 1;
+	info.iMaxSelectionLength = 1;
+	// Filter out system items
+	info.iDisallowSystemItems = ETrue;
+	// Allow animated GIFs to be renamed
+	info.iStopAnimationForExecution = ETrue;
 
-    iErrorCallback = new (ELeave) CAsyncCallBack( TCallBack( HandleErrorL, this ), 
-                                                  CActive::EPriorityStandard );
-    }
+	AddCommandL(info);
+
+	iErrorCallback = new (ELeave) CAsyncCallBack(TCallBack(HandleErrorL, this),
+			CActive::EPriorityStandard);
+	}
 
 // ---------------------------------------------------------------------------
 // Destructor
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersave.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersave.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -23,6 +23,9 @@
 #include <glxtracer.h>
 #include <DocumentHandler.h>
 #include <glxpanic.h>
+#include <glxuiutilities.rsg>
+#include <glxgeneraluiutilities.h>
+#include <StringLoader.h>
 
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
@@ -86,21 +89,35 @@
             if ( imageHandle.SubSessionHandle() != KNullHandle )
                 {
                 TDataType nullType;
-                CDocumentHandler* handler = CDocumentHandler::NewLC(NULL); 
+                CDocumentHandler* handler = CDocumentHandler::NewLC(NULL);
                 __ASSERT_ALWAYS(handler, Panic(EGlxPanicNullPointer));
-                TRAP_IGNORE(handler->CopyL(imageHandle, KNullDesC, nullType, NULL));
+                TRAPD(err, handler->CopyL(imageHandle, KNullDesC, nullType, NULL));
                 CleanupStack::PopAndDestroy(handler);
+                if (err == KErrNone)
+                    {
+                    HBufC* noteText = StringLoader::LoadL(
+                            R_GLX_COMPLETION_FILE_SAVED_TO);
+                    if (noteText)
+                        {
+                        CleanupStack::PushL(noteText);
+                        GlxGeneralUiUtilities::ShowConfirmationNoteL(
+                                *noteText, ETrue);
+                        CleanupStack::PopAndDestroy(noteText);
+                        }
+                    }
                 }            
     		}
     	return ETrue;
     	}
     return EFalse;
     } 
+
 // ---------------------------------------------------------------------------
 // DynInitMenuPaneL
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerSave::DynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane* aMenuPane)
+void CGlxCommandHandlerSave::DynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane* aMenuPane,
+                                                TBool /*aIsBrowseMode*/)
     {
     TRACER("CGlxCommandHandlerSave::DynInitMenuPaneL");
     if ( aMenuPane )
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -24,7 +24,7 @@
 //  EXTERNAL INCLUDES
 #include <utf.h>							// for CnvUtfConverter
 #include <sendui.h>							// for CSendui
-#include <Sendnorm.rsg>						// for CSendui resources
+#include <sendnorm.rsg>						// for CSendui resources
 #include <SendUiConsts.h>					// for CSendui plugin type constants
 #include <CMessageData.h>					// for CMessageData
 #include <coemain.h>						// for CCoeEnv
@@ -63,13 +63,14 @@
 // Two-phased constructor.
 // ----------------------------------------------------------------------------
 EXPORT_C CGlxCommandHandlerSend* CGlxCommandHandlerSend::NewL(
-										MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem)
+		MGlxMediaListProvider* aMediaListProvider, TBool aHasToolbarItem,
+		const TDesC& aFileName)
 	{
 	GLX_FUNC("CGlxCommandHandlerSend::NewL");
-	CGlxCommandHandlerSend* self = 
-			new (ELeave) CGlxCommandHandlerSend(aMediaListProvider, aHasToolbarItem);
+	CGlxCommandHandlerSend* self = new (ELeave) CGlxCommandHandlerSend(
+			aMediaListProvider, aHasToolbarItem);
 	CleanupStack::PushL(self);
-	self->ConstructL();
+	self->ConstructL(aFileName);
 	CleanupStack::Pop(self);
 	return self;
 	}
@@ -84,28 +85,30 @@
 	// nothing to do
 	}			
 
+
+
 // ----------------------------------------------------------------------------
 // Symbian 2nd phase constructor can leave.
 // ----------------------------------------------------------------------------
-void CGlxCommandHandlerSend::ConstructL()
+void CGlxCommandHandlerSend::ConstructL(const TDesC& aFileName)
 	{
 	GLX_FUNC("CGlxCommandHandlerSend::ConstructL");
-	
+
 	iUiUtility = CGlxUiUtility::UtilityL();
 	iSendUi = CSendUi::NewL();
-	
-	LoadRscFileL();
-	
+
+	LoadRscFileL(aFileName);
+
 	// add the Send command
-   	TCommandInfo info(EGlxCmdSend);
-    info.iMinSelectionLength = 1;
-    info.iMaxSelectionLength = KMaxTInt;
-   	AddCommandL(info);
-	
-   	TCommandInfo singleclickinfo(EGlxCmdSingleClickSend);
-   	singleclickinfo.iMinSelectionLength = 1;
-   	singleclickinfo.iMaxSelectionLength = KMaxTInt;
-    AddCommandL(singleclickinfo);
+	TCommandInfo info(EGlxCmdSend);
+	info.iMinSelectionLength = 1;
+	info.iMaxSelectionLength = KMaxTInt;
+	AddCommandL(info);
+
+	TCommandInfo singleclickinfo(EGlxCmdSingleClickSend);
+	singleclickinfo.iMinSelectionLength = 1;
+	singleclickinfo.iMaxSelectionLength = KMaxTInt;
+	AddCommandL(singleclickinfo);
 	}	
 	
 
@@ -363,20 +366,15 @@
 	
 
 
+
 // ----------------------------------------------------------------------------
 // LoadRscFileL
 // ----------------------------------------------------------------------------
-void CGlxCommandHandlerSend::LoadRscFileL()
+void CGlxCommandHandlerSend::LoadRscFileL(const TDesC& aFileName)
 	{
 	GLX_FUNC("CGlxCommandHandlerSend::LoadRscFileL");
-
-	TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
-    CCoeEnv* env = CCoeEnv::Static(); 
-   	iResourceOffset = env->AddResourceFileL(resourceFile);
+	CCoeEnv* env = CCoeEnv::Static();
+	iResourceOffset = env->AddResourceFileL(aFileName);
 	}
 
 
@@ -423,4 +421,24 @@
     
     return ETrue;
     }
+
+// ----------------------------------------------------------------------------
+// HandleItemSelectedL
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerSend::HandleItemSelectedL(TInt /*aIndex*/,
+        TBool /*aSelected*/, MGlxMediaList* aList)
+    {
+    GLX_FUNC("CGlxCommandHandlerSend::HandleItemSelectedL");
+    if (aList->SelectionCount() > 0 && iUiUtility->GetGridToolBar())
+        {
+        iUiUtility->GetGridToolBar()->SetItemDimmed(EGlxCmdSend, EFalse,
+                ETrue);
+        }
+    else
+        {
+        iUiUtility->GetGridToolBar()->SetItemDimmed(EGlxCmdSend, ETrue, ETrue);
+        }
+    }
+
 // End of file		
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -56,16 +56,18 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C CGlxCommandHandlerSlideshow* CGlxCommandHandlerSlideshow::NewL(
-    MGlxMediaListProvider* aMediaListProvider, TBool aStepBack, TBool aHasToolbarItem )
-    {
-    TRACER( "CGlxCommandHandlerSlideshow::NewL" );
-    CGlxCommandHandlerSlideshow* self = new ( ELeave )
-    	CGlxCommandHandlerSlideshow(aMediaListProvider, aStepBack, aHasToolbarItem);
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
+		MGlxMediaListProvider* aMediaListProvider, TBool aStepBack,
+		TBool aHasToolbarItem, const TDesC& aFileName)
+	{
+	TRACER( "CGlxCommandHandlerSlideshow::NewL" );
+	CGlxCommandHandlerSlideshow* self =
+			new (ELeave) CGlxCommandHandlerSlideshow(aMediaListProvider,
+					aStepBack, aHasToolbarItem);
+	CleanupStack::PushL(self);
+	self->ConstructL(aFileName);
+	CleanupStack::Pop(self);
+	return self;
+	}
 
 // ---------------------------------------------------------------------------
 // C++ default constructor can NOT contain any code, that
@@ -79,66 +81,61 @@
     // Do nothing
     }
  
+
 // ---------------------------------------------------------------------------
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //
-void CGlxCommandHandlerSlideshow::ConstructL()
-    {
-    TRACER( "CGlxCommandHandlerSlideshow::ConstructL" );
-    
-    // Get a handle 
-    iUiUtility = CGlxUiUtility::UtilityL();
+void CGlxCommandHandlerSlideshow::ConstructL(const TDesC& aFileName)
+	{
+	TRACER( "CGlxCommandHandlerSlideshow::ConstructL" );
 
-    // Load resource file
-	TParse parse;
-    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName());
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
-   	iResourceOffset = CCoeEnv::Static()->AddResourceFileL( resourceFile );
+	// Get a handle 
+	iUiUtility = CGlxUiUtility::UtilityL();
+
+	iResourceOffset = CCoeEnv::Static()->AddResourceFileL(aFileName);
+
+	iShowInToolbar = ETrue;
 
-    iShowInToolbar = ETrue;
-
-   	// Add supported commands with filter fields
-   	// Play slideshow forwards
-   	TCommandInfo info( EGlxCmdSlideshowPlay );
-   	// Disable for static items and dont enable empty slideshow
-    info.iMinSelectionLength = 1;
-   	// Enable only for albums that have more than one item
-    info.iMinSlideshowPlayableContainedItemCount = 1;
-    // Disable for animated GIFs
-    info.iDisallowAnimatedGIFs = ETrue;
-    // Disable DRM protected content
-    info.iDisallowDRM = ETrue;
-    // Note: cannot just require all to be images as user can also start 
-    // slideshow for a whole album from list view and in that case
-    // selection contains a container
+	// Add supported commands with filter fields
+	// Play slideshow forwards
+	TCommandInfo info(EGlxCmdSlideshowPlay);
+	// Disable for static items and dont enable empty slideshow
+	info.iMinSelectionLength = 1;
+	// Enable only for albums that have more than one item
+	info.iMinSlideshowPlayableContainedItemCount = 1;
+	// Disable for animated GIFs
+	info.iDisallowAnimatedGIFs = ETrue;
+	// Disable DRM protected content
+	info.iDisallowDRM = ETrue;
+	// Note: cannot just require all to be images as user can also start 
+	// slideshow for a whole album from list view and in that case
+	// selection contains a container
 	// Disable all videos
 	TMPXGeneralCategory categoryFilter = EMPXVideo;
 	// Disable the command for videos
 	TCommandInfo::TCategoryRule categoryRule = TCommandInfo::EForbidAll;
 	info.iCategoryFilter = categoryFilter;
 	info.iCategoryRule = categoryRule;
-   	AddCommandL( info );
-   	
-    // new info to get the default filters
-   	TCommandInfo info_show_always( EGlxCmdSlideshowSettings );
-   	// Disable for empty views and views with only static items
-    info_show_always.iMinSelectionLength = 1;
-   	// slideshow settings
-   	AddCommandL( info_show_always );
+	AddCommandL(info);
+
+	// new info to get the default filters
+	TCommandInfo info_show_always(EGlxCmdSlideshowSettings);
+	// Disable for empty views and views with only static items
+	info_show_always.iMinSelectionLength = 1;
+	// slideshow settings
+	AddCommandL(info_show_always);
 
-   	// Menu
-   	info_show_always.iCommandId = EGlxCmdSlideshow;
-   	AddCommandL( info_show_always );
+	// Menu
+	info_show_always.iCommandId = EGlxCmdSlideshow;
+	AddCommandL(info_show_always);
 
-    // Dummy command to get UPnP state
-    TCommandInfo infoUpnpState( EGlxCmdShowViaUpnpStateChanged );
-    AddCommandL( infoUpnpState );
+	// Dummy command to get UPnP state
+	TCommandInfo infoUpnpState(EGlxCmdShowViaUpnpStateChanged);
+	AddCommandL(infoUpnpState);
 
-   	// Buffer
-   	iBufFlat = CBufFlat::NewL( KShwDefaultBufferSize );
+	// Buffer
+	iBufFlat = CBufFlat::NewL(KShwDefaultBufferSize);
 	}
 
 // ---------------------------------------------------------------------------
@@ -278,6 +275,8 @@
 			// Activating and deactivating the HUI within the Settings 
 			// Dialog class will cause a Cone 8 panic.
 			
+			iAvkonAppUi->ProcessCommandL(EGlxCmdDialogLaunched);
+			
 			// hide HUI display
 			CGlxUiUtility::HideAlfDisplayL();
 				{
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxmediaselectionpopup.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxmediaselectionpopup.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -413,9 +413,10 @@
 
         if (iMediaList->Item(iListBox->CurrentItemIndex()).IsStatic())
             {
-
-            CGlxCommandHandlerNewMedia* commandHandlerNewMedia =
-                    CGlxCommandHandlerNewMedia::NewL(this);
+			TFileName uiutilitiesrscfile;
+			uiutilitiesrscfile.Append(CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
+			CGlxCommandHandlerNewMedia* commandHandlerNewMedia =
+			CGlxCommandHandlerNewMedia::NewL(this,uiutilitiesrscfile);
             TGlxMediaId newMediaId;
             TInt error = commandHandlerNewMedia->ExecuteLD(newMediaId);
             if (error == KErrNone)
--- a/photosgallery/viewframework/commandhandlers/inc/glxcommandhandlers.hrh	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/commandhandlers/inc/glxcommandhandlers.hrh	Tue Apr 27 16:37:53 2010 +0300
@@ -98,6 +98,7 @@
     EGlxCmdAiwSingleClickEdit,
     EGlxCmdSingleClickRemoveFrom,
     EGlxCmdRenameCompleted, 
+    EGlxCmdDialogLaunched,
     EGlxCmdAiwBase = 0x6000
     };
     
--- a/photosgallery/viewframework/dataprovider/inc/glxdetailsboundcommand.hrh	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/dataprovider/inc/glxdetailsboundcommand.hrh	Tue Apr 27 16:37:53 2010 +0300
@@ -45,8 +45,8 @@
 	ELocationItem,
 	ESizeItem,
 	EResolutionItem,
-	EDurationItem,
-	ElicenseItem
+	ElicenseItem,
+	EDurationItem
 	};
 
 enum TImageVwrDetailsFields
--- a/photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -39,6 +39,7 @@
 #include    <glxviewbase.rsg>
 #include    "glxuiutility.h"
 #include <glxscreenfurniture.h>
+#include <glxresourceutilities.h>                // for CGlxResourceUtilities
 /** Error Id EMPY-7MKDHP **/ 
 #include 	"mglxmetadatadialogobserver.h" 				//for call back to dailog
 
@@ -220,6 +221,7 @@
 	return self;
 	}
 	
+
 // ----------------------------------------------------------------------------
 // CGlxTagsBoundCommand::ConstructL
 // ----------------------------------------------------------------------------
@@ -227,8 +229,12 @@
 void CGlxTagsBoundCommand::ConstructL()
 	{
 	TRACER("CGlxTagsBoundCommand::ConstructL");
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
 	//create command handler
-	iAddToTag =  CGlxCommandHandlerAddToContainer::NewL(this, EGlxCmdAddTag, EFalse);
+	iAddToTag = CGlxCommandHandlerAddToContainer::NewL(this, EGlxCmdAddTag,
+			EFalse, uiutilitiesrscfile);
 	}
 	
 // ----------------------------------------------------------------------------
@@ -748,6 +754,7 @@
 	return self;
 	}
 	
+
 // ----------------------------------------------------------------------------
 // CGlxAlbumsBoundCommand::ConstructL
 // ----------------------------------------------------------------------------
@@ -755,8 +762,12 @@
 void CGlxAlbumsBoundCommand::ConstructL()
 	{
 	TRACER("CGlxAlbumsBoundCommand::ConstructL");
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
 	//create command handler
-	iAddToAlbum=  CGlxCommandHandlerAddToContainer::NewL(this, EGlxCmdAddToAlbum, EFalse );
+	iAddToAlbum = CGlxCommandHandlerAddToContainer::NewL(this,
+			EGlxCmdAddToAlbum, EFalse, uiutilitiesrscfile);
 	}
 	
 // ----------------------------------------------------------------------------
--- a/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -176,11 +176,20 @@
         TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateIconTextureL( 
     	    icon.bitmapId, resFile, defaultSize ).Id() );
         }
+    else if( drm && isValid == EGlxDrmRightsInvalid )
+    	{
+		//show default image for DRM expired images
+    	GLX_LOG_INFO( "GlxThumbnailVariantType::CreateIconTextureL"
+    			"::EGlxDrmRightsInvalid" );
+    	TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateIconTextureL( 
+    			EMbmGlxiconsQgn_prop_image_notcreated, resFile, defaultSize ).Id() );
+		}
 	else if ( (KErrNone == thumbnailError) || (KErrArgument == thumbnailError) 
         || (KErrDiskFull == thumbnailError) || (KErrNoMemory == thumbnailError) 
-		|| ( drm && isValid == EGlxDrmRightsInvalid ) 
-		|| thumbnailError == KErrCANoRights )
+		|| (KErrCANoRights == thumbnailError) )
 	    {
+        GLX_LOG_INFO1( "GlxThumbnailVariantType::thumbnailError=%d" , 
+        		thumbnailError );
 		//Try and see if we can scale and show the grid tnm else show the default
 	    TBool isGridTnmShown = EFalse;		
 	    if(HasRelevantThumbnail(aMedia,defaultSize))
--- a/photosgallery/viewframework/medialists/bwins/glxmedialistsu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/bwins/glxmedialistsu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -10,97 +10,97 @@
 	??0TGlxWindowIterator@@QAE@ABV0@@Z @ 9 NONAME ; TGlxWindowIterator::TGlxWindowIterator(class TGlxWindowIterator const &)
 	?NewL@CGlxDefaultAttributeContext@@SAPAV1@XZ @ 10 NONAME ; class CGlxDefaultAttributeContext * CGlxDefaultAttributeContext::NewL(void)
 	?SetRangeOffsets@TGlxFromFocusOutwardIterator@@QAEXHH@Z @ 11 NONAME ; void TGlxFromFocusOutwardIterator::SetRangeOffsets(int, int)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 12 NONAME ; int TGlxMedia::GetSize(int &) const
-	??ETGlxWindowIterator@@QAEHH@Z @ 13 NONAME ; int TGlxWindowIterator::operator++(int)
-	?__DbgTestInvariant@CGlxListWindow@@QBEXXZ @ 14 NONAME ; void CGlxListWindow::__DbgTestInvariant(void) const
-	?NewL@CGlxUStringConverter@@SAPAV1@XZ @ 15 NONAME ; class CGlxUStringConverter * CGlxUStringConverter::NewL(void)
-	?InstanceL@MGlxCache@@SAPAV1@XZ @ 16 NONAME ; class MGlxCache * MGlxCache::InstanceL(void)
-	?Reset@CGlxMedia@@QAEXXZ @ 17 NONAME ; void CGlxMedia::Reset(void)
-	?AddObjects@CGlxListWindow@@QAEXHHHH@Z @ 18 NONAME ; void CGlxListWindow::AddObjects(int, int, int, int)
-	??0CGlxThumbnailContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 19 NONAME ; CGlxThumbnailContext::CGlxThumbnailContext(class MGlxMediaListIterator *)
-	?SetRangeOffsetsL@CGlxListWindow@@QAEXHHHH@Z @ 20 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int, int, int)
-	??0TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 21 NONAME ; TGlxFromFocusOutwardBlockyIterator::TGlxFromFocusOutwardBlockyIterator(void)
-	?UnmarkAllL@MGlxMediaList@@SAXAAV1@@Z @ 22 NONAME ; void MGlxMediaList::UnmarkAllL(class MGlxMediaList &)
-	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 23 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
-	??1TGlxSelectionIterator@@QAE@XZ @ 24 NONAME ; TGlxSelectionIterator::~TGlxSelectionIterator(void)
-	?SetGranularity@CGlxAttributeContext@@QAEXI@Z @ 25 NONAME ; void CGlxAttributeContext::SetGranularity(unsigned int)
-	??0TGlxSelectionIterator@@QAE@XZ @ 26 NONAME ; TGlxSelectionIterator::TGlxSelectionIterator(void)
-	??0TGlxFromFocusOutwardIterator@@QAE@XZ @ 27 NONAME ; TGlxFromFocusOutwardIterator::TGlxFromFocusOutwardIterator(void)
-	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 28 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
-	??1TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 29 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::~TGlxFromManualIndexOutwardBlockyIterator(void)
-	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 30 NONAME ; int TGlxMedia::GetFrameCount(int &) const
-	??0TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 31 NONAME ; TGlxFromManualIndexBlockyIterator::TGlxFromManualIndexBlockyIterator(void)
-	?SetRangeOffsets@TGlxFromIndexOutwardBlockyIterator@@QAEXHH@Z @ 32 NONAME ; void TGlxFromIndexOutwardBlockyIterator::SetRangeOffsets(int, int)
-	?SetFocusIndex@CGlxListWindow@@QAEXH@Z @ 33 NONAME ; void CGlxListWindow::SetFocusIndex(int)
-	??1TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 34 NONAME ; TGlxFromFocusOutwardBlockyIterator::~TGlxFromFocusOutwardBlockyIterator(void)
-	??1CGlxDefaultThumbnailContext@@UAE@XZ @ 35 NONAME ; CGlxDefaultThumbnailContext::~CGlxDefaultThumbnailContext(void)
-	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 36 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
-	??0TGlxFromIndexOutwardBlockyIterator@@QAE@ABVMGlxIndex@0@@Z @ 37 NONAME ; TGlxFromIndexOutwardBlockyIterator::TGlxFromIndexOutwardBlockyIterator(class TGlxFromIndexOutwardBlockyIterator::MGlxIndex const &)
-	?ConstructL@CGlxListWindow@@QAEXXZ @ 38 NONAME ; void CGlxListWindow::ConstructL(void)
-	?SetRange@TGlxSequentialIterator@@QAEXH@Z @ 39 NONAME ; void TGlxSequentialIterator::SetRange(int)
-	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 40 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	?SetRangeOffsets@TGlxFromManualIndexBlockyIterator@@QAEXHH@Z @ 41 NONAME ; void TGlxFromManualIndexBlockyIterator::SetRangeOffsets(int, int)
-	?SetIndex@TGlxFromManualIndexOutwardBlockyIterator@@QAEXH@Z @ 42 NONAME ; void TGlxFromManualIndexOutwardBlockyIterator::SetIndex(int)
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 43 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 44 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 45 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?SetRange@TGlxSelectionIterator@@QAEXH@Z @ 46 NONAME ; void TGlxSelectionIterator::SetRange(int)
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 47 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 48 NONAME ; int TGlxMedia::GetDate(class TTime &) const
-	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 49 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
-	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 50 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
-	?SetDefaultSpec@CGlxAttributeContext@@QAEXHH@Z @ 51 NONAME ; void CGlxAttributeContext::SetDefaultSpec(int, int)
-	?IsStatic@TGlxMedia@@QBEHXZ @ 52 NONAME ; int TGlxMedia::IsStatic(void) const
-	??0CGlxListWindow@@QAE@AAVMGlxWindowObjectFactory@@@Z @ 53 NONAME ; CGlxListWindow::CGlxListWindow(class MGlxWindowObjectFactory &)
-	?AddSpecForItemL@CGlxThumbnailContext@@QAEXHHH@Z @ 54 NONAME ; void CGlxThumbnailContext::AddSpecForItemL(int, int, int)
-	??1CGlxDefaultAttributeContext@@UAE@XZ @ 55 NONAME ; CGlxDefaultAttributeContext::~CGlxDefaultAttributeContext(void)
-	?ThumbnailAttribute@TGlxMedia@@QBEPBVCGlxThumbnailAttribute@@AAVTMPXAttribute@@@Z @ 56 NONAME ; class CGlxThumbnailAttribute const * TGlxMedia::ThumbnailAttribute(class TMPXAttribute &) const
-	??1TGlxFirstThenLastIterator@@QAE@XZ @ 57 NONAME ; TGlxFirstThenLastIterator::~TGlxFirstThenLastIterator(void)
-	?Title@TGlxMedia@@QBEABVTDesC16@@XZ @ 58 NONAME ; class TDesC16 const & TGlxMedia::Title(void) const
-	??ETGlxSelectionIterator@@UAEHH@Z @ 59 NONAME ; int TGlxSelectionIterator::operator++(int)
-	?AddAttributeL@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 60 NONAME ; void CGlxAttributeContext::AddAttributeL(class TMPXAttribute const &)
-	?SetRangeOffsets@CGlxDefaultThumbnailContext@@QAEXHH@Z @ 61 NONAME ; void CGlxDefaultThumbnailContext::SetRangeOffsets(int, int)
-	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 62 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
-	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 63 NONAME ; int TGlxMedia::GetDuration(float &) const
-	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 64 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?InstanceL@MGlxMediaList@@SAPAV1@ABVCMPXCollectionPath@@ABV?$TGlxId@VTGlxIdHierarchyBase@@@@PAVCMPXMedia@@@Z @ 65 NONAME ; class MGlxMediaList * MGlxMediaList::InstanceL(class CMPXCollectionPath const &, class TGlxId<class TGlxIdHierarchyBase> const &, class CMPXMedia *)
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 66 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	?RemoveObjects@CGlxListWindow@@QAEXHHHH@Z @ 67 NONAME ; void CGlxListWindow::RemoveObjects(int, int, int, int)
-	?Iterator@CGlxListWindow@@QBE?AVTGlxWindowIterator@@XZ @ 68 NONAME ; class TGlxWindowIterator CGlxListWindow::Iterator(void) const
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 69 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	??0CGlxAttributeContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 70 NONAME ; CGlxAttributeContext::CGlxAttributeContext(class MGlxMediaListIterator *)
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 71 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 72 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
-	?AddObjects@CGlxListWindow@@QAEXHH@Z @ 73 NONAME ; void CGlxListWindow::AddObjects(int, int)
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 74 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	??ETGlxWindowIterator@@QAEHH@Z @ 12 NONAME ; int TGlxWindowIterator::operator++(int)
+	?__DbgTestInvariant@CGlxListWindow@@QBEXXZ @ 13 NONAME ; void CGlxListWindow::__DbgTestInvariant(void) const
+	?NewL@CGlxUStringConverter@@SAPAV1@XZ @ 14 NONAME ; class CGlxUStringConverter * CGlxUStringConverter::NewL(void)
+	?InstanceL@MGlxCache@@SAPAV1@XZ @ 15 NONAME ; class MGlxCache * MGlxCache::InstanceL(void)
+	?Reset@CGlxMedia@@QAEXXZ @ 16 NONAME ; void CGlxMedia::Reset(void)
+	?AddObjects@CGlxListWindow@@QAEXHHHH@Z @ 17 NONAME ; void CGlxListWindow::AddObjects(int, int, int, int)
+	??0CGlxThumbnailContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 18 NONAME ; CGlxThumbnailContext::CGlxThumbnailContext(class MGlxMediaListIterator *)
+	?SetRangeOffsetsL@CGlxListWindow@@QAEXHHHH@Z @ 19 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int, int, int)
+	??0TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 20 NONAME ; TGlxFromFocusOutwardBlockyIterator::TGlxFromFocusOutwardBlockyIterator(void)
+	?UnmarkAllL@MGlxMediaList@@SAXAAV1@@Z @ 21 NONAME ; void MGlxMediaList::UnmarkAllL(class MGlxMediaList &)
+	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 22 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
+	??1TGlxSelectionIterator@@QAE@XZ @ 23 NONAME ; TGlxSelectionIterator::~TGlxSelectionIterator(void)
+	?SetGranularity@CGlxAttributeContext@@QAEXI@Z @ 24 NONAME ; void CGlxAttributeContext::SetGranularity(unsigned int)
+	??0TGlxSelectionIterator@@QAE@XZ @ 25 NONAME ; TGlxSelectionIterator::TGlxSelectionIterator(void)
+	??0TGlxFromFocusOutwardIterator@@QAE@XZ @ 26 NONAME ; TGlxFromFocusOutwardIterator::TGlxFromFocusOutwardIterator(void)
+	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 27 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
+	??1TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 28 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::~TGlxFromManualIndexOutwardBlockyIterator(void)
+	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 29 NONAME ; int TGlxMedia::GetFrameCount(int &) const
+	??0TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 30 NONAME ; TGlxFromManualIndexBlockyIterator::TGlxFromManualIndexBlockyIterator(void)
+	?SetRangeOffsets@TGlxFromIndexOutwardBlockyIterator@@QAEXHH@Z @ 31 NONAME ; void TGlxFromIndexOutwardBlockyIterator::SetRangeOffsets(int, int)
+	?SetFocusIndex@CGlxListWindow@@QAEXH@Z @ 32 NONAME ; void CGlxListWindow::SetFocusIndex(int)
+	??1TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 33 NONAME ; TGlxFromFocusOutwardBlockyIterator::~TGlxFromFocusOutwardBlockyIterator(void)
+	??1CGlxDefaultThumbnailContext@@UAE@XZ @ 34 NONAME ; CGlxDefaultThumbnailContext::~CGlxDefaultThumbnailContext(void)
+	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 35 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
+	??0TGlxFromIndexOutwardBlockyIterator@@QAE@ABVMGlxIndex@0@@Z @ 36 NONAME ; TGlxFromIndexOutwardBlockyIterator::TGlxFromIndexOutwardBlockyIterator(class TGlxFromIndexOutwardBlockyIterator::MGlxIndex const &)
+	?ConstructL@CGlxListWindow@@QAEXXZ @ 37 NONAME ; void CGlxListWindow::ConstructL(void)
+	?SetRange@TGlxSequentialIterator@@QAEXH@Z @ 38 NONAME ; void TGlxSequentialIterator::SetRange(int)
+	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 39 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
+	?SetRangeOffsets@TGlxFromManualIndexBlockyIterator@@QAEXHH@Z @ 40 NONAME ; void TGlxFromManualIndexBlockyIterator::SetRangeOffsets(int, int)
+	?SetIndex@TGlxFromManualIndexOutwardBlockyIterator@@QAEXH@Z @ 41 NONAME ; void TGlxFromManualIndexOutwardBlockyIterator::SetIndex(int)
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 42 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 43 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 44 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?SetRange@TGlxSelectionIterator@@QAEXH@Z @ 45 NONAME ; void TGlxSelectionIterator::SetRange(int)
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 46 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 47 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 48 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
+	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 49 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
+	?SetDefaultSpec@CGlxAttributeContext@@QAEXHH@Z @ 50 NONAME ; void CGlxAttributeContext::SetDefaultSpec(int, int)
+	?IsStatic@TGlxMedia@@QBEHXZ @ 51 NONAME ; int TGlxMedia::IsStatic(void) const
+	??0CGlxListWindow@@QAE@AAVMGlxWindowObjectFactory@@@Z @ 52 NONAME ; CGlxListWindow::CGlxListWindow(class MGlxWindowObjectFactory &)
+	?AddSpecForItemL@CGlxThumbnailContext@@QAEXHHH@Z @ 53 NONAME ; void CGlxThumbnailContext::AddSpecForItemL(int, int, int)
+	??1CGlxDefaultAttributeContext@@UAE@XZ @ 54 NONAME ; CGlxDefaultAttributeContext::~CGlxDefaultAttributeContext(void)
+	?ThumbnailAttribute@TGlxMedia@@QBEPBVCGlxThumbnailAttribute@@AAVTMPXAttribute@@@Z @ 55 NONAME ; class CGlxThumbnailAttribute const * TGlxMedia::ThumbnailAttribute(class TMPXAttribute &) const
+	??1TGlxFirstThenLastIterator@@QAE@XZ @ 56 NONAME ; TGlxFirstThenLastIterator::~TGlxFirstThenLastIterator(void)
+	?Title@TGlxMedia@@QBEABVTDesC16@@XZ @ 57 NONAME ; class TDesC16 const & TGlxMedia::Title(void) const
+	??ETGlxSelectionIterator@@UAEHH@Z @ 58 NONAME ; int TGlxSelectionIterator::operator++(int)
+	?AddAttributeL@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 59 NONAME ; void CGlxAttributeContext::AddAttributeL(class TMPXAttribute const &)
+	?SetRangeOffsets@CGlxDefaultThumbnailContext@@QAEXHH@Z @ 60 NONAME ; void CGlxDefaultThumbnailContext::SetRangeOffsets(int, int)
+	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 61 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
+	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 62 NONAME ; int TGlxMedia::GetDuration(float &) const
+	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 63 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
+	?InstanceL@MGlxMediaList@@SAPAV1@ABVCMPXCollectionPath@@ABV?$TGlxId@VTGlxIdHierarchyBase@@@@PAVCMPXMedia@@@Z @ 64 NONAME ; class MGlxMediaList * MGlxMediaList::InstanceL(class CMPXCollectionPath const &, class TGlxId<class TGlxIdHierarchyBase> const &, class CMPXMedia *)
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 65 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	?RemoveObjects@CGlxListWindow@@QAEXHHHH@Z @ 66 NONAME ; void CGlxListWindow::RemoveObjects(int, int, int, int)
+	?Iterator@CGlxListWindow@@QBE?AVTGlxWindowIterator@@XZ @ 67 NONAME ; class TGlxWindowIterator CGlxListWindow::Iterator(void) const
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 68 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	??0CGlxAttributeContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 69 NONAME ; CGlxAttributeContext::CGlxAttributeContext(class MGlxMediaListIterator *)
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 70 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 71 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
+	?AddObjects@CGlxListWindow@@QAEXHH@Z @ 72 NONAME ; void CGlxListWindow::AddObjects(int, int)
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 73 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	??0TGlxSequentialIterator@@QAE@XZ @ 74 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
 	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 75 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
-	??0TGlxSequentialIterator@@QAE@XZ @ 76 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
-	?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 77 NONAME ; int CGlxAttributeContext::AttributeCount(void)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 78 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 79 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
-	?SetFocusIndex@CGlxListWindow@@QAEXHH@Z @ 80 NONAME ; void CGlxListWindow::SetFocusIndex(int, int)
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 81 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 82 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 83 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 84 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 85 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	??1CGlxMedia@@UAE@XZ @ 86 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 87 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 88 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	??1CGlxThumbnailContext@@UAE@XZ @ 89 NONAME ; CGlxThumbnailContext::~CGlxThumbnailContext(void)
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 90 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 91 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?RemoveObjects@CGlxListWindow@@QAEXHH@Z @ 92 NONAME ; void CGlxListWindow::RemoveObjects(int, int)
-	?Close@TGlxFetchContextRemover@@QAEXXZ @ 93 NONAME ; void TGlxFetchContextRemover::Close(void)
-	?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 94 NONAME ; class CBase const * CGlxListWindow::At(int) const
+	?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 76 NONAME ; int CGlxAttributeContext::AttributeCount(void)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 77 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 78 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
+	?SetFocusIndex@CGlxListWindow@@QAEXHH@Z @ 79 NONAME ; void CGlxListWindow::SetFocusIndex(int, int)
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 80 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 81 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 82 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 83 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 84 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	??1CGlxMedia@@UAE@XZ @ 85 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 86 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 87 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	??1CGlxThumbnailContext@@UAE@XZ @ 88 NONAME ; CGlxThumbnailContext::~CGlxThumbnailContext(void)
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 89 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 90 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	?RemoveObjects@CGlxListWindow@@QAEXHH@Z @ 91 NONAME ; void CGlxListWindow::RemoveObjects(int, int)
+	?Close@TGlxFetchContextRemover@@QAEXXZ @ 92 NONAME ; void TGlxFetchContextRemover::Close(void)
+	?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 93 NONAME ; class CBase const * CGlxListWindow::At(int) const
+	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 94 NONAME ; class CBase * CGlxListWindow::At(int)
 	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 95 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
-	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 96 NONAME ; class CBase * CGlxListWindow::At(int)
-	??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 97 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void)
-	?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 98 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &)
-	??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 99 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void)
-	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 100 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
-	??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 101 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void)
-	?Cleanup@CGlxListWindow@@QAEXXZ @ 102 NONAME ; void CGlxListWindow::Cleanup(void)
+	??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 96 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void)
+	?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 97 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &)
+	??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 98 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void)
+	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 99 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
+	??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void)
+	?Cleanup@CGlxListWindow@@QAEXXZ @ 101 NONAME ; void CGlxListWindow::Cleanup(void)
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 102 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
 	??1TGlxExclusionIterator@@QAE@XZ @ 103 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
 	??1TGlxFetchContextRemover@@QAE@XZ @ 104 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
 	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 105 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
--- a/photosgallery/viewframework/medialists/eabi/glxmedialistsu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/eabi/glxmedialistsu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -146,7 +146,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 145 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 146 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 147 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 148 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 148 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 149 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 150 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 151 NONAME
--- a/photosgallery/viewframework/medialists/inc/glxmedia.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/inc/glxmedia.h	Tue Apr 27 16:37:53 2010 +0300
@@ -128,7 +128,7 @@
      * @return EFalse if unable to get size - aSize is unchanged. 
      *         ETrue if size successfully put in aSize.
      */
-    IMPORT_C TBool GetSize(TInt& aSize) const;
+    IMPORT_C TBool GetSize(TUint& aSize) const;
     
     /**
      * Get the duration associated with the media.
--- a/photosgallery/viewframework/medialists/src/glxattributecontext.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/src/glxattributecontext.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -236,12 +236,14 @@
         return;
         }
 
+    CleanupClosePushL(aAttributes);
     // Just list all attributes specified for this context
     TInt count = iAttributes.Count();
     for (TInt i = 0; i < count; i++) 
         {
         aAttributes.AppendL(iAttributes[i]);
         }
+    CleanupStack::Pop(&aAttributes);
     }
 
 // -----------------------------------------------------------------------------
@@ -343,7 +345,7 @@
         const TMPXAttribute& aAttribute) const
     {
     TRACER("CGlxAttributeContext::AddItemAttributeL");
-    
+    CleanupClosePushL(aAttributes);
     TIdentityRelation<TMPXAttribute> match(&TMPXAttribute::Match);
     TInt index = aAttributes.Find(aAttribute, match);
 
@@ -351,6 +353,7 @@
         {
         aAttributes.AppendL(aAttribute);
         }
+    CleanupStack::Pop(&aAttributes);
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/medialists/src/glxcache.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/src/glxcache.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -249,6 +249,7 @@
         RArray<TMPXAttribute>& aNewAttributes)
     {
     TRACER("CGlxCache::CopyNewAndModifiedL");
+    CleanupClosePushL(aNewAttributes);
     
     /// @todo This is all temporary until global chunk based CMPXMedia is available
     TInt count = aSource.Count();
@@ -317,7 +318,7 @@
                         }
                     else if (attrib == KMPXMediaGeneralSize)
                         {
-                        aTarget.SetTObjectValueL(attrib, aSource.ValueTObjectL<TInt>(attrib));
+                        aTarget.SetTObjectValueL(attrib, aSource.ValueTObjectL<TUint>(attrib));
                         }
                     else if (attrib == KMPXMediaColDetailSpaceId)
                         {
@@ -381,6 +382,7 @@
                 }
             }
         }
+    CleanupStack::Pop(&aNewAttributes);
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/medialists/src/glxcachemanager.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/src/glxcachemanager.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -856,7 +856,7 @@
                                             }
                                         if(err == KErrNone)
                                             {
-                                            iMPXMedia->SetTObjectValueL(KMPXMediaGeneralSize, sz);
+                                            iMPXMedia->SetTObjectValueL(KMPXMediaGeneralSize, (TUint)sz);
                                             }
                                         else
                                             {
@@ -872,7 +872,7 @@
                                             {
                                             TEntry entry;   
                                             fs.Entry(fileName,entry);    
-                                            TInt sz = (TUint)entry.iSize;                                      
+                                            TUint sz = entry.iSize;                                      
                                             iMPXMedia->SetTObjectValueL(KMPXMediaGeneralSize, sz);
                                             }
                                         else
--- a/photosgallery/viewframework/medialists/src/glxmedia.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/src/glxmedia.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -153,7 +153,7 @@
 // -----------------------------------------------------------------------------
 // Gets the (file) size
 // -----------------------------------------------------------------------------
-EXPORT_C TBool TGlxMedia::GetSize(TInt& aSize) const
+EXPORT_C TBool TGlxMedia::GetSize(TUint& aSize) const
     {
     TRACER("TGlxMedia::GetSize");
     
--- a/photosgallery/viewframework/medialists/src/glxnavigablelist.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/src/glxnavigablelist.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -561,6 +561,7 @@
     {
     TRACER( "CGlxNavigableList::SelectionL");
     
+    CleanupClosePushL(aItemIds);
     aItemIds.Reset();
 
     // Reserve full required space to avoid reallocations during loop
@@ -571,6 +572,7 @@
         {
         aItemIds.AppendL( iItemList->Item( iSelectedItemIndices[ i ] ).Id() );
         }
+    CleanupStack::Pop(&aItemIds);
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/medialists/src/glxustringconverter.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/src/glxustringconverter.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -35,6 +35,7 @@
 
 const TInt KBytesInKB = 1024;
 const TInt KBytesInMB = 1024 * 1024;
+const TInt KBytesInGB = 1024 * 1024 * 1024;
 _LIT( KBlankText, " " );
 
 
@@ -216,10 +217,15 @@
 void CGlxUStringConverter::GetFormattedItemSizeL(const CGlxMedia& aMedia, HBufC*& aString) const
  	{
  	TRACER("CGlxUStringConverter::GetFormattedItemSizeL");
-    TInt size(0);
+    TUint size(0);
     if(aMedia.GetValueTObject( size, KMPXMediaGeneralSize ))
         {
-		if(size >= KBytesInMB)
+        if(size >= KBytesInGB)
+            {
+            TInt gbSize = size / KBytesInGB ; // Size in GB
+            aString = StringLoader::LoadL(R_QTN_SIZE_GB, gbSize);
+            }
+        else if(size >= KBytesInMB)
             {
             TInt mbSize = size / KBytesInMB ; // Size in MB
         	aString = StringLoader::LoadL(R_QTN_SIZE_MB, mbSize);
--- a/photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxcacheu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxcacheu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -2,37 +2,37 @@
 	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 1 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
 	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 2 NONAME ; int TGlxMedia::GetDuration(float &) const
 	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 3 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 4 NONAME ; int TGlxMedia::GetSize(int &) const
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 5 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 6 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 7 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 8 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 9 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 10 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
-	?Reset@CGlxMedia@@QAEXXZ @ 11 NONAME ; void CGlxMedia::Reset(void)
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 12 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 13 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 14 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 15 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 16 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 17 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 18 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 19 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 20 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	??1CGlxMedia@@UAE@XZ @ 21 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 22 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 23 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 24 NONAME ; int TGlxMedia::GetFrameCount(int &) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 25 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 26 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 27 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 28 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
-	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 29 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 30 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 31 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 32 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 33 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 34 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 4 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 5 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 6 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 7 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 8 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 9 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
+	?Reset@CGlxMedia@@QAEXXZ @ 10 NONAME ; void CGlxMedia::Reset(void)
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 11 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 12 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 13 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 14 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 15 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 16 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 17 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 18 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 19 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	??1CGlxMedia@@UAE@XZ @ 20 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 21 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 22 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 23 NONAME ; int TGlxMedia::GetFrameCount(int &) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 24 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 25 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 26 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 27 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
+	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 28 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 29 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 30 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 31 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 32 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 33 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 34 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
 	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 35 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
 	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 36 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
 	?IsStatic@TGlxMedia@@QBEHXZ @ 37 NONAME ; int TGlxMedia::IsStatic(void) const
--- a/photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxgarbagecollectoru.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxgarbagecollectoru.def	Tue Apr 27 16:37:53 2010 +0300
@@ -2,43 +2,43 @@
 	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 1 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
 	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 2 NONAME ; int TGlxMedia::GetDuration(float &) const
 	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 3 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 4 NONAME ; int TGlxMedia::GetSize(int &) const
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 5 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	??0CIdle@@IAE@H@Z @ 6 NONAME ; CIdle::CIdle(int)
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 7 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 8 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 9 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
-	?NewL@CIdle@@SAPAV1@H@Z @ 10 NONAME ; class CIdle * CIdle::NewL(int)
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 11 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 12 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
-	?Reset@CGlxMedia@@QAEXXZ @ 13 NONAME ; void CGlxMedia::Reset(void)
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 14 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 15 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 16 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 17 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 18 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 19 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 20 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
-	?RunL@CIdle@@MAEXXZ @ 21 NONAME ; void CIdle::RunL(void)
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 22 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 23 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	??1CIdle@@UAE@XZ @ 24 NONAME ; CIdle::~CIdle(void)
-	??1CGlxMedia@@UAE@XZ @ 25 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 26 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
-	?Start@CIdle@@QAEXVTCallBack@@@Z @ 27 NONAME ; void CIdle::Start(class TCallBack)
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 28 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 29 NONAME ; int TGlxMedia::GetFrameCount(int &) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 30 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 31 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 32 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?New@CIdle@@SAPAV1@H@Z @ 33 NONAME ; class CIdle * CIdle::New(int)
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 34 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
-	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 35 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 36 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 37 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 38 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 39 NONAME ; int TGlxMedia::GetDate(class TTime &) const
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 40 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 4 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	??0CIdle@@IAE@H@Z @ 5 NONAME ; CIdle::CIdle(int)
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 6 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 7 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 8 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
+	?NewL@CIdle@@SAPAV1@H@Z @ 9 NONAME ; class CIdle * CIdle::NewL(int)
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 10 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 11 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
+	?Reset@CGlxMedia@@QAEXXZ @ 12 NONAME ; void CGlxMedia::Reset(void)
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 13 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 14 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 15 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 16 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 17 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 18 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 19 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
+	?RunL@CIdle@@MAEXXZ @ 20 NONAME ; void CIdle::RunL(void)
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 21 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 22 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	??1CIdle@@UAE@XZ @ 23 NONAME ; CIdle::~CIdle(void)
+	??1CGlxMedia@@UAE@XZ @ 24 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 25 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
+	?Start@CIdle@@QAEXVTCallBack@@@Z @ 26 NONAME ; void CIdle::Start(class TCallBack)
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 27 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 28 NONAME ; int TGlxMedia::GetFrameCount(int &) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 29 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 30 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 31 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?New@CIdle@@SAPAV1@H@Z @ 32 NONAME ; class CIdle * CIdle::New(int)
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 33 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
+	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 34 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 35 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 36 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 37 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 38 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 39 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 40 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
 	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 41 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
 	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 42 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
 	?IsStatic@TGlxMedia@@QBEHXZ @ 43 NONAME ; int TGlxMedia::IsStatic(void) const
--- a/photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxmediau.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/BWINS/t_cglxmediau.def	Tue Apr 27 16:37:53 2010 +0300
@@ -1,33 +1,33 @@
 EXPORTS
 	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 1 NONAME ; int TGlxMedia::GetDuration(float &) const
 	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 2 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 3 NONAME ; int TGlxMedia::GetSize(int &) const
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 4 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 5 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 6 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 7 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 8 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
-	?Reset@CGlxMedia@@QAEXXZ @ 9 NONAME ; void CGlxMedia::Reset(void)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 10 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 11 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 12 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 13 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 14 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 15 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 16 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	??1CGlxMedia@@UAE@XZ @ 17 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 18 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 19 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 20 NONAME ; int TGlxMedia::GetFrameCount(int &) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 21 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 22 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 23 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 24 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 25 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 26 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 27 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 28 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 29 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 3 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 4 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 5 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 6 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 7 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
+	?Reset@CGlxMedia@@QAEXXZ @ 8 NONAME ; void CGlxMedia::Reset(void)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 9 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 10 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 11 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 12 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 13 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 14 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 15 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	??1CGlxMedia@@UAE@XZ @ 16 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 17 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 18 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 19 NONAME ; int TGlxMedia::GetFrameCount(int &) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 20 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 21 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 22 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 23 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 24 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 25 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 26 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 27 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 28 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 29 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
 	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 30 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
 	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 31 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
 	?IsStatic@TGlxMedia@@QBEHXZ @ 32 NONAME ; int TGlxMedia::IsStatic(void) const
--- a/photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxattributecontextu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxattributecontextu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -10,8 +10,8 @@
 	?SetDisabledIfMoreThanRangeSelected@TGlxSelectionIterator@@QAEXH@Z @ 9 NONAME ; void TGlxSelectionIterator::SetDisabledIfMoreThanRangeSelected(int)
 	??0TGlxWindowIterator@@QAE@ABV0@@Z @ 10 NONAME ; TGlxWindowIterator::TGlxWindowIterator(class TGlxWindowIterator const &)
 	?NewL@CGlxDefaultAttributeContext@@SAPAV1@XZ @ 11 NONAME ; class CGlxDefaultAttributeContext * CGlxDefaultAttributeContext::NewL(void)
-	?SetRangeOffsets@TGlxFromFocusOutwardIterator@@QAEXHH@Z @ 12 NONAME ; void TGlxFromFocusOutwardIterator::SetRangeOffsets(int, int)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 13 NONAME ; int TGlxMedia::GetSize(int &) const
+	?ItemRightsValidityCheckL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 12 NONAME ; int CGlxDRMUtility::ItemRightsValidityCheckL(class TDesC16 const &, int)
+	?SetRangeOffsets@TGlxFromFocusOutwardIterator@@QAEXHH@Z @ 13 NONAME ; void TGlxFromFocusOutwardIterator::SetRangeOffsets(int, int)
 	??ETGlxWindowIterator@@QAEHH@Z @ 14 NONAME ; int TGlxWindowIterator::operator++(int)
 	?__DbgTestInvariant@CGlxListWindow@@QBEXXZ @ 15 NONAME ; void CGlxListWindow::__DbgTestInvariant(void) const
 	?InstanceL@MGlxCache@@SAPAV1@XZ @ 16 NONAME ; class MGlxCache * MGlxCache::InstanceL(void)
@@ -75,9 +75,9 @@
 	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 74 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
 	?AddObjects@CGlxListWindow@@QAEXHH@Z @ 75 NONAME ; void CGlxListWindow::AddObjects(int, int)
 	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 76 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 77 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
-	??0TGlxSequentialIterator@@QAE@XZ @ 78 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
-	?Close@CGlxDRMUtility@@QAEXXZ @ 79 NONAME ; void CGlxDRMUtility::Close(void)
+	??0TGlxSequentialIterator@@QAE@XZ @ 77 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
+	?Close@CGlxDRMUtility@@QAEXXZ @ 78 NONAME ; void CGlxDRMUtility::Close(void)
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 79 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
 	?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 80 NONAME ; int CGlxAttributeContext::AttributeCount(void)
 	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 81 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
 	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 82 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
@@ -96,28 +96,28 @@
 	?RemoveObjects@CGlxListWindow@@QAEXHH@Z @ 95 NONAME ; void CGlxListWindow::RemoveObjects(int, int)
 	?Close@TGlxFetchContextRemover@@QAEXXZ @ 96 NONAME ; void TGlxFetchContextRemover::Close(void)
 	?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 97 NONAME ; class CBase const * CGlxListWindow::At(int) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 98 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
-	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 99 NONAME ; class CBase * CGlxListWindow::At(int)
+	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 98 NONAME ; class CBase * CGlxListWindow::At(int)
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 99 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
 	??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void)
 	?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 101 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &)
 	??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 102 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void)
 	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 103 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
 	??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 104 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void)
 	?Cleanup@CGlxListWindow@@QAEXXZ @ 105 NONAME ; void CGlxListWindow::Cleanup(void)
-	??1TGlxExclusionIterator@@QAE@XZ @ 106 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
-	??1TGlxFetchContextRemover@@QAE@XZ @ 107 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
-	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 108 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
-	??0TGlxSpecificIdIterator@@QAE@ABV?$TGlxId@VTGlxIdSpaceIdBase@@@@VTGlxMediaId@@@Z @ 109 NONAME ; TGlxSpecificIdIterator::TGlxSpecificIdIterator(class TGlxId<class TGlxIdSpaceIdBase> const &, class TGlxMediaId)
-	?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 110 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const
-	?MatchById@TGlxMedia@@SAHABV1@0@Z @ 111 NONAME ; int TGlxMedia::MatchById(class TGlxMedia const &, class TGlxMedia const &)
-	?SetRangeOffsetsL@CGlxListWindow@@QAEXHH@Z @ 112 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int)
-	?MimeType@TGlxMedia@@QBEABVTDesC16@@XZ @ 113 NONAME ; class TDesC16 const & TGlxMedia::MimeType(void) const
-	?Uri@TGlxMedia@@QBEABVTDesC16@@XZ @ 114 NONAME ; class TDesC16 const & TGlxMedia::Uri(void) const
-	??0TGlxFirstThenLastIterator@@QAE@XZ @ 115 NONAME ; TGlxFirstThenLastIterator::TGlxFirstThenLastIterator(void)
-	??1CGlxAttributeContext@@UAE@XZ @ 116 NONAME ; CGlxAttributeContext::~CGlxAttributeContext(void)
-	?SetRangeOffsets@CGlxDefaultAttributeContext@@QAEXHH@Z @ 117 NONAME ; void CGlxDefaultAttributeContext::SetRangeOffsets(int, int)
-	?ValueCObject@CGlxMedia@@QBEPBVCBase@@ABVTMPXAttribute@@@Z @ 118 NONAME ; class CBase const * CGlxMedia::ValueCObject(class TMPXAttribute const &) const
-	?CheckOpenRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 119 NONAME ; int CGlxDRMUtility::CheckOpenRightsL(class TDesC16 const &, int)
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 106 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
+	??1TGlxExclusionIterator@@QAE@XZ @ 107 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
+	??1TGlxFetchContextRemover@@QAE@XZ @ 108 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
+	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 109 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
+	??0TGlxSpecificIdIterator@@QAE@ABV?$TGlxId@VTGlxIdSpaceIdBase@@@@VTGlxMediaId@@@Z @ 110 NONAME ; TGlxSpecificIdIterator::TGlxSpecificIdIterator(class TGlxId<class TGlxIdSpaceIdBase> const &, class TGlxMediaId)
+	?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 111 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const
+	?MatchById@TGlxMedia@@SAHABV1@0@Z @ 112 NONAME ; int TGlxMedia::MatchById(class TGlxMedia const &, class TGlxMedia const &)
+	?SetRangeOffsetsL@CGlxListWindow@@QAEXHH@Z @ 113 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int)
+	?MimeType@TGlxMedia@@QBEABVTDesC16@@XZ @ 114 NONAME ; class TDesC16 const & TGlxMedia::MimeType(void) const
+	?Uri@TGlxMedia@@QBEABVTDesC16@@XZ @ 115 NONAME ; class TDesC16 const & TGlxMedia::Uri(void) const
+	??0TGlxFirstThenLastIterator@@QAE@XZ @ 116 NONAME ; TGlxFirstThenLastIterator::TGlxFirstThenLastIterator(void)
+	??1CGlxAttributeContext@@UAE@XZ @ 117 NONAME ; CGlxAttributeContext::~CGlxAttributeContext(void)
+	?SetRangeOffsets@CGlxDefaultAttributeContext@@QAEXHH@Z @ 118 NONAME ; void CGlxDefaultAttributeContext::SetRangeOffsets(int, int)
+	?ValueCObject@CGlxMedia@@QBEPBVCBase@@ABVTMPXAttribute@@@Z @ 119 NONAME ; class CBase const * CGlxMedia::ValueCObject(class TMPXAttribute const &) const
 	?GetCoordinate@TGlxMedia@@QBEHAAVTCoordinate@@@Z @ 120 NONAME ; int TGlxMedia::GetCoordinate(class TCoordinate &) const
 	?NewL@CGlxDefaultThumbnailContext@@SAPAV1@XZ @ 121 NONAME ; class CGlxDefaultThumbnailContext * CGlxDefaultThumbnailContext::NewL(void)
 	?IsSlideShowPlayableContent@TGlxMedia@@QBEHXZ @ 122 NONAME ; int TGlxMedia::IsSlideShowPlayableContent(void) const
--- a/photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxitemlistu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxitemlistu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -1,36 +1,36 @@
 EXPORTS
 	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 1 NONAME ; int TGlxMedia::GetDuration(float &) const
 	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 2 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 3 NONAME ; int TGlxMedia::GetSize(int &) const
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 4 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 5 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 6 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 7 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 8 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 9 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
-	?Reset@CGlxMedia@@QAEXXZ @ 10 NONAME ; void CGlxMedia::Reset(void)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 11 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 12 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 13 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 14 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 15 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 16 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 17 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	??1CGlxMedia@@UAE@XZ @ 18 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 19 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 20 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 21 NONAME ; int TGlxMedia::GetFrameCount(int &) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 22 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 23 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 24 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 25 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
-	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 26 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 27 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 28 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 29 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 30 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 31 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 32 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 3 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 4 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 5 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 6 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 7 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 8 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
+	?Reset@CGlxMedia@@QAEXXZ @ 9 NONAME ; void CGlxMedia::Reset(void)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 10 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 11 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 12 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 13 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 14 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 15 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 16 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	??1CGlxMedia@@UAE@XZ @ 17 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 18 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 19 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 20 NONAME ; int TGlxMedia::GetFrameCount(int &) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 21 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 22 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 23 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 24 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
+	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 25 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
+	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 26 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 27 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 28 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 29 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 30 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 31 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 32 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
 	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 33 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
 	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 34 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
 	?IsStatic@TGlxMedia@@QBEHXZ @ 35 NONAME ; int TGlxMedia::IsStatic(void) const
--- a/photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxnavigablelistu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxnavigablelistu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -2,37 +2,37 @@
 	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 1 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
 	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 2 NONAME ; int TGlxMedia::GetDuration(float &) const
 	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 3 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 4 NONAME ; int TGlxMedia::GetSize(int &) const
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 5 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 6 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 7 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 8 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 9 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 10 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
-	?Reset@CGlxMedia@@QAEXXZ @ 11 NONAME ; void CGlxMedia::Reset(void)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 12 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 13 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 14 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 15 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 16 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 17 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 18 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 19 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	??1CGlxMedia@@UAE@XZ @ 20 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 21 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 22 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 23 NONAME ; int TGlxMedia::GetFrameCount(int &) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 24 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 25 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 26 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 27 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
-	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 28 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 29 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 30 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 31 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 32 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 33 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 34 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 4 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 5 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 6 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 7 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 8 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 9 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
+	?Reset@CGlxMedia@@QAEXXZ @ 10 NONAME ; void CGlxMedia::Reset(void)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 11 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 12 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 13 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 14 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 15 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 16 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 17 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 18 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	??1CGlxMedia@@UAE@XZ @ 19 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 20 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 21 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 22 NONAME ; int TGlxMedia::GetFrameCount(int &) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 23 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 24 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 25 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 26 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
+	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 27 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
+	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 28 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 29 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 30 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 31 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 32 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 33 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 34 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
 	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 35 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
 	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 36 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
 	?IsStatic@TGlxMedia@@QBEHXZ @ 37 NONAME ; int TGlxMedia::IsStatic(void) const
--- a/photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxstaticitemlistu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/BWINS/ut_cglxstaticitemlistu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -2,36 +2,36 @@
 	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 1 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
 	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 2 NONAME ; int TGlxMedia::GetDuration(float &) const
 	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 3 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 4 NONAME ; int TGlxMedia::GetSize(int &) const
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 5 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 6 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 7 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 8 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 9 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 10 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
-	?Reset@CGlxMedia@@QAEXXZ @ 11 NONAME ; void CGlxMedia::Reset(void)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 12 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 13 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 14 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 15 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 16 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 17 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 18 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	??1CGlxMedia@@UAE@XZ @ 19 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 20 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 21 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 22 NONAME ; int TGlxMedia::GetFrameCount(int &) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 23 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 24 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 25 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 26 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
-	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 27 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 28 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 29 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 30 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 31 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 32 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 33 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 4 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 5 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 6 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 7 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 8 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 9 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
+	?Reset@CGlxMedia@@QAEXXZ @ 10 NONAME ; void CGlxMedia::Reset(void)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 11 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 12 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 13 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 14 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 15 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 16 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 17 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	??1CGlxMedia@@UAE@XZ @ 18 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 19 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 20 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 21 NONAME ; int TGlxMedia::GetFrameCount(int &) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 22 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 23 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 24 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 25 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
+	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 26 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
+	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 27 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 28 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 29 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 30 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 31 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 32 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 33 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
 	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 34 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
 	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 35 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
 	?IsStatic@TGlxMedia@@QBEHXZ @ 36 NONAME ; int TGlxMedia::IsStatic(void) const
--- a/photosgallery/viewframework/medialists/tsrc/BWINS/ut_glxerrormanageru.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/BWINS/ut_glxerrormanageru.def	Tue Apr 27 16:37:53 2010 +0300
@@ -10,8 +10,8 @@
 	?SetDisabledIfMoreThanRangeSelected@TGlxSelectionIterator@@QAEXH@Z @ 9 NONAME ; void TGlxSelectionIterator::SetDisabledIfMoreThanRangeSelected(int)
 	??0TGlxWindowIterator@@QAE@ABV0@@Z @ 10 NONAME ; TGlxWindowIterator::TGlxWindowIterator(class TGlxWindowIterator const &)
 	?NewL@CGlxDefaultAttributeContext@@SAPAV1@XZ @ 11 NONAME ; class CGlxDefaultAttributeContext * CGlxDefaultAttributeContext::NewL(void)
-	?SetRangeOffsets@TGlxFromFocusOutwardIterator@@QAEXHH@Z @ 12 NONAME ; void TGlxFromFocusOutwardIterator::SetRangeOffsets(int, int)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 13 NONAME ; int TGlxMedia::GetSize(int &) const
+	?ItemRightsValidityCheckL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 12 NONAME ; int CGlxDRMUtility::ItemRightsValidityCheckL(class TDesC16 const &, int)
+	?SetRangeOffsets@TGlxFromFocusOutwardIterator@@QAEXHH@Z @ 13 NONAME ; void TGlxFromFocusOutwardIterator::SetRangeOffsets(int, int)
 	??ETGlxWindowIterator@@QAEHH@Z @ 14 NONAME ; int TGlxWindowIterator::operator++(int)
 	?__DbgTestInvariant@CGlxListWindow@@QBEXXZ @ 15 NONAME ; void CGlxListWindow::__DbgTestInvariant(void) const
 	?InstanceL@MGlxCache@@SAPAV1@XZ @ 16 NONAME ; class MGlxCache * MGlxCache::InstanceL(void)
@@ -75,9 +75,9 @@
 	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 74 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
 	?AddObjects@CGlxListWindow@@QAEXHH@Z @ 75 NONAME ; void CGlxListWindow::AddObjects(int, int)
 	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 76 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 77 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
-	??0TGlxSequentialIterator@@QAE@XZ @ 78 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
-	?Close@CGlxDRMUtility@@QAEXXZ @ 79 NONAME ; void CGlxDRMUtility::Close(void)
+	??0TGlxSequentialIterator@@QAE@XZ @ 77 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
+	?Close@CGlxDRMUtility@@QAEXXZ @ 78 NONAME ; void CGlxDRMUtility::Close(void)
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 79 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
 	?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 80 NONAME ; int CGlxAttributeContext::AttributeCount(void)
 	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 81 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
 	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 82 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
@@ -96,28 +96,28 @@
 	?RemoveObjects@CGlxListWindow@@QAEXHH@Z @ 95 NONAME ; void CGlxListWindow::RemoveObjects(int, int)
 	?Close@TGlxFetchContextRemover@@QAEXXZ @ 96 NONAME ; void TGlxFetchContextRemover::Close(void)
 	?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 97 NONAME ; class CBase const * CGlxListWindow::At(int) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 98 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
-	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 99 NONAME ; class CBase * CGlxListWindow::At(int)
+	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 98 NONAME ; class CBase * CGlxListWindow::At(int)
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 99 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
 	??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void)
 	?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 101 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &)
 	??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 102 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void)
 	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 103 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
 	??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 104 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void)
 	?Cleanup@CGlxListWindow@@QAEXXZ @ 105 NONAME ; void CGlxListWindow::Cleanup(void)
-	??1TGlxExclusionIterator@@QAE@XZ @ 106 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
-	??1TGlxFetchContextRemover@@QAE@XZ @ 107 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
-	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 108 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
-	??0TGlxSpecificIdIterator@@QAE@ABV?$TGlxId@VTGlxIdSpaceIdBase@@@@VTGlxMediaId@@@Z @ 109 NONAME ; TGlxSpecificIdIterator::TGlxSpecificIdIterator(class TGlxId<class TGlxIdSpaceIdBase> const &, class TGlxMediaId)
-	?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 110 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const
-	?MatchById@TGlxMedia@@SAHABV1@0@Z @ 111 NONAME ; int TGlxMedia::MatchById(class TGlxMedia const &, class TGlxMedia const &)
-	?SetRangeOffsetsL@CGlxListWindow@@QAEXHH@Z @ 112 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int)
-	?MimeType@TGlxMedia@@QBEABVTDesC16@@XZ @ 113 NONAME ; class TDesC16 const & TGlxMedia::MimeType(void) const
-	?Uri@TGlxMedia@@QBEABVTDesC16@@XZ @ 114 NONAME ; class TDesC16 const & TGlxMedia::Uri(void) const
-	??0TGlxFirstThenLastIterator@@QAE@XZ @ 115 NONAME ; TGlxFirstThenLastIterator::TGlxFirstThenLastIterator(void)
-	??1CGlxAttributeContext@@UAE@XZ @ 116 NONAME ; CGlxAttributeContext::~CGlxAttributeContext(void)
-	?SetRangeOffsets@CGlxDefaultAttributeContext@@QAEXHH@Z @ 117 NONAME ; void CGlxDefaultAttributeContext::SetRangeOffsets(int, int)
-	?ValueCObject@CGlxMedia@@QBEPBVCBase@@ABVTMPXAttribute@@@Z @ 118 NONAME ; class CBase const * CGlxMedia::ValueCObject(class TMPXAttribute const &) const
-	?CheckOpenRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 119 NONAME ; int CGlxDRMUtility::CheckOpenRightsL(class TDesC16 const &, int)
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 106 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
+	??1TGlxExclusionIterator@@QAE@XZ @ 107 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
+	??1TGlxFetchContextRemover@@QAE@XZ @ 108 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
+	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 109 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
+	??0TGlxSpecificIdIterator@@QAE@ABV?$TGlxId@VTGlxIdSpaceIdBase@@@@VTGlxMediaId@@@Z @ 110 NONAME ; TGlxSpecificIdIterator::TGlxSpecificIdIterator(class TGlxId<class TGlxIdSpaceIdBase> const &, class TGlxMediaId)
+	?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 111 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const
+	?MatchById@TGlxMedia@@SAHABV1@0@Z @ 112 NONAME ; int TGlxMedia::MatchById(class TGlxMedia const &, class TGlxMedia const &)
+	?SetRangeOffsetsL@CGlxListWindow@@QAEXHH@Z @ 113 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int)
+	?MimeType@TGlxMedia@@QBEABVTDesC16@@XZ @ 114 NONAME ; class TDesC16 const & TGlxMedia::MimeType(void) const
+	?Uri@TGlxMedia@@QBEABVTDesC16@@XZ @ 115 NONAME ; class TDesC16 const & TGlxMedia::Uri(void) const
+	??0TGlxFirstThenLastIterator@@QAE@XZ @ 116 NONAME ; TGlxFirstThenLastIterator::TGlxFirstThenLastIterator(void)
+	??1CGlxAttributeContext@@UAE@XZ @ 117 NONAME ; CGlxAttributeContext::~CGlxAttributeContext(void)
+	?SetRangeOffsets@CGlxDefaultAttributeContext@@QAEXHH@Z @ 118 NONAME ; void CGlxDefaultAttributeContext::SetRangeOffsets(int, int)
+	?ValueCObject@CGlxMedia@@QBEPBVCBase@@ABVTMPXAttribute@@@Z @ 119 NONAME ; class CBase const * CGlxMedia::ValueCObject(class TMPXAttribute const &) const
 	?GetCoordinate@TGlxMedia@@QBEHAAVTCoordinate@@@Z @ 120 NONAME ; int TGlxMedia::GetCoordinate(class TCoordinate &) const
 	?NewL@CGlxDefaultThumbnailContext@@SAPAV1@XZ @ 121 NONAME ; class CGlxDefaultThumbnailContext * CGlxDefaultThumbnailContext::NewL(void)
 	?IsSlideShowPlayableContent@TGlxMedia@@QBEHXZ @ 122 NONAME ; int TGlxMedia::IsSlideShowPlayableContent(void) const
--- a/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxcacheu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxcacheu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -38,7 +38,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 37 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 38 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 39 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 40 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 40 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 41 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 42 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 43 NONAME
--- a/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxgarbagecollectoru.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxgarbagecollectoru.def	Tue Apr 27 16:37:53 2010 +0300
@@ -48,7 +48,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 47 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 48 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 49 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 50 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 50 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 51 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 52 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 53 NONAME
--- a/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxmediau.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/t_cglxmediau.def	Tue Apr 27 16:37:53 2010 +0300
@@ -36,7 +36,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 35 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 36 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 37 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 38 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 38 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 39 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 40 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 41 NONAME
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxattributecontextu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxattributecontextu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -145,7 +145,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 144 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 145 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 146 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 147 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 147 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 148 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 149 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 150 NONAME
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxitemlistu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxitemlistu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -38,7 +38,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 37 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 38 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 39 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 40 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 40 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 41 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 42 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 43 NONAME
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxnavigablelistu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxnavigablelistu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -38,7 +38,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 37 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 38 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 39 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 40 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 40 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 41 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 42 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 43 NONAME
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxstaticitemlistu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_cglxstaticitemlistu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -38,7 +38,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 37 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 38 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 39 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 40 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 40 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 41 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 42 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 43 NONAME
--- a/photosgallery/viewframework/medialists/tsrc/eabi/ut_glxerrormanageru.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/eabi/ut_glxerrormanageru.def	Tue Apr 27 16:37:53 2010 +0300
@@ -145,7 +145,7 @@
 	_ZNK9TGlxMedia5TitleEv @ 144 NONAME
 	_ZNK9TGlxMedia7CommentEv @ 145 NONAME
 	_ZNK9TGlxMedia7GetDateER5TTime @ 146 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 147 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 147 NONAME
 	_ZNK9TGlxMedia8CategoryEv @ 148 NONAME
 	_ZNK9TGlxMedia8IsStaticEv @ 149 NONAME
 	_ZNK9TGlxMedia8MimeTypeEv @ 150 NONAME
--- a/photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -2260,11 +2260,13 @@
         TInt /*aIndex*/, 
         RArray<TMPXAttribute>& aAttributes)
     {
+    CleanupClosePushL(aAttributes);
     TInt attributeCount = iAttributes.Count();
     for (TInt i = 0; i < attributeCount; ++i)
         {
         aAttributes.AppendL(iAttributes[i]);
         }
+    CleanupStack::Pop(&aAttributes);
     }
 
 void T_CGlxGarbageCollector::CGlxMediaUserTest::RemoveReference(TInt aIndex)
--- a/photosgallery/viewframework/plugins/fullscreenviewplugin/data/glxfullscreenviewdata.rss	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/fullscreenviewplugin/data/glxfullscreenviewdata.rss	Tue Apr 27 16:37:53 2010 +0300
@@ -129,12 +129,8 @@
     {
         items=
                 {
-                MENU_ITEM { command = EGlxStopShowing; 
-                            txt=qtn_lgal_options_stop_show; }, 
                 MENU_ITEM { command = EGlxCmdPlay;
                             txt = qtn_lgal_options_play; },
-                MENU_ITEM { command = EGlxCmdHideUI;
-                            txt = qtn_lgal_options_hide_toolbar; },
                 MENU_ITEM { command = EGlxCmdSend;
                             txt = qtn_options_send_via; },   
                 MENU_ITEM { command = EGlxCmdAiwShareOnOvi; 
@@ -155,19 +151,9 @@
                 MENU_ITEM { command = EGlxCmdAiwAssign; 
                             txt = qtn_lgal_options_use_items; 
                             cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },
-                MENU_ITEM { command = EGlxCmdAiwShowMap;
-                            txt = qtn_lgal_option_show_on_map;
-                            cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },
-                MENU_ITEM { command = EGlxCmdDrmMoreInfoOnline;
-                            txt=qtn_drm_options_more_info; },  
-//                MENU_ITEM { command=EGlxCmdRotate; 
-//                            txt=qtn_lgal_options_rotate;
-//                            cascade = r_rotate_sub_menu; },  
                 MENU_ITEM { command = EGlxCmdAiwPrint; 
                             txt = qtn_lgal_options_print_menu; 
                             cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },             
-                MENU_ITEM { command=EGlxShowViaUpnp; 
-                            txt=qtn_lgal_options_show_ext; },               
                 MENU_ITEM { command = EAknCmdHelp; 
                             txt = qtn_options_help; },
                 MENU_ITEM { command = EAknCmdExit; 
@@ -181,12 +167,8 @@
     {
     items=
             {
-            MENU_ITEM { command = EGlxStopShowing; 
-                        txt=qtn_lgal_options_stop_show; }, 
             MENU_ITEM { command = EGlxCmdPlay;
                         txt = qtn_lgal_options_play; },
-            MENU_ITEM { command = EGlxCmdHideUI;
-                        txt = qtn_lgal_options_hide_toolbar; },
             MENU_ITEM { command = EGlxCmdSend;
                         txt = qtn_options_send_via; }, 
             MENU_ITEM { command = EGlxCmdAiwShareOnOvi; 
@@ -209,19 +191,9 @@
             MENU_ITEM { command = EGlxCmdAiwAssign; 
                         txt = qtn_lgal_options_use_items; 
                         cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },
-            MENU_ITEM { command = EGlxCmdAiwShowMap;
-                        txt = qtn_lgal_option_show_on_map;
-                        cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },
-            MENU_ITEM { command = EGlxCmdDrmMoreInfoOnline;
-                        txt=qtn_drm_options_more_info; },  
-//            MENU_ITEM { command=EGlxCmdRotate; 
-//                        txt=qtn_lgal_options_rotate;
-//                        cascade = r_rotate_sub_menu; },  
             MENU_ITEM { command = EGlxCmdAiwPrint; 
                         txt = qtn_lgal_options_print_menu; 
                         cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },             
-            MENU_ITEM { command=EGlxShowViaUpnp; 
-                        txt=qtn_lgal_options_show_ext; },           
             MENU_ITEM { command = EAknCmdHelp; 
                         txt = qtn_options_help; },
             MENU_ITEM { command = EAknCmdExit; 
@@ -234,12 +206,8 @@
    {
    items=
            {
-           MENU_ITEM { command = EGlxStopShowing; 
-                       txt=qtn_lgal_options_stop_show; }, 
            MENU_ITEM { command = EGlxCmdPlay;
                        txt = qtn_lgal_options_play; },
-           MENU_ITEM { command = EGlxCmdHideUI;
-                       txt = qtn_lgal_options_hide_toolbar; },
            MENU_ITEM { command = EGlxCmdSend;
                        txt = qtn_options_send_via; },   
            MENU_ITEM { command = EGlxCmdAiwShareOnOvi; 
@@ -262,19 +230,9 @@
            MENU_ITEM { command = EGlxCmdAiwAssign; 
                        txt = qtn_lgal_options_use_items; 
                        cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },
-           MENU_ITEM { command = EGlxCmdAiwShowMap;
-                       txt = qtn_lgal_option_show_on_map;
-                       cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },
-           MENU_ITEM { command = EGlxCmdDrmMoreInfoOnline;
-                       txt=qtn_drm_options_more_info; },  
-//           MENU_ITEM { command=EGlxCmdRotate; 
-//                       txt=qtn_lgal_options_rotate;
-//                       cascade = r_rotate_sub_menu; },  
            MENU_ITEM { command = EGlxCmdAiwPrint; 
                        txt = qtn_lgal_options_print_menu; 
                        cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },             
-           MENU_ITEM { command=EGlxShowViaUpnp; 
-                       txt=qtn_lgal_options_show_ext; },
            MENU_ITEM { command = EAknCmdHelp; 
                        txt = qtn_options_help; },
            MENU_ITEM { command = EAknCmdExit; 
@@ -288,8 +246,7 @@
         items=
                 {
                 MENU_ITEM { command = EGlxCmdSave;
-                            txt= "Save"; },
-                            //txt= qtn_lgal_tooltip_save; },
+                            txt= qtn_lgal_options_save; },
                 MENU_ITEM { command = EGlxCmdSend;
                             txt = qtn_options_send_via; },
                 MENU_ITEM { command = EGlxCmdAiwShareOnOvi; 
@@ -411,48 +368,6 @@
     items =
         {
         TBAR_CTRL
-              {
-              type = EAknCtButton;
-              id = EGlxCmdSend;
-              control = AVKON_BUTTON
-                  {
-                  flags = 0;
-                  states =
-                      {
-                      AVKON_BUTTON_STATE
-                          {
-                          bmpfile = "z:\\Resource\\apps\\glxicons.mif";
-                          bmpid = EMbmGlxiconsQgn_indi_cam4_tb_send; 
-                          bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_send_mask;
-                          press_bmpid = EMbmGlxiconsQgn_indi_cam4_tb_send;
-                          press_bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_send_mask;
-                          helptxt = qtn_lgal_tooltip_send;
-                          }
-                      };
-                  };
-              },
-          TBAR_CTRL
-              {
-              type = EAknCtButton;
-              id = EGlxCmdDelete;
-              control = AVKON_BUTTON
-                  {
-                  flags = 0;
-                  states =
-                      {
-                      AVKON_BUTTON_STATE
-                          {
-                          bmpfile = "z:\\Resource\\apps\\glxicons.mif";
-                          bmpid = EMbmGlxiconsQgn_indi_cam4_tb_delete; 
-                          bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_delete_mask;
-                          press_bmpid = EMbmGlxiconsQgn_indi_cam4_tb_delete;
-                          press_bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_delete_mask;
-                          helptxt = qtn_lgal_tooltip_delete;
-                          }
-                      };
-                  };
-              },
-          TBAR_CTRL
             {
             type = EAknCtButton;
             id = EGlxCmdUpload;
@@ -467,7 +382,70 @@
                         bmpid = EMbmGlxiconsQgn_indi_cam4_tb_upload;
                         bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_upload_mask;
                         press_bmpid = EMbmGlxiconsQgn_indi_cam4_tb_upload;
-                        press_bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_upload_mask;                       
+                        press_bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_upload_mask;
+                        }
+                    };
+                };
+            },
+        TBAR_CTRL
+            {
+            type = EAknCtButton;
+            id = EGlxCmdSlideshowPlay;
+            control = AVKON_BUTTON
+                {
+                flags = 0;
+                states =
+                    {
+                    AVKON_BUTTON_STATE
+                        {
+                        bmpfile = "z:\\Resource\\apps\\glxicons.mif";
+                        bmpid = EMbmGlxiconsQgn_indi_tb_slideshow;
+                        bmpmask = EMbmGlxiconsQgn_indi_tb_slideshow_mask;
+                        press_bmpid = EMbmGlxiconsQgn_indi_tb_slideshow;
+                        press_bmpmask = EMbmGlxiconsQgn_indi_tb_slideshow_mask;
+                        helptxt = qtn_lgal_tooltip_slideshow;
+                        }
+                    };
+                };
+            },
+        TBAR_CTRL
+            {
+            type = EAknCtButton;
+            id = EGlxCmdDelete;
+            control = AVKON_BUTTON
+                {
+                flags = 0;
+                states =
+                    {
+                    AVKON_BUTTON_STATE
+                        {
+                        bmpfile = "z:\\Resource\\apps\\glxicons.mif";
+                        bmpid = EMbmGlxiconsQgn_indi_cam4_tb_delete;
+                        bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_delete_mask;
+                        press_bmpid = EMbmGlxiconsQgn_indi_cam4_tb_delete;
+                        press_bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_delete_mask;
+                        helptxt = qtn_lgal_tooltip_delete;
+                        }
+                    };
+                };
+            },
+        TBAR_CTRL
+            {
+            type = EAknCtButton;
+            id = EGlxCmdSend;
+            control = AVKON_BUTTON
+                {
+                flags = 0;
+                states =
+                    {
+                    AVKON_BUTTON_STATE
+                        {
+                        bmpfile = "z:\\Resource\\apps\\glxicons.mif";
+                        bmpid = EMbmGlxiconsQgn_indi_cam4_tb_send;
+                        bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_send_mask;
+                        press_bmpid = EMbmGlxiconsQgn_indi_cam4_tb_send;
+                        press_bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_send_mask;
+                        helptxt = qtn_lgal_tooltip_send;
                         }
                     };
                 };
@@ -497,8 +475,7 @@
                           bmpmask = EMbmGlxiconsSave_mask;
                           press_bmpid = EMbmGlxiconsSave;
                           press_bmpmask = EMbmGlxiconsSave_mask;
-                          //helptxt = qtn_lgal_tooltip_save;
-                          helptxt = "Save";
+                          helptxt = qtn_lgal_tooltip_save;
                           }
                       };
                   };
--- a/photosgallery/viewframework/plugins/fullscreenviewplugin/src/glxalbumfullscreenviewplugin.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/fullscreenviewplugin/src/glxalbumfullscreenviewplugin.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -91,17 +91,20 @@
 
     
 void CGlxAlbumFullScreenViewPlugin::AddCommandHandlersL()
-    {
-    CGlxFullScreenViewPluginBase::AddCommandHandlersL();
-    // Remove from Album.
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerRemoveFrom::NewL(iFullScreenView, EMPXAlbum));     
-    
-    TGlxHelpContext helpInfo;
-    helpInfo.iBrowseContext = LGAL_HLP_ALBUM_FULLSCREEN;
-   
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo)); 
-    }
+	{
+	CGlxFullScreenViewPluginBase::AddCommandHandlersL();
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
+	// Remove from Album.
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerRemoveFrom::NewL(
+			iFullScreenView, EMPXAlbum, uiutilitiesrscfile));
 
+	TGlxHelpContext helpInfo;
+	helpInfo.iBrowseContext = LGAL_HLP_ALBUM_FULLSCREEN;
+
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
+	}
 
 
 void CGlxAlbumFullScreenViewPlugin::GetResourceFilenameL(TFileName& aResFile)
--- a/photosgallery/viewframework/plugins/fullscreenviewplugin/src/glxtagfullscreenviewplugin.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/fullscreenviewplugin/src/glxtagfullscreenviewplugin.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -91,22 +91,26 @@
 // Adds Command Handlers to the view
 //-----------------------------------------------------------------------------
 void CGlxTagFullScreenViewPlugin::AddCommandHandlersL()
-   {
-   TRACER( "CGlxTagFullScreenViewPlugin::AddCommandHandlersL"); 
-    
-   CGlxFullScreenViewPluginBase::AddCommandHandlersL();
-    
-   //For tag tile view
-   GLX_LOG_INFO("Adding CGlxCommandHandlerRemoveFrom");
-   iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerRemoveFrom::NewL(iFullScreenView, EMPXTag)); 
+	{
+	TRACER( "CGlxTagFullScreenViewPlugin::AddCommandHandlersL");
+
+	CGlxFullScreenViewPluginBase::AddCommandHandlersL();
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
 
-    // set up help context info
-    TGlxHelpContext helpInfo;
-    helpInfo.iBrowseContext = LGAL_HLP_TAGS_GRID;
-    helpInfo.iBrowseContext = LGAL_HLP_TAGS_FULLSCREEN;
-    
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo)); 
-    }
+	//For tag tile view
+	GLX_LOG_INFO("Adding CGlxCommandHandlerRemoveFrom");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerRemoveFrom::NewL(
+			iFullScreenView, EMPXTag, uiutilitiesrscfile));
+
+	// set up help context info
+	TGlxHelpContext helpInfo;
+	helpInfo.iBrowseContext = LGAL_HLP_TAGS_GRID;
+	helpInfo.iBrowseContext = LGAL_HLP_TAGS_FULLSCREEN;
+
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
+	}
 
 //-----------------------------------------------------------------------------
 // Get the Resource File Name
--- a/photosgallery/viewframework/plugins/fullscreenviewpluginbase/group/glxfullscreenviewpluginbase.mmp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/fullscreenviewpluginbase/group/glxfullscreenviewpluginbase.mmp	Tue Apr 27 16:37:53 2010 +0300
@@ -74,6 +74,7 @@
 LIBRARY         glxviewbase.lib						// for CGlxViewBase
 LIBRARY         mpxviewplugin.lib					// for CMPXViewPlugin
 LIBRARY         flogger.lib							// For Logging Tracer
+LIBRARY         glxcommon.lib					// For CGlxUiUtilities
 
 
 // End of File
--- a/photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -53,6 +53,7 @@
 #include <glxcommandhandlerhelp.h>
 #include <glxcommandhandleraiwshowonmaphardkey.h>
 
+#include <glxresourceutilities.h>                // for CGlxResourceUtilities
 #include "glxfullscreenview.h"
 
 /**
@@ -157,97 +158,77 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CGlxFullScreenViewPluginBase::AddCommandHandlersL()
-    {
-    TRACER("CGlxFullScreenViewPluginBase::AddCommandHandlersL()");
-    
-    // Note that the order in which the command handlers are added determines
-    // the order in which the toolbar displays the icons
-    
-    GLX_LOG_INFO( "Adding CGlxCommandHandlerSave" );
-            iFullScreenView->AddCommandHandlerL(
-                            CGlxCommandHandlerSave::NewL() );
-    
-    GLX_LOG_INFO( "Adding CGlxCommandHandlerSlideshow" );
-    iFullScreenView->AddCommandHandlerL(
-                    CGlxCommandHandlerSlideshow::NewL( iFullScreenView, ETrue , ETrue ) );
-    
-    GLX_LOG_INFO("Adding CGlxCommandHandlerDetails");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerDetails::
-                                NewL(iFullScreenView));
-    
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer::
-            NewAddToAlbumCommandHandlerL(iFullScreenView, EFalse));                             
+	{
+	TRACER("CGlxFullScreenViewPluginBase::AddCommandHandlersL()");
+
+	// Note that the order in which the command handlers are added determines
+	// the order in which the toolbar displays the icons
 
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer::
-            NewAddToFavCommandHandlerL(iFullScreenView, EFalse));                             
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
+	GLX_LOG_INFO( "Adding CGlxCommandHandlerSave" );
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerSave::NewL());
+
+	GLX_LOG_INFO( "Adding CGlxCommandHandlerSlideshow" );
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerSlideshow::NewL(
+			iFullScreenView, ETrue, ETrue, uiutilitiesrscfile));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer");
+	iFullScreenView->AddCommandHandlerL(
+			CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL(
+					iFullScreenView, EFalse, uiutilitiesrscfile));
 
-    GLX_LOG_INFO("Adding CGlxCommandHandlerDetails");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerDetails::
-            NewL(iFullScreenView));
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer");
+	iFullScreenView->AddCommandHandlerL(
+			CGlxCommandHandlerAddToContainer::NewAddToFavCommandHandlerL(
+					iFullScreenView, EFalse, uiutilitiesrscfile));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerDetails");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerDetails::NewL(
+			iFullScreenView, uiutilitiesrscfile));
 
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer::
-                                NewAddToTagCommandHandlerL(iFullScreenView, EFalse));
-    // The AIW service handlers 
-    // ShowMap must be the first one                           
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShowMap");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwShowMap::
-                                NewL(iFullScreenView, iResourceIds.iMenuId));
-    // Assign must be the second one
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwAssign");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwAssign::
-                                NewL(iFullScreenView, iResourceIds.iMenuId));
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwEdit");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwEdit::
-                                NewL(iFullScreenView));
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwPrintPreview");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwPrintPreview::
-                                NewL(iFullScreenView, iResourceIds.iMenuId));
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShareOnOvi");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwShareOnOvi::
-            NewL(iFullScreenView, iResourceIds.iMenuId));
-    // End of AIW service handlers                            
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer");
+	iFullScreenView->AddCommandHandlerL(
+			CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL(
+					iFullScreenView, EFalse, uiutilitiesrscfile));
+	// The AIW service handlers 
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAiwAssign");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwAssign::NewL(
+			iFullScreenView, iResourceIds.iMenuId, uiutilitiesrscfile));
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAiwEdit");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwEdit::NewL(
+			iFullScreenView));
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAiwPrintPreview");
+	iFullScreenView->AddCommandHandlerL(
+			CGlxCommandHandlerAiwPrintPreview::NewL(iFullScreenView,
+					iResourceIds.iMenuId, uiutilitiesrscfile));
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShareOnOvi");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwShareOnOvi::NewL(
+			iFullScreenView, iResourceIds.iMenuId, uiutilitiesrscfile));
+	// End of AIW service handlers                            
 
-    GLX_LOG_INFO("Adding CGlxCommandHandlerMoreInfo");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerMoreInfo::
-                                NewL(iFullScreenView,EFalse));    				
-    GLX_LOG_INFO("Adding CGlxCommandHandlerHideUi");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerHideUi::NewL());
 
 	//Fix for error ID EVTY-7M87LF
 	//@ Registration of Video Playback Command handler has to before UPnP.
 	//@ else UPnP will not get play command once video playback command is consumed.
-    GLX_LOG_INFO("Adding CGlxCommandHandlerVideoPlayback");
-    iFullScreenView->AddCommandHandlerL(
-                    CGlxCommandHandlerVideoPlayback::NewL( iFullScreenView ) );
+	GLX_LOG_INFO("Adding CGlxCommandHandlerVideoPlayback");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerVideoPlayback::NewL(
+			iFullScreenView));
 
-	//Fix for error ID EVTY-7M87LF
-	//@ Registration of UPnP Command handler has to be after video play back command
-	//@ priorty of command handling is last registered in first server basis.
-	//@ UPnP will get play command first everytime, where it'll check for UPnP active.
-    //@ if UPnP is active it'll consume the event, else it'll allow other registered command to execute it.
-
-    GLX_LOG_INFO("Adding CGlxCommandHandlerShowVisUpnp");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerShowViaUpnp::NewL(
-            iFullScreenView,EFalse));
+	//Toolbar commands for all Fullscreen views. May also be present in Options menu.
+	GLX_LOG_INFO("Adding CGlxCommandHandlerSend");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerSend::NewL(
+			iFullScreenView, ETrue, uiutilitiesrscfile));
 
-    //Toolbar commands for all Fullscreen views. May also be present in Options menu.
-    GLX_LOG_INFO("Adding CGlxCommandHandlerSend");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerSend::NewL(
-            iFullScreenView, ETrue));
-    GLX_LOG_INFO("Adding CGlxCommandHandlerDelete");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerDelete::
-            NewL(iFullScreenView, EFalse, ETrue));
-    GLX_LOG_INFO("Adding CGlxCommandHandlerUpload");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerUpload::NewL(
-            iFullScreenView, ETrue));
+	GLX_LOG_INFO("Adding CGlxCommandHandlerDelete");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerDelete::NewL(
+			iFullScreenView, EFalse, ETrue, uiutilitiesrscfile));
+	GLX_LOG_INFO("Adding CGlxCommandHandlerUpload");
+	iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerUpload::NewL(
+			iFullScreenView, ETrue));
 
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShowMapHardKey");
-    iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAiwShowMapHardKey::NewL(
-            iFullScreenView, ETrue));
-    }
+	}
 
 // ---------------------------------------------------------------------------
 // GetResourceFilenameL
--- a/photosgallery/viewframework/plugins/gridviewplugin/data/glxgridviewdata.rss	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/gridviewplugin/data/glxgridviewdata.rss	Tue Apr 27 16:37:53 2010 +0300
@@ -123,8 +123,6 @@
     {
         items=
                 {
-                  MENU_ITEM { command = EAknCmdOpen;
-                              txt = qtn_msk_open; },
                   MENU_ITEM { command = EGlxCmdPlay;
                               txt = qtn_lgal_options_play; },
                   MENU_ITEM { command = EGlxCmdSend;
@@ -167,20 +165,6 @@
                               txt = qtn_lgal_options_add_to_album;},
                   MENU_ITEM { command = EGlxCmdSingleClickAddTag;
                               txt = qtn_lgal_options_properties_add_tag;}, 
-                  MENU_ITEM { command = EGlxCmdAiwAssign;
-                              txt = qtn_lgal_options_use_items; 
-                              cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },                      
-                  MENU_ITEM { command = EGlxCmdAiwShowMap;
-                              txt = qtn_lgal_option_show_on_map;
-                              cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },                                           
-                  MENU_ITEM { command = EGlxCmdDrmMoreInfoOnline;
-                              txt=qtn_drm_options_more_info; },                   
-                  MENU_ITEM { command = EGlxCmdAiwPrint; 
-                              txt = qtn_lgal_options_print_menu; 
-                              cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },                            
-                  MENU_ITEM { command = EGlxHomeNetworkSubmenu; 
-                               txt = qtn_lgal_options_home_network; 
-                               cascade = r_home_network_menu; },
                   MENU_ITEM { command = EAknCmdHelp; 
                               txt = qtn_options_help; },
                   MENU_ITEM { command = EAknCmdExit; 
@@ -193,8 +177,6 @@
     {
         items= 
             {                             
-                  MENU_ITEM { command = EAknCmdOpen;
-                              txt = qtn_msk_open; },
                   MENU_ITEM { command = EGlxCmdPlay;
                               txt = qtn_lgal_options_play; },
                   MENU_ITEM { command = EGlxCmdSend;
@@ -239,20 +221,6 @@
                               txt = qtn_lgal_options_add_to_album;},
                   MENU_ITEM { command = EGlxCmdSingleClickAddTag;
                               txt = qtn_lgal_options_properties_add_tag;}, 
-                  MENU_ITEM { command = EGlxCmdAiwAssign;
-                              txt = qtn_lgal_options_use_items; 
-                              cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },                     
-                  MENU_ITEM { command = EGlxCmdAiwShowMap;
-                              txt = qtn_lgal_option_show_on_map;
-                              cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },                                           
-                  MENU_ITEM { command = EGlxCmdDrmMoreInfoOnline;
-                              txt=qtn_drm_options_more_info; },
-                  MENU_ITEM { command = EGlxCmdAiwPrint; 
-                              txt = qtn_lgal_options_print_menu; 
-                              cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },                            
-                  MENU_ITEM { command = EGlxHomeNetworkSubmenu; 
-                               txt = qtn_lgal_options_home_network; 
-                               cascade = r_home_network_menu; },
                   MENU_ITEM { command = EAknCmdHelp; 
                               txt = qtn_options_help; },
                   MENU_ITEM { command = EAknCmdExit; 
@@ -265,8 +233,6 @@
    {
    items=
          {
-        MENU_ITEM { command = EAknCmdOpen;
-                    txt = qtn_msk_open; },
         MENU_ITEM { command = EGlxCmdPlay;
                     txt = qtn_lgal_options_play; },
         MENU_ITEM { command = EGlxCmdSend;
@@ -311,20 +277,6 @@
                     flags = EEikMenuItemSpecific; },
         MENU_ITEM { command = EGlxCmdSingleClickAddTag;
                     txt = qtn_lgal_options_properties_add_tag;}, 
-        MENU_ITEM { command = EGlxCmdAiwAssign;
-                    txt = qtn_lgal_options_use_items; 
-                    cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },            
-        MENU_ITEM { command = EGlxCmdAiwShowMap;
-                    txt = qtn_lgal_option_show_on_map;
-                    cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },                                           
-        MENU_ITEM { command = EGlxCmdDrmMoreInfoOnline;
-                    txt=qtn_drm_options_more_info; },
-        MENU_ITEM { command = EGlxCmdAiwPrint;
-                    txt = qtn_lgal_options_print_menu; 
-                    cascade = AIW_INTELLIGENT_CASCADE_ID|AIW_LOCK_SUBMENU_TITLE; },                            
-        MENU_ITEM { command = EGlxHomeNetworkSubmenu; 
-                     txt = qtn_lgal_options_home_network; 
-                     cascade = r_home_network_menu; },
          MENU_ITEM { command = EAknCmdHelp; 
                      txt = qtn_options_help; },
          MENU_ITEM { command = EAknCmdExit; 
@@ -542,6 +494,15 @@
     buf = qtn_lgal_empty_grid_no_items; 
     }
 
+RESOURCE TBUF r_grid_empty_view_text_image
+    {
+    buf = qtn_lgal_empty_grid_no_images;
+    }
+
+RESOURCE TBUF r_grid_empty_view_text_video
+    {
+    buf = qtn_lgal_empty_grid_no_videos;
+    }
 RESOURCE TBUF r_grid_view_text_download_header
     {
     buf = qtn_lgal_info_download_header;
@@ -613,7 +574,27 @@
                       };
                   };
               },
-
+        TBAR_CTRL
+            {
+            type = EAknCtButton;
+            id = EGlxCmdSend;
+            control = AVKON_BUTTON
+                {
+                flags = 0;
+                states =
+                    {
+                    AVKON_BUTTON_STATE
+                        {
+                        bmpfile = "z:\\Resource\\apps\\glxicons.mif";
+                        bmpid = EMbmGlxiconsQgn_indi_cam4_tb_send;
+                        bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_send_mask;
+                        press_bmpid = EMbmGlxiconsQgn_indi_cam4_tb_send;
+                        press_bmpmask = EMbmGlxiconsQgn_indi_cam4_tb_send_mask;
+                        helptxt = qtn_lgal_tooltip_send;
+                        }
+                    };
+                };
+            },
         TBAR_CTRL
             {
             type = EAknCtButton;
--- a/photosgallery/viewframework/plugins/gridviewplugin/src/glxalbumgridviewplugin.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/gridviewplugin/src/glxalbumgridviewplugin.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -94,19 +94,24 @@
 
     
 void CGlxAlbumGridViewPlugin::AddCommandHandlersL()
-    {
-    CGlxGridViewPluginBase::AddCommandHandlersL();
-    // Remove from Album
-    ///@todo this should only be added to the albums view plugin.
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerRemoveFrom::NewL(iGridView, EMPXAlbum));     
-    
-    TGlxHelpContext helpInfo;
-    helpInfo.iBrowseContext = LGAL_HLP_ALBUM_GRID;
-    helpInfo.iViewContext = LGAL_HLP_ALBUM_FULLSCREEN;
-   
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo)); 
+	{
+	CGlxGridViewPluginBase::AddCommandHandlersL();
+	// Remove from Album
+	///@todo this should only be added to the albums view plugin.
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
 
-    }
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerRemoveFrom::NewL(iGridView,
+			EMPXAlbum, uiutilitiesrscfile));
+
+	TGlxHelpContext helpInfo;
+	helpInfo.iBrowseContext = LGAL_HLP_ALBUM_GRID;
+	helpInfo.iViewContext = LGAL_HLP_ALBUM_FULLSCREEN;
+
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
+
+	}
 
 
 
--- a/photosgallery/viewframework/plugins/gridviewplugin/src/glxtaggridviewplugin.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/gridviewplugin/src/glxtaggridviewplugin.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -97,22 +97,26 @@
 // Adds Command Handlers to the view
 //-----------------------------------------------------------------------------
 void CGlxTagGridViewPlugin::AddCommandHandlersL()
-   {
-   TRACER( "CGlxTagGridViewPlugin::AddCommandHandlersL"); 
-    
-   CGlxGridViewPluginBase::AddCommandHandlersL();
-    
-   //For tag Grid view
-   GLX_LOG_INFO("Adding CGlxCommandHandlerRemoveFrom");
-   iGridView->AddCommandHandlerL(CGlxCommandHandlerRemoveFrom::NewL(iGridView, EMPXTag)); 
+	{
+	TRACER( "CGlxTagGridViewPlugin::AddCommandHandlersL");
+
+	CGlxGridViewPluginBase::AddCommandHandlersL();
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
 
-    // set up help context info
-    TGlxHelpContext helpInfo;
-    helpInfo.iBrowseContext = LGAL_HLP_TAGS_GRID;
-    helpInfo.iViewContext = LGAL_HLP_TAGS_FULLSCREEN;
-    
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo)); 
- }
+	//For tag Grid view
+	GLX_LOG_INFO("Adding CGlxCommandHandlerRemoveFrom");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerRemoveFrom::NewL(iGridView,
+			EMPXTag, uiutilitiesrscfile));
+
+	// set up help context info
+	TGlxHelpContext helpInfo;
+	helpInfo.iBrowseContext = LGAL_HLP_TAGS_GRID;
+	helpInfo.iViewContext = LGAL_HLP_TAGS_FULLSCREEN;
+
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
+	}
 
 //-----------------------------------------------------------------------------
 // Get the Resource File Name
--- a/photosgallery/viewframework/plugins/gridviewpluginbase/group/glxgridviewpluginbase.mmp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/gridviewpluginbase/group/glxgridviewpluginbase.mmp	Tue Apr 27 16:37:53 2010 +0300
@@ -76,4 +76,5 @@
 LIBRARY         glxviewbase.lib					// for CGlxViewBase
 LIBRARY		glxupnpcommandhandler.lib		// For Upnp Command Handler
 LIBRARY         flogger.lib						// For Logging Tracer
+LIBRARY         glxcommon.lib					// for CResourceUtilities
 // End of File
--- a/photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -44,6 +44,7 @@
 #include <glxcommandhandlervideoplayback.h>
 #include <glxcommandhandleropen.h>
 #include <glxtracer.h>
+#include <glxresourceutilities.h>                // for CGlxResourceUtilities
 #include <mpxcollectionpath.h>
 #include <mpxcollectionutility.h>
 #include <mpxmediageneraldefs.h>
@@ -112,117 +113,97 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CGlxGridViewPluginBase::AddCommandHandlersL()
-    {
-    TRACER("CGlxGridViewPluginBase::AddCommandHandlersL()");
+	{
+	TRACER("CGlxGridViewPluginBase::AddCommandHandlersL()");
 #ifdef _DEBUG
-    TTime startTime;
-    GLX_LOG_INFO("CGlxGridViewPluginBase::AddCommandHandlersL()");	
-    startTime.HomeTime();
+	TTime startTime;
+	GLX_LOG_INFO("CGlxGridViewPluginBase::AddCommandHandlersL()");
+	startTime.HomeTime();
 #endif
-        
-    GLX_LOG_INFO( "Adding CGlxCommandHandlerSlideshow" );
-    iGridView->AddCommandHandlerL(
-                        CGlxCommandHandlerSlideshow::NewL( iGridView, ETrue , EFalse ) );
-    
-    GLX_LOG_INFO("Adding CGlxCommandHandlerSend");
-                iGridView->AddCommandHandlerL(CGlxCommandHandlerSend::NewL(iGridView, ETrue));
-        
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer-Album");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer::
-                                NewAddToAlbumCommandHandlerL(iGridView, EFalse));   
-								    
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer-Album SingleClick");
-        iGridView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer::
-                                NewAddToAlbumSingleClickCommandHandlerL(iGridView, EFalse));  
-    GLX_LOG_INFO("Adding CGlxCommandHandlerDetails");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerDetails::
-                                NewL(iGridView));
-                                
-    GLX_LOG_INFO("Adding CGlxCommandHandlerOpen");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerOpen::
-                                 NewL(iGridView));
-                            
-    GLX_LOG_INFO("Adding CGlxCommandHandlerDelete");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerDelete::
-                                NewL(iGridView, EFalse, EFalse));
-                                
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer-Tag");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer::
-                                NewAddToTagCommandHandlerL(iGridView, EFalse));
-								
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer-Tag Single Click");
-        iGridView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer::
-                                NewAddToTagSingleClickCommandHandlerL(iGridView, EFalse));
-    // The AIW service handlers 
-    // ShowMap must be the first one                           
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShowMap");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwShowMap::
-                                NewL(iGridView, iResourceIds.iMenuId));
-    // Assign must be the second one
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwAssign");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwAssign::
-                                NewL(iGridView, iResourceIds.iMenuId));
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwEdit");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwEdit::
-                                NewL(iGridView));
-    
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwEdit-Single Click");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwEdit::
-                                NewL(iGridView, ETrue));
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
+
+	GLX_LOG_INFO( "Adding CGlxCommandHandlerSlideshow" );
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerSlideshow::NewL(iGridView,
+			ETrue, EFalse, uiutilitiesrscfile));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerSend");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerSend::NewL(iGridView,
+			ETrue, uiutilitiesrscfile));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer-Album");
+	iGridView->AddCommandHandlerL(
+			CGlxCommandHandlerAddToContainer::NewAddToAlbumCommandHandlerL(
+					iGridView, EFalse, uiutilitiesrscfile));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer-Album SingleClick");
+	iGridView->AddCommandHandlerL(
+			CGlxCommandHandlerAddToContainer::NewAddToAlbumSingleClickCommandHandlerL(
+					iGridView, EFalse, uiutilitiesrscfile));
+	GLX_LOG_INFO("Adding CGlxCommandHandlerDetails");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerDetails::NewL(iGridView,
+			uiutilitiesrscfile));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerOpen");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerOpen::NewL(iGridView));
 
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwPrintPreview");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwPrintPreview::
-                                NewL(iGridView, iResourceIds.iMenuId));
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShareOnOvi");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwShareOnOvi::
-                                NewL(iGridView, iResourceIds.iMenuId));    
-    // End of AIW service handlers                            
-    
-    GLX_LOG_INFO("Adding CGlxCommandHandlerMarking");
-    iGridView->AddCommandHandlerL( CGlxCommandHandlerMarking::NewL(
-                                            iGridView, ETrue ) );
-                                                            
-    GLX_LOG_INFO("Adding CGlxCommandHandlerBack");
-    iGridView->AddCommandHandlerL(
-                    CGlxCommandHandlerBack::NewBackCommandHandlerL());
-    
-    GLX_LOG_INFO("Adding CGlxCommandHandlerMoreInfo");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerMoreInfo::
-                                NewL(iGridView,EFalse));    				
-    GLX_LOG_INFO("Adding CGlxCommandHandlerHideUi");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerHideUi::NewL());
+	GLX_LOG_INFO("Adding CGlxCommandHandlerDelete");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerDelete::NewL(iGridView,
+			EFalse, EFalse, uiutilitiesrscfile));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer-Tag");
+	iGridView->AddCommandHandlerL(
+			CGlxCommandHandlerAddToContainer::NewAddToTagCommandHandlerL(
+					iGridView, EFalse, uiutilitiesrscfile));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer-Tag Single Click");
+	iGridView->AddCommandHandlerL(
+			CGlxCommandHandlerAddToContainer::NewAddToTagSingleClickCommandHandlerL(
+					iGridView, EFalse, uiutilitiesrscfile));
+	// The AIW service handlers 
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAiwEdit");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwEdit::NewL(iGridView));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAiwEdit-Single Click");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwEdit::NewL(iGridView,
+			ETrue));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShareOnOvi");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerAiwShareOnOvi::NewL(
+			iGridView, iResourceIds.iMenuId, uiutilitiesrscfile));
+	// End of AIW service handlers                            
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerMarking");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerMarking::NewL(iGridView,
+			ETrue));
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerBack");
+	iGridView->AddCommandHandlerL(
+			CGlxCommandHandlerBack::NewBackCommandHandlerL());
 
 #ifdef GLX_GRID_VIEW_IMAGES_OR_VIDEOS_ONLY_FILTERING
-    iGridView->AddCommandHandlerL( CGlxCommandHandlerFilterImagesOrVideos::NewL( iGridView ) );
+	iGridView->AddCommandHandlerL( CGlxCommandHandlerFilterImagesOrVideos::NewL( iGridView ) );
 #endif
-    GLX_LOG_INFO("Adding CGlxCommandHandlerCopyToHomeNetwork");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerCopyToHomeNetwork::NewL(*iGridView));
-    
-    GLX_LOG_INFO("Adding CGlxCommandHandlerUpload");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerUpload::NewL(iGridView, ETrue));    
-    
+
+	GLX_LOG_INFO("Adding CGlxCommandHandlerUpload");
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerUpload::NewL(iGridView,
+			ETrue));
+
 	//Fix for error ID EVTY-7M87LF
 	//@ Registration of Video Playback Command handler has to before UPnP.
 	//@ else UPnP will not get play command once video playback command is consumed.
 	GLX_LOG_INFO("Adding CGlxCommandHandlerVideoPlayback");
-    iGridView->AddCommandHandlerL(
-                        CGlxCommandHandlerVideoPlayback::NewL( iGridView ) );
-
-	//Fix for error ID EVTY-7M87LF
-	//@ Registration of UPnP Command handler has to be after video play back command
-	//@ priorty of command handling is last registered in first server basis.
-	//@ UPnP will get play command first everytime, where it'll check for UPnP active.
-	//@ if UPnP is active it'll consume the event, else it'll allow other registered command to execute it.
-    GLX_LOG_INFO("Adding CGlxCommandHandlerShowVisUpnp");
-    iGridView->AddCommandHandlerL(CGlxCommandHandlerShowViaUpnp::NewL(iGridView, ETrue));
+	iGridView->AddCommandHandlerL(CGlxCommandHandlerVideoPlayback::NewL(
+			iGridView));
 
 #ifdef _DEBUG
-    TTime stopTime;
-    stopTime.HomeTime();
-    GLX_DEBUG2("CGlxGridViewPluginBase::AddCommandHandlersL() took <%d> us", 
-                    (TInt)stopTime.MicroSecondsFrom(startTime).Int64());
+	TTime stopTime;
+	stopTime.HomeTime();
+	GLX_DEBUG2("CGlxGridViewPluginBase::AddCommandHandlersL() took <%d> us",
+			(TInt)stopTime.MicroSecondsFrom(startTime).Int64());
 #endif    
-    }
+	}
 
 // ---------------------------------------------------------------------------
 // GetResourceFilenameL
--- a/photosgallery/viewframework/plugins/listviewplugin/data/glxlistviewplugin.rss	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/listviewplugin/data/glxlistviewplugin.rss	Tue Apr 27 16:37:53 2010 +0300
@@ -101,7 +101,6 @@
     {
     items =
         {
-        MENU_ITEM { command = EGlxStopShowing; txt=qtn_lgal_options_stop_show; }, 
         MENU_ITEM { command = EAknCmdHelp; txt = qtn_options_help; },
         MENU_ITEM { command = EAknCmdExit; txt = qtn_options_exit; }
         };
@@ -111,7 +110,6 @@
     {
     items =
         {
-        MENU_ITEM { command = EGlxStopShowing; txt=qtn_lgal_options_stop_show; }, 
         MENU_ITEM { command = EAknCmdHelp; txt = qtn_options_help; },
         MENU_ITEM { command = EAknCmdExit; txt = qtn_options_exit; }
         };
@@ -121,7 +119,6 @@
     {
     items =
         {        
-        MENU_ITEM { command = EGlxStopShowing; txt=qtn_lgal_options_stop_show; }, 
         MENU_ITEM { command = EGlxCmdSlideshowPlay; 
                       txt = qtn_lgal_options_slideshow;
                       flags = EEikMenuItemSpecific; },
@@ -137,7 +134,6 @@
     {
     items =
         {
-        MENU_ITEM { command = EGlxStopShowing; txt=qtn_lgal_options_stop_show; }, 
         MENU_ITEM { command = EGlxCmdSlideshowPlay; 
                     txt = qtn_lgal_options_slideshow;
                     flags = EEikMenuItemSpecific; },
--- a/photosgallery/viewframework/plugins/listviewplugin/group/glxlistviewplugin.mmp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/listviewplugin/group/glxlistviewplugin.mmp	Tue Apr 27 16:37:53 2010 +0300
@@ -64,6 +64,7 @@
 SYSTEMINCLUDE   ../../../commandhandlers/commandhandlerupnp/inc      //Command Handler Upnp
 SYSTEMINCLUDE   ../../../medialists/inc
 SYSTEMINCLUDE	../../../../slideshow/engine/inc
+SYSTEMINCLUDE	  ../../../../common/inc
 
 APP_LAYER_SYSTEMINCLUDE
 
@@ -83,7 +84,7 @@
 LIBRARY         glxlistview.lib
 LIBRARY         glxcommoncommandhandlers.lib
 LIBRARY         glxupnpcommandhandler.lib                            //upnp Command handlers
-
+LIBRARY         glxcommon.lib					// For CReourceUtilities
 
 //EXPORTUNFROZEN
 
--- a/photosgallery/viewframework/plugins/listviewplugin/src/glxalbumlistviewplugin.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/listviewplugin/src/glxalbumlistviewplugin.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -28,7 +28,7 @@
 #include <glxcommandhandlerhelp.h>
 #include <glxcommandhandlerslideshow.h>
 #include <glxlistviewplugin.rsg>
-
+#include <glxresourceutilities.h>                // for CGlxResourceUtilities
 #include "glxlistviewplugin.hrh"
 
 // ---------------------------------------------------------------------------
@@ -90,19 +90,27 @@
 // ---------------------------------------------------------------------------
 //
 void CGlxAlbumListViewPlugin::AddCommandHandlersL()
-    {
-    CGlxListViewPluginBase::AddCommandHandlersL();
-    iListView->AddCommandHandlerL(CGlxCommandHandlerSlideshow::NewL( iListView, EFalse, ETrue ) );
-    iListView->AddCommandHandlerL(CGlxCommandHandlerDelete::NewL(iListView, ETrue, EFalse));
-    iListView->AddCommandHandlerL(CGlxCommandHandlerNewMedia::NewL(iListView));
-    iListView->AddCommandHandlerL(CGlxCommandHandlerRename::NewL(iListView, ETrue));
-    // add help command handler
-    
-    // set up help context info
-    TGlxHelpContext helpInfo;
-    helpInfo.iBrowseContext = LGAL_HLP_ALBUM_LIST;
+	{
+	CGlxListViewPluginBase::AddCommandHandlersL();
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
 
-    iListView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
-    }
+	iListView->AddCommandHandlerL(CGlxCommandHandlerSlideshow::NewL(iListView,
+			EFalse, ETrue, uiutilitiesrscfile));
+	iListView->AddCommandHandlerL(CGlxCommandHandlerDelete::NewL(iListView,
+			ETrue, EFalse, uiutilitiesrscfile));
+	iListView->AddCommandHandlerL(CGlxCommandHandlerNewMedia::NewL(iListView,
+			uiutilitiesrscfile));
+	iListView->AddCommandHandlerL(CGlxCommandHandlerRename::NewL(iListView,
+			ETrue, uiutilitiesrscfile));
+	// add help command handler
+
+	// set up help context info
+	TGlxHelpContext helpInfo;
+	helpInfo.iBrowseContext = LGAL_HLP_ALBUM_LIST;
+
+	iListView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
+	}
 
 //  End of File
--- a/photosgallery/viewframework/plugins/listviewplugin/src/glxmonthlistviewplugin.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/listviewplugin/src/glxmonthlistviewplugin.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -24,7 +24,7 @@
 #include <glxcommandhandlerhelp.h>
 #include <glxcommandhandlerslideshow.h>
 #include <glxlistview.h>
-
+#include <glxresourceutilities.h>
 #include <glxlistviewplugin.rsg>
 
 
@@ -90,15 +90,17 @@
 // ---------------------------------------------------------------------------
 //
 void CGlxMonthListViewPlugin::AddCommandHandlersL()
-    {
-    CGlxListViewPluginBase::AddCommandHandlersL();
-    
-    // set up help context info
-    TGlxHelpContext helpInfo;
-    helpInfo.iBrowseContext = LGAL_HLP_MONTH_LIST;
-    
-    iListView->AddCommandHandlerL(CGlxCommandHandlerSlideshow::NewL( iListView, EFalse, ETrue ) );
-    iListView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
-    }
+	{
+	CGlxListViewPluginBase::AddCommandHandlersL();
+	// set up help context info
+	TGlxHelpContext helpInfo;
+	helpInfo.iBrowseContext = LGAL_HLP_MONTH_LIST;
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
+	iListView->AddCommandHandlerL(CGlxCommandHandlerSlideshow::NewL(iListView,
+			EFalse, ETrue, uiutilitiesrscfile));
+	iListView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
+	}
 
 //  End of File
--- a/photosgallery/viewframework/plugins/listviewpluginbase/src/glxlistviewpluginbase.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/listviewpluginbase/src/glxlistviewpluginbase.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -96,8 +96,6 @@
     
     iListView->AddCommandHandlerL(
                               CGlxCommandHandlerBack::NewBackCommandHandlerL());
-    iListView->AddCommandHandlerL(
-                              CGlxCommandHandlerShowViaUpnp::NewL(iListView, EFalse));
     }
 
 
--- a/photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss	Tue Apr 27 16:37:53 2010 +0300
@@ -67,8 +67,6 @@
                     txt=qtn_lgal_options_alphabetical; },
         MENU_ITEM { command=EGlxCmdSortByCount; 
                     txt=qtn_lgal_options_most_used; },
-        MENU_ITEM { command=EGlxStopShowing; 
-                    txt=qtn_lgal_options_stop_show; }, 
 		MENU_ITEM { command=EAknCmdHelp; 
 		            txt=qtn_options_help; },
 		MENU_ITEM { command=EAknCmdExit; 
--- a/photosgallery/viewframework/plugins/tagsbrowserviewplugin/src/glxtagsbrowserviewplugin.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/plugins/tagsbrowserviewplugin/src/glxtagsbrowserviewplugin.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -38,7 +38,7 @@
 #include <glxcommandhandlerrename.h>
 #include <glxcommandhandlerdetails.h>        //For tag manager launch
 #include <glxmedialist.h>
-
+#include <glxresourceutilities.h>                // for CGlxResourceUtilities
 #include "glxtagsbrowserviewplugin.hrh"	// For Plugin Uids
 
 // Resource File
@@ -94,35 +94,43 @@
 // ---------------------------------------------------------------------------
 //
 CAknView *CGlxTagsBrowserViewPlugin::ConstructViewLC()
-{
-   TRACER("CGlxTagsBrowserViewPlugin::ConstructViewLC");
+	{
+	TRACER("CGlxTagsBrowserViewPlugin::ConstructViewLC");
 
-  GLX_LOG_INFO("CGlxTagsBrowserViewPlugin::ConstructViewLC - Create the view");
-  CGlxCloudView *view = CGlxCloudView::NewLC(this, KResourceFile(),  
-    // Resource file name
-  R_TAGSBROWSER_VIEW,  // View resource
-  R_TAGSBROWSER_EMPTY_TEXT,  // Empty list text
-  R_TAGSBROWSER_SOFTKEYS_OPTIONS_BACK_SELECT, //softket resource id
-  R_TAGSBROWSER_SOFTKEYS_MSK_DISABLED //msk disabled resource id
-  );
+	GLX_LOG_INFO("CGlxTagsBrowserViewPlugin::ConstructViewLC - Create the view");
+	CGlxCloudView *view = CGlxCloudView::NewLC(this, KResourceFile(),
+	// Resource file name
+			R_TAGSBROWSER_VIEW, // View resource
+			R_TAGSBROWSER_EMPTY_TEXT, // Empty list text
+			R_TAGSBROWSER_SOFTKEYS_OPTIONS_BACK_SELECT, //softket resource id
+			R_TAGSBROWSER_SOFTKEYS_MSK_DISABLED //msk disabled resource id
+			);
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
 
 	// Add commnad handler
-  view->AddCommandHandlerL(CGlxCommandHandlerSlideshow::NewL(view,EFalse,ETrue));
-  view->AddCommandHandlerL(CGlxCommandHandlerBack::NewBackCommandHandlerL());
-  view->AddCommandHandlerL(CGlxCommandHandlerShowViaUpnp::NewL(view, EFalse));
-  view->AddCommandHandlerL(CGlxCommandHandlerSortOrder::NewL(view,KGlxSortOrderTagBrowser));
-  view->AddCommandHandlerL(CGlxCommandHandlerDetails::NewL(view));
-  GLX_LOG_INFO("Adding CGlxCommandHandlerDelete");
-  view->AddCommandHandlerL(CGlxCommandHandlerDelete::
-                              NewL(view, ETrue, ETrue));
-  
-  TGlxHelpContext helpInfo;
-  helpInfo.iBrowseContext = LGAL_HLP_TAGS_BROWSER;
-  view->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo)); 
-  view->AddCommandHandlerL(CGlxCommandHandlerRename::NewL(view,ETrue));
+	view->AddCommandHandlerL(CGlxCommandHandlerSlideshow::NewL(view, EFalse,
+			ETrue, uiutilitiesrscfile));
+	view->AddCommandHandlerL(CGlxCommandHandlerBack::NewBackCommandHandlerL());
+	view->AddCommandHandlerL(CGlxCommandHandlerShowViaUpnp::NewL(view, EFalse));
+	view->AddCommandHandlerL(CGlxCommandHandlerSortOrder::NewL(view,
+			KGlxSortOrderTagBrowser));
+	view->AddCommandHandlerL(CGlxCommandHandlerDetails::NewL(view,
+			uiutilitiesrscfile));
 
-  return view;
-}
+	GLX_LOG_INFO("Adding CGlxCommandHandlerDelete");
+	view->AddCommandHandlerL(CGlxCommandHandlerDelete::NewL(view, ETrue, ETrue,
+			uiutilitiesrscfile));
+
+	TGlxHelpContext helpInfo;
+	helpInfo.iBrowseContext = LGAL_HLP_TAGS_BROWSER;
+	view->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
+	view->AddCommandHandlerL(CGlxCommandHandlerRename::NewL(view, ETrue,
+			uiutilitiesrscfile));
+
+	return view;
+	}
 
 // -----------------------------------------------------------------------------
 // MediaListL
--- a/photosgallery/viewframework/tvout/bwins/glxtvoutu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/bwins/glxtvoutu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -1,14 +1,14 @@
 EXPORTS
 	?ActivateZoom@CGlxHdmiController@@QAEXH@Z @ 1 NONAME ; void CGlxHdmiController::ActivateZoom(int)
 	?ScreenSizeL@CGlxTv@@QBE?AVTSize@@XZ @ 2 NONAME ; class TSize CGlxTv::ScreenSizeL(void) const
-	??1CGlxTv@@UAE@XZ @ 3 NONAME ; CGlxTv::~CGlxTv(void)
-	??1CGlxHdmiController@@UAE@XZ @ 4 NONAME ; CGlxHdmiController::~CGlxHdmiController(void)
-	?NewL@CGlxHdmiController@@SAPAV1@XZ @ 5 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(void)
-	?IsWidescreen@CGlxTv@@QBEHXZ @ 6 NONAME ; int CGlxTv::IsWidescreen(void) const
-	?IsHDMIConnected@CGlxHdmiController@@QAEHXZ @ 7 NONAME ; int CGlxHdmiController::IsHDMIConnected(void)
-	?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 8 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void)
-	?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 9 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void)
-	?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@H@Z @ 10 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, int)
+	?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@PAVCFbsBitmap@@H@Z @ 3 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, class CFbsBitmap *, int)
+	??1CGlxTv@@UAE@XZ @ 4 NONAME ; CGlxTv::~CGlxTv(void)
+	??1CGlxHdmiController@@UAE@XZ @ 5 NONAME ; CGlxHdmiController::~CGlxHdmiController(void)
+	?NewL@CGlxHdmiController@@SAPAV1@XZ @ 6 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(void)
+	?IsWidescreen@CGlxTv@@QBEHXZ @ 7 NONAME ; int CGlxTv::IsWidescreen(void) const
+	?IsHDMIConnected@CGlxHdmiController@@QAEHXZ @ 8 NONAME ; int CGlxHdmiController::IsHDMIConnected(void)
+	?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 9 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void)
+	?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 10 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void)
 	?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 11 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &)
 	?IsConnected@CGlxTv@@QBEHXZ @ 12 NONAME ; int CGlxTv::IsConnected(void) const
 	?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 13 NONAME ; void CGlxHdmiController::ItemNotSupported(void)
--- a/photosgallery/viewframework/tvout/eabi/glxtvoutu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/eabi/glxtvoutu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -6,7 +6,7 @@
 	_ZN18CGlxHdmiController18ShiftToCloningModeEv @ 5 NONAME
 	_ZN18CGlxHdmiController18ShiftToPostingModeEv @ 6 NONAME
 	_ZN18CGlxHdmiController4NewLEv @ 7 NONAME
-	_ZN18CGlxHdmiController9SetImageLERK7TDesC16i @ 8 NONAME
+	_ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 8 NONAME
 	_ZN18CGlxHdmiControllerD0Ev @ 9 NONAME
 	_ZN18CGlxHdmiControllerD1Ev @ 10 NONAME
 	_ZN18CGlxHdmiControllerD2Ev @ 11 NONAME
--- a/photosgallery/viewframework/tvout/group/glxtvout.mmp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/group/glxtvout.mmp	Tue Apr 27 16:37:53 2010 +0300
@@ -74,6 +74,10 @@
 LIBRARY         imageconversion.lib				// ICL 
 LIBRARY 	efsrv.lib
 LIBRARY		glxuiutilities.lib				// for GlxGeneralUiUtilities
+LIBRARY         bitgdi.lib 
+LIBRARY         apgrfx.lib // 
+LIBRARY		apmime.lib // For ImageViewer mime type extraction
+LIBRARY		AccPolicy.lib //For RAccessoryConnection status ID's	
 // Other Dependency Libraries
 #ifdef __MARM
 LIBRARY 		GSServerEngine.lib  // FOr AspectRatio
--- a/photosgallery/viewframework/tvout/inc/glxhdmicontroller.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/inc/glxhdmicontroller.h	Tue Apr 27 16:37:53 2010 +0300
@@ -47,7 +47,8 @@
      * Update Image
      * @param1 - Image file path
      */
-    IMPORT_C void SetImageL(const TDesC& aImageFile, TBool aStore = ETrue);
+    IMPORT_C void SetImageL(const TDesC& aImageFile, CFbsBitmap* aFsBitmap = NULL, 
+            TBool aStore = ETrue);
 
     /*
      * To intimate that the item is not supported.  
@@ -117,16 +118,16 @@
      * Stores the Image File name
      * @param1 - Image file
      */
-    void StoreImageInfoL(const TDesC& aImageFile);
+    void StoreImageInfoL(const TDesC& aImageFile, CFbsBitmap* aFsBitmap);
 
 private:
+    CFbsBitmap* iFsBitmap;
     HBufC*  iStoredImagePath;
     
     CGlxHdmiContainer*      iHdmiContainer;
     CGlxHdmiSurfaceUpdater* iSurfaceUpdater;
     CGlxTv*  iGlxTvOut;
     TBool iIsImageSupported;
-	TBool iIsPostingMode;
     };
 
 #endif /* GLXHDMICONTROLLER_H_ */
--- a/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h	Tue Apr 27 16:37:53 2010 +0300
@@ -25,6 +25,8 @@
 #include "graphics/surface.h"
 #include "graphics/surfaceupdateclient.h"
 #include <graphics/surfaceconfiguration.h>
+
+// forward decleration
 class CGlxActiveCallBack;
 class CGlxHdmiDecoderAO;
 class CImageDecoder;
@@ -39,16 +41,16 @@
     {
 public:
     /*
-     * 
+     * NewL
      */
     static CGlxHdmiSurfaceUpdater* NewL(RWindow* aWindow, const TDesC& aImageFile, 
-                                         MGlxGenCallback* aCallBack);
-    
+            CFbsBitmap* aFsBitmap, MGlxGenCallback* aCallBack);
+
     /*
-     * destructor
+     * Destructor
      */
     ~CGlxHdmiSurfaceUpdater();
-    
+
 public:
     /*
      * This is to cancel the active object from decoding 
@@ -58,78 +60,82 @@
     /*
      * This updates the new image.
      */
-    void UpdateNewImageL(const TDesC& aImageFile);
-    
+    void UpdateNewImageL(const TDesC& aImageFile,CFbsBitmap* aFsBitmap);
+
     /*
      * Activate Zoom 
      */
     void ActivateZoom(TBool aAutoZoomOut);
     /*
-    * Deactivate Zoom 
-    */
+     * Deactivate Zoom 
+     */
     void DeactivateZoom();
     /*
      * Zoom in our out depending on parameter 
      */
     void Zoom(TBool aZoom);
-	
-	/*
+
+    /*
 	ShiftToCloningMOde
-	*/
-	void ShiftToCloningMode();
-	
-	/*
+     */
+    void ShiftToCloningMode();
+
+    /*
 	ShiftToPostingMode
-	*/
-	void ShiftToPostingMode();
+     */
+    void ShiftToPostingMode();
 
 private:
     /*
-     * Ctor 
+     * Constructor 
      */
-    CGlxHdmiSurfaceUpdater(RWindow* aWindow, const TDesC& aImageFile,
-                            MGlxGenCallback* aCallBack);
-    
+    CGlxHdmiSurfaceUpdater(RWindow* aWindow, MGlxGenCallback* aCallBack);
+
     /*
      * ConstructL()
      */
-    void ConstructL();   
-    
+    void ConstructL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile);   
+
     /*
      * Create a New surface with given size
      */
     void CreateSurfaceL();
     /*
-    * @param1 size 
-    */
-   void MapSurfaceL();
+     * @param1 size 
+     */
+    void MapSurfaceL();
 
+    /*
+     * This fundtion wont be called , could be used if double buffering is planned in future
+     * to start the second decoder AO and update the surface with a new session. 
+     */
     static TInt SurfBuffer0Ready(TAny* aObject);    
+    
     /*
      * Call a refresh on the screen  
      */
     void Refresh();
-    
+
     /*
      * Dump the buffer on to the surface stride 
      */
     void SwapBuffers();
-    
+
     /*
      * Release contents 
      */
     void ReleaseContent();
-    
+
     /*
      * Create bitmap  
      */
     void CreateBitmapL();
-    
+
     /*
      * Create an image decoder with given file
      * @param1 - Image file 
      */
-    void CreateImageDecoderL(const TDesC& aImageFile);
+    void CreateImageDecoderL();
 
     /*
      * Creating all enablers for HDMI
@@ -138,16 +144,56 @@
      */
     void CreateHdmiL(TBool aCreateSurface = ETrue);
 
+    /*
+     * This if for zoom timer timeout
+     */
     static TInt TimeOut(TAny* aSelf);
-	
-	/*
-	* ModifySurface positions of the surface to be displayed on screen
-	*/
-	void ModifySurfacePostion();
+
+    /*
+     * ModifySurface positions of the surface to be displayed on screen
+     */
+    void ModifySurfacePostion();
+
+    /*
+     * Process the image for TV 
+     */
+    void ProcessTvImage();
+
+    /*
+     * Shows the FS thumbnail first before showing 
+     * Decoded HD image 
+     */
+    void ShowFsThumbnailL();
+
+    /*
+     * Recalculate the size for png/bmp as decoder fails to 
+     * decode for desired size 
+     */
+    TSize ReCalculateSizeL();
+
+    /*
+     * If the image format is non jpeg, then we need to calculate as per
+     * reduction factor and reduced size as what the decoder is going to return us
+     * This function returns if that needs to be done. 
+     */
+    TBool DoesMimeTypeNeedsRecalculateL();
+
+    /*
+     * If the image format is non jpeg, then we need to scale the bitmap after it is
+     * decoded, as the return value would not fit the screen 
+     */
+    void ScaleDecodedBitmapL(TInt aBitmapIndex);
+
+    /*
+     * InitiateHDMI
+     */
+    void InitiateHdmiL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile);
+
 private:
-    RWindow* iWindow;
-    const TDesC& iImagePath;
-    MGlxGenCallback* iCallBack;
+    RWindow*        iWindow;                        // window object
+    CFbsBitmap*     iFsBitmap;                      // FS bitmap
+    MGlxGenCallback* iCallBack;                     // callback to the HdmiContainer window
+    HBufC*          iImagePath;                     // To store the image uri path
 
     // GCE Surface
     RSurfaceUpdateSession iSurfUpdateSession;
@@ -156,29 +202,44 @@
     RChunk*                 iSurfChunk;             // RChunk
     TInt                    iSurfaceStride;         // surface stride
     TSurfaceConfiguration   iConfig;                // surface configuration for zoom
-    
-    TSize               iZoomRectSz ;
-    CFbsBitmap*         iDecodedBitmap;             //Decoded bitmap of the focussed image
-    
+
+    CFbsBitmap*         iDecodedBitmap[3];          // Array of Decoded bitmaps of the focussed image
+                                                    // 1 - contains FS/Grid Thumbnail, 2- HD image, 
+                                                    // (optional)3-Scaled png/bmp images
+
     void*               iSurfBuffer;               // Surface buffer
     CGlxActiveCallBack* iSurfBufferAO;             // Surface buffer AO 
-    
+
     //ICL
     CGlxHdmiDecoderAO*  iGlxDecoderAO;              // Internal Image decoder AO              
     CImageDecoder*      iImageDecoder;              // Image Decoder
     RFs                 iFsSession;                 // RFs
+
+    TPoint      iLeftCornerForZoom;                 //  
+    CPeriodic*  iTimer;                             // Timer for Zoom   
     
-    TPoint iLeftCornerForZoom;
-    CPeriodic* iTimer;
-    TBool iZoom;
-	TBool iBitmapReady;
-	TBool iAutoZoomOut;
-	TBool iSurfSessionConnected;
+    // Various objects to store sizes and count
+    TSize       iTvScreenSize;                      // to store the Tv screen size
+    TSize       iTargetBitmapSize;                  // To Store the target bitmap size to display(as per Aspect Ratio)
+    
+    // Various flags to store values
+    TBool       iZoom;                              // Is zoomed
+    TBool       iBitmapReady;                       // If the bitmap is decoded and ready
+    TBool       iAutoZoomOut;                       // If the UI has asked for auto zoomout
+    TBool       iSurfSessionConnected;              // If surface session is connected
 	TBool iShiftToCloning;
+    TBool       iShwFsThumbnail;                    // If the Fs thumbnail is to be shown before decoding HD images
+    TBool       iIsNonJpeg;                         // If the item is non jpeg
+
 #ifdef _DEBUG
     TTime iStartTime;
     TTime iStopTime;
 #endif   
-    
+	// The bitmap index in the array of bitmaps
+    enum {
+        EFSBitmapIndex = 0,
+        EJpgDecodedBitmapIndex,
+		ENonJpgDecodedBitmapIndex
+        };
     };
 #endif /* GLXHDMISURFACEUPDATER_H_ */
--- a/photosgallery/viewframework/tvout/inc/glxtvconnectionmonitor.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/inc/glxtvconnectionmonitor.h	Tue Apr 27 16:37:53 2010 +0300
@@ -29,18 +29,20 @@
 #include <AknWsEventObserver.h>     // for MAknWsEventObserver
 #include <AccessoryServer.h>        // for RAccessoryServer
 #include <AccessoryMode.h>          // for RAccessoryMode
+#include <AccessoryConnection.h>	// for RAccessoryConnection
+#include <AccPolGenericIDArray.h>
 
 
 // Forward Declarations
-class MGlxTvConnectionObserver;       
+class MGlxTvConnectionObserver;
 
 
 /**
  * Class Description
  * An Active object derived class is used to monitor the TV out connection
  * @author Loughlin
- */        
-NONSHARABLE_CLASS(CGlxTvConnectionMonitor) : public CActive 
+ */
+NONSHARABLE_CLASS(CGlxTvConnectionMonitor) : public CActive
     {
 public:
 
@@ -49,24 +51,24 @@
      */
     static CGlxTvConnectionMonitor* NewL(
                             MGlxTvConnectionObserver& aConnectionObserver);
-    
+
     /**
      * Destructor.
      */
     ~CGlxTvConnectionMonitor();
-    
+
 private:
 
     /**
      * Standard C++ constructor
      */
-    CGlxTvConnectionMonitor( 
+    CGlxTvConnectionMonitor(
                         MGlxTvConnectionObserver& aConnectionObserver);
-    
+
     /*
      * Symbian second stage construction
      */
-    void ConstructL(); 
+    void ConstructL();
 
 public: // class member functions
 
@@ -86,53 +88,55 @@
 private: // From CActive
     /**
      * @ref CActive::RunL
-     */	
+     */
 	void RunL();
-	
+
     /**
      * @ref CActive::DoCancel
-     */	
+     */
 	void DoCancel();
-    
+
     /**
      * @ref CActive::RunError
-     */    
-    TInt RunError( TInt aError );    
-    
-    
+     */
+    TInt RunError( TInt aError );
+
+
 private:
 
     /**
-     * Requests TV on/off events 
-     */        
+     * Requests TV on/off events
+     */
     void IssueRequest();
 
     /**
      * Sends notification to observers when TV Out cable is connected
-     */      
+     */
     void IssueNotificationL();
-    
+
 
 private: // class member data
-    
+
     // Not owned: TV connection observer
     MGlxTvConnectionObserver& iConnectionObserver;
 
-    // TVout The Connection state 
+    // TVout The Connection state
     TBool iTvOutConnectionState;
-    
-    // TVout The Connection state 
+
+    // TVout The Connection state
     TBool iHDMIConnectionState;
 
     // The (external device) Accessory Server
     RAccessoryServer iTvAccServer;
-    
-    // Accessory mode 
+
+    // Accessory mode
     RAccessoryMode iTvAccMode;
-    
-    // Accessory Mode structure - details the type of accessory
-    TAccPolAccessoryMode iCurrentAccMode; 
 
+    // Accessory Connection - details the type of accessory
+    RAccessoryConnection iTvAccCon;
+
+    //Class gives Generic ID
+    TAccPolGenericIDArray iCurrentAccArray;
     };
 
 
--- a/photosgallery/viewframework/tvout/src/glxactivedecoder.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/src/glxactivedecoder.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -57,10 +57,12 @@
     TRACER("CGlxHdmiDecoderAO::RunL()");
     if(iStatus == KErrUnderflow)
         {
+        GLX_LOG_INFO("CGlxHdmiDecoderAO::RunL() - call continueconvert");
         iDecoder->ContinueConvert(&iStatus);
         }
     else
         {
+        GLX_LOG_INFO("CGlxHdmiDecoderAO::RunL() - call handlerunL");
         iHdmiSurfaceUpdater->HandleRunL(iStatus);
         }
     }
--- a/photosgallery/viewframework/tvout/src/glxhdmicontainer.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/src/glxhdmicontainer.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -20,7 +20,10 @@
 #include <glxtracer.h>
 #include <glxlog.h>
 #include "glxhdmicontainer.h"
+
 const TInt KGroupNameLength = 32;
+_LIT(KPhotosHdmi,"PhotosHdmi");
+
 // -----------------------------------------------------------------------------
 // NewLC
 // -----------------------------------------------------------------------------
@@ -93,7 +96,7 @@
     iWsWindowGroup = RWindowGroup(iSession);
     User::LeaveIfError(iWsWindowGroup.Construct(id, iScreenDevice));
     iWsWindowGroup.SetOrdinalPosition(0);
-    TBuf<KGroupNameLength> winGroupName(_L("PhotosHdmi"));
+    TBuf<KGroupNameLength> winGroupName(KPhotosHdmi);
     iWsWindowGroup.SetName(winGroupName); 
     iWsWindowGroupID = iWsWindowGroup.Identifier();
 
--- a/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -49,6 +49,11 @@
     DestroyContainer();
     delete iStoredImagePath;
     iStoredImagePath = NULL;
+    if (iFsBitmap)
+        {
+        delete iFsBitmap;
+        iFsBitmap = NULL;
+        }
     if(iGlxTvOut)
 		{
         delete iGlxTvOut;
@@ -58,18 +63,17 @@
 // -----------------------------------------------------------------------------
 // Setting an Image Path 
 // -----------------------------------------------------------------------------
-EXPORT_C void CGlxHdmiController::SetImageL(const TDesC& aImageFile,
+EXPORT_C void CGlxHdmiController::SetImageL(const TDesC& aImageFile, CFbsBitmap* aFsBitmap,
                                              TBool aStore)
     {
     TRACER("CGlxHdmiController::SetImageL()");
     if (aStore)
         {
         iIsImageSupported = ETrue;
-        StoreImageInfoL(aImageFile);
+        StoreImageInfoL( aImageFile, aFsBitmap );
         }
     if (iGlxTvOut->IsHDMIConnected())
         {
-		iIsPostingMode = ETrue;
             GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 2");
             // do not close the surface , use the same surface instead.
             // Call a function to pass imagefile
@@ -86,7 +90,7 @@
             else
                 {
             GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 3");
-            iSurfaceUpdater->UpdateNewImageL(aImageFile);
+            iSurfaceUpdater->UpdateNewImageL(aImageFile, aFsBitmap);
             }
         iHdmiContainer->DrawNow();
         }
@@ -136,7 +140,6 @@
 EXPORT_C void CGlxHdmiController::ShiftToCloningMode()
     {
     TRACER("CGlxHdmiController::ShiftToCloningMode()");
-    iIsPostingMode = EFalse;
     if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater)
         {
         iSurfaceUpdater->ShiftToCloningMode();
@@ -149,7 +152,6 @@
 EXPORT_C void CGlxHdmiController::ShiftToPostingMode()
     {
     TRACER("CGlxHdmiController::ShiftToPostingMode()");
-    iIsPostingMode = ETrue;
     if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater)
         {
         iSurfaceUpdater->ShiftToPostingMode();
@@ -160,7 +162,7 @@
 // Constructor
 // -----------------------------------------------------------------------------
 CGlxHdmiController::CGlxHdmiController():
-        iIsPostingMode(EFalse)
+            iFsBitmap(NULL)
     {
     TRACER("CGlxHdmiController::CGlxHdmiController()");
     // Implement nothing here
@@ -220,7 +222,7 @@
     {
     TRACER("CGlxHdmiController::CreateSurfaceUpdater()");
     RWindow* window = iHdmiContainer->GetWindow();
-    iSurfaceUpdater = CGlxHdmiSurfaceUpdater::NewL(window, aImageFile, 
+    iSurfaceUpdater = CGlxHdmiSurfaceUpdater::NewL(window, aImageFile, iFsBitmap,
                                                     iHdmiContainer);
     iHdmiContainer->DrawNow();
     }
@@ -228,7 +230,7 @@
 // -----------------------------------------------------------------------------
 // StoreImageInfoL 
 // -----------------------------------------------------------------------------
-void CGlxHdmiController::StoreImageInfoL(const TDesC& aImageFile)
+void CGlxHdmiController::StoreImageInfoL(const TDesC& aImageFile, CFbsBitmap* aFsBitmap)
     {
     TRACER("CGlxHdmiController::StoreImageInfoL()");
     if(iStoredImagePath)
@@ -236,7 +238,14 @@
         delete iStoredImagePath;
         iStoredImagePath = NULL;
         }
+    if (iFsBitmap)
+        {
+        delete iFsBitmap;
+        iFsBitmap = NULL;
+        }
     iStoredImagePath = aImageFile.AllocL();
+    iFsBitmap = new (ELeave) CFbsBitmap;
+    iFsBitmap->Duplicate(aFsBitmap->Handle());
     }
 
 // -----------------------------------------------------------------------------
@@ -247,14 +256,16 @@
     TRACER("CGlxHdmiController::HandleTvStatusChangedL()");
     if ( aChangeType == ETvConnectionChanged )          
         {
-        if ( iGlxTvOut->IsHDMIConnected() && iIsImageSupported && iIsPostingMode)
+        if ( iGlxTvOut->IsHDMIConnected() && iIsImageSupported )
             {
             GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Connected");
             // Calling SetImageL() with appropriate parameters
-            SetImageL(iStoredImagePath->Des(), EFalse);
+            SetImageL(iStoredImagePath->Des(), iFsBitmap, EFalse);
             }
         else
             {
+            GLX_LOG_INFO2("CGlxHdmiController::HandleTvStatusChangedL() iIsImageSupported=%d, iGlxTvOut->IsHDMIConnected()=%d", 
+                    iIsImageSupported,iGlxTvOut->IsHDMIConnected());
             // if it gets disconnected, destroy the surface 
             GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Not Connected");
             DestroySurfaceUpdater();
--- a/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -19,6 +19,7 @@
 #include <graphics/surfacemanager.h>
 #include <graphics/surfaceupdateclient.h>
 #include <e32math.h>
+#include <apgcli.h>
 
 #include <imageconversion.h> 
 #include <fbs.h>
@@ -29,27 +30,29 @@
 #include "glxactivecallback.h"
 #include "glxhdmisurfaceupdater.h"
 #include "glxactivedecoder.h"
+#include <bitdev.h> 
 
-// 720p image size
-const TInt KHdTvWidth = 1280;
-const TInt KHdTvHeight = 720;
 const TInt KMulFactorToCreateBitmap = 4;
 const TInt KZoomDelay = 10000;
 //100 , is decide for 20 steps of zooming , with each step being 5 pixels.
 const TInt KMaxZoomLimit = 100;
 //evey time we zoom , there is a increase in the ht amd width by 10 pixels.
 const TInt KSingleStepForZoom = 10;
+
+_LIT(KMimeJpeg,"image/jpeg");
+_LIT(KMimeJpg,"image/jpg");
+
 // -----------------------------------------------------------------------------
 // NewLC
 // -----------------------------------------------------------------------------
 CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL(RWindow* aWindow, const TDesC& aImageFile, 
+                                                      CFbsBitmap* aFsBitmap, 
                                                       MGlxGenCallback* aCallBack)
     {
     TRACER("CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL()");
-    CGlxHdmiSurfaceUpdater* self = new (ELeave) CGlxHdmiSurfaceUpdater(aWindow, aImageFile,
-                                                                    aCallBack);
+    CGlxHdmiSurfaceUpdater* self = new (ELeave) CGlxHdmiSurfaceUpdater(aWindow, aCallBack);
     CleanupStack::PushL(self);
-    self->ConstructL();
+    self->ConstructL(aFsBitmap,aImageFile);
     CleanupStack::Pop(self);
     return self;
     }
@@ -106,39 +109,52 @@
     TRACER("void CGlxHdmiSurfaceUpdater::ReleaseContent()"); 
     if ( iGlxDecoderAO )
         {
+        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ReleaseContent() -1");
         iGlxDecoderAO->Cancel();
         }
-    
-    if ( iDecodedBitmap )
+    if (iFsBitmap)
         {
-        delete iDecodedBitmap;
-        iDecodedBitmap= NULL;
+        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ReleaseContent() -2");
+        delete iFsBitmap;
+        iFsBitmap = NULL;
         }
-    
+    for (TInt i=0; i<=2 ; i++)
+        {
+        GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ReleaseContent() -3, %d", i);
+        delete iDecodedBitmap[i];
+        iDecodedBitmap[i]= NULL;
+        }
+    GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ReleaseContent() -4");
     if(iSurfBufferAO && iSurfBufferAO->IsActive())
         {
+        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ReleaseContent() -5");
 		iSurfBufferAO->Cancel();
         }
-    
     if ( iImageDecoder )
         {
+        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ReleaseContent() -6");
         delete iImageDecoder;
         iImageDecoder = NULL;    
         }
-    
     if (iSurfSessionConnected &&  iSurfManager)
         {
+        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ReleaseContent() -7");
         iSurfUpdateSession.CancelAllUpdateNotifications();
         }
+    if (iImagePath)
+        {
+        delete iImagePath;
+        iImagePath = NULL;
+        }
     }
 
 // -----------------------------------------------------------------------------
 // CTor 
 // -----------------------------------------------------------------------------
-CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater(RWindow* aWindow, 
-                          const TDesC& aImageFile, MGlxGenCallback* aCallBack): 
-                          iWindow(aWindow), iImagePath(aImageFile), 
-                          iCallBack(aCallBack)
+CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater(RWindow* aWindow,
+                          MGlxGenCallback* aCallBack): 
+                          iWindow(aWindow), iCallBack(aCallBack), 
+                          iShwFsThumbnail(ETrue), iIsNonJpeg(EFalse)
     {
     TRACER("CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater()");
     // Implement nothing here
@@ -147,74 +163,105 @@
 // -----------------------------------------------------------------------------
 // ConstructL 
 // -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::ConstructL()
+void CGlxHdmiSurfaceUpdater::ConstructL(CFbsBitmap* aFsBitmap, const TDesC& aImageFile)
     {
     TRACER("CGlxHdmiSurfaceUpdater::ConstructL()");
+    // Initiate the HDMI by assigning the necessary values
+    InitiateHdmiL(aFsBitmap,aImageFile);
+    
     TInt error = iFsSession.Connect ();
     GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ConstructL() FsSession Connect error = %d", error);
     User::LeaveIfError(error);
-    
-    iBitmapReady = EFalse;
     iShiftToCloning = EFalse;
     // Create the active object
     iGlxDecoderAO = CGlxHdmiDecoderAO::NewL(this);
-    CreateImageDecoderL(iImagePath);
+
+    // Create the HDMI Decoder
+    CreateImageDecoderL();
+
+    // Create the Bitmap
     CreateBitmapL();
+
+    // Create the surface and AO for updating the surface
     TRAP_IGNORE(CreateHdmiL());
+
     if(iSurfManager)
-    	{
-		error = iSurfUpdateSession.Connect();
-		GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ConstructL() Surface update Session Connect error = %d", error);
-		User::LeaveIfError(error);
-		iSurfSessionConnected = ETrue;
-		
+        {
+        error = iSurfUpdateSession.Connect();
+        GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ConstructL() Surface update Session Connect error = %d", error);
+        User::LeaveIfError(error);
+        iSurfSessionConnected = ETrue;
+
+        ShowFsThumbnailL();
 #ifdef _DEBUG
-		iStartTime.HomeTime();
+        iStartTime.HomeTime();
 #endif
-		//start decoding the image    
-		iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder);    
-    	}
-    iLeftCornerForZoom.iX = 0; 
-    iLeftCornerForZoom.iY = 0;
+        //start decoding the image    
+        iGlxDecoderAO->ConvertImageL(*iDecodedBitmap[EJpgDecodedBitmapIndex],iImageDecoder);   
+        }
     iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-    iZoom = ETrue;
     }
 
 // -----------------------------------------------------------------------------
 // UpdateNewImageL 
 // -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::UpdateNewImageL(const TDesC& aImageFile)
+void CGlxHdmiSurfaceUpdater::UpdateNewImageL(const TDesC& aImageFile,CFbsBitmap* aFsBitmap)
     {
     TRACER("CGlxHdmiSurfaceUpdater::UpdateNewImageL()");
-	//Cancel the zoom timers if any
-	if(iTimer->IsActive())
+    ReleaseContent();   
+    // Initiate the HDMI by assigning the necessary values
+    InitiateHdmiL(aFsBitmap,aImageFile);
+    //Cancel the zoom timers if any
+    if(iTimer->IsActive())
         {
-		GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::UpdateNewImageL() - Cancel Timer");
+        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::UpdateNewImageL() - Cancel Timer");
         iTimer->Cancel();
         }
-    
-	iBitmapReady = EFalse;
-	iLeftCornerForZoom.iX = 0; 
-	iLeftCornerForZoom.iY = 0;
-    ReleaseContent();   
-    CreateImageDecoderL(aImageFile);    
+
+    // Create the HDMI Decoder
+    CreateImageDecoderL();
+
+    // Create the Bitmap
     CreateBitmapL();
     if(iSurfManager)
-    	{
-    	CreateHdmiL(EFalse);
-    	}
+        {
+        // Create the surface and AO for updating the surface
+        CreateHdmiL(EFalse);
+        }
     else
-    	{
-    	TRAP_IGNORE(CreateHdmiL(ETrue));
-    	}
+        {
+        TRAP_IGNORE(CreateHdmiL(ETrue));
+        }
+
 #ifdef _DEBUG
     iStartTime.HomeTime();
 #endif
     if(iSurfManager)
-    	{
-		//start decoding the image
-		iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder);
-    	}
+        {
+        // Show FS Thumbnail
+        ShowFsThumbnailL();
+        //start decoding the image
+        iGlxDecoderAO->ConvertImageL(*iDecodedBitmap[EJpgDecodedBitmapIndex],iImageDecoder);
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// InitiateHdmiL 
+// -----------------------------------------------------------------------------
+void CGlxHdmiSurfaceUpdater::InitiateHdmiL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile)
+    {
+    TRACER("CGlxHdmiSurfaceUpdater::InitiateHdmiL()");
+    iImagePath = aImageFile.Alloc();
+    iFsBitmap = new (ELeave) CFbsBitmap;
+    iFsBitmap->Duplicate(aFsBitmap->Handle());
+    iIsNonJpeg = EFalse;
+    iTvScreenSize = iWindow->Size();
+
+    iBitmapReady = EFalse;
+    iLeftCornerForZoom.iX = 0; 
+    iLeftCornerForZoom.iY = 0;
+
+    iZoom = ETrue;
     }
 
 // -----------------------------------------------------------------------------
@@ -245,7 +292,6 @@
 void CGlxHdmiSurfaceUpdater::CreateSurfaceL()
     {
     TRACER("CGlxHdmiSurfaceUpdater::CreateSurfaceL()");
-    TSize surfaceSize = iWindow->Size();   // create surface of the screen size, i.e 1280x720
     iSurfManager = new(ELeave) RSurfaceManager();
     TInt error = iSurfManager->Open();
     GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::CreateSurfaceL Open Surface manager error = %d", error);
@@ -253,10 +299,10 @@
     
     RSurfaceManager::TSurfaceCreationAttributesBuf attributes;
     attributes().iPixelFormat           = EUidPixelFormatARGB_8888;// EUidPixelFormatYUV_420Planar;
-    attributes().iSize                  = surfaceSize;
+    attributes().iSize                  = iTvScreenSize;
     
     attributes().iBuffers               = 1;
-    attributes().iStride                = surfaceSize.iWidth * KMulFactorToCreateBitmap;  
+    attributes().iStride                = iTvScreenSize.iWidth * KMulFactorToCreateBitmap;  
     attributes().iAlignment             = KMulFactorToCreateBitmap;
     attributes().iContiguous            = EFalse;
     attributes().iMappable              = ETrue;
@@ -327,10 +373,9 @@
     {
     TRACER("CGlxHdmiSurfaceUpdater::Refresh()");
     // copy the decoded bitmap on to the surface
-    SwapBuffers();   
-    // Modify the surface position with respect to the buffer size 
-	ModifySurfacePostion();
-	// refresh the window
+    SwapBuffers();     
+
+    // refresh the window
     iCallBack->DoGenCallback();       
     }
 
@@ -342,69 +387,137 @@
 void CGlxHdmiSurfaceUpdater::SwapBuffers()
     {
     TRACER("CGlxHdmiSurfaceUpdater::SwapBuffers()"); 
-      
+    TInt bitmapIndex = KErrNotFound;
+    
+    if (iShwFsThumbnail) // show FS thumbnail
+        {
+        bitmapIndex = EFSBitmapIndex;
+        }
+    else if(iIsNonJpeg && !iShwFsThumbnail) // this indicates it is non jpeg image and decoding finished
+        {
+        bitmapIndex = ENonJpgDecodedBitmapIndex;
+        }
+    else                // if none of the above state means it is jpeg image and decoding finished
+        {
+        bitmapIndex = EJpgDecodedBitmapIndex;
+        }
+        
     // Lock the heap so that subsequent call to dataaddress doesnt happen
-    iDecodedBitmap->LockHeap();    
-    
+    iDecodedBitmap[bitmapIndex]->LockHeap();    
+
     // Data stride
-    TUint fs = iDecodedBitmap->DataStride();    
-    
+    TUint fs = iDecodedBitmap[bitmapIndex]->DataStride();    
+
     //Bitmap address from where the data has to be copied.
-    TUint8* from = (TUint8*)iDecodedBitmap->DataAddress();
-    
+    TUint8* from = (TUint8*)iDecodedBitmap[bitmapIndex]->DataAddress();
+
     //surface chunk address to where the bitmap data has to be copied.
     TUint8* to = (TUint8*)iSurfBuffer;    
-    
+
     // To buffer (32 bit colors)
     TUint ts = iSurfaceStride;
     //No of bytes to be copied on to the surface.
-    TUint bytes = iDecodedBitmap->SizeInPixels().iWidth * KMulFactorToCreateBitmap;
-    
+    TUint bytes = iDecodedBitmap[bitmapIndex]->SizeInPixels().iWidth * KMulFactorToCreateBitmap;
+
     GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::SwapBuffers() - decodeSize width = %d and height %d",
-            iDecodedBitmap->SizeInPixels().iWidth, iDecodedBitmap->SizeInPixels().iHeight );
-    
+            iDecodedBitmap[bitmapIndex]->SizeInPixels().iWidth, 
+            iDecodedBitmap[bitmapIndex]->SizeInPixels().iHeight );
+
     // Copy the bitmap on to the surface.
-    for (TInt y = iDecodedBitmap->SizeInPixels().iHeight; y >0; y--)
+    for (TInt y = iDecodedBitmap[bitmapIndex]->SizeInPixels().iHeight; y >0; y--)
         {
         Mem::Copy(to, from, bytes);        
         to += ts;        
         from += fs;        
         }            
-    iDecodedBitmap->UnlockHeap();
+    iDecodedBitmap[bitmapIndex]->UnlockHeap();
     }
 
 // -----------------------------------------------------------------------------
-// StartImageDecodeL 
+// CreateBitmapL 
 // -----------------------------------------------------------------------------
 void CGlxHdmiSurfaceUpdater::CreateBitmapL()
     {
-    TRACER("CGlxHdmiSurfaceUpdater::StartImageDecodeL()");
-    TSize scrnSize = iWindow->Size();
-    TSize targetBitmapSize;
+    TRACER("CGlxHdmiSurfaceUpdater::CreateBitmapL()");
     TSize imageSize = iImageDecoder->FrameInfo().iOverallSizeInPixels;
-    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - bitmapsize=%d, %d",imageSize.iWidth,imageSize.iHeight);
+    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - bitmapsize=%d, %d",
+            imageSize.iWidth,imageSize.iHeight);
     TReal32 scaleFactor = 0.0f;
-    if (scrnSize.iWidth * imageSize.iHeight > scrnSize.iHeight
+    if (iTvScreenSize.iWidth * imageSize.iHeight > iTvScreenSize.iHeight
             * imageSize.iWidth)
         {
-        scaleFactor = (TReal32) scrnSize.iHeight
+        scaleFactor = (TReal32) iTvScreenSize.iHeight
                 / (TReal32) imageSize.iHeight;
         }
     else
         {
-        scaleFactor = (TReal32) scrnSize.iWidth
+        scaleFactor = (TReal32) iTvScreenSize.iWidth
                 / (TReal32) imageSize.iWidth;
         }
     GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - scaleFactor=%f",scaleFactor);
-    targetBitmapSize.iHeight = imageSize.iHeight * scaleFactor;
-    targetBitmapSize.iWidth = imageSize.iWidth * scaleFactor;
-
-    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - targetBitmapSize=%d, %d",targetBitmapSize.iWidth,targetBitmapSize.iHeight);
+    iTargetBitmapSize.iHeight = imageSize.iHeight * scaleFactor;
+    iTargetBitmapSize.iWidth = imageSize.iWidth * scaleFactor;
+	GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - targetBitmapSize=%d, %d",
+	        iTargetBitmapSize.iWidth,iTargetBitmapSize.iHeight);
     //create the bitmap for the required size
-    iDecodedBitmap = new (ELeave) CFbsBitmap();
+    iDecodedBitmap[EJpgDecodedBitmapIndex] = new (ELeave) CFbsBitmap();
+    // to check if the Mimetype is supported by the decoder to to arbitary scaling
+    // if not then we recalculate the size
+    TInt err = iDecodedBitmap[EJpgDecodedBitmapIndex]->Create(ReCalculateSizeL(), EColor16MU);
+    User::LeaveIfNull(iDecodedBitmap[EJpgDecodedBitmapIndex]);
+    }
 
-    TInt err = iDecodedBitmap->Create(targetBitmapSize, EColor16MU);
-    User::LeaveIfNull(iDecodedBitmap);
+// -----------------------------------------------------------------------------
+// DoesMimeTypeNeedsRecalculateL()
+// -----------------------------------------------------------------------------
+//
+TBool CGlxHdmiSurfaceUpdater::DoesMimeTypeNeedsRecalculateL()
+    {
+    TRACER("CGlxHdmiSurfaceUpdater::DoesMimeTypeNeedsRecalculateL");
+    RApaLsSession session;
+    TDataType mimeType;
+    TUid uid;
+    
+    User::LeaveIfError( session.Connect() );
+    CleanupClosePushL( session );
+    User::LeaveIfError( session.AppForDocument( iImagePath->Des(), uid, mimeType ) );
+    CleanupStack::PopAndDestroy(&session);
+    
+    if (mimeType.Des().Compare(KMimeJpeg)==0 ||
+            mimeType.Des().Compare(KMimeJpg)==0)
+        {
+        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::DoesMimeTypeNeedsRecalculateL - jpeg");
+        return EFalse;
+        }
+    else
+        {
+        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::DoesMimeTypeNeedsRecalculateL - non jpeg");
+        return ETrue; 
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// ReCalculateSize 
+// -----------------------------------------------------------------------------
+TSize CGlxHdmiSurfaceUpdater::ReCalculateSizeL()
+    {
+    TRACER("CGlxHdmiSurfaceUpdater::ReCalculateSizeL()");
+    if(DoesMimeTypeNeedsRecalculateL())
+        {
+        iIsNonJpeg = ETrue;
+        TSize fullFrameSize = iImageDecoder->FrameInfo().iOverallSizeInPixels;
+        // calculate the reduction factor on what size we need
+        TInt reductionFactor = iImageDecoder->ReductionFactor(fullFrameSize, iTargetBitmapSize);
+        // get the reduced size onto destination size
+        TSize destSize;
+        User::LeaveIfError(iImageDecoder->ReducedSize(fullFrameSize, reductionFactor, destSize));
+        GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ReCalculateSizeL() - destSize=%d, %d",destSize.iWidth,destSize.iHeight);
+        return destSize;
+        }
+    else
+        {
+        return iTargetBitmapSize;
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -426,16 +539,13 @@
         }
     else if(iSurfManager)
         {        
-        iZoomRectSz = iDecodedBitmap->SizeInPixels();
-        if (iSurfBufferAO->iStatus != KRequestPending
-                && !iSurfBufferAO->IsActive())
+        iShwFsThumbnail = EFalse;
+        if (iIsNonJpeg)
             {
-            Refresh();
-            iSurfBufferAO->iStatus = KRequestPending;
-            iSurfBufferAO->SetActive();
-            iSurfUpdateSession.NotifyWhenAvailable(iSurfBufferAO->iStatus);
-            TInt err = iSurfUpdateSession.SubmitUpdate(1, iSurfId, 0, NULL);
+            // if this is non jpeg image, make sure we scale the bitmap
+            ScaleDecodedBitmapL(ENonJpgDecodedBitmapIndex);
             }
+        ProcessTvImage();
 		iBitmapReady = ETrue;
         }
 	//release imagedecoder after the conversion is over		
@@ -449,15 +559,14 @@
 // -----------------------------------------------------------------------------
 // CreateImageDecoderL 
 // -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::CreateImageDecoderL(const TDesC& aImageFile)
+void CGlxHdmiSurfaceUpdater::CreateImageDecoderL()
     {
     TRACER("CGlxHdmiController::CreateImageDecoderL()");
      // Create a decoder for the image in the named file
     TRAPD(error,iImageDecoder = CImageDecoder::FileNewL(iFsSession, 
-            aImageFile, CImageDecoder::EOptionNone, KNullUid));
+            iImagePath->Des(), CImageDecoder::EOptionNone, KNullUid));
     GLX_LOG_INFO1("CreateImageDecoderL CImageDecoder:FileNewL error %d",error);
     User::LeaveIfError(error);
-    
     }
 
 // -----------------------------------------------------------------------------
@@ -543,18 +652,18 @@
         }    
     if(aZoom && iZoom)
         {
-        iZoomRectSz.iWidth = TInt(iZoomRectSz.iWidth-KSingleStepForZoom);
-        iZoomRectSz.iHeight = TInt(iZoomRectSz.iHeight-KSingleStepForZoom);
+        iTargetBitmapSize.iWidth = TInt(iTargetBitmapSize.iWidth-KSingleStepForZoom);
+        iTargetBitmapSize.iHeight = TInt(iTargetBitmapSize.iHeight-KSingleStepForZoom);
         iLeftCornerForZoom.iX =iLeftCornerForZoom.iX+KSingleStepForZoom/2;
         iLeftCornerForZoom.iY =iLeftCornerForZoom.iY+KSingleStepForZoom/2;           
-        GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::Zoom()--- 2,iZoomRectSz.iWidth = %d, iZoomRectSz.iHeight = %d", iZoomRectSz.iWidth,iZoomRectSz.iHeight);
+        GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::Zoom()--- 2,iTargetBitmapSize.iWidth = %d, iTargetBitmapSize.iHeight = %d", iTargetBitmapSize.iWidth,iTargetBitmapSize.iHeight);
         iConfig.SetViewport(TRect(iLeftCornerForZoom.iX,iLeftCornerForZoom.iY,
-                iZoomRectSz.iWidth,iZoomRectSz.iHeight));
+                iTargetBitmapSize.iWidth,iTargetBitmapSize.iHeight));
         }
     else
         {
-        iZoomRectSz.iWidth = TInt(iZoomRectSz.iWidth+KSingleStepForZoom);
-        iZoomRectSz.iHeight = TInt(iZoomRectSz.iHeight+KSingleStepForZoom);
+        iTargetBitmapSize.iWidth = TInt(iTargetBitmapSize.iWidth+KSingleStepForZoom);
+        iTargetBitmapSize.iHeight = TInt(iTargetBitmapSize.iHeight+KSingleStepForZoom);
         iLeftCornerForZoom.iX =iLeftCornerForZoom.iX-KSingleStepForZoom/2;
         iLeftCornerForZoom.iY =iLeftCornerForZoom.iY-KSingleStepForZoom/2; 
         if(iLeftCornerForZoom.iX == 0)
@@ -562,9 +671,9 @@
             iTimer->Cancel();
             iZoom = ETrue;
             }
-        GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::Zoom()--- 4,iZoomRectSz.iWidth = %d, iZoomRectSz.iHeight = %d", iZoomRectSz.iWidth,iZoomRectSz.iHeight);
+        GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::Zoom()--- 4,iTargetBitmapSize.iWidth = %d, iTargetBitmapSize.iHeight = %d", iTargetBitmapSize.iWidth,iTargetBitmapSize.iHeight);
         iConfig.SetViewport(TRect(iLeftCornerForZoom.iX,iLeftCornerForZoom.iY,
-                iZoomRectSz.iWidth,iZoomRectSz.iHeight));
+                iTargetBitmapSize.iWidth,iTargetBitmapSize.iHeight));
         }
     iWindow->SetBackgroundSurface(iConfig, ETrue);   
     }
@@ -575,24 +684,26 @@
 void CGlxHdmiSurfaceUpdater::ModifySurfacePostion()
 	{
 	TRACER("CGlxHdmiSurfaceUpdater::ModifySurfacePostion()");
-	TSize bitmapSize = iDecodedBitmap->SizeInPixels();
 	TPoint startPoint(0,0);
-	if (bitmapSize.iWidth <KHdTvWidth)
+	if (iTargetBitmapSize.iWidth <iTvScreenSize.iWidth)
 	    {
-	    startPoint.iX = (KHdTvWidth - bitmapSize.iWidth)/2; 
+	    startPoint.iX = (iTvScreenSize.iWidth - iTargetBitmapSize.iWidth)/2; 
 	    }
-	if (bitmapSize.iHeight <KHdTvHeight)
+	if (iTargetBitmapSize.iHeight <iTvScreenSize.iHeight)
 	    {
-	    startPoint.iY = (KHdTvHeight - bitmapSize.iHeight)/2;
+	    startPoint.iY = (iTvScreenSize.iHeight - iTargetBitmapSize.iHeight)/2;
 	    }
-    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - target bitmapsize=%d, %d",bitmapSize.iWidth,bitmapSize.iHeight);
-    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - startPoint =%d, %d",startPoint.iX,startPoint.iY);
+    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - target iTargetBitmapSize=%d, %d",
+            iTargetBitmapSize.iWidth,iTargetBitmapSize.iHeight);
+    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - startPoint =%d, %d",
+            startPoint.iX,startPoint.iY);
 
     // target
-    iConfig.SetExtent(TRect(startPoint.iX,startPoint.iY,(KHdTvWidth-startPoint.iX),
-            (KHdTvHeight-startPoint.iY)));
+    iConfig.SetExtent(TRect(startPoint.iX,startPoint.iY,(iTvScreenSize.iWidth-startPoint.iX),
+            (iTvScreenSize.iHeight-startPoint.iY)));
     // source
-    iConfig.SetViewport(TRect(TPoint(0,0),TSize(bitmapSize.iWidth,bitmapSize.iHeight)));
+    iConfig.SetViewport(TRect(TPoint(0,0),TSize(iTargetBitmapSize.iWidth,
+            iTargetBitmapSize.iHeight)));
 #ifdef _DEBUG
     TRect ex, vp;
     iConfig.GetExtent(ex);
@@ -602,7 +713,6 @@
     GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - ex - TL=%d, %d",ex.iTl.iX,ex.iTl.iY);
     GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ModifySurfacePostion() - ex - BR=%d, %d",ex.iBr.iX,ex.iBr.iY);
 #endif
-    iWindow->SetBackgroundSurface(iConfig, ETrue);   
     }
 
 // -----------------------------------------------------------------------------
@@ -635,3 +745,86 @@
 		iShiftToCloning = EFalse;
 		}
 	}
+
+// -----------------------------------------------------------------------------
+// ShowFsThumbnailL 
+// -----------------------------------------------------------------------------
+void CGlxHdmiSurfaceUpdater::ShowFsThumbnailL()
+    {
+    TRACER("CGlxHdmiSurfaceUpdater::ShowFsThumbnailL()");
+    iShwFsThumbnail = ETrue;
+    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ShowFsThumbnailL() iTargetBitmapSize Width=%d, Height=%d",
+            iTargetBitmapSize.iWidth,iTargetBitmapSize.iHeight);
+    // Modify the surface position with respect to the buffer size 
+    ModifySurfacePostion();
+    // this is for FS thumbnail stored in array pointer 0
+    ScaleDecodedBitmapL(EFSBitmapIndex);
+    // Process the Image to TV
+    ProcessTvImage();
+    // set the surface onto background
+    iWindow->SetBackgroundSurface(iConfig, ETrue); 
+    }
+
+// -----------------------------------------------------------------------------
+// ScaleDecodedBitmapL 
+// -----------------------------------------------------------------------------
+void CGlxHdmiSurfaceUpdater::ScaleDecodedBitmapL(TInt aBitmapIndex)
+    {
+    TRACER("CGlxHdmiSurfaceUpdater::ScaleDecodedBitmapL()");
+    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::ScaleDecodedBitmapL() iTargetBitmapSize Width=%d, Height=%d",
+            iTargetBitmapSize.iWidth,iTargetBitmapSize.iHeight);
+
+    if (iDecodedBitmap[aBitmapIndex])
+        {
+        delete iDecodedBitmap[aBitmapIndex];
+        iDecodedBitmap[aBitmapIndex] = NULL;
+        }
+    iDecodedBitmap[aBitmapIndex] = new (ELeave) CFbsBitmap();
+    // create destination with size
+    TInt err = iDecodedBitmap[aBitmapIndex]->Create(iTargetBitmapSize, EColor16MU);
+    GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ScaleDecodedBitmapL() creating bitmap error, err=%d",err);
+    User::LeaveIfNull(iDecodedBitmap[aBitmapIndex]);
+
+    // Create bitmap device for destination bitmap
+    CFbsBitmapDevice* bitmapDevice = CFbsBitmapDevice::NewL(iDecodedBitmap[aBitmapIndex]);
+    CleanupStack::PushL(bitmapDevice);
+    
+    CFbsBitGc* bitmapGc = CFbsBitGc::NewL();
+    CleanupStack::PushL(bitmapGc);
+    bitmapGc->Activate(bitmapDevice);
+    if (aBitmapIndex==EFSBitmapIndex)
+        {
+        // scale the source bitmap which is a FS bitmap
+        bitmapGc->DrawBitmap(TRect(iTargetBitmapSize), iFsBitmap);
+        }
+    else
+        {
+        // scale the source bitmap which is a decoded bitmap
+        bitmapGc->DrawBitmap(TRect(iTargetBitmapSize), iDecodedBitmap[EJpgDecodedBitmapIndex]);
+        }
+    
+    CleanupStack::PopAndDestroy(bitmapGc);
+    CleanupStack::PopAndDestroy(bitmapDevice);
+
+    }
+
+// -----------------------------------------------------------------------------
+// ProcessTvImage 
+// -----------------------------------------------------------------------------
+void CGlxHdmiSurfaceUpdater::ProcessTvImage()
+    {
+    TRACER("CGlxHdmiSurfaceUpdater::ProcessTvImage()");
+    if (iSurfBufferAO->iStatus != KRequestPending
+            && !iSurfBufferAO->IsActive())
+        {
+        Refresh();
+        iSurfBufferAO->iStatus = KRequestPending;
+        iSurfBufferAO->SetActive();
+        iSurfUpdateSession.NotifyWhenAvailable(iSurfBufferAO->iStatus);
+        TInt err = iSurfUpdateSession.SubmitUpdate(1, iSurfId, 0, NULL);
+        GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ProcessTvImage() Surfaceupdatesession error %d",err);
+        }
+    }
+
+
+
--- a/photosgallery/viewframework/tvout/src/glxtv.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/src/glxtv.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -159,9 +159,9 @@
 	TRACER("CGlxTv::CGlxTvOutCenRepMonitor::ConstructL");
     CActiveScheduler::Add( this );
 #ifdef __MARM
-    CGSServerEngine* aGSServerEngine= CGSServerEngine::NewLC();
-    iSettingsTVAspectRatio = aGSServerEngine->AspectRatioL();
-    CleanupStack::Pop(aGSServerEngine);
+    CGSServerEngine* gsServerEngine= CGSServerEngine::NewLC();
+    iSettingsTVAspectRatio = gsServerEngine->AspectRatioL();
+    CleanupStack::Pop(gsServerEngine);
 #else
     iSettingsTVAspectRatio = 0;
 #endif
@@ -388,9 +388,9 @@
     iAspectRatio  = KErrNotFound;
    
 #ifdef __MARM
-    CGSServerEngine* aGSServerEngine = CGSServerEngine::NewLC();
-    iAspectRatio = aGSServerEngine->AspectRatioL();
-    CleanupStack::Pop(aGSServerEngine);
+    CGSServerEngine* gsServerEngine = CGSServerEngine::NewLC();
+    iAspectRatio = gsServerEngine->AspectRatioL();
+    CleanupStack::Pop(gsServerEngine);
 	User::LeaveIfError( iAspectRatio );
 #else
 	iAspectRatio = 0;
--- a/photosgallery/viewframework/tvout/src/glxtvconnectionmonitor.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/tvout/src/glxtvconnectionmonitor.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -31,8 +31,8 @@
 #include <glxlog.h>
 #include <glxpanic.h>
 #include "glxtv.h"
-
-
+#include <AccPolGenericIdDefinitions.h>
+#include <AccPolSubblockNameArray.h>
 //-----------------------------------------------------------------------------
 // Return new object
 //-----------------------------------------------------------------------------
@@ -58,6 +58,7 @@
     {
     GLX_LOG_INFO("~CGlxTvConnectionMonitor");
     Cancel();
+    iTvAccCon.CloseSubSession();
     iTvAccServer.Disconnect();
     }
 
@@ -83,13 +84,19 @@
 void CGlxTvConnectionMonitor::ConstructL()
     {
     GLX_LOG_INFO("CGlxTvConnectionMonitor::ConstructL");
-    User::LeaveIfError( iTvAccServer.Connect() );
-    User::LeaveIfError( iTvAccMode.CreateSubSession( iTvAccServer ) );
-    User::LeaveIfError( iTvAccMode.GetAccessoryMode( iCurrentAccMode ) );
-    iTvOutConnectionState = ( iCurrentAccMode.iAccessoryMode == EAccModeTVOut);
-    iHDMIConnectionState = ( iCurrentAccMode.iAccessoryMode == EAccModeHDMI);
-    
-    IssueRequest();  
+    User::LeaveIfError(iTvAccServer.Connect());
+	User::LeaveIfError(iTvAccCon.CreateSubSession(iTvAccServer));
+	User::LeaveIfError(iTvAccCon.GetAccessoryConnectionStatus(iCurrentAccArray));
+	for (int i = 0; i < iCurrentAccArray.Count(); i++)
+		{
+		iTvOutConnectionState
+				= (iCurrentAccArray.GetGenericIDL(i).PhysicalConnectionCaps()
+						== KPCWired);
+		iHDMIConnectionState
+				= (iCurrentAccArray.GetGenericIDL(i).PhysicalConnectionCaps()
+						== KPCHDMI);
+		}
+	IssueRequest();  
     }
 
 //-----------------------------------------------------------------------------
@@ -117,7 +124,8 @@
 void CGlxTvConnectionMonitor::DoCancel()
     {
     GLX_LOG_INFO("CGlxTvConnectionMonitor::DoCancel");
-    iTvAccMode.CancelNotifyAccessoryModeChanged();
+    iTvAccCon.CancelGetAccessoryConnectionStatus();
+    iTvAccCon.CancelNotifyAccessoryConnectionStatusChanged();
     }
 
 
@@ -141,6 +149,7 @@
 TBool CGlxTvConnectionMonitor::IsConnected() const
     {
     GLX_LOG_INFO("CGlxTvConnectionMonitor::IsConnected");
+    GLX_LOG_INFO1("CGlxTvConnectionMonitor::IsConnected iTvOutConnectionState=%d",iTvOutConnectionState);
     return iTvOutConnectionState;
     }
 
@@ -152,6 +161,7 @@
 TBool CGlxTvConnectionMonitor::IsHDMIConnected() const
     {
     GLX_LOG_INFO("CGlxTvConnectionMonitor::IsHDMIConnected");
+    GLX_LOG_INFO1("CGlxTvConnectionMonitor::IsHDMIConnected iHDMIConnectionState=%d",iHDMIConnectionState);
     return iHDMIConnectionState;
     }
 
@@ -164,35 +174,75 @@
     GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueRequest");
     if (!IsActive()) // required for testing
         {
-        iTvAccMode.NotifyAccessoryModeChanged( iStatus, iCurrentAccMode ); 
+        iTvAccCon.NotifyAccessoryConnectionStatusChanged(iStatus,iCurrentAccArray);
         SetActive(); 
         }
     }
 
-
 //-----------------------------------------------------------------------------
 // Sends notification to observers if TV Out is connected
 //-----------------------------------------------------------------------------
 //
 void CGlxTvConnectionMonitor::IssueNotificationL()
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL");
-    TBool previousTvState = iTvOutConnectionState;
-    TBool previousHDMIState = iHDMIConnectionState;
-    GLX_LOG_INFO2("previousTvState = %d , previousHDMIState = %d",
-            previousTvState,previousHDMIState);
-    iTvOutConnectionState = ( iCurrentAccMode.iAccessoryMode == EAccModeTVOut);
-    iHDMIConnectionState = ( iCurrentAccMode.iAccessoryMode == EAccModeHDMI);
-    // Call Statuschnage only if actually TvState or HDMIState has changed.
-    if ( previousTvState!= iTvOutConnectionState ||
-            previousHDMIState != iHDMIConnectionState)
-        {
-        GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL -"
-                " TvConnectionStatusChanged");
-        iConnectionObserver.HandleTvConnectionStatusChangedL();
-        }
-    }
+	GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL");
+	TBool previousTvState = iTvOutConnectionState;
+	TBool previousHDMIState = iHDMIConnectionState;
+	GLX_LOG_INFO2("previousTvState = %d , previousHDMIState = %d",
+			previousTvState,previousHDMIState);
+
+	//gets the TV status in to the iCurrentAccArray and haves the Latest Accesory in 0-index
+	User::LeaveIfError(iTvAccCon.GetAccessoryConnectionStatus(iCurrentAccArray));
+
+	CAccPolSubblockNameArray* nameArray = CAccPolSubblockNameArray::NewL();
+	CleanupStack::PushL(nameArray);
 
-
+	//
+	//  Get the number of currently connected accessories
+	//  Loop through each connected accessory looking for
+	//  the desired capabilities
+	//
+	iTvOutConnectionState = EFalse;
+	iHDMIConnectionState = EFalse;
+	const TInt count = iCurrentAccArray.Count();
+	for (TInt index = 0; index < count; index++)
+		{
+		TAccPolGenericID genId = iCurrentAccArray.GetGenericIDL(index);
+		//  Get all supported capabilities for this connected accessory.
+		iTvAccCon.GetSubblockNameArrayL(genId, *nameArray);
+		//  Check if this connected accessory supports TV-Out capabality.
+		if (nameArray->HasName(KAccVideoOut))
+			{
+			GLX_LOG_INFO("TV-Out Capabilities Exist");
+			TAccPolNameRecord nameRecord;
+			nameRecord.SetNameL(KAccVideoOut);
+			TAccValueTypeTInt value;
+			iTvAccCon.GetValueL(genId, nameRecord, value);
+			if (value.iValue == EAccVideoOutEHDMI)
+				{
+				GLX_LOG_INFO("HDMI is connected Capabilities Exist");
+				iHDMIConnectionState = ETrue;
+				break;
+				}
+			else if (value.iValue == EAccVideoOutCVideo)
+				{
+				GLX_LOG_INFO("TV is connected Capabilities Exist");
+				iTvOutConnectionState = ETrue;
+				break;
+				}
+			}
 
+		}
+	CleanupStack::PopAndDestroy(nameArray);
 
+	if (previousTvState != iTvOutConnectionState || previousHDMIState
+			!= iHDMIConnectionState)
+		{
+		GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL -"
+				" TvConnectionStatusChanged");
+		GLX_LOG_INFO2("CurrentTvState = %d , CurrentHDMIState = %d",
+				iTvOutConnectionState,iHDMIConnectionState);
+		iConnectionObserver.HandleTvConnectionStatusChangedL();
+		}
+	}
+
--- a/photosgallery/viewframework/uiutilities/data/glxuiutilities.rss	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/uiutilities/data/glxuiutilities.rss	Tue Apr 27 16:37:53 2010 +0300
@@ -832,6 +832,12 @@
     buf = "#Removed from Favourites";
     }
 
+// Completion note for "File saved to"
+RESOURCE TBUF r_glx_completion_file_saved_to
+    {
+    buf = qtn_lgal_note_file_saved_to;
+    }
+
 RESOURCE CBA r_glx_progressbar_softkey_hide
     {
     buttons =
--- a/photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/cloudview/inc/glxtagscontextmenucontrol.h	Tue Apr 27 16:37:53 2010 +0300
@@ -40,8 +40,9 @@
     virtual void HandleGridMenuListL(TInt aCommand) = 0;
     };
 
-class CGlxTagsContextMenuControl  : public CAlfControl, public MGlxTimerNotifier
-        
+class CGlxTagsContextMenuControl : public CAlfControl,
+        public MGlxTimerNotifier
+
     {
 public:
     /**     
@@ -49,30 +50,33 @@
      *  @param aItemMenuObserver - handles the menu items in grid layout
      *  @return Pointer to newly created object
      */
-    static CGlxTagsContextMenuControl* NewL( MGlxItemMenuObserver& aItemMenuObserver );
+    static CGlxTagsContextMenuControl* NewL(
+            MGlxItemMenuObserver& aItemMenuObserver);
     /**     
      *  Perform the two phase construction
      *  @param aItemMenuObserver - handles the menu items in grid layout
      *  @return Pointer to newly created object
      */
-    static CGlxTagsContextMenuControl* NewLC( MGlxItemMenuObserver& aItemMenuObserver );
+    static CGlxTagsContextMenuControl* NewLC(
+            MGlxItemMenuObserver& aItemMenuObserver);
     /**
      * Destroy the object and release all memory objects
      */
     ~CGlxTagsContextMenuControl();
-    
-public://MGlxTimernotifier
+
+public:
+    //MGlxTimernotifier
     /**
      * Virtual Function from MGlxTimernotifier
      */
     void TimerComplete();
-    
+
 public:
     /**
      * Sets the grid layout on the screen with the Point specified
      * @param aPoint - Point from which grid has to be displayed
      */
-    void SetDisplay(const TPoint& aPoint);  
+    void SetDisplay(const TPoint& aPoint);
     /**
      * Hides/shows the grid layout
      * @param aOpacity - Opacity value
@@ -85,24 +89,24 @@
     TBool ItemMenuVisibility();
 
     /**
-    * Sets the drawable screen rect 
-    * It also handles coordinates changed from Orientation
-    * @param aRect - rect area where the Tags are drawn
-    */
+     * Sets the drawable screen rect 
+     * It also handles coordinates changed from Orientation
+     * @param aRect - rect area where the Tags are drawn
+     */
     void SetViewableRect(TRect aRect);
-    
+
 private:
     /**     
      *  constructor 
      *  @param aItemMenuObserver - handles the menu items in grid layout
      */
-    CGlxTagsContextMenuControl( MGlxItemMenuObserver& aItemMenuObserver );
+    CGlxTagsContextMenuControl(MGlxItemMenuObserver& aItemMenuObserver);
 
     /** 
      *  Perform the second phase of two phase construction
      */
     void ConstructL();
-    
+
     /** 
      *  Creates the font 
      *  @return the fontId
@@ -113,11 +117,15 @@
      *  @param aFontId - Sets the text style
      */
     void CreateMenuListL(TInt aFontId);
-    
+
     /** 
-    *  Calculates the maximum text width of menu items 
-    */
+     *  Calculates the maximum text width of menu items 
+     */
     void CalculateMaxWidth();
+    /** 
+     *  Draws the line separators in Stylus menu
+     */
+    void DrawLineSeparatorsL();
     /**     
      *  Perform the two phase construction
      *  @param  aEvent - key Event to handle
@@ -127,35 +135,35 @@
     TBool OfferEventL(const TAlfEvent& aEvent);
 
 private:
-    
+
     //Observer to handle the menu items in grid layout
-    MGlxItemMenuObserver& iItemMenuObserver;          
-    
+    MGlxItemMenuObserver& iItemMenuObserver;
+
     //Grid layout, not owning
     CAlfGridLayout* iGrid;
     /** The Alf environment*/
     CAlfEnv* iAlfEnv;
-    
+
     //Slideshow text, not owning
-    CAlfTextVisual* iSlideshowTextVisual;     
-    
+    CAlfTextVisual* iSlideshowTextVisual;
+
     //Delete text, not owning
     CAlfTextVisual* iDeleteTextVisual;
-    
+
     //Rename text, not owning
-    CAlfTextVisual* iRenameTextVisual;        
-    
+    CAlfTextVisual* iRenameTextVisual;
+
     // Anchor Layout
-    CAlfAnchorLayout* iMainVisual;                
-   
+    CAlfAnchorLayout* iMainVisual;
+
     //variable used for providing delay
-    CGlxBubbleTimer* iTimer;                                 
-   
+    CGlxBubbleTimer* iTimer;
+
     //Viewable rect
-    TRect iViewableRect;                                    
-    
+    TRect iViewableRect;
+
     //flag for stylus menu visibility
-    TBool iItemMenuVisibility;                                         
+    TBool iItemMenuVisibility;
     //Maximum text width of a menu item
     TInt iMaxTextWidth;
     };
--- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -137,9 +137,6 @@
 CGlxCloudViewImp::~CGlxCloudViewImp()
     {
     TRACER("GLX_CLOUD::CGlxCloudViewImp::~CGlxCloudViewImp");
-    
-    delete iMMCNotifier;
-    iMMCNotifier = NULL;
         
     CleanupVisuals ();
     delete iEmptyListText;
@@ -222,6 +219,7 @@
 	
     // set app state to tag-browser view
     GlxSetAppState::SetState (EGlxInTagBrowserView);
+    iMMCNotifier = CGlxMMCNotifier::NewL(*this);
     }
 
 // ---------------------------------------------------------------------------
@@ -232,6 +230,10 @@
 void CGlxCloudViewImp::DoMLViewDeactivate()
 	{
 	TRACER("GLX_CLOUD::CGlxCloudViewImp::DoMLViewDeactivate");
+	
+	delete iMMCNotifier;
+	iMMCNotifier = NULL;
+	
 	//Hide softkeys and toolbar upon view de-activation.
 	iViewWidget->enableControlPane(EFalse);
 	if ( EGlxNavigationForwards == iUiUtility->ViewNavigationDirection() )
@@ -368,9 +370,8 @@
     
      //acquire the focus so as to get events to your control instead of widgets
     iCloudControl->AcquireFocus();
-    
-    iMMCNotifier = CGlxMMCNotifier::NewL(*this);
     }
+	
 // ---------------------------------------------------------------------------
 // SetScrollBarRect()
 // ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/views/cloudview/src/glxtagscontextmenucontrol.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/cloudview/src/glxtagscontextmenucontrol.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -28,6 +28,8 @@
 #include <alf/alfeventhandler.h>
 #include <alf/alfutil.h>
 #include <alf/alftexture.h>
+#include <alf/alfcurvepath.h>
+#include <alf/alflinevisual.h>
 #include <alf/alfevent.h>
 #include <alf/alfdisplay.h>
 #include <alf/alfframebrush.h>
@@ -59,7 +61,7 @@
 const TReal KOpacityOpaque = 1.0;
 //lowest possible value to make control completely transparent
 const TReal KOpacityTransparent = 0.0;
-const TPoint KDummyPoint(100,100);
+const TPoint KDummyPoint(500, 500);
 //6 Seconds delay for menu control visibility on screen 
 const TInt KTimerDelay = 6000000;
 //Control complete height
@@ -72,6 +74,10 @@
 const TInt KShrinkYCoord = 5;
 //Padding value for Minimum width for control
 const TInt KWidthPadding = 20;
+//Padding value for Minimum spacing for line separators
+const TInt KLinePadding = 5;
+//Context menu separator line thickness value
+const TReal KSeparatorLineThickness = 0.2;
 //For Tagging the visuals
 _LIT8(KTagSlideshow, "SS");
 _LIT8(KTagRename, "Ren");
@@ -156,6 +162,7 @@
     iMainVisual->Brushes()->AppendL(frameBrush, EAlfHasOwnership);
     CleanupStack::Pop(frameBrush);
 
+    DrawLineSeparatorsL();
 	ShowItemMenu(EFalse);
     }
 // --------------------------------------------------------------------------- 
@@ -261,11 +268,11 @@
         }
 
     TInt upperYPos = aPoint.iY - KMinimalGap;
-    TInt XPos = aPoint.iX ;
+    TInt XPos = aPoint.iX + KWidthPadding;
     
     //Preferred is to display in upper area
     TInt upperDisplayableHeight = upperYPos - iViewableRect.iTl.iY;
-    TInt rightDisplayableWidth = iViewableRect.iBr.iY - XPos;
+    TInt rightDisplayableWidth = iViewableRect.iBr.iX - XPos ;
 
     //always draw above
     if(rightDisplayableWidth < iMaxTextWidth)
@@ -281,8 +288,11 @@
         iMainVisual->SetPos(TAlfRealPoint(XPos , upperYPos - KGridHeight));
         }
     
-    iTimer->Cancel();          //cancels any outstanding requests
-    iTimer->SetDelay(KTimerDelay);
+	if ( iTimer)
+	    {
+		iTimer->Cancel();          //cancels any outstanding requests
+	    iTimer->SetDelay(KTimerDelay);
+		}
     }
 
 // --------------------------------------------------------------------------- 
@@ -301,6 +311,7 @@
         {
         iMainVisual->SetOpacity(KOpacityTransparent);
         iItemMenuVisibility = EFalse;
+        iMainVisual->SetPos(TAlfRealPoint(KDummyPoint));
         }
     }
 
@@ -390,3 +401,36 @@
                                  : iDeleteTextVisual->TextExtents().iWidth);
 
     }
+// --------------------------------------------------------------------------- 
+// --------------------------------------------------------------------------- 
+// DrawLineSeparatorsL()
+// --------------------------------------------------------------------------- 
+//
+void CGlxTagsContextMenuControl::DrawLineSeparatorsL()
+    {
+    TRACER("GLX_CLOUD::CGlxTagsContextMenuControl::DrawLineSeparators");
+    TRgb color;
+    //Gets the color of the line specific to skin 
+    AknsUtils::GetCachedColor(AknsUtils::SkinInstance(), color,
+            KAknsIIDQsnLineColors, EAknsCIQsnLineColorsCG11);
+
+    for (TInt i = 1; i < KNumofMenuItems; i++)
+        {
+        CAlfCurvePath* curvePath = CAlfCurvePath::NewLC(*iAlfEnv);
+        curvePath->AppendArcL(
+                TPoint(KLinePadding, KReqHeightPerMenuItem * i), TSize(), 0,
+                0, 0);
+        curvePath->AppendLineL(
+                TPoint(KLinePadding, KReqHeightPerMenuItem * i), TPoint(
+                        iMainVisual->DisplayRect().Width() - KLinePadding,
+                        KReqHeightPerMenuItem * i), 0);
+
+        CAlfLineVisual* line = CAlfLineVisual::AddNewL(*this, iMainVisual);
+        line->SetPath(curvePath, EAlfHasOwnership);
+        line->SetThickness(KSeparatorLineThickness);
+        line->SetColor(color);
+        line->SetFlag(EAlfVisualFlagIgnorePointer);
+
+        CleanupStack::Pop(curvePath);
+        }
+    }
--- a/photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp	Tue Apr 27 16:37:53 2010 +0300
@@ -100,6 +100,8 @@
 LIBRARY 	glxtvout.lib
 LIBRARY 	gfxtrans.lib
 LIBRARY		akntransitionutils.lib
+LIBRARY         fbscli.lib
 LIBRARY         ws32.lib                        // for RWsSession
+LIBRARY         aknicon.lib
 // EOF 
 
--- a/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h	Tue Apr 27 16:37:53 2010 +0300
@@ -121,7 +121,7 @@
     void DoMLViewDeactivate();
     
       //Shows the exipry note/dialog for expired DRM files
-      void ShowDrmExpiaryNoteL();
+      void ShowDrmExpiryNoteL();
       
 	  // Callback for periodic timer, static, 
 	  static TInt PeriodicCallback( TAny* aPtr );
@@ -337,6 +337,10 @@
     TBool iImgViewerMode;
 	CGlxMMCNotifier* iMMCNotifier;
 	TBool iMMCState;
+	TSize iScrnSize;   // ScrnSize
+	TSize iGridIconSize; // grid icon size
+    TBool iIsDialogLaunched;
+    TBool iIsMMCRemoved;
     };
 
 #endif
--- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -24,6 +24,8 @@
 #include <data_caging_path_literals.hrh>        // for KDC_APP_RESOURCE_DIR
 #include <glxcollectionpluginimageviewer.hrh>
 #include <StringLoader.h>                       // String Loader
+#include <AknIconUtils.h>
+#include <e32math.h>
 
 //For animation Effects
 #include <akntranseffect.h>
@@ -72,6 +74,7 @@
 #include <glxnavigationalstate.h>
 #include <mpxcollectionpath.h>
 #include <glxcollectionpluginimageviewer.hrh>
+#include <glxuistd.h>
 #include "glxfullscreenbusyicon.h"
 
 using namespace Alf;
@@ -90,7 +93,7 @@
 /**
  * Interval delay for the periodic timer, in microseconds
  */
-const TInt KPeriodicIntervalDelay = 100000; 
+const TInt KPeriodicIntervalDelay = 500000; 
 
 //This constant is used to calculate the index of the item for which texture has to removed.
 //6 = 5(iterator value in forward or backward direction for fullscreen) + 1(focus index)
@@ -98,6 +101,7 @@
 //Constant which says maximum number of fullscreen textures that we have have at a time.
 //11 = (5(5 fullscreen texture backwards)+1(fucus index texture)+5(5 fullscreen texture forwards))
 const TInt KFullScreenTextureOffset = 5;
+const TInt KGlxDecodingThreshold = 3000000; // pixels
 
 _LIT( KTfxResourceActivateFullScreen, "z:\\resource\\effects\\photos_fullscreen_open.fxml" );
 
@@ -184,6 +188,9 @@
 	iDrmUtility = CGlxDRMUtility::InstanceL();
    // Get object that stores the active media list registry
     iActiveMediaListRegistry = CGlxActiveMediaListRegistry::InstanceL();
+    
+    iIsDialogLaunched = EFalse;
+    iIsMMCRemoved = EFalse;
 	
 	iMMCNotifier = CGlxMMCNotifier::NewL(*this);
 	if(!iPeriodic)
@@ -323,6 +330,9 @@
     CleanupStack::PopAndDestroy( naviState );
     CleanupStack::PopAndDestroy( navigationalState );
 
+    iScrnSize = iUiUtility->DisplaySize();
+    iGridIconSize = iUiUtility->GetGridIconSize();
+
     //Create hdmicontroller when it is only launched from fullscreen.  
     //From filemanager show only clone mode.
     if( !iImgViewerMode )    
@@ -690,8 +700,16 @@
                 
                 iHdmiController->ActivateZoom(autoZoomOut);
                 }
-            iZoomControl->ActivateL(GetInitialZoomLevel(),aStartMode, focus,
+            if (aStartMode == EZoomStartSlider) 
+                {
+                iZoomControl->ActivateL(iSliderModel->PrimaryValue(),aStartMode, focus,
                                         item, apZoomFocus,iImgViewerMode);
+                }
+            else 
+                {
+                iZoomControl->ActivateL(GetInitialZoomLevel(),aStartMode, focus,
+                                        item, apZoomFocus,iImgViewerMode);
+                }
             // Now to remove all textures other than the one we are focussing on.  
             TInt count = iMediaList->Count();
             while (count > 0)
@@ -1027,7 +1045,7 @@
                     {
                     HideUi(ETrue);
                     }
-                TRAP_IGNORE(ShowDrmExpiaryNoteL());
+                TRAP_IGNORE(ShowDrmExpiryNoteL());
                 return EEventConsumed;
                 }
             case EVideoIconSelect:
@@ -1093,7 +1111,12 @@
 		case EGlxCmdResetView:
 		    {		    
 		    HideUi(ETrue);
+		    if (iIsDialogLaunched && iIsMMCRemoved)
+		        {
+                ProcessCommandL(EAknSoftkeyExit);
+		        }
 		    consumed = ETrue;
+		    iIsDialogLaunched = EFalse;
 		    break;
 		    }
 		case EGlxCmdFullScreenBack:
@@ -1107,6 +1130,11 @@
 			consumed = ETrue;
             break;
             }
+		case EGlxCmdDialogLaunched:
+            {
+            iIsDialogLaunched = ETrue;
+            break;
+            }
         } 
     return consumed;
     }
@@ -1149,6 +1177,16 @@
     TSize size;
     TUint8 initialZoomLevel;
     item.GetDimensions( size );
+    if (KGlxDecodingThreshold < (size.iWidth * size.iHeight))
+        {
+        TReal areaRatio = TReal(size.iWidth*size.iHeight)/KGlxDecodingThreshold ;
+        
+        TReal sideRatio;
+        Math::Sqrt(sideRatio, areaRatio);
+        
+        size.iHeight = size.iHeight /  sideRatio ;
+        size.iWidth  = size.iWidth  /  sideRatio ;
+        }
     TRect rect = AlfUtil::ScreenSize();
 
     if( rect.Width()>= size.iWidth && rect.Height() >= size.iHeight)
@@ -1264,39 +1302,52 @@
 inline void CGlxFullScreenViewImp::CallPeriodicCallback()
     {
     TRACER("CGlxFullScreenViewImp::CallPeriodicCallback");
-    TRAP_IGNORE(ShowDrmExpiaryNoteL());
+    TRAP_IGNORE(ShowDrmExpiryNoteL());
     }
 	
 // ---------------------------------------------------------------------------
 // Shows expiry note / Consumes DRM rights for expired DRM files
 // ---------------------------------------------------------------------------
 //
-void CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()
+void CGlxFullScreenViewImp::ShowDrmExpiryNoteL()
 	{
-    TRACER("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL");
+    TRACER("CGlxFullScreenViewImp::ShowDrmExpiryNoteL");
     if (iMediaList->Count() > 0)
         {
         const TGlxMedia& media = iMediaList->Item(iMediaList->FocusIndex());
         TInt tnError = GlxErrorManager::HasAttributeErrorL(
                 media.Properties(), KGlxMediaIdThumbnail);
-        GLX_LOG_INFO1("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
+        GLX_LOG_INFO1("CGlxFullScreenViewImp::ShowDrmExpiryNoteL()"
                 " tnError=%d ", tnError);
 
         if (media.IsDrmProtected())
             {
-            GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
+            GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiryNoteL()"
                     "- ConsumeDRMRightsL()");
+            //Consume DRM Rights & cancel Periodic timer for DRM images
+            //only if Quality TN is available
             ConsumeDRMRightsL(media);
             }
-
-        if (tnError == KErrNone)
+        else
             {
-            if (iPeriodic->IsActive())
+            //Cancel the periodic timer if quality thumbnail is available
+            //and no error in fetching quality thumbnail.
+            TSize tnSize = iUiUtility->DisplaySize();
+            TMPXAttribute qtyTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail,
+                    GlxFullThumbnailAttributeId(ETrue, tnSize.iWidth,
+                            tnSize.iHeight));
+            const CGlxThumbnailAttribute* qtyTn = media.ThumbnailAttribute(
+                    qtyTnAttrib);
+            if (qtyTn && tnError == KErrNone)
                 {
-                iPeriodic->Cancel();
+                if (iPeriodic->IsActive())
+                    {
+                    iPeriodic->Cancel();
+                    }
                 }
             }
-
+        
+        //check if any Error message is to be displayed
         TMPXGeneralCategory cat = media.Category();
         TBool checkViewRights = (cat == EMPXImage);
         if (iDrmUtility->ItemRightsValidityCheckL(media.Uri(),
@@ -1314,7 +1365,7 @@
             if (naviState->Id() == TMPXItemId(
                     KGlxCollectionPluginImageViewerImplementationUid))
                 {
-                GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
+                GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiryNoteL()"
                         "- ShowErrorNoteL()");
                 GlxGeneralUiUtilities::ShowErrorNoteL(tnError);
                 }
@@ -1476,7 +1527,7 @@
     TGlxMedia item = iMediaList->Item(focusIndex);
     TInt error = GlxErrorManager::HasAttributeErrorL(item.Properties(),
         KGlxMediaIdThumbnail);
-    
+    GLX_LOG_INFO1("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - error=%d", error);
     // Item will be supported by HDMI ONLY if
     // it is not a video
     // and it has valid DRM Viewing rights
@@ -1485,8 +1536,60 @@
             && iDrmUtility->ItemRightsValidityCheckL(item.Uri(), ETrue) 
             && (error == KErrNone) )
         {
-        GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Setting the Image");
-        iHdmiController->SetImageL(item.Uri());
+        GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Fetch FS thumbnail");
+        TMPXAttribute fsTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail,
+                GlxFullThumbnailAttributeId(ETrue, iScrnSize.iWidth,
+                        iScrnSize.iHeight));
+        const CGlxThumbnailAttribute* fsValue = item.ThumbnailAttribute(
+                fsTnAttrib);
+        if (fsValue)
+            {
+            GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Setting FS Bitmap");
+            CFbsBitmap* fsBitmap = new (ELeave) CFbsBitmap;
+            CleanupStack::PushL(fsBitmap);
+            fsBitmap->Duplicate( fsValue->iBitmap->Handle());
+            
+            GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - FS Bitmap Size width=%d, height=%d", 
+                    fsBitmap->SizeInPixels().iWidth, fsBitmap->SizeInPixels().iHeight);
+            iHdmiController->SetImageL(item.Uri(),fsBitmap);
+            CleanupStack::PopAndDestroy(fsBitmap);
+            }
+        else
+            {
+            GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Fetch Grid thumbnail");
+            TMPXAttribute gridTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail,
+                    GlxFullThumbnailAttributeId(ETrue, iGridIconSize.iWidth,
+                            iGridIconSize.iHeight));
+            const CGlxThumbnailAttribute* gridvalue = item.ThumbnailAttribute(
+                    gridTnAttrib);
+
+            if (gridvalue)
+                {
+                GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Setting Grid Bitmap");
+                CFbsBitmap* gridBitmap = new (ELeave) CFbsBitmap;
+                CleanupStack::PushL(gridBitmap);
+                gridBitmap->Duplicate( gridvalue->iBitmap->Handle());
+                
+                GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - gridBitmap Size width=%d, height=%d", 
+                        gridBitmap->SizeInPixels().iWidth, gridBitmap->SizeInPixels().iHeight);
+                iHdmiController->SetImageL(item.Uri(),gridBitmap);
+                CleanupStack::PopAndDestroy(gridBitmap);
+                }
+            else
+                {
+                GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Setting Default Bitmap");
+                TFileName resFile(KDC_APP_BITMAP_DIR);
+                resFile.Append(KGlxIconsFilename);
+                CFbsBitmap* defaultBitmap = new (ELeave) CFbsBitmap;
+                CleanupStack::PushL(defaultBitmap);
+                defaultBitmap = AknIconUtils::CreateIconL(resFile,
+                        EMbmGlxiconsQgn_prop_image_notcreated);
+                GLX_LOG_INFO2("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Default Size width=%d, height=%d", 
+                        defaultBitmap->SizeInPixels().iWidth, defaultBitmap->SizeInPixels().iHeight);
+                iHdmiController->SetImageL(item.Uri(),defaultBitmap);
+                CleanupStack::PopAndDestroy(defaultBitmap); 
+                }
+            }
         }
     else
         {
@@ -1540,12 +1643,16 @@
 void CGlxFullScreenViewImp::HandleMMCRemovalL()
     {
     TRACER("CGlxFullScreenViewImp::HandleMMCRemovalL()");
-    if(iZoomControl && iZoomControl->Activated())
+    iIsMMCRemoved = ETrue;
+    if(!iIsDialogLaunched)
         {
-        SetSliderLevel();
-        DeactivateZoomControlL();   
+        if(iZoomControl && iZoomControl->Activated())
+            {
+            SetSliderLevel();
+            DeactivateZoomControlL();   
+            }
+        ProcessCommandL(EAknSoftkeyExit);
         }
-    ProcessCommandL(EAknSoftkeyExit);
     }
 	
 // ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/views/gridview/bwins/glxgridviewu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/gridview/bwins/glxgridviewu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -1,5 +1,5 @@
 EXPORTS
-	?NewL@CGlxGridView@@SAPAV1@PAVMGlxMediaListFactory@@ABVTGridViewResourceIds@@HABVTDesC16@@@Z @ 1 NONAME ; class CGlxGridView * CGlxGridView::NewL(class MGlxMediaListFactory *, class TGridViewResourceIds const &, int, class TDesC16 const &)
-	?NewL@CGlxGridViewMLObserver@@SAPAV1@AAVMGlxMediaList@@PAVCHgGrid@@@Z @ 2 NONAME ; class CGlxGridViewMLObserver * CGlxGridViewMLObserver::NewL(class MGlxMediaList &, class CHgGrid *)
-	?NewLC@CGlxGridView@@SAPAV1@PAVMGlxMediaListFactory@@ABVTGridViewResourceIds@@HABVTDesC16@@@Z @ 3 NONAME ; class CGlxGridView * CGlxGridView::NewLC(class MGlxMediaListFactory *, class TGridViewResourceIds const &, int, class TDesC16 const &)
+	?NewLC@CGlxGridView@@SAPAV1@PAVMGlxMediaListFactory@@ABVTGridViewResourceIds@@HABVTDesC16@@@Z @ 1 NONAME ; class CGlxGridView * CGlxGridView::NewLC(class MGlxMediaListFactory *, class TGridViewResourceIds const &, int, class TDesC16 const &)
+	?NewL@CGlxGridView@@SAPAV1@PAVMGlxMediaListFactory@@ABVTGridViewResourceIds@@HABVTDesC16@@@Z @ 2 NONAME ; class CGlxGridView * CGlxGridView::NewL(class MGlxMediaListFactory *, class TGridViewResourceIds const &, int, class TDesC16 const &)
+	?NewL@CGlxGridViewMLObserver@@SAPAV1@AAVMGlxMediaList@@PAVCHgGrid@@W4TGlxFilterItemType@@@Z @ 3 NONAME ; class CGlxGridViewMLObserver * CGlxGridViewMLObserver::NewL(class MGlxMediaList &, class CHgGrid *, enum TGlxFilterItemType)
 
--- a/photosgallery/viewframework/views/gridview/eabi/glxgridviewu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/gridview/eabi/glxgridviewu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -1,9 +1,9 @@
 EXPORTS
 	_ZN12CGlxGridView4NewLEP20MGlxMediaListFactoryRK20TGridViewResourceIdsiRK7TDesC16 @ 1 NONAME
 	_ZN12CGlxGridView5NewLCEP20MGlxMediaListFactoryRK20TGridViewResourceIdsiRK7TDesC16 @ 2 NONAME
-	_ZN22CGlxGridViewMLObserver4NewLER13MGlxMediaListP7CHgGrid @ 3 NONAME
-	_ZTI21CGlxGridViewContainer @ 4 NONAME ; #<TI>#
-	_ZTI22CGlxGridViewMLObserver @ 5 NONAME ; #<TI>#
-	_ZTV21CGlxGridViewContainer @ 6 NONAME ; #<VT>#
-	_ZTV22CGlxGridViewMLObserver @ 7 NONAME ; #<VT>#
+	_ZN22CGlxGridViewMLObserver4NewLER13MGlxMediaListP7CHgGrid18TGlxFilterItemType @ 3 NONAME
+	_ZTI21CGlxGridViewContainer @ 4 NONAME
+	_ZTI22CGlxGridViewMLObserver @ 5 NONAME
+	_ZTV21CGlxGridViewContainer @ 6 NONAME
+	_ZTV22CGlxGridViewMLObserver @ 7 NONAME
 
--- a/photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h	Tue Apr 27 16:37:53 2010 +0300
@@ -222,6 +222,8 @@
     CAknToolbar* iToolbar;
     CGlxProgressIndicator* iProgressIndicator;
     CGlxMMCNotifier* iMMCNotifier;
+    TBool iIsDialogLaunched;
+    TBool iIsMMCRemoved;
 	};
 
 #endif // CGLXGRIDVIEWCONTROL_H
--- a/photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h	Tue Apr 27 16:37:53 2010 +0300
@@ -21,6 +21,7 @@
 
 // Photos Headers
 #include <mglxmedialistobserver.h>
+#include <glxfiltergeneraldefs.h>
 
 // FORWARD DECLARATIONS
 class CGlxMediaList;
@@ -41,7 +42,8 @@
      * @return Pointer to newly created object.
      */
     IMPORT_C static CGlxGridViewMLObserver* NewL(MGlxMediaList& aMediaList,
-            CHgGrid* aHgGrid);
+            CHgGrid* aHgGrid, TGlxFilterItemType aFilterType =
+                    EGlxFilterVideoAndImages);
 
     /**
      * Destructor.
@@ -69,7 +71,8 @@
     /**
      * C++ default constructor.
      */
-    CGlxGridViewMLObserver(MGlxMediaList& aMediaList,CHgGrid* aHgGrid);
+    CGlxGridViewMLObserver(MGlxMediaList& aMediaList, CHgGrid* aHgGrid,
+            TGlxFilterItemType aFilterType);
 
     /**
      * By default Symbian 2nd phase constructor is private.
@@ -133,5 +136,7 @@
     //Grid Thumbnail Attribs
     TMPXAttribute iQualityTnAttrib;
     TMPXAttribute iSpeedTnAttrib;    
+    // Filtertype, Image / Video
+    TGlxFilterItemType iFilterType;
     };
 #endif //GLXGRIDVIEWMLOBSERVER_H_
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -182,6 +182,9 @@
 			GlxFullThumbnailAttributeId( EFalse,  iGridIconSize.iWidth,
 					iGridIconSize.iHeight ) );
 	CreateGridL();
+ 
+   iIsDialogLaunched = EFalse;
+   iIsMMCRemoved = EFalse;
 
    iMMCNotifier = CGlxMMCNotifier::NewL(*this);
 	}
@@ -931,9 +934,19 @@
 				{
 				iHgGrid->InitScreenL(GetHgGridRect());
 				}
+			if (iIsDialogLaunched && iIsMMCRemoved)
+			    {
+                iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyExit);
+			    }
 			retVal = ETrue;
+			iIsDialogLaunched = EFalse;
 			break;
 			}
+		case EGlxCmdDialogLaunched:
+		    {
+		    iIsDialogLaunched = ETrue;
+            break;
+   		    }
 		default:
 			break;
 		}
@@ -987,6 +1000,10 @@
 void CGlxGridViewContainer::HandleMMCRemovalL()
     {
     TRACER("CGlxGridViewContainer::HandleMMCRemovalL()");
-    iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyExit);
+    iIsMMCRemoved = ETrue;
+    if(!iIsDialogLaunched)
+        {
+        iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyExit);
+        }
     }
 //end of file
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -56,11 +56,12 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C CGlxGridViewMLObserver* CGlxGridViewMLObserver::NewL(
-        MGlxMediaList& aMediaList, CHgGrid* aHgGrid)
+        MGlxMediaList& aMediaList, CHgGrid* aHgGrid,
+        TGlxFilterItemType aFilterType)
     {
     TRACER("CGlxGridViewMLObserver::NewL()");
-    CGlxGridViewMLObserver* self = 
-            new (ELeave) CGlxGridViewMLObserver(aMediaList, aHgGrid);
+    CGlxGridViewMLObserver* self = new (ELeave) CGlxGridViewMLObserver(
+            aMediaList, aHgGrid, aFilterType);
     CleanupStack::PushL(self);
     self->ConstructL();
     CleanupStack::Pop(self);
@@ -72,7 +73,8 @@
 // ---------------------------------------------------------------------------
 //
 CGlxGridViewMLObserver::CGlxGridViewMLObserver(MGlxMediaList& aMediaList,
-        CHgGrid* aHgGrid ) : iMediaList(aMediaList), iHgGrid(aHgGrid)
+        CHgGrid* aHgGrid, TGlxFilterItemType aFilterType) :
+    iMediaList(aMediaList), iHgGrid(aHgGrid), iFilterType(aFilterType)
     {
     TRACER("CGlxGridViewMLObserver::CGlxGridViewMLObserver()");
     }
@@ -224,7 +226,7 @@
         TInt tnError = GlxErrorManager::HasAttributeErrorL(
                           item.Properties(), KGlxMediaIdThumbnail );
         GLX_DEBUG4("GlxGridMLObs::HandleAttributesAvailableL() tnError(%d)"
-                "qualityTn(%x) and speedTn(%x)", qualityTn, speedTn, tnError);
+                "qualityTn(%x) and speedTn(%x)",tnError, qualityTn, speedTn );
 
         if (qualityTn)
             {
@@ -416,12 +418,29 @@
     if (iHgGrid)
         {
         // Setting the Empty Text
-        HBufC* emptyText = 
-                  StringLoader::LoadLC(R_GRID_EMPTY_VIEW_TEXT);
-        iHgGrid->SetEmptyTextL(*emptyText);
-        CleanupStack::PopAndDestroy(emptyText);
+        if (iFilterType == EGlxFilterImage)
+            {
+            HBufC* emptyText = StringLoader::LoadLC(
+                    R_GRID_EMPTY_VIEW_TEXT_IMAGE);
+            iHgGrid->SetEmptyTextL(*emptyText);
+            CleanupStack::PopAndDestroy(emptyText);
+            }
+        else if (iFilterType == EGlxFilterVideo)
+            {
+            HBufC* emptyText = StringLoader::LoadLC(
+                    R_GRID_EMPTY_VIEW_TEXT_VIDEO);
+            iHgGrid->SetEmptyTextL(*emptyText);
+            CleanupStack::PopAndDestroy(emptyText);
+            }
+        else
+            {
+            HBufC* emptyText = StringLoader::LoadLC(R_GRID_EMPTY_VIEW_TEXT);
+            iHgGrid->SetEmptyTextL(*emptyText);
+            CleanupStack::PopAndDestroy(emptyText);
+            }
+
         GLX_DEBUG2("GridMLObserver::HandlePopulatedL() iMediaList.Count()=%d",
-                                                          iMediaList.Count());
+                iMediaList.Count());
         
         if (iMediaList.Count() <= 0)
             {
--- a/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -133,7 +133,6 @@
     CleanupStack::PopAndDestroy(uiUtility);     
     //Register the view to recieve toolbar events. ViewBase handles the events    
     SetToolbarObserver(this);
-	iMMCNotifier = CGlxMMCNotifier::NewL(*this);
     }
 
 // ---------------------------------------------------------------------------
@@ -143,8 +142,6 @@
 CGlxListViewImp::~CGlxListViewImp()
     {    
     TRACER("CGlxListViewImp::~CGlxListViewImp");
-    delete iMMCNotifier;
-    iMMCNotifier = NULL;
     
     if ( iNavigationalState )
         {
@@ -187,13 +184,20 @@
     TRACER("CGlxListViewImp::DoMLViewActivateL");  
     
     TUint transitionID = (iUiUtility->ViewNavigationDirection()==
-          EGlxNavigationForwards)?KActivateTransitionId:KDeActivateTransitionId;
-
-    GfxTransEffect::BeginFullScreen( transitionID, TRect(),
+         EGlxNavigationForwards)?KActivateTransitionId:KDeActivateTransitionId;
+		
+    //Do the activate animation only for views other than mainlist view and
+	//on backward navigation from any other views to main list view, since 
+	//for the app start the animation effect is by default provided.
+    if (iMediaList->IdSpaceId(0) != KGlxIdSpaceIdRoot || 
+           transitionID == KDeActivateTransitionId) 
+        {
+    	GfxTransEffect::BeginFullScreen( transitionID, TRect(),
                                    AknTransEffect::EParameterType, 
                          AknTransEffect::GfxTransParam( KPhotosUid, 
-                                 AknTransEffect::TParameter::EEnableEffects) );   
-    GfxTransEffect::EndFullScreen();
+                         AknTransEffect::TParameter::EEnableEffects) );   
+    	GfxTransEffect::EndFullScreen();
+    	}
     
     iNextViewActivationEnabled = ETrue;
     if(StatusPane())
@@ -272,6 +276,7 @@
 		}
     iProgressIndicator = CGlxProgressIndicator::NewL(*this);
     iProgressIndicator->ShowProgressbarL();
+    iMMCNotifier = CGlxMMCNotifier::NewL(*this);
     }
 
 // ---------------------------------------------------------------------------
@@ -317,6 +322,9 @@
         delete iProgressIndicator;
         iProgressIndicator = NULL;
 	    }
+	
+	delete iMMCNotifier;
+	iMMCNotifier = NULL;
 	}
 
 // ---------------------------------------------------------------------------
@@ -393,7 +401,7 @@
 
 TTypeUid::Ptr CGlxListViewImp::MopSupplyObject(TTypeUid aId)
 	{   
-    if (iBgContext)
+    if (iBgContext && aId.iUid == MAknsControlContext::ETypeId)
     	{
         return MAknsControlContext::SupplyMopObject(aId, iBgContext );
     	}
--- a/photosgallery/viewframework/views/metadatadialog/bwins/glxmetadatadialogu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/bwins/glxmetadatadialogu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -6,4 +6,5 @@
 	?GetResourceFilenameL@CGlxResourceUtilities@@SAXAAV?$TBuf@$0BAA@@@AAVRFs@@@Z @ 5 NONAME ; void CGlxResourceUtilities::GetResourceFilenameL(class TBuf<256> &, class RFs &)
 	?GetResourceFilenameL@CGlxResourceUtilities@@SAXAAV?$TBuf@$0BAA@@@@Z @ 6 NONAME ; void CGlxResourceUtilities::GetResourceFilenameL(class TBuf<256> &)
 	?NewL@CGlxImgVwrMetadataDialog@@SAPAV1@ABVTDesC16@@@Z @ 7 NONAME ; class CGlxImgVwrMetadataDialog * CGlxImgVwrMetadataDialog::NewL(class TDesC16 const &)
+	?GetUiUtilitiesResourceFilenameL@CGlxResourceUtilities@@SA?AV?$TBuf@$0BAA@@@XZ @ 8 NONAME ; class TBuf<256> CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL(void)
 
--- a/photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss	Tue Apr 27 16:37:53 2010 +0300
@@ -133,21 +133,20 @@
                         name = qtn_lgal_details_resolution_title;
                         empty_item_text = " ";
                         },
+                    AVKON_SETTING_ITEM
+                       {
+                       identifier = ElicenseItem;
+                       setting_page_resource = r_metadata_name_settings_page;
+                       name = qtn_lgal_detail_drm;
+                       empty_item_text = " ";
+                       },
                    AVKON_SETTING_ITEM
                        {
                        identifier = EDurationItem;
                        setting_page_resource = r_metadata_name_settings_page;
                        name = qtn_lgal_details_duration;
                        empty_item_text = " ";
-                       },
-                       AVKON_SETTING_ITEM
-                       {
-                       identifier = ElicenseItem;
-                       setting_page_resource = r_metadata_name_settings_page;
-                       name = qtn_lgal_detail_drm;
-                       empty_item_text = " ";
                        }
-       
                     };
                 };
             }
--- a/photosgallery/viewframework/views/metadatadialog/eabi/glxmetadatadialogu.def	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/eabi/glxmetadatadialogu.def	Tue Apr 27 16:37:53 2010 +0300
@@ -3,15 +3,14 @@
 	_ZN18CGlxMetadataDialog9ExecuteLDEv @ 2 NONAME
 	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EE @ 3 NONAME
 	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EER3RFs @ 4 NONAME
-	_ZN22GlxMetadataViewUtility13ActivateViewLERK7TDesC16 @ 5 NONAME
-	_ZN24CGlxImgVwrMetadataDialog4NewLERK7TDesC16 @ 6 NONAME
-	_ZN24CGlxImgVwrMetadataDialog9ExecuteLDEv @ 7 NONAME
-	_ZTI18CGlxMetadataDialog @ 8 NONAME
-	_ZTI23CGlxMetadataAsyncUpdate @ 9 NONAME
+	_ZN21CGlxResourceUtilities31GetUiUtilitiesResourceFilenameLEv @ 5 NONAME
+	_ZN22GlxMetadataViewUtility13ActivateViewLERK7TDesC16 @ 6 NONAME
+	_ZN24CGlxImgVwrMetadataDialog4NewLERK7TDesC16 @ 7 NONAME
+	_ZN24CGlxImgVwrMetadataDialog9ExecuteLDEv @ 8 NONAME
+	_ZTI18CGlxMetadataDialog @ 9 NONAME
 	_ZTI24CGlxImgVwrMetadataDialog @ 10 NONAME
 	_ZTI26CGlxMetadataCommandHandler @ 11 NONAME
 	_ZTV18CGlxMetadataDialog @ 12 NONAME
-	_ZTV23CGlxMetadataAsyncUpdate @ 13 NONAME
-	_ZTV24CGlxImgVwrMetadataDialog @ 14 NONAME
-	_ZTV26CGlxMetadataCommandHandler @ 15 NONAME
+	_ZTV24CGlxImgVwrMetadataDialog @ 13 NONAME
+	_ZTV26CGlxMetadataCommandHandler @ 14 NONAME
 
--- a/photosgallery/viewframework/views/metadatadialog/inc/glxmetadatacommandhandler.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/inc/glxmetadatacommandhandler.h	Tue Apr 27 16:37:53 2010 +0300
@@ -57,7 +57,8 @@
     
     void PreDynInitMenuPaneL( TInt aResourceId );
     
-    void DynInitMenuPaneL( TInt aMenuId, CEikMenuPane* aMenuPane );
+    void DynInitMenuPaneL( TInt aMenuId, CEikMenuPane* aMenuPane, 
+                                TBool aIsBrowseMode);
     
 private:
     /** 
--- a/photosgallery/viewframework/views/metadatadialog/inc/glxmetadatacontainer.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/inc/glxmetadatacontainer.h	Tue Apr 27 16:37:53 2010 +0300
@@ -42,7 +42,6 @@
 class CGlxDetailsMulModelProvider;
 class MGlxMetadataDialogObserver;
 class CGlxCommandHandlerAddToContainer;
-class CGlxMetadataAsyncUpdate;
 
 #include "glxmedia.h"
 
@@ -113,23 +112,21 @@
 		* 
 		* @param aMediaList media list
 		*/
-		CGlxMetadataContainer(MGlxMetadataDialogObserver& aDialogObserver,const TDesC& aUri
-		        ,MToolbarResetObserver& aResetToolbarObs);
+		CGlxMetadataContainer(MGlxMetadataDialogObserver& aDialogObserver,
+			MToolbarResetObserver& aResetToolbarObs);
 		
 		/**
 		* Symbian 2nd phase constructor
 		* @param aRect rect for this control
+		* @para aUri uri for media item
 		*/		
-		void ConstructL( const TRect& aRect);
+		void ConstructL( const TRect& aRect, const TDesC& aUri);
 		
 		/** 
 		*  Create media list with URI filter
 		*  This function creates the collection path filter and finally the MediaList 
-		*
-		*  @param aIsRename If ETrue,then MediaList is created with iModifiedUri 
-		*  ,if EFalse,then created with iUri
 		*/
-		void CreateMediaListForSelectedItemL(TBool aIsRename = EFalse);
+		void CreateMediaListForSelectedItemL( );
 		/** 
 		*  Create media list to get the tags list for the particular Item.
 		*  This function creates the collection path filter and finally the MediaList 
@@ -163,6 +160,14 @@
 		*  @return TFileName as modified uri
 		*/
 		TFileName ParseFileName(const TDesC& aTitleText);	
+
+		/**
+		*  Refresh MediaList with modified FileName.
+		*
+		*  @param aModifiedUri is the new media uri
+		*/
+		void RefreshMediaListL(const TDesC& aModifiedUri);
+
 public:
 		//MedialistObserver APIS
 		void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
@@ -182,11 +187,8 @@
 		MGlxMediaList& MediaList();
 		void HandleCommandCompleteL(TAny* aSessionId, 
 		        CMPXCommand* /*aCommandResult*/, TInt aError, MGlxMediaList* aList);
-		/** 
-		*  Create new mediaList with modified filename.
-		*/
-		void RefreshMediaListL();
-	
+
+
 private: 	//data
     
 		MGlxMetadataDialogObserver& iDialogObesrver;
@@ -200,7 +202,10 @@
 		RBuf iTextSetter;
 		RBuf iTagSetter;
 		RBuf iAlbumSetter;
-		const TDesC& iUri ;
+
+		//(Owns) must always represent the media's current uri.
+		HBufC* iUri;
+
 		MGlxMediaList* iItemMediaList;
 		MGlxMediaList* iTagMediaList;
 		MGlxMediaList* iAlbumMediaList;
@@ -209,61 +214,12 @@
 		TGlxSelectionIterator iSelectionIterator;
 		CGlxAttributeContext* iMainListAttributecontext;   
 		MToolbarResetObserver& iResetToolbarObs; // observer
-		//New variable introduce to hold the modified uri name 
-		//since iUri is const type.     
-    	HBufC* iModifiedUri;
-		CGlxMetadataAsyncUpdate* iAsyncRequest;
-		TBool iRenameCompleted;
-    };
-    
-/**
- * CGlxMetadataAsyncUpdate
- * 
- * Metadata asynchronous update implementation
- * Asynchronously refreshing the MediaList because it can't be done in any MediaList callback.
- */
-class CGlxMetadataAsyncUpdate: public CActive
-	{
-	
-	public:
-		/**
-		* Symbian standard two phase construction.Construct object of CGlxMetadataAsyncUpdate class.
-		* 
-		* @param aObserver CGlxMetadataContainer
-		* @return MetadataAsynchronous object
-		*/
-		static CGlxMetadataAsyncUpdate* NewL(CGlxMetadataContainer& aObserver);
-		/**
-		* Symbian standard two phase construction.Construct object of CGlxMetadataAsyncUpdate class.
-		* 
-		* @param aObserver CGlxMetadataContainer
-		* @return MetadataAsynchronous object
-		*/
-		static CGlxMetadataAsyncUpdate* NewLC(CGlxMetadataContainer& aObserver);
-		/**
-	    * Destructor
-	    */       
-	    ~CGlxMetadataAsyncUpdate();
-	    /**
-	     * Completes the active object causing a call from the 
-	     * active scheduler to RunL()
-	     * (test in RunL using iStatus.Int())
-	     */
-    	void CompleteSelf();
-	private:
-		/**
-		* C++ constructor.
-		* 
-		* @param aObserver CGlxMetadataContainer
-		*/
-		CGlxMetadataAsyncUpdate(CGlxMetadataContainer& aObserver);
-		// from CActive
-	    void RunL();
-	    void DoCancel();
-	    
-    private:
-    	CGlxMetadataContainer& iObserver;
+
+    	//Flag to indicate rename command is started
+    	TBool iRenameStarted;
+
 	};
+
 #endif //C_GLXMETADATACONTAINER_H__
 
 //End of file
--- a/photosgallery/viewframework/views/metadatadialog/inc/glxresourceutilities.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/inc/glxresourceutilities.h	Tue Apr 27 16:37:53 2010 +0300
@@ -52,6 +52,13 @@
       * @param The file server session, must be connected before the call
       */
     IMPORT_C static void GetResourceFilenameL( TFileName& aResFile, RFs& aFs );
+    
+    /** 
+	 * Gets the full name of the UiUtilities resource file.
+	 * @return TFileName  - The resource filename for UiUtilities
+	 */
+	IMPORT_C static TFileName GetUiUtilitiesResourceFilenameL();
+    
     };
     
 
--- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacommandhandler.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacommandhandler.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -25,7 +25,7 @@
 #include <glxcommandhandleraiwshowmap.h>
 #include <glxcommandhandlers.hrh>
 #include <glxmetadatadialog.rsg>
-
+#include <glxresourceutilities.h>        
 
 //-----------------------------------------------------------------------------
 // C++ default constructor.
@@ -61,8 +61,11 @@
 void CGlxMetadataCommandHandler::ConstructL()
 	{
 	TRACER("CGlxMetadataCommandHandler::ConstructL");
-	
-	iShowOnMapCmdHandler = CGlxCommandHandlerAiwShowMap::NewL(iMediaListProvider, R_METADATA_MENU);
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(
+			CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
+	iShowOnMapCmdHandler = CGlxCommandHandlerAiwShowMap::NewL(
+			iMediaListProvider, R_METADATA_MENU,uiutilitiesrscfile);
 	}
 
 //-----------------------------------------------------------------------------
@@ -109,9 +112,10 @@
 // DynInitMenuPaneL
 // -----------------------------------------------------------------------------
 //
-void CGlxMetadataCommandHandler::DynInitMenuPaneL( TInt aMenuId, CEikMenuPane* aMenuPane )
+void CGlxMetadataCommandHandler::DynInitMenuPaneL( TInt aMenuId, CEikMenuPane* aMenuPane,
+        TBool aIsBrowseMode)
     {
 	TRACER("CGlxMetadataCommandHandler::DynInitMenuPaneL");
     
-    iShowOnMapCmdHandler->DynInitMenuPaneL(aMenuId,aMenuPane);
+    iShowOnMapCmdHandler->DynInitMenuPaneL(aMenuId,aMenuPane,aIsBrowseMode);
     }
--- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -31,7 +31,7 @@
 #include  <glxcommandfactory.h>                   //for command factory
 #include  <mpxcommandgeneraldefs.h>               // Content ID identifying general category of content provided
 #include  "mglxmetadatadialogobserver.h"
-#include  <glxtextentrypopup.h>    
+#include  <glxtextentrypopup.h>
 #include  <glxcollectionpluginall.hrh>
 #include  <glxuistd.h>
 #include  <glxcollectionplugintags.hrh>       	  // tag collection plugin uid
@@ -40,7 +40,7 @@
 #include  <aknQueryControl.h>
 #include  <glxdrmutility.h>                       //For launching DRM details pane
 #include  <glxgeneraluiutilities.h>               // General utilties class definition
-#include  <ExifModify.h>    
+#include  <ExifModify.h>
 #include  <glxuiutilities.rsg>                    //For CExifModify
 #include  <mpxmediadrmdefs.h>
 #include  <glxfilterfactory.h>
@@ -65,12 +65,12 @@
 // ---------------------------------------------------------
 // NewL
 // ---------------------------------------------------------
-//	
+//
 CGlxMetadataContainer* CGlxMetadataContainer::NewL( const TRect& aRect,
                                                     MGlxMetadataDialogObserver& aDialogObserver,
                                                     const TDesC& item,MToolbarResetObserver& aResetToolbarObs)
 	{
-	TRACER("CGlxMetadataContainer::NewL");	
+	TRACER("CGlxMetadataContainer::NewL");
 	CGlxMetadataContainer* self = CGlxMetadataContainer::NewLC( aRect,
                                                                 aDialogObserver,item,aResetToolbarObs);
 	CleanupStack::Pop(self);
@@ -80,25 +80,25 @@
 // ---------------------------------------------------------
 // NewLC
 // ---------------------------------------------------------
-//	
+//
 CGlxMetadataContainer* CGlxMetadataContainer::NewLC( const TRect& aRect,
 													 MGlxMetadataDialogObserver&  aDialogObserver,
 													 const TDesC& aUri,MToolbarResetObserver& aResetToolbarObs)
 	{
-	TRACER("CGlxMetadataContainer::NewLC");	
-	CGlxMetadataContainer* self = new(ELeave) CGlxMetadataContainer(aDialogObserver,aUri,aResetToolbarObs);
+	TRACER("CGlxMetadataContainer::NewLC");
+	CGlxMetadataContainer* self = new(ELeave) CGlxMetadataContainer(aDialogObserver, aResetToolbarObs);
 	CleanupStack::PushL(self);
-	self->ConstructL( aRect);
+	self->ConstructL( aRect, aUri);
 	return self;
 	}
 
 // ---------------------------------------------------------
 // CGlxMetadataContainer
 // ---------------------------------------------------------
-//	
+//
 CGlxMetadataContainer::CGlxMetadataContainer(MGlxMetadataDialogObserver& aDialogObserver,
-                                              const TDesC& aUri,MToolbarResetObserver& aResetToolbarObs)
-					  :iDialogObesrver ( aDialogObserver ),iUri(aUri),iResetToolbarObs(aResetToolbarObs)
+                                              MToolbarResetObserver& aResetToolbarObs)
+					  :iDialogObesrver ( aDialogObserver ),iResetToolbarObs(aResetToolbarObs)
     {
     // No implementation
     }
@@ -106,66 +106,65 @@
 // ---------------------------------------------------------
 // CGlxMetadataContainer::ConstructL
 // ---------------------------------------------------------
-//	
-void CGlxMetadataContainer::ConstructL( const TRect& /*aRect*/ )
-	{	
+//
+void CGlxMetadataContainer::ConstructL( const TRect& /*aRect*/ , const TDesC& aUri)
+	{
+
+	//media's uri
+	iUri = aUri.AllocL();
+
 	//Creating the RBuf texts for all the items except tags & albums
 	//which would be updated as whne the item is edited
 	iTextSetter.CreateL(KMaxFileName);
-	
+
 	//RBuf text which would be updated as when a tag is edited for the item.
 	iTagSetter.CreateL(KMaxFileName);
-	
+
 	//RBuf text which would be updated as when a album is edited for the item.
 	iAlbumSetter.CreateL(KMaxFileName);
-	
+
 	//Create medialist filtered by uri - iUri
 	CreateMediaListForSelectedItemL();
-	
-	//Setting the iVideo flag to EFalse initially	
+
+	//Setting the iVideo flag to EFalse initially
 	iVideo = EFalse;
-	
+
 	//Setting the iMarquee flag to EFalse initially
     iMarquee = EFalse;
-    
+
     //check when Remove location information is selected.
     iLocationinfo = EFalse;
-    
-	//Creating a CGlxMetadataAsyncUpdate object
-	iAsyncRequest = CGlxMetadataAsyncUpdate::NewL(*this);
-	
-	//Initializing to NULL
-	iModifiedUri = NULL;	
-	
-	//Flag to check if rename is completed successfully.
-	iRenameCompleted = EFalse;
+
+	//Flag to indicate rename command is started
+	iRenameStarted = EFalse;
+
 	}
 
 // ---------------------------------------------------------
 // ~CGlxMetadataContainer
 // ---------------------------------------------------------
-//	
+//
 CGlxMetadataContainer::~CGlxMetadataContainer()
 	{
 	TRACER("CGlxMetadataContainer::~CGlxMetadataContainer");
-	if( iItemMediaList ) 
+	if( iItemMediaList )
 		{
 		iItemMediaList->RemoveContext(iMainListAttributecontext);
 		iItemMediaList->RemoveMediaListObserver(this);
 		iItemMediaList->Close();
-		iItemMediaList = NULL;  
-		} 
-    if ( iTagMediaList ) 
+		iItemMediaList = NULL;
+		}
+    if ( iTagMediaList )
 		{
 		iTagMediaList->RemoveContext(iTagContext);
-		iTagMediaList->RemoveMediaListObserver(this); 
+		iTagMediaList->RemoveMediaListObserver(this);
 		iTagMediaList->Close();
 		iTagMediaList = NULL;
 		}
-    if ( iAlbumMediaList ) 
+    if ( iAlbumMediaList )
 		{
 		iAlbumMediaList->RemoveContext(iAlbumContext);
-		iAlbumMediaList->RemoveMediaListObserver(this); 
+		iAlbumMediaList->RemoveMediaListObserver(this);
 		iAlbumMediaList->Close();
 		iAlbumMediaList = NULL;
 		}
@@ -173,7 +172,7 @@
 		{
         delete iTagContext;
         iTagContext = NULL;
-		}    
+		}
     if( iAlbumContext )
 		{
         delete iAlbumContext;
@@ -183,7 +182,7 @@
         {
         delete iMainListAttributecontext;
         iMainListAttributecontext = NULL;
-        }       
+        }
     if( IsVisible() )
 	    {
 	    MakeVisible(EFalse);
@@ -191,63 +190,61 @@
     iTextSetter.Close();
     iTagSetter.Close();
     iAlbumSetter.Close();
-    if(iAsyncRequest) 	
-	    {
-    	delete iAsyncRequest;
-	    }
-	if(iModifiedUri)
+
+	if(iUri)
 		{
-		delete iModifiedUri;
+		delete iUri;
+		iUri = NULL;
 		}
 	}
-	
+
 //-----------------------------------------------------------------------------
 // CGlxMetadataContainer::MediaList
 //-----------------------------------------------------------------------------
 MGlxMediaList& CGlxMetadataContainer::MediaList()
     {
     //returns the active medialist.
-    return *iItemMediaList;    
+    return *iItemMediaList;
     }
-    
+
 //-----------------------------------------------------------------------------
 // CGlxMetadataContainer::CreateSettingItemL
 //-----------------------------------------------------------------------------
 CAknSettingItem* CGlxMetadataContainer::CreateSettingItemL(TInt aResourceId)
     {
-    TRACER("CGlxMetadataContainer::CreateSettingItemL");      
+    TRACER("CGlxMetadataContainer::CreateSettingItemL");
     CAknSettingItem* settingItem = NULL; // No need to push onto cleanup stack
 	iTextSetter.Zero();
-    
+
     //Creating a empty Settings list box which will  be populated with metadata in handleattributeavailable
-    
+
     switch(aResourceId)
         {
         case ENameItem:
         case EDateAndTimeItem:
         case EDescriptionItem:
             {
-            settingItem = new (ELeave) CAknTextSettingItem( 
+            settingItem = new (ELeave) CAknTextSettingItem(
                                              aResourceId, iTextSetter );
 
-            break;          
+            break;
             }
         case ETagsItem:
             {
              iTagSetter.Copy(KGlxTextSetter);
              settingItem = new (ELeave) CAknTextSettingItem(
                                                              aResourceId, iTagSetter );
-            break;          
+            break;
             }
         case EAlbumsItem:
-            {            
+            {
             iAlbumSetter.Copy(KGlxTextSetter);
-            settingItem = new (ELeave) CAknTextSettingItem( 
+            settingItem = new (ELeave) CAknTextSettingItem(
                                                   aResourceId, iAlbumSetter );
-            break;          
+            break;
             }
         case ELocationItem:
-        case ESizeItem:            
+        case ESizeItem:
         case EResolutionItem:
             {
             settingItem = new (ELeave) CAknTextSettingItem( 
@@ -348,16 +345,20 @@
 void CGlxMetadataContainer::HandleListboxChangesL()
     {
     TRACER("CGlxMetadataContainer::HandleListboxChangesL");
-    if(iItemMediaList->Count() == 0)
+
+    //dont Edit Item's details if medialist is empty
+    //OR Rename command is in progress
+    if(iItemMediaList->Count() == 0 || iRenameStarted)
     	{
+		GLX_LOG_INFO("MediaList empty or Rename command started");
     	return;
     	}
-    
+
     TInt index = ListBox()->CurrentItemIndex();
-    
+
     switch(index)
         {
-        case ENameItem:        
+        case ENameItem:
         case EDescriptionItem:
             {
             SetNameDescriptionL(index);
@@ -365,24 +366,24 @@
             }
         case ETagsItem:
 			{
-			//Set the focus of the item	
+			//Set the focus of the item
 			iItemMediaList->SetFocusL(NGlxListDefs::EAbsolute,0);
 			//Launch add to container commandhandler via dialog observer.
 			iDialogObesrver.AddTagL();
-			break;         
+			break;
 			}
         case EAlbumsItem:
 			{
-			//Set the focus of the item	
+			//Set the focus of the item
 			iItemMediaList->SetFocusL(NGlxListDefs::EAbsolute,0);
 			//Launch add to container commandhandler via dialog observer.
 			iDialogObesrver.AddAlbumL();
-			break;          
+			break;
 			}
 		case ELocationItem:
 			{
 			// Get the Media Item
-			const TGlxMedia& media = iItemMediaList->Item(0);    
+			const TGlxMedia& media = iItemMediaList->Item(0);
 			// Test to see if the Coordinate is Present
 			TCoordinate coordinate;
 			if( !media.GetCoordinate(coordinate) )
@@ -403,12 +404,16 @@
 			}
         case ElicenseItem:
 			{
-			//Create DRM utility
-			CGlxDRMUtility* drmUtility = CGlxDRMUtility::InstanceL();
-			CleanupClosePushL(*drmUtility);
-			drmUtility->ShowDRMDetailsPaneL(iItemMediaList->Item(0).Uri());
-			CleanupStack::PopAndDestroy(drmUtility);
-			}  
+		    const TGlxMedia& item = iItemMediaList->Item(0);
+		    if( item.IsDrmProtected())
+		        {
+                //Create DRM utility
+                CGlxDRMUtility* drmUtility = CGlxDRMUtility::InstanceL();
+                CleanupClosePushL(*drmUtility);
+                drmUtility->ShowDRMDetailsPaneL(item.Uri());
+                CleanupStack::PopAndDestroy(drmUtility);
+			    }
+			}
 			break;
         default:
 			{
@@ -419,7 +424,7 @@
 //-----------------------------------------------------------------------------
 // CGlxMetadataContainer::CreateMediaListForSelectedItemL
 //-----------------------------------------------------------------------------
-void CGlxMetadataContainer::CreateMediaListForSelectedItemL(TBool aIsRename)
+void CGlxMetadataContainer::CreateMediaListForSelectedItemL( )
     {
     TRACER("CGlxMetadataContainer::CreateMediaListForSelectedItemL");
    
@@ -429,20 +434,11 @@
     //set the all collection path as the details dialog can be launched from any of the grid views and filter with URI
     path->AppendL(KGlxCollectionPluginAllImplementationUid);
     //create the filter with the URI
-    CMPXFilter* filter = NULL;
-    if(aIsRename)
-	    {
-	    //create the filter with the modified URI after Rename happens
-	    filter = TGlxFilterFactory::CreateURIFilterL(iModifiedUri->Des());
-	    }
-	else
-		{
-		filter  = TGlxFilterFactory::CreateURIFilterL(iUri);
-		}
-    CleanupStack::PushL( filter );
-    //create the medialist   
-    iItemMediaList = MGlxMediaList::InstanceL(*path,TGlxHierarchyId(KMediaListId),filter);   
-  
+    CMPXFilter* filter = TGlxFilterFactory::CreateURIFilterL(*iUri);
+	CleanupStack::PushL( filter );
+    //create the medialist
+    iItemMediaList = MGlxMediaList::InstanceL(*path,TGlxHierarchyId(KMediaListId),filter);
+
     //Add the attributes which are required to be displayed.
     iMainListAttributecontext = new (ELeave) CGlxAttributeContext(&iSelectionIterator);
     iMainListAttributecontext->AddAttributeL(KMPXMediaDrmProtected);
@@ -567,7 +563,10 @@
         aMenuPane->SetItemDimmed(KGlxViewBoundMenuCommandId,IsLicenseItem());
         //location info will be enabled if the item has a location info
 		aMenuPane->SetItemDimmed(KGlxDeleteBoundMenuCommandId,IsLocationItem());
-        aMenuPane->SetItemDimmed(EGlxCmdAiwShowMap,IsLocationItem());
+		// Show on Map is no longer part of requirements and should not be shown in the 
+		// options menu. When show on map has to come back, replace the 'ETrue' below with 
+		// the function IsLocationItem. 
+        aMenuPane->SetItemDimmed(EGlxCmdAiwShowMap,ETrue);
         }
         
     
@@ -787,6 +786,8 @@
     HBufC* textBuf = HBufC::NewLC( KMaxMediaPopupTitleLength );
     (textBuf->Des()).Copy((settingsitem->SettingTextL()));
     TPtr textPtr = textBuf->Des();
+    //Remove preceeding & trailing spaces
+    textPtr.Trim();
     TBuf<KMaxMediaPopupTitleLength> titleText(*textBuf);
     HBufC *buf = NULL;
     if(aItem == ENameItem)
@@ -811,8 +812,11 @@
 		{
 		if(0 != (titleText.Compare(*textBuf)))
 			{
+			
+			TFileName fileName = ParseFileName(*textBuf);
+			//check If filename already exists
 			if ((aItem == ENameItem) &&
-					(BaflUtils::FileExists(ControlEnv()->FsSession(), ParseFileName(*textBuf))))
+					(BaflUtils::FileExists(ControlEnv()->FsSession(), fileName)))
 				{
 				//if changed title is same as existing one then showing the already use popup to user
 				HBufC* info = StringLoader::LoadLC(R_GLX_NAME_ALREADY_USED, *textBuf);
@@ -826,24 +830,71 @@
 				iTextSetter.Copy(*textBuf);
 				EditItemL(aItem,EFalse);
 				iItemMediaList->SetFocusL(NGlxListDefs::EAbsolute,0);//set focus to first item
-				CMPXCollectionPath* path = iItemMediaList->PathLC();
-				CMPXCommand* command = NULL;
-				//Create the glx command based on the item
+				
 				if(aItem == ENameItem)
 					{
-					command = TGlxCommandFactory::RenameCommandLC(settingsitem->SettingTextL(),
-					                                                  *path);
+					//indicate Rename command is started
+					iRenameStarted = ETrue;
+					//set Setting List Box to Dimmed status
+					SetDimmed(iRenameStarted);
+					
+					const TGlxMedia& media = iItemMediaList->Item(0);
+					ContentAccess::CManager *manager = ContentAccess::CManager::NewL();
+					CleanupStack::PushL(manager);
+					HBufC* modifiedName = fileName.AllocLC();
+					
+					//rename the media
+					TInt error = manager->RenameFile(media.Uri(), *modifiedName);
+					if(KErrNone == error)
+						{
+						//Redundant call But needed in case FileSystem is too slow 
+						//to notify MDS for updating title.
+						//Create the glx command for updating Title in MDS
+						CMPXCollectionPath* path = iItemMediaList->PathLC();
+						CMPXCommand* command = TGlxCommandFactory::RenameCommandLC(
+								settingsitem->SettingTextL(), *path);
+						command->SetTObjectValueL<TAny*> (
+								KMPXCommandGeneralSessionId,
+								static_cast<TAny*> (this));
+						//issue command to the medialist which further 
+						//calls data source to update MDS
+						iItemMediaList->CommandL(*command);
+						CleanupStack::PopAndDestroy(command);
+						CleanupStack::PopAndDestroy(path);
+						}
+					else
+						{
+						//Renaming commmand failed
+						iRenameStarted = EFalse;
+						//reset Setting Items to undim status
+						SetDimmed(iRenameStarted);
+						//Reset the EName Settings field
+						iTextSetter.Zero();
+						iTextSetter.Copy(media.Title());
+						EditItemL(ENameItem,EFalse);
+						
+						User::LeaveIfError(error);
+						}
+					CleanupStack::PopAndDestroy(modifiedName);
+					CleanupStack::PopAndDestroy(manager);
 					}
 				else
 					{
-					command = TGlxCommandFactory::SetDescriptionCommandLC(settingsitem->SettingTextL(),
-					                                          *path);
+					//Create the glx command for changing description
+					CMPXCollectionPath* path = iItemMediaList->PathLC();
+					CMPXCommand* command =
+							TGlxCommandFactory::SetDescriptionCommandLC(
+									settingsitem->SettingTextL(), *path);
+					command->SetTObjectValueL<TAny*> (
+							KMPXCommandGeneralSessionId,
+							static_cast<TAny*> (this));
+					//issue command to the medialist which further 
+					//calls data source to update MDS
+					iItemMediaList->CommandL(*command);
+					CleanupStack::PopAndDestroy(command);
+					CleanupStack::PopAndDestroy(path);
 					}
-				command->SetTObjectValueL<TAny*>(KMPXCommandGeneralSessionId, static_cast<TAny*>(this));
-				//issue command to the medialist which further calls data source to update MDS
-				iItemMediaList->CommandL(*command);
-				CleanupStack::PopAndDestroy(command);
-				CleanupStack::PopAndDestroy(path);
+				
 				}
 			}
 		}
@@ -955,11 +1006,42 @@
             //set attributes to the items in the container
             SetAttributesL(aAttributes[i]);
             }
-        if (iRenameCompleted)
-            {
-            iRenameCompleted = EFalse;
-            iAvkonAppUi->ProcessCommandL(EGlxCmdRenameCompleted);
-            }
+
+        //Here following 2 cases are handled:-
+        //1) Rename from Photos application or Post-Capture view
+        //- HandleAttributeavailable - new title & new uri at same time.
+        //May come twice here since Redundant Rename CMD sent to MDS.
+        //2) Rename from Filemanager.
+        //- HandleAttributeavailable - new title & new uri at same time.
+        //Check if media's uri(i.e 'aModifiedUri') is different from 'iUri'
+        //i.e media is Renamed then Refesh Media list.
+        TMPXAttribute uriAttrib(KMPXMediaGeneralUri);
+        TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
+        TInt index = aAttributes.Find(uriAttrib, match);
+        if (KErrNotFound != index)
+        	{
+        	HBufC* modifiedUri = NULL;
+			TGlxMedia item = iItemMediaList->Item(0);
+			//Create the string convertor instance
+			CGlxUStringConverter* stringConverter = CGlxUStringConverter::NewL();
+			CleanupStack::PushL(stringConverter);
+
+			//fetch media uri
+			stringConverter->AsStringL(item,aAttributes[index],0, modifiedUri );
+			CleanupStack::PopAndDestroy(stringConverter);
+
+			//Check if media item was renamed
+			if (modifiedUri && modifiedUri->Compare(*iUri) != 0)
+				{
+				//Set rename command as started since
+				//Rename is also possible from File Manager
+				iRenameStarted = ETrue;
+				CleanupStack::PushL(modifiedUri);
+				RefreshMediaListL(*modifiedUri);
+				CleanupStack::PopAndDestroy(modifiedUri);
+				}
+			}
+
         }
     
     TMPXAttribute titleAttrib(KMPXMediaGeneralTitle);
@@ -1016,7 +1098,7 @@
 			TGlxMedia item = iItemMediaList->Item(0);
 			CGlxUStringConverter* stringConverter = CGlxUStringConverter::NewL();
 			CleanupStack::PushL(stringConverter );
-			for(TInt index = 0; index <= ElicenseItem ; index++)
+			for(TInt index = 0; index <= EDurationItem ; index++)
 				{
 				HBufC* string = NULL;               
                 iTextSetter.Zero();             
@@ -1077,7 +1159,17 @@
 				CleanupStack::PopAndDestroy(string );
 				}
 			CleanupStack::PopAndDestroy(stringConverter );
-			}   
+
+			//Reopening Media list is completed
+			//& Rename Command is also completed
+			if(iRenameStarted)
+				{
+				iRenameStarted = EFalse;
+				//reset Setting Items to undimmed status
+				SetDimmed(iRenameStarted);
+				iAvkonAppUi->ProcessCommandL(EGlxCmdRenameCompleted);
+				}
+			}
         }
     }
 // ----------------------------------------------------------------------------
@@ -1113,35 +1205,18 @@
         CMPXCommand* aCommandResult, TInt aError, MGlxMediaList* aList)
     {
     TRACER("CGlxMetadataContainer::HandleCommandCompleteL()");
-    //To rename the uri in File System
+    
+    //Callback from MDS when rename the Title
     if(aError == KErrNone)
 		{
 		if(aList == iItemMediaList && aCommandResult->IsSupported(KMPXMediaGeneralTitle))
 			{
-			iItemMediaList->SetFocusL(NGlxListDefs::EAbsolute,0);
-			const TGlxMedia& media = iItemMediaList->Item(0);
-			ContentAccess::CManager *manager = ContentAccess::CManager::NewL();
-			CleanupStack::PushL(manager);
-			TFileName fileName = ParseFileName(iTextSetter);
-			if(iModifiedUri)
-				{
-				delete iModifiedUri;
-				iModifiedUri = NULL;	
-				}			
-			iModifiedUri = fileName.AllocL();			
-			iTextSetter.Zero();
-			TInt error = manager->RenameFile(media.Uri(), iModifiedUri->Des());
-			if(error == KErrNone)
-				{
-				iAsyncRequest->CompleteSelf();	
-				}
-			else
-				{
-				User::LeaveIfError(error);
-				}		
-			CleanupStack::PopAndDestroy(manager);
+			GLX_LOG_INFO("RenameCMD to MDS completed");
+			//Since RenameCommand to MDS is redundant and FileSystem has 
+			//already renamed the file, so there is no need to do anything here
 			}
 		}
+    
     //To update the location information once the delete operation is successful.
     if(aList == iItemMediaList && iLocationinfo 
             && static_cast<TAny*>( this ) == aSessionId)
@@ -1302,104 +1377,25 @@
 	}
 
 // ---------------------------------------------------------------------------
-// Create new MediaList with modified FileName.
-// ---------------------------------------------------------------------------
-void CGlxMetadataContainer::RefreshMediaListL()
-	{
-    TRACER("CGlxMetadataContainer::RefreshMediaList()");
-    if (iItemMediaList)
-        {
-        iItemMediaList->RemoveContext(iMainListAttributecontext);
-        iItemMediaList->RemoveMediaListObserver(this);
-        iItemMediaList->Close();
-        iItemMediaList = NULL;
-        if (iMainListAttributecontext)
-            {
-            delete iMainListAttributecontext;
-            iMainListAttributecontext = NULL;
-            }
-        CreateMediaListForSelectedItemL(ETrue);
-        }
-    iRenameCompleted = ETrue;
-    }
-
+// Refresh MediaList with modified FileName.
 // ---------------------------------------------------------------------------
-// Completes the active object causing a call from the active scheduler to RunL()
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataAsyncUpdate::CompleteSelf()
-    {
-    TRACER("CGlxMetadataAsyncUpdate::CompleteSelf");
-    TRequestStatus* status=&iStatus;
-    User::RequestComplete(status, KErrNone);
-    SetActive();  	    
-    }
-    
-// -----------------------------------------------------------------------------
-// RunL
-// -----------------------------------------------------------------------------
-//  
-void CGlxMetadataAsyncUpdate::RunL()
-    {
-    TRACER("CGlxMetadataAsyncUpdate::RunL");
-    if(iStatus.Int() == KErrNone)
-    	{    	
-    	iObserver.RefreshMediaListL();    	
-    	}
+void CGlxMetadataContainer::RefreshMediaListL(const TDesC& aModifiedUri)
+	{
+	//Refresh media list since media is renamed
+    TRACER("CGlxMetadataContainer::RefreshMediaList()");
+    if (iUri)
+		{
+		delete iUri;
+		iUri = NULL;
+		}
+	//always points to current media name
+	iUri = aModifiedUri.AllocL();
+	CMPXFilter* filter = TGlxFilterFactory::CreateURIFilterL(*iUri);
+	CleanupStack::PushL(filter);
+
+	//Update media list's filter
+	iItemMediaList->SetFilterL(filter);
+	CleanupStack::PopAndDestroy(filter);
     }
 
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-// 
-void CGlxMetadataAsyncUpdate::DoCancel()
-    {
-    TRACER("CGlxMetadataAsyncUpdate::DoCancel");
-    // No need to do anything
-    }    
-    
-// ---------------------------------------------------------
-// NewL
-// ---------------------------------------------------------
-//
-CGlxMetadataAsyncUpdate* CGlxMetadataAsyncUpdate::NewL(CGlxMetadataContainer& aObserver)
-	{
-	TRACER("CGlxMetadataAsyncUpdate::NewL");
-	CGlxMetadataAsyncUpdate* self = CGlxMetadataAsyncUpdate::NewLC(aObserver);
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-// ---------------------------------------------------------
-// NewLC
-// ---------------------------------------------------------
-//
-CGlxMetadataAsyncUpdate* CGlxMetadataAsyncUpdate::NewLC(CGlxMetadataContainer& aObserver)
-	{
-	TRACER("CGlxMetadataAsyncUpdate::NewLC");
-	CGlxMetadataAsyncUpdate* self = new(ELeave) CGlxMetadataAsyncUpdate(aObserver);
-	CleanupStack::PushL(self);
-	return self;
-	}
-
-// ---------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------
-//
-CGlxMetadataAsyncUpdate::CGlxMetadataAsyncUpdate(CGlxMetadataContainer& aObserver):
-								CActive(EPriorityStandard),iObserver(aObserver)
-    {
-    TRACER("CGlxMetadataAsyncUpdate::CGlxMetadataAsyncUpdate()");
-    CActiveScheduler::Add(this);
-    }
-	  
-// ---------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------
-//	
-CGlxMetadataAsyncUpdate::~CGlxMetadataAsyncUpdate()
-	{
-	TRACER("CGlxMetadataAsyncUpdate::~CGlxMetadataAsyncUpdate");
-	Cancel();	
-	}
 //End of file
--- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatadialog.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatadialog.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -45,6 +45,7 @@
 #include <glxscreenfurniture.h>
 #include <glxuiutilities.rsg>
 #include <glxpanic.h>                    // For Panics
+#include <glxresourceutilities.h>                // for CGlxResourceUtilities
 #include "glxmetadatacommandhandler.h"
 
 // ============================ MEMBER FUNCTIONS ===============================
@@ -75,56 +76,61 @@
 void CGlxMetadataDialog::ConstructL()
 	{
 	TRACER("CGlxMetadataDialog::ConstructL");
-		
+
 	// Load dialog's resource file
 	InitResourceL();
-	
-	
+
 	iStatusPaneAvailable = EFalse;
 	// set the title to the dialog, Note that avkon dialogs do not support
 	// setting the title in the status pane so we need to do it the hard way
 	// get status pane
 	CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane();
-	
-	if(statusPane && statusPane->IsVisible())
+
+	if (statusPane && statusPane->IsVisible())
 		{
-		iStatusPaneAvailable = ETrue;	    
+		iStatusPaneAvailable = ETrue;
 		}
 
-    // make the toolbar disabled
-    SetDetailsDlgToolbarVisibility(EFalse);	       
+	// make the toolbar disabled
+	SetDetailsDlgToolbarVisibility(EFalse);
 
 	// do we have status pane
-	if( statusPane )
+	if (statusPane)
 		{
-		GLX_LOG_INFO1("GLX_UMP::CGlxMetadataDialog::ConstructL::STATUS PANE = %d",statusPane->IsVisible());    
+		GLX_LOG_INFO1("GLX_UMP::CGlxMetadataDialog::ConstructL::STATUS PANE = %d",statusPane->IsVisible());
 		// load the title text
-		HBufC* text = StringLoader::LoadL(R_GLX_METADATA_VIEW_TITLE_DETAILS, iEikonEnv );
-		SetTitleL( *text );
-		if( text)
-		    {
-		    delete text;
-		    }
-		iAvkonAppUi->StatusPane()->MakeVisible(ETrue);			  
+		HBufC* text = StringLoader::LoadL(R_GLX_METADATA_VIEW_TITLE_DETAILS,
+				iEikonEnv );
+		SetTitleL(*text);
+		if (text)
+			{
+			delete text;
+			}
+		iAvkonAppUi->StatusPane()->MakeVisible(ETrue);
 		}
-		
-	iUiUtility = CGlxUiUtility::UtilityL();	
-	iAddToTag =  CGlxCommandHandlerAddToContainer::NewL(this, EGlxCmdAddTag, EFalse);
-	iAddToAlbum =  CGlxCommandHandlerAddToContainer::NewL(this, EGlxCmdAddToAlbum, EFalse);
-  
+
+	iUiUtility = CGlxUiUtility::UtilityL();
+	TFileName uiutilitiesrscfile;
+	uiutilitiesrscfile.Append(CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL());
+
+	iAddToTag = CGlxCommandHandlerAddToContainer::NewL(this, EGlxCmdAddTag,
+			EFalse, uiutilitiesrscfile);
+	iAddToAlbum = CGlxCommandHandlerAddToContainer::NewL(this,
+			EGlxCmdAddToAlbum, EFalse, uiutilitiesrscfile);
+
 	// Call the base class' two-phased constructor
-  	CAknDialog::ConstructL( R_METADATA_MENUBAR );
-	
+	CAknDialog::ConstructL(R_METADATA_MENUBAR);
+
 	// Instantiate the command handler
 	iMetadataCmdHandler = CGlxMetadataCommandHandler::NewL(this);
-	
+
 	//steps to find kinetic scroll threshold value
 	CAknPhysics* physics = CAknPhysics::NewL(*this, NULL);
 	CleanupStack::PushL(physics);
 	iKineticDragThreshold = physics->DragThreshold();
 	CleanupStack::PopAndDestroy(physics);
 	physics = NULL;
-	} 
+	}
 
 // -----------------------------------------------------------------------------
 // ~CGlxMetadataDialog
@@ -339,7 +345,7 @@
     {
     TRACER("CGlxMetadataDialog::DynInitMenuPaneL");
     iMetadataCmdHandler->PreDynInitMenuPaneL(aMenuId);
-    iMetadataCmdHandler->DynInitMenuPaneL(aMenuId,aMenuPane);   
+    iMetadataCmdHandler->DynInitMenuPaneL(aMenuId,aMenuPane,EFalse);   
     //To enable/diable the options based on the item selected.
     iContainer->ViewDynInitMenuPaneL(aMenuId, aMenuPane);
     }
--- a/photosgallery/viewframework/views/metadatadialog/src/glxresourceutilities.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/metadatadialog/src/glxresourceutilities.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -25,7 +25,8 @@
 #include <bautils.h>
 #include <AknUtils.h>
 #include <f32file.h>
-
+#include <glxuistd.h>
+#include <data_caging_path_literals.hrh>
 //  INTERNAL INCLUDES
 #include	<glxtracer.h>
 
@@ -73,4 +74,17 @@
         }
     }
 
+// ---------------------------------------------------------------------------
+// GetUiUtilitiesResourceFilenameL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C TFileName CGlxResourceUtilities::GetUiUtilitiesResourceFilenameL()
 
+    {
+    TParse parse;
+    parse.Set(KGlxUiUtilitiesResource, &KDC_APP_RESOURCE_DIR, NULL);
+    TFileName resourceFile(parse.FullName());
+    GetResourceFilenameL(resourceFile);
+    return resourceFile;
+    }
+
--- a/photosgallery/viewframework/views/viewbase/group/glxviewbase.mmp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/viewbase/group/glxviewbase.mmp	Tue Apr 27 16:37:53 2010 +0300
@@ -98,6 +98,7 @@
 LIBRARY         mpxviewutility.lib
 LIBRARY         ws32.lib 
 LIBRARY         commonengine.lib
+LIBRARY         centralrepository.lib  //for CRepository
 
 // Uiaccelerator related libraries 
 LIBRARY         osncore.lib 
--- a/photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h	Tue Apr 27 16:37:53 2010 +0300
@@ -98,6 +98,15 @@
      */
     void SetToolbarItemsDimmed(TBool aDimmed);
      
+    /**
+     * To check whether OneClickUpload is supported by the Shareonline 
+     * application. 
+     * NOTE: OneClickUpload is a feature of ShareOnline 4.3 and above. Hence this function
+     * ensures that the upload command works only if this version of ShareOnline is 
+     * available in the build. Else, Upload will not work! 
+     */
+    void CheckShareonlineVersionL();
+    
 private:    
     CAknToolbar* iToolbar;
     TBool iAttributeAvailable;
--- a/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -29,8 +29,20 @@
 #include <glxnavigationalstate.h>
 #include <mpxcollectionpath.h>
 #include <glxcollectionpluginimageviewer.hrh>
-const TInt KGlxToolbarButtonUnLatched = 0;   // As per the states in resource file
-const TInt KGlxToolbarButtonLatched = 1 ;
+#include <centralrepository.h>              // for checking the ShareOnline version
+
+// CONSTANTS AND DEFINITIONS
+namespace
+    {
+    // ShareOnline application UID    
+    const TUid KShareOnlineUid = { 0x2002CC1F };
+    // Shareonline Application version
+    const TUint32 KShareApplicationVersion = 0x1010020;
+    // Buffer to maintain the ShareOnline version number in use
+    const TInt KPhotosShareOnlineVersionBufLen = 12;
+    // Minimum version required for OneClickUpload to work
+    const TVersion KShareOnlineMinimumVersion( 5, 0, 0 );
+    }
 
 //----------------------------------------------------------------------------------
 // NewL
@@ -206,8 +218,63 @@
 void CGlxToolbarController::SetStatusOnViewActivationL( MGlxMediaList* aList )
      {
     TRACER("CGlxToolbarController::SetStatusOnViewActivationL");
-    GLX_LOG_INFO1("CGlxToolbarController::SetStatusOnViewActivationL(%d)",
-            aList->Count());
+    TRAPD(err, CheckShareonlineVersionL());
+    GLX_LOG_INFO2("CGlxToolbarController::SetStatusOnViewActivationL(%d),"
+            " err(%d)", aList->Count(), err);
+
+    CGlxNavigationalState* navigationalState =
+            CGlxNavigationalState::InstanceL();
+    CleanupClosePushL(*navigationalState);
+    if (navigationalState->ViewingMode() == NGlxNavigationalState::EBrowse)
+        {
+        if (err == KErrNone)
+            {
+            CAknButton* sendButton =
+                    static_cast<CAknButton*> (iToolbar->ControlOrNull(
+                            EGlxCmdSend));
+            if (sendButton)
+                {
+                iToolbar->RemoveItem(EGlxCmdSend);
+                }
+            }
+        else
+            {
+            CAknButton* uploadButton =
+                    static_cast<CAknButton*> (iToolbar->ControlOrNull(
+                            EGlxCmdUpload));
+            if (uploadButton)
+                {
+                iToolbar->RemoveItem(EGlxCmdUpload);
+                }
+            }
+        SetToolbarItemsDimmed(EFalse);
+        }
+    else if (navigationalState->ViewingMode() == NGlxNavigationalState::EView)
+        {
+        if (err == KErrNone)
+            {
+            CAknButton* slideshowButton =
+                    static_cast<CAknButton*> (iToolbar->ControlOrNull(
+                            EGlxCmdSlideshowPlay));
+            if (slideshowButton)
+                {
+                iToolbar->RemoveItem(EGlxCmdSlideshowPlay);
+                }
+            }
+        else
+            {
+            CAknButton* uploadButton =
+                    static_cast<CAknButton*> (iToolbar->ControlOrNull(
+                            EGlxCmdUpload));
+            if (uploadButton)
+                {
+                iToolbar->RemoveItem(EGlxCmdUpload);
+                }
+            }
+        SetToolbarItemsDimmed(EFalse);
+        }
+    CleanupStack::PopAndDestroy(navigationalState);
+
     // When going back from fullscreen to grid, when the attributes are already 
     // available in the cache, there is no HandleAttributeAvailable callback. Hence,
     // checking for medialist count.
@@ -239,6 +306,13 @@
             {
             SetToolbarItemsDimmed(EFalse);
             }
+        else if (navigationalState->ViewingMode()
+                == NGlxNavigationalState::EBrowse)
+            {
+            TBool dimmed = aList->SelectionCount() ? EFalse : ETrue;
+            iToolbar->SetItemDimmed(EGlxCmdSend, dimmed, ETrue);
+            iToolbar->SetItemDimmed(EGlxCmdUpload, dimmed, ETrue);
+            }
         CleanupStack::PopAndDestroy(navigationalState);
         }
     }
@@ -253,14 +327,14 @@
                                 (iToolbar->ControlOrNull( aCommandId ));
 
     if( toolbarButton )
-        {           
-        if(aLatched)
+        {
+        if (aLatched)
             {
-            toolbarButton->SetCurrentState( KGlxToolbarButtonLatched, ETrue );
+            toolbarButton->SetCurrentState(ETrue, ETrue);
             }
         else
             {
-            toolbarButton->SetCurrentState( KGlxToolbarButtonUnLatched, ETrue );
+            toolbarButton->SetCurrentState(EFalse, ETrue);
             }
         }
     }
@@ -289,26 +363,73 @@
         {
         iToolbar->SetItemDimmed(EGlxCmdSlideshowPlay, aDimmed, ETrue);
         iToolbar->SetItemDimmed(EGlxCmdStartMultipleMarking, aDimmed, ETrue);
-        
-        if (!aDimmed)
+        iToolbar->SetItemDimmed(EGlxCmdSend, aDimmed, ETrue);
+        iToolbar->SetItemDimmed(EGlxCmdUpload, aDimmed, ETrue);
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CheckShareonlineVersionL
+// ----------------------------------------------------------------------------
+//
+void CGlxToolbarController::CheckShareonlineVersionL()
+    {
+    TRACER("CGlxToolbarController::CheckShareonlineVersionL");
+
+    CRepository* rep = CRepository::NewLC(KShareOnlineUid);
+    //
+    TBuf<KPhotosShareOnlineVersionBufLen> versionBuf;
+    // Query the ShareOnline version in the build
+    User::LeaveIfError(rep->Get(KShareApplicationVersion, versionBuf));
+
+    // Initialize version to zero
+    TVersion version(0, 0, 0);
+    TLex lex(versionBuf);
+    User::LeaveIfError(lex.Val(version.iMajor));
+    if (lex.Get() != TChar('.'))
+        {
+        User::Leave(KErrCorrupt);
+        }
+    User::LeaveIfError(lex.Val(version.iMinor));
+    if (lex.Get() != TChar('.'))
+        {
+        User::Leave(KErrCorrupt);
+        }
+    User::LeaveIfError(lex.Val(version.iBuild));
+
+    // Compare version number and leave if the detected
+    // version is less than KShareOnlineMinimumVersion.
+    if (version.iMajor < KShareOnlineMinimumVersion.iMajor)
+        {
+        User::LeaveIfError(KErrNotSupported);
+        }
+    else if (version.iMajor == KShareOnlineMinimumVersion.iMajor)
+        {
+        if (version.iMinor < KShareOnlineMinimumVersion.iMinor)
             {
-            CAknButton* uploadButton =
-                    static_cast<CAknButton*> (iToolbar->ControlOrNull(
-                            EGlxCmdUpload));
-            TBool dimmed = EFalse;
-            if (uploadButton)
+            User::LeaveIfError(KErrNotSupported);
+            }
+        else if (version.iMinor == KShareOnlineMinimumVersion.iMinor)
+            {
+            if (version.iBuild < KShareOnlineMinimumVersion.iBuild)
                 {
-                // Get current button state
-                CAknButtonState* currentState = uploadButton->State();
-                dimmed = uploadButton->IsDimmed();
-                iToolbar->SetItemDimmed(EGlxCmdUpload, dimmed, ETrue);
+                User::LeaveIfError(KErrNotSupported);
+                }
+            else
+                {
+                // Version is supported, fall through
                 }
             }
         else
             {
-            iToolbar->SetItemDimmed(EGlxCmdUpload, aDimmed, ETrue);
+            // Version is supported, fall through
             }
         }
+    else
+        {
+        // Version is supported, fall through
+        }
+    CleanupStack::PopAndDestroy(rep);
     }
 
 //end of file
--- a/photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -229,10 +229,17 @@
     
 	// Allow implementing view to filter menu first
 	ViewDynInitMenuPaneL(aResourceId, aMenuPane);
-	   
+
+	//Since the toolbar is set only incase of grid view we can assume that
+	//it is in browse mode.	   
+	TBool isBrowseMode = EFalse;
+    if(iUiUtility->GetGridToolBar())
+        {
+        isBrowseMode = ETrue;
+        } 
     for (TInt i = 0; i < count; i++ )
         {
-        iCommandHandlerList[i]->DynInitMenuPaneL( aResourceId, aMenuPane );
+        iCommandHandlerList[i]->DynInitMenuPaneL( aResourceId, aMenuPane, isBrowseMode );
         }
 	}
 
--- a/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -272,7 +272,7 @@
 // ActivateL:Activates the Zoom Control,set the image visual ,do the initial setup
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CGlxZoomControl::ActivateL(TInt /*aInitialZoomRatio*/, TZoomStartMode aStartMode, 
+EXPORT_C void CGlxZoomControl::ActivateL(TInt aInitialZoomRatio, TZoomStartMode aStartMode, 
         TInt aFocusIndex, TGlxMedia& aItem, TPoint* aZoomFocus,TBool aViewingMode)
     {
     TRACER("CGlxZoomControl::ActivateL()");
@@ -320,16 +320,28 @@
             // Maximum is an
             TInt initialZoomRatio = GetInitialZoomLevel(maxVirtualImageSize);
             iZoomSliderModel->SetMinRange(initialZoomRatio);
-    
+
             iEventHandler->SetZoomActivated(ETrue);
-            iEventHandler->ActivateZoom(initialZoomRatio,
-                    maxVirtualImageSize,
-                    aStartMode,
-                    iZoomSliderModel->MinRange(), 
-                    iZoomSliderModel->MaxRange(),
-                    maxVirtualImageSize,
-                    aZoomFocus);
-            
+            if (aStartMode == EZoomStartSlider) 
+                {
+                iEventHandler->ActivateZoom(aInitialZoomRatio,
+                        maxVirtualImageSize,
+                        aStartMode,
+                        iZoomSliderModel->MinRange(), 
+                        iZoomSliderModel->MaxRange(),
+                        maxVirtualImageSize,
+                        aZoomFocus);
+                }
+            else 
+                {
+                iEventHandler->ActivateZoom(initialZoomRatio,
+                        maxVirtualImageSize,
+                        aStartMode,
+                        iZoomSliderModel->MinRange(), 
+                        iZoomSliderModel->MaxRange(),
+                        maxVirtualImageSize,
+                        aZoomFocus);
+                }
             TRAP_IGNORE(iImageTexture = 
             &(iTextureMgr->CreateZoomedTextureL(aItem,thumbNailAttribute,idspace,this)));
            
@@ -882,11 +894,8 @@
                 iEventHandler->HandleDragEvent(aEvent);
                 }
                 break;
-            case EGestureTap:
-            if (aEvent.Visual() == iImageVisual)
-                {
+            case EGestureTap:            
                 iEventHandler->HandleSingleTap(aEvent);
-                }
                 break;
             case EGesturePinch:
                 iEventHandler->HandlePinchEventL(aEvent);
--- a/photosgallery/viewframework/views/zoomview/src/glxzoomeventhandler.cpp	Wed Apr 14 15:57:24 2010 +0300
+++ b/photosgallery/viewframework/views/zoomview/src/glxzoomeventhandler.cpp	Tue Apr 27 16:37:53 2010 +0300
@@ -941,7 +941,10 @@
             iZoomEventHandler.HandleShowUi(EFalse);
             }
             break;
-        case EZoomStartSlider :
+        case EZoomStartSlider:
+            {
+            Zoom(aInitialZoomRatio, 0, iZoomMode);
+            }
             break;
         default:
             break;
@@ -995,7 +998,8 @@
                     MulSliderPos* dataPtr = (MulSliderPos*)(aEvent.CustomEventData());  
                     TInt currentSliderValue = dataPtr->mCurrentValue;
 
-                    // is current value within accetable ranges.
+                    // Is current value within acceptable range? 
+					// If yes, then zoom in or zoom out as needed.
                     if ( currentSliderValue > iMinZoomRatio 
                             &&  currentSliderValue <= iMaxZoomRatio )
                         {