Revision: 201011 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 31 Mar 2010 21:31:03 +0300
branchRCL_3
changeset 18 bcb43dc84c44
parent 14 ce1c7ad1f18b
child 22 2dac0fdba72b
Revision: 201011 Kit: 201013
package_definition.xml
photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/group/ui_metaDataDialog_DoxyFile.txt
photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/inc/ui_metaDataDialog.h
photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialog.cpp
photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialogBlocks.cpp
photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group/ut_collectioninfo_DoxyFile.txt
photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/inc/ut_collectioninfo.h
photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfo.cpp
photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfoBlocks.cpp
photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group/ut_collectionmanager_DoxyFile.txt
photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/inc/ut_collectionmanager.h
photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/glxcollectionmanagerao.cpp
photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanager.cpp
photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanagerBlocks.cpp
photos_plat/gallery_utilities_api/inc/glxgallery.hrh
photos_plat/gallery_utilities_api/inc/glxthumbnailattributeinfo.h
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeidlist.h
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemde.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeattribute.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdecommand.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsattribute.h
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h
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/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp
photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp
photosgallery/collectionframework/plugins/glxcollectionpluginimageviewer/src/glxcollectionpluginimageviewer.cpp
photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp
photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp
photosgallery/collectionframework/thumbnailcreator/src/glxtnfileutility.cpp
photosgallery/collectionframework/thumbnailcreator/src/glxtnimageutility.cpp
photosgallery/collectionframework/thumbnailcreator/src/glxtnvolumedatabase.cpp
photosgallery/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.cpp
photosgallery/common/bwins/glxcommonu.def
photosgallery/common/eabi/glxcommonu.def
photosgallery/common/inc/glxfilterfactory.h
photosgallery/common/src/glxcommandparser.cpp
photosgallery/common/src/glxfilterfactory.cpp
photosgallery/commonui/inc/glxbackservicewrapper.h
photosgallery/commonui/src/glxbackservicewrapper.cpp
photosgallery/commonui/src/glxnavigationalstate.cpp
photosgallery/contentharvesterplugin/data/200104DF.rss
photosgallery/contentharvesterplugin/group/bld.inf
photosgallery/contentharvesterplugin/group/glxcontentharvesterplugin.mmp
photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugin.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugin.hrh
photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginalbums.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginall.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginbase.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugincaptured.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugindownloads.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginmonths.h
photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugintags.h
photosgallery/contentharvesterplugin/inc/glxmapconstants.h
photosgallery/contentharvesterplugin/rom/glxcontentharvesterplugin.iby
photosgallery/contentharvesterplugin/src/glxcontentharvesterplugin.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginalbums.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginbase.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterplugincaptured.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterplugindownloads.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginmonths.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginproxy.cpp
photosgallery/contentharvesterplugin/src/glxcontentharvesterplugintags.cpp
photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp
photosgallery/gallery/loc/photos.loc
photosgallery/gallery/rom/gallery.iby
photosgallery/gallery/src/glxappui.cpp
photosgallery/gallery/src/glxdocument.cpp
photosgallery/help/inc/lgal.hlp.hrh
photosgallery/imgvwr/src/glxivwrdocument.cpp
photosgallery/inc/glxfiltergeneraldefs.h
photosgallery/inc/glxfilterproperties.h
photosgallery/inc/glxlogattribute.h
photosgallery/inc/photos.hlp.hrh
photosgallery/logging/client/src/glxlogchunk.cpp
photosgallery/photossuite/bwins/dummyCu.def
photosgallery/photossuite/data/photos_items.xml
photosgallery/photossuite/data/photossuite.rss
photosgallery/photossuite/data/suite.xml
photosgallery/photossuite/eabi/dummyCu.def
photosgallery/photossuite/group/bld.inf
photosgallery/photossuite/group/export_photossuite.mk
photosgallery/photossuite/group/photossuite.mmp
photosgallery/photossuite/rom/photossuite.iby
photosgallery/photossuite/rom/photossuite_localization.iby
photosgallery/photossuite/src/dummy.cpp
photosgallery/rom/glxgallery.iby
photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp
photosgallery/slideshow/engine/controlsrc/shweventrouter.cpp
photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp
photosgallery/slideshow/engine/controlsrc/shwviewcontrol.cpp
photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp
photosgallery/slideshow/engine/coresrc/shwsettingsmodel.cpp
photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp
photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp
photosgallery/slideshow/engine/coresrc/shwtimer.cpp
photosgallery/slideshow/engine/effectsrc/shwcrossfadelayout.cpp
photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp
photosgallery/slideshow/engine/effectsrc/shwzoomandpanlayout.cpp
photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp
photosgallery/slideshow/engine/tsrc/t_cshweffectcontrol/t_cshweffectcontrol.cpp
photosgallery/slideshow/engine/tsrc/t_cshweffects/t_cshweffects_dllmain.cpp
photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp
photosgallery/slideshow/engine/tsrc/t_cshwmusiccontrol/t_cshwmusiccontrol.cpp
photosgallery/slideshow/engine/tsrc/t_cshwplaybackfactory/t_cshwplaybackfactory.cpp
photosgallery/slideshow/engine/tsrc/t_cshwsettingsmodel/t_cshwsettingsmodel.cpp
photosgallery/slideshow/engine/tsrc/t_cshwslideshowengine/t_cshwslideshowengine.cpp
photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp
photosgallery/slideshow/engine/tsrc/t_cshwviewcontrol/t_cshwviewcontrol.cpp
photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp
photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp
photosgallery/slideshow/view/inc/shwslideshowview.h
photosgallery/slideshow/view/src/shwgesturecontrol.cpp
photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp
photosgallery/slideshow/view/src/shwslideshowkeyhandler.cpp
photosgallery/slideshow/view/src/shwslideshowview.cpp
photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp
photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp
photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp
photosgallery/viewframework/commandhandlers/commandhandlerbase/tsrc/ut_cglxmedialistcommandhandler/src/ut_cglxmedialistcommandhandler.cpp
photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxcommandhandlerdrm.cpp
photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxdrmiconmanager.cpp
photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp
photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxcommandhandlershowviaupnp/src/t_cglxcommandhandlershowviaupnp.cpp
photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxthumbnailsaver/src/t_cglxthumbnailsaver.cpp
photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxupnprendererimpl/src/t_cglxupnprendererimpl.cpp
photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/src/t_glxcmdhndlrcopytohomentwk.cpp
photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxupnprenderer/src/t_glxupnprenderer.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/group/glxcommoncommandhandlers.mmp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowonmaphardkey.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxuploadcenrepwatcher.h
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxaiwmedia.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotate.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxuploadcenrepwatcher.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_cglxaiwservicehandler/src/t_cglxaiwservicehandler.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcommandhandlerback/Src/t_cglxcommandhandlerback.cpp
photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/ut_propertycommandhandlers/src/ut_propertycommandhandlers.cpp
photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/src/t_glxcommandhandlermarking.cpp
photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxcommandhandlerdrm.cpp
photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp
photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummyhuiutility.cpp
photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/src/t_glxcommandhandlermoreinfo.cpp
photosgallery/viewframework/dataprovider/inc/glxattributerequirement.h
photosgallery/viewframework/dataprovider/src/glxbinding.cpp
photosgallery/viewframework/dataprovider/src/glxbindingset.cpp
photosgallery/viewframework/dataprovider/src/glxcommandbindingutility.cpp
photosgallery/viewframework/dataprovider/src/glxcontainerlistbinding.cpp
photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp
photosgallery/viewframework/dataprovider/src/glxdetailsmulmodelproviderimpl.cpp
photosgallery/viewframework/dataprovider/src/glxmedialistmulmodelproviderimpl.cpp
photosgallery/viewframework/dataprovider/src/glxmuliconprovider.cpp
photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp
photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp
photosgallery/viewframework/drmutility/bwins/glxdrmutilityu.def
photosgallery/viewframework/drmutility/eabi/glxdrmutilityu.def
photosgallery/viewframework/drmutility/inc/glxdrmutility.h
photosgallery/viewframework/drmutility/src/glxdrmutility.cpp
photosgallery/viewframework/layouts/inc/glxblendlayout.h
photosgallery/viewframework/layouts/inc/glxsetcoefficientlayout.h
photosgallery/viewframework/layouts/inc/glxzoomlayoutbase.h
photosgallery/viewframework/layouts/src/glxblendlayout.cpp
photosgallery/viewframework/layouts/src/glxlayoutsplitter.cpp
photosgallery/viewframework/layouts/src/glxsetcoefficientlayout.cpp
photosgallery/viewframework/layouts/src/glxzoomlayoutbase.cpp
photosgallery/viewframework/medialists/inc/glxcachemanager.h
photosgallery/viewframework/medialists/inc/glximagereader.h
photosgallery/viewframework/medialists/inc/glxmedialist.h
photosgallery/viewframework/medialists/inc/mglxmedialist.h
photosgallery/viewframework/medialists/src/glxcache.cpp
photosgallery/viewframework/medialists/src/glxcachemanager.cpp
photosgallery/viewframework/medialists/src/glxgarbagecollector.cpp
photosgallery/viewframework/medialists/src/glximagereader.cpp
photosgallery/viewframework/medialists/src/glxlistwindow.cpp
photosgallery/viewframework/medialists/src/glxmedia.cpp
photosgallery/viewframework/medialists/src/glxmedialist.cpp
photosgallery/viewframework/medialists/src/glxmedialistiterator.cpp
photosgallery/viewframework/medialists/src/glxnavigablelist.cpp
photosgallery/viewframework/medialists/src/glxthumbnailcontext.cpp
photosgallery/viewframework/medialists/tsrc/src/glxlisttestbase.h
photosgallery/viewframework/medialists/tsrc/t_cglxcache/t_cglxcache.cpp
photosgallery/viewframework/medialists/tsrc/t_cglxfetcherrorarray/t_cglxfetcherrorarray.cpp
photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp
photosgallery/viewframework/medialists/tsrc/t_cglxmedia/t_cglxmedia.cpp
photosgallery/viewframework/medialists/tsrc/t_glxfromfocusoutwarditerator/t_glxfromfocusoutwarditerator.cpp
photosgallery/viewframework/medialists/tsrc/t_glxlistwindow/t_glxlistwindow.cpp
photosgallery/viewframework/medialists/tsrc/t_tglxexclusioniterator/t_tglxexclusioniterator.cpp
photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp
photosgallery/viewframework/medialists/tsrc/ut_cglxitemlist/ut_cglxitemlist.cpp
photosgallery/viewframework/medialists/tsrc/ut_cglxmedialist/ut_cglxmedialist.cpp
photosgallery/viewframework/medialists/tsrc/ut_cglxnavigablelist/ut_cglxnavigablelist.cpp
photosgallery/viewframework/medialists/tsrc/ut_cglxstaticitemlist/ut_cglxstaticitemlist.cpp
photosgallery/viewframework/medialists/tsrc/ut_glxerrormanager/ut_glxerrormanager.cpp
photosgallery/viewframework/medialists/tsrc/ut_tglxselectioniterator/ut_tglxselectioniterator.cpp
photosgallery/viewframework/plugins/fullscreenviewplugin/src/glximageviewerfullscreenviewplugin.cpp
photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp
photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp
photosgallery/viewframework/plugins/metadataviewplugin/data/200071af.rss
photosgallery/viewframework/plugins/metadataviewplugin/group/bld.inf
photosgallery/viewframework/plugins/metadataviewplugin/group/glxmetadataviewplugin.mmp
photosgallery/viewframework/plugins/metadataviewplugin/inc/glxmetadataviewplugin.h
photosgallery/viewframework/plugins/metadataviewplugin/inc/glxmetadataviewplugin.hrh
photosgallery/viewframework/plugins/metadataviewplugin/rom/glxmetadataviewplugin.iby
photosgallery/viewframework/plugins/metadataviewplugin/src/glxmetadataviewplugin.cpp
photosgallery/viewframework/plugins/metadataviewplugin/src/glxmetadataviewpluginproxy.cpp
photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss
photosgallery/viewframework/texturemanager/inc/glxtexturemanagerimpl.h
photosgallery/viewframework/texturemanager/src/glxbitmapdecoderwrapper.cpp
photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp
photosgallery/viewframework/tvout/bwins/glxtvoutu.def
photosgallery/viewframework/tvout/eabi/glxtvoutu.def
photosgallery/viewframework/tvout/inc/glxactivedecoder.h
photosgallery/viewframework/tvout/inc/glxhdmicontroller.h
photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h
photosgallery/viewframework/tvout/src/glxactivedecoder.cpp
photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp
photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp
photosgallery/viewframework/tvout/src/glxtv.cpp
photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def
photosgallery/viewframework/uiutilities/data/glxuiutilities.rss
photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def
photosgallery/viewframework/uiutilities/group/glxuiutilities.mmp
photosgallery/viewframework/uiutilities/inc/glxmmcnotifier.h
photosgallery/viewframework/uiutilities/inc/glxuiutility.h
photosgallery/viewframework/uiutilities/src/glxanimationimageloading.cpp
photosgallery/viewframework/uiutilities/src/glxanimationtimed.cpp
photosgallery/viewframework/uiutilities/src/glxanimationview.cpp
photosgallery/viewframework/uiutilities/src/glxattributeretriever.cpp
photosgallery/viewframework/uiutilities/src/glxmmcnotifier.cpp
photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp
photosgallery/viewframework/uiutilities/src/glxscreenfurniture.cpp
photosgallery/viewframework/uiutilities/src/glxskinchangemonitor.cpp
photosgallery/viewframework/uiutilities/src/glxuiutility.cpp
photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp
photosgallery/viewframework/views/cloudview/inc/glxcloudviewimp.h
photosgallery/viewframework/views/cloudview/src/glxbubbletimer.cpp
photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp
photosgallery/viewframework/views/cloudview/src/glxcontainerinfobubble.cpp
photosgallery/viewframework/views/cloudview/src/glxinfobubble.cpp
photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp
photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h
photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbindingsetfactory.cpp
photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp
photosgallery/viewframework/views/gridview/group/glxgridview.mmp
photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h
photosgallery/viewframework/views/gridview/inc/glxgridviewimp.h
photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h
photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp
photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp
photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp
photosgallery/viewframework/views/listview/group/glxlistview.mmp
photosgallery/viewframework/views/listview/inc/glxlistviewimp.h
photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h
photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp
photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp
photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss
photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatacontainer.cpp
photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp
photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp
photosgallery/viewframework/views/metadataview/bwins/glxunifiedmetadataviewu.def
photosgallery/viewframework/views/metadataview/data/glxmetadataview.rss
photosgallery/viewframework/views/metadataview/eabi/glxunifiedmetadataviewu.def
photosgallery/viewframework/views/metadataview/group/bld.inf
photosgallery/viewframework/views/metadataview/group/glxmetadataview.mmp
photosgallery/viewframework/views/metadataview/inc/glxmetadatabindingsetfactory.h
photosgallery/viewframework/views/metadataview/inc/glxmetadataview.h
photosgallery/viewframework/views/metadataview/inc/glxmetadataviewimp.h
photosgallery/viewframework/views/metadataview/rom/glxmetadataview.iby
photosgallery/viewframework/views/metadataview/src/glxmetadatabindingsetfactory.cpp
photosgallery/viewframework/views/metadataview/src/glxmetadataview.cpp
photosgallery/viewframework/views/metadataview/src/glxmetadataviewimp.cpp
photosgallery/viewframework/views/viewbase/inc/glxgfxtranseffect.h
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
photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp
photosgallery/viewframework/visuallistmanager/inc/glxitemvisual.h
photosgallery/viewframework/visuallistmanager/inc/glxvisuallistcontrol.h
photosgallery/viewframework/visuallistmanager/inc/mglxvisualobjectlayoutrefreshobserver.h
photosgallery/viewframework/visuallistmanager/src/glxiconmanager.cpp
photosgallery/viewframework/visuallistmanager/src/glxitemvisual.cpp
photosgallery/viewframework/visuallistmanager/src/glxvisualiconmanager.cpp
photosgallery/viewframework/visuallistmanager/src/glxvisuallistcontrol.cpp
photosgallery/viewframework/visuallistmanager/src/glxvisuallistwindow.cpp
--- a/package_definition.xml	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
-  <package id="photos" name="Photos" levels="support fw ui app">
-    <collection id="photosgallery" name="Photos Gallery" level="app">
-    	<!-- consider splitting collection into the application itself, and the frameworks behind it -->
-      <component id="photosgallery_help" filter="s60" name="Photos Help" introduced="^2">
-        <unit bldFile="photosgallery/help/group"/>
-      </component>
-      <component id="logging" filter="s60" name="Photos Logging" introduced="^2">
-        <!-- <unit bldFile="photosgallery/logging/app/group"/> -->
-        <unit bldFile="photosgallery/logging/group"/>
-      </component>
-      <component id="photosgallery_common" filter="s60" name="Photos Common" introduced="^2">
-        <unit bldFile="photosgallery/common/group"/>
-      </component>
-      <component id="photosgallery_commonui" filter="s60" name="Photos Common UI" introduced="^2">
-        <unit bldFile="photosgallery/commonui/group"/>
-      </component>
-      <component id="photosgalleryollectionfw" filter="s60" name="Photos Collection Framework" introduced="^2">
-        <unit bldFile="photosgallery/collectionframework/group"/>
-        <!-- <unit bldFile="photosgallery/collectionframework/plugins/glxcollectionpluginalbums/group"/> -->
-      </component>
-      <component id="photosgalleryviewfw" filter="s60" name="View Framework" introduced="^2">
-        <unit bldFile="photosgallery/viewframework/group"/>
-        	<!-- do the following need to be #included? -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/commandhandlerbase/tsrc/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxupnprenderer/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_cglxaiwservicehandler/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcommandhandlerback/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/tsrc/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/plugins/metadataviewplugin/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/views/listview/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/views/metadataview/group"/> -->
-        <!-- <unit bldFile="photosgallery/viewframework/views/viewbase/group"/> -->
-      </component>
-      <component id="controllers" filter="s60" name="Photos Controllers" introduced="^2">
-        <unit bldFile="photosgallery/controllers/group"/>
-      </component>
-      <component id="photogallery" filter="s60" name="Media Gallery" introduced="^2">
-        <unit bldFile="photosgallery/gallery/group"/>
-      </component>
-      <component id="slideshow" filter="s60" name="Slideshow" introduced="^2">
-        <unit bldFile="photosgallery/slideshow/group"/>
-        	<!-- does the test need to be #included? -->
-        <!-- <unit bldFile="photosgallery/slideshow/engine/tsrc/group"/> -->
-      </component>
-      <component id="contentharvesterplugin" filter="s60" name="Gallery Content Harvester Plugin" class="plugin" introduced="^2">
-        <unit bldFile="photosgallery/contentharvesterplugin/group"/>
-      </component>
-      <component id="photossuite" filter="s60" name="Photos Suite" class="config" introduced="^2">
-        <unit bldFile="photosgallery/photossuite/group"/>
-      </component>
-      <component id="galleryicons" filter="s60" name="Photos Icons" class="config" introduced="^2">
-        <unit bldFile="photosgallery/icons"/>
-      </component>
-      <component id="photosgallery_build" filter="s60" name="Photos Gallery Build" introduced="^2">
-      	<!--  remove the #included above bld.infs from this  -->
-        <unit bldFile="photosgallery/group"/>
-      </component>
-    </collection>
-    <collection id="photos_info" name="Photos Info" level="app">
-      <component id="photos_plat" filter="s60" name="Photos Platform Interfaces" class="api" introduced="^2">
-        <unit bldFile="photos_plat/group"/>
-        <!-- should these be #included in the above? -->
-        <!-- <unit bldFile="photos_plat/controllers_collection_api/tsrc/ui_metadatadialog/group"/> -->
-        <!-- <unit bldFile="photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group"/> -->
-        <!-- <unit bldFile="photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group"/> -->
-      </component>
-    </collection>
-  </package>
-</SystemDefinition>
--- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/group/ui_metaDataDialog_DoxyFile.txt	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/group/ui_metaDataDialog_DoxyFile.txt	Wed Mar 31 21:31:03 2010 +0300
@@ -2,16 +2,16 @@
 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
+# 
 # Initial Contributors:
 # Nokia Corporation - initial contribution.
-#
+# 
 # Contributors:
 # 
-# Description:
+# Description:  Project related configuration options to configure Doxygen documentation
 #
 #
 
--- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/inc/ui_metaDataDialog.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/inc/ui_metaDataDialog.h	Wed Mar 31 21:31:03 2010 +0300
@@ -24,11 +24,7 @@
 #include <StifTestModule.h>
 #include <TestclassAssert.h>
 
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
 // MACROS
-//#define ?macro ?macro_def
 #define TEST_CLASS_VERSION_MAJOR 0
 #define TEST_CLASS_VERSION_MINOR 0
 #define TEST_CLASS_VERSION_BUILD 0
@@ -39,20 +35,9 @@
 _LIT( Kui_metaDataDialogLogFile, "ui_metaDataDialog.txt" ); 
 _LIT( Kui_metaDataDialogLogFileWithTitle, "ui_metaDataDialog_[%S].txt" );
 
-// FUNCTION PROTOTYPES
-//?type ?function_name(?arg_list);
-
 // FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
 class Cui_metaDataDialog;
 
-// DATA TYPES
-//enum ?declaration
-//typedef ?declaration
-//extern ?data_type;
-
-// CLASS DECLARATION
-
 /**
 *  Cui_metaDataDialog test class for STIF Test Framework TestScripter.
 *  ?other_description_lines
@@ -74,16 +59,6 @@
         */
         virtual ~Cui_metaDataDialog();
 
-    public: // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
     public: // Functions from base classes
 
         /**
@@ -94,23 +69,6 @@
         */
         virtual TInt RunMethodL( CStifItemParser& aItem );
 
-    protected:  // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    protected:  // Functions from base classes
-
-        /**
-        * From ?base_class ?member_description
-        */
-        //?type ?member_function();
-
     private:
 
         /**
@@ -123,10 +81,6 @@
         */
         void ConstructL();
 
-        // Prohibit copy constructor if not deriving from CBase.
-        // ?classname( const ?classname& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // ?classname& operator=( const ?classname& );
 
         /**
         * Frees all resources allocated from test methods.
@@ -150,33 +104,6 @@
          * Method used to log version of test class
          */
         void SendTestClassVersion();
-
-        //ADD NEW METHOD DEC HERE
-        //[TestMethods] - Do not remove
-
-    public:     // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    protected:  // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    private:    // Data
-        
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-        // Reserved pointer for future extension
-        //TAny* iReserved;
-
-    public:     // Friend classes
-        //?friend_class_declaration;
-    protected:  // Friend classes
-        //?friend_class_declaration;
-    private:    // Friend classes
-        //?friend_class_declaration;
-
     };
 
 #endif      // UI_METADATADIALOG_H
--- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialog.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialog.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -20,54 +20,6 @@
 #include "ui_metaDataDialog.h"
 #include <SettingServerClient.h>
 
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -143,7 +95,7 @@
 
     CleanupStack::PushL( self );
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
 
     return self;
 
@@ -195,5 +147,4 @@
 
     }
 
-
 //  End of File
--- a/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialogBlocks.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ui_metaDataDialog/src/ui_metaDataDialogBlocks.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -22,55 +22,6 @@
 #include "glxmetadataviewutility.h"
 #include "ui_metaDataDialog.h"
 
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -128,23 +79,4 @@
 
     }
 
-// -----------------------------------------------------------------------------
-// Cui_metaDataDialog::?member_function
-// ?implementation_description
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-/*
-TInt Cui_metaDataDialog::?member_function(
-   CItemParser& aItem )
-   {
-
-   ?code
-
-   }
-*/
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-// None
-
 //  [End of File] - Do not remove
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group/ut_collectioninfo_DoxyFile.txt	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/group/ut_collectioninfo_DoxyFile.txt	Wed Mar 31 21:31:03 2010 +0300
@@ -2,16 +2,16 @@
 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
+# 
 # Initial Contributors:
 # Nokia Corporation - initial contribution.
-#
+# 
 # Contributors:
 # 
-# Description:
+# Description:  Project related configuration options to configure Doxygen documentation
 #
 #
 
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/inc/ut_collectioninfo.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/inc/ut_collectioninfo.h	Wed Mar 31 21:31:03 2010 +0300
@@ -26,11 +26,7 @@
 #include <e32base.h>
 #include <glxcollectioninfo.h>
 
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
 // MACROS
-//#define ?macro ?macro_def
 #define TEST_CLASS_VERSION_MAJOR 0
 #define TEST_CLASS_VERSION_MINOR 0
 #define TEST_CLASS_VERSION_BUILD 0
@@ -41,18 +37,9 @@
 _LIT( Kut_collectioninfoLogFile, "ut_collectioninfo.txt" ); 
 _LIT( Kut_collectioninfoLogFileWithTitle, "ut_collectioninfo_[%S].txt" );
 
-// FUNCTION PROTOTYPES
-//?type ?function_name(?arg_list);
-
 // FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
 class Cut_collectioninfo;
 
-// DATA TYPES
-//enum ?declaration
-//typedef ?declaration
-//extern ?data_type;
-
 // CLASS DECLARATION
 
 /**
@@ -76,16 +63,6 @@
         */
         virtual ~Cut_collectioninfo();
 
-    public: // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
     public: // Functions from base classes
 
         /**
@@ -96,23 +73,6 @@
         */
         virtual TInt RunMethodL( CStifItemParser& aItem );
 
-    protected:  // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    protected:  // Functions from base classes
-
-        /**
-        * From ?base_class ?member_description
-        */
-        //?type ?member_function();
-
     private:
 
         /**
@@ -125,11 +85,6 @@
         */
         void ConstructL();
 
-        // Prohibit copy constructor if not deriving from CBase.
-        // ?classname( const ?classname& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // ?classname& operator=( const ?classname& );
-
         /**
         * Frees all resources allocated from test methods.
         * @since ?Series60_version
@@ -159,31 +114,11 @@
 
         //ADD NEW METHOD DEC HERE
         //[TestMethods] - Do not remove
-
-    public:     // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    protected:  // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
     private:    // Data
         
         // ?one_line_short_description_of_data
         //?data_declaration;
         CGlxCollectionInfo* iCollectionInfo;
-
-        // Reserved pointer for future extension
-        //TAny* iReserved;
-
-    public:     // Friend classes
-        //?friend_class_declaration;
-    protected:  // Friend classes
-        //?friend_class_declaration;
-    private:    // Friend classes
-        //?friend_class_declaration;
-
     };
 
 #endif      // UT_COLLECTIONINFO_H
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfo.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfo.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -20,55 +20,6 @@
 #include "ut_collectioninfo.h"
 #include <SettingServerClient.h>
 
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -143,7 +94,7 @@
 
     CleanupStack::PushL( self );
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
 
     return self;
 
@@ -195,5 +146,4 @@
 
     }
 
-
 //  End of File
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfoBlocks.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectioninfo/src/ut_collectioninfoBlocks.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -20,59 +20,10 @@
 #include <StifParser.h>
 #include <Stiftestinterface.h>
 #include <glxcollectionmanager.h>
-//#include <glxcollectionselectionpopup.h>
 #include <glxcollectionpluginalbums.hrh>
 #include <glxcollectioninfo.h>
 #include "ut_collectioninfo.h"
 
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -84,7 +35,6 @@
 //
 void Cut_collectioninfo::Delete() 
     {
-
     }
 
 // -----------------------------------------------------------------------------
@@ -119,24 +69,6 @@
 
     }
 
-
-
-// -----------------------------------------------------------------------------
-// Cut_collectioninfo::?member_function
-// ?implementation_description
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-/*
-TInt Cut_collectioninfo::?member_function(
-   CItemParser& aItem )
-   {
-
-   ?code
-
-   }
-*/
-
 // -----------------------------------------------------------------------------
 // Cut_collectioninfo::Test_NewL
 // Test for CGlxCollectionInfo::NewL API 
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group/ut_collectionmanager_DoxyFile.txt	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/group/ut_collectionmanager_DoxyFile.txt	Wed Mar 31 21:31:03 2010 +0300
@@ -2,16 +2,16 @@
 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
 # All rights reserved.
 # This component and the accompanying materials are made available
-# under the terms of the License "Eclipse Public License v1.0"
+# under the terms of "Eclipse Public License v1.0"
 # which accompanies this distribution, and is available
 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
+# 
 # Initial Contributors:
 # Nokia Corporation - initial contribution.
-#
+# 
 # Contributors:
 # 
-# Description:
+# Description:  Project related configuration options to configure Doxygen documentation
 #
 #
 
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/inc/ut_collectionmanager.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/inc/ut_collectionmanager.h	Wed Mar 31 21:31:03 2010 +0300
@@ -28,11 +28,7 @@
 
 #include "glxcollectionmanagerao.h"
 
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
 // MACROS
-//#define ?macro ?macro_def
 #define TEST_CLASS_VERSION_MAJOR 0
 #define TEST_CLASS_VERSION_MINOR 0
 #define TEST_CLASS_VERSION_BUILD 0
@@ -43,21 +39,11 @@
 _LIT( Kut_collectionmanagerLogFile, "ut_collectionmanager.txt" ); 
 _LIT( Kut_collectionmanagerLogFileWithTitle, "ut_collectionmanager_[%S].txt" );
 
-// FUNCTION PROTOTYPES
-//?type ?function_name(?arg_list);
-
 // FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
 class Cut_collectionmanager;
 
 
-// DATA TYPES
-//enum ?declaration
-//typedef ?declaration
-//extern ?data_type;
-
 // CLASS DECLARATION
-
 class CGlxCollectionManagerAO ;
 
 /**
@@ -81,16 +67,6 @@
         */
         virtual ~Cut_collectionmanager();
 
-    public: // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
     public: // Functions from base classes
 
         /**
@@ -100,23 +76,6 @@
         * @return Symbian OS error code
         */
         virtual TInt RunMethodL( CStifItemParser& aItem );
-        
-    protected:  // New functions
-
-        /**
-        * ?member_description.
-        * @since ?Series60_version
-        * @param ?arg1 ?description
-        * @return ?description
-        */
-        //?type ?member_function( ?type ?arg1 );
-
-    protected:  // Functions from base classes
-
-        /**
-        * From ?base_class ?member_description
-        */
-        //?type ?member_function();
 
     private:
 
@@ -130,11 +89,6 @@
         */
         void ConstructL();
 
-        // Prohibit copy constructor if not deriving from CBase.
-        // ?classname( const ?classname& );
-        // Prohibit assigment operator if not deriving from CBase.
-        // ?classname& operator=( const ?classname& );
-
         /**
         * Frees all resources allocated from test methods.
         * @since ?Series60_version
@@ -144,7 +98,6 @@
         /**
         * Test methods are listed below. 
         */
-
         
         /**
          * Test case for CollectionManager object creation
@@ -180,35 +133,9 @@
         virtual TInt TestCollectionInfoL();
         virtual TInt TestCancelL();
 
-    public:     // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    protected:  // Data
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-
-    private:    // Data
-        
-        // ?one_line_short_description_of_data
-        //?data_declaration;
-        
-        // CollectionManager Active Object used to create collections of images
-                
-        // Reserved pointer for future extension
-        //TAny* iReserved;
-        
-        
-    public:     // Friend classes
-        //?friend_class_declaration;
-        
-    protected:  // Friend classes
-        //?friend_class_declaration;
     private:    // Friend classes
-        //?friend_class_declaration;
-        CGlxCollectionManagerAO* iAo  ;
-        CActiveSchedulerWait* iWait ;
-
+        CGlxCollectionManagerAO* iAo;
+        CActiveSchedulerWait* iWait;
     };
 
 #endif      // UT_COLLECTIONMANAGER_H
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/glxcollectionmanagerao.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/glxcollectionmanagerao.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -68,7 +68,7 @@
     CGlxCollectionManagerAO* self = new (ELeave) CGlxCollectionManagerAO(aObserver);
     CleanupStack::PushL( self );
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -113,10 +113,6 @@
 
 void CGlxCollectionManagerAO::RunL()
     {
-    /*
-            if (iStatus.Int() != KErrNone)
-                User::LeaveIfError(iStatus.Int());
-     */
     iObserver.RequestComplete(iStatus.Int());
     }
 
@@ -177,15 +173,12 @@
         iCollectionManager = CGlxCollectionManager::NewL();
         }
     TInt err = KErrNone;
-    //TRAP(err,iCollectionManager->AddToCollectionL((*fixflat)[0].iData, iCollection, iStatus));
     TRAP(err,iCollectionManager->AddToCollectionL(KPath, 1, iStatus));
 
     if( !IsActive() )
         SetActive();
 }
 
-
-
 /*
  * CTest_Active::TestCollectionInfoL()
  * This function checks CollectionInfoL() api.
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanager.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanager.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -20,55 +20,6 @@
 #include "ut_collectionmanager.h"
 #include <SettingServerClient.h>
 
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -146,7 +97,7 @@
 
     CleanupStack::PushL( self );
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
 
     return self;
 
@@ -192,8 +143,6 @@
 	TestModuleIf().SendTestModuleVersion(moduleVersion, moduleName, newVersionOfMethod);
 	}
 
-
-
 // ========================== OTHER EXPORTED FUNCTIONS =========================
 
 // -----------------------------------------------------------------------------
@@ -204,10 +153,7 @@
 EXPORT_C CScriptBase* LibEntryL( 
     CTestModuleIf& aTestModuleIf ) // Backpointer to STIF Test Framework
     {
-
     return ( CScriptBase* ) Cut_collectionmanager::NewL( aTestModuleIf );
-
     }
 
-
 //  End of File
--- a/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanagerBlocks.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/controllers_collection_api/tsrc/ut_collectionmanager/src/ut_collectionmanagerBlocks.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -25,55 +25,6 @@
 #include "ut_collectionmanager.h"
 
 
-// EXTERNAL DATA STRUCTURES
-//extern  ?external_data;
-
-// EXTERNAL FUNCTION PROTOTYPES  
-//extern ?external_function( ?arg_type,?arg_type );
-
-// CONSTANTS
-//const ?type ?constant_var = ?constant;
-
-// MACROS
-//#define ?macro ?macro_def
-
-// LOCAL CONSTANTS AND MACROS
-//const ?type ?constant_var = ?constant;
-//#define ?macro_name ?macro_def
-
-// MODULE DATA STRUCTURES
-//enum ?declaration
-//typedef ?declaration
-
-// LOCAL FUNCTION PROTOTYPES
-//?type ?function_name( ?arg_type, ?arg_type );
-
-// FORWARD DECLARATIONS
-//class ?FORWARD_CLASSNAME;
-
-// ============================= LOCAL FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// ?function_name ?description.
-// ?description
-// Returns: ?value_1: ?description
-//          ?value_n: ?description_line1
-//                    ?description_line2
-// -----------------------------------------------------------------------------
-//
-/*
-?type ?function_name(
-    ?arg_type arg,  // ?description
-    ?arg_type arg)  // ?description
-    {
-
-    ?code  // ?comment
-
-    // ?comment
-    ?code
-    }
-*/
-
 // ============================ MEMBER FUNCTIONS ===============================
 
 // -----------------------------------------------------------------------------
@@ -244,23 +195,5 @@
         User::InfoPrint(_L("test case  failed"));
         }
     }
-// -----------------------------------------------------------------------------
-// Cut_collectionmanager::?member_function
-// ?implementation_description
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-/*
-TInt Cut_collectionmanager::?member_function(
-   CItemParser& aItem )
-   {
-
-   ?code
-
-   }
-*/
-
-// ========================== OTHER EXPORTED FUNCTIONS =========================
-// None
 
 //  [End of File] - Do not remove
--- a/photos_plat/gallery_utilities_api/inc/glxgallery.hrh	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/gallery_utilities_api/inc/glxgallery.hrh	Wed Mar 31 21:31:03 2010 +0300
@@ -30,41 +30,16 @@
  * via CApaCommandLine::SetTailEndL, if Gallery not running
  */
 
-/// Show album list view
-#define KGlxActivationCmdShowAlbumList      0x200071AB        // message id for album
-
 /// Show Camera album full screen, focus last modified item
+// @deprecated Use KGlxActivationCmdShowAll
 #define KGlxActivationCmdShowLastModified   0x200071A9        // message id for last modified
 
-/// Run slide show
-#define KGlxActivationCmdRunSlideshow       0x200071AA        // message id for slideshow
-
 //  show last item (latest captured) in Camera album tile view
+// @deprecated Use KGlxActivationCmdShowAll
 #define KGlxActivationCameraAlbum           0x2000A7B8        // message id  for cameraalbum @CR 403-2372, 403-2371 Active Space   
 
-//  show Gallery and opens Main view 
-#define KGlxActivationPhotosMenu            0x2000A7B9        // message id  for photos menu @CR 403-2372, 403-2371 Active Space  
-/// Slideshow-specific additional parameters
-#define KGlxSlideShowForward 1             
-#define KGlxSlideShowBackward 2
-
-//Open Captured Grid View from Matrix Menu
-#define KGlxActivationCameraView          0x2000a767      // message id  for photos Captured View from Matrix Menu
-
-//Open Months List View from Matrix Menu
-#define KGlxActivationMonthsView          0x2000a769      // message id  for photos Months View from Matrix Menu
-
-//Open Albums List View from Matrix Menu
-#define KGlxActivationAlbumsView          0x20007197      // message id  for photos Albums View from Matrix Menu
-
-//Open Tags browser View from Matrix Menu
-#define KGlxActivationTagsView          0x200071AE      // message id  for photos Tags View from Matrix Menu
-
-//Open Downloads Grid View from Matrix Menu
-#define KGlxActivationDownloadView          0x2000a76b      // message id  for photos Download View from Matrix Menu
-
-//Open All Grid View from Matrix Menu
-#define KGlxActivationAllView          0x2000A7C1         // message id  for photos All View from Matrix Menu
+/// Show all images in grid view
+#define KGlxActivationCmdShowAll   0x2000A7C1        // message id for all images
 
 #endif // __GLXGALLERY_HRH__
  
--- a/photos_plat/gallery_utilities_api/inc/glxthumbnailattributeinfo.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photos_plat/gallery_utilities_api/inc/glxthumbnailattributeinfo.h	Wed Mar 31 21:31:03 2010 +0300
@@ -78,7 +78,7 @@
     inline void InternalizeL(RReadStream& aStream);
 
 public:
-    /** Pointer to bitmap (not filled in by server side!) */
+    /** Pointer to bitmap (not filled in by server side) */
     CFbsBitmap* iBitmap;
     /** Cropping rect within original image dimensions */
     TRect iCroppingRect;
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeidlist.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeidlist.h	Wed Mar 31 21:31:03 2010 +0300
@@ -119,11 +119,13 @@
 private:
 	void DoHandleListQueryCompletedL();
 		
-    void DoMonthListCreationL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties);
+    void DoMonthListCreationL(CMdEQuery& aQuery,
+            const TGlxFilterProperties& aFilterProperties);
         
-    void DoPostFilterComplete(const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode);	
+    void DoPostFilterComplete(const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode);
     
-    void PostFilterL(const RArray<TGlxMediaId>& aFilteredList, const TGlxFilterProperties& aFilterProperties);                                                                            
+    void PostFilterL(const RArray<TGlxMediaId>& aFilteredList,
+            const TGlxFilterProperties& aFilterProperties);
 	};
 
 #endif // GLXDATASOURCETASKMDEIDLIST_H_
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemde.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemde.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -714,7 +714,7 @@
 
     iTnThumbnailCbId = iTnEngine->GetThumbnailL(*source);
     iTnRequestInProgress = ETrue;
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy( source );
 	}
 
 TInt CGlxDataSourceMde::CancelFetchThumbnail()
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -240,7 +240,9 @@
 //  CGlxDataSourceTaskMde::SetQueryConditionsL
 // ----------------------------------------------------------------------------
 //    
-void CGlxDataSourceTaskMde::SetQueryConditionsL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties, const TGlxMediaId aContainerId, CMdEObjectDef& aObjectDef)
+void CGlxDataSourceTaskMde::SetQueryConditionsL(CMdEQuery& aQuery,
+        const TGlxFilterProperties& aFilterProperties,
+        const TGlxMediaId aContainerId, CMdEObjectDef& aObjectDef)
     {
     GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::SetQueryConditionsL()");
     CMdELogicCondition& rootCondition = aQuery.Conditions();
@@ -341,7 +343,6 @@
         
     if( aFilterProperties.iExcludeAnimation )
         {
-        //__ASSERT_DEBUG((EGlxFilterImage == aFilterProperties.iItemType), Panic(EGlxPanicIllegalArgument));
         // Exclude any image with a frame count > 1
         const TInt excludeAllImagesAboveOrEqualToThisFrameCount = 2;
         CMdEPropertyDef* frameCountProperty = DataSource()->ImageDef().GetPropertyDefL(KPropertyDefNameFrameCount);
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeattribute.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeattribute.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -308,7 +308,10 @@
 	                 container = DataSource()->CameraAlbumId();
 	                 objectDef = &DataSource()->AlbumDef();
 	                 filterProperties.iItemType = EGlxFilterImage;
-	                 QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, EQueryResultModeCount, container, request->Attributes()[i], aEntry,  filterProperties);
+	                 QueueObjectQueryL(*objectDef, isContent, EAttributeQuery,
+	                         EQueryResultModeCount, container, 
+	                         request->Attributes()[i], aEntry, 
+	                         filterProperties);
 	                 break;                    	
 	        		}
 	        	default:
@@ -334,7 +337,10 @@
 	                 container = DataSource()->CameraAlbumId();
 	                 objectDef = &DataSource()->AlbumDef();
 	                 filterProperties.iItemType = EGlxFilterVideo;
-	                 QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, EQueryResultModeCount, container, request->Attributes()[i], aEntry,  filterProperties);
+	                 QueueObjectQueryL(*objectDef, isContent, EAttributeQuery,
+	                         EQueryResultModeCount, container, 
+	                         request->Attributes()[i], aEntry,  
+	                         filterProperties);
 	                 break;                    	
 	        		}
 	        	default:
@@ -399,7 +405,11 @@
             filterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate;
             filterProperties.iSortDirection = EGlxFilterSortDirectionAscending;
 
-            QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeObjectWithoutFreetexts, DataSource()->CameraAlbumId(), KGlxMediaCollectionInternalStartDate, aEntry, filterProperties);
+            QueueObjectQueryL(DataSource()->AlbumDef(), ETrue,
+                    EAttributeQuery, EQueryResultModeObjectWithoutFreetexts,
+                    DataSource()->CameraAlbumId(),
+                    KGlxMediaCollectionInternalStartDate, aEntry,
+                    filterProperties);
             }
         else if ( request->Attributes()[i] == KGlxMediaCollectionInternalEndDate )
             {
@@ -593,7 +603,11 @@
                     {
                     TGlxFilterProperties filterProperties = iFilterProperties;
                     AddMonthFilterL(aContainer, filterProperties);
-                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties);
+                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue,
+                            EAttributeQuery, EQueryResultModeCount,
+                            DataSource()->CameraAlbumId(),
+                            request->Attributes()[i], aEntry,
+                            filterProperties);
                     break;
                     }
                 }
@@ -642,7 +656,11 @@
                     TGlxFilterProperties filterProperties = iFilterProperties;
                     AddMonthFilterL(aContainer, filterProperties);
                     filterProperties.iItemType = EGlxFilterImage;
-                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties);
+                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue,
+                            EAttributeQuery, EQueryResultModeCount,
+                            DataSource()->CameraAlbumId(),
+                            request->Attributes()[i], aEntry,
+                            filterProperties);
                     break;
                     }
 	        	default:
@@ -663,7 +681,11 @@
                     TGlxFilterProperties filterProperties = iFilterProperties;
                     AddMonthFilterL(aContainer, filterProperties);
                     filterProperties.iItemType = EGlxFilterVideo;
-                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties);
+                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue,
+                            EAttributeQuery, EQueryResultModeCount,
+                            DataSource()->CameraAlbumId(),
+                            request->Attributes()[i], aEntry,
+                            filterProperties);
                     break;
                     }
 	        	default:
@@ -710,13 +732,21 @@
                 case CGlxDataSource::EContainerTypeAlbum:
                 case CGlxDataSource::EContainerTypeTag:
                     {
-                    QueueObjectQueryL(aContainer->Def(), ETrue, EAttributeQuery, EQueryResultModeCount, TGlxMediaId(aContainer->Id()), request->Attributes()[i], aEntry, filterProperties);
+                    QueueObjectQueryL(aContainer->Def(), ETrue,
+                            EAttributeQuery, EQueryResultModeCount,
+                            TGlxMediaId(aContainer->Id()),
+                            request->Attributes()[i], aEntry,
+                            filterProperties);
                     break;
                     }
                 case CGlxDataSource::EContainerTypeMonth:
                     {
                     AddMonthFilterL(aContainer, filterProperties);
-                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties);
+                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue,
+                            EAttributeQuery, EQueryResultModeCount,
+                            DataSource()->CameraAlbumId(),
+                            request->Attributes()[i], aEntry,
+                            filterProperties);
                     break;
                     }
                 }
@@ -876,7 +906,7 @@
             TInt xDimIndex = aItem->Property(*xDimProperty, xDim);
             if( KErrNotFound == xDimIndex )
                 {
-                //User::Leave(KErrCorrupt);
+                //Do nothing
                 }
             else
                 {
@@ -888,7 +918,7 @@
             TInt yDimIndex = aItem->Property(*yDimProperty, yDim);
             if( KErrNotFound == yDimIndex )
                 {
-                //User::Leave(KErrCorrupt);
+                //Do nothing
                 }
             else
                 {
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdecommand.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdecommand.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -242,7 +242,6 @@
 // Copy files to another drive.
 // ----------------------------------------------------------------------------
 //
-/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments
 void CGlxDataSourceTaskMdeCommand::CopyL(const RArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive)
     {
     GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::CopyL()");
@@ -253,7 +252,6 @@
 // Move files to another drive.
 // ----------------------------------------------------------------------------
 //
-/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments
 void CGlxDataSourceTaskMdeCommand::MoveL(const RArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive)
     {
     GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::MoveL()");
@@ -335,7 +333,6 @@
 //
 // ----------------------------------------------------------------------------
 //
-/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments
 void CGlxDataSourceTaskMdeCommand::RenameL(const TGlxMediaId& aSourceItemId, const TDesC& aTitle)
     {
     GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::RenameL()");
@@ -728,7 +725,7 @@
 TInt CGlxDataSourceTaskMdeCommand::ContainerObjectDef(CMdEObjectDef*& aContainerObjectDef)
 {
     GLX_LOG_ENTRY_EXIT("TInt CGlxDataSourceTaskMdeCommand::ContainerObjectDef(CMdEObjectDef*& aContainerObjectDef)");
-    //__ASSERT_DEBUG( (iCollectionUid == TUid::Uid(KGlxTagCollectionPluginImplementationUid) || iCollectionUid == TUid::Uid(KGlxCollectionPluginAlbumsImplementationUid)), Panic(EGlxPanicInvalidCollectionUid));
+
     TInt err = KErrNone;
 	if (iCollectionUid == TUid::Uid(KGlxTagCollectionPluginImplementationUid))
         {
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsattribute.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsattribute.h	Wed Mar 31 21:31:03 2010 +0300
@@ -162,6 +162,11 @@
      * Attributes associated with outstanding queries
      */
     RArray< TGlxQueryAttribute > iQueryAttributes;
+    
+#ifdef _DEBUG
+    TTime iStartTime;
+    TTime iStopTime;
+#endif    
 	};
 
 
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h	Wed Mar 31 21:31:03 2010 +0300
@@ -132,6 +132,10 @@
     TRequestStatus* iTnRequestStatus;
 
     TBool iTnRequestInProgress;
+#ifdef _DEBUG
+    TTime iStartTime;
+    TTime iStopTime;
+#endif    
 	};
 
 #endif // GLXDATASOURCETASKMDSTHUMBNAIL_H_
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -345,6 +345,7 @@
 void CGlxDataSourceMde::HandleSessionError(CMdESession& /*aSession*/, TInt aError )    
     {
     TRACER("CGlxDataSourceMde::HandleSessionError(CMdESession& /*aSession*/, TInt aError)")
+    delete iSession;
     iSession = NULL;
     
     GLX_DEBUG2("void CGlxDataSourceMde::HandleSessionError() Session Error = %d", aError);
@@ -521,8 +522,18 @@
 	iSession->AddRelationObserverL(*this);
 	iSession->AddRelationPresentObserverL(*this);
 	
-	iSession->AddObjectObserverL(*this);
-	iSession->AddObjectPresentObserverL(*this);
+	//when setting observing conditions,
+	//add filters for all images, videos, Albums & Tags
+	CMdELogicCondition* addCondition = CMdELogicCondition::NewLC( ELogicConditionOperatorOr );
+	addCondition->AddObjectConditionL( *iImageDef );
+	addCondition->AddObjectConditionL( *iVideoDef );
+	addCondition->AddObjectConditionL( *iAlbumDef );
+	addCondition->AddObjectConditionL( *iTagDef );
+	
+	iSession->AddObjectObserverL(*this, addCondition );
+	iSession->AddObjectPresentObserverL(*this );
+		
+	CleanupStack::PopAndDestroy( addCondition ); 
     }
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -485,10 +485,11 @@
     {
     TRACER("CGlxDataSourceTaskMde::MaxQueryResultsCount()");
     TInt ret = KMdEQueryDefaultMaxCount;
-    if (aFilterProperties.iLastCaptureDate)
+    if (aFilterProperties.iLastCaptureDate || aFilterProperties.iMaxCount == 1)
         {
         ret = 1;
         }
+    GLX_DEBUG2("CGlxDataSourceTaskMde::MaxQueryResultsCount ret=%d", ret);   
     return ret;
     }
 
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -110,6 +110,9 @@
 void CGlxDataSourceTaskMdeAttributeMde::ExecuteRequestL()
     {
     TRACER("CGlxDataSourceTaskMdeAttribute::ExecuteRequestL()")    
+#ifdef _DEBUG
+    iStartTime.HomeTime(); 
+#endif
  
     CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);
         
@@ -189,6 +192,11 @@
             Panic(EGlxPanicLogicError);
         break;
         }  
+#ifdef _DEBUG
+    iStopTime.HomeTime(); 
+    GLX_DEBUG2("CGlxDataSourceTaskMdeAttributeMde:DoHandleQueryCompletedL() took %d us",
+                     (TInt)iStopTime.MicroSecondsFrom(iStartTime).Int64());
+#endif  
     }
 
 // ----------------------------------------------------------------------------
@@ -399,11 +407,13 @@
             }
         else if ( request->Attributes()[i] == KGlxMediaCollectionInternalStartDate )
             {
+            GLX_DEBUG1("CGlxDataSourceTaskMdeAttributeMde::AddCollectionAttributesL - KGlxMediaCollectionInternalStartDate");
             TGlxMediaId container = TGlxMediaId(KGlxCollectionRootId);
             TGlxFilterProperties filterProperties = iFilterProperties;
             filterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate;
             filterProperties.iSortDirection = EGlxFilterSortDirectionAscending;
             filterProperties.iOrigin = EGlxFilterOriginAll;
+            filterProperties.iMaxCount = 1 ;             
 
             QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, 
                     EQueryResultModeItem, container, 
@@ -411,7 +421,17 @@
             }
         else if ( request->Attributes()[i] == KGlxMediaCollectionInternalEndDate )
             {
-            // not necessary to be requested, returned when StartDate requested
+            GLX_DEBUG1("CGlxDataSourceTaskMdeAttributeMde::AddCollectionAttributesL - KGlxMediaCollectionInternalEndDate");
+            TGlxMediaId container = TGlxMediaId(KGlxCollectionRootId);
+            TGlxFilterProperties filterProperties = iFilterProperties;
+            filterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate;
+            filterProperties.iSortDirection = EGlxFilterSortDirectionDescending;
+            filterProperties.iOrigin = EGlxFilterOriginAll;
+            filterProperties.iMaxCount = 1 ;             
+
+            QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, 
+                    EQueryResultModeItem, container, 
+                    KGlxMediaCollectionInternalEndDate, aEntry, filterProperties);
             }
         else if ( request->Attributes()[i] == KGlxMediaGeneralSlideshowableContent )
             {
@@ -960,7 +980,7 @@
             TInt xDimIndex = aItem->Property(xDimProperty, xDim);
             if( KErrNotFound == xDimIndex )
                 {
-                //User::Leave(KErrCorrupt);
+                //Do nothing
                 }
             else
                 {
@@ -973,7 +993,7 @@
             TInt yDimIndex = aItem->Property(yDimProperty, yDim);
             if( KErrNotFound == yDimIndex )
                 {
-                //User::Leave(KErrCorrupt);
+                //Do nothing
                 }
             else
                 {
@@ -1146,7 +1166,8 @@
     if( query->ResultMode() == EQueryResultModeItem )
         {
         __ASSERT_DEBUG(( iQueryAttributes[0].iAttribute == 
-        KGlxMediaCollectionInternalStartDate ), Panic(EGlxPanicIllegalState));
+        KGlxMediaCollectionInternalStartDate || iQueryAttributes[0].iAttribute == 
+        KGlxMediaCollectionInternalEndDate), Panic(EGlxPanicIllegalState));
     	CMdEPropertyDef& creationDateDef = DataSource()->ObjectDef().GetPropertyDefL(
     	        KPropertyDefNameCreationDate);
         if (creationDateDef.PropertyType() != EPropertyTime)
@@ -1155,29 +1176,45 @@
         	}
         TTime startMonth(0);	
         TTime endMonth(0);	
+        GLX_DEBUG2("CGlxDataSourceTaskMdeAttributeMde::DoHandleAttributeQueryCompletedL iQueries[0]->Count()=%d", iQueries[0]->Count());    
+        TInt timeIndex(0) ;
         if(iQueries[0]->Count() )
             {
-            CMdEProperty* startTime;
-            CMdEObject& startObject = (CMdEObject&)query->ResultItem(0);
-            TInt timeIndex = startObject.Property(creationDateDef, startTime);
-            if( KErrNotFound == timeIndex )
-                {
-                User::Leave(KErrCorrupt);
-                }
-            startMonth = static_cast<CMdETimeProperty*>(startTime)->Value();
-            CMdEProperty* endTime;
-            CMdEObject& endObject = (CMdEObject&)query->ResultItem(query->Count()-1);
-            timeIndex = endObject.Property(creationDateDef, endTime);
-            if( KErrNotFound == timeIndex )
-                {
-                User::Leave(KErrCorrupt);
-                }
-            endMonth = static_cast<CMdETimeProperty*>(endTime)->Value();
+            GLX_DEBUG2("CGlxDataSourceTaskMdeAttributeMde::DoHandleAttributeQueryCompletedL query->Count()=%d", query->Count());    
+            if(iQueryAttributes[0].iAttribute == KGlxMediaCollectionInternalStartDate)
+            	{
+                CMdEProperty* startTime;
+                CMdEObject& startObject = (CMdEObject&)query->ResultItem(0);
+                TInt timeIndex = startObject.Property(creationDateDef, startTime);
+                if( KErrNotFound == timeIndex )
+                    {
+                    User::Leave(KErrCorrupt);
+                    }
+                startMonth = static_cast<CMdETimeProperty*>(startTime)->Value();
+                iQueryAttributes[0].iMedia->SetTObjectValueL(
+                        KGlxMediaCollectionInternalStartDate, startMonth);
+            	}
+            else if(iQueryAttributes[0].iAttribute == KGlxMediaCollectionInternalEndDate)
+            	{
+                CMdEProperty* endTime;
+                CMdEObject& endObject = (CMdEObject&)query->ResultItem(0);
+                timeIndex = endObject.Property(creationDateDef, endTime);
+                if( KErrNotFound == timeIndex )
+                    {
+                    User::Leave(KErrCorrupt);
+                    }
+                endMonth = static_cast<CMdETimeProperty*>(endTime)->Value();
+                iQueryAttributes[0].iMedia->SetTObjectValueL(
+                        KGlxMediaCollectionInternalEndDate, endMonth);
+            	}
             }
-        iQueryAttributes[0].iMedia->SetTObjectValueL(
-                KGlxMediaCollectionInternalStartDate, startMonth);
-        iQueryAttributes[0].iMedia->SetTObjectValueL(
-                KGlxMediaCollectionInternalEndDate, endMonth);
+        else
+            {
+            iQueryAttributes[0].iMedia->SetTObjectValueL(
+                    KGlxMediaCollectionInternalStartDate, startMonth);
+            iQueryAttributes[0].iMedia->SetTObjectValueL(
+                    KGlxMediaCollectionInternalEndDate, endMonth);
+            }
         }
     else if( EQueryResultModeCount == query->ResultMode() )
         {
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -273,7 +273,6 @@
 // Copy files to another drive.
 // ----------------------------------------------------------------------------
 //
-/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments
 void CGlxDataSourceTaskMdeCommand::CopyL(const RArray<TGlxMediaId>& aSourceIds, 
         const TDesC& aDrive)
     {
@@ -285,7 +284,6 @@
 // Move files to another drive.
 // ----------------------------------------------------------------------------
 //
-/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments
 void CGlxDataSourceTaskMdeCommand::MoveL(const RArray<TGlxMediaId>& aSourceIds, 
         const TDesC& aDrive)
     {
@@ -373,7 +371,6 @@
 //
 // ----------------------------------------------------------------------------
 //
-/// @todo minor: Rowland Cook 12/06/2007 Has this method been tested? If so remove comments
 void CGlxDataSourceTaskMdeCommand::RenameL(const TGlxMediaId& aSourceItemId, 
         const TDesC& aTitle)
     {
@@ -691,16 +688,7 @@
 TItemId CGlxDataSourceTaskMdeCommand::ContainerItemId(const TGlxMediaId& aMediaId)
     {
     TRACER("TMdEItemId CGlxDataSourceTaskMdeCommand::ContainerItemId()");    
-    TItemId containerId = aMediaId.Value();
-    if (aMediaId == KGlxCollectionRootId)
-        {
-        // Check the collection plugin uid
-        if (iCollectionUid == TUid::Uid(KGlxCollectionPluginCameraImplementationUid))
-            {
-          //  containerId = DataSource()->CameraAlbumId().Value();
-            }  
-        }
-    return containerId;
+    return aMediaId.Value();
     }
 
 // ----------------------------------------------------------------------------
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -258,6 +258,7 @@
     TTime lastMonth;
     TTime currentMonth;
     TInt count = aQuery.Count();
+    GLX_DEBUG2("CGlxDataSourceTaskMdeIdList::DoMonthListCreationL count=%d", count);    
     for( TInt i = 0 ; i < count ; i++ )
         {
         CMdEObject& object = (CMdEObject&)aQuery.ResultItem(i);
@@ -273,9 +274,11 @@
             {
             const TGlxMediaId monthId = DataSource()->GetMonthIdL(currentMonth);
             monthList.AppendL(monthId);
+            GLX_DEBUG2("CGlxDataSourceTaskMdeIdList::DoMonthListCreationL monthId=%d", monthId.Value());    
             lastMonth = currentMonth;
             }
         }
+    GLX_DEBUG2("CGlxDataSourceTaskMdeIdList::DoMonthListCreationL monthList.Count=%d", monthList.Count());    
     PostFilterL(monthList, aFilterProperties);
     CleanupStack::PopAndDestroy(&monthList);
     }
--- a/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -156,6 +156,9 @@
 void CGlxDataSourceTaskMdeThumbnail::ExecuteRequestL()
     {
     TRACER("CGlxDataSourceTaskMdeThumbnail::ExecuteRequestL()") 
+#ifdef _DEBUG
+    iStartTime.HomeTime(); 
+#endif
     CGlxThumbnailRequest* request = static_cast<CGlxThumbnailRequest*>(iRequest);
     
     TGlxThumbnailRequest tnReq;
@@ -243,6 +246,11 @@
     __ASSERT_DEBUG(dynamic_cast<CGlxThumbnailRequest*>(iRequest), Panic(EGlxPanicLogicError));
     CGlxThumbnailRequest* req = static_cast<CGlxThumbnailRequest*>(iRequest);
     GLX_DEBUG2("*** CGlxDataSourceTaskMdeThumbnail::HandleThumbnailFetchCompleteL() Id=%d ***", req->ItemId().Value());
+#ifdef _DEBUG
+    iStopTime.HomeTime(); 
+    GLX_DEBUG2("CGlxDataSourceTaskMdeThumbnail:HandleThumbnailFetchCompleteL() took %d us",
+                     (TInt)iStopTime.MicroSecondsFrom(iStartTime).Int64());
+#endif    
     delete iResponse;
     iResponse = NULL;
     iResponse = CMPXMedia::NewL();
--- a/photosgallery/collectionframework/plugins/glxcollectionpluginimageviewer/src/glxcollectionpluginimageviewer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/plugins/glxcollectionpluginimageviewer/src/glxcollectionpluginimageviewer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -92,8 +92,8 @@
     }
 
 void CGlxCollectionPluginImageViewer::CpiAttributeAdditionalAttributes(
-        const TMPXAttribute& aCpiAttribute, 
-        RArray<TMPXAttribute>& aAttributeArray)
+        const TMPXAttribute& /*aCpiAttribute*/, 
+        RArray<TMPXAttribute>& /*aAttributeArray*/)
     {
     // Nothing to be shared apart from the ones that are commonly loaded.
     }
@@ -146,8 +146,8 @@
     }
 
 void CGlxCollectionPluginImageViewer::HandleCpiAttributeResponseL(
-        CMPXMedia* aResponse, TArray<TMPXAttribute> aCpiAttributes,
-        TGlxMediaId aMediaId)
+        CMPXMedia* /*aResponse*/, TArray<TMPXAttribute> aCpiAttributes,
+        TGlxMediaId /*aMediaId*/)
     {
     const TInt attribCount = aCpiAttributes.Count();
 
--- a/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/plugins/glxcollectionpluginmonths/src/glxcollectionpluginmonths.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -121,6 +121,7 @@
 		TInt attrCount = aAttributeArray.Count();
 		TBool found = EFalse;
 		TBool startfound = EFalse;
+		TBool endfound = EFalse;
 		
 #ifdef GLX_SUB_TITLE_REL8		
 
@@ -180,6 +181,10 @@
 	            {
 	            startfound = ETrue;
 	            }
+	        else if(aAttributeArray[index] == KGlxMediaCollectionInternalEndDate )
+	        	{
+	        	endfound = ETrue;
+	        	}
 	        }
 	        
 	    if (!found)
@@ -190,6 +195,10 @@
 	        {
 	        aAttributeArray.Append(KGlxMediaCollectionInternalStartDate);
 	        }
+	    if(!endfound)
+	    	{
+	    	aAttributeArray.Append(KGlxMediaCollectionInternalEndDate);
+	        }
 #endif	        
 	    // end date will be returned when start date is requested.			
 		}
@@ -231,6 +240,7 @@
             CleanupStack::PushL(mediaArray);
 
             const TInt arrayCount = mediaArray->Count();
+            GLX_DEBUG2("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL arrayCount=%d", arrayCount);    
             
             // Sanity check
             if (arrayCount != mediaIdCount)
@@ -262,6 +272,8 @@
     TRACER("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL");
     
 	TInt count = aCpiAttributes.Count();
+    GLX_DEBUG2("CGlxCollectionPluginMonths::HandleCpiAttributeResponseL count=%d", count);    
+	
 	TLanguage lang;
     lang = User::Language();
 	
@@ -666,8 +678,10 @@
     return filterProperties;
     }
     
-
-
+// ----------------------------------------------------------------------------
+// GetMonthNameAsStringLC
+// ----------------------------------------------------------------------------
+//  
 HBufC* CGlxCollectionPluginMonths::GetMonthNameAsStringLC(
         const TMonth& aMonth, const TMonthStringType& aStrType)
     {
--- a/photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/plugins/tagcollectionplugin/src/glxcollectionplugintags.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -170,8 +170,6 @@
                 HandleCpiAttributeResponseL((*mediaArray)[index], aCpiAttributes, 
                 						aMediaIds[index]);
                 }
-
-			 /// @todo - Can we reset a value. Does it overwrite the original or does it leak? Must test
             aResponse->SetCObjectValueL(KMPXMediaArrayContents, mediaArray);        
             CleanupStack::PopAndDestroy(mediaArray);
             }
--- a/photosgallery/collectionframework/thumbnailcreator/src/glxtnfileutility.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/thumbnailcreator/src/glxtnfileutility.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -75,7 +75,7 @@
 
     CleanupStack::PushL(self);
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
 
     return self;
     }
--- a/photosgallery/collectionframework/thumbnailcreator/src/glxtnimageutility.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/thumbnailcreator/src/glxtnimageutility.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -116,7 +116,6 @@
     //Get Exif Metadata and the orientation tag from the file first
     TUint16 orientation = GetOrientationL(aFileName);
     TInt isExtDecoderUsed = 0;
-    ///iDecoder = GlxtnImageDecoderFactory::NewL( iFs, aFileName );
     iDecoder = GlxtnImageDecoderFactory::NewL( iFs, aFileName, isExtDecoderUsed );
     iOriginalSize = iDecoder->FrameInfo().iOverallSizeInPixels;
     //Get the orientation and set rotation on the decoder 
@@ -218,17 +217,6 @@
 // OPTION ARMCC --asm --interleave
 // Modify optimization for ARM insturcion set and for maximum speed
 // OPTION_REPLACE ARMCC --arm -Otime
-/*    aSource->LockHeap();
-    TUint16* sourceAddress = (TUint16*)aSource->DataAddress();
-	aSource->UnlockHeap();
-    aTarget->LockHeap();
-    TUint16* targetAddress = (TUint16*)aTarget->DataAddress();
-	aTarget->UnlockHeap();
-    ScaleColor64K(sourceAddress, aSource->DataStride(), 
-        sourceSize.iWidth, sourceSize.iHeight, 0, 0,  sourceSize.iWidth, sourceSize.iHeight,
-        targetAddress, aTarget->DataStride(), 
-        targetSize.iWidth, targetSize.iHeight);
-*/
 
 void CGlxtnImageUtility::FilterImageL(TRequestStatus* aStatus, CFbsBitmap* aSource, CFbsBitmap*& aFilteredSource, CFbsBitmap* aTarget)
     {
@@ -299,20 +287,12 @@
     TUint16* targetAddress = (TUint16*)aTarget->DataAddress();
 	aTarget->UnlockHeap();
     ScaleColor64K(sourceAddress, sourceImage->DataStride(), 
-        sourceImage->SizeInPixels().iWidth, sourceImage->SizeInPixels().iHeight, 0, 0,  sourceImage->SizeInPixels().iWidth, sourceImage->SizeInPixels().iHeight,
-        targetAddress, aTarget->DataStride(), 
-        targetSize.iWidth, targetSize.iHeight);
+        sourceImage->SizeInPixels().iWidth,
+            sourceImage->SizeInPixels().iHeight, 0, 0,
+            sourceImage->SizeInPixels().iWidth,
+            sourceImage->SizeInPixels().iHeight, targetAddress,
+            aTarget->DataStride(), targetSize.iWidth, targetSize.iHeight);
     
-/*    if ( !iBitGc )
-        {
-        iBitGc = CFbsBitGc::NewL();
-        }
-    CFbsBitmapDevice *bitmapDevice = CFbsBitmapDevice::NewL(aTarget);
-    CleanupStack::PushL(bitmapDevice);
-    iBitGc->Activate(bitmapDevice);
-    iBitGc->DrawBitmap(targetRect, sourceImage, sourceRect); 
-    CleanupStack::PopAndDestroy(bitmapDevice);
-*/
     *aStatus = KRequestPending;
     User::RequestComplete(aStatus, KErrNone);
     }
@@ -409,11 +389,11 @@
 
 #define mask32gbr655 0x07e0f81f
 
-// Keep below three defs in sync with each other!
+// Keep below three defs in sync with each other
 #define KFIRLen    2
 #define KFIRCen	   (KFIRLen / 2)
 #define incFIRIndex( i ) i = (i + 1) & (KFIRLen - 1)
-// Keep above three defs in sync with each other!
+// Keep above three defs in sync with each other
 
 void CGlxtnImageUtility::FIRFiltering(
 		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows )
@@ -429,10 +409,8 @@
     p = aDst;
     for ( row = aDstRows - 1; row >= 0; row-- )
         {
-        // read for cache
-	    //for ( col = aDstCols - 1; col >= 0; col-- ) TInt temp = p[ col ];
         // Fill in the FIR first.
-        // TODO: Fill in with extrapolated values at edges!
+        // TODO: Fill in with extrapolated values at edges
         FIRsum = ((KFIRLen / 2)<<21) | ((KFIRLen / 2)<<11) | (KFIRLen / 2); // for correct rounding
         i = 0;
         TUint32 mask1 = mask32gbr655;
@@ -492,11 +470,11 @@
         }
     }
 //
-// Keep below three defs in sync with each other!
+// NOTE: Keep below three defs in sync with each other
 #define KFIRLen4    4
 #define KFIRCen4	   (KFIRLen4 / 2)
 #define incFIRIndex4( i ) i = (i + 1) & (KFIRLen4 - 1)
-// Keep above three defs in sync with each other!
+// NOTE: Keep above three defs in sync with each other
 
 void CGlxtnImageUtility::FIRFiltering4(
 		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows )
@@ -512,10 +490,8 @@
     p = aDst;
     for ( row = aDstRows - 1; row >= 0; row-- )
         {
-        // read for cache
-	    //for ( col = aDstCols - 1; col >= 0; col-- ) TInt temp = p[ col ];
         // Fill in the FIR first.
-        // TODO: Fill in with extrapolated values at edges!
+        // TODO: Fill in with extrapolated values at edges
         FIRsum = ((KFIRLen4 / 2)<<21) | ((KFIRLen4 / 2)<<11) | (KFIRLen4 / 2); // for correct rounding
         i = 0;
         TUint32 mask1 = mask32gbr655;
@@ -575,11 +551,11 @@
         }
     }
 
-// Keep below three defs in sync with each other!
+// Keep below three defs in sync with each other
 #define KFIRLen8    8
 #define KFIRCen8	   (KFIRLen8 / 2)
 #define incFIRIndex8( i ) i = (i + 1) & (KFIRLen8 - 1)
-// Keep above three defs in sync with each other!
+// Keep above three defs in sync with each other
 
 void CGlxtnImageUtility::FIRFiltering8(
 		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows )
@@ -595,10 +571,8 @@
     p = aDst;
     for ( row = aDstRows - 1; row >= 0; row-- )
         {
-        // read for cache
-	    //for ( col = aDstCols - 1; col >= 0; col-- ) TInt temp = p[ col ];
         // Fill in the FIR first.
-        // TODO: Fill in with extrapolated values at edges!
+        // TODO: Fill in with extrapolated values at edges
         FIRsum = ((KFIRLen8 / 2)<<21) | ((KFIRLen8 / 2)<<11) | (KFIRLen8 / 2); // for correct rounding
         i = 0;
         TUint32 mask1 = mask32gbr655;
--- a/photosgallery/collectionframework/thumbnailcreator/src/glxtnvolumedatabase.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/thumbnailcreator/src/glxtnvolumedatabase.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -484,7 +484,7 @@
     iTable.GetL();
     TPtrC filename = iTable.ColDes(KGlxColItemUri);
    
-     // does file exist?
+    // check if file exists
     TTime time(0);
     TInt err = iFs.Modified(filename, time);
     GLX_LOG_INFO1("void CGlxtnVolumeDatabase::CleanupRowL() New Time = %Ld",time.Int64());
@@ -520,7 +520,7 @@
 	        iTable.PutL();
 	        }
 			
-	        // Now delete from Thumbnails
+        // Now delete from Thumbnails
         HBufC* sql = HBufC::NewLC(KGlxDeleteThumbnails().Length() + 
 	                                     KGlxTIntMaxDigits);
         sql->Des().Format( KGlxDeleteThumbnails, thumbId );
--- a/photosgallery/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -328,7 +328,7 @@
 	        iState = EStateIdle;
 	        }
 	    
-	    return ETrue ; //( iState == EStateIdle );
+	    return ETrue ;
 	}
 
 #ifdef RD_MDS_2_0
--- a/photosgallery/common/bwins/glxcommonu.def	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/common/bwins/glxcommonu.def	Wed Mar 31 21:31:03 2010 +0300
@@ -31,8 +31,8 @@
 	?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)
-	??1CGlxSingletonStore@@UAE@XZ @ 33 NONAME ; CGlxSingletonStore::~CGlxSingletonStore(void)
-	?IdsL@TGlxCommandParser@@SAHAAVTUid@@AAKABVCMPXMedia@@@Z @ 34 NONAME ; int TGlxCommandParser::IdsL(class TUid &, unsigned long &, class CMPXMedia const &)
+	?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 &)
@@ -45,6 +45,7 @@
 	?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 *)
-	?CreateContainerPreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 47 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateContainerPreviewFilterL(void)
-	?CreatePreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 48 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewFilterL(void)
+	?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)
 
--- a/photosgallery/common/eabi/glxcommonu.def	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/common/eabi/glxcommonu.def	Wed Mar 31 21:31:03 2010 +0300
@@ -51,4 +51,5 @@
 	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EER3RFs @ 50 NONAME
 	_ZTI13CGlxIadUpdate @ 51 NONAME
 	_ZTV13CGlxIadUpdate @ 52 NONAME
+	_ZN17TGlxFilterFactory22CreatePreviewTNFilterLEv @ 53 NONAME
 
--- a/photosgallery/common/inc/glxfilterfactory.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/common/inc/glxfilterfactory.h	Wed Mar 31 21:31:03 2010 +0300
@@ -129,6 +129,12 @@
     */
     IMPORT_C static CMPXFilter* CreatePreviewFilterL();
     
+    /**
+    * Creates a filter that sets filters for ONE preview thumbnail
+    *
+    * @return a filter object with array elements set for previews
+    */    
+    IMPORT_C static CMPXFilter* CreatePreviewTNFilterL();
     
     /**
     * Creates a filter that sets filters for the previews for items which have containers( albums, tags )
--- a/photosgallery/common/src/glxcommandparser.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/common/src/glxcommandparser.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -61,10 +61,6 @@
                 {
                 ArrayValueL(KMPXMediaGeneralContainerId, targetIdArray, aCommand);  
                 }
-
-/// @todo minor: Rowland Cook 12/06/2007 Could this be restrctured to be more efficient?
-//                                       IE - Test for invalid combiations before retrieving the data. 
-            
             if(hasTitle)
                 {
                 if(hasUri || hasSourceIds || hasDrive || hasTargetIds)
--- a/photosgallery/common/src/glxfilterfactory.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/common/src/glxfilterfactory.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -154,6 +154,21 @@
     return CreateCombinedFilterL(filterProperties);
     }
 
+// ---------------------------------------------------------------------------
+// Creates a preview TN filter object with one thumbnail
+// ---------------------------------------------------------------------------
+//   
+EXPORT_C CMPXFilter* TGlxFilterFactory::CreatePreviewTNFilterL()
+    {
+    TGlxFilterProperties filterProperties;
+    // Exclude empty containers
+    filterProperties.iMinCount = 1;
+    // If sorting on date, override sort direction to descending
+    filterProperties.iSortDirection = EGlxFilterSortDirectionOverrideToDescendingIfDate;
+    // Request only one item
+    filterProperties.iMaxCount = 1;
+    return CreateCombinedFilterL(filterProperties);
+    }
 
 // ---------------------------------------------------------------------------
 // Creates a preview filter object for container items (album, tags)
@@ -280,7 +295,11 @@
         if( !aOverrideOriginal || ( EGlxFilterSortDirectionNotUsed == aFilterProperties.iSortDirection ) )
         	{
         	sortDirection = aOriginalFilter->ValueTObjectL<TGlxFilterSortDirection>(KGlxFilterGeneralSortDirection);
-        	TBool descendIfDate = ( EGlxFilterSortDirectionOverrideToDescendingIfDate == sortDirection ) && ( ( EGlxFilterSortOrderCaptureDate == sortFilter ) || ( EGlxFilterSortOrderModifiedDate == sortFilter ) );
+        	TBool descendIfDate =
+        	   (EGlxFilterSortDirectionOverrideToDescendingIfDate == sortDirection) &&
+        	   ( (EGlxFilterSortOrderCaptureDate == sortFilter) ||
+        	     (EGlxFilterSortOrderModifiedDate == sortFilter)
+        	   );
         	if( EGlxFilterSortDirectionReverse == sortDirection )
         		{
         		if( EGlxFilterSortDirectionDescending == aFilterProperties.iSortDirection )
@@ -356,6 +375,18 @@
         filter->SetTObjectValueL<TInt>(KGlxFilterGeneralMinCount, minCount);
         }
    
+    TInt maxCount = aFilterProperties.iMaxCount;    
+    if( aOriginalFilter->IsSupported(KGlxFilterGeneralMaxCount) )
+        {
+        if( !aOverrideOriginal || ( 0 == aFilterProperties.iMaxCount ) )
+            {
+            maxCount = aOriginalFilter->ValueTObjectL<TInt>(KGlxFilterGeneralMaxCount);
+            }
+        }
+    if( !(maxCount == 0) )
+        {
+        filter->SetTObjectValueL<TInt>(KGlxFilterGeneralMaxCount, maxCount);
+        }
     
     TGlxMediaId itemId = aFilterProperties.iContainsItem;    
 	if( aOriginalFilter->IsSupported(KGlxFilterGeneralItemId) )
@@ -515,6 +546,10 @@
         {
         filterProperties.iMinCount = aFilter->ValueTObjectL<TInt>(KGlxFilterGeneralMinCount);
         }
+    if (aFilter->IsSupported(KGlxFilterGeneralMaxCount))
+        {
+        filterProperties.iMaxCount = aFilter->ValueTObjectL<TInt>(KGlxFilterGeneralMaxCount);
+        }
     if (aFilter->IsSupported(KGlxFilterGeneralItemId))
         {
         filterProperties.iContainsItem = (TGlxMediaId)(TUint32)aFilter->ValueTObjectL<TMPXItemId>(KGlxFilterGeneralItemId);
--- a/photosgallery/commonui/inc/glxbackservicewrapper.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,130 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    wrapper for Back Stepping Service
-*
-*/
-
-
-
-
-#ifndef C_GLX_BACKSERVICE_WRAPPER
-#define C_GLX_BACKSERVICE_WRAPPER
-
-#include <e32base.h>
-
-class MLiwInterface;
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-
-/**
- *   BS Service wrapper
- *
- *  @since S60 v3.2
- */
-class CGlxBackServiceWrapper : public CBase
-    {
-
-public:
-
-    /**
-     * Two-phased constructors
-     * @param aUid client application UID
-     */
-    static CGlxBackServiceWrapper* NewL( const TUid aUid );
-    static CGlxBackServiceWrapper* NewLC( const TUid aUid );
-    
-    /**
-    * Destructor.
-    */
-    virtual ~CGlxBackServiceWrapper();
-
-    /**
-     * Forwards activation event
-     *
-     * @since S60 v3.2
-     * @param aState state of application like view ids
-     * @param aEnter indicate if it is entry/exit activation
-     * @return result code retutned by BS Service interface
-     * @leave leaves from HandleResultL are propagated
-     */
-    IMPORT_C TInt ForwardActivationEventL( const TDesC8& aState, const TBool aEnter );
-    
-    /**
-     * Handles back command
-     *
-     * @since S60 v3.2
-     * @param aState state of application like view ids
-     * @return result code retutned by BS Service interface
-     * @leave leaves from HandleResultL are propagated
-     */
-    IMPORT_C TInt HandleBackCommandL( const TDesC8& aState, const TBool aCheckOnly = EFalse );
-
-private:
-
-    CGlxBackServiceWrapper();
-
-    /**
-     * 2nd phase constructor
-     * @param aUid client application UID
-     */
-    void ConstructL( const TUid aUid );
-    
-    /**
-     * Initializes BS Service
-     * @param aUid client application UID
-     * @leave KErrNotSupported or KErrArgument 
-     *        (if arguments passed to BS Service are incorrect 
-     *        or could not initialize BS)
-     *        KErrNotFound (if there was no return value)
-     */
-    void InitializeL( const TUid aUid );
-    
-    /**
-     * Handles the result of a LIW command
-     * @return result code retutned by BS Service interface
-     * @leave KErrNotSupported or KErrArgument 
-     *        (if arguments passed to BS Service are incorrect)
-     *        KErrNotFound (if there was no return value)
-     */
-    TInt HandleResultL();
-
-private: // data
-    
-    /**
-     * Liw Service Handler
-     * Own.
-     */
-    CLiwServiceHandler* iServiceHandler;
-    
-    /**
-     * BS Service interface returned by LIW
-     * Own.
-     */
-    MLiwInterface* iBSInterface;
-    
-    /**
-     * In param list
-     * Not own.
-     */
-    CLiwGenericParamList* iInParamList;
-    
-    /**
-     * Out param list
-     * Not own.
-     */
-    CLiwGenericParamList* iOutParamList;
-
-    };
-
-#endif // C_GLX_BACKSERVICE_WRAPPER
--- a/photosgallery/commonui/src/glxbackservicewrapper.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,269 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    wrapper for Back Stepping Service
-*
-*/
-
-
-
-
-// from AIW and LIW
-#include <liwcommon.h>
-#include <liwservicehandler.h>
-
-#include <glxtracer.h>
-#include <glxlog.h>
-
-// parameter names used by BS Service
-#include "glxbsserviceconstants.h"
-
-// for CleanupResetAndDestroyPushL
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-
-
-#include "glxbackservicewrapper.h"
-
-using namespace LIW;
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-CGlxBackServiceWrapper::CGlxBackServiceWrapper()
-    {
-    }
-
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CGlxBackServiceWrapper::ConstructL( const TUid aUid )
-    {
-    TRACER( "CGlxBackServiceWrapper::ConstructL" );
-    // create Service Handler and keep as long as access to BS Service needed
-    iServiceHandler = CLiwServiceHandler::NewL();
-    // for convinience keep pointers to Service Handler param lists
-	iInParamList = &iServiceHandler->InParamListL();
-	iOutParamList = &iServiceHandler->OutParamListL();
-
-    RCriteriaArray criteriaArray;
-	CleanupResetAndDestroyPushL( criteriaArray );
-	
-	// create Liw criteria
-	CLiwCriteriaItem* criterion = 
-	                CLiwCriteriaItem::NewLC( KLiwCmdAsStr, KBSInterface, KBSServiceID );
-	criterion->SetServiceClass( TUid::Uid( KLiwClassBase ) );
-
-	criteriaArray.AppendL( criterion );
-	CleanupStack::Pop( criterion );
-
-    // attach Liw criteria
-	iServiceHandler->AttachL( criteriaArray );
-	// get BS Service interface
-	iServiceHandler->ExecuteServiceCmdL( *criterion, 
-	                                        *iInParamList, 
-	                                        *iOutParamList );
-
-	CleanupStack::PopAndDestroy( &criteriaArray );
-	
-	// extract BS interface from output params
-	TInt pos( 0 );
-	iOutParamList->FindFirst( pos, KBSInterface );
-	if( pos != KErrNotFound )
-		{
-		iBSInterface = (*iOutParamList)[pos].Value().AsInterface();	
-		}
-    
-    if ( !iBSInterface )
-        {
-        // handle no BS Service
-        User::Leave( KErrNotFound );
-        }
-
-    InitializeL( aUid );
-    }
-
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CGlxBackServiceWrapper* CGlxBackServiceWrapper::NewL( 
-                                                            const TUid aUid )
-    {
-    TRACER( "CGlxBackServiceWrapper::NewL" );
-    CGlxBackServiceWrapper* self = 
-                        CGlxBackServiceWrapper::NewLC( aUid );
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CGlxBackServiceWrapper* CGlxBackServiceWrapper::NewLC( 
-                                                            const TUid aUid )
-    {
-    TRACER( "CGlxBackServiceWrapper::NewLC" );
-    CGlxBackServiceWrapper* self = new( ELeave ) CGlxBackServiceWrapper;
-    CleanupStack::PushL( self );
-    self->ConstructL( aUid );
-    return self;
-    }
-
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-CGlxBackServiceWrapper::~CGlxBackServiceWrapper()
-    {
-    TRACER( "CGlxBackServiceWrapper::~CGlxBackServiceWrapper" );
-    if ( iBSInterface )
-        {
-        iBSInterface->Close();
-        }
-
-    delete iServiceHandler;
-    }
-
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CGlxBackServiceWrapper::ForwardActivationEventL( const TDesC8& aState, 
-                                                        const TBool aEnter )
-    {
-    TRACER( "CGlxBackServiceWrapper::ForwardActivationEventL" );
-    iInParamList->Reset();
-	iOutParamList->Reset();
-
-	TLiwGenericParam state( KBSInParamState, TLiwVariant( aState ) );
-	iInParamList->AppendL( state );
-	TLiwGenericParam enter( KBSInParamEnter, TLiwVariant( aEnter ) );
-	iInParamList->AppendL( enter );
-	
-	iBSInterface->ExecuteCmdL( KBSCmdForwardActivationEvent, 
-	                            *iInParamList, 
-	                            *iOutParamList );
-	
-    TInt result = HandleResultL();
-	
-	iInParamList->Reset();
-	iOutParamList->Reset();
-	
-	return result;
-    }
-
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-EXPORT_C TInt CGlxBackServiceWrapper::HandleBackCommandL( const TDesC8& aState, 
-                                                   const TBool aCheckOnly)
-    {
-    TRACER( "CGlxBackServiceWrapper::HandleBackCommandL" );
-    iInParamList->Reset();
-	iOutParamList->Reset();
-
-	TLiwGenericParam state( KBSInParamState, TLiwVariant( aState ) );
-	iInParamList->AppendL( state );
-	TLiwGenericParam checkOnly( KBSInParamCheckOnly, TLiwVariant( aCheckOnly ) );
-	iInParamList->AppendL( checkOnly );
-	
-	iBSInterface->ExecuteCmdL( KBSCmdHandleBackCommand, 
-	                            *iInParamList, 
-	                            *iOutParamList );
-	
-	TInt result = HandleResultL();
-	
-	iInParamList->Reset();
-	iOutParamList->Reset();
-	
-	return result;
-    }
-
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-void CGlxBackServiceWrapper::InitializeL( const TUid aUid )
-    {
-    TRACER( "CGlxBackServiceWrapper::InitializeL" );
-    iInParamList->Reset();
-	iOutParamList->Reset();
-
-	TLiwGenericParam appUid( KBSInParamAppUid, TLiwVariant( aUid.iUid ) );
-	iInParamList->AppendL( appUid );
-	
-	iBSInterface->ExecuteCmdL( KBSCmdInitialize, 
-	                            *iInParamList, 
-	                            *iOutParamList );
-
-    if ( HandleResultL() != 1 )
-        {
-        // Initialize command was not consumed - handle failiure
-        User::Leave( KErrArgument );
-        }
-	
-	iInParamList->Reset();
-	iOutParamList->Reset();
-    }
-
-// ---------------------------------------------------------------------------
-// 
-// ---------------------------------------------------------------------------
-//
-TInt CGlxBackServiceWrapper::HandleResultL()
-    {
-    TRACER( "CGlxBackServiceWrapper::HandleResultL" );
-    TInt statusInfo( KErrNotFound );
-    
-    TInt posErr( 0 );
-	iOutParamList->FindFirst( posErr, EGenericParamError );
-	if( posErr != KErrNotFound )
-		{
-		// error code found - extract and handle
-		TInt errorCode( KErrNone );
-		(*iOutParamList)[posErr].Value().Get( errorCode );
-		
-		User::LeaveIfError( errorCode );
-		}
-
-    // if no error returned, carry on
-    TInt posStat( 0 );
-    iOutParamList->FindFirst( posStat, KBSOutParamStatusInfo );
-    if( posStat != KErrNotFound )
-		{
-		// status info present - extract and return
-		(*iOutParamList)[posStat].Value().Get( statusInfo );
-		}
-	else
-	    {
-	    // no return value
-	    // this should not happen
-	    User::Leave( KErrNotFound );
-	    }
-
-    return statusInfo;
-    }
--- a/photosgallery/commonui/src/glxnavigationalstate.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/commonui/src/glxnavigationalstate.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -250,7 +250,7 @@
     void SetToViewMode()
         {
          iViewingMode = NGlxNavigationalState::EView;
-         // inform the observers( only appui!! ) that the mode is view
+         // inform the observers( only appui ) that the mode is view
          NotifyObserversOfStateChange();
          
         }
@@ -436,7 +436,7 @@
 EXPORT_C void CGlxNavigationalState::SetToViewMode()
     {
     iImp->SetToViewMode();
-    // inform the observers( only appui!! ) that the mode is view
+    // inform the observers( only appui ) that the mode is view
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/contentharvesterplugin/data/200104DF.rss	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
-* Copyright (c) 2000 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Resource definitions 
-*
-*/
-
-// INCLUDES
-#include <ecom/registryinfo.rh>
-#include "glxcontentharvesterplugin.hrh"  
-  
-
-//CONSTANTS
-#define KCCHarvesterServerPluginUid 0x10282E5B
-
-
-//  RESOURCE DEFINITIONS 
-// -----------------------------------------------------------------------------
-//   
-// REGISTRY_INFO theInfo
-// Declares info for the "all" implementation
-//
-// -----------------------------------------------------------------------------
-//
-RESOURCE REGISTRY_INFO theInfo
-    {
-    // UID for the DLL
-    dll_uid = KGlxCHPluginDllUid;
-    // Declare array of interface info
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            // UID of interface that is implemented
-            interface_uid = KCCHarvesterServerPluginUid;
-            implementations = 
-                {
-                // Info for ContentHarvesterPlugin
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = KGlxCHPluginImplUid;
-                    version_no = 1;
-                    display_name = "photos";
-                    default_data = "photos";
-                    opaque_data = "photos";
-                    }
-                };
-            }
-        };
-    }
-
-// End of File
--- a/photosgallery/contentharvesterplugin/group/bld.inf	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Build information file for project glxcontentharvesterplugin
-*
-*/
-
-
-
-
-#include <platform_paths.hrh>
-PRJ_PLATFORMS
-DEFAULT
-
-PRJ_MMPFILES
-glxcontentharvesterplugin.mmp
-
-PRJ_EXPORTS
-../rom/glxcontentharvesterplugin.iby      CORE_APP_LAYER_IBY_EXPORT_PATH(glxcontentharvesterplugin.iby)
-
-// End of file
-
-// End of file
--- a/photosgallery/contentharvesterplugin/group/glxcontentharvesterplugin.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Project definition file for project CHPlugin
-*
-*/
-
-
-
-
-#include <platform_paths.hrh>
-
-TARGET          glxcontentharvesterplugin.dll
-TARGETTYPE      PLUGIN
-UID             0x10009D8D  0x200104DF
-
-#ifndef WINSCW
-EPOCALLOWDLLDATA
-#endif 
-
-CAPABILITY      CAP_ECOM_PLUGIN
-
-SOURCEPATH      ../src
-
-SOURCE      glxcontentharvesterplugin.cpp
-SOURCE      glxcontentharvesterpluginall.cpp
-SOURCE		glxcontentharvesterpluginmonths.cpp
-SOURCE 		glxcontentharvesterpluginalbums.cpp 
-SOURCE		glxcontentharvesterpluginbase.cpp 
-SOURCE		glxcontentharvesterplugintags.cpp 
-SOURCE      glxcontentharvesterpluginproxy.cpp 
-
-TARGETPATH      resource/apps
-START RESOURCE  ../data/200104DF.rss
-TARGET          glxcontentharvesterplugin.rsc
-END // RESOURCE
-
-USERINCLUDE      ../inc
-
-SYSTEMINCLUDE	../../viewframework/medialists/inc
-SYSTEMINCLUDE             ../../viewframework/inc
-SYSTEMINCLUDE	../../common/inc
-SYSTEMINCLUDE	../../commonui/inc
-SYSTEMINCLUDE   ../../collectionframework/thumbnailcreator/inc
-SYSTEMINCLUDE   ../../inc
-
-APP_LAYER_SYSTEMINCLUDE
-
-
-LIBRARY			cdlengine.lib
-LIBRARY			ws32.lib
-LIBRARY	    	ecom.lib
-LIBRARY	    	euser.lib
-LIBRARY         fbscli.lib 
-LIBRARY         glxlogging.lib
-LIBRARY		    liwservicehandler.lib
-LIBRARY         mpxcommon.lib                  // CMPXCollectionPath
-LIBRARY         glxmedialists.lib              // medialist
-LIBRARY         glxcommon.lib                  // CMPXmedia
-LIBRARY         featmgr.lib // For FeatureManager::FeatureSupported
-LIBRARY         mpxcollectionutility.lib
-LIBRARY         aknicon.lib 
-LIBRARY		apgrfx.lib
-DEBUGLIBRARY	flogger.lib
-
-//end of file
-
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugin.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Publish the content in the photosuite
- *
- */
-
-#ifndef C_GLXCONTENTHARVESTERPLUGIN_H
-#define C_GLXCONTENTHARVESTERPLUGIN_H 
-
-// INCLUDES
-
-#include <liwcommon.h>
-
-#include <mglxmedialistobserver.h>  // for MGlxMediaListObserver
-#include <glxmediaid.h>             // for TGlxMediaId
-
-#include <contentharvesterplugin.h>
-#include <contentharvesterpluginuids.hrh>
-
-// FORWARD DECLARATIONS
-
-class MGlxMediaList;
-class CGlxAttributeContext;
-class TGlxSequentialIterator;
-class MGlxContentHarvesterPluginEntry;
-class CGlxDefaultAttributeContext;
-class CMPXCollectionPath;
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-
-
-class MGlxContentHarvesterPlugin
-    {
-public :
-    virtual void UpdatePlugins(TBool aValue=ETrue)=0;
-    virtual TBool IsRefreshNeeded()=0;
-    virtual void SetRefreshNeeded(TBool aRefreshNeed) =0;
-    virtual TBool SuiteInFocus()=0;
-    };
-
-// CLASS DECLARATION
-/**
- *  CP  Content Harvester plugin
- *
- */
-
-class CGlxContentHarvesterPlugin : public CContentHarvesterPlugin, public MGlxMediaListObserver,
-                                   public MGlxContentHarvesterPlugin 
-    {
-public: // Constructors and destructor
-    /**
-     * Two-phased constructor.
-     */
-    static CGlxContentHarvesterPlugin* NewL( MLiwInterface* aCPSInterface );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxContentHarvesterPlugin();
-
-    // from base class 
-
-    void UpdateL(); 
-
-private:
-
-    /**
-     * Perform the second phase construction 
-     */		
-    void ConstructL();
-
-    /**
-     * Default constructor.
-     */
-    CGlxContentHarvesterPlugin( MLiwInterface* aCPSInterface );
-
-    void UpdateDataL();
-
-    CMPXCollectionPath* CollectionPathLC ( const TGlxMediaId& aPluginId ) const;
-
-    void UpdateDataInCPSL(TInt aCollection);
-
-    void FillInputListWithDataL(
-            CLiwGenericParamList* aInParamList,
-            const TDesC& aPublisherId, const TDesC& aContentType, 
-            TInt aCollection );
-
-    void CreateContextsL();
-
-    void CreateMedialistL();
-       
-    /*To update the plugins based on the matrix menu is on foreground or background
-     * @parm: aUpdate :if it is true then update all the plugins
-     * @parm: aUpdate :if it is false then remove all the observers.
-     */
-    void UpdatePlugins(TBool aUpdate);
-    
-    /*
-     * Sets if the refresh of the collection is required or not
-     * @parm: aUpdate :if it is true,then plugin has to be updated.
-     * @parm: aUpdate :if it is false,then plugin need not be updated.
-    */
-    void SetRefreshNeeded(TBool aRefreshNeed);
-    
-    /*
-     * check if refresh needed flag is set 
-    */
-    TBool IsRefreshNeeded();
-    
-    void DestroyMedialist();
-    
-    /*
-     * Check if photossuite is in focus 
-     */
-    TBool SuiteInFocus();
-    
-    //Call back from the Media list for any error occured 
-    void HandleError( TInt aError );
-
-private: // from MGlxMediaListObserver
-
-    /**
-     * @ref MGlxMediaListObserver::HandleItemAddedL
-     */
-    void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMediaL
-     */
-    void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemRemoved
-     */
-    void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemModifiedL
-     */
-    void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleAttributesAvailableL
-     */
-    void HandleAttributesAvailableL(
-            TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleFocusChangedL
-     */
-    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, 
-            TInt aOldIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemSelected
-     */
-    void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMessageL
-     */
-    void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
-
-
-private: // data
-
-    /**
-     * Instance of CPS interface used for update with CPS.
-     */
-    MLiwInterface* iCPSInterface;
-
-    /// Owned: Media list
-    MGlxMediaList* iMediaList;
-
-    /// Own: the attribute context
-    CGlxDefaultAttributeContext* iSubtitleAttributeContext;
-
-    // Owned: array of implementation objects
-    RPointerArray<MGlxContentHarvesterPluginEntry> iEntries;
-
-    // to check if refresh needed for plugins      
-    TBool iIsRefreshNeeded;
-
-    // Collection Indexes array to refresh the screen
-    RArray<TInt> iCollectionIndexes;    
-    };
-
-#endif // C_GLXCONTENTHARVESTERPLUGIN_H 
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugin.hrh	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Resource headers 
- *
- */
-
-
-
-
-
-#ifndef GLXCONTENTHARVESTERPLUGIN_HRH
-#define GLXCONTENTHARVESTERPLUGIN_HRH
-
-// CONSTANTS
-
-#define KGlxCHPluginDllUid  0x200104DF         //dll uid 
-#define KGlxCHPluginImplUid 0x200104E0         //implementation uid 
-
-
-
-#endif  // GLXCONTENTHARVESTERPLUGIN_HRH
-
-// End of File
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginalbums.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Publish the albums collection content in the photosuite
- *
- */
-
-#ifndef GLXCONTENTHARVESTERPLUGINALBUMS_H
-#define GLXCONTENTHARVESTERPLUGINALBUMS_H 
-
-// INCLUDES
-#include <liwcommon.h>
-
-#include <glxmediaid.h>             // for TGlxMediaId
-#include <mglxmedialistobserver.h>  // for MGlxMediaListObserver
-#include <glxmedialistiterator.h>   // for TGlxSequentialIterator
-
-#include <contentharvesterplugin.h>
-#include <contentharvesterpluginuids.hrh>
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterpluginbase.h"
-
-// FORWARD DECLARATIONS
-class MGlxMediaList;
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-class CPeriodic;
-class MLiwInterface;
-class CGlxAttributeContext;
-class CGlxThumbnailContext;
-
-// CLASS DECLARATION
-/**
- *  CP  Content Harvester plugin
- *
- */
-
-class CGlxContentHarvesterPluginAlbums : public CGlxContentHarvesterPluginBase,
-public MGlxMediaListObserver, public MLiwNotifyCallback
-    {
-public: // Constructors and destructor
-    /**
-     * Two-phased constructor.
-     */
-    static CGlxContentHarvesterPluginAlbums* NewLC( MLiwInterface* aCPSInterface,
-                                                    MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxContentHarvesterPluginAlbums();
-
-    // from base class 
-
-    /**
-     * Here the preview Thumbnails are updated 
-     */
-    void UpdateDataL(); 
-
-    /**
-     * This is a call back from the Matrix Menu whenever there is change in focus
-     */
-    TInt HandleNotifyL(
-            TInt aCmdId,
-            TInt aEventId,
-            CLiwGenericParamList& aEventParamList,
-            const CLiwGenericParamList& aInParamList);
-
-    /**
-     * updates  media list with coressponding context depending on the focus  
-     * to show the thumbnails
-     */
-    void UpdatePreviewThumbnailListL( );
-
-    /**
-     * Returns the collection items count 
-     */      
-    TInt Count();
-    
-private:
-
-    /**
-     * Perform the second phase construction 
-     */      
-    void ConstructL();
-
-    /**
-     * Default constructor.
-     */
-    CGlxContentHarvesterPluginAlbums( MLiwInterface* aCPSInterface,
-                                      MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Update data in Content Publisher Storage
-     */
-    void UpdateDataInCPSL(TInt aHandle);
-
-    /**
-     * This retrievs the bitmap handle and updates the index of the 
-     * thumbnail to be shown
-     */
-    TInt UpdateItem(TInt aItemIndex); 
-
-    /*
-     * This Function is called when the collection recives a focus and losses the focus
-     * @param aOn :True   : The collection is in focus
-     *            : False : The collection lost the focus 
-     */
-    void ActivateL( TBool aOn );
-
-    /**
-     * Delets the medial list created. 
-     */
-    void DestroyMedialist();
-
-    /**
-     * Creates a media list
-     */    
-    void CreateMedialistL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void AddContextAndObserverL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void RemoveContextAndObserver();
-
-    //Call back from the Media list for any error occured 
-    void HandleError( TInt /*aError*/ );
-
-
-private: // from MGlxMediaListObserver
-
-    /**
-     * @ref MGlxMediaListObserver::HandleItemAddedL
-     */
-    void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMediaL
-     */
-    void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemRemoved
-     */
-    void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemModifiedL
-     */
-    void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleAttributesAvailableL
-     */
-    void HandleAttributesAvailableL(
-            TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleFocusChangedL
-     */
-    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex,
-            TInt aOldIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemSelected
-     */
-    void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMessageL
-     */
-    void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
-
-private: // data
-
-    /**
-     * Instance of CPS interface used for update with CPS.
-     */
-    MLiwInterface* iCPSInterface;
-    CLiwGenericParamList* iInParamList;
-    CLiwGenericParamList* iOutParamList;
-
-    /// Owned: Media list
-    MGlxMediaList* iMediaList;
-    
-    /// Own: Attribute Context
-    CGlxAttributeContext* iUriAttributeContext;
-    
-    CGlxAttributeContext* iThumbnailAttributeContext;
-
-    /// Own: Thumbnail Iterator
-    TGlxSequentialIterator iThumbnailIterator;  
-
-    };
-
-#endif /*GLXCONTENTHARVESTERPLUGINALBUMS_H*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginall.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,203 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Publish the All collection content in the photosuite
- *
- */
-
-#ifndef GLXCONTENTHARVESTERPLUGINALL_H_
-#define GLXCONTENTHARVESTERPLUGINALL_H_
-
-
-
-// INCLUDES
-#include <liwcommon.h>
-#include <glxmediaid.h>             // for TGlxMediaId
-#include <mglxmedialistobserver.h>  // for MGlxMediaListObserver
-#include <glxmedialistiterator.h>   // for TGlxSequentialIterator
-#include <contentharvesterplugin.h>
-#include <contentharvesterpluginuids.hrh>
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterpluginbase.h"
-
-// FORWARD DECLARATIONS
-class MGlxMediaList;
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-class CPeriodic;
-class MLiwInterface;
-class CGlxAttributeContext;
-class CGlxThumbnailContext;
-
-// CLASS DECLARATION
-/**
- *  CP  Content Harvester plugin
- *
- */
-
-class CGlxContentHarvesterPluginAll : public CGlxContentHarvesterPluginBase,
-public MGlxMediaListObserver, public MLiwNotifyCallback
-    {
-public: // Constructors and destructor
-    /**
-     * Two-phased constructor.
-     */
-    static CGlxContentHarvesterPluginAll* NewLC( MLiwInterface* aCPSInterface, 
-                                                 MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxContentHarvesterPluginAll();
-
-    // from base class 
-
-    /**
-     * Here the preview Thumbnails are updated 
-     */
-    void UpdateDataL(); 
-
-    /**
-     * This is a call back from the Matrix Menu whenever there is change in focus
-     */
-    TInt HandleNotifyL(
-            TInt aCmdId,
-            TInt aEventId,
-            CLiwGenericParamList& aEventParamList,
-            const CLiwGenericParamList& aInParamList);
-
-    /**
-     * updates  media list with coressponding context depending on the focus  
-     * to show the thumbnails
-     */
-    void UpdatePreviewThumbnailListL( );
-
-    /**
-     * Returns the collection items count 
-     */      
-    TInt Count();
-    
-private:
-
-    /**
-     * Perform the second phase construction 
-     */      
-    void ConstructL();
-
-    /**
-     * Default constructor.
-     */
-    CGlxContentHarvesterPluginAll( MLiwInterface* aCPSInterface, 
-                                         MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Update data in Content Publisher Storage
-     */
-    void UpdateDataInCPSL(TInt aHandle);
-
-    /**
-     * This retrievs the bitmap handle and updates the index of the 
-     * thumbnail to be shown
-     */
-    TInt UpdateItem(TInt aItemIndex); 
-
-    /*
-     * This Function is called when the collection recives a focus and losses the focus
-     * @param aOn :True   : The collection is in focus
-     *            : False : The collection lost the focus 
-     */
-    void ActivateL( TBool aOn );
-
-    /**
-     * Delets the medial list created. 
-     */
-    void DestroyMedialist();
-
-    /**
-     * Creates a media list
-     */    
-    void CreateMedialistL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void AddContextAndObserverL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void RemoveContextAndObserver();
-
-    //Call back from the Media list for any error occured 
-    void HandleError( TInt /*aError*/ );
-
-private: // from MGlxMediaListObserver
-
-    /**
-     * @ref MGlxMediaListObserver::HandleItemAddedL
-     */
-    void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMediaL
-     */
-    void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemRemoved
-     */
-    void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemModifiedL
-     */
-    void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleAttributesAvailableL
-     */
-    void HandleAttributesAvailableL(
-            TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleFocusChangedL
-     */
-    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex,
-            TInt aOldIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemSelected
-     */
-    void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMessageL
-     */
-    void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
-
-private: // data
-
-    /**
-     * Instance of CPS interface used for update with CPS.
-     */
-    MLiwInterface* iCPSInterface;
-    CLiwGenericParamList* iInParamList;
-    CLiwGenericParamList* iOutParamList;
-
-    /// Owned: Media list
-    MGlxMediaList* iMediaList;
-    
-    /// Own: Attribute Context
-	CGlxAttributeContext* iUriAttributeContext;
-	
-	CGlxAttributeContext* iThumbnailAttributeContext;
-
-    /// Own: Thumbnail Iterator
-    TGlxSequentialIterator iThumbnailIterator;
-
-    };
-
-#endif /*GLXCONTENTHARVESTERPLUGINALL_H_*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginbase.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,161 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Base class for publishing all the content
-*
-*/
-
-
-
-
-#ifndef GLXCONTENTHARVESTERPLUGINBASE_H
-#define GLXCONTENTHARVESTERPLUGINBASE_H
-
-//includes
-
-#include <liwcommon.h>
-
-//Forward Declarations
-
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-class MLiwInterface;
-class CGlxContentHarvesterPluginBase;
-class CGlxThumbnailContext;
-class MGlxMediaList;
-class MGlxContentHarvesterPlugin;
-
-class MGlxContentHarvesterPluginEntry : public MLiwNotifyCallback
-    {
-public:
-    /**
-     * Virtual destructor
-     */
-    virtual ~MGlxContentHarvesterPluginEntry() {};
-	virtual void ContainerCacheCleanupL(MGlxMediaList* aMediaList)=0;
-    virtual void UpdatePreviewThumbnailListL()=0;
-    virtual void RemoveContextAndObserver()=0;
-    virtual TBool Focused()=0;
-    virtual TInt Count()=0;
-    };
-
-
-class CGlxContentHarvesterPluginBase : public CBase, public MGlxContentHarvesterPluginEntry
-    {
-public: // Constructors and destructor
-
-    /**
-     * Default constructor.
-     */
-    CGlxContentHarvesterPluginBase( );
-    
-    /**
-       * Perform the second phase construction 
-       */     
-    void ConstructL(TInt aDefaultIconId );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxContentHarvesterPluginBase();
-
-    TSize GetGridIconSize();
-
-    /* Calculate the Grid Icon Size for Grid Widget. It always calculate
-     * size for Landscape orientation. This is done to avoid saving two
-     * different thumbnail icons in Thumbnail database.
-     */
-    void SetGridIconSizeL();
- 
-    /**
-     * Returns the focus status of this photossuite collection
-     */
-    TBool Focused();
-	
-    /*This returns the bitmap handle used to display the 
-     * default thumbnail.
-     */
-    TInt GetBitmapHandle() const;
-
-
-    /**
-     * Updates  the focus value of the collection to true or false
-     * @param aFoucs :True :  updates the collection is in focus
-     *               :False : updates the collection is not in  focus  
-     * 
-     */
-    void SetFocus(TBool aFocus );
-    
-    //To check if the matrix menu is in foreground or not
-    TBool IsMatrixMenuInForegroundL();
-
-    /* To register for Liw notifications 
-     */
-    void GetInterfaceForNotificationL();
-    void RequestCpsNotificationL(TInt aSuiteItem);
-    void SetupPublisherL(TInt aSuiteItem);
-    void HandleStateChangeL(TInt aSuiteItem);
-
-    /* Virtual APi which will be implemented in child classes 
-     * Basically gives info if the item in suite has gained focus
-     * or lost it
-     */
-    virtual void ActivateL(TBool aOn) = 0;
-
-    /*
-     * Creates Medialist based on the plugin id
-     */
-    MGlxMediaList* CreateMedialistAndAttributeContextL(const TGlxMediaId& aPluginId,
-    		CGlxAttributeContext* aUriAttributeContext, 
-    		CGlxAttributeContext* aThumbnailAttributeContext) const;
-
-    /**
-     * Method to fill input list for CPS add command
-     */
-    void FillInputListWithDataL(
-            CLiwGenericParamList* aInParamList,
-            const TDesC& aPublisherId, const TDesC& aContentType, 
-            const TDesC& aContentId, TInt aHandle);
-
-	/* Cleanup medialist cache */
-    void ContainerCacheCleanupL(MGlxMediaList* aMediaList);
-    
-    /* Set content harvester plugin instance */
-    void SetCHPlugin(MGlxContentHarvesterPlugin* aCHplugin);
-    
-    /* Get content harvester plugin instance */
-    MGlxContentHarvesterPlugin* GetCHPlugin();
-  
-private: // data
-
-    /**
-     * Instance of CPS interface used for update with CPS.
-     */
-    TSize iGridIconSize;
-    CLiwServiceHandler* iServiceHandler;
-    CLiwGenericParamList* iInParamList;
-    CLiwGenericParamList* iOutParamList;
-
-    MLiwInterface* iCPSNotificationInterface;
-    TGlxSequentialIterator iThumbnailIterator;    
-    
-    // Instance of content harvester plugin
-    MGlxContentHarvesterPlugin* iCHplugin; 
-
-    //This variable holds the value ,whether the collection is in focus or not
-    TBool iIsFocused;
-    
-    //This variable is initialised with the default bitmap.
-    CFbsBitmap* iBitmap;
-    };
-#endif /*GLXCONTENTHARVESTERPLUGINBASE_H*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugincaptured.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,217 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Publish the captured collection content in the photosuite
- *
- */
-
-#ifndef GLXCONTENTHARVESTERPLUGINCAPTURED_H_
-#define GLXCONTENTHARVESTERPLUGINCAPTURED_H_
-
-
-// INCLUDES
-#include <LiwCommon.h>
-
-#include <glxmediaid.h>             // for TGlxMediaId
-#include <mglxmedialistobserver.h>  // for MGlxMediaListObserver
-#include <glxmedialistiterator.h>   // for TGlxSequentialIterator
-
-#include <contentharvesterplugin.h>
-#include <contentharvesterpluginuids.hrh>
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterpluginbase.h"
-
-// FORWARD DECLARATIONS
-class MGlxMediaList;
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-class CPeriodic;
-class MLiwInterface;
-class CGlxAttributeContext;
-class CGlxThumbnailContext;
-
-// CLASS DECLARATION
-/**
- *  CP  Content Harvester plugin
- *
- */
-
-class CGlxContentHarvesterPluginCaptured : public CGlxContentHarvesterPluginBase,
-public MGlxMediaListObserver, public MLiwNotifyCallback
-    {
-public: // Constructors and destructor
-    /**
-     * Two-phased constructor.
-     */
-    static CGlxContentHarvesterPluginCaptured* NewLC( MLiwInterface* aCPSInterface,
-                                                      MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxContentHarvesterPluginCaptured();
-
-    // from base class 
-
-    /**
-     * Here the preview Thumbnails are updated 
-     */
-    void UpdateDataL(); 
-
-    /**
-     * This is a call back from the Matrix Menu whenever there is change in focus
-     */
-    TInt HandleNotifyL(
-            TInt aCmdId,
-            TInt aEventId,
-            CLiwGenericParamList& aEventParamList,
-            const CLiwGenericParamList& aInParamList);
-
-    /**
-     * updates  media list with coressponding context depending on the focus  
-     * to show the thumbnails
-     */
-    void UpdatePreviewThumbnailListL( );
-
-    /**
-     * Returns the collection items count 
-     */      
-    TInt Count();
-    
-private:
-
-    /**
-     * Perform the second phase construction 
-     */      
-    void ConstructL();
-
-    /**
-     * Default constructor.
-     */
-    CGlxContentHarvesterPluginCaptured( MLiwInterface* aCPSInterface,
-                                        MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Update data in Content Publisher Storage
-     */
-    void UpdateDataInCPSL(TInt aHandle);
-
-    /**
-     * This retrievs the bitmap handle and updates the index of the 
-     * thumbnail to be shown
-     */
-    TInt UpdateItem(TInt aItemIndex); 
-
-    /*
-     * This Updates the thumbnail/Preview list with thumbnails already present
-     */
-    void HandleItemChanged();
-
-    /*
-     * This Function is called when the collection recives a focus and losses the focus
-     * @param aOn :True   : The collection is in focus
-     *            : False : The collection lost the focus 
-     */
-    void ActivateL( TBool aOn );
-
-    /**
-     * Delets the medial list created. 
-     */
-    void DestroyMedialist();
-
-    /**
-     * Creates a media list
-     */    
-    void CreateMedialistL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void AddContextAndObserverL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void RemoveContextAndObserver();
-
-    //Call back from the Media list for any error occured 
-    void HandleError( TInt /*aError*/ );
-
-
-private: // from MGlxMediaListObserver
-
-    /**
-     * @ref MGlxMediaListObserver::HandleItemAddedL
-     */
-    void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMediaL
-     */
-    void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemRemoved
-     */
-    void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemModifiedL
-     */
-    void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleAttributesAvailableL
-     */
-    void HandleAttributesAvailableL(
-            TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleFocusChangedL
-     */
-    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, 
-            TInt aOldIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemSelected
-     */
-    void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMessageL
-     */
-    void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
-
-private: // data
-
-    /**
-     * Instance of CPS interface used for update with CPS.
-     */
-    MLiwInterface* iCPSInterface;
-    CLiwGenericParamList* iInParamList;
-    CLiwGenericParamList* iOutParamList;
-    CPeriodic* iPeriodic;
-
-    /// Owned: Media list
-    MGlxMediaList* iMediaList;
-   
-    /// Own: Attribute Context
-	CGlxAttributeContext* iUriAttributeContext;
-	
-	CGlxAttributeContext* iThumbnailAttributeContext;
-
-    /// Own: Thumbnail Iterator
-    TGlxSequentialIterator iThumbnailIterator;
-
-    RArray<TInt> iPreviewItemCount;
-
-    // Preview thumbnail index
-    TInt iProgressIndex;
-    //this variable holds the value ,whether the collection is in focus or not
-    TBool iIsFocused;
-    };
-
-#endif /*GLXCONTENTHARVESTERPLUGINCAPTURED_H_*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugindownloads.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Publish the downloads collection content in the photosuite
- *
- */
-
-#ifndef GLXCONTENTHARVESTERPLUGINDOWNLOADS_H_
-#define GLXCONTENTHARVESTERPLUGINDOWNLOADS_H_
-
-
-
-// INCLUDES
-#include <liwcommon.h>
-
-#include <glxmediaid.h>             // for TGlxMediaId
-#include <mglxmedialistobserver.h>  // for MGlxMediaListObserver
-#include <glxmedialistiterator.h>   // for TGlxSequentialIterator
-
-#include <contentharvesterplugin.h>
-#include <contentharvesterpluginuids.hrh>
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterpluginbase.h"
-
-// FORWARD DECLARATIONS
-class MGlxMediaList;
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-class CPeriodic;
-class MLiwInterface;
-class CGlxAttributeContext;
-class CGlxThumbnailContext;
-
-// CLASS DECLARATION
-/**
- *  CP  Content Harvester plugin
- *
- */
-
-class CGlxContentHarvesterPluginDownloads : public CGlxContentHarvesterPluginBase,
-public MGlxMediaListObserver, public MLiwNotifyCallback
-    {
-public: // Constructors and destructor
-    /**
-     * Two-phased constructor.
-     */
-    static CGlxContentHarvesterPluginDownloads* NewLC( MLiwInterface* aCPSInterface,
-                                                       MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxContentHarvesterPluginDownloads();
-
-    // from base class 
-
-    /**
-     * Here the preview Thumbnails are updated 
-     */
-    void UpdateDataL(); 
-
-    /**
-     * This is a call back from the Matrix Menu whenever there is change in focus
-     */
-    TInt HandleNotifyL(
-            TInt aCmdId,
-            TInt aEventId,
-            CLiwGenericParamList& aEventParamList,
-            const CLiwGenericParamList& aInParamList);
-
-    /**
-     * updates  media list with coressponding context depending on the focus  
-     * to show the thumbnails
-     */
-    void UpdatePreviewThumbnailListL( );
-
-    /**
-     * Returns the collection items count 
-     */      
-    TInt Count();
-    
-private:
-
-    /**
-     * Perform the second phase construction 
-     */      
-    void ConstructL();
-
-    /**
-     * Default constructor.
-     */
-    CGlxContentHarvesterPluginDownloads( MLiwInterface* aCPSInterface,
-                                         MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Update data in Content Publisher Storage
-     */
-    void UpdateDataInCPSL(TInt aHandle);
-
-    /**
-     * This retrievs the bitmap handle and updates the index of the 
-     * thumbnail to be shown
-     */
-    TInt UpdateItem(TInt aItemIndex); 
-
-    /*
-     * This Updates the thumbnail/Preview list with thumbnails already present
-     */
-    void HandleItemChanged();
-
-    /*
-     * This Function is called when the collection recives a focus and losses the focus
-     * @param aOn :True   : The collection is in focus
-     *            : False : The collection lost the focus 
-     */
-    void ActivateL( TBool aOn );
-
-    /**
-     * Delets the medial list created. 
-     */
-    void DestroyMedialist();
-
-    /**
-     * Creates a media list
-     */    
-    void CreateMedialistL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void AddContextAndObserverL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void RemoveContextAndObserver();
-
-    //Call back from the Media list for any error occured 
-    void HandleError( TInt /*aError*/ );
-
-
-private: // from MGlxMediaListObserver
-
-    /**
-     * @ref MGlxMediaListObserver::HandleItemAddedL
-     */
-    void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMediaL
-     */
-    void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemRemoved
-     */
-    void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemModifiedL
-     */
-    void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleAttributesAvailableL
-     */
-    void HandleAttributesAvailableL(
-            TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleFocusChangedL
-     */
-    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex,
-            TInt aOldIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemSelected
-     */
-    void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMessageL
-     */
-    void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
-
-private: // data
-
-    /**
-     * Instance of CPS interface used for update with CPS.
-     */
-    MLiwInterface* iCPSInterface;
-    CLiwGenericParamList* iInParamList;
-    CLiwGenericParamList* iOutParamList;
-    CPeriodic* iPeriodic;
-
-    /// Owned: Media list
-    MGlxMediaList* iMediaList;
-    
-    /// Own: Attribute Context
-	CGlxAttributeContext* iUriAttributeContext;
-	
-	CGlxAttributeContext* iThumbnailAttributeContext;
-
-    /// Own: Thumbnail Iterator
-    TGlxSequentialIterator iThumbnailIterator;
-
-    RArray<TInt> iPreviewItemCount;
-
-    // Preview thumbnail index
-    TInt iProgressIndex;
-
-    //this variable holds the value ,whether the collection is in focus or not
-    TBool iIsFocused;
-    };
-
-#endif /*GLXCONTENTHARVESTERPLUGINDOWNLOADS_H_*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterpluginmonths.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,206 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Publish the months collection content in the photosuite
- *
- */
-
-#ifndef GLXCONTENTHARVESTERPLUGINMONTHS_H_
-#define GLXCONTENTHARVESTERPLUGINMONTHS_H_
-
-
-// INCLUDES
-#include <liwcommon.h>
-
-
-#include <glxmediaid.h>             // for TGlxMediaId
-#include <mglxmedialistobserver.h>  // for MGlxMediaListObserver
-#include <glxmedialistiterator.h>   // for TGlxSequentialIterator
-
-#include <contentharvesterplugin.h>
-#include <contentharvesterpluginuids.hrh>
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterpluginbase.h"
-
-// FORWARD DECLARATIONS
-class MGlxMediaList;
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-class CPeriodic;
-class MLiwInterface;
-class CGlxAttributeContext;
-class CGlxThumbnailContext;
-
-// CLASS DECLARATION
-/**
- *  CP  Content Harvester plugin
- *
- */
-
-class CGlxContentHarvesterPluginMonths : public CGlxContentHarvesterPluginBase,
-public MGlxMediaListObserver, public MLiwNotifyCallback
-    {
-public: // Constructors and destructor
-    /**
-     * Two-phased constructor.
-     */
-    static CGlxContentHarvesterPluginMonths* NewLC( MLiwInterface* aCPSInterface,
-                                                    MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxContentHarvesterPluginMonths();
-
-    // from base class 
-
-    /**
-     * Here the preview Thumbnails are updated 
-     */
-    void UpdateDataL(); 
-
-    /**
-     * This is a call back from the Matrix Menu whenever there is change in focus
-     */
-    TInt HandleNotifyL(
-            TInt aCmdId,
-            TInt aEventId,
-            CLiwGenericParamList& aEventParamList,
-            const CLiwGenericParamList& aInParamList);
-
-    /**
-     * updates  media list with coressponding context depending on the focus  
-     * to show the thumbnails
-     */
-    void UpdatePreviewThumbnailListL( );
-
-    /**
-     * Returns the collection items count 
-     */      
-    TInt Count();
-    
-private:
-
-    /**
-     * Perform the second phase construction 
-     */      
-    void ConstructL();
-
-    /**
-     * Default constructor.
-     */
-    CGlxContentHarvesterPluginMonths( MLiwInterface* aCPSInterface,
-                                      MGlxContentHarvesterPlugin* aCHplugin);
-
-    /**
-     * Update data in Content Publisher Storage
-     */
-    void UpdateDataInCPSL(TInt aHandle);
-
-    /**
-     * This retrievs the bitmap handle and updates the index of the 
-     * thumbnail to be shown
-     */
-    TInt UpdateItem(TInt aItemIndex); 
-
-    /*
-     * This Function is called when the collection recives a focus and losses the focus
-     * @param aOn :True   : The collection is in focus
-     *            : False : The collection lost the focus 
-     */
-    void ActivateL( TBool aOn );
-
-    /**
-     * Delets the medial list created. 
-     */
-    void DestroyMedialist();
-
-    /**
-     * Creates a media list
-     */    
-    void CreateMedialistL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void AddContextAndObserverL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void RemoveContextAndObserver();
-
-    //Call back from the Media list for any error occured 
-    void HandleError( TInt /*aError*/ );
-
-
-private: // from MGlxMediaListObserver
-
-    /**
-     * @ref MGlxMediaListObserver::HandleItemAddedL
-     */
-    void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMediaL
-     */
-    void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemRemoved
-     */
-    void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemModifiedL
-     */
-    void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleAttributesAvailableL
-     */
-    void HandleAttributesAvailableL(
-            TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleFocusChangedL
-     */
-    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex,
-            TInt aOldIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemSelected
-     */
-    void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMessageL
-     */
-    void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
-
-private: // data
-
-    /**
-     * Instance of CPS interface used for update with CPS.
-     */
-    MLiwInterface* iCPSInterface;
-    CLiwGenericParamList* iInParamList;
-    CLiwGenericParamList* iOutParamList;
-
-    /// Owned: Media list
-    MGlxMediaList* iMediaList;
-          
-    /// Own: Attribute Context
-	CGlxAttributeContext* iUriAttributeContext;
-	
-	CGlxAttributeContext* iThumbnailAttributeContext;
-
-    /// Own: Thumbnail Iterator
-    TGlxSequentialIterator iThumbnailIterator;
-
-    };
-
-#endif /*GLXCONTENTHARVESTERPLUGINMONTHS_H_*/
--- a/photosgallery/contentharvesterplugin/inc/glxcontentharvesterplugintags.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Publish the tags collection content in the photosuite
- *
- */
-#ifndef GLXCONTENTHARVESTERPLUGINTAGS_H_
-#define GLXCONTENTHARVESTERPLUGINTAGS_H_
-
-
-// INCLUDES
-#include <liwcommon.h>
-
-#include <glxmediaid.h>             // for TGlxMediaId
-#include <mglxmedialistobserver.h>  // for MGlxMediaListObserver
-#include <glxmedialistiterator.h>   // for TGlxSequentialIterator
-
-#include <contentharvesterplugin.h>
-#include <contentharvesterpluginuids.hrh>
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterpluginbase.h"
-
-// FORWARD DECLARATIONS
-class MGlxMediaList;
-class CLiwGenericParamList;
-class CLiwServiceHandler;
-class CPeriodic;
-class MLiwInterface;
-class CGlxAttributeContext;
-class CGlxThumbnailContext;
-
-// CLASS DECLARATION
-/**
- *  CP  Content Harvester plugin
- *
- */
-
-class CGlxContentHarvesterPluginTags : public CGlxContentHarvesterPluginBase,
-public MGlxMediaListObserver, public MLiwNotifyCallback
-    {
-public: // Constructors and destructor
-    /**
-     * Two-phased constructor.
-     */
-    static CGlxContentHarvesterPluginTags* NewLC( MLiwInterface* aCPSInterface,
-                                                  MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxContentHarvesterPluginTags();
-
-    // from base class 
-
-    /**
-     * Here the preview Thumbnails are updated 
-     */
-    void UpdateDataL(); 
-
-    /**
-     * This is a call back from the Matrix Menu whenever there is change in focus
-     */
-    TInt HandleNotifyL(
-            TInt aCmdId,
-            TInt aEventId,
-            CLiwGenericParamList& aEventParamList,
-            const CLiwGenericParamList& aInParamList);
-
-    /**
-     * updates  media list with coressponding context depending on the focus  
-     * to show the thumbnails
-     */
-    void UpdatePreviewThumbnailListL( );
-
-    /**
-     * Returns the collection items count 
-     */      
-    TInt Count();
-    
-private:
-
-    /**
-     * Perform the second phase construction 
-     */      
-    void ConstructL();
-
-    /**
-     * Default constructor.
-     */
-    CGlxContentHarvesterPluginTags( MLiwInterface* aCPSInterface,
-                                    MGlxContentHarvesterPlugin* aCHplugin );
-
-    /**
-     * Update data in Content Publisher Storage
-     */
-    void UpdateDataInCPSL(TInt aHandle);
-
-    /**
-     * This retrievs the bitmap handle and updates the index of the 
-     * thumbnail to be shown
-     */
-    TInt UpdateItem(TInt aItemIndex); 
-
-    /*
-     * This Function is called when the collection recives a focus and losses the focus
-     * @param aOn :True   : The collection is in focus
-     *            : False : The collection lost the focus 
-     */
-    void ActivateL( TBool aOn );
-
-    /**
-     * Delets the medial list created. 
-     */
-    void DestroyMedialist();
-
-    /**
-     * Creates a media list
-     */    
-    void CreateMedialistL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void AddContextAndObserverL();
-
-    /**
-     * Adds the context and observers to the media list  
-     */
-    void RemoveContextAndObserver();
-
-    //Call back from the Media list for any error occured 
-    void HandleError( TInt /*aError*/ );
-
-
-private: // from MGlxMediaListObserver
-
-    /**
-     * @ref MGlxMediaListObserver::HandleItemAddedL
-     */
-    void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMediaL
-     */
-    void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemRemoved
-     */
-    void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemModifiedL
-     */
-    void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleAttributesAvailableL
-     */
-    void HandleAttributesAvailableL(
-            TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleFocusChangedL
-     */
-    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex,
-            TInt aOldIndex, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleItemSelected
-     */
-    void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList );
-    /**
-     * @ref MGlxMediaListObserver::HandleMessageL
-     */
-    void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
-
-private: // data
-
-    /**
-     * Instance of CPS interface used for update with CPS.
-     */
-    MLiwInterface* iCPSInterface;
-    CLiwGenericParamList* iInParamList;
-    CLiwGenericParamList* iOutParamList;
-
-    /// Owned: Media list
-    MGlxMediaList* iMediaList;
-  
-    /// Own: the Attribte Context    
-    CGlxAttributeContext* iUriAttributeContext;
-    
-    CGlxAttributeContext* iThumbnailAttributeContext;
-
-    /// Own: Thumbnail Iterator
-    TGlxSequentialIterator iThumbnailIterator;
-
-    };
-
-#endif /*GLXCONTENTHARVESTERPLUGINTAGS_H_*/
--- a/photosgallery/contentharvesterplugin/inc/glxmapconstants.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,190 +0,0 @@
-/*
-* Copyright (c) 2008 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Global definitions
- *
-*/
-
-
-
-
-#ifndef GLXMAPCONSTANTS_H
-#define GLXMAPCONSTANTS_H
-
-/** Data types for CP content */
-enum TDataTypes
-    {
-    ECPHardcodedText = 1, // 0001
-    ECPResourceText = 2, // 0010
-    ECPFilepathImage = 4, // 0100 
-    ECPResourceIcon = 8 // 1000
-    };
-
-enum TCPGetListOrder
-    {
-    ECPRecent = 1, // 0001
-    ECPPublisher = 2, // 0010
-    ECPContent = 4, // 0100 
-    ECPContentId = 8 // 1000 
-    };
-
-enum TFlag
-    {
-    EActivate = 1, // 0001
-    };
-    
-const TInt KNameArgumentsLimit = 5;
-
-//This variables are used by the Plugins
-//Time Interval to show the thumbnail when the collection is in focus
-const TInt KTimerInterval( 2000000 );
-//The Thumbnails to shown/fetched when the collection is in focus
-const TInt KPreviewThumbnailFetchCount(15);
-//The Thumbnails to shown/fetched when the collection is not in focus
-const TInt KSinglePreviewThumbnail(1);
-// The preview item Index
-const TInt KPreviewItemIndex = 0;
-//The constants to identify the plugin/collection
-const TInt KMaxInt = 0x7fffffff;
-
-// Bug Fix @ ESLM-7VWF28 :: Change to Display the " ALL " collection folder as the very first collection folder in the Photos Matrix Menu View
-const TInt KItemIndexAll = 0;
-const TInt KItemIndexMonths = 1;
-const TInt KItemIndexAlbums = 2;
-const TInt KItemIndexTags = 3;
-const TInt KListDataWindowSize = 10;
-//Total collection count
-const TInt KTotalCollection=4;
-
-//Written for photos specific usage - START
-
-_LIT8(KMonthsSubtitle, "MonthsSubtitle");
-_LIT8(KAllSubtitle, "AllcsSubtitle");
-_LIT8(KTagsSubtitle, "TagsSubtitle");
-_LIT8(KAlbumsSubtitle, "AlbumsSubtitle");
-
-_LIT(KPublisherTextMonths,"photossuiteMonths");
-_LIT(KPublisherTextAlbums,"photossuiteAlbums");
-_LIT(KPublisherTextTags,"photossuiteTags");
-_LIT(KPublisherTextAll,"photossuiteAllcs");
-
-_LIT(KContTypeTextMonths,"months1");
-_LIT(KContTypeTextAlbums,"albums1");
-_LIT(KContTypeTextTags,"tags1");
-_LIT(KContTypeTextAll,"allcs1");
-_LIT(KContId1,"category1");
-
-_LIT8(KFirstIcon, "first_icon");
-
-_LIT(KSuitePublisher,"photossuite");
-_LIT(KContentActivationMonths,"months");
-_LIT(KContentActivationAlbums,"albums");
-_LIT(KContentActivationTags,"tags");
-_LIT(KContentActivationAll,"allcs");
-   
-_LIT(KContentDefault,"default");
-
-//Written for photos specific usage - END
-
-
-_LIT( KService, "CP Service" );
-
-_LIT8( KCPInterface, "IDataSource" );
-_LIT8( KCPContentInterface, "IContentPublishing" );
-_LIT8( KCPService, "Service.ContentPublishing" );
-_LIT8( KCommand, "cmd" );
-
-//Supported Commands
-_LIT8( KGetList, "GetList" );
-_LIT8( KAdd, "Add" );
-_LIT8( KDelete, "Delete" );
-_LIT8( KRequestNotification, "RequestNotification" );
-_LIT8( KExecuteAction, "ExecuteAction" );
-_LIT8( KCmdCancel, "Cancel" );
-_LIT8( KActivate, "Activate" );
-_LIT8( KActivateTrigger, "activate" );
-_LIT8( KDeactivateTrigger, "deactivate" );
-
-// Input arguments
-_LIT8( KType, "type" );
-_LIT8( KAction, "action" );
-_LIT8( KItem, "item" );
-_LIT8( KFilter, "filter" );
-_LIT8( KData, "data" );
-_LIT8( KSortOrder, "sort_order" );
-_LIT8( KItemId, "item_id" );
-_LIT8( KByPublisher, "by_publisher" );
-_LIT8( KByEntryIds, "by_entryids" );
-_LIT8( KPublisherId, "publisher" );
-_LIT8( KContentType, "content_type" );
-_LIT8( KContentId, "content_id" );
-_LIT8( KExpirationDate, "expiration_date" );
-_LIT8( KActivatePublisher, "activate" );
-_LIT8( KIds, "ids" );
-_LIT8( KId, "id" );
-_LIT8( KFlag, "flag");
-_LIT8( KAccessList, "ACL" );
-_LIT8( KACLRead, "read");
-_LIT8( KACLWrite, "write");
-_LIT8( KACLDelete, "delete");
-_LIT8( KUIDs, "UID" );
-_LIT8( KCapability, "Capability" );
-_LIT( KAll, "all");
-_LIT( KSortPublisher, "publisher");
-_LIT( KSortContentType, "content_type");
-_LIT( KSortContentId, "content_id");
-_LIT( KSortRecent, "recent");
-_LIT( KOperationAdd, "add" );
-_LIT( KOperationUpdate, "update" );
-_LIT( KOperationDelete, "delete" );
-_LIT( KOperationExecute, "execute" );
-_LIT8( KDataType, "data_type" );
-_LIT8( KOperation, "operation" );
-_LIT8( KActionTrigger, "action_trigger" );
-_LIT8( KHardcodedText, "harcoded_text" );
-_LIT8( KResourceText, "resource_text" );
-_LIT8( KFilepathImage, "filepath_image" );
-_LIT8( KIdMask, "id_mask" );
-_LIT8( KResourceIcon, "resource_icon" );
-_LIT8( KIdIcon, "id_icon" );
-_LIT8( KIdText, "id_text" );
-_LIT( KCpData, "cp_data" );
-_LIT( KPublisher, "publisher" );
-_LIT8( KChangeInfo, "change_info" );
-
-_LIT8( KPublisher_Uid, "publisher_Uid" );
-
-// Argument in Action
-_LIT8( KActionHandlerInterface, "IDataAction" );
-_LIT8( KActionHandlerService, "Service.ActionHandler" );
-_LIT8( KCmdExecute, "Execute" );
-_LIT8( KPluginUid, "plugin_id" );
-_LIT8( KDataForActionHandler, "data" );
-
-_LIT8( KLaunchMethod, "launch_method" );
-_LIT8( KApplicationUid, "application_uid" );
-_LIT8( KDocumentName, "document_name" );
-_LIT8( KViewId, "view_id" );
-_LIT8( KMessageUid, "message_uid" );
-
-// Output
-_LIT8( KResults, "results" );
-_LIT8( KListMap, "list_map" );
-_LIT8( KStatus, "status" );
-_LIT8( KDataMap, "data_map" );
-_LIT8( KActionMap, "action_map" );
-_LIT8( KKey, "key" );
-
-_LIT8( KTransactionID, "TransactionID" );
-
-#endif /*GLXMAPCONSTANTS_H*/
--- a/photosgallery/contentharvesterplugin/rom/glxcontentharvesterplugin.iby	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: iby file for content harvester plugin.
-*
-*/
-
-
-
-
-#ifndef __GLXCONTENTHARVESTERPLUGIN_IBY__
-#define __GLXCONTENTHARVESTERPLUGIN_IBY__
-
-ECOM_PLUGIN( glxcontentharvesterplugin.dll, glxcontentharvesterplugin.rsc )
-
-#endif // __GLXCONTENTHARVESTERPLUGIN_IBY__
\ No newline at end of file
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugin.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,551 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Updates CPS storage
- *
- */
-
-// INCLUDE FILES
-
-//photo headers
-
-
-#include <glxattributecontext.h>
-#include <glxtracer.h>
-#include <glxlog.h>
-#include <mglxmedialist.h>       // for MGlxMediaList
-#include <glxcollectiongeneraldefs.h>
-#include <glxgallery.hrh>               // for KGlxGalleryApplicationUid
-#include <mpxcollectionutility.h>
-#include <glxcollectionpluginmonths.hrh>
-#include <glxuistd.h>
-
-#include <MtpPrivatePSKeys.h>
-#include <e32property.h>
-
-//local headers
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterplugin.hrh"
-#include "glxmapconstants.h"
-
-#include "glxcontentharvesterpluginmonths.h"
-#include "glxcontentharvesterpluginalbums.h"
-#include "glxcontentharvesterplugintags.h"
-#include "glxcontentharvesterpluginall.h"
-
-
-
-
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPlugin::CGlxContentHarvesterPlugin( MLiwInterface* aCPSInterface )
-    {
-    TRACER( "CGlxContentHarvesterPlugin::CGlxContentHarvesterPlugin" );
-    iCPSInterface = aCPSInterface;
-    }
-
-// ----------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::ConstructL()
-    {
-    TRACER( "CGlxContentHarvesterPlugin::ConstructL" );
-
-    CreateMedialistL();
-
-	// Bug Fix @ ESLM-7VWF28 :: " Downloads " collection folder is replaced by " ALL " collection folder    
-    CGlxContentHarvesterPluginAll* allContents = CGlxContentHarvesterPluginAll::NewLC(iCPSInterface,this);
-    iEntries.AppendL(allContents);
-    CleanupStack::Pop(allContents); 
-
-    CGlxContentHarvesterPluginMonths* monthsContents = CGlxContentHarvesterPluginMonths::NewLC(iCPSInterface,this);
-    iEntries.AppendL(monthsContents);
-    CleanupStack::Pop(monthsContents); 
-
-    CGlxContentHarvesterPluginAlbums* albumContents = CGlxContentHarvesterPluginAlbums::NewLC(iCPSInterface,this);
-    iEntries.AppendL(albumContents);
-    CleanupStack::Pop(albumContents);  
-
-    CGlxContentHarvesterPluginTags* tagContents = CGlxContentHarvesterPluginTags::NewLC(iCPSInterface,this);
-    iEntries.AppendL(tagContents);
-    CleanupStack::Pop(tagContents);
-    for(TInt pluginIndex=0; pluginIndex < KTotalCollection; pluginIndex++)
-        {
-        iCollectionIndexes.Insert(KErrNotFound, pluginIndex);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPlugin* CGlxContentHarvesterPlugin::NewL(  MLiwInterface* aCPSInterface )
-    {
-    TRACER( "CGlxContentHarvesterPlugin::NewL" );
-    CGlxContentHarvesterPlugin* self = new ( ELeave ) CGlxContentHarvesterPlugin( aCPSInterface );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxContentHarvesterPlugin::~CGlxContentHarvesterPlugin()
-    {
-    TRACER( "CGlxContentHarvesterPlugin::~CGlxContentHarvesterPlugin" );
-    // destroy entries
-    iEntries.ResetAndDestroy();
-    DestroyMedialist();
-    iCollectionIndexes.Reset();
-    }
-
-// ----------------------------------------------------------------------------
-// This function updates information in CPS storage
-// ----------------------------------------------------------------------------
-//	
-void CGlxContentHarvesterPlugin::UpdateL() 
-    {
-    TRACER( "CGlxContentHarvesterPlugin::UpdateL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::CollectionPathLC( )
-// ---------------------------------------------------------------------------
-//
-CMPXCollectionPath* CGlxContentHarvesterPlugin::CollectionPathLC( 
-        const TGlxMediaId& aPluginId ) const
-        {
-        TRACER( "CGlxContentHarvesterPlugin::CollectionPathLC" );
-        // create the collection path - uses the category ID from the constructor    
-        CMPXCollectionPath* path = CMPXCollectionPath::NewL();
-        CleanupStack::PushL( path );
-        path->AppendL( aPluginId.Value() );               
-        return path;
-        }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleItemAddedL
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
-        MGlxMediaList*/* aList*/)
-    {
-    // Do Nothing
-    TRACER( "CGlxContentHarvesterPlugin::HandleItemAddedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleMediaL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleMediaL(TInt /*aListIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPlugin::HandleMediaL" );
-    } 
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleItemRemovedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleItemRemovedL(TInt /*aStartIndex*/, 
-        TInt /*aEndIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPlugin::HandleItemRemovedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleItemModifiedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleItemModifiedL(
-        const RArray<TInt>& aItemIndexes, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPlugin::HandleItemModifiedL" );
-    TInt countOfIndexesChanged = aItemIndexes.Count();
-    for (TInt i = 0; i < countOfIndexesChanged ; i++ )
-        {
-        UpdateDataInCPSL(i);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleAttributesAvailableL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleAttributesAvailableL(TInt aItemIndex, 
-        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPlugin::HandleAttributesAvailableL" );
-    TMPXAttribute subTitleAttrib(KGlxMediaCollectionPluginSpecificSubTitle);
-    TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-    GLX_LOG_INFO1("CGlxContentHarvesterPlugin::HandleAttributesAvailableL,aItemIndex=%d",aItemIndex);
-    if (KErrNotFound != aAttributes.Find(subTitleAttrib, match))
-        {
-        GLX_LOG_INFO("CGlxContentHarvesterPlugin::HandleAttributesAvailableL,MATCH Found");
-        if (aItemIndex < KTotalCollection)
-            {
-            TInt mediaCount = iEntries[aItemIndex]->Count();
-            GLX_LOG_INFO1("GlxCH: HandleAttributesAvailableL mediaCount(%d)", mediaCount);
-            if (iCollectionIndexes[aItemIndex] != mediaCount)
-                {
-		        GLX_LOG_INFO("GlxCH: *** UpdateDataInCPSL ***");
-                SetRefreshNeeded(ETrue);
-                UpdateDataInCPSL(aItemIndex);
-                iCollectionIndexes[aItemIndex] = mediaCount;
-                
-                // Fix for ESLM-7WKJZR :: Sometimes Thumbnails are not updating when 
-                // connecting/disconnecting USB 
-                // If there is a change in media count, when photo suite is in forground,                
-                // Update preview thumbnails of all collections.
-                if(SuiteInFocus())
-                	{
-                	GLX_LOG_INFO("CGlxContentHarvesterPlugin : *** SuiteInFocus ***");
-                	iEntries[aItemIndex]->UpdatePreviewThumbnailListL();
-                	}
-                }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleFocusChangedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleFocusChangedL(
-        NGlxListDefs::TFocusChangeType /*aType*/, 
-        TInt /*aNewIndex*/, 
-        TInt /*aOldIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPlugin::HandleFocusChangedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleItemSelectedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleItemSelectedL(TInt /*aIndex*/, 
-        TBool /*aSelected*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPlugin::HandleItemSelectedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleMessageL(const CMPXMessage& /*aMessage*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPlugin::HandleMessageL" );
-    }   
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::FillInputListWithDataL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::FillInputListWithDataL( 
-        CLiwGenericParamList* aInParamList,
-        const TDesC& aPublisherId, const TDesC& aContentType, 
-        TInt aCollection)
-    {
-    TRACER( "CGlxContentHarvesterPlugin::FillInputListWithDataL" );
-
-    if(iMediaList)
-        {     
-        aInParamList->Reset();
-        if (!iCPSInterface) 
-            {
-            User::Leave( KErrNotFound );
-            } 
-        else
-            {
-            TLiwGenericParam cptype( KType, TLiwVariant( KCpData ));
-            aInParamList->AppendL( cptype );
-
-            CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC();
-            CLiwDefaultMap* map = CLiwDefaultMap::NewLC();
-
-            TBuf8<KMaxName> subTitleTxt;
-            const TGlxMedia& glxMedia = iMediaList->Item(aCollection);
-            switch (aCollection)
-                {
-				// Bug Fix @ ESLM-7VWF28 :: " Downloads " collection folder is replaced by " ALL " collection folder
-                case KItemIndexAll:
-                    subTitleTxt.Append(KAllSubtitle);
-                    break;
-
-                case KItemIndexMonths:
-                    subTitleTxt.Append(KMonthsSubtitle);
-                    break;
-
-                case KItemIndexAlbums:
-                    subTitleTxt.Append(KAlbumsSubtitle);
-                    break;
-
-                case KItemIndexTags:
-                    subTitleTxt.Append(KTagsSubtitle);
-                    break;
-
-                default:
-                    break;
-                }
-
-#ifdef _DEBUG
-            TPtrC pStr=  glxMedia.SubTitle();
-            TBuf<KMaxName> buf;
-            buf.Copy(pStr);
-            GLX_LOG_INFO1("CGlxContentHarvesterPlugin::FillInputListWithDataL,SUB TITLE=%S", &subTitleTxt);
-            GLX_LOG_INFO1("CGlxContentHarvesterPlugin::FillInputListWithDataL,SUB TITLE=%S", &buf);
-#endif            
-
-            map->Remove(subTitleTxt);
-            map->InsertL( subTitleTxt,  TLiwVariant( glxMedia.SubTitle() ) );
-
-            cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId ));
-            cpdatamap->InsertL( KContentType, TLiwVariant( aContentType )); 
-            cpdatamap->InsertL( KContentId, TLiwVariant( KContId1 ));
-            cpdatamap->InsertL( KDataMap, TLiwVariant(map) );
-
-            TLiwGenericParam item( KItem, TLiwVariant( cpdatamap ));        
-            aInParamList->AppendL( item );
-            CleanupStack::PopAndDestroy( map );
-            CleanupStack::PopAndDestroy( cpdatamap );
-            item.Reset();
-            cptype.Reset(); 
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::UpdateDataInCPSL()
-// ----------------------------------------------------------------------------
-//  
-void CGlxContentHarvesterPlugin::UpdateDataInCPSL(TInt aCollection) 
-    {
-    TRACER( "CGlxContentHarvesterPlugin::UpdateDataInCPSL" );
-    GLX_LOG_INFO1("GlxCH::UpdateDataInCPSL(%d)", aCollection);
-
-    TInt mtpStatus = KErrNotFound;
-    RProperty::Get(KMtpPSUid, KMtpPSStatus, mtpStatus);
-    GLX_LOG_INFO1("GlxCH::UpdateDataInCPSL mtpStatus(%d)",mtpStatus);
-    if ( (mtpStatus != KErrNotFound) &&
-         (mtpStatus != EMtpPSStatusUninitialized) )
-		{
-	 	if (!SuiteInFocus())
-	        {
-	        GLX_LOG_INFO("GlxCH: *** MTP ACTIVE & SUITE NOT IN FOCUS ***");
-    	    return;
-        	}
-		}
-
-    //update data in CPS
-    CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC();
-    CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC();
-    TBuf<KMaxName> publisherTxt;
-    TBuf<KMaxName> contTypeTxt;
-
-    switch (aCollection)
-        {
-		// Bug Fix @ ESLM-7VWF28 :: " Downloads " collection folder is replaced by " ALL " collection folder
-        case KItemIndexAll:
-            publisherTxt.Append(KPublisherTextAll);
-            contTypeTxt.Append(KContTypeTextAll);
-            break;
-
-        case KItemIndexMonths:
-            publisherTxt.Append(KPublisherTextMonths);
-            contTypeTxt.Append(KContTypeTextMonths);
-            break;
-
-        case KItemIndexAlbums:
-            publisherTxt.Append(KPublisherTextAlbums);
-            contTypeTxt.Append(KContTypeTextAlbums);
-            break;
-
-        case KItemIndexTags:
-            publisherTxt.Append(KPublisherTextTags);
-            contTypeTxt.Append(KContTypeTextTags);
-            break;
-
-        default:
-            break;
-        }
-
-    FillInputListWithDataL(inParamList, publisherTxt, contTypeTxt, aCollection);
-
-    iCPSInterface->ExecuteCmdL( KAdd,  *inParamList, *outParamList );
-    CleanupStack::PopAndDestroy(outParamList);
-    CleanupStack::PopAndDestroy(inParamList);
-    } 
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::CreateMedialistL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::CreateMedialistL()
-    {
-    TRACER( "CGlxContentHarvesterPlugin::CreateMedialistL" );
-    if(!iMediaList)
-        {
-        CMPXCollectionPath* path = CMPXCollectionPath::NewL();
-        CleanupStack::PushL(path);
-        iMediaList = MGlxMediaList::InstanceL( *path );
-        CreateContextsL();
-        iMediaList->AddMediaListObserverL( this ); 
-        CleanupStack::PopAndDestroy( path );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::DestroyMedialist
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::DestroyMedialist()
-    {
-    TRACER( "CGlxContentHarvesterPlugin::DestroyMedialist" );
-    if( iMediaList )
-        {
-        iMediaList->RemoveMediaListObserver( this );
-        iMediaList->RemoveContext(iSubtitleAttributeContext);
-        delete iSubtitleAttributeContext;
-        iSubtitleAttributeContext = NULL;
-        iMediaList->Close();
-        iMediaList = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::CreateContextsL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::CreateContextsL()
-    {
-    TRACER( "CGlxContentHarvesterPlugin::CreateContextsL" );
-    iSubtitleAttributeContext = CGlxDefaultAttributeContext::NewL();
-    iSubtitleAttributeContext->SetRangeOffsets( KListDataWindowSize, KListDataWindowSize );
-    iSubtitleAttributeContext->AddAttributeL( KGlxMediaCollectionPluginSpecificSubTitle );
-    iMediaList->AddContextL( iSubtitleAttributeContext, KMaxInt );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::HandleError
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::HandleError(TInt /*aError*/)
-    {
-    TRACER( "CGlxContentHarvesterPlugin::HandleError" );    
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::UpdatePlugins
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::UpdatePlugins(TBool aUpdate)
-    {
-    TRACER( "CGlxContentHarvesterPlugin::UpdatePlugins" );  
-    TInt pluginIndex;
-    if(aUpdate)
-        {
-        if(IsRefreshNeeded())
-            {
-            GLX_LOG_INFO1("CGlxContentHarvesterPlugin::UpdatePlugins=%d",iIsRefreshNeeded);
-            for(pluginIndex=0; pluginIndex < KTotalCollection; pluginIndex++)
-                {
-                iEntries[pluginIndex]->UpdatePreviewThumbnailListL();
-                }
-            SetRefreshNeeded(EFalse);
-            }
-        }
-    else
-        {
-        //This check is added here,since all the collection are not created on the power 
-        // up of the phone,so we dont need to remove the context at that stage else it will panic.
-        if(iEntries.Count()== KTotalCollection)
-            {
-            for(pluginIndex=0; pluginIndex < KTotalCollection; pluginIndex++)
-                {
-                iEntries[pluginIndex]->RemoveContextAndObserver();
-                }
-            //before exiting the matrix menu , need to set this to true
-            //when again matrix menu is launched,the thumbnails has to be updated
-            //this use case is when we have not modified any items in the photos
-            //so refreshneeded will not be set and UpdatePreviewThumbnailListL is not called when
-            //matrix menu gets the focused,so update the refresh state
-            SetRefreshNeeded(ETrue);
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::IsRefreshNeeded
-// ---------------------------------------------------------------------------
-//
-TBool CGlxContentHarvesterPlugin::IsRefreshNeeded()
-    {
-    TRACER( "CGlxContentHarvesterPlugin::IsRefreshNeeded" );  
-    GLX_LOG_INFO1("CGlxContentHarvesterPlugin::IsRefreshNeeded(%d)", iIsRefreshNeeded);
-    return iIsRefreshNeeded;
-    }
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::SetRefreshNeeded
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPlugin::SetRefreshNeeded(TBool aRefreshNeed)
-    {
-    TRACER( "CGlxContentHarvesterPlugin::SetRefreshNeeded" );  
-    GLX_LOG_INFO1("CGlxContentHarvesterPlugin::SetRefreshNeeded(%d)", aRefreshNeed);
-    iIsRefreshNeeded = aRefreshNeed;
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPlugin::SuiteInFocus
-// ---------------------------------------------------------------------------
-//
-TBool CGlxContentHarvesterPlugin::SuiteInFocus()
-    {
-    TRACER( "CGlxContentHarvesterPlugin::SuiteInFocus" );  
-    TBool focus = EFalse;
-    for(TInt pluginIndex=0; pluginIndex < KTotalCollection; pluginIndex++)
-        {
-        focus = iEntries[pluginIndex]->Focused();
-        if (focus)
-            {
-            GLX_LOG_INFO1("GlxCH: SuiteInFocus pluginIndex(%d)", pluginIndex);
-            break;
-            }
-        }
-    GLX_LOG_INFO1("CGlxContentHarvesterPlugin::SuiteInFocus focus(%d)", focus);
-    return focus;
-    }
-
-//  End of File
-
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginalbums.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,501 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Updates CPS storage for albums collection
- *
- */
-
-// INCLUDE FILES
-
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <liwservicehandler.h>
-
-#include <glxuistd.h>
-#include <glxicons.mbg>   // Glx Icons
-#include <glxcollectionpluginalbums.hrh> //for  KGlxCollectionPluginAlbumsImplementationUid
-#include <glxthumbnailattributeinfo.h>  // for KGlxMediaIdThumbnail
-#include <glxattributecontext.h>
-#include <glxthumbnailcontext.h>
-#include <glxtracer.h>                //for tracer
-#include <glxlog.h>                   // for log
-#include <mglxmedialist.h>       // for MGlxMediaList
-#include <glxcollectiongeneraldefs.h>
-#include <glxgallery.hrh>               // for KGlxGalleryApplicationUid
-#include <glxmediaid.h>
-#include <glxerrormanager.h>      
-
-#include "glxcontentharvesterpluginalbums.h"
-#include "glxcontentharvesterplugin.hrh"
-#include "glxmapconstants.h"
-
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginAlbums::CGlxContentHarvesterPluginAlbums( 
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin* aCHplugin )
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::CGlxContentHarvesterPluginAlbums" );
-    iCPSInterface = aCPSInterface;
-    SetCHPlugin(aCHplugin);
-    }
-
-// ----------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::ConstructL()
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::ConstructL" );
-    
-    //Call the base class ConstructL
-    CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-    iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-    iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-    
-    //Register/Subscribe with matrix menu for the notifications 
-    GetInterfaceForNotificationL();
-    SetupPublisherL(KItemIndexAlbums);
-    RequestCpsNotificationL(KItemIndexAlbums);
-    HandleStateChangeL(KItemIndexAlbums);
-    }
-
-// ----------------------------------------------------------------------------
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginAlbums* CGlxContentHarvesterPluginAlbums::NewLC( 
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin* aCHplugin )
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::NewL" );
-    CGlxContentHarvesterPluginAlbums* self = new ( ELeave ) CGlxContentHarvesterPluginAlbums( aCPSInterface,aCHplugin );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginAlbums::~CGlxContentHarvesterPluginAlbums()
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::~CGlxContentHarvesterPluginAlbums" );
-
-    DestroyMedialist();
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::UpdateDataL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::UpdateDataL() 
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::UpdateDataL" );
-
-    if (!iMediaList)
-        {
-        return;
-        }
-
-    if (iMediaList->Count())
-        {
-        TInt ret = UpdateItem(KPreviewItemIndex);
-        if (ret != KErrNotFound)
-            {
-            //Updates the thumbnail in the collection 
-            UpdateDataInCPSL(ret);
-            }
-        }
-    else
-        {
-        // Show previous thumbnail until the new thumbnail is
-        // fecthed.Added this check to avoid flicker
-        if (!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0))
-            {
-            //Don't Show the Thumbnail/Show nothing
-            GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::UpdateDataL() --O");
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleNotifyL()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginAlbums::HandleNotifyL(
-        TInt /* aCmdId*/,
-        TInt/* aEventId */,
-        CLiwGenericParamList& /*aEventParamList*/,
-        const CLiwGenericParamList& /*aInParamList*/ )
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleNotifyL" );
-    HandleStateChangeL(KItemIndexAlbums);
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::UpdateDataInCPSL()
-// ----------------------------------------------------------------------------
-// 
-void CGlxContentHarvesterPluginAlbums::UpdateDataInCPSL(TInt aHandle) 
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::UpdateDataInCPSL" );
-    //update data in CPS
-    _LIT(KExamplePluginPub,"photossuite");
-    _LIT(KContTypeText,"albums");
-    _LIT(KContId1,"category1");
-
-    if(iCPSInterface && iMediaList )
-        {
-        CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC();
-        CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC();
-
-        FillInputListWithDataL(inParamList, KExamplePluginPub, KContTypeText , 
-                KContId1, aHandle);
-
-        iCPSInterface->ExecuteCmdL( KAdd,  *inParamList, *outParamList );
-        CleanupStack::PopAndDestroy(outParamList);
-        CleanupStack::PopAndDestroy(inParamList);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::UpdateItem()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginAlbums::UpdateItem(TInt aItemIndex)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::UpdateItem" );
-    const TGlxMedia& item = iMediaList->Item(aItemIndex);
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::UpdateItem,aItemIndex=%d ",aItemIndex);
-    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-    if (value)
-        {
-        return value->iBitmap->Handle();
-        }
-    return KErrNotFound;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::ActivateL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::ActivateL( TBool aOn )
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::ActivateL" );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::ActivateL aOn =%d",aOn);
-    SetFocus(aOn);
-
-    if (IsMatrixMenuInForegroundL() && aOn )
-        {
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            //Update the rest of all the collections on receving the focus...
-            GetCHPlugin()->UpdatePlugins(aOn);     
-            }
-        else
-            {
-            //As the collection is not updated by the contentharvester plugin
-            //to update the thumbnails on the focus , need to call the below function
-            UpdatePreviewThumbnailListL();
-            }
-        }
-    else if ( !aOn )
-        {
-         if(!IsMatrixMenuInForegroundL())
-            {
-            //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode...
-            //Need to destroy all the collection's observers and context
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::ActivateL !aOn =%d and matrix not in foreground",aOn);
-            GetCHPlugin()->UpdatePlugins(aOn);
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleItemAddedL
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleItemAddedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleMediaL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleMediaL(TInt /*aListIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleMediaL" );
-    } 
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleItemRemovedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleItemRemovedL(TInt /*aStartIndex*/, 
-        TInt /* aEndIndex */, MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleItemRemovedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleItemModifiedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleItemModifiedL(
-        const RArray<TInt>& /*aItemIndexes*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleItemModifiedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL(TInt aItemIndex, 
-        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL" );
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-
-    TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL =%d ",aItemIndex);
-    
-    if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match ))
-        {
-        const TGlxMedia& item = aList->Item( aItemIndex );
-        const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-        if (value)
-            {
-            GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::HandleAttributesAvailableL Thumbnail is present ");
-
-			// Update the preview thumbnail
-			//remove the observer as client need not listen to the callbacks
-			GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched");
-			UpdateDataInCPSL( value->iBitmap->Handle());
-			iMediaList->RemoveMediaListObserver( this );
-            }//end of  check against value 
-        }//end of  attribute match
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleFocusChangedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleFocusChangedL(
-        NGlxListDefs::TFocusChangeType /*aType*/, 
-        TInt /*aNewIndex*/, 
-        TInt /*aOldIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleFocusChangedL" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleItemSelectedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleItemSelectedL(TInt /*aIndex*/, 
-        TBool /*aSelected*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleItemSelectedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleMessageL(const CMPXMessage& /*aMessage*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleMessageL" );
-    }   
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::DestroyMedialist
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::DestroyMedialist()
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::DestroyMedialist" );
-    if( iMediaList )
-        {
-        GLX_LOG_INFO("CGlxContentHarvesterPluginAlbums::DestroyMedialist,media list deleted");
-        RemoveContextAndObserver();
-        
-        delete iUriAttributeContext;
-        iUriAttributeContext = NULL;
-        delete iThumbnailAttributeContext;
-        iThumbnailAttributeContext = NULL;
-        
-        iMediaList->Close();
-        iMediaList = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::CreateMedialistL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::CreateMedialistL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::CreateMedialistL" );
-    if(!iMediaList)
-        {
-		iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-
-        iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
-                        KGlxCollectionPluginAlbumsImplementationUid ),
-                        iUriAttributeContext,iThumbnailAttributeContext);         
-        
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::UpdatePreviewThumbnailListL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::UpdatePreviewThumbnailListL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::UpdatePreviewThumbnailListL" );
-
-    //when there is an update of content in the collection
-    //this function is executed or when the collection recives the focus. 
-    if(!iMediaList)
-        {
-        //media list is not created yet,create it.
-        CreateMedialistL( );
-        UpdateDataL();
-        }
-    else
-        {
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            ContainerCacheCleanupL(iMediaList);
-            }
-
-	        //1.if the content is deleted,then creating a context doesn't fetch the attributes
-	        //2.if the content is added and the content is not the latest as per the sorted order of the
-	        // media list,then the thumbnails are not fetched.
-	        // so show the first available thumbnail in the media list.
-
-	        UpdateDataL();
-
-	        //Adding the context doesn't gaurantee we get a call back for
-	        //Handle attributes available,if the latest item is already fetched.
-	        //and for the content added for this collection,if it is not latest
-	        //we will not recieve the attributes .so show the first available thumbnail 
-	        //in the media list.if there is any new latest content added,the thumbnail will be 
-	        //fetched and shown.
-
-	        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-	        RemoveContextAndObserver();
-	        AddContextAndObserverL();
-			}
-
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::AddContextAndObserverL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::AddContextAndObserverL()
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::AddRemoveContextAndObserverL" );   
-    if(iMediaList)
-        {
-        iMediaList->AddMediaListObserverL( this );
-        iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal);
-        iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow);        
-        }
-    }
-
-// ---------------------------------------------------------------------------c
-// CGlxContentHarvesterPluginAlbums::RemoveContextAndObserver
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::RemoveContextAndObserver()
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::RemoveContextAndObserver" );   
-    if(iMediaList)
-        {
-        iMediaList->RemoveMediaListObserver( this );
-        iMediaList->RemoveContext(iUriAttributeContext);
-        iMediaList->RemoveContext(iThumbnailAttributeContext);        
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::HandleError
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAlbums::HandleError(TInt /*aError*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::HandleError" );    
-
-#ifdef _DEBUG
-    if(iMediaList)
-        {
-        TInt count=iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleError,count=%d",count);
-        for ( TInt i = 0; i < count ; i++ )
-            {
-            const TGlxMedia& item = iMediaList->Item( i );
-            TInt thumbnailError = GlxErrorManager::HasAttributeErrorL(
-                    item.Properties(), KGlxMediaIdThumbnail );
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginAlbums::HandleError,Error=%d ",thumbnailError);
-
-            }
-        }
-#endif
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::Count
-// ---------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginAlbums::Count()
-    {
-    TRACER( "CGlxContentHarvesterPluginAlbums::Count" );    
-    TInt count = KErrNone;
-    if(iMediaList)
-        {
-        count = iMediaList->Count();
-        GLX_LOG_INFO1("GlxCHP:Albums::Count(%d)",count);
-        }
-    return count;
-    }
-//  End of File
-
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginall.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,499 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Updates CPS storage for all collection
- *
- */
-
-// INCLUDE FILES
-
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <liwservicehandler.h>
-
-#include <glxuistd.h>
-#include <glxicons.mbg>   // Glx Icons
-#include <glxthumbnailattributeinfo.h>   // for KGlxMediaIdThumbnail
-#include <glxattributecontext.h>
-#include <glxthumbnailcontext.h>
-#include <glxcollectionpluginall.hrh>   //for  KGlxCollectionPluginAllImplementationUid
-#include <glxtracer.h>                 //for  Traces 
-#include <glxlog.h>                   //for Log
-#include <mglxmedialist.h>           // for MGlxMediaList
-#include <glxcollectiongeneraldefs.h>
-#include <glxgallery.hrh>               // for KGlxGalleryApplicationUid
-#include <glxmediaid.h>
-#include <glxerrormanager.h>      
-
-#include "glxcontentharvesterplugin.hrh"
-#include "glxcontentharvesterpluginall.h"
-
-#include "glxmapconstants.h"
-
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginAll::CGlxContentHarvesterPluginAll(
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin *aCHplugin )
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::CGlxContentHarvesterPluginAll" );
-    iCPSInterface = aCPSInterface;
-    SetCHPlugin(aCHplugin);
-    }
-
-// ----------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::ConstructL()
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::ConstructL" );
-    
-    //Call the base class ConstructL,to create the default thumbnail
-    CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-
-    iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-    iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-
-    //Register/Subscribe with matrix menu for the notifications 
-    GetInterfaceForNotificationL();
-    SetupPublisherL(KItemIndexAll);
-    RequestCpsNotificationL(KItemIndexAll);
-    HandleStateChangeL(KItemIndexAll);
-    }
-
-// ----------------------------------------------------------------------------
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginAll* CGlxContentHarvesterPluginAll::NewLC( 
-        MLiwInterface* aCPSInterface,                                                                                               
-        MGlxContentHarvesterPlugin *aCHplugin )
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::NewL" );
-    CGlxContentHarvesterPluginAll* self = new ( ELeave ) CGlxContentHarvesterPluginAll( aCPSInterface,aCHplugin );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginAll::~CGlxContentHarvesterPluginAll()
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::~CGlxContentHarvesterPluginAll" );
-
-    DestroyMedialist();
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::UpdateDataL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::UpdateDataL() 
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::UpdateDataL" );
-
-    if (!iMediaList)
-        {
-        return;
-        }
-
-    if (iMediaList->Count())
-        {
-        TInt ret = UpdateItem(KPreviewItemIndex);
-        if (ret != KErrNotFound)
-            {
-            //Updates the thumbnail in the collection 
-            UpdateDataInCPSL(ret);
-            }
-        }
-    else
-        {
-        // Show previous thumbnail until the new thumbnail is
-        // fecthed.Added this check to avoid flicker
-        if (iMediaList->Count() == 0)
-            {
-            //Don't Show the Thumbnail/Show nothing
-            GLX_LOG_INFO("CGlxContentHarvesterPluginAll::UpdateDataL() --O");
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleNotifyL()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginAll::HandleNotifyL(
-        TInt /* aCmdId*/,
-        TInt/* aEventId */,
-        CLiwGenericParamList& /*aEventParamList*/,
-        const CLiwGenericParamList& /*aInParamList*/ )
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleNotifyL" );
-    
-    // First time when we enter matrix menu from shortcut or app. launcher, set
-	// IsRefreshNeeded flag to ETrue. so that thumbnail attributes are fetched again
-	// for all containers. This is to avoid preview thumbnails not getting shown in
-	// matirix menu under low memory conditions.
-	GetCHPlugin()->SetRefreshNeeded(ETrue);
-
-    HandleStateChangeL(KItemIndexAll);
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::UpdateDataInCPSL()
-// ----------------------------------------------------------------------------
-//  
-void CGlxContentHarvesterPluginAll::UpdateDataInCPSL(TInt aHandle) 
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::UpdateDataInCPSL" );
-    //update data in CPS
-    _LIT(KExamplePluginPub,"photossuite");
-    _LIT(KContentActivation,"allcs");
-    _LIT(KContId1,"category1");
-
-    if(iCPSInterface && iMediaList )
-        {
-        CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC();
-        CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC();
-
-        //Shows the thumbnail in the matrix view
-        FillInputListWithDataL(inParamList, KExamplePluginPub, KContentActivation , 
-                KContId1, aHandle);
-
-        iCPSInterface->ExecuteCmdL( KAdd,  *inParamList, *outParamList );
-        CleanupStack::PopAndDestroy(outParamList);
-        CleanupStack::PopAndDestroy(inParamList);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::UpdateItem()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginAll::UpdateItem(TInt aItemIndex)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::UpdateItem" );
-    const TGlxMedia& item = iMediaList->Item(aItemIndex);
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::UpdateItem,aItemIndex=%d ",aItemIndex);
-    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-    if (value)
-        {
-        return value->iBitmap->Handle();
-        }
-    return KErrNotFound;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::ActivateL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::ActivateL( TBool aOn )
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::ActivateL" );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::ActivateL aOn =%d",aOn);
-    SetFocus(aOn);
-
-    if (IsMatrixMenuInForegroundL() && aOn )
-        {
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            //Update the rest of all the collections on receving the focus...
-            GetCHPlugin()->UpdatePlugins(aOn);          
-            }
-        else
-            {
-            //As the collection is not updated by the contentharvester plugin
-            //to update the thumbnails on the focus , need to call the below function
-            UpdatePreviewThumbnailListL();
-            }
-        }
-    else if ( !aOn )
-        {
-       if(!IsMatrixMenuInForegroundL())
-            {
-            //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode...
-            //Need to destroy all the collection's observers and context
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::ActivateL !aOn =%d and matrix not in foreground",aOn);
-            GetCHPlugin()->UpdatePlugins(aOn);
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleItemAddedL
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
-        MGlxMediaList*/*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleItemAddedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleMediaL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleMediaL(TInt /*aListIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleMediaL" );
-    } 
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleItemRemovedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleItemRemovedL(TInt /*aStartIndex*/, 
-        TInt /* aEndIndex */, MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleItemRemovedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleItemModifiedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleItemModifiedL(
-        const RArray<TInt>& /*aItemIndexes*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleItemModifiedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleAttributesAvailableL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleAttributesAvailableL(TInt aItemIndex, 
-        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleAttributesAvailableL" );
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-
-    TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL =%d ",aItemIndex);
-    if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match ))
-        {
-        const TGlxMedia& item = aList->Item( aItemIndex );
-        const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-        if (value)
-            {
-            GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL Thumbnail is present ");
-
-			// Update the preview thumbnail
-			//remove the observer as client need not listen to the callbacks
-			GLX_LOG_INFO("CGlxContentHarvesterPluginAll::HandleAttributesAvailableL,one thumbnail fetched");
-			UpdateDataInCPSL( value->iBitmap->Handle());
-			iMediaList->RemoveMediaListObserver( this );
-            }//end of  check against value 
-        }//end of  attribute match
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleFocusChangedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleFocusChangedL(
-        NGlxListDefs::TFocusChangeType /*aType*/, 
-        TInt /*aNewIndex*/, 
-        TInt /*aOldIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleFocusChangedL" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleItemSelectedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleItemSelectedL(TInt /*aIndex*/, 
-        TBool /*aSelected*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleItemSelectedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleMessageL(const CMPXMessage& /*aMessage*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPluginAll::HandleMessageL" );
-    }   
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::DestroyMedialistL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::DestroyMedialist()
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::DestroyMedialist" );
-    if( iMediaList )
-        {
-        GLX_LOG_INFO("CGlxContentHarvesterPluginAll::DestroyMedialist,media list deleted");
-        RemoveContextAndObserver();
-        
-        delete iUriAttributeContext;
-		iUriAttributeContext = NULL;
-		delete iThumbnailAttributeContext;
-		iThumbnailAttributeContext = NULL;
-		
-        iMediaList->Close();
-        iMediaList = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::CreateSingleItemMedialist
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::CreateMedialistL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::CreateMedialistL" );
-    if(!iMediaList)
-        {
-        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-
-        iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
-                KGlxCollectionPluginAllImplementationUid ),
-                iUriAttributeContext,iThumbnailAttributeContext);         
-
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::UpdateMedialistContext
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::UpdatePreviewThumbnailListL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::UpdatePreviewThumbnailListL" );
-
-    //when there is an update of content in the collection
-    //this function is executed or when the collection recives the focus. 
-    if(!iMediaList)
-        {
-        //medis list is not created yet,create it.
-        CreateMedialistL( );
-        UpdateDataL();
-        }
-    else
-        {
-        UpdateDataL();
-
-        //Adding the context doesn't gaurantee we get a call back for
-        //Handle attributes available,if the latest item is already fetched.
-        //and for the content added for this collection,if it is not latest
-        //we will not recieve the attributes .so show the first available thumbnail 
-        //in the media list.if there is any new latest content added,the thumbnail will be 
-        //fetched and shown.
-
-
-        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-        RemoveContextAndObserver();
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::AddContextAndObserverL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::AddContextAndObserverL()
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::AddRemoveContextAndObserverL" );   
-    if(iMediaList)
-        {
-        iMediaList->AddMediaListObserverL( this );
-        iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal);
-        iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow);   
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::RemoveContextAndObserver
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::RemoveContextAndObserver()
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::RemoveContextAndObserver" );   
-    if(iMediaList)
-        {
-        iMediaList->RemoveMediaListObserver( this );
-        iMediaList->RemoveContext(iUriAttributeContext);
-        iMediaList->RemoveContext(iThumbnailAttributeContext);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::HandleError
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginAll::HandleError(TInt /*aError*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::HandleError" );    
-
-#ifdef _DEBUG
-    if(iMediaList)
-        {
-        TInt count=iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleError,count=%d",count);
-        for ( TInt i = 0; i < count ; i++ )
-            {
-            const TGlxMedia& item = iMediaList->Item( i );
-            TInt thumbnailError = GlxErrorManager::HasAttributeErrorL(
-                    item.Properties(), KGlxMediaIdThumbnail );
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginAll::HandleError,Error=%d ",thumbnailError);
-
-            }
-        }
-#endif
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAll::Count
-// ---------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginAll::Count()
-    {
-    TRACER( "CGlxContentHarvesterPluginAll::Count" );    
-    TInt count = KErrNone;
-    if(iMediaList)
-        {
-        count = iMediaList->Count();
-        GLX_LOG_INFO1("GlxCHP:All::Count(%d)",count);
-        }
-    return count;
-    }
-//  End of File
-
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginbase.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,578 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Updates CPS storage
- *
- */
-
-
-// INCLUDE FILES
-#include <e32base.h>
-#include <featmgr.h>
-#include <apgtask.h>
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <liwservicehandler.h>
-#include <glxuistd.h>     // KGlxFetchontextPriorityNormal and KGlxIconsFilename  
-#include <AknIconUtils.h> 
-#include <data_caging_path_literals.hrh>
-
-#include <glxattributecontext.h>
-#include <glxtracer.h>
-#include <glxlog.h>
-#include <mglxmedialist.h>       // for MGlxMediaList
-#include <glxcollectiongeneraldefs.h>
-#include <glxgallery.hrh>               // for KGlxGalleryApplicationUid
-#include <glxfilterfactory.h>
-#include <glxuistd.h>
-#include <glxthumbnailcontext.h>
-#include <glxmedialistiterator.h>
-#include <mglxcache.h>
-#include <glxthumbnailattributeinfo.h>
-
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterpluginbase.h"
-#include "glxcontentharvesterplugin.hrh"
-#include "glxmapconstants.h"
-#include "glxcontentharvesterpluginalbums.h"
-
-// Matrixmenu uid - needed to check if photo suite is in foreground
-const TInt KMatrixMenuUid = 0x101F4CD2;
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginBase::CGlxContentHarvesterPluginBase( )
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::CGlxContentHarvesterPluginBase" );
-    // No Implementation
-    }
-
-// ----------------------------------------------------------------------------
-// Symbian 2nd phase constructor.
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::ConstructL(TInt aDefaultIconId )
-    {
-    SetGridIconSizeL();
-    TSize gridIconSize = GetGridIconSize();
-    TFileName resFile(KDC_APP_BITMAP_DIR);
-    resFile.Append(KGlxIconsFilename);
-    iBitmap = AknIconUtils::CreateIconL(resFile,aDefaultIconId);
-    AknIconUtils::SetSize(iBitmap, gridIconSize);
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginBase::~CGlxContentHarvesterPluginBase()
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::~CGlxContentHarvesterPluginBase" );
-    if ( iCPSNotificationInterface )
-        {
-        iCPSNotificationInterface->Close();
-        }
-  
-    delete iServiceHandler;
-    
-    if(iBitmap)
-        {
-         delete iBitmap;
-         iBitmap=NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// SetGridIconSizeL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::SetGridIconSizeL()
-    {
-    TRACER("CGlxContentHarvesterPluginBase::SetGridIconSizeL()");
-    // Sets up TLS, must be done before FeatureManager is used.
-    FeatureManager::InitializeLibL();
-
-    if(FeatureManager::FeatureSupported( KFeatureIdLayout640_360_Touch ) || FeatureManager::FeatureSupported( KFeatureIdLayout360_640_Touch ))
-        {
-        iGridIconSize = TSize(111,83);
-        }
-    else if(FeatureManager::FeatureSupported(KFeatureIdLayout640_480_Touch) || FeatureManager::FeatureSupported(KFeatureIdLayout480_640_Touch) || 
-            FeatureManager::FeatureSupported(KFeatureIdLayout640_480) || FeatureManager::FeatureSupported(KFeatureIdLayout480_640))
-        {
-        iGridIconSize = TSize(146,110);
-        }
-    else
-        {
-        iGridIconSize = TSize(146,110);
-        }
-    // Frees the TLS. Must be done after FeatureManager is used.
-    FeatureManager::UnInitializeLib(); 
-    }
-
-// ---------------------------------------------------------------------------
-// GetGridIconSize
-// ---------------------------------------------------------------------------
-//
-TSize CGlxContentHarvesterPluginBase::GetGridIconSize()
-    {
-    TRACER("CGlxContentHarvesterPluginBase::GetGridIconSize()");
-    return iGridIconSize;
-    }
-
-// ---------------------------------------------------------------------------
-// GetBitmapHandle
-// ---------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginBase::GetBitmapHandle() const
-    {
-    TRACER("CGlxContentHarvesterPluginBase::GetBitmapHandle");
-    return iBitmap->Handle();
-    }
-
-// ---------------------------------------------------------------------------
-// GetInterfaceForNotificationL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::GetInterfaceForNotificationL()
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::GetInterfaceForNotificationL" );
-    // create Service Handler and keep as long as access to Service needed
-    iServiceHandler = CLiwServiceHandler::NewL();
-    //keep for convenience, not owned
-    iInParamList = &iServiceHandler->InParamListL();
-    iOutParamList = &iServiceHandler->OutParamListL();
-
-    RCriteriaArray criteriaArray;
-    CleanupResetAndDestroyPushL( criteriaArray );
-
-    // create Liw criteria
-    CLiwCriteriaItem* criterion = 
-    CLiwCriteriaItem::NewLC( KLiwCmdAsStr, KCPInterface, KCPService ); 
-    criterion->SetServiceClass( TUid::Uid( KLiwClassBase ) );
-
-    criteriaArray.AppendL( criterion );
-    CleanupStack::Pop( criterion );
-
-    // attach Liw criteria
-    iServiceHandler->AttachL( criteriaArray );
-    // get Service interface
-    iServiceHandler->ExecuteServiceCmdL( *criterion, 
-            *iInParamList, 
-            *iOutParamList );
-
-    CleanupStack::PopAndDestroy( &criteriaArray );
-
-    // extract interface from output params
-    TInt pos( 0 );
-    iOutParamList->FindFirst( pos, KCPInterface );
-    if( pos != KErrNotFound )
-        {
-        iCPSNotificationInterface = 
-        (*iOutParamList)[pos].Value().AsInterface();    
-        }
-
-    iInParamList->Reset();
-    iOutParamList->Reset();
-
-    if ( !iCPSNotificationInterface )
-        {
-        // handle no Service
-        User::Leave( KErrNotFound );
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// RequestCpsNotificationL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::RequestCpsNotificationL(TInt aSuiteItem)
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::RequestCpsNotificationL" );
-
-    TLiwGenericParam cptype( KType, TLiwVariant( KPublisherId ));
-    iInParamList->AppendL( cptype );
-
-    //create filter
-    CLiwDefaultMap* filterMap = CLiwDefaultMap::NewLC();
-    filterMap->InsertL( KPublisherId, TLiwVariant( KSuitePublisher ));
-
-    switch (aSuiteItem)
-        {
-        case KItemIndexMonths:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationMonths ) );
-            break;
-        case KItemIndexAlbums:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAlbums ) );
-            break;
-        case KItemIndexTags:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationTags ) );
-            break;
-        case KItemIndexAll:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAll ) );
-            break;
-        }
-
-    filterMap->InsertL( KContentId, TLiwVariant( KContentDefault ) );
-
-    //we are only interested in update events
-    filterMap->InsertL( KOperation, TLiwVariant( KOperationUpdate ) );
-
-    TLiwGenericParam filter( KFilter, TLiwVariant( filterMap ));          
-    iInParamList->AppendL( filter );
-
-    iCPSNotificationInterface->ExecuteCmdL( KRequestNotification, 
-            *iInParamList, 
-            *iOutParamList,
-            KLiwOptASyncronous,
-            this );
-
-    CleanupStack::PopAndDestroy( filterMap );
-    filter.Reset();
-    cptype.Reset();
-
-    iInParamList->Reset();
-    iOutParamList->Reset();
-    }
-
-// ---------------------------------------------------------------------------
-// SetupPublisherL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::SetupPublisherL(TInt aSuiteItem)
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::SetupPublisherL" );
-
-    //add mandatory type param
-    TLiwGenericParam cptype( KType, TLiwVariant( KPublisherId ));
-    iInParamList->AppendL( cptype );
-
-    //create publisher definition
-    CLiwDefaultMap* filterMap = CLiwDefaultMap::NewLC();
-    filterMap->InsertL( KPublisherId, TLiwVariant( KSuitePublisher ));
-    switch (aSuiteItem)
-        {
-        case KItemIndexMonths:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationMonths ) );
-            break;
-        case KItemIndexAlbums:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAlbums ) );
-            break;
-        case KItemIndexTags:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationTags ) );
-            break;
-        case KItemIndexAll:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAll ) );
-            break;
-        }
-    filterMap->InsertL( KContentId, TLiwVariant( KContentDefault ) );
-    // initial value for activation flag
-    filterMap->InsertL( KFlag, TLiwVariant( TUint(0) ) );
-
-
-    // prepare Access Control List for the publisher
-    CLiwDefaultMap* cpsAclMap = CLiwDefaultMap::NewLC();
-    CLiwDefaultMap* cpsAclWriteMap = CLiwDefaultMap::NewLC();
-    CLiwDefaultMap* cpsAclReadMap = CLiwDefaultMap::NewLC();
-
-    // write policy - allow only MatrixMenu,
-    // Matrix has 2 UIDs:
-    //     - 0x20012474 is used if it is compiled as a standalone application
-    //     - 0x101F4CD2 is used if it should replace AppShell
-    // add both for convenience
-    cpsAclWriteMap->InsertL( KUIDs, TLiwVariant( _L("0x101F4CD2:0x20012474") ) );
-
-    // read policy - allow only the Content Harvester plug-in,
-    // this plug-in runs inside Content Harvester server - UID 0x10282E5A
-    cpsAclReadMap->InsertL( KUIDs, TLiwVariant( _L("0x10282E5A") ) );
-
-    cpsAclMap->InsertL( KACLWrite, TLiwVariant( cpsAclWriteMap ) );
-    cpsAclMap->InsertL( KACLRead, TLiwVariant( cpsAclReadMap ) );
-
-    filterMap->InsertL( KAccessList, TLiwVariant( cpsAclMap ) );
-
-    // create a dummy data map,
-    // mandatory for adding publisher data - can be left empty
-    CLiwDefaultMap* cpsDummyDataMap = CLiwDefaultMap::NewLC();
-    filterMap->InsertL( KDataMap, TLiwVariant( cpsDummyDataMap ) );
-
-    TLiwGenericParam cpsItemParam( KItem, TLiwVariant( filterMap ) );       
-    iInParamList->AppendL( cpsItemParam );
-
-
-    iCPSNotificationInterface->ExecuteCmdL( KAdd, 
-            *iInParamList, 
-            *iOutParamList,
-            0,
-            NULL );
-    CleanupStack::PopAndDestroy( cpsDummyDataMap );
-    CleanupStack::PopAndDestroy( cpsAclReadMap );
-    CleanupStack::PopAndDestroy( cpsAclWriteMap );
-    CleanupStack::PopAndDestroy( cpsAclMap );
-    CleanupStack::PopAndDestroy( filterMap );
-    cpsItemParam.Reset();
-    // filter.Reset();
-    cptype.Reset();
-
-    iInParamList->Reset();
-    iOutParamList->Reset();
-    }
-
-// ---------------------------------------------------------------------------
-// HandleStateChangeL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::HandleStateChangeL(TInt aSuiteItem)
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::HandleStateChangeL" );
-
-    TLiwGenericParam cptype( KType, TLiwVariant( KPublisher ));
-    iInParamList->AppendL( cptype );
-
-    CLiwDefaultMap* filterMap = CLiwDefaultMap::NewLC();
-    filterMap->InsertL( KPublisherId, TLiwVariant( KSuitePublisher ));
-    switch (aSuiteItem)
-        {
-        case KItemIndexMonths:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationMonths ) );
-            break;
-
-        case KItemIndexAlbums:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAlbums ) );
-            break;
-
-        case KItemIndexTags:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationTags ) );
-            break;
-
-        case KItemIndexAll:
-            filterMap->InsertL( KContentType, TLiwVariant( KContentActivationAll ) );
-            break;
-        }
-
-    TLiwGenericParam filter( KFilter, TLiwVariant( filterMap ));      
-    iInParamList->AppendL( filter );
-
-
-    iCPSNotificationInterface->ExecuteCmdL( KGetList, 
-            *iInParamList, 
-            *iOutParamList,
-            0,
-            NULL );
-
-    CleanupStack::PopAndDestroy( filterMap );
-
-    filter.Reset();
-    cptype.Reset();
-
-    TInt posStat( 0 );
-    iOutParamList->FindFirst( posStat, KResults );
-    if( posStat != KErrNotFound )
-        {
-        // status info present - extract and return
-        CLiwIterable* results = (*iOutParamList)[posStat].Value().AsIterable();
-        TLiwVariant cpdata;
-        if ( results->NextL( cpdata ) )
-            {
-            const CLiwMap* map = cpdata.AsMap();
-            TLiwVariant dataMapVar;
-            if ( map->FindL( _L8("flag"), dataMapVar ) )
-                {
-                ActivateL(dataMapVar.AsTInt32());
-                }
-            dataMapVar.Reset();
-            }
-        cpdata.Reset();
-        }
-    else
-        {
-        // no return value
-        // this will happen if suite was never activated/deactivated before
-        // handle gracefuly - ignore and wait for action ;]
-        }
-
-    iInParamList->Reset();
-    iOutParamList->Reset();
-
-    }
-
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginBase::FillInputListWithDataL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::FillInputListWithDataL( 
-        CLiwGenericParamList* aInParamList,
-        const TDesC& aPublisherId, const TDesC& aContentType, 
-        const TDesC& aContentId, TInt aHandle)
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::FillInputListWithDataL" );
-
-    aInParamList->Reset();
-
-    TLiwGenericParam cptype( KType, TLiwVariant( KCpData ));
-    aInParamList->AppendL( cptype );
-
-    CLiwDefaultMap* cpdatamap = CLiwDefaultMap::NewLC();
-    CLiwDefaultMap* map = CLiwDefaultMap::NewLC();
-
-    if(aHandle)
-        {
-        map->InsertL( KFirstIcon, TLiwVariant( (TInt32)aHandle) );
-        }
-
-    cpdatamap->InsertL( KPublisherId, TLiwVariant( aPublisherId ));
-    cpdatamap->InsertL( KContentType, TLiwVariant( aContentType )); 
-    cpdatamap->InsertL( KContentId, TLiwVariant( aContentId ));
-    cpdatamap->InsertL( KDataMap, TLiwVariant(map) );
-
-    TLiwGenericParam item( KItem, TLiwVariant( cpdatamap ));        
-    aInParamList->AppendL( item );
-    CleanupStack::PopAndDestroy( map );
-    CleanupStack::PopAndDestroy( cpdatamap );
-    item.Reset();
-    cptype.Reset(); 
-
-    }
-
-// ---------------------------------------------------------------------------
-// CreateMedialistAndAttributeContextL
-// ---------------------------------------------------------------------------
-//
-MGlxMediaList* CGlxContentHarvesterPluginBase::CreateMedialistAndAttributeContextL(
-					const TGlxMediaId& aPluginId,
-					CGlxAttributeContext* aUriAttributeContext, 
-					CGlxAttributeContext* aThumbnailAttributeContext) const    		
-    		{
-            TRACER( "CGlxContentHarvesterPluginBase::CreateMedialistAndThumbnailContextL" );        
-                 
-            CMPXCollectionPath* path = CMPXCollectionPath::NewL();
-            CleanupStack::PushL( path );
-            path->AppendL( aPluginId.Value() );               
-
-            CMPXFilter* filter = NULL;
-            filter = TGlxFilterFactory::CreatePreviewFilterL(); 
-            CleanupStack::PushL( filter );
-
-            MGlxMediaList* mediaList = MGlxMediaList::InstanceL( *path, KGlxIdNone , filter);
-            CleanupStack::PopAndDestroy( filter );
-            CleanupStack::PopAndDestroy( path );  
-            
-            // Two different contexts are added. One for URI with high priority
-            // and for Thumbnail with low priority. Because URI attribute should be
-            // fetched first before placing thumbnail fetch request
-            
-            aUriAttributeContext->AddAttributeL(KMPXMediaGeneralUri);  
-     
-            TMPXAttribute attr( KGlxMediaIdThumbnail,
-								GlxFullThumbnailAttributeId(ETrue,
-									iGridIconSize.iWidth,iGridIconSize.iHeight) );
-            
-            aThumbnailAttributeContext->SetDefaultSpec(iGridIconSize.iWidth,
-            											iGridIconSize.iHeight);
-            
-            aThumbnailAttributeContext->AddAttributeL(attr);    
-         
-            return mediaList;
-            }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginBase::Focused
-// ---------------------------------------------------------------------------
-//
-TBool CGlxContentHarvesterPluginBase::Focused()
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::Focused" );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginBase::Focused(%d)", iIsFocused);
-    return iIsFocused;
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginBase::SetFocus
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::SetFocus(TBool aFocus )
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::SetFocus" );
-    iIsFocused=aFocus;
-    }
-
-// ---------------------------------------------------------------------------
-// ContainerCacheCleanupL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::ContainerCacheCleanupL(MGlxMediaList* aMediaList)
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::ContainerCacheCleanupL" ); 
-      
-    if ( IsMatrixMenuInForegroundL() )
-        {
-        MGlxCache* cacheManager = MGlxCache::InstanceL();   
-        for(TInt i=0 ; i< aMediaList->Count();i++)
-            {  
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginBase::ForceCleanupMedia(%d)", i);
-            cacheManager->ForceCleanupMedia(aMediaList->IdSpaceId(i),
-                                            aMediaList->Item(i).Id());
-            }
-        cacheManager->Close();  
-        }    
-    }
-
-// ---------------------------------------------------------------------------
-// IsMatrixMenuInForegroundL
-// ---------------------------------------------------------------------------
-//
-TBool CGlxContentHarvesterPluginBase::IsMatrixMenuInForegroundL()
-    {
-    TRACER( "CGlxContentHarvesterPluginBase::IsMatrixMenuInForegroundL" );
-    
-    RWsSession wssession;
-    User::LeaveIfError(wssession.Connect());
-    CleanupClosePushL(wssession);
-        
-    TApaTaskList taskList( wssession );       
-    TApaTask task = taskList.FindApp( TUid::Uid( KMatrixMenuUid ) );
-    // get fopreground app
-    TApaTask taskForeGround = taskList.FindByPos(0); 
-   
-    if ( task.Exists() && task.ThreadId() == taskForeGround.ThreadId() )
-        {
-        CleanupStack::PopAndDestroy( &wssession ); 
-        return ETrue;
-        } 
-    CleanupStack::PopAndDestroy( &wssession ); 
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// SetCHPlugin
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginBase::SetCHPlugin(MGlxContentHarvesterPlugin* aCHplugin)
-	{
-	iCHplugin = aCHplugin;
-	}
-
-// ---------------------------------------------------------------------------
-// GetCHPlugin
-// ---------------------------------------------------------------------------
-//
-MGlxContentHarvesterPlugin* CGlxContentHarvesterPluginBase::GetCHPlugin()
-	{
-	return iCHplugin;
-	}
-
-// EOF
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugincaptured.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,616 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Updates CPS storage for captured collection
- *
- */
-
-// INCLUDE FILES
-
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <LiwServiceHandler.h>
-
-#include <glxuistd.h>
-#include <glxicons.mbg>   // Glx Icons
-#include <glxcollectionplugincamera.hrh>
-#include <glxthumbnailattributeinfo.h>  // for KGlxMediaIdThumbnail
-#include <glxattributecontext.h>
-#include <glxthumbnailcontext.h>
-#include <glxtracer.h>
-#include <glxlog.h>
-#include <mglxmedialist.h>       // for MGlxMediaList
-#include <glxcollectiongeneraldefs.h>
-#include <glxgallery.hrh>               // for KGlxGalleryApplicationUid
-#include <glxmediaid.h>
-#include <glxerrormanager.h>  
-
-#include "glxcontentharvesterplugincaptured.h"
-#include "glxcontentharvesterplugin.hrh"
-#include "glxmapconstants.h"
-
-
-// ============================ MEMBER FUNCTIONS ==============================
-LOCAL_C TInt TimerCallbackL( TAny* aPtr )
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::TimerCallbackL" );
-    static_cast<CGlxContentHarvesterPluginCaptured*>(aPtr)->UpdateDataL();
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginCaptured::CGlxContentHarvesterPluginCaptured( 
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin *aCHplugin )
-
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::CGlxContentHarvesterPluginCaptured" );
-    iCPSInterface = aCPSInterface;
-    SetCHPlugin(aCHplugin);
-    }
-
-// ----------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::ConstructL()
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::ConstructL" );
-
-    //Call the base class ConstructL,to create the default thumbnail
-    CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-    
-    iPeriodic = CPeriodic::NewL( CActive::EPriorityLow );
-    
-    iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-    iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-
-    //Register/Subscribe with matrix menu for the notifications 
-    GetInterfaceForNotificationL();
-    SetupPublisherL(KItemIndexCaptured);
-    RequestCpsNotificationL(KItemIndexCaptured);
-    HandleStateChangeL(KItemIndexCaptured);
-    }
-
-// ----------------------------------------------------------------------------
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginCaptured* CGlxContentHarvesterPluginCaptured::NewLC( 
-        MLiwInterface* aCPSInterface,                                                                                               
-        MGlxContentHarvesterPlugin *aCHplugin )
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::NewL" );
-    CGlxContentHarvesterPluginCaptured* self = new ( ELeave ) CGlxContentHarvesterPluginCaptured( aCPSInterface,aCHplugin );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginCaptured::~CGlxContentHarvesterPluginCaptured()
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::~CGlxContentHarvesterPluginCaptured" );
-
-    DestroyMedialist();
-
-    if ( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        }
-    delete iPeriodic;
-
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::UpdateDataL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::UpdateDataL() 
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::UpdateDataL" );
-
-    if (!iMediaList)
-        {
-        return;
-        }
-    
-    if (iMediaList->Count() && iPreviewItemCount.Count())
-        {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
-        TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
-        if (ret != KErrNotFound)
-            {
-            //Updates the thumbnail in the collection 
-            UpdateDataInCPSL(ret);
-            }
-        else
-            {
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
-        }
-    else
-        {
-        // Show previous thumbnail until the new thumbnail is
-        // fecthed.Added this check to avoid flicker
-        if (iMediaList->Count() == 0)
-            {
-            //Don't Show the Thumbnail/Show nothing
-            GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::UpdateDataL() --O");
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleNotifyL()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginCaptured::HandleNotifyL(
-        TInt /* aCmdId*/,
-        TInt/* aEventId */,
-        CLiwGenericParamList& /*aEventParamList*/,
-        const CLiwGenericParamList& /*aInParamList*/ )
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleNotifyL" );
-
-    HandleStateChangeL(KItemIndexCaptured);
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleItemChanged()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleItemChanged()
-    {
-    TRACER("CGlxContentHarvesterPluginCaptured::HandleItemChanged");
-
-    iProgressIndex = 0;
-    iPreviewItemCount.Reset();
-
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    if(iMediaList)  
-        {
-        TInt count = iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured:: HandleItemChanged ,count=%d",count);
-
-        TBool inFocus = IsFocused();
-        for(TInt aItemIndex = 0; aItemIndex < count ; aItemIndex++)
-            {
-            const TGlxMedia& item = iMediaList->Item( aItemIndex );
-            const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-            if (value)
-                {
-                iPreviewItemCount.InsertInOrder(aItemIndex);
-                if(!inFocus)
-                    {
-                    //if the collection is NOT in Focus,retrive only one thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleItemChanged,iRange=1,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-                else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount || 
-                        iPreviewItemCount.Count() == count )
-                    {
-                    //if the collection is not in Focus,retrive 15 thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleItemChanged,iRange=15,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-
-                }
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::UpdateDataInCPSL()
-// ----------------------------------------------------------------------------
-//  
-void CGlxContentHarvesterPluginCaptured::UpdateDataInCPSL(TInt aHandle) 
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::UpdateDataInCPSL" );
-    //update data in CPS
-    _LIT(KExamplePluginPub,"photossuite");
-    _LIT(KContTypeText,"captured");
-    _LIT(KContId1,"category1");
-
-    if(iCPSInterface && iMediaList )
-        {
-        CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC();
-        CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC();
-
-        FillInputListWithDataL(inParamList, KExamplePluginPub, KContTypeText , 
-                KContId1, aHandle);
-
-        iCPSInterface->ExecuteCmdL( KAdd,  *inParamList, *outParamList );
-        CleanupStack::PopAndDestroy(outParamList);
-        CleanupStack::PopAndDestroy(inParamList);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::UpdateItem()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginCaptured::UpdateItem(TInt aItemIndex)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::UpdateItem" );
-    const TGlxMedia& item = iMediaList->Item(aItemIndex);
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::UpdateItem,aItemIndex=%d ",aItemIndex);
-    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-    if (value)
-        {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::UpdateItem,iProgressIndex=%d ",iProgressIndex);
-        iProgressIndex++;
-        if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-                iProgressIndex >= iPreviewItemCount.Count() ||
-                iProgressIndex >= iMediaList->Count())
-            {
-            iProgressIndex = 0;
-            }
-        return value->iBitmap->Handle();
-        }
-    return KErrNotFound;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::ActivateL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::ActivateL( TBool aOn )
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::ActivateL" );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::ActivateL aOn =%d",aOn);
-    SetFocus(aOn);
-
-    if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() )
-        {
-
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            //Update the rest of all the collections on receving the focus...
-            GetCHPlugin()->UpdatePlugins(aOn);          
-            }
-        else
-            {
-            //As the collection is not updated by the contentharvester plugin
-            //to update the thumbnails on the focus , need to call the below function
-            UpdatePreviewThumbnailListL();
-            }
-
-        iPeriodic->Start( KTimerInterval, 
-                KTimerInterval, 
-                TCallBack( TimerCallbackL, this ) );
-        }
-    else if ( !aOn )
-        {
-        if(!IsMatrixMenuInForegroundL())
-            {
-            //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode...
-            //Need to destroy all the collection's observers and context
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::ActivateL !aOn =%d and matrix not in foreground",aOn);
-            GetCHPlugin()->UpdatePlugins(aOn);
-            }
-        iPeriodic->Cancel();
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleItemAddedL
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleItemAddedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleMediaL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleMediaL(TInt /*aListIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleMediaL" );
-    } 
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleItemRemovedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleItemRemovedL(TInt /*aStartIndex*/, 
-        TInt /* aEndIndex */, MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleItemRemovedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleItemModifiedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleItemModifiedL(
-        const RArray<TInt>& /*aItemIndexes*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleItemModifiedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL(TInt aItemIndex, 
-        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL" );
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-
-    TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL =%d ",aItemIndex);
-    if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match ))
-        {
-        const TGlxMedia& item = aList->Item( aItemIndex );
-        const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-        if (value)
-            {
-            GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL Thumbnail is present ");
-            iPreviewItemCount.InsertInOrder(aItemIndex);
-
-            //if the collection on the matrix menu is not focused,then show only one thumbnail
-            if(!IsFocused())
-                {
-                GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL,one thumbnail fetched");
-                UpdateDataInCPSL( value->iBitmap->Handle());
-                //if one thumbnail is fetched,it is sufficent when the collection is not in focus.
-                //remove the observer as client need not listen to the callbacks               
-                iMediaList->RemoveMediaListObserver( this );
-                }
-            else if (iPreviewItemCount.Count()  == KPreviewThumbnailFetchCount || 
-                    iPreviewItemCount.Count() == aList->Count() )
-                {
-                GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleAttributesAvailableL,media list count=%d",aList->Count());
-                //if the PreviewItemCount  equals 15 or if it is eqaul to the total count
-                //remove the observer as client need not listen to the callbacks 
-                iMediaList->RemoveMediaListObserver( this );
-                }
-            }//end of  check against value 
-        }//end of  attribute match
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleFocusChangedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleFocusChangedL(
-        NGlxListDefs::TFocusChangeType /*aType*/, 
-        TInt /*aNewIndex*/, 
-        TInt /*aOldIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleFocusChangedL" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleItemSelectedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleItemSelectedL(TInt /*aIndex*/, 
-        TBool /*aSelected*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleItemSelectedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleMessageL(const CMPXMessage& /*aMessage*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleMessageL" );
-    }   
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::DestroyMedialist
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::DestroyMedialist()
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::DestroyMedialist" );
-    if( iMediaList )
-        {
-        GLX_LOG_INFO("CGlxContentHarvesterPluginCaptured::DestroyMedialist,media list deleted");
-        RemoveContextAndObserver();
-        
-        delete iUriAttributeContext;
-        iUriAttributeContext = NULL;
-        delete iThumbnailAttributeContext;
-        iThumbnailAttributeContext = NULL;
-        
-        iMediaList->Close();
-        iMediaList = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::CreateMedialistL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::CreateMedialistL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::CreateMedialistL" );
-    if(!iMediaList)
-        {
-        //if the collection is in focus then , create media list with context of 15 items else
-        // with context of single item.
-        if(IsFocused())
-            {
-            iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); 
-            }
-        else
-            {
-            iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-            }
-
-        iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
-                KGlxCollectionPluginCameraImplementationUid ),
-                iUriAttributeContext,iThumbnailAttributeContext);         
-        
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::UpdatePreviewThumbnailListL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::UpdatePreviewThumbnailListL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::UpdatePreviewThumbnailListL" );
-
-    //when there is an update of content in the collection
-    //this function is executed or when the collection recives the focus. 
-    if(!iMediaList)
-        {
-        //medis list is not created yet,create it.
-        CreateMedialistL( );
-        //This is called to show the preview thumbnails. If no thumbnails are
-        //present, display nothing 
-        UpdateDataL();
-        }
-    else if(IsFocused())
-        {
-        //1.This loop is executed,when the collection gets focus
-        //2.This loop is executed,when the contents are updated for this collection
-        //and this collection has focus,so 15 thumbnails are fetched.
-        HandleItemChanged();
-        iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount );
-        RemoveContextAndObserver();
-        AddContextAndObserverL();
-        }
-    else
-        {
-        //1.This loop is executed,when the contents are updated for this collection
-        //and this collection doesn't have the focus,so only one thumbnail is fetched.
-
-        //here we need to fetch only one item 
-        //1.if the content is deleted,then creating a context doesn't fetch the attributes
-        //2.if the content is added and the content is not the latest as per the sorted order of the
-        // media list,then the thumbnails are not fetched.
-        // so show the first available thumbnail in the media list.
-
-        HandleItemChanged();
-        UpdateDataL();
-
-        //Adding the context doesn't gaurantee we get a call back for
-        //Handle attributes available,if the latest item is already fetched.
-        //and for the content added for this collection,if it is not latest
-        //we will not recieve the attributes .so show the first available thumbnail 
-        //in the media list.if there is any new latest content added,the thumbnail will be 
-        //fetched and shown.
-
-        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-        RemoveContextAndObserver();
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::AddContextAndObserverL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::AddContextAndObserverL()
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::AddContextAndObserverL" );   
-    if(iMediaList)
-        {
-        iMediaList->AddMediaListObserverL( this );
-        iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal);
-        iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow); 
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::RemoveContextAndObserver
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::RemoveContextAndObserver()
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::RemoveContextAndObserver" );   
-    if(iMediaList)
-        {
-        iMediaList->RemoveMediaListObserver( this );
-        iMediaList->RemoveContext(iUriAttributeContext);
-        iMediaList->RemoveContext(iThumbnailAttributeContext);  
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::HandleError
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginCaptured::HandleError(TInt /*aError*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::HandleError" );    
-
-#ifdef _DEBUG
-    if(iMediaList)
-        {
-        TInt count=iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleError,count=%d",count);
-        for ( TInt i = 0; i < count ; i++ )
-            {
-            const TGlxMedia& item = iMediaList->Item( i );
-            TInt thumbnailError = GlxErrorManager::HasAttributeErrorL(
-                    item.Properties(), KGlxMediaIdThumbnail );
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginCaptured::HandleError,Error=%d ",thumbnailError);
-
-            }
-        }
-#endif
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginCaptured::Count
-// ---------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginCaptured::Count()
-    {
-    TRACER( "CGlxContentHarvesterPluginCaptured::Count" );    
-    TInt count = KErrNone;
-    if(iMediaList)
-        {
-        count = iMediaList->Count();
-        GLX_LOG_INFO1("GlxCHP:Captured::Count(%d)",count);
-        }
-    return count;
-    }
-//  End of File
-
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugindownloads.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,618 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Updates CPS storage for downloads collection
- *
- */
-
-// INCLUDE FILES
-
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <LiwServiceHandler.h>
-
-#include <glxuistd.h>
-#include <glxicons.mbg>   // Glx Icons
-#include <glxcollectionplugindownloads.hrh>
-#include <glxthumbnailattributeinfo.h>  // for KGlxMediaIdThumbnail
-#include <glxattributecontext.h>
-#include <glxthumbnailcontext.h>
-#include <glxtracer.h>
-#include <glxlog.h>         //  For Log
-#include <mglxmedialist.h>       // for MGlxMediaList
-#include <glxcollectiongeneraldefs.h>
-#include <glxgallery.hrh>               // for KGlxGalleryApplicationUid
-#include <glxmediaid.h>
-#include <glxerrormanager.h>      
-
-#include "glxcontentharvesterplugindownloads.h"
-#include "glxcontentharvesterplugin.hrh"
-#include "glxmapconstants.h"
-
-
-
-
-// ============================ MEMBER FUNCTIONS ==============================
-LOCAL_C TInt TimerCallbackL( TAny* aPtr )
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::TimerCallbackL" );
-    static_cast<CGlxContentHarvesterPluginDownloads*>(aPtr)->UpdateDataL();
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginDownloads::CGlxContentHarvesterPluginDownloads(
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin *aCHplugin )
-
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::CGlxContentHarvesterPluginDownloads" );
-    iCPSInterface = aCPSInterface;
-    SetCHPlugin(aCHplugin);
-    }
-
-// ----------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::ConstructL()
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::ConstructL" );
-
-    //Call the base class ConstructL,to create the default thumbnail
-    CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-    
-    iPeriodic = CPeriodic::NewL( CActive::EPriorityLow );
-   
-    iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-    iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-
-    //Register/Subscribe with matrix menu for the notifications 
-    GetInterfaceForNotificationL();
-    SetupPublisherL(KItemIndexDownloads);
-    RequestCpsNotificationL(KItemIndexDownloads);
-    HandleStateChangeL(KItemIndexDownloads);
-    }
-
-// ----------------------------------------------------------------------------
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginDownloads* CGlxContentHarvesterPluginDownloads::NewLC( 
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin *aCHplugin )
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::NewL" );
-    CGlxContentHarvesterPluginDownloads* self = new ( ELeave ) CGlxContentHarvesterPluginDownloads( aCPSInterface,aCHplugin );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginDownloads::~CGlxContentHarvesterPluginDownloads()
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::~CGlxContentHarvesterPluginDownloads" );
-
-    DestroyMedialist();
-    if ( iPeriodic )
-        {
-        iPeriodic->Cancel();
-        }
-    delete iPeriodic;
-
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::UpdateDataL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::UpdateDataL() 
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::UpdateDataL" );
-
-    if (!iMediaList)
-        {
-        return;
-        }
-
-    if (iMediaList->Count() && iPreviewItemCount.Count())
-        {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::UpdateDataL(),iProgressIndex=%d",iProgressIndex);
-        TInt ret = UpdateItem(iPreviewItemCount[iProgressIndex]);
-        if(ret != KErrNotFound)
-            {
-            //Updates the thumbnail in the collection 
-            UpdateDataInCPSL(ret);
-            }
-        else
-            {
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
-        }
-    else
-        {
-        // Show previous thumbnail until the new thumbnail is
-		// fecthed.Added this check to avoid flicker
-		if(iMediaList->Count() == 0)
-			{
-			//Don't Show the Thumbnail/Show nothing
-			GLX_LOG_INFO("CGlxContentHarvesterPluginDownloads::UpdateDataL() --O");
-			UpdateDataInCPSL(GetBitmapHandle());
-			}
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleNotifyL()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginDownloads::HandleNotifyL(
-        TInt /* aCmdId*/,
-        TInt/* aEventId */,
-        CLiwGenericParamList& /*aEventParamList*/,
-        const CLiwGenericParamList& /*aInParamList*/ )
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleNotifyL" );
-    HandleStateChangeL(KItemIndexDownloads);
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleItemChanged()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleItemChanged()
-    {
-    TRACER("CGlxContentHarvesterPluginDownloads::HandleItemChanged");
-
-    iProgressIndex = 0;
-    iPreviewItemCount.Reset();
-
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    if(iMediaList)  
-        {
-
-        TInt count = iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads:: HandleItemChanged ,count=%d",count);
-
-        TBool inFocus = IsFocused();
-        for(TInt aItemIndex = 0; aItemIndex < count; aItemIndex++)
-            {
-            const TGlxMedia& item = iMediaList->Item( aItemIndex );
-            const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-            if (value)
-                {
-                iPreviewItemCount.InsertInOrder(aItemIndex);
-                if(!inFocus)
-                    {
-                    //if the collection is not in Focus,retrive only one thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleItemChanged,Range=1,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-                else if(iPreviewItemCount.Count() == KPreviewThumbnailFetchCount ||
-                        iPreviewItemCount.Count() == count )
-                    {
-                    //if the collection is not in Focus,retrive 15 thumbnail and break
-                    GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleItemChanged,Range=15,aItemIndex=%d",aItemIndex);
-                    break;
-                    }
-
-                }
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::UpdateDataInCPSL()
-// ----------------------------------------------------------------------------
-//  
-void CGlxContentHarvesterPluginDownloads::UpdateDataInCPSL(TInt aHandle) 
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::UpdateDataInCPSL" );
-    //update data in CPS
-    _LIT(KExamplePluginPub,"photossuite");
-    _LIT(KContentActivation,"downloads");
-    _LIT(KContId1,"category1");
-
-    if(iCPSInterface && iMediaList )
-        {
-        CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC();
-        CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC();
-
-        FillInputListWithDataL(inParamList, KExamplePluginPub, KContentActivation , 
-                KContId1, aHandle);
-
-        iCPSInterface->ExecuteCmdL( KAdd,  *inParamList, *outParamList );
-        CleanupStack::PopAndDestroy(outParamList);
-        CleanupStack::PopAndDestroy(inParamList);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::UpdateItem()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginDownloads::UpdateItem(TInt aItemIndex)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::UpdateItem" );
-    const TGlxMedia& item = iMediaList->Item(aItemIndex);
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::UpdateItem,aItemIndex=%d ",aItemIndex);
-    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-    if (value)
-        {
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::UpdateItem,iProgressIndex=%d ",iProgressIndex);
-        iProgressIndex++;
-        if (iProgressIndex >= KPreviewThumbnailFetchCount || 
-                iProgressIndex >= iPreviewItemCount.Count() ||
-                iProgressIndex >= iMediaList->Count())
-            {
-            iProgressIndex = 0;
-            }
-        return value->iBitmap->Handle();
-        }
-    return KErrNotFound;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::ActivateL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::ActivateL( TBool aOn )
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::ActivateL" );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::ActivateL aOn =%d",aOn);
-    SetFocus(aOn);
-
-    if (IsMatrixMenuInForegroundL() && aOn && !iPeriodic->IsActive() )
-        {
-
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            //Update the rest of all the collections on receving the focus...
-            GetCHPlugin()->UpdatePlugins(aOn);          
-            }
-        else
-            {
-            //As the collection is not updated by the contentharvester plugin
-            //to update the thumbnails on the focus , need to call the below function
-            UpdatePreviewThumbnailListL();
-            }
-
-        iPeriodic->Start( KTimerInterval, 
-                KTimerInterval, 
-                TCallBack( TimerCallbackL, this ) );
-        }
-    else if ( !aOn )
-        {
-       if(!IsMatrixMenuInForegroundL())
-            {
-            //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode...
-            //Need to destroy all the collection's observers and context
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::ActivateL !aOn =%d and matrix not in foreground",aOn);
-            GetCHPlugin()->UpdatePlugins(aOn);
-            }
-        iPeriodic->Cancel();
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleItemAddedL
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleItemAddedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleMediaL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleMediaL(TInt /*aListIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleMediaL" );
-    } 
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleItemRemovedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleItemRemovedL(TInt /*aStartIndex*/, 
-        TInt /* aEndIndex */, MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleItemRemovedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleItemModifiedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleItemModifiedL(
-        const RArray<TInt>& /*aItemIndexes*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleItemModifiedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL(TInt aItemIndex, 
-        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL" );
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-
-    TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL =%d ",aItemIndex);
-    if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match ))
-        {
-        const TGlxMedia& item = aList->Item( aItemIndex );
-        const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-        if (value)
-            {
-            GLX_LOG_INFO("CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL Thumbnail is present ");
-            iPreviewItemCount.InsertInOrder(aItemIndex);
-
-            //if the collection on the matrix menu is not focused,then show only one thumbnail
-            if(!IsFocused())
-                {
-                GLX_LOG_INFO("CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL,one thumbnail fetched");
-                UpdateDataInCPSL( value->iBitmap->Handle());
-                //if one thumbnail is fetched,it is sufficent when the collection is not in focus.
-                //remove the observer as client need not listen to the callbacks
-                iMediaList->RemoveMediaListObserver( this );
-                }
-            else if (iPreviewItemCount.Count()  == KPreviewThumbnailFetchCount || 
-                    iPreviewItemCount.Count() == aList->Count() )
-                {
-                //if the PreviewItemCount  equals 15 or if it is eqaul to the total count
-                //remove the observer as client need not listen to the callbacks 
-                GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleAttributesAvailableL,media list count=%d",aList->Count());
-                iMediaList->RemoveMediaListObserver( this );
-                }
-            }//end of  check against value 
-        }//end of  attribute match
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleFocusChangedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleFocusChangedL(
-        NGlxListDefs::TFocusChangeType /*aType*/, 
-        TInt /*aNewIndex*/, 
-        TInt /*aOldIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleFocusChangedL" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleItemSelectedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleItemSelectedL(TInt /*aIndex*/, 
-        TBool /*aSelected*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleItemSelectedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleMessageL(const CMPXMessage& /*aMessage*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleMessageL" );
-    }   
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::DestroyMedialistL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::DestroyMedialist()
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::DestroyMedialist" );
-    if( iMediaList )
-        {
-        RemoveContextAndObserver();
-        
-        delete iUriAttributeContext;
-        iUriAttributeContext = NULL;
-        delete iThumbnailAttributeContext;
-        iThumbnailAttributeContext = NULL;
-        
-        iMediaList->Close();
-        iMediaList = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::CreateMedialistL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::CreateMedialistL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::CreateMedialistL" );
-    if(!iMediaList)
-        {
-        //if the collection is in focus then , create media list with context of 15 items else
-        // with context of single item.
-        if(IsFocused())
-            {
-            iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount ); 
-            }
-        else
-            {
-            iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-            }
-
-        iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
-                KGlxCollectionPluginDownloadsImplementationUid ),
-                iUriAttributeContext,iThumbnailAttributeContext);         
-       
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::UpdatePreviewThumbnailListL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::UpdatePreviewThumbnailListL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::UpdatePreviewThumbnailListL" );
-
-    //when there is an update of content in the collection
-    //this function is executed or when the collection recives the focus. 
-    if(!iMediaList)
-        {
-        //medis list is not created yet,create it.
-        CreateMedialistL( );
-        //This is called to show the preview thumbnails. If no thumbnails are
-        //present, display nothing 
-        UpdateDataL();
-        }
-    else if(IsFocused())
-        {
-        //1.This loop is executed,when the collection gets focus
-        //2.This loop is executed,when the contents are updated for this collection
-        //and this collection has focus,so 15 thumbnails are fetched.
-        HandleItemChanged();
-        iThumbnailIterator.SetRange( KPreviewThumbnailFetchCount );
-        RemoveContextAndObserver();
-        AddContextAndObserverL();
-        }
-    else
-        {
-        //1.This loop is executed,when the contents are updated for this collection
-        //and this collection doesn't have the focus,so only one thumbnail is fetched.
-
-        //here we need to fetch only one item 
-        //1.if the content is deleted,then creating a context doesn't fetch the attributes
-        //2.if the content is added and the content is not the latest as per the sorted order of the
-        // media list,then the thumbnails are not fetched.
-        // so show the first available thumbnail in the media list.
-
-        HandleItemChanged();
-        UpdateDataL();
-
-        //Adding the context doesn't gaurantee we get a call back for
-        //Handle attributes available,if the latest item is already fetched.
-        //and for the content added for this collection,if it is not latest
-        //we will not recieve the attributes .so show the first available thumbnail 
-        //in the media list.if there is any new latest content added,the thumbnail will be 
-        //fetched and shown.
-
-        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-        RemoveContextAndObserver();
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::AddContextAndObserverL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::AddContextAndObserverL()
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::AddRemoveContextAndObserverL" );   
-    if(iMediaList)
-        {
-        iMediaList->AddMediaListObserverL( this );
-        iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal);
-        iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::RemoveContextAndObserver
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::RemoveContextAndObserver()
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::RemoveContextAndObserver" );   
-    if(iMediaList)
-        {
-        iMediaList->RemoveMediaListObserver( this );
-        iMediaList->RemoveContext(iUriAttributeContext);
-        iMediaList->RemoveContext(iThumbnailAttributeContext); 
-        }
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::HandleError
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginDownloads::HandleError(TInt /*aError*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::HandleError" );    
-
-#ifdef _DEBUG
-    if(iMediaList)
-        {
-        TInt count=iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleError,count=%d",count);
-        for ( TInt i = 0; i < count ; i++ )
-            {
-            const TGlxMedia& item = iMediaList->Item( i );
-            TInt thumbnailError = GlxErrorManager::HasAttributeErrorL(
-                    item.Properties(), KGlxMediaIdThumbnail );
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginDownloads::HandleError,Error=%d ",thumbnailError);
-
-            }
-        }
-#endif
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginDownloads::Count
-// ---------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginDownloads::Count()
-    {
-    TRACER( "CGlxContentHarvesterPluginDownloads::Count" );    
-    TInt count = KErrNone;
-    if(iMediaList)
-        {
-        count = iMediaList->Count();
-        GLX_LOG_INFO1("GlxCHP:Downloads::Count(%d)",count);
-        }
-    return count;
-    }
-//  End of File
-
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginmonths.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,503 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Updates CPS storage for months collection
- *
- */
-
-// INCLUDE FILES
-
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <liwservicehandler.h>
-
-#include <glxuistd.h>
-#include <glxicons.mbg>   // Glx Icons
-#include <glxcollectionpluginmonths.hrh>
-#include <glxthumbnailattributeinfo.h>  // for KGlxMediaIdThumbnail
-#include <glxattributecontext.h>
-#include <glxthumbnailcontext.h>
-
-#include <glxtracer.h>
-#include <glxlog.h>
-#include <mglxmedialist.h>       // for MGlxMediaList
-#include <glxcollectiongeneraldefs.h>
-#include <glxgallery.hrh>               // for KGlxGalleryApplicationUid
-#include <glxmediaid.h>
-#include <glxerrormanager.h>    
-
-#include "glxcontentharvesterpluginmonths.h"
-#include "glxcontentharvesterplugin.hrh"
-#include "glxmapconstants.h"
-
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginMonths::CGlxContentHarvesterPluginMonths( 
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin *aCHplugin )
-
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::CGlxContentHarvesterPluginMonths" );
-    iCPSInterface = aCPSInterface;
-    SetCHPlugin(aCHplugin);
-    }
-
-// ----------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::ConstructL()
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::ConstructL" );
-
-    //Call the base class ConstructL to create default bitmap
-    CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-
-    iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-    iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-
-    //Register/Subscribe with matrix menu for the notifications 
-    GetInterfaceForNotificationL();
-    SetupPublisherL(KItemIndexMonths);
-    RequestCpsNotificationL(KItemIndexMonths);
-    HandleStateChangeL(KItemIndexMonths);
-    }
-
-// ----------------------------------------------------------------------------
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginMonths* CGlxContentHarvesterPluginMonths::NewLC( 
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin *aCHplugin )
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::NewL" );
-    CGlxContentHarvesterPluginMonths* self = new ( ELeave ) CGlxContentHarvesterPluginMonths( aCPSInterface,aCHplugin );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginMonths::~CGlxContentHarvesterPluginMonths()
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::~CGlxContentHarvesterPluginMonths" );
-    DestroyMedialist();
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::UpdateDataL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::UpdateDataL() 
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::UpdateDataL" );
-    
-    if (!iMediaList)
-        {
-        return;
-        }
-    
-    if (iMediaList->Count())
-        {
-        TInt ret = UpdateItem(KPreviewItemIndex);
-        if(ret != KErrNotFound)
-            {
-            //Updates the thumbnail in the collection 
-            UpdateDataInCPSL(ret);
-            }
-        }
-    else
-        {
-        // Show previous thumbnail until the new thumbnail is
-        // fecthed.Added this check to avoid flicker
-        if(!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0))
-        	{
-        	//Don't Show the Thumbnail/Show nothing
-        	GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::UpdateDataL() --O");
-        	UpdateDataInCPSL(GetBitmapHandle());
-        	}
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleNotifyL()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginMonths::HandleNotifyL(
-        TInt /* aCmdId*/,
-        TInt/* aEventId */,
-        CLiwGenericParamList& /*aEventParamList*/,
-        const CLiwGenericParamList& /*aInParamList*/ )
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleNotifyL" );
-    HandleStateChangeL(KItemIndexMonths);
-    return KErrNone;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::UpdateDataInCPSL()
-// ----------------------------------------------------------------------------
-// 
-void CGlxContentHarvesterPluginMonths::UpdateDataInCPSL(TInt aHandle) 
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::UpdateDataInCPSL" );
-    //update data in CPS
-    _LIT(KExamplePluginPub,"photossuite");
-    _LIT(KContTypeText,"months");
-    _LIT(KContId1,"category1");
-
-    if(iCPSInterface && iMediaList )
-        {
-        CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC();
-        CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC();
-
-        FillInputListWithDataL(inParamList, KExamplePluginPub, KContTypeText , 
-                KContId1, aHandle);
-
-        iCPSInterface->ExecuteCmdL( KAdd,  *inParamList, *outParamList );
-        CleanupStack::PopAndDestroy(outParamList);
-        CleanupStack::PopAndDestroy(inParamList);
-        }
-    } 
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::UpdateItem()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginMonths::UpdateItem(TInt aItemIndex)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::UpdateItem" );
-    const TGlxMedia& item = iMediaList->Item(aItemIndex);
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::UpdateItem,aItemIndex=%d ",aItemIndex);
-    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-    if (value)
-        {
-        return value->iBitmap->Handle();
-        }
-    return KErrNotFound;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::ActivateL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::ActivateL( TBool aOn )
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::ActivateL" );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::ActivateL aOn =%d",aOn);
-    SetFocus(aOn);
-
-    if (IsMatrixMenuInForegroundL() && aOn )
-        {
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            //Update the rest of all the collections on receving the focus...
-            GetCHPlugin()->UpdatePlugins(aOn);     
-            }
-        else
-            {
-            //As the collection is not updated by the contentharvester plugin
-            //to update the thumbnails on the focus , need to call the below function
-            UpdatePreviewThumbnailListL();
-            }
-        }
-    else if ( !aOn )
-        {
-          if(!IsMatrixMenuInForegroundL())
-            {
-            //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode...
-            //Need to destroy all the collection's observers and context
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::ActivateL !aOn =%d and matrix not in foreground",aOn);
-            GetCHPlugin()->UpdatePlugins(aOn);
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleItemAddedL
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleItemAddedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleMediaL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleMediaL(TInt /*aListIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleMediaL" );
-    } 
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleItemRemovedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleItemRemovedL(TInt /*aStartIndex*/, 
-        TInt /* aEndIndex */, MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleItemRemovedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleItemModifiedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleItemModifiedL(
-        const RArray<TInt>& /*aItemIndexes*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleItemModifiedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL(TInt aItemIndex, 
-        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL" );
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-
-    TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL =%d ",aItemIndex);
-    if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match ))
-        {
-        const TGlxMedia& item = aList->Item( aItemIndex );
-        const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-        if (value)
-            {
-            GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL Thumbnail is present ");
-
-			// Update the preview thumbnail
-			//remove the observer as client need not listen to the callbacks 
-                GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::HandleAttributesAvailableL,one thumbnail fetched");
-			UpdateDataInCPSL( value->iBitmap->Handle());           
-			iMediaList->RemoveMediaListObserver( this );
-            }//end of  check against value 
-        }//end of  attribute match
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleFocusChangedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleFocusChangedL(
-        NGlxListDefs::TFocusChangeType /*aType*/, 
-        TInt /*aNewIndex*/, 
-        TInt /*aOldIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleFocusChangedL" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleItemSelectedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleItemSelectedL(TInt /*aIndex*/, 
-        TBool /*aSelected*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleItemSelectedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleMessageL(const CMPXMessage& /*aMessage*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleMessageL" );
-    }   
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::DestroyMedialist
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::DestroyMedialist()
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::DestroyMedialist" );
-    if( iMediaList )
-        {
-        GLX_LOG_INFO("CGlxContentHarvesterPluginMonths::DestroyMedialist,media list deleted");
-        RemoveContextAndObserver();
-        
-        delete iUriAttributeContext;
-		iUriAttributeContext = NULL;
-		delete iThumbnailAttributeContext;
-		iThumbnailAttributeContext = NULL;
-		
-        iMediaList->Close();
-        iMediaList = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::CreateMedialistL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::CreateMedialistL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::CreateMedialistL" );
-    if(!iMediaList)
-        {
-		iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-
-        iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
-                KGlxCollectionPluginMonthsImplementationUid ), 
-                iUriAttributeContext,iThumbnailAttributeContext);
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::UpdatePreviewThumbnailListL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::UpdatePreviewThumbnailListL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::UpdatePreviewThumbnailListL" );
-
-    //when there is an update of content in the collection
-    //this function is executed or when the collection recives the focus. 
-    if(!iMediaList)
-        {
-        //media list is not created yet,create it.
-        CreateMedialistL( );
-        UpdateDataL();
-        }
-    else
-        {
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            ContainerCacheCleanupL(iMediaList);
-            }  
-
-	        //1.if the content is deleted,then creating a context doesn't fetch the attributes
-	        //2.if the content is added and the content is not the latest as per the sorted order of the
-	        // media list,then the thumbnails are not fetched.
-	        // so show the first available thumbnail in the media list.
-
-	        UpdateDataL();
-
-	        //Adding the context doesn't gaurantee we get a call back for
-	        //Handle attributes available,if the latest item is already fetched.
-	        //and for the content added for this collection,if it is not latest
-	        //we will not recieve the attributes .so show the first available thumbnail 
-	        //in the media list.if there is any new latest content added,the thumbnail will be 
-	        //fetched and shown.
-
-	        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-	        RemoveContextAndObserver();
-	        AddContextAndObserverL();
-			}
-	
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::AddContextAndObserverL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::AddContextAndObserverL()
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::AddRemoveContextAndObserverL" );   
-    if(iMediaList)
-        {
-        iMediaList->AddMediaListObserverL( this );
-        iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal);
-        iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow);  
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginAlbums::RemoveContextAndObserver
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::RemoveContextAndObserver()
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::RemoveContextAndObserver" );   
-    if(iMediaList)
-        {
-        iMediaList->RemoveMediaListObserver( this );
-        iMediaList->RemoveContext(iUriAttributeContext);
-        iMediaList->RemoveContext(iThumbnailAttributeContext);     
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::HandleError
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginMonths::HandleError(TInt /*aError*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::HandleError" );    
-
-#ifdef _DEBUG
-    if(iMediaList)
-        {
-        TInt count=iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleError,count=%d",count);
-        for ( TInt i = 0; i < count ; i++ )
-            {
-            const TGlxMedia& item = iMediaList->Item( i );
-            TInt thumbnailError = GlxErrorManager::HasAttributeErrorL(
-                    item.Properties(), KGlxMediaIdThumbnail );
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginMonths::HandleError,Error=%d ",thumbnailError);
-
-            }
-        }
-#endif
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginMonths::Count
-// ---------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginMonths::Count()
-    {
-    TRACER( "CGlxContentHarvesterPluginMonths::Count" );    
-    TInt count = KErrNone;
-    if(iMediaList)
-        {
-        count = iMediaList->Count();
-        GLX_LOG_INFO1("GlxCHP:Months::Count(%d)",count);
-        }
-    return count;
-    }
-//  End of File
-
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterpluginproxy.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  A Proxy file.
-*
-*/
-
-
-
-
-// INCLUDE FILES
-
-#include <ecom/implementationproxy.h>
-
-#include "glxcontentharvesterplugin.h"
-#include "glxcontentharvesterplugin.hrh"
-
-
-#if (!defined IMPLEMENTATION_PROXY_ENTRY)
-    typedef TAny* TProxyNewLPtr;
-#define IMPLEMENTATION_PROXY_ENTRY( aUid, aFuncPtr ) 
-             { { aUid },( TProxyNewLPtr )( aFuncPtr ) }
-#endif
-
-// ----------------------------------------------------------------------------
-// Map the interface UIDs to the implementation 
-// ----------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] =
-    {
-    IMPLEMENTATION_PROXY_ENTRY( KGlxCHPluginImplUid, CGlxContentHarvesterPlugin::NewL)
-    };
-
-// ----------------------------------------------------------------------------
-// ImplementationGroupProxy
-// Exported proxy for instantiation method resolution
-// ----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy*
-ImplementationGroupProxy(TInt& aTableCount)
-    {
-    
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    
-    return ImplementationTable;
-    }
-
-//  End of File
--- a/photosgallery/contentharvesterplugin/src/glxcontentharvesterplugintags.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,505 +0,0 @@
-/*
- * 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"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:    Updates CPS storage for all collection
- *
- */
-
-// INCLUDE FILES
-
-#include <mmf/common/mmfcontrollerpluginresolver.h>
-#include <liwservicehandler.h>
-
-#include <glxuistd.h>
-#include <glxicons.mbg>   // Glx Icons
-#include <glxcollectionplugintags.hrh>
-#include <glxthumbnailattributeinfo.h>  // for KGlxMediaIdThumbnail
-#include <glxattributecontext.h>
-#include <glxthumbnailcontext.h>
-#include <glxtracer.h>
-#include <glxlog.h>
-#include <mglxmedialist.h>       // for MGlxMediaList
-#include <glxcollectiongeneraldefs.h>
-#include <glxgallery.hrh>               // for KGlxGalleryApplicationUid
-#include <glxmediaid.h>
-#include <glxerrormanager.h>    
-
-#include "glxcontentharvesterplugintags.h"
-#include "glxcontentharvesterplugin.hrh"
-#include "glxmapconstants.h"
-
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginTags::CGlxContentHarvesterPluginTags( 
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin* aCHplugin )
-
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::CGlxContentHarvesterPluginTags" );
-    iCPSInterface = aCPSInterface;
-    SetCHPlugin(aCHplugin);
-    }
-
-// ----------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::ConstructL()
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::ConstructL" );
-
-    //Call the base class ConstructL to create default bitmap
-    CGlxContentHarvesterPluginBase::ConstructL(EMbmGlxiconsQgn_prop_image_notcreated);
-
-    iUriAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
-    iThumbnailAttributeContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator);
-
-    //Register/Subscribe with matrix menu for the notifications 
-    GetInterfaceForNotificationL();
-    SetupPublisherL(KItemIndexTags);
-    RequestCpsNotificationL(KItemIndexTags);
-    HandleStateChangeL(KItemIndexTags);
-    }
-
-// ----------------------------------------------------------------------------
-// Two-phased constructor.
-// ----------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginTags* CGlxContentHarvesterPluginTags::NewLC( 
-        MLiwInterface* aCPSInterface,
-        MGlxContentHarvesterPlugin* aCHplugin )
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::NewL" );
-    CGlxContentHarvesterPluginTags* self = new ( ELeave )CGlxContentHarvesterPluginTags( aCPSInterface,aCHplugin );
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxContentHarvesterPluginTags::~CGlxContentHarvesterPluginTags()
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::~CGlxContentHarvesterPluginTags" );
-
-    DestroyMedialist();
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::UpdateDataL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::UpdateDataL() 
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::UpdateDataL" );
-    
-    if (!iMediaList)
-        {
-        return;
-        }
-
-    if (iMediaList->Count())
-        {
-        TInt ret = UpdateItem(KPreviewItemIndex);
-        if (ret != KErrNotFound)
-            {
-            //Updates the thumbnail in the collection 
-            UpdateDataInCPSL(ret);
-            }
-        }
-    else
-        {
-        // Show previous thumbnail until the new thumbnail is
-        // fecthed.Added this check to avoid flicker
-        if (!GetCHPlugin()->IsRefreshNeeded() || (iMediaList->Count() == 0))
-            {
-            //Don't Show the Thumbnail/Show nothing
-            GLX_LOG_INFO("CGlxContentHarvesterPluginTags::UpdateDataL() --O");
-            UpdateDataInCPSL(GetBitmapHandle());
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleNotifyL()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginTags::HandleNotifyL(
-        TInt /* aCmdId*/,
-        TInt/* aEventId */,
-        CLiwGenericParamList& /*aEventParamList*/,
-        const CLiwGenericParamList& /*aInParamList*/ )
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleNotifyL" );
-    HandleStateChangeL(KItemIndexTags);
-    return KErrNone;
-    }
-
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::UpdateDataInCPSL()
-// ----------------------------------------------------------------------------
-//  
-void CGlxContentHarvesterPluginTags::UpdateDataInCPSL(TInt aHandle) 
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::UpdateDataInCPSL" );
-    //update data in CPS
-    _LIT(KExamplePluginPub,"photossuite");
-    _LIT(KContTypeText,"tags");
-    _LIT(KContId1,"category1");
-
-    if(iCPSInterface && iMediaList )
-        {
-        CLiwGenericParamList* inParamList = CLiwGenericParamList::NewLC();
-        CLiwGenericParamList* outParamList = CLiwGenericParamList::NewLC();
-
-        FillInputListWithDataL(inParamList, KExamplePluginPub, KContTypeText , 
-                KContId1, aHandle);
-
-        iCPSInterface->ExecuteCmdL( KAdd,  *inParamList, *outParamList );
-        CleanupStack::PopAndDestroy(outParamList);
-        CleanupStack::PopAndDestroy(inParamList);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::UpdateItem()
-// ----------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginTags::UpdateItem(TInt aItemIndex)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::UpdateItem" );
-    const TGlxMedia& item = iMediaList->Item(aItemIndex);
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::UpdateItem,aItemIndex=%d ",aItemIndex);
-    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-    if (value)
-        {
-        return value->iBitmap->Handle();
-        }
-    return KErrNotFound;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::ActivateL()
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::ActivateL( TBool aOn )
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::ActivateL" );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::ActivateL aOn =%d",aOn);
-    SetFocus(aOn);
-
-    if (IsMatrixMenuInForegroundL() && aOn )
-        {
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            //Update the rest of all the collections on receving the focus...
-            GetCHPlugin()->UpdatePlugins(aOn);     
-            }
-        else
-            {
-            //As the collection is not updated by the contentharvester plugin
-            //to update the thumbnails on the focus , need to call the below function
-            UpdatePreviewThumbnailListL();
-            }
-        }
-    else if ( !aOn )
-        {
-          if(!IsMatrixMenuInForegroundL())
-            {
-            //use case:Matrix Menu is exited, by entering into grid view,application view,capture mode...
-            //Need to destroy all the collection's observers and context
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::ActivateL !aOn =%d and matrix not in foreground",aOn);
-            GetCHPlugin()->UpdatePlugins(aOn);    
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleItemAddedL
-// ----------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleItemAddedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleMediaL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleMediaL(TInt /*aListIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleMediaL" );
-    } 
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleItemRemovedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleItemRemovedL(TInt /*aStartIndex*/, 
-        TInt /* aEndIndex */, MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleItemRemovedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleItemModifiedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleItemModifiedL(
-        const RArray<TInt>& /*aItemIndexes*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleItemModifiedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleAttributesAvailableL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleAttributesAvailableL(TInt aItemIndex, 
-        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleAttributesAvailableL" );
-    TSize gridIconSize = GetGridIconSize();
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,  gridIconSize.iWidth, gridIconSize.iHeight ) );
-
-    TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-
-    GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL =%d ",aItemIndex);
-    if (KErrNotFound != aAttributes.Find( thumbnailAttribute, match ))
-        {
-        const TGlxMedia& item = aList->Item( aItemIndex );
-        const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-        if (value)
-            {
-            GLX_LOG_INFO("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL Thumbnail is present ");
-
-			// Update the preview thumbnail
-			//remove the observer as client need not listen to the callbacks 
-                GLX_LOG_INFO("CGlxContentHarvesterPluginTags::HandleAttributesAvailableL,one thumbnail fetched");
-			UpdateDataInCPSL( value->iBitmap->Handle());           
-			iMediaList->RemoveMediaListObserver( this );
-            }//end of  check against value 
-        }//end of  attribute match
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleFocusChangedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleFocusChangedL(
-        NGlxListDefs::TFocusChangeType /*aType*/, 
-        TInt /*aNewIndex*/, 
-        TInt /*aOldIndex*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleFocusChangedL" );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleItemSelectedL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleItemSelectedL(TInt /*aIndex*/, 
-        TBool /*aSelected*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleItemSelectedL" );
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleMessageL(const CMPXMessage& /*aMessage*/, 
-        MGlxMediaList* /*aList*/)
-    {
-    // Do nothing
-    TRACER( "CGlxContentHarvesterPluginTags::HandleMessageL" );
-    }   
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::DestroyMedialist
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::DestroyMedialist()
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::DestroyMedialist" );
-    if( iMediaList )
-        {
-        GLX_LOG_INFO("CGlxContentHarvesterPluginTags::DestroyMedialist,media list deleted");
-        RemoveContextAndObserver();
-        
-        delete iUriAttributeContext;
-        iUriAttributeContext = NULL;
-        delete iThumbnailAttributeContext;
-        iThumbnailAttributeContext = NULL;
-        
-        iMediaList->Close();
-        iMediaList = NULL;
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::CreateMedialistL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::CreateMedialistL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::CreateMedialistL" );
-    if(!iMediaList)
-        {
-            iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-    
-        iMediaList = CreateMedialistAndAttributeContextL( TGlxMediaId( 
-        		KGlxTagCollectionPluginImplementationUid ),
-        		iUriAttributeContext, iThumbnailAttributeContext); 
-        
-        AddContextAndObserverL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::UpdatePreviewThumbnailListL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::UpdatePreviewThumbnailListL( )
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::UpdatePreviewThumbnailListL" );
-
-    //when there is an update of content in the collection
-    //this function is executed or when the collection recives the focus. 
-    if(!iMediaList)
-        {
-        //media list is not created yet,create it.
-        CreateMedialistL( );
-        UpdateDataL();
-        }
-    else
-        {        
-        if(GetCHPlugin()->IsRefreshNeeded())
-            {
-            ContainerCacheCleanupL(iMediaList);
-            }
-
-	        //1.if the content is deleted,then creating a context doesn't fetch the attributes
-	        //2.if the content is added and the content is not the latest as per the sorted order of the
-	        // media list,then the thumbnails are not fetched.
-	        // so show the first available thumbnail in the media list.
-
-	        UpdateDataL();
-
-	        //Adding the context doesn't gaurantee we get a call back for
-	        //Handle attributes available,if the latest item is already fetched.
-	        //and for the content added for this collection,if it is not latest
-	        //we will not recieve the attributes .so show the first available thumbnail 
-	        //in the media list.if there is any new latest content added,the thumbnail will be 
-	        //fetched and shown.
-
-	        iThumbnailIterator.SetRange( KSinglePreviewThumbnail );
-	        RemoveContextAndObserver();
-	        AddContextAndObserverL();
-			}
-	
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::AddContextAndObserverL
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::AddContextAndObserverL()
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::AddRemoveContextAndObserverL" );   
-    if(iMediaList)
-        {
-        iMediaList->AddMediaListObserverL( this );
-        iMediaList->AddContextL(iUriAttributeContext, KGlxFetchContextPriorityNormal);
-        iMediaList->AddContextL(iThumbnailAttributeContext, KGlxFetchContextPriorityLow); 
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::RemoveContextAndObserver
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::RemoveContextAndObserver()
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::RemoveContextAndObserver" );   
-    if(iMediaList)
-        {
-        iMediaList->RemoveMediaListObserver( this );
-        iMediaList->RemoveContext(iUriAttributeContext);
-        iMediaList->RemoveContext(iThumbnailAttributeContext); 
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::HandleError
-// ---------------------------------------------------------------------------
-//
-void CGlxContentHarvesterPluginTags::HandleError(TInt /*aError*/)
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::HandleError" );    
-
-#ifdef _DEBUG
-    if(iMediaList)
-        {
-        TInt count=iMediaList->Count();
-        GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleError,count=%d",count);
-        for ( TInt i = 0; i < count ; i++ )
-            {
-            const TGlxMedia& item = iMediaList->Item( i );
-            TInt thumbnailError = GlxErrorManager::HasAttributeErrorL(
-                    item.Properties(), KGlxMediaIdThumbnail );
-            GLX_LOG_INFO1("CGlxContentHarvesterPluginTags::HandleError,Error=%d ",thumbnailError);
-
-            }
-        }
-#endif
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxContentHarvesterPluginTags::Count
-// ---------------------------------------------------------------------------
-//
-TInt CGlxContentHarvesterPluginTags::Count()
-    {
-    TRACER( "CGlxContentHarvesterPluginTags::Count" );    
-    TInt count = KErrNone;
-    if(iMediaList)
-        {
-        count = iMediaList->Count();
-        GLX_LOG_INFO1("GlxCHP:Tags::Count(%d)",count);
-        }
-    return count;
-    }
-//  End of File
-
--- a/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/controllers/fetcher/src/glxfetchercontainer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -400,7 +400,7 @@
                 TMPXGeneralCategory  cat = item.Category();                  
                 TBool checkViewRights = (cat==EMPXImage);
 
-                if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights))
+                if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights))
                     {
                     iHgGrid->ItemL(aIndex).SetFlags(
                             CHgItem::EHgItemFlagsDrmRightsValid);
--- a/photosgallery/gallery/loc/photos.loc	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/gallery/loc/photos.loc	Wed Mar 31 21:31:03 2010 +0300
@@ -1018,6 +1018,11 @@
 //
 #define qtn_lgal_options_sort    "Sort by"
 
+// d:Pop-up displayed when a large amount of images/videos are inserted into the device. 
+// l:popup_note_wait_window
+// r:11.0
+#define qtn_lgal_refreshing_media_note "Refreshing your media"
+
 //-----------------------------------------------------------------------------
 // single line metapane strings
 //-----------------------------------------------------------------------------
--- a/photosgallery/gallery/rom/gallery.iby	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    (ROM) Image description file for Media gallery
-*
-*/
-
-
-
-
-#ifndef GLX_IBY
-#define GLX_IBY
-
-#include <data_caging_paths_for_iby.hrh>
-
-S60_APP_EXE( viewer.exe )
-// S60_APP_AIF_ICONS( ?myapp )
-// S60_APP_AIF_RSC( ?myapp )
-// SCALABLE_IMAGE( APP_BITMAP_DIR, APP_BITMAP_DIR, ?myapp )
-
-// DLLs
-// file=\epoc32\release\armv5\urel\viewer.exe 			sys\bin\viewer.exe
-// ABI_DIR\BUILD_DIR\?myapp_engine_1.dll        SHARED_LIB_DIR\?myapp_engine_1.dll
-// file=ABI_DIR\BUILD_DIR\?myapp_engine_2.dll        SHARED_LIB_DIR\?myapp_engine_2.dll
-
-// configuration files
-// data=\epoc32\data\c\private\?uid3\?inifile.ini    private\?uid3\?inifile.ini
-// data=\epoc32\data\c\private\?uid3\?datafile.dat   private\?uid3\?datafile.dat
-// data=DATAZ_\RESOURCE_FILES_DIR\?myapp.rsc         RESOURCE_FILES_DIR\?myapp.rsc
-data=\epoc32\data\z\private\10003a3f\import\apps\Viewer_reg.rsc private\10003a3f\import\apps\Viewer_reg.rsc
-data=DATAZ_\RESOURCE_FILES_DIR\Viewer_loc.Rsc RESOURCE_FILES_DIR\Viewer_loc.Rsc
-data=DATAZ_\RESOURCE_FILES_DIR\Viewer.Rsc RESOURCE_FILES_DIR\Viewer.Rsc
-//data=\epoc32\data\z\private\10003a3f\import\apps\Viewer_reg.rsc private\10003a3f\import\apps\Viewer_reg.rsc
-//data=\epoc32\data\z\resource\apps\Viewer_loc.Rsc resource\apps\Viewer_loc.Rsc
-//data=\epoc32\data\z\resource\apps\Viewer.Rsc resource\apps\Viewer.Rsc
-
-// AUTO-BITMAP must be used and only used for MBM-files for file
-// compression.  Example:
-AUTO-BITMAP=ZSYSTEM\apps\?myapp\?myapp.mbm  system\apps\?myapp\?myapp.mbm
-
-// ECOM plugin
-// ECOM_PLUGIN( ?myplugin.dll, ?myplugin.rsc )
-// DLLs that are also part of the plugin
-// file=ABI_DIR\BUILD_DIR\?myplugin_dll_1.dll        SHARED_LIB_DIR\?myplugin_dll_1.dll
-// file=ABI_DIR\BUILD_DIR\?myplugin_dll_2.dll        SHARED_LIB_DIR\?myplugin_dll_2.dll
-
-// STUB_SIS File
-data=ZSYSTEM\install\glxgallery_stub.SIS    System\Install\glxgallery_stub.SIS
-#endif // GLX_IBY
--- a/photosgallery/gallery/src/glxappui.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/gallery/src/glxappui.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -80,14 +80,6 @@
 const TInt KGlxMemoryForOOMFwk          = 1048576 ; // 1 MB
 const TInt KGlxThumbNailRepresentation    = 2;         // Thumbnail Representation; Could be 3 also 
 
-_LIT8( KPhotosCaptured, "Captured" );
-_LIT8( KPhotosMonths, "Months" );
-_LIT8( KPhotosTags, "Tags" );
-_LIT8( KPhotosAlbums, "Albums" );
-_LIT8( KPhotosAllValue,"Allcs");
-
-const TInt KCapturedAlbumId = 2 ;
-        
 /**
  * Start Delay for the periodic timer, in microseconds
  */
@@ -221,27 +213,10 @@
 		{
         case KGlxActivationCmdShowLastModified:
         case KGlxActivationCameraAlbum:
+        case KGlxActivationCmdShowAll:
             HandleActivationMessageL(aMessageParameters);
             break;
          
-        case KGlxActivationPhotosMenu:
-        case KGlxActivationCameraView:
-        case KGlxActivationMonthsView:
-        case KGlxActivationAlbumsView:
-        case KGlxActivationTagsView:
-        case KGlxActivationAllView:
-        	{
-            TApaTaskList taskList( iCoeEnv->WsSession() );
-        	TApaTask task = taskList.FindApp( TUid::Uid( KGlxGalleryApplicationUid ) );
-        	TApaTask taskForeGround = taskList.FindByPos(0); // get fopreground app
-	        if ( task.Exists() && task.ThreadId() != taskForeGround.ThreadId() )
-		        {
-                // No matter which collection is selected,
-                // Photos is running in background, bring to foreground
-                iEikonEnv->RootWin().SetOrdinalPosition(0);
-		        }
-        	}
-            break;
         default:
             //To prevent Continues Activation of the Same View; Same is Triggered in ProcessCommandParametersL
             HandleActivationMessageL(aMessageParameters);           
@@ -480,7 +455,7 @@
         HandleActivationMessageL( aData );
         }
 
-    // Introduced to fix bug EMJN-78GH6N. Rowland Cook 10/12/2007
+    // Introduced to fix bug EMJN-78GH6N. 
     if (0 != iEikonEnv->RootWin().OrdinalPosition())
         {
         iEikonEnv->RootWin().SetOrdinalPosition(0);
@@ -520,75 +495,28 @@
     switch ( msgUid.iUid )
         {
         case KGlxActivationCmdShowLastModified:
-            // Go to camera album full screen view
-            GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: show last modified");
+        case KGlxActivationCameraAlbum:
+        case KGlxActivationCmdShowAll:
+            {
+            // Go to All grid view
+            GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: All Grid View");
             // Send the command to reset the view
             ProcessCommandL(EGlxCmdResetView);
-            // Not using KGlxCollectionPluginCameraImplementationUid
             iNavigationalState->SetBackExitStatus(ETrue);
-            path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);            
-            path->AppendL(KCapturedAlbumId);
-            SetActivationParamL(KGlxActivationFullScreen);
+            path->AppendL(KGlxCollectionPluginAllImplementationUid);
+            }
             break;
 
-        case KGlxActivationCameraAlbum:
-            // Go to camera album tile view
-            GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: camera album");
-            iNavigationalState->SetBackExitStatus(ETrue);
-            path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
-            path->AppendL(KCapturedAlbumId);
-            break;
-
-        case KGlxActivationPhotosMenu:
-            // Open the main view
-            GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: photos menu");
-            break;
-            
-        case KGlxActivationAllView:
-            GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: Show all photos");
-            // Send the command to reset the view
-            ProcessCommandL(EGlxCmdResetView);
-            path->AppendL(KGlxCollectionPluginAllImplementationUid);            
-        	break;            
-
         default:
             GLX_LOG_INFO("CGlxAppUi::HandleActivationMessageL: unknown command");
-
-
-            if(0 == aData.CompareC(KPhotosCaptured))
-                {
-                path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
-				path->AppendL(KCapturedAlbumId);
-                }
-            else if(0 == aData.CompareC(KPhotosAllValue))
-                {
-                path->AppendL(KGlxCollectionPluginAllImplementationUid);
-                }
-            else if(0 == aData.CompareC(KPhotosMonths))
-                {
-                path->AppendL(KGlxCollectionPluginMonthsImplementationUid);
-                }
-            else if(0 == aData.CompareC(KPhotosAlbums))
-                {
-                path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
-                }
-            else if(0 == aData.CompareC(KPhotosTags))
-                {
-                path->AppendL(KGlxTagCollectionPluginImplementationUid);
-                }
-            else
-                {
-                User::Leave(KErrNotSupported);
-                }
-            iNavigationalState->SetBackExitStatus(ETrue);
-            break;
+            User::Leave(KErrNotSupported);
         }
     CleanupStack::PopAndDestroy(&stream);
     iNavigationalState->SetStartingLevel(path->Levels());
     iNavigationalState->NavigateToL( *path );
     CleanupStack::PopAndDestroy(path);
     
-    // Introduced to fix bug EMJN-78GH6N. Rowland Cook 10/12/2007
+    // Introduced to fix bug EMJN-78GH6N. 
     if (0 != iEikonEnv->RootWin().OrdinalPosition())
         {
         iEikonEnv->RootWin().SetOrdinalPosition(0);
--- a/photosgallery/gallery/src/glxdocument.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/gallery/src/glxdocument.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -110,7 +110,7 @@
 	// Reset old data
 	ResetDocument();    
 	iImageViewerInstance->SetImageFileHandleL(aFile);	
-	CleanupStack::PopAndDestroy(); // Close aFile
+	CleanupStack::PopAndDestroy( &aFile );
 	}
 
 // ----------------------------------------------------------------------------
--- a/photosgallery/help/inc/lgal.hlp.hrh	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/help/inc/lgal.hlp.hrh	Wed Mar 31 21:31:03 2010 +0300
@@ -39,5 +39,5 @@
 _LIT(KLGAL_HLP_ALL_FULLSCREEN, "LGAL_HLP_ALL_FULLSCREEN"); // 
 _LIT(KLGAL_HLP_ALBUM_FULLSCREEN, "LGAL_HLP_ALBUM_FULLSCREEN"); // 
 _LIT(KLGAL_HLP_TAGS_FULLSCREEN, "LGAL_HLP_TAGS_FULLSCREEN"); // 
-
+_LIT(KLGAL_HLP_IMAGE_VIEWER, "LGAL_HLP_IMAGE_VIEWER"); //
 #endif 
\ No newline at end of file
--- a/photosgallery/imgvwr/src/glxivwrdocument.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/imgvwr/src/glxivwrdocument.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -115,7 +115,7 @@
     // Make sure that aFile is closed in leave situation
     CleanupClosePushL( aFile );
     iImageViewerInstance->SetImageFileHandleL(aFile);	
-    CleanupStack::PopAndDestroy(); // Close aFile
+    CleanupStack::PopAndDestroy( &aFile );
     
     // Open the viewer
     static_cast<CGlxIVwrAppUi*>(iAppUi)->HandleOpenFileL();
--- a/photosgallery/inc/glxfiltergeneraldefs.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/inc/glxfiltergeneraldefs.h	Wed Mar 31 21:31:03 2010 +0300
@@ -78,7 +78,7 @@
 const TMPXAttributeData KGlxFilterGeneralMinCount = { KGlxFilterIdGeneral, EGlxFilterMinItemCount }; // TInt
 const TMPXAttributeData KGlxFilterGeneralItemId = { KGlxFilterIdGeneral, EGlxFilterContainsItem }; // TMPXItemId
 const TMPXAttributeData KGlxFilterGeneralExcludeAnimation = { KGlxFilterIdGeneral, EGlxFilterExcludeAnimation }; // TBool
-const TMPXAttributeData KGlxFilterGeneralLastCaptureDate = { KGlxFilterIdGeneral, EGlxFilterLastCaptureDate }; // TBool ?
+const TMPXAttributeData KGlxFilterGeneralLastCaptureDate = { KGlxFilterIdGeneral, EGlxFilterLastCaptureDate }; // TBool
 const TMPXAttributeData KGlxFilterGeneralThumbnailLoadability = { KGlxFilterIdGeneral, EGlxFilterThumbnailLoadability }; // TSize
 const TMPXAttributeData KGlxFilterGeneralMPXCollectionPath = { KGlxFilterIdGeneral, EGlxFilterMPXCollectionPath }; // CMPXCollectionPath
 const TMPXAttributeData KGlxFilterGeneralItemType = { KGlxFilterIdGeneral, EGlxFilterItemType }; // TGlxFilterItemType
@@ -87,6 +87,7 @@
 const TMPXAttributeData KGlxFilterGeneralOrigin = { KGlxFilterIdGeneral, EGlxFilterOrigin }; /// TGlxFilterOrigin
 const TMPXAttributeData KGlxFilterGeneralNoDRM = { KGlxFilterIdGeneral, EGlxFilterNoDRM }; /// TBool
 const TMPXAttributeData KGlxFilterGeneralNavigationalStateOnly = { KGlxFilterIdGeneral, 0x4000 }; /// TBool
+const TMPXAttributeData KGlxFilterGeneralMaxCount = { KGlxFilterIdGeneral, 0x8000 }; // TInt
 
 enum TGlxFilterSortOrder
     {
--- a/photosgallery/inc/glxfilterproperties.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/inc/glxfilterproperties.h	Wed Mar 31 21:31:03 2010 +0300
@@ -44,6 +44,7 @@
 				iContainsItem(0),
 				iExcludeAnimation(EFalse),
 				iLastCaptureDate(EFalse),
+				iMaxCount(KMaxTUint),
 				iThumbnailLoadability(0,0),
 				iPath(NULL),
 				iItemType(EGlxFilterVideoAndImages),
@@ -63,6 +64,7 @@
 	TGlxMediaId iContainsItem;
 	TBool iExcludeAnimation;
 	TBool iLastCaptureDate;
+	TInt iMaxCount;
 	TSize iThumbnailLoadability;
 	CMPXCollectionPath* iPath; 
 	TGlxFilterItemType iItemType;
--- a/photosgallery/inc/glxlogattribute.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/inc/glxlogattribute.h	Wed Mar 31 21:31:03 2010 +0300
@@ -250,6 +250,10 @@
 		{
 		attributeName.Append(_L8("KGlxFilterGeneralMinCount"));
 		}
+    else if (aAttribute == KGlxFilterGeneralMaxCount)
+        {
+        attributeName.Append(_L8("KGlxFilterGeneralMaxCount"));
+        }	
 	else if (aAttribute == KGlxFilterGeneralItemId)
 		{
 		attributeName.Append(_L8("KGlxFilterGeneralItemId"));
--- a/photosgallery/inc/photos.hlp.hrh	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/inc/photos.hlp.hrh	Wed Mar 31 21:31:03 2010 +0300
@@ -42,6 +42,7 @@
 _LIT(LGAL_HLP_ALL_FULLSCREEN,"LGAL_HLP_ALL_FULLSCREEN");
 _LIT(LGAL_HLP_DETAILS_VIEW,"LGAL_HLP_DETAILS_VIEW");
 _LIT(LGAL_HLP_FETCHER,"LGAL_HLP_FETCHER");
+_LIT(LGAL_HLP_IMAGE_VIEWER, "LGAL_HLP_IMAGE_VIEWER");
 
 #endif
 
--- a/photosgallery/logging/client/src/glxlogchunk.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/logging/client/src/glxlogchunk.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -152,7 +152,7 @@
 	// assign the addres to TInt
 	TUint32 new_value = reinterpret_cast< TUint32 >( aValue );
 	// ensure we're byte aligned - ARM requires 32 bit alignment to machine word
-	// boundary!!
+	// boundary
 	TInt remainder = new_value % KBytesInAWord;
 	if ( remainder > 0 )
 	    {
@@ -191,7 +191,7 @@
 	// assign the addres to TInt
 	TUint32 new_value = reinterpret_cast< TUint32 >( aValue );
 	// ensure we're byte aligned - ARM requires 32 bit alignment to machine word
-	// boundary!!
+	// boundary
     TInt remainder = new_value % KBytesInAWord;
 	if ( remainder > 0 )
 	    {
@@ -240,7 +240,7 @@
         // no id set, so reserve this for us and use this chunk
         iLogUtility.SetId( aId );
         }
-    // check if our id was there?
+    // check if our id was there
     else if( id != aId )
         {
         // not our chunk, try second chunk in read-write mode
@@ -397,10 +397,10 @@
     TPtr8 logEntryPtr( 0, 0 );
     TInt logEntrySize = 0;
     
-    // what's previously been logged to the file?
+    // Holds what's previously been logged to the file
     TUint8* lastLoggedAddress = aUtility.LastLoggedAddress();
     
-    // how much more has been added to the chunk?
+    // Holds how much more has been added to the chunk
     TUint8* currentAddress = aUtility.CurrentAddress();
     
     // write each of the chunk's logged entries to the file 
--- a/photosgallery/photossuite/bwins/dummyCu.def	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?E32Main@@YAHXZ @ 1 NONAME ; int E32Main(void)
-
--- a/photosgallery/photossuite/data/photos_items.xml	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,524 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<mm:content xmlns:mm="http://nokia.com/mmenu" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nokia.com/mmenu ../mmenuschema.xsd" genre="photossuite">
-
-   <!-- ALL ITEM -->
-	
-	<mm:item count="1" template="logical_template_6a" id="photossuite_allcs">
-	
-		<!-- QUERIES -->
-		
-		<mm:query namespace="cps_photos_publisher" service="Service.ContentPublishing" interface="IDataSource">
-			<mm:command mode="sync" name="GetList">
-				<mm:key name="type" type="string" value="cp_data"/>
-				<mm:key name="filter">
-					<mm:key name="publisher" type="string" value="photossuite"/>
-					<mm:key name="content_type" type="string" value="allcs"/>
-				</mm:key>
-				<mm:key name="sort_order" type="string" value="recent"/>
-			</mm:command>
-		</mm:query>
-		
-		<mm:query namespace="cps_photos_publisher1" service="Service.ContentPublishing" interface="IDataSource">
-			<mm:command mode="sync" name="GetList">
-				<mm:key name="type" type="string" value="cp_data"/>
-				<mm:key name="filter">
-					<mm:key name="publisher" type="string" value="photossuiteAllcs"/>
-						<mm:key name="content_type" type="string" value="allcs1"/>
-				</mm:key>
-				<mm:key name="sort_order" type="string" value="recent"/>
-			</mm:command>
-		</mm:query>
-		
-		<!-- NOTIFICATION REQUESTS -->
-		
-		<mm:notify_request service="Service.ContentPublishing" interface="IDataSource">
-	            <mm:command name="RequestNotification">
-	                <mm:key name="type" type="string" value="cp_data"/>
-	                <mm:key name="filter">
-	                <mm:key name="publisher" type="string" value="photossuite"/>
-					<mm:key name="content_type" type="string" value="allcs"/>
-	                </mm:key>
-	            </mm:command>
-		</mm:notify_request>
-		
-		<!-- OUTPUTS -->
-		
-		<!-- TITLE -->
-		
-		<mm:output alias="mul_title" type="string" value="photos_texts:R_LGAL_LIST_TITLE_ALL_NSERIES"/>
-		
-		<!-- SUBTITLE-->
-		
-		<mm:output alias="mul_detail">
-			<mm:text value="cps_photos_publisher1:results/[$index]/data_map/AllcsSubtitle"/>
-        </mm:output>
-		
-		<!--ICONS-->
-		
-		<mm:output alias="mul_icon">
-		   	<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/first_icon"></mm:image>
-		</mm:output>
-		
-		<mm:output alias="mul_icon_2">
-			<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/second_icon"></mm:image>
-		</mm:output>
-		
-		<mm:output alias="mul_icon_3">
-			<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/third_icon"></mm:image>
-		</mm:output>
-		
-		<!-- MENU ITEMS -->
-		
-		<mm:menuitem name="photos_texts:R_OPTIONS_HELP" event="custom:help" position="2" />		
-		
-		
-		<!-- EVENTS -->
-		
-		<mm:event event="key:select">
-			<mm:action service="Service.ActionHandler" interface="IDataAction">
-				<mm:command name="Execute">
-					<mm:key name="plugin_id" type="uid" value="0x10282E5F"/>
-					<mm:key name="data" type="map">
-						<mm:key name="type" type="string" value="launch_application"/>
-						<mm:key name="launch_method" type="string" value="message_with_tail"/>
-						<mm:key name="application_uid" type="integer" value="0x200009EE"/>
-						<mm:key name="additional_data" type="string8" value="Allcs"/>
-						<mm:key name="message_uid" type="integer" value="0x2000A7C1"/>
-					</mm:key>	
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="item:focus">
-			<mm:action service="Service.ContentPublishing" interface="IDataSource">
-				<mm:command name="Add">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="item">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="allcs"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="flag" type="integer" value="1"/>
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="item:unfocus">
-			<mm:action service="Service.ContentPublishing" interface="IDataSource">
-				<mm:command name="Add">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="item">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="allcs"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="flag" type="integer" value="0"/>
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="custom:help">
-			<mm:action service="Service.ActionHandler" interface="IDataAction">
-				<mm:command name="Execute">
-					<mm:key name="plugin_id" type="uid" value="0x2001B285"/>
-					<mm:key name="data">
-						<mm:key name="help_uid" type="integer64" value="0x200009EE"/>
-						<mm:key name="help_topic" type="string" value="LGAL_HLP_DOWNLOADS_GRID"/>
-					</mm:key>	
-				</mm:command>
-			</mm:action>
-		</mm:event>	
-		
-	</mm:item>
-	
-	<!-- MONTHS ITEM -->
-	
-	<mm:item count="1" template="logical_template_6a" id="photossuite_months">
-	
-		<!-- QUERIES -->
-		
-		<mm:query namespace="cps_photos_publisher" service="Service.ContentPublishing" interface="IDataSource">
-			<mm:command mode="sync" name="GetList">
-				<mm:key name="type" type="string" value="cp_data"/>
-				<mm:key name="filter">
-					<mm:key name="publisher" type="string" value="photossuite"/>
-					<mm:key name="content_type" type="string" value="months"/>
-				</mm:key>
-				<mm:key name="sort_order" type="string" value="recent"/>
-			</mm:command>
-		</mm:query>
-		
-		<mm:query namespace="cps_photos_publisher1" service="Service.ContentPublishing" interface="IDataSource">
-			<mm:command mode="sync" name="GetList">
-				<mm:key name="type" type="string" value="cp_data"/>
-				<mm:key name="filter">	
-					<mm:key name="publisher" type="string" value="photossuiteMonths"/>
-					<mm:key name="content_type" type="string" value="months1"/>
-				</mm:key>
-				<mm:key name="sort_order" type="string" value="recent"/>
-			</mm:command>
-		</mm:query>
-		
-		<!-- NOTIFICATION REQUESTS -->
-		
-		<mm:notify_request service="Service.ContentPublishing" interface="IDataSource">
-	            <mm:command name="RequestNotification">
-	                    <mm:key name="type" type="string" value="cp_data"/>
-	                    <mm:key name="filter">
-	                    <mm:key name="publisher" type="string" value="photossuite"/>
-						<mm:key name="content_type" type="string" value="months"/>
-	                    </mm:key>
-	            </mm:command>
-		</mm:notify_request>
-		
-		<!-- OUTPUTS -->
-		
-		<!-- TITLE-->
-		
-		<mm:output alias="mul_title" type="string" value="photos_texts:R_LGAL_LIST_TITLE_MONTHS_NSERIES"/>
-			
-		<!-- SUBTITLE-->
-		
-		<mm:output alias="mul_detail">
-			<mm:text value="cps_photos_publisher1:results/[$index]/data_map/MonthsSubtitle"/>
-        </mm:output>
-		
-		<!--ICONS-->
-	
-		<mm:output alias="mul_icon">
-		   	<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/first_icon"></mm:image>
-		</mm:output>
-		
-		<mm:output alias="mul_icon_2">
-			<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/second_icon"></mm:image>
-		</mm:output>
-		
-		<mm:output alias="mul_icon_3">
-			<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/third_icon"></mm:image>
-		</mm:output>
-		
-		<!-- MENU ITEMS -->
-	
-		<mm:menuitem name="photos_texts:R_OPTIONS_HELP" event="custom:help" position="2" />	
-		
-		<!-- EVENTS -->
-	
-		<mm:event event="key:select">
-			<mm:action service="Service.ActionHandler" interface="IDataAction">
-				<mm:command name="Execute">
-					<mm:key name="plugin_id" type="uid" value="0x10282E5F"/>
-					<mm:key name="data" type="map">
-						<mm:key name="type" type="string" value="launch_application"/>
-						<mm:key name="launch_method" type="string" value="message_with_tail"/>
-						<mm:key name="application_uid" type="integer" value="0x200009EE"/>
-						<mm:key name="additional_data" type="string8" value="Months"/>
-						<mm:key name="message_uid" type="integer" value="0x2000a769"/>
-					</mm:key>	
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="item:focus">
-			<mm:action service="Service.ContentPublishing" interface="IDataSource">
-				<mm:command name="Add">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="item">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="months"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="flag" type="integer" value="1"/>
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="item:unfocus">
-			<mm:action service="Service.ContentPublishing" interface="IDataSource">
-				<mm:command name="Add">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="item">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="months"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="flag" type="integer" value="0"/>
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event>	
-	
-	
-		<mm:event event="custom:help">
-			<mm:action service="Service.ActionHandler" interface="IDataAction">
-				<mm:command name="Execute">
-					<mm:key name="plugin_id" type="uid" value="0x2001B285"/>
-					<mm:key name="data">
-						<mm:key name="help_uid" type="integer64" value="0x200009EE"/>
-						<mm:key name="help_topic" type="string" value="LGAL_HLP_MONTH_LIST"/>
-					</mm:key>	
-				</mm:command>
-			</mm:action>
-		</mm:event>	
-			
-	</mm:item>
-	
-	<!-- ALBUMS ITEM -->
-	
-	<mm:item count="1" template="logical_template_6a" id="photossuite_albums">
-	
-		<!-- QUERIES -->
-		
-		<mm:query namespace="cps_photos_publisher" service="Service.ContentPublishing" interface="IDataSource">
-			<mm:command mode="sync" name="GetList">
-				<mm:key name="type" type="string" value="cp_data"/>
-				<mm:key name="filter">
-					<mm:key name="publisher" type="string" value="photossuite"/>
-					<mm:key name="content_type" type="string" value="albums"/>
-				</mm:key>
-				<mm:key name="sort_order" type="string" value="recent"/>
-			</mm:command>
-		</mm:query>
-		
-		
-		<mm:query namespace="cps_photos_publisher1" service="Service.ContentPublishing" interface="IDataSource">
-			<mm:command mode="sync" name="GetList">
-				<mm:key name="type" type="string" value="cp_data"/>
-				<mm:key name="filter">
-					<mm:key name="publisher" type="string" value="photossuiteAlbums"/>
-					<mm:key name="content_type" type="string" value="albums1"/>
-				</mm:key>
-				<mm:key name="sort_order" type="string" value="recent"/>
-			</mm:command>
-		</mm:query>
-		
-		<!-- NOTIFICATION REQUESTS -->
-		
-		<mm:notify_request service="Service.ContentPublishing" interface="IDataSource">
-	            <mm:command name="RequestNotification">
-	                    <mm:key name="type" type="string" value="cp_data"/>
-	                    <mm:key name="filter">
-	                        <mm:key name="publisher" type="string" value="photossuite"/>
-			   <mm:key name="content_type" type="string" value="albums"/>
-	                    </mm:key>
-	            </mm:command>
-		</mm:notify_request>
-		
-		<!-- OUTPUTS -->
-		
-		<!-- TITLE-->
-		
-		<mm:output alias="mul_title" type="string" value="photos_texts:R_LGAL_LIST_TITLE_ALBUMS_NSERIES"/>
-			
-		<!-- SUBTITLE-->
-		
-		<mm:output alias="mul_detail">
-			<mm:text value="cps_photos_publisher1:results/[$index]/data_map/AlbumsSubtitle"/>
-        </mm:output>
-		
-		<!--ICONS-->
-		
-		<mm:output alias="mul_icon">
-		   	<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/first_icon"></mm:image>
-		</mm:output>
-
-		<mm:output alias="mul_icon_2">
-			<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/second_icon"></mm:image>
-		</mm:output>
-		
-		<mm:output alias="mul_icon_3">
-			<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/third_icon"></mm:image>
-		</mm:output>
-		
-		<!-- MENU ITEMS -->
-
-		<mm:menuitem name="photos_texts:R_OPTIONS_HELP" event="custom:help" position="2" />			
-		
-		<!-- EVENTS -->
-		
-		<mm:event event="key:select">
-			<mm:action service="Service.ActionHandler" interface="IDataAction">
-				<mm:command name="Execute">
-					<mm:key name="plugin_id" type="uid" value="0x10282E5F"/>
-					<mm:key name="data" type="map">
-						<mm:key name="type" type="string" value="launch_application"/>
-						<mm:key name="launch_method" type="string" value="message_with_tail"/>
-						<mm:key name="application_uid" type="integer" value="0x200009EE"/>
-						<mm:key name="additional_data" type="string8" value="Albums"/>
-						<mm:key name="message_uid" type="integer" value="0x20007197"/>
-					</mm:key>	
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="item:focus">
-			<mm:action service="Service.ContentPublishing" interface="IDataSource">
-				<mm:command name="Add">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="item">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="albums"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="flag" type="integer" value="1"/>
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="item:unfocus">
-			<mm:action service="Service.ContentPublishing" interface="IDataSource">
-				<mm:command name="Add">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="item">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="albums"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="flag" type="integer" value="0"/>
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="custom:help">
-			<mm:action service="Service.ActionHandler" interface="IDataAction">
-				<mm:command name="Execute">
-					<mm:key name="plugin_id" type="uid" value="0x2001B285"/>
-					<mm:key name="data">
-						<mm:key name="help_uid" type="integer64" value="0x200009EE"/>
-						<mm:key name="help_topic" type="string" value="LGAL_HLP_ALBUM_LIST"/>
-					</mm:key>	
-				</mm:command>
-			</mm:action>
-		</mm:event>	
-		
-	</mm:item>
-	
-	<!-- TAGS ITEM -->
-	
-	<mm:item count="1" template="logical_template_6a" id="photossuite_tags">
-	
-		<!-- QUERIES -->
-		
-		<mm:query namespace="cps_photos_publisher" service="Service.ContentPublishing" interface="IDataSource">
-			<mm:command mode="sync" name="GetList">
-				<mm:key name="type" type="string" value="cp_data"/>
-				<mm:key name="filter">
-					<mm:key name="publisher" type="string" value="photossuite"/>
-					<mm:key name="content_type" type="string" value="tags"/>
-				</mm:key>
-				<mm:key name="sort_order" type="string" value="recent"/>
-			</mm:command>
-		</mm:query>
-		
-		
-		<mm:query namespace="cps_photos_publisher1" service="Service.ContentPublishing" interface="IDataSource">
-			<mm:command mode="sync" name="GetList">
-				<mm:key name="type" type="string" value="cp_data"/>
-				<mm:key name="filter">
-					<mm:key name="publisher" type="string" value="photossuiteTags"/>
-					<mm:key name="content_type" type="string" value="tags1"/>
-				</mm:key>
-				<mm:key name="sort_order" type="string" value="recent"/>
-			</mm:command>
-		</mm:query>
-		
-		<!-- NOTIFICATION REQUESTS -->
-		
-		<mm:notify_request service="Service.ContentPublishing" interface="IDataSource">
-	            <mm:command name="RequestNotification">
-	                    <mm:key name="type" type="string" value="cp_data"/>
-	                    <mm:key name="filter">
-	                    <mm:key name="publisher" type="string" value="photossuite"/>
-						<mm:key name="content_type" type="string" value="tags"/>
-	                    </mm:key>
-	            </mm:command>
-		</mm:notify_request>
-		
-		<!-- OUTPUTS -->
-		
-		<!-- TITLE -->
-		
-		<mm:output alias="mul_title" type="string" value="photos_texts:R_LGAL_LIST_TITLE_TAGS_NSERIES"/>
-				
-		<!-- SUBTITLE-->
-		
-		<mm:output alias="mul_detail">
-			<mm:text value="cps_photos_publisher1:results/[$index]/data_map/TagsSubtitle"/>
-        </mm:output>
-		
-		<!--ICONS-->
-		
-		<mm:output alias="mul_icon">
-		   	<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/first_icon"></mm:image>
-		</mm:output>
-		
-		<mm:output alias="mul_icon_2">
-			<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/second_icon"></mm:image>
-		</mm:output>
-		
-		<mm:output alias="mul_icon_3">
-			<mm:image bitmap="cps_photos_publisher:results/[$index]/data_map/third_icon"></mm:image>
-		</mm:output>
-		
-		<!-- MENU ITEMS -->
-		
-		<mm:menuitem name="photos_texts:R_OPTIONS_HELP" event="custom:help" position="2" />
-		
-		<!-- EVENTS -->
-		
-		<mm:event event="key:select">
-			<mm:action service="Service.ActionHandler" interface="IDataAction">
-				<mm:command name="Execute">
-					<mm:key name="plugin_id" type="uid" value="0x10282E5F"/>
-					<mm:key name="data" type="map">
-						<mm:key name="type" type="string" value="launch_application"/>
-						<mm:key name="launch_method" type="string" value="message_with_tail"/>
-						<mm:key name="application_uid" type="integer" value="0x200009EE"/>
-						<mm:key name="additional_data" type="string8" value="Tags"/>
-						<mm:key name="message_uid" type="integer" value="0x200071AE"/>
-					</mm:key>	
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="item:focus">
-			<mm:action service="Service.ContentPublishing" interface="IDataSource">
-				<mm:command name="Add">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="item">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="tags"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="flag" type="integer" value="1"/>
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="item:unfocus">
-			<mm:action service="Service.ContentPublishing" interface="IDataSource">
-				<mm:command name="Add">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="item">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="tags"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="flag" type="integer" value="0"/>
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event>
-		
-		<mm:event event="custom:help">
-			<mm:action service="Service.ActionHandler" interface="IDataAction">
-				<mm:command name="Execute">
-					<mm:key name="plugin_id" type="uid" value="0x2001B285"/>
-					<mm:key name="data">
-						<mm:key name="help_uid" type="integer64" value="0x200009EE"/>
-						<mm:key name="help_topic" type="string" value="LGAL_HLP_TAGS_BROWSER"/>
-					</mm:key>	
-				</mm:command>
-			</mm:action>
-		</mm:event>	
-			
-	</mm:item>
-	
-</mm:content>
--- a/photosgallery/photossuite/data/photossuite.rss	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Resource definitions for Photos Suite
-*
-*/
-
-NAME PHTS
-
-#include <eikon.rh>
-#include <avkon.loc>	
-#include <photos.loc>
-
-RESOURCE RSS_SIGNATURE { }
-RESOURCE TBUF { buf=""; }
-
-// from avkon.loc
-RESOURCE TBUF R_OPTIONS_OPEN                            { buf = qtn_options_open; }
-RESOURCE TBUF R_OPTIONS_HELP                            { buf = qtn_options_help; }
-
-// photos specific
-RESOURCE TBUF R_LGAL_TITLE_MAIN_VIEW                    { buf = qtn_lgal_title_main_view; }
-//RESOURCE TBUF R_LGAL_LIST_TITLE_CAPTURED_NSERIES        { buf = qtn_lgal_list_title_captured; }
-RESOURCE TBUF R_LGAL_LIST_TITLE_MONTHS_NSERIES	        { buf = qtn_lgal_list_title_months; }
-RESOURCE TBUF R_LGAL_LIST_TITLE_ALBUMS_NSERIES	        { buf = qtn_lgal_list_title_albums; }
-RESOURCE TBUF R_LGAL_LIST_TITLE_TAGS_NSERIES            { buf = qtn_lgal_list_title_tags; }
-//RESOURCE TBUF R_LGAL_LIST_TITLE_DOWNLOADS_NSERIES       { buf = qtn_lgal_list_title_downloads; }
-RESOURCE TBUF R_LGAL_LIST_TITLE_ALL_NSERIES             { buf = qtn_lgal_list_title_all; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_ONE_ALBUM_NSERIES      { buf = qtn_lgal_list_detail_one_alb; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_MULTI_ALBUMS_NSERIES   { buf = qtn_lgal_list_detail_multi_alb; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_ONE_TAG_NSERIES        { buf = qtn_lgal_list_detail_one_tag; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_MULTI_TAGS_NSERIES     { buf = qtn_lgal_list_detail_multi_tag; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_NO_TAGS_NSERIES        { buf = qtn_lgal_list_detail_no_tagged_items; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_ONE_ITEM_NSERIES       { buf = qtn_lgal_list_detail_one_item; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_MULTI_ITEMS_NSERIES    { buf = qtn_lgal_list_detail_multi_item; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_NO_ITEMS_NSERIES       { buf = qtn_lgal_list_detail_no_img_vid; }
-RESOURCE TBUF R_LGAL_LIST_DETAIL_MULTI_MONTHS_NSERIES   { buf = qtn_lgal_list_title_month_year; }
-
-
-
-// End of file
--- a/photosgallery/photossuite/data/suite.xml	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<mm:content xmlns:mm="http://nokia.com/mmenu" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://nokia.com/mmenu ../mmenuschema.xsd">
-    <mm:localization namespace="photos_texts" source="photossuite.rsc"/>
-    <mm:suite template="logical_template_3" type="list" genre="photossuite" title="photos_texts:R_LGAL_TITLE_MAIN_VIEW">
-	
-		<!--mm:event event="suite:load">
-			<mm:action service="Service.ContentPublishing" interface="IContentPublishing">
-				<mm:command name="ExecuteAction">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="filter">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="activation"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="action_trigger" type="string" value="activate"/>							
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event-->
-
-		<!--mm:event event="suite:unload">
-			<mm:action service="Service.ContentPublishing" interface="IContentPublishing">
-				<mm:command name="ExecuteAction">
-					<mm:key name="type" type="string" value="publisher"/>
-						<mm:key name="filter">
-							<mm:key name="publisher" type="string" value="photossuite"/>
-							<mm:key name="content_type" type="string" value="activation"/>
-							<mm:key name="content_id" type="string" value="default"/>
-							<mm:key name="action_trigger" type="string" value="deactivate"/>							
-						</mm:key>                    
-				</mm:command>
-			</mm:action>
-		</mm:event-->
-		
-	</mm:suite>
-</mm:content>
-
--- a/photosgallery/photossuite/eabi/dummyCu.def	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z7E32Mainv @ 1 NONAME
-
--- a/photosgallery/photossuite/group/bld.inf	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Build information file Photos Suite
-*
-*/
-
-
-
-
-#include <platform_paths.hrh>
-//#include <domain/applications/suitesmacros.hrh>
-
-PRJ_EXPORTS
-../rom/photossuite.iby CORE_APP_LAYER_IBY_EXPORT_PATH(photossuite.iby)
-../rom/photossuite_localization.iby LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(photossuite_localization.iby)
-
-//SUITE_EXPORT_PATH_WINSCW(../data/suite.xml,photossuite/suite.xml)
-//SUITE_EXPORT_PATH_ARMV5(../data/suite.xml,photossuite/suite.xml)
-//SUITE_EXPORT_PATH_WINSCW(../data/photos_items.xml,photossuite/photos_items.xml)
-//SUITE_EXPORT_PATH_ARMV5(../data/photos_items.xml,photossuite/photos_items.xml)
-
-../data/suite.xml /epoc32/release/winscw/udeb/z/private/101f4cd2/import/suites/photossuite/suite.xml
-../data/photos_items.xml /epoc32/release/winscw/udeb/z/private/101f4cd2/import/suites/photossuite/photos_items.xml
-
-../data/suite.xml /epoc32/data/z/private/101f4cd2/import/suites/photossuite/suite.xml
-../data/photos_items.xml /epoc32/data/z/private/101f4cd2/import/suites/photossuite/photos_items.xml
-
-
-PRJ_MMPFILES
-photossuite.mmp
-#ifndef SBSV2
-gnumakefile export_photossuite.mk
-#endif
-
-
-PRJ_EXTENSIONS
-#if defined(SBSV2) && defined(WINSCW)
-START EXTENSION general/copyheaderfile
-SRCFILE photossuite.rsg
-END
-#endif
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-// End of file
--- a/photosgallery/photossuite/group/export_photossuite.mk	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-#
-# Copyright (c) 2008 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"
-# which accompanies this distribution, and is available
-# at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#
-# Initial Contributors:
-# Nokia Corporation - initial contribution.
-#
-# Contributors:
-#
-# Description:    export makefile for Photos Suite
-#
-
-
-ifeq (WINS,$(findstring WINS, $(PLATFORM)))
-ZDIR=\epoc32\release\$(PLATFORM)\$(CFG)\Z
-else
-ZDIR=\epoc32\data\z
-endif
-
-
-FINAL :
-	@echo Exporting .rsg files...
-	perl -S ecopyfile.pl $(EPOCROOT)epoc32/include/photossuite.rsg $(EPOCROOT)epoc32/release/winscw/udeb/Z/resource/apps/photossuite.rsg
-
-    
-MAKMAKE FREEZE LIB CLEANLIB RESOURCE RELEASABLES CLEAN BLD SAVESPACE :
--- a/photosgallery/photossuite/group/photossuite.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Project definition file for Photos Suite
-*
-*/
-
-
-
-
-#include <platform_paths.hrh>
-#include <data_caging_paths.hrh>
-
-TARGET          dummyc.dll
-TARGETTYPE      dll
-
-UID             0x1000008d 0x200104E1
-CAPABILITY      CAP_GENERAL_DLL
-
-APP_LAYER_SYSTEMINCLUDE
-
-SOURCEPATH      ../src
-SOURCE          dummy.cpp
-
-SOURCEPATH      .
-SYSTEMINCLUDE         ../../gallery/loc							//Gallery Loc
-
-START RESOURCE  ../data/photossuite.rss
-HEADER
-TARGETPATH      APP_RESOURCE_DIR
-LANGUAGE_IDS
-END
-
-// End of file
--- a/photosgallery/photossuite/rom/photossuite.iby	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Image description file for Photos Suite
-*
-*/
-
-#ifndef photossuiteSUITE_IBY
-#define photossuiteSUITE_IBY
-
-
-data=\epoc32\data\Z\private\101F4CD2\import\suites\photossuite\suite.xml	      private\101F4CD2\import\suites\photossuite\suite.xml
-data=\epoc32\data\Z\private\101F4CD2\import\suites\photossuite\photos_items.xml	  private\101F4CD2\import\suites\photossuite\photos_items.xml
-
-
-#endif // photossuiteSUITE_IBY
-
-//  End of File  
\ No newline at end of file
--- a/photosgallery/photossuite/rom/photossuite_localization.iby	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Image description file for Photos Suite
-*
-*/
-
-#ifndef photossuiteSUITE_LOCALIZATION_IBY
-#define photossuiteSUITE_LOCALIZATION_IBY
-
-
-data=\epoc32\data\z\resource\apps\photossuite.rsc        resource\apps\photossuite.rsc
-data=\epoc32\include\photossuite.rsg                     resource\apps\photossuite.rsg
-
-#endif // photossuiteSUITE_LOCALIZATION_IBY
-
-//  End of File  
\ No newline at end of file
--- a/photosgallery/photossuite/src/dummy.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    dummy
-*
-*/
-
-
-
-
-#include <e32def.h>
-
-EXPORT_C int E32Main()
-{
-	return 0;
-}
--- a/photosgallery/rom/glxgallery.iby	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/rom/glxgallery.iby	Wed Mar 31 21:31:03 2010 +0300
@@ -72,7 +72,6 @@
 ECOM_PLUGIN( glxcollectionpluginmonths.dll, glxcollectionpluginmonths.rsc )
 
 ECOM_PLUGIN( glxcollectionpluginimageviewer.dll, glxcollectionpluginimageviewer.rsc )
-//ECOM_PLUGIN( glxthumbnailcomposerplugin.dll, glxthumbnailcomposerplugin.rsc )
 
 file=ABI_DIR\BUILD_DIR\glxlayouts.dll                           SHARED_LIB_DIR\glxlayouts.dll  
 file=ABI_DIR\BUILD_DIR\glxmedialists.dll                        SHARED_LIB_DIR\glxmedialists.dll
@@ -94,12 +93,10 @@
 file=ABI_DIR\BUILD_DIR\glxlistviewpluginbase.dll                SHARED_LIB_DIR\glxlistviewpluginbase.dll
 ECOM_PLUGIN( glxlistviewplugin.dll, glxlistviewplugin.rsc )
 
-
 file=ABI_DIR\BUILD_DIR\glxcommandhandlerbase.dll               SHARED_LIB_DIR\glxcommandhandlerbase.dll
 file=ABI_DIR\BUILD_DIR\glxzoomview.dll                          SHARED_LIB_DIR\glxzoomview.dll
 file=ABI_DIR\BUILD_DIR\glxmetadatadialog.dll                  SHARED_LIB_DIR\glxmetadatadialog.dll  
 
 data = \epoc32\data\Z\private\10202be9\200009EE.txt           	private\10202be9\200009EE.txt
-data = \epoc32\data\Z\private\10202be9\02000A09.txt           	private\10202be9\02000A09.txt
 
 #endif  // __GLXGALLERY_IBY__
--- a/photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/controlsrc/shweffectcontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -189,15 +189,15 @@
     // is it start view
     TShwEventStartView* viewEvent = 
         dynamic_cast<TShwEventStartView*>( aEvent );
-    // start transition?
+    // is it start transition
     TShwEventStartTransition* transEvent = 
         dynamic_cast<TShwEventStartTransition*>( aEvent );
-    // was it a pause or resume event?
+    // was it a pause or resume event
     TShwEventPause* pauseEvent = 
         dynamic_cast<TShwEventPause*>( aEvent );
     TShwEventResume* resumeEvent = 
         dynamic_cast<TShwEventResume*>( aEvent );
-    // or a navigation event?
+    // or was it a navigation event
     TShwEventNextImage* nextImageEvent = 
         dynamic_cast< TShwEventNextImage* >( aEvent );
     TShwEventPreviousImage* previousImageEvent =
@@ -464,7 +464,7 @@
         MShwEffect* currentEffect = iEffectManager.CurrentEffect();
         // remove the old layout
         iSplitter.RemoveLayout( iCurrentVisual );
-        // was this thumbnail succesfully loaded?
+        // check if this thumbnail was succesfully loaded
 		if ( iFailedThumbnailIndex == currentIndex )
 		    {
         	// set the temporary layout for default icon
@@ -545,7 +545,7 @@
 
     // remove old layout
     iSplitter.RemoveLayout( nextVisual );
-    // was the next thumbnail succesfully loaded?
+    // Check if the next thumbnail was succesfully loaded
 	if ( iFailedThumbnailIndex == nextIndex )
 	    {
 		TAlfTimedValue opacity(KMaxOpacity,0);
@@ -649,9 +649,8 @@
         }
     CleanupStack::PopAndDestroy( &effects );
 
-    // did user navigate while paused?
     if( iUserNavigated )
-        {
+        { // user navigated while paused
         // resume and cancel the transition timer for its next use
         // if user navigates while pause 
         // we never continue from transition so we need
--- a/photosgallery/slideshow/engine/controlsrc/shweventrouter.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/controlsrc/shweventrouter.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -78,7 +78,7 @@
 	// close the event array itself, this frees the memory
 	iEvents.Close();
 	// close the observer array itself, this frees the memory
-	// NOTE! we did not have ownership of the observers
+	// NOTE: we did not have ownership of the observers
 	iObservers.Close();
 	}
 
--- a/photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/controlsrc/shwtimercontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -122,10 +122,9 @@
 		// resume the timer
 		iTimer->Resume();
 		}
-	// was it next or previous image?
 	else if ( dynamic_cast< TShwEventNextImage* >( aEvent ) || 
 			  dynamic_cast< TShwEventPreviousImage* >( aEvent ) )
-	    {
+	    { // it was next or previous image
 	    GLX_LOG_INFO( "CShwTimerControl::NotifyL - TShwEventNext/PreviousImage" );
         // cancel the timer as we have moved to another image
         iTimer->Cancel();
--- a/photosgallery/slideshow/engine/controlsrc/shwviewcontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/controlsrc/shwviewcontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -143,10 +143,9 @@
 		// check if we are ok to go to start transition
         CheckAndSendStartTransitionL();
 		}
-	// was it next or previous image?
 	else if ( dynamic_cast< TShwEventNextImage* >( aEvent ) || 
 			  dynamic_cast< TShwEventPreviousImage* >( aEvent ) )
-		{
+		{// it was next or previous image
 		// user did navigate, reset the state flags
 		iReadyToAdvanceReceived = EFalse;
 		iReadyToViewReceived = EFalse;
@@ -154,19 +153,17 @@
 		iUserNavigated = ETrue;
 		iUserNavigatedWhilePaused = iPaused;
 		}
-	// pause event?
 	else if ( dynamic_cast< TShwEventPause* >( aEvent ) )
-		{
+		{ // pause event
 		// we are paused
 		iPaused = ETrue;
 		iUserNavigatedWhilePaused = EFalse;
 		}
-	// resume event?
 	else if ( dynamic_cast< TShwEventResume* >( aEvent ) )
-		{
+		{ // resume event
 		// we are not paused
 		iPaused = EFalse;
-		// did user navigate?
+		// Check if user did navigate
 		if( iUserNavigatedWhilePaused )
 			{
 			// reset the flag
--- a/photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/coresrc/shwplaybackfactory.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -358,7 +358,7 @@
     TRACER("CShwPlaybackFactory::CShwPlaybackFactoryImpl::CreateEffectsL");
 	GLX_LOG_INFO( "CShwPlaybackFactoryImpl::CreateEffectsL" );
 	aEffects.AppendL( CShwZoomAndPanEffect::NewLC() );
-	CleanupStack::Pop();
+	CleanupStack::Pop(); // CShwZoomAndPanEffect::NewLC()
 	aEffects.AppendL( CShwCrossFadeEffect::NewLC() );
-	CleanupStack::Pop();
+	CleanupStack::Pop(); // CShwCrossFadeEffect::NewLC()
     }
--- a/photosgallery/slideshow/engine/coresrc/shwsettingsmodel.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/coresrc/shwsettingsmodel.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -255,7 +255,7 @@
     CShwSettingsModel* self = new(ELeave) CShwSettingsModel();
     CleanupStack::PushL(self);
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
 	}
 
--- a/photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/coresrc/shwthumbnailcontext.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -62,7 +62,7 @@
     GLX_LOG_INFO("CShwThumbnailContext::ConstructL");
     // Create the high quality / slower context
     iHighQualityContext = CGlxThumbnailContext::NewL( this );
-    // Call both setdefault and add?
+    // Call both setdefault and add
     iHighQualityContext->SetDefaultSpec( iSize.iWidth, iSize.iHeight );
     iHighQualityContext->AddSpecForItemL( iSize.iWidth, iSize.iHeight,
         iCurrentIndex );
--- a/photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/coresrc/shwthumbnailloader.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -520,7 +520,7 @@
 	CShwThumbnailContext* context = FindContext( aItemIndex );
 	if( context )
 		{
-		// was there an error?
+		// Check if there was an error
 		TInt requestCount = context->RequestCountL( &iMedialist );
 		if ( requestCount == KErrNone )
 			{
@@ -641,7 +641,7 @@
 	// browse through all indexes ( count-1 -> 0 )
 	while ( index-- > 0 )
 		{
-		// does the index belong to the array?
+		// Check if the index belongs to the array
 		CShwThumbnailContext* context = iHighQualityContexts[ index ];
 		if ( context->Index() == aIndex )
 			{
@@ -735,7 +735,7 @@
     {
     TRACER("CShwThumbnailLoader::CShwThumbnailLoaderImpl::RemoveHighQualityContext");
     GLX_LOG_INFO1( "CShwThumbnailLoaderImpl::RemoveHighQualityContext %d", aIndex );
-	// Is there a context for this index?
+	// check if there is a context for this index
 	TInt arrayIndex = Find( aIndex );
 	if( KErrNotFound != arrayIndex )
 		{
--- a/photosgallery/slideshow/engine/coresrc/shwtimer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/coresrc/shwtimer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -163,7 +163,7 @@
 			{
             GLX_LOG_INFO1( "CShwTimer::Resume timeleft %d", iTimeLeft.Int() );
 			// start again, first for time left and after that with interval
-			// NOTE! cant use Start as it takes time as milliseconds in a TInt
+			// NOTE: cant use Start as it takes time as milliseconds in a TInt
 			// Get the current time
 			iTimeTimerExpires.HomeTime();
 			// Add the delay to determine the expiry time
--- a/photosgallery/slideshow/engine/effectsrc/shwcrossfadelayout.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/effectsrc/shwcrossfadelayout.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -84,7 +84,7 @@
 // -----------------------------------------------------------------------------
 // DoSetLayoutValues
 // -----------------------------------------------------------------------------
-void TShwCrossFadeLayout::DoSetLayoutValues( TGlxLayoutInfo& aInfo )
+void TShwCrossFadeLayout::DoSetLayoutValues( TGlxLayoutInfo& /*aInfo*/ )
 	{
 	TRACER("TShwCrossFadeLayout::DoSetLayoutValues");
 	GLX_LOG_INFO("TShwCrossFadeLayout::DoSetLayoutValues");
--- a/photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/effectsrc/shwdefaulteffectmanager.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -196,7 +196,7 @@
 	/// are cloned as needed
 	MShwEffect* clone = effect->CloneLC();
 	iAvailableEffects.AppendL( clone );
-	CleanupStack::Pop();
+	CleanupStack::Pop( clone );
 
     iEffects.Append( effect );
     iEffects.Append( clone );
--- a/photosgallery/slideshow/engine/effectsrc/shwzoomandpanlayout.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/effectsrc/shwzoomandpanlayout.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -201,7 +201,7 @@
 // -----------------------------------------------------------------------------
 // DoSetLayoutValues
 // -----------------------------------------------------------------------------
-void TShwZoomAndPanLayout::DoSetLayoutValues( TGlxLayoutInfo& aInfo )
+void TShwZoomAndPanLayout::DoSetLayoutValues( TGlxLayoutInfo& /*aInfo*/ )
 	{
 	// calculate new x size, current value from zoomedsize
 	TReal32 x_size = iZoomedSize.iWidth.Now();
--- a/photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwdefaulteffectmanager/t_cshwdefaulteffectmanager.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -51,8 +51,7 @@
 T_CShwDefaultEffectManager* T_CShwDefaultEffectManager::NewL()
     {
     T_CShwDefaultEffectManager* self = T_CShwDefaultEffectManager::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -60,9 +59,7 @@
     {
     T_CShwDefaultEffectManager* self = new( ELeave ) T_CShwDefaultEffectManager();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
@@ -122,10 +119,6 @@
     iDefaultEffectManager->AddEffectL( effect );  // takes ownership
     CleanupStack::Pop( effect );
 
-	// TRAP since we expect it to leave
-	//TRAPD( error, iDefaultEffectManager->CurrentEffect() );
-   // EUNIT_ASSERT_EQUALS_DESC( 
-   // 	NShwEngine::EIncorrectEffectIndex, error, "iEffects was not set");
 	// get effects info
    	TShwEffectInfo info = effect->EffectInfo();
 	// set effect order
@@ -140,12 +133,6 @@
 void T_CShwDefaultEffectManager::TestAddNullEffectL()
     {
     iDefaultEffectManager->AddEffectL( NULL );
-
-	// TRAP since we expect it to leave
-	//TRAPD( error, iDefaultEffectManager->CurrentEffect() );
-    //EUNIT_ASSERT_EQUALS_DESC( 
-    //	NShwEngine::EIncorrectEffectIndex, error, "iEffects was not set");
-
 	// create empty effect info
    	TShwEffectInfo info;
 	TInt error ;
@@ -189,122 +176,6 @@
     EUNIT_ASSERT( effect2 == iDefaultEffectManager->Effect( 2 ) );
     }
 
-/*
-void T_CShwDefaultEffectManager::TestProgrammedEffectL()
-    {
-    // Create two effects
-    T_MShwTestEffect* effect0 = new(ELeave) T_MShwTestEffect(0);
-    CleanupStack::PushL(effect0);
-    T_MShwTestEffect* effect1 = new(ELeave) T_MShwTestEffect(1);
-    CleanupStack::PushL(effect1);
-    
-    // Add the effects
-    iDefaultEffectManager->AddEffectL(effect0);  // takes ownership
-    iDefaultEffectManager->AddEffectL(effect1);  // takes ownership
-    
-    CleanupStack::Pop(2, effect0);
-    
-    // Specify programmed order
-    iDefaultEffectManager->SetEffectOrder(MShwEffectManager::EShwEffectOrderProgrammed);
-    
-    // Create the programmed order
-    RArray<MShwEffect*> programme;
-    CleanupClosePushL(programme);
-//    CleanupStack::PushL(&programme);
-    programme.AppendL(effect1);
-    programme.AppendL(effect0);
-    programme.AppendL(effect1);
-    
-    // Set the order
-    iDefaultEffectManager->SetProgrammedEffects(programme);
-    
-    // 
-    // Check the first effect
-    MShwEffect* inEffect = static_cast<MShwEffect*>(effect1);
-    MShwEffect* outEffect = iDefaultEffectManager->CurrentEffect();
-    EUNIT_ASSERT_EQUALS(inEffect, outEffect);
-   
-    inEffect = static_cast<MShwEffect*>(effect0); 
-    outEffect = iDefaultEffectManager->NextEffect(); 
-    EUNIT_ASSERT_EQUALS(inEffect, outEffect);
-
-    iDefaultEffectManager->ProceedToNextEffect();
-    
-    inEffect = static_cast<MShwEffect*>(effect1); 
-    outEffect = iDefaultEffectManager->NextEffect(); 
-    EUNIT_ASSERT_EQUALS(inEffect, outEffect);
-    
-    CleanupStack::PopAndDestroy(&programme);
-    }
- 
-    
-void T_CShwDefaultEffectManager::TestMultiProgrammedEffectL()
-    {
-    // Create two effects
-    T_MShwTestEffect* effect0 = new(ELeave) T_MShwTestEffect(0);
-    CleanupStack::PushL(effect0);
-    T_MShwTestEffect* effect1 = new(ELeave) T_MShwTestEffect(1);
-    CleanupStack::PushL(effect1);
-    T_MShwTestEffect* effect2 = new(ELeave) T_MShwTestEffect(2);
-    CleanupStack::PushL(effect2);
-    
-    // Add the effects
-    iDefaultEffectManager->AddEffectL(effect0);  // takes ownership
-    iDefaultEffectManager->AddEffectL(effect1);  // takes ownership
-    iDefaultEffectManager->AddEffectL(effect2);  // takes ownership
-    
-    CleanupStack::Pop(3, effect0);
-    
-    // Specify programmed order
-    iDefaultEffectManager->SetEffectOrder(MShwEffectManager::EShwEffectOrderProgrammed);
-    
-    // Create the programmed order
-    RArray<MShwEffect*> programme;
-    CleanupClosePushL(programme);
-//    CleanupStack::PushL(&programme);
-    programme.AppendL(effect2);
-    programme.AppendL(effect1);
-    programme.AppendL(effect0);
-    programme.AppendL(effect2);
-    programme.AppendL(effect1);
-    programme.AppendL(effect0); 
-       
-    // Set the order
-    iDefaultEffectManager->SetProgrammedEffects(programme);
-    
-    // 
-    // Check the effect order is retrieved as 2, 1, 0
-    MShwEffect* inEffect = static_cast<MShwEffect*>(effect2);
-    MShwEffect* outEffect = iDefaultEffectManager->CurrentEffect();
-    EUNIT_ASSERT_EQUALS(inEffect, outEffect);
-
-    inEffect = static_cast<MShwEffect*>(effect1); 
-    outEffect = iDefaultEffectManager->NextEffect(); 
-    EUNIT_ASSERT_EQUALS(inEffect, outEffect);
-    
-    iDefaultEffectManager->ProceedToNextEffect();
-       
-    inEffect = static_cast<MShwEffect*>(effect2); 
-    outEffect = iDefaultEffectManager->NextEffect(); 
-    EUNIT_ASSERT_EQUALS(inEffect, outEffect);
-    
-    iDefaultEffectManager->ProceedToNextEffect();
-       
-    inEffect = static_cast<MShwEffect*>(effect1); 
-    outEffect = iDefaultEffectManager->NextEffect(); 
-    EUNIT_ASSERT_EQUALS(inEffect, outEffect);
-    
-    iDefaultEffectManager->ProceedToNextEffect();
-       
-    inEffect = static_cast<MShwEffect*>(effect0); 
-    outEffect = iDefaultEffectManager->NextEffect(); 
-    EUNIT_ASSERT_EQUALS(inEffect, outEffect);    
-    iDefaultEffectManager->ProceedToNextEffect();
-       
-    CleanupStack::PopAndDestroy(&programme);
-    }
-*/    
-
 //  TEST TABLE
 EUNIT_BEGIN_TEST_TABLE(
     T_CShwDefaultEffectManager,
@@ -338,22 +209,6 @@
     "CShwDefaultEffectManager",
     "FUNCTIONALITY",
     SetupL, TestNextEffectL, Teardown )
-    
-/*    
-EUNIT_TEST(
-    "Programmed Effect Test",
-    "CShwDefaultEffectManager",
-    "CShwDefaultEffectManager",
-    "FUNCTIONALITY",
-    SetupL, TestProgrammedEffectL, Teardown )
-    
-EUNIT_TEST(
-    "Multi Prog Test",
-    "CShwDefaultEffectManager",
-    "CShwDefaultEffectManager",
-    "FUNCTIONALITY",
-    SetupL, TestMultiProgrammedEffectL, Teardown )
-*/    
 
 EUNIT_END_TEST_TABLE
 
--- a/photosgallery/slideshow/engine/tsrc/t_cshweffectcontrol/t_cshweffectcontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshweffectcontrol/t_cshweffectcontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -48,6 +48,7 @@
 	    User::Leave( aPanic );
 	    }
 	}
+
 // -----------------------------------------------------------------------------
 // <-- Stub for NShwEngine::Panic
 // -----------------------------------------------------------------------------
@@ -56,8 +57,7 @@
 T_CShwEffectControl* T_CShwEffectControl::NewL()
     {
     T_CShwEffectControl* self = T_CShwEffectControl::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -132,7 +132,8 @@
 	{
 	// need to clone the event since the caller goes out of scope
 	TInt error = iEvents.Append( aEvent->CloneLC() );
-	CleanupStack::Pop();
+	CleanupStack::Pop(); // aEvent->CloneLC()
+	
 	// check that append succeeded
 	if( error != KErrNone )
 		{
--- a/photosgallery/slideshow/engine/tsrc/t_cshweffects/t_cshweffects_dllmain.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshweffects/t_cshweffects_dllmain.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -32,14 +32,14 @@
 	{
 	// create the normal zoom and pan
 	MShwEffect* eff = CShwCrossFadeEffect::NewLC();
-	CleanupStack::Pop();
+	CleanupStack::Pop( eff );
 	return eff;
 	}
 
 MShwEffect* CreateZoomAndPanL()
 	{
 	MShwEffect* eff = CShwZoomAndPanEffect::NewLC();
-	CleanupStack::Pop();
+	CleanupStack::Pop( eff );
 	return eff;
 	}
 
--- a/photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshweventrouter/t_cshweventrouter.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -65,7 +65,7 @@
 T_CShwEventRouter* T_CShwEventRouter::NewL()
 	{
 	T_CShwEventRouter* self = T_CShwEventRouter::NewLC();
-	CleanupStack::Pop();
+	CleanupStack::Pop( self );
 	
 	return self;
 	}
@@ -195,9 +195,6 @@
 
 void T_CShwEventRouter::TestNestedEventsAndMultipleObserversL()
 	{
-//	EUNIT_GET_ALLOC_DECORATOR_FAILCOUNT_D( failurecount );
-//	EUNIT_PRINT( _L("Memory alloc %d"), failurecount );
-
 	// we want the notify to add 2 events during the notify calls so 3 events overall
 	iSendNewEventCount = 2;
 	// add us as observer twice
@@ -207,13 +204,13 @@
 	observers.AppendL( this );
 	// add the array of observers
 	iRouter->AddObserversL( observers.Array() );
-	CleanupStack::PopAndDestroy();
+	CleanupStack::PopAndDestroy( observers );
 	// add us as publisher
 	RPointerArray<MShwEventPublisher> publisher;
 	CleanupClosePushL( publisher );
 	publisher.AppendL( this );
 	iRouter->AddProducers( publisher.Array() );
-	CleanupStack::PopAndDestroy();
+	CleanupStack::PopAndDestroy( publisher );
 
 	T_TestEvent testEvent;
 	// set the event object pointer so that the notify can verify the event object
--- a/photosgallery/slideshow/engine/tsrc/t_cshwmusiccontrol/t_cshwmusiccontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwmusiccontrol/t_cshwmusiccontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -36,8 +36,7 @@
 T_CShwMusicControl* T_CShwMusicControl::NewL()
     {
     T_CShwMusicControl* self = T_CShwMusicControl::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -45,9 +44,7 @@
     {
     T_CShwMusicControl* self = new( ELeave ) T_CShwMusicControl;
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
@@ -80,7 +77,7 @@
 void T_CShwMusicControl::SendEventL(MShwEvent* aEvent)
 	{
 	iEvent = aEvent->CloneLC();
-	CleanupStack::Pop();
+	CleanupStack::Pop( iEvent );
 	}
 
 TBool gMusicOnCalled = EFalse;
--- a/photosgallery/slideshow/engine/tsrc/t_cshwplaybackfactory/t_cshwplaybackfactory.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwplaybackfactory/t_cshwplaybackfactory.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -178,8 +178,7 @@
 T_CShwPlaybackFactory* T_CShwPlaybackFactory::NewL()
     {
     T_CShwPlaybackFactory* self = T_CShwPlaybackFactory::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/slideshow/engine/tsrc/t_cshwsettingsmodel/t_cshwsettingsmodel.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwsettingsmodel/t_cshwsettingsmodel.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -35,8 +35,7 @@
 T_CShwSettingsModel* T_CShwSettingsModel::NewL()
     {
     T_CShwSettingsModel* self = T_CShwSettingsModel::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -44,7 +43,6 @@
     {
     T_CShwSettingsModel* self = new (ELeave) T_CShwSettingsModel();
     CleanupStack::PushL(self);
-
     self->ConstructL();
     return self;
     }
--- a/photosgallery/slideshow/engine/tsrc/t_cshwslideshowengine/t_cshwslideshowengine.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwslideshowengine/t_cshwslideshowengine.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -276,8 +276,7 @@
 T_CShwSlideshowEngine* T_CShwSlideshowEngine::NewL()
 	{
 	T_CShwSlideshowEngine* self = T_CShwSlideshowEngine::NewLC();
-	CleanupStack::Pop();
-
+	CleanupStack::Pop( self );
 	return self;
 	}
 
@@ -443,7 +442,7 @@
 	{
 	// got event so add a copy of it to the list 
 	TInt error = iEvents.Append( aEvent->CloneLC() );
-	CleanupStack::Pop();
+	CleanupStack::Pop(); // aEvent->CloneLC()
 	// check that append succeeded
 	if( error != KErrNone )
 		{
--- a/photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwtimercontrol/t_cshwtimercontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -33,8 +33,7 @@
 T_CShwTimerControl* T_CShwTimerControl::NewL()
     {
     T_CShwTimerControl* self = T_CShwTimerControl::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -42,9 +41,7 @@
     {
     T_CShwTimerControl* self = new( ELeave ) T_CShwTimerControl;
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
@@ -72,7 +69,7 @@
 	{
 	// need to clone the event since the caller goes out of scope
 	iEvent = aEvent->CloneLC();
-	CleanupStack::Pop();
+	CleanupStack::Pop( iEvent );
 	
 	// stop the scheduler loop if its started
 	if( iWait.IsStarted() )
--- a/photosgallery/slideshow/engine/tsrc/t_cshwviewcontrol/t_cshwviewcontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwviewcontrol/t_cshwviewcontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -45,8 +45,7 @@
 T_CShwViewControl* T_CShwViewControl::NewL()
     {
     T_CShwViewControl* self = T_CShwViewControl::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -83,7 +82,7 @@
 	{
 	// need to clone the event since the caller goes out of scope
 	iEvent = aEvent->CloneLC();
-	CleanupStack::Pop();
+	CleanupStack::Pop( iEvent );
 	}
 
 const TInt KTestTransitionDuration = 987;
--- a/photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/engine/tsrc/t_cshwzoomandpaneffect/t_cshwzoomandpaneffect.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -104,8 +104,7 @@
 T_CShwZoomAndPanEffect* T_CShwZoomAndPanEffect::NewL()
     {
     T_CShwZoomAndPanEffect* self = T_CShwZoomAndPanEffect::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -113,9 +112,7 @@
     {
     T_CShwZoomAndPanEffect* self = new( ELeave ) T_CShwZoomAndPanEffect();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
--- a/photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/view/group/shwslideshowviewplugin.mmp	Wed Mar 31 21:31:03 2010 +0300
@@ -130,5 +130,5 @@
 LIBRARY         remconinterfacebase.lib
 //LIBRARY 		hgcontextutility.lib 					// For Teleport
 LIBRARY			glxtvout.lib
-LIBRARY	   		harvesterclient.lib
+
 // End of File
--- a/photosgallery/slideshow/view/inc/shwslideshowview.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/view/inc/shwslideshowview.h	Wed Mar 31 21:31:03 2010 +0300
@@ -25,14 +25,13 @@
 #include <AknProgressDialog.h>
 #include <gestureobserver.h>
 #include <gesturehelper.h>
-#include <harvesterclient.h>
 #include "shwengineobserver.h"
 #include "shwmusicobserver.h"
 #include "shwconstants.h"
 #include "shwtickobserver.h"
 #include "shwgestureobserver.h"
 #include "gesturecontrol.h"
-
+#include "glxmmcnotifier.h"
 // FORWARD DECLARATIONS
 class CAlfEnv;
 class CAlfDisplay;
@@ -68,7 +67,7 @@
                                        public MProgressDialogCallback,
                                        public MShwTickObserver,
                                        public MShwGestureObserver,
-									   public MHarvesterEventObserver
+                                       public MStorageNotifierObserver
     {
     public:
 
@@ -145,12 +144,6 @@
     	 * @ref CGlxViewBase::DoViewDeactivate
     	 */	
         void DoViewDeactivate();
-   public:
-    // from MHarvesterEventObserver
-    void HarvestingUpdated( 
-                HarvesterEventObserverType aHEObserverType, 
-                HarvesterEventState aHarvesterEventState,
-                TInt aItemsLeft );
 
     private: // from MGlxMediaListObserver
 
@@ -320,7 +313,14 @@
          * Set the current Item to HDMI.
          */
         void SetItemToHDMIL();
-
+        /**
+         * HandleMMCInsertionL.
+         */
+        void HandleMMCInsertionL();
+        /**
+         * HandleMMCRemovalL.
+         */
+        void HandleMMCRemovalL();
 	public:
 	//to keep in track which of the command set is active/on top
 		enum TShwState
@@ -410,7 +410,12 @@
 	CShwMediaKeyUtility* iMediaKeyHandler;
 	CGlxHdmiController* iHdmiController;
 	TBool iHdmiActive;
-	RHarvesterClient iHarvesterClient;
+	CGlxMMCNotifier* iMMCNotifier;
+	TBool iMMCState;
+	TBool iIsForegrnd;
+	//to check if slideshow is paused in BG 
+	//and after that we are bringing to foreground
+	TBool iPrevNotInBackground;
     };
 
 #endif  // C_SHWSLIDESHOWVIEW_H
--- a/photosgallery/slideshow/view/src/shwgesturecontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/view/src/shwgesturecontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -123,7 +123,7 @@
 	TRACER("CShwGestureControl::HandleGestureL");
 	GLX_LOG_INFO1( "CShwGestureControl::HandleGestureL(%d)", aEvent.Code( MGestureEvent::EAxisBoth ));
 
-	// No one is listening? Do not resolve the events for the listeners! 
+	// No one is listening, Do not resolve the events for the listeners 
 	if (iObservers.Count() > 0)
 	    {
         MShwGestureObserver::TShwGestureEventType aType  = MShwGestureObserver::ENoEvent;
--- a/photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/view/src/shwslideshowbacklighttimer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -84,14 +84,14 @@
 	GLX_LOG_ENTRY_EXIT("CShwSlideshowBackLightTimer::ConstructL");
 	
     CRepository* lightsRepo = CRepository::NewLC( KCRUidPeripheralSettings );
-    // What's the timeout value (in seconds ) for the display light?
+    // Get display light's timeout value (in seconds ) 
     lightsRepo->Get( KSettingsDisplayLightsTimeout, iSettingsDelay );
     GLX_LOG_INFO1("CShwSlideshowBackLightTimer, lights timeout = %d",
         iSettingsDelay );
     CleanupStack::PopAndDestroy( lightsRepo );
     
     CRepository* scrSaverRepo = CRepository::NewLC( KCRUidPersonalizationSettings );
-    // What's the screen saver's timeout value (in seconds)?
+    // Get screen saver's timeout value (in seconds)
     TInt screenSaverTimeout = 0;
     scrSaverRepo->Get( KSettingsScreenSaverPeriod, screenSaverTimeout );
     GLX_LOG_INFO1("CShwSlideshowBackLightTimer, scr saver timeout = %d",
@@ -101,7 +101,7 @@
     // Take the smaller of the two timeout values
     iSettingsDelay = Min( iSettingsDelay, screenSaverTimeout );
     
-    // Set the timeout delay to minimum value as it can not be zero!
+    // Set the timeout delay to minimum value as it can not be zero
     if (iSettingsDelay == 0)
         {
         iSettingsDelay = KMinTimeoutDelay;
--- a/photosgallery/slideshow/view/src/shwslideshowkeyhandler.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/view/src/shwslideshowkeyhandler.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -148,9 +148,9 @@
                 // match the view id to the active view (e.g. the tile view)
                 //@todo-check
                 //iScreenFurniture.DisableSystemSkinL( iViewId.iUid,
-                //    CGlxScreenFurniture::EGlxSfItemLeftSoftkey, EFalse );
+                //    CGlxScreenFurniture::EGlxSfItemLeftSoftkey, EFalse )
                 //iScreenFurniture.DisableSystemSkinL( iViewId.iUid,
-                //    CGlxScreenFurniture::EGlxSfItemRightSoftkey, EFalse );
+                //    CGlxScreenFurniture::EGlxSfItemRightSoftkey, EFalse )
                 // Note that in practice it doesn't matter whether we return
                 // EKeyWasConsumed or EKeyWasNotConsumed as the result is
                 // the same (we still get back to the last view). This is due to
--- a/photosgallery/slideshow/view/src/shwslideshowview.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/view/src/shwslideshowview.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -35,8 +35,6 @@
 #include <alf/alfutil.h>
 #include <alf/alfroster.h>
 
-//Hg 
-//#include <hg/hgcontextutility.h>
 #include <glxhdmicontroller.h>
 #include <glxresourceutilities.h>               // for CGlxResourceUtilities
 #include <glxresolutionutility.h>               // for CGlxResolutionUtility
@@ -80,7 +78,7 @@
     const TInt KShwGestureControlGroupId = 2;
     const TInt KGestureControlGroupId = 44;
     //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);
+    //6 = 5(iterator value in forward or backward direction for fullscreen) + 1(focus index)
     const TInt KSlideShowIterator = 2; 
     //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))
@@ -124,8 +122,11 @@
     {
     TRACER("CShwSlideshowView::~CShwSlideshowView");
   	GLX_LOG_INFO( "CShwSlideshowView::~CShwSlideshowView()" );
-  	iHarvesterClient.Close();
-    // delete media list population call back
+  	
+  	delete iMMCNotifier;
+  	iMMCNotifier = NULL;
+  	
+  	// delete media list population call back
     delete iPopulateListCallBack;
     
     // delete engine async starter
@@ -314,12 +315,8 @@
 	// Glx view base construction
     ViewBaseConstructL();
     
-	TInt err = iHarvesterClient.Connect();
-	GLX_LOG_INFO1("iHarvesterClient.Connect() err = %d",err);
-	if(err == KErrNone)
-		{
-        iHarvesterClient.AddHarvesterEventObserver(*this, EHEObserverTypeMMC, 1000);
-		}
+    iMMCNotifier = CGlxMMCNotifier::NewL(*this);
+    
     // Create async engine starter with standard priority
 	iAsyncCallBack = new( ELeave ) CAsyncCallBack( CActive::EPriorityStandard );
 
@@ -336,7 +333,7 @@
         	  KShwDefaultDelayMicroSeconds );
     // Create a control group for the volume control
     iVolumeControlGroup = &iEnv->NewControlGroupL( KVolumeControlGroupId );
-    // doc says the following takes ownership, but reality is different!
+    // doc says the following takes ownership, but reality is different
 	iVolumeControlGroup->AppendL( iVolumeControl );
 	
     iGestureControlGroup = &iEnv->NewControlGroupL( KShwGestureControlGroupId );
@@ -348,7 +345,7 @@
 	GestureHelper::CGestureControl* gestureControl = GestureHelper::CGestureControl::NewLC( 
             *iShwGestureControl, *iEnv, *iDisplay, KGestureControlGroupId );
     iGestureControl = gestureControl;
-    CleanupStack::Pop( gestureControl ); // doc says the following takes ownership, but reality is different!
+    CleanupStack::Pop( gestureControl ); // doc says the following takes ownership, but reality is different
 	iGestureControlGroup->AppendL( iGestureControl );
 
 	// Need a mechanism to distinguish when we receive the MusicVolume 
@@ -384,11 +381,18 @@
     {
     TRACER("CShwSlideshowView::HandleForegroundEventL");
   	GLX_LOG_INFO( "CShwSlideshowView::HandleForegroundEventL()" );
-
+	iIsForegrnd = aForeground;
     if( aForeground )
         {
         // we gained the foreground
-        iPauseHandler->SwitchToForegroundL();
+        if(iMMCState && iPrevNotInBackground)
+            {
+            ProcessCommandL(EAknSoftkeyClose);
+            }
+        else
+            {
+            iPauseHandler->SwitchToForegroundL();
+            }
         }
     else
         {
@@ -535,8 +539,8 @@
     iBackLightTimer->Cancel();
 
 
-    //Stop the slideshow!
-    //NOTE! this needs to be done before the list is closed as the 
+    //Stop the slideshow
+    //NOTE: this needs to be done before the list is closed as the 
     //destructor removes the engine as medialist observer and also
     //removes the contexts from the list
     delete iEngine;
@@ -1020,7 +1024,7 @@
         // nothing selected, so determine which item has focus in the original list
         focusIndex = iMediaList->FocusIndex();
         const TGlxMedia& mediaItem = iMediaList->Item( focusIndex );
-        // is this item in the filtered list?
+        // Check if this item is in the filtered list
         TGlxIdSpaceId spaceId = iMediaList->IdSpaceId( focusIndex );
         focusIndex = iFilteredList->Index( spaceId, mediaItem.Id() );
         if ( focusIndex == KErrNotFound )
@@ -1271,8 +1275,7 @@
     // then dont SetImageToHDMI :)  
     if( ( KErrNotFound == focusIndex)
             || (0 == iFilteredList->Count())
-            || (NULL == iHdmiController)
-            || (!iHdmiController->IsHDMIConnected())) 
+            || (NULL == iHdmiController)) 
         {
         GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - Cant Set Image To HDMI");
         return;
@@ -1289,17 +1292,13 @@
             && (error == KErrNone) )
         {
         GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - CGlxHdmi - Setting the Image");
-        TInt frameCount(0);
-        TSize orignalSize;
-        item.GetFrameCount(frameCount);
-        item.GetDimensions(orignalSize);
-        iHdmiController->SetImageL(item.Uri(), orignalSize, frameCount);
+        iHdmiController->SetImageL(item.Uri());
         }
     else
         {
         GLX_LOG_INFO("CShwSlideshowView::SetImageToHDMIL - Unsupported Item");
         //Set the external display to cloning mode if
-        //the current item is something we wont support (e.g. video, corrupted item);
+        //the current item is something we wont support (e.g. video, corrupted item)
         iHdmiController->ItemNotSupported();
         }
     }
@@ -1346,18 +1345,30 @@
     }
 
 // ---------------------------------------------------------------------------
-// HarvestingUpdated
 // 
+// HandleMMCInsertionL
 // ---------------------------------------------------------------------------
 //
-void CShwSlideshowView::HarvestingUpdated( 
-                HarvesterEventObserverType HarvestingUpdated, 
-                HarvesterEventState aHarvesterEventState,
-                TInt aItemsLeft )
+void CShwSlideshowView::HandleMMCInsertionL()
     {
-    TRACER("CShwSlideshowView::HarvestingUpdated()");
-    if(HarvestingUpdated == EHEObserverTypeMMC)
+    TRACER("CShwSlideshowView::HandleMMCInsertionL()");
+    iMMCState = ETrue;
+    iPrevNotInBackground = iIsForegrnd;
+    if(iIsForegrnd)
         {
         ProcessCommandL(EAknSoftkeyClose);
         }
     }
+
+// ---------------------------------------------------------------------------
+// 
+// HandleMMCRemovalL
+// ---------------------------------------------------------------------------
+//
+void CShwSlideshowView::HandleMMCRemovalL()
+    {
+    TRACER("CShwSlideshowView::HandleMMCRemovalL()");
+    ProcessCommandL(EAknSoftkeyExit);
+    }
+
+
--- a/photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/slideshow/view/src/shwslideshowvolumecontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -296,7 +296,7 @@
 // NotifyControlVisibility
 // ---------------------------------------------------------------------------
 void CShwSlideshowVolumeControl::NotifyControlVisibility( TBool aIsVisible,
-    CAlfDisplay& aDisplay )
+    CAlfDisplay& /*aDisplay*/ )
 	{	
 	TRACER("CShwSlideshowVolumeControl::NotifyControlVisibility");
     GLX_LOG_ENTRY_EXIT
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmedialistcommandhandler.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -177,12 +177,6 @@
         	    if ( IsSupported( item.iCommandId ) )
         	        {
         	        TBool isDisabled = IsDisabledL(item.iCommandId, MediaList());
-        	        
-        	        if( !isDisabled && 
-        	            iCurrentViewingState == TCommandInfo::EViewingStateView )
-        	            {
-                        //isDisabled = sf.IsActivePaletteItemVisible( item.iCommandId );
-        	            }
         	        // Check visibility of the menu item
     				aMenuPane->SetItemDimmed( item.iCommandId, isDisabled);
     				
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/src/glxmpxcommandcommandhandler.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -66,14 +66,8 @@
 EXPORT_C CGlxMpxCommandCommandHandler::~CGlxMpxCommandCommandHandler()
 	{
     TRACER("CGlxMpxCommandCommandHandler::~CGlxMpxCommandCommandHandler");
-	// cancel command if running
-	if (iProgressComplete)
-	    {
-//    	MediaList().Cancel();
-	    }
-	    
+
     delete iProgressDialog;
-
     if ( iResourceOffset )
         {
         CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
--- a/photosgallery/viewframework/commandhandlers/commandhandlerbase/tsrc/ut_cglxmedialistcommandhandler/src/ut_cglxmedialistcommandhandler.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerbase/tsrc/ut_cglxmedialistcommandhandler/src/ut_cglxmedialistcommandhandler.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -244,8 +244,7 @@
 UT_CGlxMediaListCommandHandler* UT_CGlxMediaListCommandHandler::NewL()
     {
     UT_CGlxMediaListCommandHandler* self = UT_CGlxMediaListCommandHandler::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -253,9 +252,7 @@
     {
     UT_CGlxMediaListCommandHandler* self = new( ELeave ) UT_CGlxMediaListCommandHandler();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
@@ -322,10 +319,10 @@
     };
 
 // -----------------------------------------------------------------------------
-// Test: static TInt SelectionLength(MGlxMediaList& aMediaList);
+// Test: UT_CGlxMediaListCommandHandler::Test_SelectionLengthL()
 // -----------------------------------------------------------------------------
 //
-void UT_CGlxMediaListCommandHandler::Test_SelectionLengthL(  )
+void UT_CGlxMediaListCommandHandler::Test_SelectionLengthL()
     { 
 #if 1 // This unit test needs to be re-wirtten after changes to SelectionLength() method.
     iML = new (ELeave) _CGlxTestMediaList;
--- a/photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxcommandhandlerdrm.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxcommandhandlerdrm.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -323,7 +323,7 @@
                 GLX_LOG_INFO("CGlxCommandHandlerDrm::ConsumeDRMRightsL check rights");
                 
                 // check if rights have expired
-                TBool expired = !iDrmUtility->CheckOpenRightsL(uri, (cat == EMPXImage));
+                TBool expired = !iDrmUtility->ItemRightsValidityCheckL(uri, (cat == EMPXImage));
                                     
                 if(expired)
                     {
--- a/photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxdrmiconmanager.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerdrm/src/glxdrmiconmanager.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -372,7 +372,7 @@
                     
                 TBool checkViewRights = (cat==EMPXImage);
                 
-                if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights))
+                if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights))
                     {
                     GLX_LOG_INFO("CGlxDrmIconManager::CheckDRMRightsL valid rights");
                     if(aForceIcon ||!ShouldHaveIcon(id, iconType))
--- a/photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlermarking/src/glxcommandhandlermarking.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -149,7 +149,7 @@
 //
 EXPORT_C CGlxCommandHandlerMarking::~CGlxCommandHandlerMarking()
     {
-    /// if (but do test this assumption!)
+    /// if (but do test this assumption)
     if (iResourceOffset)
         {
         CCoeEnv::Static()->DeleteResourceFile(iResourceOffset);
@@ -436,12 +436,6 @@
             if( aKeyEvent.iScanCode==EStdKeyDevice3 )
                 {         
                 TInt focIdx = mediaList.FocusIndex();
-                
-                /// is already in DoExecuteL:
-                /// Call ExecuteL with EAknCmdMark or EAknCmdUnmark to avoid duplication.
-                /// Replace with following code with 
-                /// (void) ExecuteL( mlist.IsSelected( mlist.FocusIndex() ) ? 
-                ///     EAknCmdUnmark : EAknCmdMark );
                 if( focIdx != KErrNotFound )
                     {
                     if ( mediaList.IsSelected( focIdx ) )
@@ -515,7 +509,7 @@
 void CGlxCommandHandlerMarking::HandleItemRemovedL(TInt /*aStartIndex*/, 
                                     TInt /*aEndIndex*/, MGlxMediaList* /*aList*/)
     {
-    //UpdateMiddleSoftkeyStatus();
+    //Do nothing
     }
 
 // ---------------------------------------------------------------------------
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxcommandhandlershowviaupnp/src/t_cglxcommandhandlershowviaupnp.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxcommandhandlershowviaupnp/src/t_cglxcommandhandlershowviaupnp.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -218,7 +218,7 @@
 t_cglxcommandhandlershowviaupnp* t_cglxcommandhandlershowviaupnp::NewL()
     {
     t_cglxcommandhandlershowviaupnp* self = t_cglxcommandhandlershowviaupnp::NewLC();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -279,7 +279,6 @@
 void t_cglxcommandhandlershowviaupnp::SetupL1(  )
     { 
     //create the medialist
-  //  MediaList();  
     iList = new (ELeave) _CGlxTestMediaList;
     EUNIT_PRINT(_L("SetupL1 :: created Medialist"));
     iCommandShowUpnp = CGlxCommandHandlerShowViaUpnp :: NewL(this, EFalse);
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxthumbnailsaver/src/t_cglxthumbnailsaver.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxthumbnailsaver/src/t_cglxthumbnailsaver.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -35,8 +35,7 @@
 t_cglxthumbnailsaver* t_cglxthumbnailsaver::NewL()
     {
     t_cglxthumbnailsaver* self = t_cglxthumbnailsaver::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -44,9 +43,7 @@
     {
     t_cglxthumbnailsaver* self = new( ELeave ) t_cglxthumbnailsaver();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
@@ -79,7 +76,6 @@
             EUNIT_PRINT(_L("t_cglxthumbnailsaver::GetSession"));
             User::LeaveIfError(RFbsSession::Connect());
             EUNIT_PRINT(_L("t_cglxthumbnailsaver::FbsSession:: Connected"));
-      //      iData->iFbsCreated = ETrue;
             }
     iThumbnail = NULL;
     iThumbnailSaver = NULL;
@@ -153,7 +149,6 @@
 void t_cglxthumbnailsaver::T_CreateDefaultVideoIconL()
     {      
     EUNIT_PRINT(_L("Entering t_cglxthumbnailsaver::T_CreateDefaultVideoIconL"));
-    //iThumbnailSaver->CreateDefaultVideoIconL();
     }
     
 //From MGlxThumbnailSaveComplete    
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxupnprendererimpl/src/t_cglxupnprendererimpl.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_cglxupnprendererimpl/src/t_cglxupnprendererimpl.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -37,8 +37,7 @@
 t_cglxupnprendererimpl* t_cglxupnprendererimpl::NewL()
     {
     t_cglxupnprendererimpl* self = t_cglxupnprendererimpl::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -46,9 +45,7 @@
     {
     t_cglxupnprendererimpl* self = new( ELeave ) t_cglxupnprendererimpl();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/src/t_glxcmdhndlrcopytohomentwk.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxcommandhandlercopytohomenetwork/src/t_glxcmdhndlrcopytohomentwk.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -229,7 +229,7 @@
 t_cglxcommandhandlercopytohomenetwork* t_cglxcommandhandlercopytohomenetwork::NewL()
     {
     t_cglxcommandhandlercopytohomenetwork* self = t_cglxcommandhandlercopytohomenetwork::NewLC();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -280,8 +280,6 @@
     iList = NULL;
     iCommandHandlerCopyToHomeNetwork = NULL;
     //create the medialist
-   // MediaList();       
-  //  iCommandHandlerCopyToHomeNetwork = CGlxCommandHandlerCopyToHomeNetwork :: NewL(*this);
     iList = new (ELeave) _CGlxTestMediaList;
     iCommandHandlerCopyToHomeNetwork = new (ELeave) CGlxCommandHandlerCopyToHomeNetwork(*this); 
     }
--- a/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxupnprenderer/src/t_glxupnprenderer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commandhandlerupnp/tsrc/t_glxupnprenderer/src/t_glxupnprenderer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -33,7 +33,7 @@
 t_glxupnprenderer* t_glxupnprenderer::NewL()
     {
     t_glxupnprenderer* self = t_glxupnprenderer::NewLC();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
 
     return self;
     }
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/group/glxcommoncommandhandlers.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/group/glxcommoncommandhandlers.mmp	Wed Mar 31 21:31:03 2010 +0300
@@ -70,7 +70,8 @@
 SOURCE          glxaiwmedia.cpp
 SOURCE          glxcommandhandlerfilterimagesorvideos.cpp
 SOURCE		glxcommandhandleropen.cpp
-SOURCE		glxcommandhandleraiwshowonmaphardkey.cpp
+SOURCE		glxcommandhandleraiwshowonmaphardkey.cpp 
+SOURCE		glxuploadcenrepwatcher.cpp
 
 USERINCLUDE     ../inc
 
@@ -145,4 +146,5 @@
 LIBRARY         glxtexturemanager.lib
 LIBRARY         glximageviewermanager.lib
 LIBRARY         mpxplaybackutility.lib    // MPX playback utility
+LIBRARY         thumbnailmanager.lib
 // End of File
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowonmaphardkey.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraiwshowonmaphardkey.h	Wed Mar 31 21:31:03 2010 +0300
@@ -80,29 +80,6 @@
     * Called when the owning view is deactivated
     */
     void Deactivate();  
-// Below methods are commented as they hold implemenatation of dofferent commandhandler
-//  To check map service providers
-//  To navigate to the location
-//public: // New methods          
-    
-    /**
-     * It will return total map service providers.
-     * @since S60 v9.1
-     * @ret total number of map service providers
-     */
-//    TInt MapServiceProvidersL();
-    
-    /**
-     * It will show location on map
-     * @since S60 v9.1
-     */
-//   IMPORT_C void ShowOnMapL( const TCoordinate& aCoordinate );
-    
-    /**
-     * It will navigate to location
-     * @since S60 v9.1
-     */
-//    void NavigateToPlaceL( const TCoordinate& aCoordinate );
 
 private:
     /**
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerback.h	Wed Mar 31 21:31:03 2010 +0300
@@ -106,12 +106,6 @@
 	CGlxCommandHandlerBack(MGlxMediaListProvider* aMediaListProvider,
 							TInt aPrevViewId );
      
-    // This API to be removed after testing with migration is over 
-	/**
-	 * check if deletion of container need to be checked
-	 */ 
-	// TBool CheckContainerDeletion() const;
-	
 public: // From MGlxCommandHandler
 
 	/**
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerdetails.h	Wed Mar 31 21:31:03 2010 +0300
@@ -76,6 +76,14 @@
 
 	    /** @see CGlxMediaListCommandHandler::DoIsDisabled */
 	    TBool DoIsDisabled(TInt aCommandId, MGlxMediaList& aList) const;
+	    
+	    /**
+	     * It checks whether full screen thumbnail for 
+	     * focus item is available or not
+    	 * @param aList Medialist to use
+    	 * @return ETrue if any full screen thumbnail available
+	     */
+	    TBool IsThumbnailAvailable(MGlxMediaList& aList) const;
 	
 	private: // implementation
 	
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerupload.h	Wed Mar 31 21:31:03 2010 +0300
@@ -21,6 +21,9 @@
 
 //  EXTERNAL INCLUDES
 #include "AiwServiceHandler.h"                  // AIW service handler
+#include <centralrepository.h>              // for checking the ShareOnline version
+#include <thumbnailmanager.h>
+#include <thumbnailmanagerobserver.h>
 
 //  INTERNAL INCLUDES
 #include "glxmedialistcommandhandler.h"         // for MediaListCommandHandler
@@ -29,6 +32,17 @@
 //  FORWARD DECLARATIONS
 class MGlxMediaListProvider;
 class CGlxDefaultAttributeContext;
+class CGlxUploadCenRepWatcher;
+
+// For upload icon change notification
+class MGlxUploadIconObserver
+    {
+public:
+    /**
+     * Handle upload icon changes
+     */
+    virtual void HandleUploadIconChangedL( ) = 0;
+    };
 
 /**
  * Command handler that launches Upload AIW ShareOnline
@@ -38,7 +52,8 @@
  
 // CLASS DECLARATION
 
-NONSHARABLE_CLASS (CGlxCommandHandlerUpload) : public CGlxMediaListCommandHandler
+NONSHARABLE_CLASS (CGlxCommandHandlerUpload) : public CGlxMediaListCommandHandler,
+public MGlxMediaListObserver, public MThumbnailManagerObserver, public MGlxUploadIconObserver
 	{
 public:  // Constructors and destructor
 	/**
@@ -59,6 +74,31 @@
      * To set the Help Text for Upload button on toolbar
      */
     void SetToolTipL();
+
+
+public: // From MGlxMediaListObserver
+    void HandleItemAddedL(TInt aStartIndex, TInt aEndIndex, 
+                                            MGlxMediaList* aList);
+    
+    void HandleMediaL(TInt aListIndex, MGlxMediaList* aList);
+    
+    void HandleItemRemovedL(TInt aStartIndex, TInt aEndIndex, 
+                                        MGlxMediaList* aList);
+    void HandleItemModifiedL(const RArray<TInt>& aItemIndexes, 
+                                        MGlxMediaList* aList);
+    void HandleAttributesAvailableL(TInt aItemIndex,     
+        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList);
+    void HandleFocusChangedL(NGlxListDefs::TFocusChangeType aType, 
+                        TInt aNewIndex, TInt aOldIndex, MGlxMediaList* aList);
+    void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList);
+    void HandleMessageL(const CMPXMessage& aMessage, MGlxMediaList* aList);
+    void HandlePopulatedL(MGlxMediaList* aList);
+    
+public: // from MGlxUploadIconObserver
+    /**
+     * @ref MGlxUploadIconObserver::HandleUploadIconChangedL
+     */
+    void HandleUploadIconChangedL( );    
     
 protected:
 	//@ref From CGlxCommandHandler
@@ -104,6 +144,13 @@
 	* Called when the owning view is deactivated
 	*/
 	void Deactivate();	
+	
+private: // From MThumbnailManagerObserver
+
+    void ThumbnailPreviewReady( MThumbnailData& aThumbnail,
+        TThumbnailRequestId aId );
+    void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail,
+        TThumbnailRequestId aId );	
 
 private:
 	/**
@@ -127,8 +174,48 @@
 	 */
 	void InitializeOneClickUploadL();
 	
+	/**
+	 * To check whether its is fullscreen view
+	 */
+	TBool IsFullScreenViewL();
+
+	/**
+	 * Disable/Enable the upload toolbar item
+	 */	
+	void DisableUploadToolbarItem(TBool aDimmed);
+
+	/**
+	 * Updates the selection count based on the mimetypes
+	 */		
+	void UpdateSelectionCount(TInt aIndex, TBool aSelected, MGlxMediaList* aList);
+
+	/**
+	 * Gets the Icon path and fileName from the cenrep
+	 */	
+	void GetIconNameL(TDes& aUplaodIconName);
+
+	/**
+	 * Decodes the Icon using the TNM Manager
+	 */	
+	void DecodeIconL(const TDes& aUplaodIconNmae);
+
+
+	/**
+	 * Updates the Toolbar upload icon based on the current selection
+	 */	
+	void UpdateFSUploadIconL();
+    
+	
+	/**
+     * Sets the decoded upload icon to the toolbar item
+     */	
+	void SetDecodedUploadIconL(MThumbnailData& aThumbnail);
+	
 private: // data
 
+    //Cenrep watcher for monitoring the icon changes
+    CGlxUploadCenRepWatcher* iUploadCenRepWatcher;
+    
     // ID of owning view 
     TInt iViewId;
     
@@ -142,7 +229,29 @@
     CGlxUiUtility* iUiUtility;
 
     // Owned - AIW Service Handler
-    CAiwServiceHandler* iServiceHandler;	
+    CAiwServiceHandler* iServiceHandler;
+    
+    CThumbnailManager* iTnEngine; // Own
+    
+    //Keep the count of no. of images/videos selected
+    TInt iSelectedImageCount;
+    TInt iSelectedVideoCount;
+    
+	//keep track of current icon used
+    enum TCenRepMonitors
+        {
+            EMonitorNone,
+            EImageMonitor,
+            EVideoMonitor,
+            EImageVideoMonitor
+        };
+    
+    TCenRepMonitors iCurrentCenRepMonitor;
+    
+	//Toolbar instance of current view
+    CAknToolbar* iToolbar;
+    
+    TThumbnailRequestId iTnmRequestID;
 	};
 
 #endif //__GLXCOMMANDHANDLERUPLOAD_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/inc/glxuploadcenrepwatcher.h	Wed Mar 31 21:31:03 2010 +0300
@@ -0,0 +1,103 @@
+/*
+* 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Upload cenrep watcher
+*
+*/
+
+#ifndef __GLXUPLOADCENREPWATCHER_H__
+#define __GLXUPLOADCENREPWATCHER_H__
+
+
+class CGlxCommandHandlerUpload;
+
+/**
+ *  CGlxUploadCenRepWatcher
+ *  CGlxCommandHandlerUpload containted class for observing changes in central 
+ *                   repository values
+ */
+NONSHARABLE_CLASS( CGlxUploadCenRepWatcher ) : public CActive
+    {
+    public:  // Constructors and destructor
+
+        /**
+         * Symbian Constructor.
+         * @param aObserver obersver - only supplied when the owner is 
+         *  interested in changes in key value
+         * @param aRepositoryUid uid of Central Repository file
+         * @param aId id of the Central Repository key
+         * @return contructed object
+         */
+        static CGlxUploadCenRepWatcher* NewL(MGlxUploadIconObserver& aUploadIconObserver,
+                                             const TUid& aRepositoryUid,
+                                             TUint32 aId );
+        /**
+         * Destructor.
+         */
+        ~CGlxUploadCenRepWatcher();
+        
+    public: // API
+
+        /**
+         * Get current value as 16 bit descriptor.
+         * @param return value of the key in the descriptor
+         */
+        void KeyValueL(TDes& aKeyValue) const;
+ 
+    private: // Implementation
+
+        /**
+         * C++ constructor.
+         * @param aObserver obersver		 
+         * @param aRepositoryUid uid of CenRep file
+         * @param aId id of the key
+         * @return contructed object
+         */
+        CGlxUploadCenRepWatcher(MGlxUploadIconObserver& aUploadIconObserver,
+                                const TUid& aRepositoryUid, TUint32 aId );
+
+        /**
+         * 2nd phase constructor
+         */
+        void ConstructL();
+
+    protected: // from CActive
+
+        /**
+         * @ref CActive::RunL
+         */
+        void RunL();
+
+        /**
+         * @ref CActive::DoCancel
+         */
+        void DoCancel();
+        
+        /**
+         * @ref CActive::RunError
+         */
+        TInt RunError( TInt aError );
+
+    private: // Implementation
+        // Not Owned: the upload icon observer
+        MGlxUploadIconObserver& iUploadIconObserver;
+        // Own: the central repository API
+        CRepository* iRepository;       
+        // the central repository identifier
+        TUid iRepositoryUid;
+        // the key id
+        TUint32 iId;
+        
+    };
+
+#endif //__GLXUPLOADCENREPWATCHER_H__
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxaiwmedia.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxaiwmedia.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -50,25 +50,6 @@
     {
     if (KErrNotFound == iParamArray.Find(aParam))
         {
-/*
-#ifdef __WINSCW__
-        // Big hack! replace "video/MP4V-ES" with "video/mp4"
-        // Hack to be removed when TSW error: VKAN-77D92E is released
-        TAiwGenericParam MimeType1( EGenericParamMIMEType, TAiwVariant( _L("video/MP4V-ES") ));
-        TAiwGenericParam MimeType2( EGenericParamMIMEType, TAiwVariant( _L("video/mp4") ));
-        
-        if (aParam == MimeType1)
-            {
-            iParamArray.AppendL(MimeType2);
-            }
-        else
-            {
-            iParamArray.AppendL(aParam);
-            }
-#else
-        iParamArray.AppendL(aParam);
-#endif
-*/
         iParamArray.AppendL(aParam);
         return ETrue;
         }
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwedit.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -122,7 +122,7 @@
 // DynInitMenuPaneL
 // -----------------------------------------------------------------------------
 //
-void CGlxCommandHandlerAiwEdit::DynInitMenuPaneL(TInt aResourceId,
+void CGlxCommandHandlerAiwEdit::DynInitMenuPaneL(TInt /*aResourceId*/,
         CEikMenuPane* aMenuPane)
     {
     MGlxMediaList& mediaList = MediaList();
@@ -134,7 +134,7 @@
         if (iCommandSingleClick && aMenuPane->MenuItemExists(
                 EGlxCmdAiwSingleClickEdit, pos)
 
-                && ((mediaList.SelectionCount() > 1)
+                && (((!mediaList.Count()) || (mediaList.SelectionCount() > 1))
                         || (!iFeatManager->IsFeatureSupportedL(
                                 KFeatureIdFfImageEditor)
                                 && !iFeatManager->IsFeatureSupportedL(
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandleraiwprintpreview.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -136,7 +136,7 @@
 // AiwDoDynInitMenuPaneL
 // -----------------------------------------------------------------------------
 //  
-void CGlxCommandHandlerAiwPrintPreview::AiwDoDynInitMenuPaneL(TInt aResourceId, 
+void CGlxCommandHandlerAiwPrintPreview::AiwDoDynInitMenuPaneL(TInt /*aResourceId*/, 
         CEikMenuPane* aMenuPane)
     {
     TBool fullscreenViewingMode = EFalse;
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerback.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -151,9 +151,12 @@
 	    aCommandId );
 	if(EAknSoftkeyClose == aCommandId)
 		{
-        GLX_LOG_INFO("CGlxCommandHandlerBack::ExecuteL::goto \
+        GLX_LOG_INFO("CGlxCommandHandlerBack::ExecuteL::go to \
 	                    root in UI hierarchy");
-        iNavigationalState->NavigateToParentL();
+        CMPXCollectionPath* newState = CMPXCollectionPath::NewL();
+        CleanupStack::PushL( newState );
+        iNavigationalState->NavigateToL( *newState );
+        CleanupStack::PopAndDestroy( newState );
 		consume = ETrue;
 		}   
 	else if ( aCommandId == EAknSoftkeyBack )
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdetails.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -208,7 +208,8 @@
 					GLX_DEBUG2("GLX_Property::DoExecuteL::URI:%S:",&uri);
 
                     iUiUtility->SetViewNavigationDirection(EGlxNavigationForwards); 
-                    if (aList.Collection().UidL().iUid == KGlxCollectionPluginImageViewerImplementationUid)
+                    if (aList.Collection().UidL().iUid == 
+                            KGlxCollectionPluginImageViewerImplementationUid)
                         {
                         CGlxImgVwrMetadataDialog* dialog  = CGlxImgVwrMetadataDialog::NewL( uri);
                         dialog->ExecuteLD();
@@ -282,6 +283,7 @@
 TBool CGlxCommandHandlerDetails::DoIsDisabled(TInt aCommandId, 
                                         MGlxMediaList& aList) const 
     {
+    TRACER("CGlxCommandHandlerDetails:DoIsDisabled");
     TBool fullscreenViewingMode = EFalse;
     CGlxNavigationalState* aNavigationalState = CGlxNavigationalState::InstanceL();
     CMPXCollectionPath* naviState = aNavigationalState->StateLC();
@@ -311,12 +313,40 @@
     CleanupStack::PopAndDestroy( naviState );
     aNavigationalState->Close();
     
-    if(EGlxCmdDetails==aCommandId && (0 == aList.Count() || 1 != aList.SelectionCount())&& !fullscreenViewingMode )
+	// If fullscreen view is there but media item dont have yet
+	// data to be shown in detail than hide detail option
+    if(fullscreenViewingMode && !IsThumbnailAvailable(aList))
+       {
+       return ETrue;
+       }	   
+	
+    if(EGlxCmdDetails==aCommandId && (0 == aList.Count() || 1 != aList.SelectionCount())
+            && !fullscreenViewingMode )
         {   
         return ETrue;
         }
     return EFalse;
     }
 
+// -----------------------------------------------------------------------------
+// IsThumbnailAvailable
+// -----------------------------------------------------------------------------
+//
+TBool CGlxCommandHandlerDetails::IsThumbnailAvailable(MGlxMediaList& aList) const 
+    {
+    TRACER("CGlxCommandHandlerDetails::IsThumbnailAvailable");
+    if (0 == aList.Count())
+        {
+        return EFalse;
+        }
+
+    TMPXAttribute attr;
+    TSize size = iUiUtility->DisplaySize();
+    GLX_LOG_INFO2(
+            "CGlxCommandHandlerDetails::IsThumbnailAvailable() w(%d) h(%d)",
+            size.iWidth, size.iHeight);
+    return aList.Item(aList.FocusIndex()).GetClosestThumbnail(attr, size,
+            EFalse);
+    }
 	
 //End of file
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrename.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -258,7 +258,7 @@
     // put to cleanupstack as cleanupstack is emptied before stack objects
     // are deleted
     CleanupClosePushL( contextRemover );
-	// Yuck - a leave and a return code!
+	// Yuck - a leave and a return code
 	// EFalse => don't show a progress dialog
     TInt err = GlxAttributeRetriever::RetrieveL( *context, aList, EFalse );
     // Using a distinct error value as "LeaveIfError( FuncL() );" looks bad
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotate.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotate.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -373,7 +373,6 @@
         return finalOrientation;
         }
     
-    //Nitz subst code
     TInt rotOffset = iRotationAngle/90;
     TInt isOrientationOdd = aInitialOrientation % 2;
     TInt initStateIndex = 0;
@@ -429,9 +428,6 @@
         HBufC8* ModifiedexifData=NULL;
         //need only first KGlxMaxExifSize bytes of data as exif cannot bypass this size 
         TRAPD(err,ModifiedexifData = iExifWriter->WriteDataL(iExifData->Des()));  
-        //Nitz To-do Write only first KGlxMaxExifSize bytes to the file
-        //It currently fails in cases of JPEG files without Exif so removing it. 
-        //TPtrC8 exifPtr =  ModifiedexifData->Mid(0,KGlxMaxExifSize);
         if(err == KErrNone)
             {
             iFileHandle.Write(0,ModifiedexifData->Des());
@@ -527,7 +523,7 @@
     CMPXCommand* command = TGlxCommandFactory::ThumbnailCleanupCommandLC();
     command->SetTObjectValueL<TAny*>(KMPXCommandGeneralSessionId, static_cast<TAny*>(this));
     
-    //Nitz To Do Initialize cleanup command Just for the respective Media Items
+    //To Do Initialize cleanup command Just for the respective Media Items
     iMediaList->CommandL(*command);
     CleanupStack::PopAndDestroy(command);
     iMediaList->RemoveMediaListObserver(this);
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerslideshow.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -111,7 +111,7 @@
     info.iDisallowAnimatedGIFs = ETrue;
     // Disable DRM protected content
     info.iDisallowDRM = ETrue;
-    // Note! cannot just require all to be images as user can also start 
+    // 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
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlerupload.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -17,12 +17,13 @@
 
 //  CLASS HEADER
 #include "glxcommandhandlerupload.h"
+#include "glxuploadcenrepwatcher.h"
+#include <mglxmedialist.h>
 
 //  EXTERNAL INCLUDES
 #include <AiwGenericParam.h>                // for passing data between applications
 #include <aknbutton.h>                      // for getting the button state
 #include <akntoolbar.h>                     // for accessing currently active toolbar
-#include <centralrepository.h>              // for checking the ShareOnline version
 #include <data_caging_path_literals.hrh> 	// for directory and file names
 #include <utf.h>							// for CnvUtfConverter
 
@@ -36,21 +37,33 @@
 #include <glxuiutilities.rsg>               // for Share AIW interest resource
 #include <mglxmedialist.h>                  // for accessing the media items
 
+#include <glxnavigationalstate.h>
+#include <glxcollectionpluginimageviewer.hrh>
+
+#include <thumbnaildata.h>
+#include <gulicon.h>
+
 // CONSTANTS AND DEFINITIONS
 namespace
     {
-    // ShareOnline application UID
-    const TUid KShareOnlineUid = { 0x2000BB53 };
+    // ShareOnline application UID    
+    const TUid KShareOnlineUid = { 0x2002CC1F };
     // Shareonline Application version
-    const TUint32 KShareApplicationVersion = 0x01010020;
+    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( 4, 3, 0 );
+    const TVersion KShareOnlineMinimumVersion( 5, 0, 0 );
     // OneClickUpload command
     const TUid KOpenModeOneClick = { 2 };
     // Command to request for the tooltip
     const TUid KCmdGetOneClickToolTip = { 15 };    
+    // OneClickUpload default image icon
+    const TUint32 KUploadImageServiceIconFileName = 0x00000002;
+    // OneClickUpload default video icon
+    const TUint32 KUploadVideoServiceIconFileName = 0x00000003;
+    // OneClickUpload default video and image icon
+    const TUint32 KUploadImageAndVideoServiceIconFileName = 0x00000004; 
     }
 
 // ----------------------------------------------------------------------------
@@ -100,7 +113,20 @@
 	        iUploadSupported = ETrue;
 	        } );
 	
+	iSelectedImageCount = 0;
+	iSelectedVideoCount = 0;
+	iCurrentCenRepMonitor = EMonitorNone;
+	iTnmRequestID = KErrNotFound;
 	
+    //Check for fullscreen here since we dont get the activate call in FS.
+    if(IsFullScreenViewL())
+        {
+        //Giving the viewid as zero, since its not used anywhere.
+        iToolbar = iAvkonAppUi->CurrentFixedToolbar();        
+        ActivateL(0);
+        UpdateFSUploadIconL();
+        }
+    
 	// Add the upload command
    	TCommandInfo info(EGlxCmdUpload);
    	AddCommandL(info);	
@@ -112,12 +138,14 @@
 EXPORT_C CGlxCommandHandlerUpload::~CGlxCommandHandlerUpload()
 	{
 	TRACER("CGlxCommandHandlerUpload::~CGlxCommandHandlerUpload");
+	delete iTnEngine;
 	
 	if (iUiUtility)
         {
         iUiUtility->Close();
         }
 	delete iServiceHandler;
+	delete iUploadCenRepWatcher;	
 	}
 	
 // InitializeAIWForShareOnlineL
@@ -130,7 +158,7 @@
     iServiceHandler = CAiwServiceHandler::NewL();
 
     // Attach the AIW Resource defined in uiutilities.rss
-    iServiceHandler->AttachL( R_AIW_SHARE_BASE_INTEREST );
+    iServiceHandler->AttachL( R_GLX_AIW_SHARE_BASE_INTEREST );
     }
 
 // Check Share Online version
@@ -211,6 +239,7 @@
 	    { 
 
 	    CAiwGenericParamList& inputParams = iServiceHandler->InParamListL();
+	    inputParams.Reset();
 	    
 	    TAiwVariant variant( KOpenModeOneClick ); //For one click photo upload
 	    TAiwGenericParam param( EGenericParamModeActivation, variant );
@@ -234,8 +263,18 @@
 void CGlxCommandHandlerUpload::DoActivateL(TInt aViewId)
 	{
 	TRACER("CGlxCommandHandlerUpload::DoActivateL");
-    iViewId = aViewId;   
+    iViewId = aViewId;  
+
+    // get media list from provider and add observer
+
+    MediaList().AddMediaListObserverL( this );
     
+    //Get the grid toolbar here as it wont be created yet in
+    //constructor
+    if(!IsFullScreenViewL())
+        {    
+        iToolbar = iUiUtility->GetGridToolBar();        
+        }
 	}
 	
 // ----------------------------------------------------------------------------
@@ -244,7 +283,14 @@
 void CGlxCommandHandlerUpload::Deactivate()
     {
     TRACER("CGlxCommandHandlerUpload::Deactivate");
-    
+	
+	//Remove the Medialist observer
+    MediaList().RemoveMediaListObserver( this );
+
+	//Reset the tracking variables here    
+    iSelectedImageCount = 0;
+    iSelectedVideoCount = 0;
+    iCurrentCenRepMonitor = EMonitorNone;
     }	
 
 // ----------------------------------------------------------------------------
@@ -319,7 +365,15 @@
 void CGlxCommandHandlerUpload::PopulateToolbarL()
 	{
 	TRACER( "CGlxCommandHandlerUpload::PopulateToolbarL" );
-		   
+    
+	//When the Upload is not supported or if we are in grid view
+	//and none of the item is selected Dim the Upload icon
+	if(!iUploadSupported || (!IsFullScreenViewL() && 
+                                   (MediaList().SelectionCount()== 0)))
+        {        
+        DisableUploadToolbarItem(ETrue);
+        }
+    
 	if( iUploadSupported )
 	    {
 	    SetToolTipL();
@@ -335,6 +389,7 @@
     TRACER("CGlxCommandHandlerUpload::GetToolTipL");
     
     CAiwGenericParamList& inputParams = iServiceHandler->InParamListL();
+    inputParams.Reset();
     
     // Insert Command parameter that tells provider that tooltip is required        
     TAiwVariant variant(KCmdGetOneClickToolTip);
@@ -343,6 +398,8 @@
     
     //Get a reference to output parameter list
     CAiwGenericParamList& outputParams = iServiceHandler->OutParamListL();
+    outputParams.Reset();
+    
     iServiceHandler->ExecuteServiceCmdL(KAiwCmdUpload, inputParams, outputParams);
     
     //Tooltip is returned as a parameter in output list
@@ -366,14 +423,13 @@
     {
     TRACER("CGlxCommandHandlerUpload::SetToolTipL");
 
-    CAknToolbar* toolbar = iAvkonAppUi->CurrentFixedToolbar();
-    if (!toolbar)
+    if (!iToolbar)
         {
         return;
         }
 
     CAknButton* uploadButton =
-            static_cast<CAknButton*> (toolbar->ControlOrNull(EGlxCmdUpload));
+            static_cast<CAknButton*> (iToolbar->ControlOrNull(EGlxCmdUpload));
 
     if (uploadButton && iUploadSupported)
         {
@@ -409,5 +465,406 @@
         } // if(uploadButton && iUploadSupported)
     }
 
+
+// ----------------------------------------------------------------------------
+// HandleItemAddedL
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::HandleItemAddedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
+                                        MGlxMediaList* /*aList*/)
+    {
+    
+    }
+	
+	
+// ----------------------------------------------------------------------------
+// HandleMediaL
+// ----------------------------------------------------------------------------
+//	
+void CGlxCommandHandlerUpload::HandleMediaL(TInt /*aListIndex*/, MGlxMediaList* /*aList*/)
+    {
+    
+    }
+
+
+// ----------------------------------------------------------------------------
+// HandleItemRemovedL
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::HandleItemRemovedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/, 
+                                    MGlxMediaList* /*aList*/)
+    {
+    
+    }
+	
+	
+// ----------------------------------------------------------------------------
+// HandleItemModifiedL
+// ----------------------------------------------------------------------------
+//	
+void CGlxCommandHandlerUpload::HandleItemModifiedL(const RArray<TInt>& /*aItemIndexes*/, 
+                                    MGlxMediaList* /*aList*/)
+    {
+    
+    }
+	
+	
+// ----------------------------------------------------------------------------
+// HandleAttributesAvailableL
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::HandleAttributesAvailableL(TInt /*aItemIndex*/,     
+    const RArray<TMPXAttribute>& /*aAttributes*/, MGlxMediaList* /*aList*/)
+    {
+	TRACER("CGlxCommandHandlerUpload::HandleAttributesAvailableL");
+    }
+	
+	
+// ----------------------------------------------------------------------------
+// HandleFocusChangedL
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::HandleFocusChangedL(NGlxListDefs::TFocusChangeType /*aType*/, 
+                    TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/)
+    {
+	TRACER("CGlxCommandHandlerUpload::HandleFocusChangedL");
+    //In Fullscreen change the icons based on current focused icon
+    if(iUploadSupported && IsFullScreenViewL())
+        {
+        UpdateFSUploadIconL();
+        }
+    }
+
+
+// ----------------------------------------------------------------------------
+// HandleItemSelectedL
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList)
+    {
+	TRACER("CGlxCommandHandlerUpload::HandleItemSelectedL");
+	//In grid if an item is selected update the toolbar icon based on
+	//the mime types of items
+    if(iUploadSupported && !IsFullScreenViewL())
+        {        
+        if(aList->SelectionCount() >= 1 )
+            {        
+            TFileName uploadIconFileName;
+            UpdateSelectionCount(aIndex, aSelected, aList);
+            GetIconNameL(uploadIconFileName);
+            if(uploadIconFileName.Length())
+                {
+                DecodeIconL(uploadIconFileName);
+                }
+            DisableUploadToolbarItem(EFalse);
+            }
+        else
+            {
+            iSelectedImageCount = 0;
+            iSelectedVideoCount = 0;
+            iCurrentCenRepMonitor = EMonitorNone;
+            delete iUploadCenRepWatcher;
+            iUploadCenRepWatcher = NULL;
+            DisableUploadToolbarItem(ETrue);
+            }        
+        }    
+    }
+
+
+// ----------------------------------------------------------------------------
+// HandleMessageL
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::HandleMessageL(const CMPXMessage& /*aMessage*/, MGlxMediaList* /*aList*/)
+    {
+    
+    }
+
+
+// ----------------------------------------------------------------------------
+// HandlePopulatedL
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::HandlePopulatedL(MGlxMediaList* aList)
+    {
+    if(aList && aList->Count() > 0)
+        {
+        if(!iUploadSupported || !IsFullScreenViewL())
+            {
+            DisableUploadToolbarItem(ETrue);
+            }
+        }
+    }
+
+//----------------------------------------------------------------------------
+// Check for current view mode .Grid/fullscreen/imgviewer
+//----------------------------------------------------------------------------
+//
+TBool CGlxCommandHandlerUpload::IsFullScreenViewL()
+    {
+	TRACER("CGlxCommandHandlerUpload::IsFullScreenViewL");
+    TBool fullscreenViewingMode = EFalse;
+             
+     CGlxNavigationalState* navigationalState = CGlxNavigationalState::InstanceL();
+	 CleanupClosePushL( *navigationalState );
+     CMPXCollectionPath* naviState = navigationalState->StateLC();
+     
+     if ( naviState->Levels() >= 1)
+         {
+         if (navigationalState->ViewingMode() == NGlxNavigationalState::EBrowse) 
+             {
+             // For image viewer collection, goto view mode
+             if (naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid))
+                 {
+                 // current view mode is img vwr
+                 fullscreenViewingMode = ETrue;
+                 }
+             else
+                 {
+                 //current view mode is Grid 
+                 fullscreenViewingMode = EFalse;
+                 }
+             } 
+         else 
+             {
+             //current view mode is Fullscreen
+             fullscreenViewingMode = ETrue;
+             }                
+         }
+     CleanupStack::PopAndDestroy( naviState );
+     CleanupStack::PopAndDestroy( navigationalState );
+     return fullscreenViewingMode;
+    }
+
+// ----------------------------------------------------------------------------
+// DisableUploadToolbarItem
+// ----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::DisableUploadToolbarItem(TBool aDimmed)
+    {        
+	TRACER("CGlxCommandHandlerUpload::DisableUploadToolbarItem");
+    
+    if(iToolbar)
+        {
+        iToolbar->SetItemDimmed(EGlxCmdUpload, aDimmed, ETrue);
+        //DrawNow must be called since SetDimmed does not redraw the toolbar
+        iToolbar->DrawNow();
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CGlxCommandHandlerUpload::ThumbnailPreviewReady()
+// -----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::ThumbnailPreviewReady(MThumbnailData& /*aThumbnail*/,
+        TThumbnailRequestId /*aId*/)
+    {
+    TRACER("CGlxCommandHandlerUpload::ThumbnailPreviewReady");
+    }
+
+// -----------------------------------------------------------------------------
+// CGlxCommandHandlerUpload::ThumbnailReady()
+// -----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::ThumbnailReady(TInt aError,
+        MThumbnailData& aThumbnail, TThumbnailRequestId /*aId*/)
+    {
+    TRACER("CGlxCommandHandlerUpload::ThumbnailReady");
+    
+    if(aError == KErrNone)
+        {
+        TRAP_IGNORE(SetDecodedUploadIconL(aThumbnail));        
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CGlxCommandHandlerUpload::SetDecodedUploadIconL()
+// -----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::SetDecodedUploadIconL(MThumbnailData& aThumbnail)
+    {
+    CAknButton* uploadButton =
+            static_cast<CAknButton*> (iToolbar->ControlOrNull(EGlxCmdUpload));
+
+	if(uploadButton)
+		{
+	    CAknButtonState* currentState = uploadButton->State();    
+	    CFbsBitmap* normalBmp = aThumbnail.DetachBitmap();    
+	    CFbsBitmap* pressedBmp = new (ELeave) CFbsBitmap;
+	    pressedBmp->Duplicate(normalBmp->Handle());
+	    //Ownership of the icon is transferred here    
+	    currentState->SetIcon(CGulIcon::NewL(normalBmp));
+	    currentState->SetPressedIcon(CGulIcon::NewL(pressedBmp));
+	    iToolbar->DrawNow();
+	  	}
+    }
+
+// -----------------------------------------------------------------------------
+// CGlxCommandHandlerUpload::UpdateSelectionCount()
+// -----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::UpdateSelectionCount(TInt aIndex, TBool aSelected, MGlxMediaList* aList)
+    {
+    TRACER("CGlxCommandHandlerUpload::UpdateSelectionCount");
+    if(!aList)
+        {
+        return;
+        }    
+    
+    TGlxMedia media = aList->Item(aIndex);
+    
+    switch(media.Category())
+        {
+        case EMPXImage:
+            aSelected?iSelectedImageCount++:iSelectedImageCount--;            
+            break;
+        case EMPXVideo:
+            aSelected?iSelectedVideoCount++:iSelectedVideoCount--;
+            break;
+        default:
+            break;
+        }       
+    }
+
+// -----------------------------------------------------------------------------
+// CGlxCommandHandlerUpload::GetIconNameL()
+// -----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::GetIconNameL(TDes& aUplaodIconNmae)
+    {
+    TRACER("CGlxCommandHandlerUpload::GetIconNameL");
+    TUint32 serviceIconId = KErrNone;
+    
+    if(iSelectedImageCount && iSelectedVideoCount)
+        {
+        if(iCurrentCenRepMonitor != EImageVideoMonitor)
+            {
+            serviceIconId = KUploadImageAndVideoServiceIconFileName;
+            iCurrentCenRepMonitor = EImageVideoMonitor;
+            }
+        }
+    else if(iSelectedImageCount)
+        {
+        if(iCurrentCenRepMonitor != EImageMonitor)
+            {
+            serviceIconId = KUploadImageServiceIconFileName;
+            iCurrentCenRepMonitor = EImageMonitor;
+            }    
+        }
+    else if(iSelectedVideoCount)
+        {
+        if(iCurrentCenRepMonitor != EVideoMonitor)
+            {
+            serviceIconId = KUploadVideoServiceIconFileName;
+            iCurrentCenRepMonitor = EVideoMonitor;
+            }
+        }
+    
+    if(serviceIconId != KErrNone)
+        {
+        delete iUploadCenRepWatcher;
+        iUploadCenRepWatcher = NULL;
+        
+        iUploadCenRepWatcher = CGlxUploadCenRepWatcher::NewL(*this, KShareOnlineUid,
+                                                                serviceIconId );
+        iUploadCenRepWatcher->KeyValueL(aUplaodIconNmae);        
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// CGlxCommandHandlerUpload::DecodeIconL()
+// -----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::DecodeIconL(const TDes& aUplaodIconNmae)
+    {
+    TRACER("CGlxCommandHandlerUpload::DecodeIconL");
+    
+    if(!iTnEngine)
+        {
+        iTnEngine = CThumbnailManager::NewL( *this);
+        iTnEngine->SetDisplayModeL( EColor16M );
+        }
+    
+    if(iTnmRequestID != KErrNotFound)
+        {
+        //Cancel any outstanding request
+        iTnEngine->CancelRequest(iTnmRequestID);
+        }
+                
+    iTnEngine->SetFlagsL(CThumbnailManager::EDefaultFlags);
+
+    CAknButton* uploadButton =
+                           static_cast<CAknButton*> (iToolbar->ControlOrNull(EGlxCmdUpload));
+    if(uploadButton)
+    	{
+	    CAknButtonState* currentState = uploadButton->State();
+	    const CGulIcon *icon = currentState->Icon();    
+	    iTnEngine->SetThumbnailSizeL(icon->Bitmap()->SizeInPixels());
+	    iTnEngine->SetQualityPreferenceL(CThumbnailManager::EOptimizeForQuality);
+	    CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(aUplaodIconNmae, 0);
+	    iTnmRequestID = iTnEngine->GetThumbnailL(*source);
+	    CleanupStack::PopAndDestroy(source);
+	    }
+    }
+
+
+// -----------------------------------------------------------------------------
+// CGlxCommandHandlerUpload::UpdateFSUploadIconL()
+// -----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::UpdateFSUploadIconL()
+    {
+    if(!iUploadSupported)
+        {
+        return;
+        }
+    
+    // get the media list reference
+    MGlxMediaList& mediaList = MediaList();
+    if(mediaList.Count() )
+        {
+        TGlxMedia media = mediaList.Item(mediaList.FocusIndex());
+        iSelectedImageCount = 0;
+        iSelectedVideoCount = 0;
+        if(media.Category() == EMPXImage)
+            {
+            iSelectedImageCount++;
+            }
+        else if(media.Category() == EMPXVideo)
+            {
+            iSelectedVideoCount++;
+            }
+        
+        if(iSelectedImageCount || iSelectedVideoCount)
+            {
+            TFileName uploadIconFileName;
+            GetIconNameL(uploadIconFileName);
+
+            if(uploadIconFileName.Length())
+                {
+                DecodeIconL(uploadIconFileName);
+                }
+            }
+        }
+    }
+
+//-----------------------------------------------------------------------------
+// From class MGlxUploadIconObserver.
+// Called when upload icon changes
+//-----------------------------------------------------------------------------
+//
+void CGlxCommandHandlerUpload::HandleUploadIconChangedL( )
+    {
+    TRACER("CGlxCommandHandlerUpload::HandleUploadIconChangedL");
+    if(iUploadSupported && iUploadCenRepWatcher)
+        {
+        TFileName uploadIconFileName;
+        iUploadCenRepWatcher->KeyValueL(uploadIconFileName);
+        if(uploadIconFileName.Length())
+            {
+            DecodeIconL(uploadIconFileName);
+            }
+        }
+    }
 // End of file
 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxcommandhandlervideoplayback.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -214,7 +214,7 @@
                 {
                 GLX_LOG_INFO( "CmdHandler VideoPlayback - SelectPlayerL(+)" );
                 const TUid playbackMode = { 0x200009EE };  // photos UID
-                iPlaybackUtility = MMPXPlaybackUtility::UtilityL( playbackMode );
+                iPlaybackUtility = MMPXPlaybackUtility::UtilityL(EMPXCategoryVideo, playbackMode );
                 MMPXPlayerManager& manager = iPlaybackUtility->PlayerManager();
                 manager.SelectPlayerL( KVideoHelixPlaybackPluginUid );
                 iPlaybackUtility->AddObserverL( *this ); 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/src/glxuploadcenrepwatcher.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -0,0 +1,138 @@
+/*
+* 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Upload cenrep watcher
+*
+*/
+
+//  CLASS HEADER
+#include <centralrepository.h>              // for checking the ShareOnline version
+#include "glxcommandhandlerupload.h"
+#include "glxuploadcenrepwatcher.h"
+
+#include <glxtracer.h>                      // for TRACER logs
+
+
+// -----------------------------------------------------------------------------
+// Two-phased constructor.
+// -----------------------------------------------------------------------------
+CGlxUploadCenRepWatcher* CGlxUploadCenRepWatcher::NewL
+                                        (MGlxUploadIconObserver& aUploadIconObserver,
+                                         const TUid& aRepositoryUid,
+                                         TUint32 aId )
+    {
+    TRACER("CGlxUploadCenRepWatcher::NewL");    
+                
+    CGlxUploadCenRepWatcher* self = 
+        new(ELeave) CGlxUploadCenRepWatcher(aUploadIconObserver, aRepositoryUid, aId );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// -----------------------------------------------------------------------------
+// constructor.
+// -----------------------------------------------------------------------------
+inline CGlxUploadCenRepWatcher::CGlxUploadCenRepWatcher(
+        MGlxUploadIconObserver& aUploadIconObserver,
+        const TUid& aRepositoryUid, TUint32 aId )
+    : CActive(EPriorityStandard),
+    iUploadIconObserver(aUploadIconObserver),  
+    iRepositoryUid(aRepositoryUid), 
+    iId(aId)
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// Symbian 2nd phase constructor 
+// ----------------------------------------------------------------------------
+void CGlxUploadCenRepWatcher::ConstructL()
+    {
+    TRACER("CGlxUploadCenRepWatcher::ConstructL");
+    CActiveScheduler::Add( this );
+    iRepository = CRepository::NewL(iRepositoryUid);
+    
+    //Request notification when the user changes cenrep values
+    TInt err = iRepository->NotifyRequest( iId, iStatus );
+    if (!(KErrNone ==err ||KErrAlreadyExists  ==err))
+        {        
+        User::Leave(err);
+        }
+    
+    SetActive();
+    }
+
+// ----------------------------------------------------------------------------
+// Destructor
+// ----------------------------------------------------------------------------
+CGlxUploadCenRepWatcher::~CGlxUploadCenRepWatcher()
+    {
+    TRACER("CGlxUploadCenRepWatcher::~CGlxUploadCenRepWatcher");
+    
+    Cancel();
+    delete iRepository;
+    }
+
+    
+// ----------------------------------------------------------------------------
+// CGlxUploadCenRepWatcher::KeyValueL
+// ----------------------------------------------------------------------------
+void CGlxUploadCenRepWatcher::KeyValueL(TDes& aKeyValue) const
+    {
+    TRACER("CGlxUploadCenRepWatcher::KeyValueL");
+    if(iRepository)
+        {
+        User::LeaveIfError( iRepository->Get(iId, aKeyValue) );
+        }
+    }
+
+
+// ----------------------------------------------------------------------------
+// CGlxUploadCenRepWatcher::RunL
+// ----------------------------------------------------------------------------
+void CGlxUploadCenRepWatcher::RunL()
+    {
+    TRACER("CGlxUploadCenRepWatcher::RunL");    
+    // Check for errors
+    User::LeaveIfError( iStatus.Int() );    
+    User::LeaveIfError( iRepository->NotifyRequest( iId, iStatus ) );
+    if (!IsActive())
+        {
+        SetActive();
+        iUploadIconObserver.HandleUploadIconChangedL( );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CGlxUploadCenRepWatcher::DoCancel
+// ----------------------------------------------------------------------------
+void CGlxUploadCenRepWatcher::DoCancel()
+    {
+    TRACER("CGlxUploadCenRepWatcher::DoCancel");    
+    iRepository->NotifyCancel( iId );
+    }
+
+//-----------------------------------------------------------------------------
+// CGlxUploadCenRepWatcher::RunError
+// From class CActive.
+//-----------------------------------------------------------------------------
+//
+TInt CGlxUploadCenRepWatcher::RunError( TInt /*aError*/ )
+    {
+    TRACER("CGlxUploadCenRepWatcher::RunError()");
+    return KErrNone;
+    }
+
+// End of file
+
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_cglxaiwservicehandler/src/t_cglxaiwservicehandler.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_cglxaiwservicehandler/src/t_cglxaiwservicehandler.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -38,8 +38,7 @@
 t_CGlxAiwServiceHandler* t_CGlxAiwServiceHandler::NewL()
     {
     t_CGlxAiwServiceHandler* self = t_CGlxAiwServiceHandler::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -47,9 +46,7 @@
     {
     t_CGlxAiwServiceHandler* self = new( ELeave ) t_CGlxAiwServiceHandler();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcmdhndlrfilteritems/src/t_glxcmdhandlerfilteritems.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -40,8 +40,7 @@
 T_CGlxCommandHandlerFilterImagesOrVideos* T_CGlxCommandHandlerFilterImagesOrVideos::NewL()
     {
     T_CGlxCommandHandlerFilterImagesOrVideos* self = T_CGlxCommandHandlerFilterImagesOrVideos::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -49,9 +48,7 @@
     {
     T_CGlxCommandHandlerFilterImagesOrVideos* self = new( ELeave ) T_CGlxCommandHandlerFilterImagesOrVideos();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcommandhandlerback/Src/t_cglxcommandhandlerback.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/t_glxcommandhandlerback/Src/t_cglxcommandhandlerback.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -36,8 +36,7 @@
     {
     EUNIT_PRINT(_L("t_cglxcommandhandlerback::NewL()"));
     t_cglxcommandhandlerback* self = t_cglxcommandhandlerback::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -46,9 +45,7 @@
     EUNIT_PRINT(_L("ut_cglxcommandhandlerback::NewLC()"));
     t_cglxcommandhandlerback* self = new( ELeave ) t_cglxcommandhandlerback();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
@@ -83,10 +80,8 @@
   iMediaList = MGlxMediaList::InstanceL(*path);
 	if(iMediaList)
     	{
-    	
     	// Attribute to be used
     	TMPXAttribute attrTitle(KMPXMediaGeneralTitle);
-    	//TMPXAttribute attrCount(KMPXMediaGeneralCount);
     	
     	// add a static items
 	    TGlxMediaId testId(12345);
@@ -105,7 +100,7 @@
     	CleanupStack::Pop(newMedia2);
     	}
     
-    CleanupStack::PopAndDestroy(); // path
+    CleanupStack::PopAndDestroy( path );
     }
     
 MGlxMediaList& t_cglxcommandhandlerback::MediaList()
@@ -138,15 +133,12 @@
 void t_cglxcommandhandlerback::SetupPreviousNaviViewChWithoutMlL(  )
     {
     EUNIT_PRINT(_L("t_cglxcommandhandlerback::SetupPreviousNaviViewChWithoutMlL(  )"));
-   // iCommand = CGlxCommandHandlerBack::NewPreviousNaviViewCommandHandlerL();
     }
     
 void t_cglxcommandhandlerback::SetupPreviousNaviViewChWithMlL(  )
     {
     EUNIT_PRINT(_L("t_cglxcommandhandlerback::SetupPreviousNaviViewChWithMlL(  )"));
     CreateMediaListL();
-    
-  //  iCommand = CGlxCommandHandlerBack::NewPreviousNaviViewCommandHandlerL(this);
     }
 
 void t_cglxcommandhandlerback::SetupContainerPreviousViewChWithoutViewId(  )
--- a/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/ut_propertycommandhandlers/src/ut_propertycommandhandlers.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/commoncommandhandlers/tsrc/ut_propertycommandhandlers/src/ut_propertycommandhandlers.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -43,9 +43,6 @@
         {
         // Replace the existing value
         TValue& value = iValues[i];
-		// COMMENTED OUT SINCE NOT EXPORTED 
-		//Delete(value);
-        
         value.iValue = ptr; // Takes ownership
         value.iType = EMPXTypeTObject;
         }
@@ -265,8 +262,7 @@
 UT_propertycommandhandlers* UT_propertycommandhandlers::NewL()
     {
     UT_propertycommandhandlers* self = UT_propertycommandhandlers::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -274,9 +270,7 @@
     {
     UT_propertycommandhandlers* self = new( ELeave ) UT_propertycommandhandlers();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
   
@@ -305,9 +299,6 @@
 
 void UT_propertycommandhandlers::SetupL(  )
     {
-    //MMPXCollectionUtility* collectionUtility = MMPXCollectionUtility::NewL(NULL, KMcModeDefault);
-    //CMPXCollectionPath* path ;//= collectionUtility->Collection().PathL();
-		//iML = MGlxMediaList::InstanceL(*path,NULL);
 	iMediaList = new (ELeave) _CGlxTestMediaList;
 	iMediaList->AppendL(0, ETrue);
 	iMediaList->AppendL(1, ETrue);
--- a/photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/src/t_glxcommandhandlermarking.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/ut__commandhandlermarking/src/t_glxcommandhandlermarking.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -242,7 +242,7 @@
 	CGlxMarkingCommandHandlerTester* me = new(ELeave)CGlxMarkingCommandHandlerTester();
 	CleanupStack::PushL(me);
 	me->ConstructL();
-	CleanupStack::Pop();
+	CleanupStack::Pop( me );
 	return me;
 	}
 	
@@ -306,8 +306,7 @@
 ut__commandhandlermarking* ut__commandhandlermarking::NewL()
     {
     ut__commandhandlermarking* self = ut__commandhandlermarking::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -315,9 +314,7 @@
     {
     ut__commandhandlermarking* self = new( ELeave ) ut__commandhandlermarking();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
--- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxcommandhandlerdrm.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxcommandhandlerdrm.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -121,8 +121,7 @@
 T_GlxCommandHandlerDRM* T_GlxCommandHandlerDRM::NewL()
     {
     T_GlxCommandHandlerDRM* self = T_GlxCommandHandlerDRM::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -130,9 +129,7 @@
     {
     T_GlxCommandHandlerDRM* self = new( ELeave ) T_GlxCommandHandlerDRM();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
--- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummydrmutility.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -31,7 +31,7 @@
     delete this;
     }
     
-TBool CGlxDRMUtility::CheckOpenRightsL( const TDesC& aUri, TBool )
+TBool CGlxDRMUtility::ItemRightsValidityCheckL( const TDesC& aUri, TBool )
     {
     TBool rightsInvalid = ETrue;
     
--- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummyhuiutility.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlerdrm/src/t_glxdummyhuiutility.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -21,10 +21,8 @@
 
 // INCLUDE FILES
 #include <Alf/AlfControlGroup.h>
-//#include <Alf/AlfDisplayCoeControl.h>
 #include <Alf/AlfDisplay.h>
 #include <Alf/AlfUtil.h>
-//#include <Alf/AlfSkin.h>
 #include <Alf/AlfEnv.h>
 #include <Alf/AlfTexture.h>
 #include <Alf/AlfTextureManager.h>
@@ -255,7 +253,7 @@
                                                    TSize /*aRequestedSize*/)
     {
    
-    CAlfTexture* texture = NULL; //CAlfTexture::NewL(iEnv,0);       
+    CAlfTexture* texture = NULL;       
     return *texture;
     }
 
@@ -270,7 +268,7 @@
                 
     {
     // Create empty texture (not owned)
-    CAlfTexture* texture = NULL; //CAlfTexture::NewL();
+    CAlfTexture* texture = NULL;
     return *texture;
     }
 
@@ -285,7 +283,7 @@
                                             TInt& aTextureId )
     {
     // Create empty texture
-    CAlfTexture* texture = NULL; //CAlfTexture::NewL();
+    CAlfTexture* texture = NULL;
     return *texture;
     }
 
--- a/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/src/t_glxcommandhandlermoreinfo.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/commandhandlers/tsrc/ut_commandhandlermoreinfo/src/t_glxcommandhandlermoreinfo.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -95,8 +95,7 @@
 t_glxcommandhandlermoreinfo* t_glxcommandhandlermoreinfo::NewL()
     {
     t_glxcommandhandlermoreinfo* self = t_glxcommandhandlermoreinfo::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -104,9 +103,7 @@
     {
     t_glxcommandhandlermoreinfo* self = new( ELeave ) t_glxcommandhandlermoreinfo();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
--- a/photosgallery/viewframework/dataprovider/inc/glxattributerequirement.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/inc/glxattributerequirement.h	Wed Mar 31 21:31:03 2010 +0300
@@ -87,7 +87,6 @@
 	
     TGlxFromFocusOutwardIterator iFromFocusOutwardIterator;
     TGlxFromManualIndexBlockyIterator iBlockyIterator;
-    //RArray<CGlxAttributeContext*> iArributeContext;
     RPointerArray<CGlxDefaultAttributeContext> iArributeContext;
     RPointerArray<CGlxThumbnailContext> iThumbnailContext;
     
--- a/photosgallery/viewframework/dataprovider/src/glxbinding.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxbinding.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -207,7 +207,6 @@
 CGlxSingleTagBinding::~CGlxSingleTagBinding()
     {
     TRACER("CGlxSingleTagBinding::~CGlxSingleTagBinding");
-    //delete iMulTag;
     }
 
 // ----------------------------------------------------------------------------
@@ -217,7 +216,6 @@
 void CGlxSingleTagBinding::BaseConstructL( const Alf::mulvisualitem::TVisualAttribute& aMulTag /*const char* const aMulTag*/ )
     {
     TRACER("CGlxSingleTagBinding::BaseConstructL");
-    //iMulTag = new ( ELeave ) UString( aMulTag );
     iMulTag = aMulTag ;
     }
 
@@ -329,7 +327,6 @@
 	{
 	TRACER("CGlxStringBinding::ConstructL");
 	BaseConstructL( aMulTag );
-    //iString = new ( ELeave ) UString( aString );
 	}
 	
 // ----------------------------------------------------------------------------
--- a/photosgallery/viewframework/dataprovider/src/glxbindingset.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxbindingset.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -61,7 +61,6 @@
     TRACER("CGlxBindingSet::AddBindingL");
     __ASSERT_DEBUG( aBinding, User::Invariant() ); // null binding not accepted
     iBindings.AppendL( aBinding );
-    //CleanupStack ::Pop( aBinding );
     aBinding->SetObserver( *this );
     }
 
--- a/photosgallery/viewframework/dataprovider/src/glxcommandbindingutility.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxcommandbindingutility.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -25,7 +25,6 @@
 #include <glxtracer.h>
 #include <mul/mulvisualitem.h>              // Client need to use this class to add data in data model 
 
-//const char* const KCommandTagName = "cmd";
 const int KCommandTagName = 200;
 
 // ----------------------------------------------------------------------------
--- a/photosgallery/viewframework/dataprovider/src/glxcontainerlistbinding.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxcontainerlistbinding.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -246,8 +246,6 @@
 CGlxBinding::TResponse CGlxContainerListBinding::HandleFocusChanged( 
         TBool /*aIsGained*/ )
     {
-    //@todo - Need further implementation
-    //return aIsGained ? EUpdateRequested : ENoUpdateNeeded ;
     //need to remove once bug ESPK-7G6GJX is fixed
     return ENoUpdateNeeded ;
     }
--- a/photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxdetailsboundcommand.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -523,14 +523,9 @@
 	TRACER("CGlxLocationBoundCommand::OfferCommandL");
 	iMedialist = &aMedialist;
 	TBool consumed = EFalse;
-	//iAppUi = static_cast< CAknAppUi* >( CCoeEnv::Static()->AppUi() );
 	if ( aCommandId == KGlxEditBoundMenuCommandId )
 		{
 		iOnNaviKeySelect = ETrue;
-		//iAppUi->ProcessCommandL( EGlxCmdOptions );
-		//iOnNaviKeySelect = EFalse;
-		
-		/** Error Id ESWG-7LSE3W **/
 		//get the media item
 		const TGlxMedia& media = iMedialist->Item( 0 );
 		// Test to see if the coordinate is present
@@ -545,7 +540,6 @@
 			}
 		else
 			{
-			/** Error Id EMPY-7MKDHP **/
 			/** Show menu pane options **/
 			if(iDialogObserver)
 				{
--- a/photosgallery/viewframework/dataprovider/src/glxdetailsmulmodelproviderimpl.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxdetailsmulmodelproviderimpl.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -240,7 +240,6 @@
             iEntries[ aPreviousFocus ]->HandleFocusChanged( EFalse ) )
             {
             UpdateItems( aPreviousFocus, 1 );
-            //UpdateItemL( *iEntries[ aPreviousFocus ], media, aPreviousFocus );
             }
         }
     
@@ -250,7 +249,6 @@
             iEntries[ aNewFocus ]->HandleFocusChanged( ETrue ) )
             {
             UpdateItems( aNewFocus, 1 );
-            //UpdateItemL( *iEntries[ aNewFocus ], media, aNewFocus );
             }
         }
 	}
--- a/photosgallery/viewframework/dataprovider/src/glxmedialistmulmodelproviderimpl.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxmedialistmulmodelproviderimpl.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -199,9 +199,6 @@
         TInt aEndIndex, MGlxMediaList* /*aList*/ )
     {
     TRACER("CGlxMediaListMulModelProviderImpl::HandleItemRemovedL");
-    // hack of making the flag iIsReleventAttribute to Etrue will be removed 
-    // once the bug ESPK-7G6GJX
-    //iIsReleventAttribute = ETrue;
     RemoveItems( aStartIndex, aEndIndex - aStartIndex + 1 );
     }
 
--- a/photosgallery/viewframework/dataprovider/src/glxmuliconprovider.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxmuliconprovider.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -44,7 +44,6 @@
     TRACER("CGlxMulIconProvider::ConstructL");
     iResFileName.Copy(KDC_APP_BITMAP_DIR);
     iResFileName.Append(KGlxIconsFilename);
-    //iResFileName.Copy(resFile);
     }
 
 // ----------------------------------------------------------------------------
@@ -272,7 +271,7 @@
                 TMPXGeneralCategory  cat = aMedia.Category();                  
                 TBool checkViewRights = (cat==EMPXImage);
                 
-                if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights))
+                if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights))
                         {
                         return EMbmGlxiconsQgn_prop_drm_rights_valid_super;        
                         }
--- a/photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxpreviewthumbnailbinding.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -282,7 +282,6 @@
 //
 void CGlxPreviewThumbnailBinding::TimerTicked()
     {
-    //iTimerTicked = ETrue;
     TRACER("CGlxPreviewThumbnailBinding::TimerTicked");
     iCurrentOrientationLandscape = GlxGeneralUiUtilities::IsLandscape();
     
@@ -296,12 +295,10 @@
                 iTimerTicked = ETrue;
                 iProgressIndex++;
                 Update();
-                //iTimerTicked = EFalse;
                 }
             else
                 {
                 iProgressIndex = KErrNotFound;
-                //iStartedShowingThumbnails = EFalse;
                 }
             }     
          
@@ -504,7 +501,6 @@
 void CGlxPreviewThumbnailBinding::HandleFocusChangedL( NGlxListDefs::
     TFocusChangeType /*aType*/, TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/ )
     {
-   // HandleFocusChanged(ETrue);
    	TRACER("CGlxPreviewThumbnailBinding::HandleFocusChangedL");
     }
 
--- a/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/dataprovider/src/glxthumbnailvarianttype.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -32,6 +32,7 @@
 #include <glxtracer.h>
 #include <glxdrmutility.h>
 #include <mglxmedialist.h>
+#include <caf/caferr.h>
 _LIT(KGlxIconsFilename, "glxicons.mif");
 
 
@@ -130,21 +131,22 @@
 	    {
 	    GLX_DEBUG1("GlxThumbnailVariantType::CreateThumbnailTextureL");
 	    TMPXGeneralCategory cat = aMedia.Category();
+	    //Check if media is DRM rights protected
 	    if(drm)
             {
 
-            //Fix for ESLM-82WJ59: call 'CheckDisplayRightsL' only for focused item
+            //call 'DisplayItemRightsCheckL' only for focused item
             if(aIsFocused)
             	{
-            	expired = !iDrmUtility->CheckDisplayRightsL(uri, (cat == EMPXImage));
+            	expired = !iDrmUtility->DisplayItemRightsCheckL(uri, (cat == EMPXImage));
             	}
             else
             	{
-            	//Fix for ESLM-82WJ59: for validity check of non-focused item
-            	expired = !iDrmUtility->CheckOpenRightsL(uri, (cat == EMPXImage));
+            	//call 'ItemRightsValidityCheckL' for validity check of non-focused item
+            	expired = !iDrmUtility->ItemRightsValidityCheckL(uri, (cat == EMPXImage));
             	}
 
-            //Fix for ESLM-82WJ59: mush easier to understand.
+            //Check If DRM rights have expired.
             if( expired )
                 {
                 TRAP( err, mTextureId = iUiUtility->GlxTextureManager().CreateIconTextureL(
@@ -176,7 +178,8 @@
         }
 	else if ( (KErrNone == thumbnailError) || (KErrArgument == thumbnailError) 
         || (KErrDiskFull == thumbnailError) || (KErrNoMemory == thumbnailError) 
-		|| ( drm && isValid == EGlxDrmRightsInvalid ) )
+		|| ( drm && isValid == EGlxDrmRightsInvalid ) 
+		|| thumbnailError == KErrCANoRights )
 	    {
 		//Try and see if we can scale and show the grid tnm else show the default
 	    TBool isGridTnmShown = EFalse;		
--- a/photosgallery/viewframework/drmutility/bwins/glxdrmutilityu.def	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/drmutility/bwins/glxdrmutilityu.def	Wed Mar 31 21:31:03 2010 +0300
@@ -1,16 +1,16 @@
 EXPORTS
 	?SetAsAutomatedL@CGlxDRMUtility@@QAEXABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 1 NONAME ; void CGlxDRMUtility::SetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType)
-	?CanSetAsAutomatedL@CGlxDRMUtility@@QAEHABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 2 NONAME ; int CGlxDRMUtility::CanSetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType)
-	?IsForwardLockedL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 3 NONAME ; int CGlxDRMUtility::IsForwardLockedL(class TDesC16 const &)
-	?CheckOpenRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 4 NONAME ; int CGlxDRMUtility::CheckOpenRightsL(class TDesC16 const &, int)
-	?ConsumeRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 5 NONAME ; int CGlxDRMUtility::ConsumeRightsL(class TDesC16 const &)
-	?CheckDisplayRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 6 NONAME ; int CGlxDRMUtility::CheckDisplayRightsL(class TDesC16 const &, int)
+	?DisplayItemRightsCheckL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 2 NONAME ; int CGlxDRMUtility::DisplayItemRightsCheckL(class TDesC16 const &, int)
+	?CanSetAsAutomatedL@CGlxDRMUtility@@QAEHABVTDesC16@@W4TGlxDrmAutomatedType@@@Z @ 3 NONAME ; int CGlxDRMUtility::CanSetAsAutomatedL(class TDesC16 const &, enum TGlxDrmAutomatedType)
+	?IsForwardLockedL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 4 NONAME ; int CGlxDRMUtility::IsForwardLockedL(class TDesC16 const &)
+	?ClearLastConsumedItemUriL@CGlxDRMUtility@@QAEXXZ @ 5 NONAME ; void CGlxDRMUtility::ClearLastConsumedItemUriL(void)
+	?ConsumeRightsL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 6 NONAME ; int CGlxDRMUtility::ConsumeRightsL(class TDesC16 const &)
 	?ShowRightsInfoL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 7 NONAME ; void CGlxDRMUtility::ShowRightsInfoL(class TDesC16 const &)
 	?InstanceL@CGlxDRMUtility@@SAPAV1@XZ @ 8 NONAME ; class CGlxDRMUtility * CGlxDRMUtility::InstanceL(void)
-	?ClearLastConsumedItemUri@CGlxDRMUtility@@QAEXXZ @ 9 NONAME ; void CGlxDRMUtility::ClearLastConsumedItemUri(void)
+	?ShowInfoOnlineL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 9 NONAME ; void CGlxDRMUtility::ShowInfoOnlineL(class TDesC16 const &)
 	?ShowDRMDetailsPaneL@CGlxDRMUtility@@QAEXABVTDesC16@@@Z @ 10 NONAME ; void CGlxDRMUtility::ShowDRMDetailsPaneL(class TDesC16 const &)
-	?ShowInfoOnlineL@CGlxDRMUtility@@QAEXAAVTDesC16@@@Z @ 11 NONAME ; void CGlxDRMUtility::ShowInfoOnlineL(class TDesC16 &)
+	?CanShowInfoOnlineL@CGlxDRMUtility@@QAEHABVTDesC16@@@Z @ 11 NONAME ; int CGlxDRMUtility::CanShowInfoOnlineL(class TDesC16 const &)
 	?DRMThumbnailSize@CGlxDRMUtility@@QAE?AVTSize@@AAV2@@Z @ 12 NONAME ; class TSize CGlxDRMUtility::DRMThumbnailSize(class TSize &)
-	?CanShowInfoOnlineL@CGlxDRMUtility@@QAEHAAVTDesC16@@@Z @ 13 NONAME ; int CGlxDRMUtility::CanShowInfoOnlineL(class TDesC16 &)
+	?ItemRightsValidityCheckL@CGlxDRMUtility@@QAEHABVTDesC16@@H@Z @ 13 NONAME ; int CGlxDRMUtility::ItemRightsValidityCheckL(class TDesC16 const &, int)
 	?Close@CGlxDRMUtility@@QAEXXZ @ 14 NONAME ; void CGlxDRMUtility::Close(void)
 
--- a/photosgallery/viewframework/drmutility/eabi/glxdrmutilityu.def	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/drmutility/eabi/glxdrmutilityu.def	Wed Mar 31 21:31:03 2010 +0300
@@ -1,16 +1,16 @@
 EXPORTS
 	_ZN14CGlxDRMUtility14ConsumeRightsLERK7TDesC16 @ 1 NONAME
 	_ZN14CGlxDRMUtility15SetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 2 NONAME
-	_ZN14CGlxDRMUtility15ShowInfoOnlineLER7TDesC16 @ 3 NONAME
+	_ZN14CGlxDRMUtility15ShowInfoOnlineLERK7TDesC16 @ 3 NONAME
 	_ZN14CGlxDRMUtility15ShowRightsInfoLERK7TDesC16 @ 4 NONAME
-	_ZN14CGlxDRMUtility16CheckOpenRightsLERK7TDesC16i @ 5 NONAME
-	_ZN14CGlxDRMUtility16DRMThumbnailSizeER5TSize @ 6 NONAME
-	_ZN14CGlxDRMUtility16IsForwardLockedLERK7TDesC16 @ 7 NONAME
-	_ZN14CGlxDRMUtility18CanSetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 8 NONAME
-	_ZN14CGlxDRMUtility18CanShowInfoOnlineLER7TDesC16 @ 9 NONAME
-	_ZN14CGlxDRMUtility19CheckDisplayRightsLERK7TDesC16i @ 10 NONAME
-	_ZN14CGlxDRMUtility19ShowDRMDetailsPaneLERK7TDesC16 @ 11 NONAME
-	_ZN14CGlxDRMUtility24ClearLastConsumedItemUriEv @ 12 NONAME
+	_ZN14CGlxDRMUtility16DRMThumbnailSizeER5TSize @ 5 NONAME
+	_ZN14CGlxDRMUtility16IsForwardLockedLERK7TDesC16 @ 6 NONAME
+	_ZN14CGlxDRMUtility18CanSetAsAutomatedLERK7TDesC1620TGlxDrmAutomatedType @ 7 NONAME
+	_ZN14CGlxDRMUtility18CanShowInfoOnlineLERK7TDesC16 @ 8 NONAME
+	_ZN14CGlxDRMUtility19ShowDRMDetailsPaneLERK7TDesC16 @ 9 NONAME
+	_ZN14CGlxDRMUtility23DisplayItemRightsCheckLERK7TDesC16i @ 10 NONAME
+	_ZN14CGlxDRMUtility24ItemRightsValidityCheckLERK7TDesC16i @ 11 NONAME
+	_ZN14CGlxDRMUtility25ClearLastConsumedItemUriLEv @ 12 NONAME
 	_ZN14CGlxDRMUtility5CloseEv @ 13 NONAME
 	_ZN14CGlxDRMUtility9InstanceLEv @ 14 NONAME
 
--- a/photosgallery/viewframework/drmutility/inc/glxdrmutility.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/drmutility/inc/glxdrmutility.h	Wed Mar 31 21:31:03 2010 +0300
@@ -83,23 +83,25 @@
 
     /**
      * Check whether DRM rights are valid for specified item
-     *
+     * is called before right is consumed and for all items (focused or unfocused).
+     * 
      * @param aUri URI of the media item.
      * @param aCheckViewRights, check view rights if true, play if false
      * @return ETrue if valid rights exist for the media item.
      */
-    IMPORT_C TBool CheckOpenRightsL(const TDesC& aUri, TBool aCheckViewRights);
+    IMPORT_C TBool ItemRightsValidityCheckL(const TDesC& aUri, TBool aCheckViewRights);
 
     /**
      * Check whether DRM rights are valid for specified item
      * If the rights were just consumed, then allow to display
      * Otherwise, obtain current rights
-     *
+     * is called after right is consumed and for only focused/displayed item.
+     * 
      * @param aUri URI of the media item.
      * @param aCheckViewRights, check view rights if true, play if false
      * @return ETrue if valid rights exist for the media item.
      */
-    IMPORT_C TBool CheckDisplayRightsL(const TDesC& aUri, TBool aCheckViewRights);
+    IMPORT_C TBool DisplayItemRightsCheckL(const TDesC& aUri, TBool aCheckViewRights);
     
     /**
       * Consume rights for specified item
@@ -111,10 +113,9 @@
     IMPORT_C TBool ConsumeRightsL(const TDesC& aUri);
 
     /**
-     * Fix for ESLM-82WJ59:
      * Clears Last Consumed Uri
      */
-    IMPORT_C void ClearLastConsumedItemUri();
+    IMPORT_C void ClearLastConsumedItemUriL();
 
     /**
      * Test whether a media item is OMA DRM 2.0 protected and has an associated
@@ -122,13 +123,13 @@
      * @param aUri URI of the media item.
      * @return ETrue if it does.
      */
-    IMPORT_C TBool CanShowInfoOnlineL(TDesC& aUri);
+    IMPORT_C TBool CanShowInfoOnlineL(const TDesC& aUri);
 
     /**
      * Open the associated info URL for a media item in the browser.
      * @param aUri URI of the media item.
      */
-    IMPORT_C void ShowInfoOnlineL(TDesC& aUri);
+    IMPORT_C void ShowInfoOnlineL(const TDesC& aUri);
 
     /**
      * Test whether a media item can be set as automated content.     *
--- a/photosgallery/viewframework/drmutility/src/glxdrmutility.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/drmutility/src/glxdrmutility.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -121,17 +121,17 @@
     }
     
 //============================================================================
-// CheckOpenRightsL
-// Fix for ESLM-82WJ59:always call 'CheckOpenRightsL' only for checking DRM
-// rights validity for item.
+// ItemRightsValidityCheckL
+// for checking DRM rights validity for item.
+// is called before right is consumed and for all items (focused or unfocused).
 //============================================================================
-EXPORT_C TBool CGlxDRMUtility::CheckOpenRightsL( const TDesC& aUri,
+EXPORT_C TBool CGlxDRMUtility::ItemRightsValidityCheckL( const TDesC& aUri,
                                                 TBool aCheckViewRights )
     {
-    TRACER("CGlxDRMUtility::CheckOpenRightsL()");
+    TRACER("CGlxDRMUtility::ItemRightsValidityCheckL()");
     // When checking current rights for a URI
 
-    // Fix for ESLM-82WJ59: Allow to Open if rights for a URI was just consumed (i.e. same as stored URI)
+    //Allow to Open if rights for a URI was just consumed (i.e. same as stored URI)
 	if ( iLastConsumedItemUri->Length() > 0 )
 		{
 		if ( aUri.CompareF( *iLastConsumedItemUri ) == 0 )
@@ -140,7 +140,7 @@
 			}
 		}
 
-	// Fix for ESLM-82WJ59: Else for uri of non-focused uri, just check validity rights
+	//Else for uri of non-focused uri, just check validity rights
     TBool rightsValid = EFalse;
     TVirtualPathPtr path( aUri, KDefaultContentObject() );
 
@@ -154,13 +154,13 @@
     }
 
 //============================================================================
-// CheckDisplayRightsL
-// Fix for ESLM-82WJ59:always call 'CheckDisplayRightsL' only for focused item.
+// DisplayItemRightsCheckL
+// is called after right is consumed and for only focused/displayed item.
 //============================================================================
-EXPORT_C TBool CGlxDRMUtility::CheckDisplayRightsL( const TDesC& aUri,
+EXPORT_C TBool CGlxDRMUtility::DisplayItemRightsCheckL( const TDesC& aUri,
                                                     TBool aCheckViewRights )
     {
-    TRACER("CGlxDRMUtility::CheckDisplayRightsL()");
+    TRACER("CGlxDRMUtility::DisplayItemRightsCheckL()");
 
     // Allow to display if rights for a URI was just consumed (i.e. same as stored URI)
     if ( iLastConsumedItemUri->Length() > 0 )
@@ -171,11 +171,11 @@
             }
         }
 
-    //Fix for ESLM-82WJ59: Clear the stored uri since focus has changed
-    ClearLastConsumedItemUri();
+    //Clear the stored uri since focus has changed
+    ClearLastConsumedItemUriL();
 
     // Otherwise, check current rights for the URI of newly focused item
-    return CheckOpenRightsL( aUri, aCheckViewRights );
+    return ItemRightsValidityCheckL( aUri, aCheckViewRights );
     }
 
 //============================================================================
@@ -190,15 +190,15 @@
     // Tell the agent we are planning to display the content
     CData* data = CData::NewLC(path, ContentAccess::EView, EContentShareReadOnly);
 
-    //Fix for ESLM-82WJ59: When consuming rights for a URI, clear stored URI
-    ClearLastConsumedItemUri();
+    //When consuming rights for a URI, clear stored URI
+    ClearLastConsumedItemUriL();
 
     // Execute the intent, tell the agent that we plan to display the content
     // It is at this point that any stateful rights will be decremented
     TInt err = data->ExecuteIntent(ContentAccess::EView);
     if ( err == KErrNone )
         {
-        //Fix for ESLM-82WJ59: Update stored URI
+        //Update stored URI
         iLastConsumedItemUri = iLastConsumedItemUri->ReAllocL( aUri.Length() );
         TPtr newPtr = iLastConsumedItemUri->Des();
         newPtr.Copy( aUri );
@@ -210,14 +210,13 @@
     }
 
 //============================================================================
-//Fix for ESLM-82WJ59:
 //Clears Last Consumed Uri
 //============================================================================
-EXPORT_C void CGlxDRMUtility::ClearLastConsumedItemUri()
+EXPORT_C void CGlxDRMUtility::ClearLastConsumedItemUriL()
 	{
 	//clears the stored uri
-	TPtr aPtr = iLastConsumedItemUri->Des();
-	aPtr.Zero();
+	TPtr ptr = iLastConsumedItemUri->Des();
+	ptr.Zero();
 	iLastConsumedItemUri = iLastConsumedItemUri->ReAllocL( 0 );
 	}
 
@@ -225,13 +224,13 @@
 // Test whether a media item is OMA DRM 2.0 protected and has an associated
 // info URL.
 //============================================================================
-EXPORT_C TBool CGlxDRMUtility::CanShowInfoOnlineL(TDesC& aUri)
+EXPORT_C TBool CGlxDRMUtility::CanShowInfoOnlineL(const TDesC& aUri)
     {
     TRACER("CGlxDRMUtility::CanShowInfoOnlineL()");
     TBool canShowInfoOnline = EFalse;
 
     HBufC8* urlBuf = NULL;
-    canShowInfoOnline = iDrmHelper->HasInfoUrlL(aUri, urlBuf);
+    canShowInfoOnline = iDrmHelper->HasInfoUrlL( const_cast<TDesC&>(aUri) , urlBuf);
 
     // discard buf we don't need it
     delete urlBuf;
@@ -242,10 +241,10 @@
 //============================================================================
 // Open the associated info URL for a media item in the browser.
 //============================================================================
-EXPORT_C void CGlxDRMUtility::ShowInfoOnlineL(TDesC& aUri)
+EXPORT_C void CGlxDRMUtility::ShowInfoOnlineL(const TDesC& aUri)
     {
     TRACER("CGlxDRMUtility::ShowInfoOnlineL()");
-    iDrmHelper->OpenInfoUrlL(aUri);
+    iDrmHelper->OpenInfoUrlL( const_cast<TDesC&>(aUri) );
     }
 
 //============================================================================
@@ -305,7 +304,7 @@
     {
     TRACER("CGlxDRMUtility::ShowDRMDetailsPaneL()");
     TRAPD( err, iDrmHelper->LaunchDetailsViewEmbeddedL( aUri ) );
-    // if no rights ask user to re-activate?
+    // if no rights ask user to re-activate
     if( err == KErrCANoRights )
         {
         HBufC* buf = aUri.AllocLC();
--- a/photosgallery/viewframework/layouts/inc/glxblendlayout.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Layout blender
-*
-*/
-
-
-
-
-#ifndef C_GLXBLENDLAYOUTBLEND_H
-#define C_GLXBLENDLAYOUTBLEND_H
-
-#include <glxlayout.h>
-
-/**
- *  TGlxBlendLayout 
- *
- *  Blender of multiple MGlxLayouts based on coefficients
- *
- *  @lib glxlayouts.lib
- */
- 
-//@TODO : Class wont be used - To be removed 
-class TGlxBlendLayout : public TGlxLayout
-	{
-	public:
-
-		/**
-		 * Constructor, reset the values
-		 */
-		IMPORT_C TGlxBlendLayout();
-
-		/**
-		 * Destructor
-		 */
-		IMPORT_C ~TGlxBlendLayout();
-		
-		/**
-		 * Add a layout to be blended
-		 * @param aLayout the layout to add, cannot be NULL
-		 */
-		IMPORT_C void AddLayoutL( MGlxLayout* aLayout );
-
-		/**
-		 * Remove an existing layout
-		 * @param aLayout the layout to remove
-		 */
-		IMPORT_C void RemoveLayout( const MGlxLayout* aLayout );
-
-		/**
-		 * Remove all existing layouts
-		 */
-		IMPORT_C void RemoveAllLayouts();
-
-	protected:	// From TGlxLayout
-
-		/// @ref TGlxLayout::DoSetLayoutValues
-		void DoSetLayoutValues( TGlxLayoutInfo& aInfo );
-		/// @ref TGlxLayout::DoChanged
-		TBool DoChanged() const;
-		/// @ref TGlxLayout::DoClearChanged
-		void DoClearChanged();
-
-	private:
-
-		/**
-		 * Helper struct to store the layout and layout info
-		 */
-		struct TLayout
-			{
-			/// Ref: the layout
-			MGlxLayout* iLayout;
-			/// Own: the layoutinfo for the layout
-			TGlxLayoutInfoResetter iLayoutInfo;
-			/**
-			 * Helper to tell whether two TLayout structs match
-			 */
-			static TBool Match( const TLayout& aLhs, const TLayout& aRhs );
-			};
-		/// Own: array of cached layout infos
-		RArray< TLayout > iLayouts;
-
-		/**
-		 * Changed flag to remember whether any layouts have been added or removed
-		 * since the las call to DoClearChanged
-		 */
-		TBool iChanged;
-	};
-
-#endif // C_GLXBLENDLAYOUTBLEND_H
--- a/photosgallery/viewframework/layouts/inc/glxsetcoefficientlayout.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Set coefficient layout
-*
-*/
-
-
-
-
-#ifndef T_GLXSETCOEFFICIENTLAYOUT_H
-#define T_GLXSETCOEFFICIENTLAYOUT_H
-
-#include <glxlayout.h>
-#include <alf/alfTimedValue.h>
-
-/**
- *  TGlxSetCoefficientLayout
- *  
- *  Resets the coefficient to a defined value.
- *  The value can be animated.
- *
- *  @lib glxlayouts.lib
- */
-class TGlxSetCoefficientLayout : public TGlxLayout
-	{
-	public:
-
-		/**
-		 * Constructor.
-		 */
-		IMPORT_C TGlxSetCoefficientLayout();
-
-		/**
-		 * Destructor.
-		 */
-		IMPORT_C ~TGlxSetCoefficientLayout();
-
-		/**
-		 * Set layout type to which the coefficient is set
-		 * @param aType the layout type, see @ref TGlxLayoutInfo::TLayoutType
-		 */
-		IMPORT_C void SetType( TGlxLayoutInfo::TLayoutType aType );
-
-		/**
-		 * SetCoefficient.
-		 * @param aCoefficient the value to set
-		 * @param aMilliseconds the target time for the coefficient value 
-		 */
-		IMPORT_C void SetCoefficient( TReal32 aCoefficient, TInt aMilliseconds );
-		
-	protected:	// From TGlxLayout
-
-		/// @ref TGlxLayout::DoSetLayoutValues
-		void DoSetLayoutValues( TGlxLayoutInfo& aInfo );
-		/// @ref TGlxLayout::DoChanged
-		TBool DoChanged() const;
-		/// @ref TGlxLayout::DoClearChanged
-		void DoClearChanged();
-
-	private:
-
-		/// Own: the type of the layout
-		TGlxLayoutInfo::TLayoutType iType;
-		/// Own: the timed value for the coefficient
-	    TAlfTimedValue iCoefficient;
-
-	};
-	
-#endif // T_GLXSETCOEFFICIENTLAYOUT_H
--- a/photosgallery/viewframework/layouts/inc/glxzoomlayoutbase.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Definition of TGlxZoomLayoutBase
-*
-*/
-
-
-
-
-#ifndef GLXZOOMLAYOUTBASE_H
-#define GLXZOOMLAYOUTBASE_H
-
-// INCLUDES
-
-#include <glxlayout.h>
-
-// FORWARD DECLARATIONS
-
-struct TAlfRealRect;
-
-// CLASS DECLARATION
-
-/**
-* Abtract base class for zooming layouts.  Sets layout values based on
-* coordinates provided by the derived class.
-*
-* @internal reviewed 06/06/2007 by Kimmo Hoikka
-*/
-class TGlxZoomLayoutBase : public TGlxLayout
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * C++ default constructor.
-        */
-        IMPORT_C TGlxZoomLayoutBase();
-
-        /**
-        * Destructor.
-        */
-        IMPORT_C ~TGlxZoomLayoutBase();
-
-    public: // New functions
-
-        /**
-        * Set the image dimensions.
-        * @param aDimensions Dimensions of the image being zoomed (in pixels)
-        */
-        IMPORT_C void SetImageDimensions(const TSize& aDimensions);
-        /**
-        * Get the image dimensions.
-        * @return const TSize& Dimensions of the image being zoomed (in pixels)
-        */
-        IMPORT_C const TSize& ImageDimensions() const;
-
-        /**
-        * Get current zoom and pan values.  The returned rectangle is relative
-        * to the screen, ie. if the width is 2, the visual should be twice the
-        * width of the screen, and if the centre of the rectangle is (0, 0) the
-        * visual should be centred on the screen. If the rectangle is
-        * (-0.5, -0.5) - (0.5, 0.5) then the visual should exactly fill the
-        * screen.
-        * @param aRect Reference to rect in which to return coords.
-        */
-        virtual void GetCurrentCoords(TAlfRealRect& aRect) = 0;
-        /**
-        * Get "predicted" zoom and pan values.  These are the values that would
-        * eventually be reached if the user released all zoom/pan keys now.
-        * @param aRect Reference to rect in which to return coords.
-        */
-        virtual void GetPredictedCoords(TAlfRealRect& aRect) = 0;
-
-    protected:  // From TGlxLayout
-
-        /** See @ref TGlxLayout::DoSetLayoutValues */
-        IMPORT_C void DoSetLayoutValues(TGlxLayoutInfo& aInfo);
-        /** See @ref TGlxLayout::DoChanged */
-        IMPORT_C TBool DoChanged() const;
-        /** See @ref TGlxLayout::DoClearChanged */
-        IMPORT_C void DoClearChanged();
-
-    protected:  // Data
-        /** Dimensions of the image being zoomed (in pixels) */
-        TSize iImageDimensions;
-
-    private:    // Data
-        /** Whether the layout has changed since last refresh */
-        TBool iChanged;
-    };
-
-#endif  // GLXZOOMLAYOUTBASE_H
-
-// End of File
--- a/photosgallery/viewframework/layouts/src/glxblendlayout.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,265 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Layout blender
-*
-*/
-
-
-
-
-#include "glxblendlayout.h" 
-#include <glxpanic.h> // Panic codes
-
-// LOCAL METHODS
-namespace
-	{
-	// helper method to calculate coefficiency for given field
-	TReal32 GetCoefficiency(
-		TGlxLayoutInfo& aBaseInfo, 
-		TGlxLayoutInfo& aDeltaInfo, 
-		TGlxLayoutInfo::TLayoutType aType, 
-		TInt aIndex )
-		{
-		/*
-		// position, get coefficients
-		//TReal32 new_coeff = aDeltaInfo.Coefficient( aType );
-		//TReal32 combined_coeff = aBaseInfo.Coefficient( aType );
-		// check if this is the first layout chain in the blender
-		// and full coefficiency has not been yet reached
-		if( aIndex == 0 && combined_coeff < 1.0 )
-			{
-			// increase the coefficient to reach 1.0
-			new_coeff = 1.0 - combined_coeff;
-			aBaseInfo.SetCoefficient( aType, 1.0 );
-			}
-		// if the coefficient was bigger than zero
-		// and full coefficiency has not been yet reached
-		else if( new_coeff > 0.0 && combined_coeff < 1.0 )
-			{
-			// dont allow coefficient to exceed 1.0
-			if( new_coeff > ( 1.0 - combined_coeff ) )
-				{
-				new_coeff = 1.0 - combined_coeff;
-				}
-			// increase the coefficient
-			aBaseInfo.SetCoefficient( aType, combined_coeff + new_coeff );
-			}
-		else
-			{
-			// coefficient over or underflow
-			new_coeff = 0;
-			}
-		return new_coeff;*/
-		} 
-	}
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-EXPORT_C TGlxBlendLayout::TGlxBlendLayout()
-	: iChanged( EFalse )	// blender not is changed by default
-	{
-	__DEBUG_ONLY( _iName = _L( "TGlxBlendLayout" ) );
-	}
-	
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-EXPORT_C TGlxBlendLayout::~TGlxBlendLayout () 
-	{
-	iLayouts.Close();
-	}
-	
-// -----------------------------------------------------------------------------
-// AddLayoutL
-// -----------------------------------------------------------------------------
-EXPORT_C void TGlxBlendLayout::AddLayoutL( MGlxLayout* aLayout )
-	{
-	// layout must not be null
-	__ASSERT_DEBUG( aLayout, Panic( EGlxPanicNullLayout ) );
-	// create layout struct
-	TLayout cache;
-	cache.iLayout = aLayout;
-	__ASSERT_DEBUG( 
-		iLayouts.Find( cache, TLayout::Match ) == KErrNotFound, 
-		Panic( EGlxPanicAlreadyAdded ) );
-
-	// cant set anything sane to layout info at this point
-	iLayouts.AppendL( cache );
-	iChanged = ETrue;
-	}
-
-// -----------------------------------------------------------------------------
-// RemoveLayout
-// -----------------------------------------------------------------------------
-EXPORT_C void TGlxBlendLayout::RemoveLayout( const MGlxLayout* aLayout )
-	{
-	TInt count = iLayouts.Count();
-	for( TInt i = 0; i < count; i++ )
-		{
-		if( iLayouts[ i ].iLayout == aLayout )
-			{
-			// Found it, remove
-			iLayouts.Remove( i );
-			iChanged = ETrue;
-			return;
-			}
-		}
-	// its ok to remove a layout that was already gone, no harm done there
-	}
-
-// -----------------------------------------------------------------------------
-// RemoveAllLayouts
-// -----------------------------------------------------------------------------
-EXPORT_C void TGlxBlendLayout::RemoveAllLayouts()
-	{
-	iLayouts.Close();
-	}
-
-// -----------------------------------------------------------------------------
-// MapValue
-// -----------------------------------------------------------------------------
-void TGlxBlendLayout::DoSetLayoutValues( TGlxLayoutInfo& aInfo )
-	{
-	/*
-	TInt count = iLayouts.Count();
-	// first set each layouts info fields correctly
-	for( TInt i = 0; i < count; i++ )
-		{
-		// reset the values for the layout info
-		//iLayouts[ i ].iLayoutInfo.Reset( aInfo.Index() );
-		//iLayouts[ i ].iLayoutInfo.SetVisual( aInfo.Visual() );
-		//iLayouts[ i ].iLayoutInfo.SetScreenInfo( aInfo.ScreenInfo() );
-		}
-
-	// process each layout
-	for( TInt i = 0; i < count; i++ )
-		{
-		// call the layout (chain) to perform the processing for their own info
-		iLayouts[ i ].iLayout->SetLayoutValues( iLayouts[ i ].iLayoutInfo );
-		}
-
-	// reset completely the aInfo fields and its coefficients
-	// we use the coefficient fields to know when we have enough values for
-	// certain field (coefficient reaches 1.0)
-	// we need to reset the base values as the cached values in layout chains
-	// had default values (which may not ne 0 for all fields)
-	aInfo.iPosition.iX = 0;
-	aInfo.iPosition.iY = 0;
-	aInfo.SetCoefficient( TGlxLayoutInfo::EPosition, 0 );
-	aInfo.iSize.iX = 0;
-	aInfo.iSize.iY = 0;
-	aInfo.SetCoefficient( TGlxLayoutInfo::ESize, 0 );
-	aInfo.iOpacity = 0;
-	aInfo.SetCoefficient( TGlxLayoutInfo::EOpacity, 0 );
-	aInfo.iRotation = 0;
-	aInfo.SetCoefficient( TGlxLayoutInfo::ERotation, 0 );
-
-	// then merge the values according to coefficients
-	// need to process in reverse order since layout in index 0
-	// has the strongest effect
-	for( TInt i = count - 1; i >= 0; i-- )
-		{
-		// position, get coefficient
-		TReal32 new_coeff = GetCoefficiency( 
-				aInfo, iLayouts[ i ].iLayoutInfo, 
-				TGlxLayoutInfo::EPosition, i );
-		// if the coefficient was bigger than zero
-		if( new_coeff > 0.0 )
-			{
-			// add new position, multiplied with the coefficient
-			aInfo.iPosition.iX += 
-				iLayouts[ i ].iLayoutInfo.iPosition.iX * new_coeff;
-			aInfo.iPosition.iY += 
-				iLayouts[ i ].iLayoutInfo.iPosition.iY * new_coeff;
-			}
-
-		// size, get coefficient
-		new_coeff = GetCoefficiency( 
-				aInfo, iLayouts[ i ].iLayoutInfo, 
-				TGlxLayoutInfo::ESize, i );
-		// if the coefficient was bigger than zero
-		if( new_coeff > 0.0 )
-			{
-			// add new size, multiplied with the coefficient
-			aInfo.iSize.iX += 
-				iLayouts[ i ].iLayoutInfo.iSize.iX * new_coeff;
-			aInfo.iSize.iY += 
-				iLayouts[ i ].iLayoutInfo.iSize.iY * new_coeff;
-			}
-
-		// opacity, get coefficient
-		new_coeff = GetCoefficiency( 
-				aInfo, iLayouts[ i ].iLayoutInfo, 
-				TGlxLayoutInfo::EOpacity, i );
-		if( new_coeff > 0.0 )
-			{
-			// add new opacity, multiplied with the coefficient
-			aInfo.iOpacity += 
-				iLayouts[ i ].iLayoutInfo.iOpacity * new_coeff;
-			}
-
-		// rotation, get coefficient
-		new_coeff = GetCoefficiency( 
-				aInfo, iLayouts[ i ].iLayoutInfo, 
-				TGlxLayoutInfo::ERotation, i );
-		if( new_coeff > 0.0 )
-			{
-			// add new rotation, multiplied with the coefficient
-			aInfo.iRotation += 
-				iLayouts[ i ].iLayoutInfo.iRotation * new_coeff;
-			}
-		} */
-	}
-
-// -----------------------------------------------------------------------------
-// DoChanged
-// -----------------------------------------------------------------------------
-TBool TGlxBlendLayout::DoChanged() const
-	{
-	// See if even one layout has changed
-	/// @todo consider adding the index of current visual to the Changed call
-/*	TInt count = iLayouts.Count();
-	for( TInt i = 0; i < count; i++ )
-		{
-		if( iLayouts[ i ].iLayout->Changed() )
-			{
-			return ETrue;
-			}
-		}
-
-	return iChanged;
-*/	}
-	
-// -----------------------------------------------------------------------------
-// DoClearChanged
-// -----------------------------------------------------------------------------
-void TGlxBlendLayout::DoClearChanged() 
-	{
-	TInt count = iLayouts.Count();
-	for( TInt i = 0; i < count; i++ )
-		{
-//		iLayouts[ i ].iLayout->ClearChanged();
-		}
-		
-	iChanged = EFalse;
-	}
-
-// -----------------------------------------------------------------------------
-// TLayout::Match
-// -----------------------------------------------------------------------------
-TBool TGlxBlendLayout::TLayout::Match( const TLayout& aLhs, const TLayout& aRhs )
-	{
-	return aLhs.iLayout == aRhs.iLayout;
-	}
--- a/photosgallery/viewframework/layouts/src/glxlayoutsplitter.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/layouts/src/glxlayoutsplitter.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -62,8 +62,6 @@
 	{
 	// Call SetVisualListL first
 	__ASSERT_DEBUG( iVisualList, Panic( EGlxPanicNullVisualList ) ); 
-	// to replace EGlxPanicNullCHuiVisual
-	//__ASSERT_DEBUG( aVisual && aLayout, Panic( EGlxPanicNullCAlfVisual ) );  
 	// search if there already is a layout for this visual
 	__DEBUG_ONLY( TLayout temp;temp.iVisual = aVisual; );
 	__ASSERT_DEBUG( 
@@ -89,7 +87,7 @@
 		{
 		iLayouts.Remove( index );
 		}
-	// NOTE! it is ok to try to remove a layout from visual when there was none
+	// NOTE: it is ok to try to remove a layout from visual when there was none
 	}
 	
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/layouts/src/glxsetcoefficientlayout.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Set coefficient layout
-*
-*/
-
-
-
-
-#include "glxsetcoefficientlayout.h"
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-EXPORT_C TGlxSetCoefficientLayout::TGlxSetCoefficientLayout()
-	{
-	__DEBUG_ONLY( _iName = _L( "TGlxSetCoefficientLayout" ) );
-
-	// by default set all coefficients
-	iType = TGlxLayoutInfo::ELastEnum;
-	}
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-EXPORT_C TGlxSetCoefficientLayout::~TGlxSetCoefficientLayout()
-	{
-	// Do nothing
-	}
-
-// -----------------------------------------------------------------------------
-// SetType
-// -----------------------------------------------------------------------------
-EXPORT_C void TGlxSetCoefficientLayout::SetType( TGlxLayoutInfo::TLayoutType aType )
-	{
-	iType = aType;
-	}
-
-// -----------------------------------------------------------------------------
-// SetCoefficient
-// -----------------------------------------------------------------------------
-EXPORT_C void TGlxSetCoefficientLayout::SetCoefficient( 
-	TReal32 aCoefficient, TInt aMilliseconds)
-	{
-//	iCoefficient.Set( aCoefficient, aMilliseconds );
-	}
-
-// -----------------------------------------------------------------------------
-// DoMapValue
-// -----------------------------------------------------------------------------
-void TGlxSetCoefficientLayout::DoSetLayoutValues( TGlxLayoutInfo& aInfo )
-	{
-	// set coefficient
-	if( iType == TGlxLayoutInfo::ELastEnum )
-		{
-		// set them all
-		for( TInt i = 0; i < TGlxLayoutInfo::ELastEnum; i++ )
-			{
-			// need to cast the index to enum type for the compiler to be happy
-//			aInfo.SetCoefficient( 
-//				(TGlxLayoutInfo::TLayoutType)i, iCoefficient.Now() );
-			}
-		}
-	else
-		{
-		// just set the one specified
-//		aInfo.SetCoefficient( iType, iCoefficient.Now() );
-		}
-	}
-	
-// -----------------------------------------------------------------------------
-// DoChanged
-// -----------------------------------------------------------------------------
-TBool TGlxSetCoefficientLayout::DoChanged() const
-	{
-//	return iCoefficient.Changed();
-	}
-	
-// -----------------------------------------------------------------------------
-// DoClearChanged
-// -----------------------------------------------------------------------------
-void TGlxSetCoefficientLayout::DoClearChanged() 
-	{
-//	iCoefficient.ClearChanged();
-	}
-	
--- a/photosgallery/viewframework/layouts/src/glxzoomlayoutbase.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Implementation of TGlxZoomLayoutBase
-*
-*/
-
-
-
-
-// INCLUDE FILES
-
-#include "glxzoomlayoutbase.h"
-
-#include <alf/alftimedvalue.h>
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TGlxZoomLayoutBase::TGlxZoomLayoutBase()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-EXPORT_C TGlxZoomLayoutBase::~TGlxZoomLayoutBase()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// SetImageDimensions
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TGlxZoomLayoutBase::SetImageDimensions(const TSize& aDimensions)
-    {
-    iImageDimensions = aDimensions;
-    iChanged = ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// ImageDimensions
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TSize& TGlxZoomLayoutBase::ImageDimensions() const
-    {
-    return iImageDimensions;
-    }
-
-// -----------------------------------------------------------------------------
-// DoSetLayoutValues
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void TGlxZoomLayoutBase::DoSetLayoutValues(TGlxLayoutInfo& aInfo)
-    {
-    TAlfRealRect rect;
-    GetCurrentCoords(rect);
-
-    // These checks on iImageDimensions width/height must occur after GetCurrentCoords,
-  /*  // since they may be changed as a result of the call to GetCurrentCoords
-    if ( iImageDimensions.iWidth > 0 && iImageDimensions.iHeight > 0 )
-        {
-        // The previous layout in the chain has set the position and size for
-        // the visual to fill the screen, so we base the values on that.
-
-        // Now adjust according to zoom coordinates
-        TAlfRealPoint centre = rect.Center();        
-        TReal32 width = aInfo.iScreenSize.iX * rect.Width();
-        TReal32 height = aInfo.iScreenSize.iY * rect.Height();
-
-        // Adjust size according to proportion of screen that image fills
-        // Account for TGlxRotationLayout swapping width and height
-        TAlfRealSize imageSize(iImageDimensions);
-        TAlfRealSize screenSize(aInfo.ScreenInfo()->iWidth,
-                                aInfo.ScreenInfo()->iHeight);
-        if ( screenSize.iHeight * imageSize.iWidth
-                < imageSize.iHeight * screenSize.iWidth )
-            {
-            // Screen has wider aspect than image
-            TReal32 sizeRatioX = (screenSize.iHeight * imageSize.iWidth)
-                                / (screenSize.iWidth * imageSize.iHeight);
-            if ( aInfo.iRotation )
-                {
-                // Rotated
-                height *= sizeRatioX;
-                }
-            else
-                {
-                // Normal
-                width *= sizeRatioX;
-                }
-            }
-        else
-            {
-            // Screen has taller aspect than image
-            TReal32 sizeRatioY = (screenSize.iWidth * imageSize.iHeight)
-                                / (screenSize.iHeight * imageSize.iWidth);
-            if ( aInfo.iRotation )
-                {
-                // Rotated
-                width *= sizeRatioY;
-                }
-            else
-                {
-                // Normal
-                height *= sizeRatioY;
-                }
-            }
-
-        aInfo.iPosition.iX += centre.iX * aInfo.iSize.iX;
-        aInfo.iPosition.iY += centre.iY * aInfo.iSize.iY;
-        aInfo.iSize.iX = width;
-        aInfo.iSize.iY = height;
-        }
-*/
-    }
-
-
-//  End of File
--- a/photosgallery/viewframework/medialists/inc/glxcachemanager.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/inc/glxcachemanager.h	Wed Mar 31 21:31:03 2010 +0300
@@ -55,8 +55,7 @@
  */
 class CGlxCacheManager : public CBase, 
                          public MGlxCache, 
-                         public MGlxMediaPool,
-                         public MImageReadyCallBack
+                         public MGlxMediaPool
 #ifdef USE_S60_TNM
 , public MThumbnailManagerObserver
 #endif
@@ -184,9 +183,6 @@
 	//OOM
     void ForceCleanupMedia(TGlxIdSpaceId aSpaceId,TGlxMediaId aId); 
 
-public:
-    void ImageSizeReady(TInt aError, const TSize aSz);
-
 private:
     /**
      * Constructor
@@ -370,17 +366,16 @@
     CAsyncCallBack* iMaintainCacheCallback;
 
     RArray<TInt> iRequestedItemIndexes;
+    
     CGlxImageReader* iReader;
-    TSize iImgSz; 
-    /**
-     *  Active scheduler wait object. (Owned)
-     */
-    CActiveSchedulerWait* iSchedulerWait;
+
     // For image viewer, not own
-    CGlxImageViewerManager* iImageViewerInstance; 
+    CGlxImageViewerManager* iImageViewerInstance;
+    
 #ifdef USE_S60_TNM
     CThumbnailManager* iTnEngine; // Own
-	CMPXMedia* iMPXMedia;
+
+    CMPXMedia* iMPXMedia;
 
     // Loading information
     class TLoadingTN
--- a/photosgallery/viewframework/medialists/inc/glximagereader.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/inc/glximagereader.h	Wed Mar 31 21:31:03 2010 +0300
@@ -24,51 +24,29 @@
 class CFbsBitmap;
 
 /**
- *  Image Size observer.
- *
- *  Callback interface for getting size information of a given image.
- */
-class MImageReadyCallBack
-    {
-public:
-    /**
-     * Getting image size information is complete.
-     *
-     * @param aError         Error code.
-     * @param aSz            Size of the image.
-     */    
-    virtual void ImageSizeReady(TInt aError, const TSize aSz) = 0;
-    };
-
-/**
  *  CGlxImageReader
  *
  *  Image Attributes Reader
  *
  *  @lib glxmedialists.lib
  */
-class CGlxImageReader : public CActive
+class CGlxImageReader : public CBase
     {
 private:
-    static CGlxImageReader* NewLC(MImageReadyCallBack& aNotify);
-    CGlxImageReader(MImageReadyCallBack& aNotify);
+    static CGlxImageReader* NewLC();
+    CGlxImageReader();
     void ConstructL();
     void GetFileTypeL(TDataType aMimeType);
 
-protected:
-    void DoCancel();
-    void RunL();
-
 public:
-    static CGlxImageReader* NewL(MImageReadyCallBack& aNotify);
+    static CGlxImageReader* NewL();
     ~CGlxImageReader();
     TInt GetDRMRightsL(TInt aAttribute);
     TInt GetFrameCount();
+    TSize GetDimensions();
 
 private:
-    MImageReadyCallBack&                iNotify;
     CImageDecoder*                      iImageDecoder;
-    CFbsBitmap*                         iFrame;
     CGlxImageViewerManager*             iImgViewerMgr;
     };
 
--- a/photosgallery/viewframework/medialists/inc/glxmedialist.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/inc/glxmedialist.h	Wed Mar 31 21:31:03 2010 +0300
@@ -99,7 +99,10 @@
      * @param aAttributes attributes to request for the items
      * @param aDetailedSpecs attribute specifications
      */
-    void AttributeRequestL(RArray<TInt>& aItemIndexes, RArray<TGlxMediaId>& aItemIds, RArray<TMPXAttribute>& aAttributes, CMPXAttributeSpecs*& aDetailedSpecs) const;
+    void AttributeRequestL(RArray<TInt>& aItemIndexes,
+            RArray<TGlxMediaId>& aItemIds,
+            RArray<TMPXAttribute>& aAttributes,
+            CMPXAttributeSpecs*& aDetailedSpecs) const;
 
     /**
      * Ordering function for attributes
--- a/photosgallery/viewframework/medialists/inc/mglxmedialist.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/inc/mglxmedialist.h	Wed Mar 31 21:31:03 2010 +0300
@@ -159,17 +159,6 @@
     virtual void RemoveContext(const MGlxFetchContext* aContext) = 0;
 
     /**
-     * Sets the specified contexts as highest priority contexts. Other 
-     * contexts will retain their relative priority order, but will have 
-     * less priority than the specified contexts.
-     *
-     * @param aContextIds Ids of the contexts to be set as highest priority.
-     *		  Id at index 0 in the array is set to be the highest priority,
-     *		  Id at index 1, the second highest, etc.
-     */
-//	virtual void SetContextAsHighestPriority(RArray<TGlxMediaListContextId> aContextIds) = 0;
-	
-    /**
      * @returns the MPX collection utility that is bound to this list
      */
     virtual MMPXCollection& Collection() const = 0;
--- a/photosgallery/viewframework/medialists/src/glxcache.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxcache.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -136,7 +136,12 @@
     
     if (aMedia.IsSupported(KMPXMediaArrayContents))
         {
-        CMPXMediaArray* mediaArray = aMedia.ValueCObjectL<CMPXMediaArray>(KMPXMediaArrayContents);
+#ifdef _DEBUG
+        TTime startTime;
+        startTime.HomeTime();
+#endif       
+        CMPXMediaArray* mediaArray = aMedia.ValueCObjectL<CMPXMediaArray> (
+                KMPXMediaArrayContents);
         CleanupStack::PushL(mediaArray);
 
         TInt arrayCount = mediaArray->Count();
@@ -147,6 +152,12 @@
             }
 
         CleanupStack::PopAndDestroy(mediaArray);
+#ifdef _DEBUG
+        TTime stopTime;
+        stopTime.HomeTime();
+        GLX_DEBUG2("=>CGlxCache::MediaUpdatedL() took <%d> us",
+                (TInt)stopTime.MicroSecondsFrom(startTime).Int64());
+#endif    
         }
     else
         {
@@ -191,7 +202,7 @@
 		CopyNewAndModifiedL(*item, aMedia, newAttributes);
     	}
 		
-	// Broadcast the new attributes to all observers of the item and the cache
+	// Broadcast the new attributes to all observers of the item
 	if (newAttributes.Count() > 0)
 		{
 		TInt count = item->UserCount();
@@ -199,9 +210,6 @@
 			{
 			item->User( i ).HandleAttributesAvailableL( item->IndexInUser( i ), newAttributes );
 			}
-			
-	    // Broadcast to cache observers
-		// iCacheManager->BroadcastAttributesAvailableL(iIdSpaceId, id, newAttributes, item);
 		}
 
 	CleanupStack::PopAndDestroy(&newAttributes);
--- a/photosgallery/viewframework/medialists/src/glxcachemanager.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxcachemanager.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -55,8 +55,8 @@
 /// @todo Find optimal value for this
 const TInt KGlxTemporaryErrorRecheckPeriodInSeconds = 5;
 
-const TInt KGlxLowerMemoryLimitForCleanUp = 15000000;
-const TInt KGlxUpperMemoryLimitForCleanUp = 25000000;
+const TInt KGlxLowerMemoryLimitForCleanUp = 31500000; // 30 MB
+const TInt KGlxUpperMemoryLimitForCleanUp = 52500000; // 50 MB
 const TInt KGlxNoOfPagesToFlushInCriticalLowMemory = 4;
 // -----------------------------------------------------------------------------
 // InstanceL
@@ -115,7 +115,6 @@
     
     iGarbageCollector = CGlxGarbageCollector::NewL( iCaches );
     iTempErrorTimer = CPeriodic::NewL(CActive::EPriorityStandard);
-    iSchedulerWait = new (ELeave) CActiveSchedulerWait();
     iMaintainCacheCallback = new ( ELeave )
 	    CAsyncCallBack( TCallBack( MaintainCacheL, this ), CActive::EPriorityStandard );
 	    
@@ -133,7 +132,6 @@
 	{
 	TRACER("CGlxCacheManager::Destructor");
 	
-    delete iSchedulerWait;
  	iObserverList.ResetAndDestroy();
  	iCaches.ResetAndDestroy();
  	delete iTempThumbnail;
@@ -179,13 +177,8 @@
 void CGlxCacheManager::HandleWindowChangedL(CGlxMediaList* /*aList*/) 
 	{
 	TRACER("CGlxCacheManager::HandleWindowChangedL");
-	
 	GLX_LOG_INFO("---- MGallery - CGlxCacheManager::HandleWindowChangedL()---- ");
-    
     iMaintainCacheCallback->CallBack();
-    // Its Better if we are not Cleaning Cache here; Instaed Can Do inside MainTainCache
-    //MaintainCacheL();
-    //iGarbageCollector->Cleanup();
     }
 
 // -----------------------------------------------------------------------------
@@ -572,7 +565,7 @@
 #ifdef USE_S60_TNM
 					if (iRequestedItemIndexes.Count())
 						{
-                        // Cancel Clean-up is needed here;
+                        // Cancel Clean-up is needed here
                         HandleGarbageCollectionL(EFalse);                           
 						
 			            TSize tnSize;
@@ -675,7 +668,7 @@
 		                        attrSpecs->SetTObjectValueL<TInt>(thHandleAttrSpec, iTempThumbnail->Handle());
 		                        }
 
-		                    // Cancel Clean-up is needed here;
+		                    // Cancel Clean-up is needed here
 		                    // This is Going to Highly Used Call
 		                    // Can Think about an Ulternative.
 		                    HandleGarbageCollectionL(EFalse);
@@ -785,11 +778,7 @@
 
                         if(!iReader)
                             {
-                            TRAP(errInImage,iReader = CGlxImageReader::NewL(*this));
-                            if(errInImage == KErrNone)
-                                {
-                                iSchedulerWait->Start();
-                                }
+                            TRAP(errInImage, iReader = CGlxImageReader::NewL());
                             }
 
                         for ( TInt i = 0; i < iRequestedAttrs.Count(); i++ )
@@ -931,15 +920,15 @@
                                 }
                             else if ( iRequestedAttrs[i] == KGlxMediaGeneralDimensions )
                                 {
+                                TSize dimensions = TSize();
                                 if(errInImage == KErrNone)
                                     {
                                     //need to fetch the original file dimensions
-                                    TSize dimensions(iImgSz.iWidth,iImgSz.iHeight);
+                                    dimensions = iReader->GetDimensions();
                                     iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions);
                                     }
                                 else
                                     {
-                                    TSize dimensions(0,0);
                                     iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions);
                                     }
                                 }
@@ -1033,7 +1022,7 @@
                         TMPXAttribute thHandleAttrSpec(KGlxMediaIdThumbnail, KGlxAttribSpecThumbnailBitmapHandle);
                         attrSpecs->SetTObjectValueL<TInt>(thHandleAttrSpec, iTempThumbnail->Handle());
                         }
-                    // Cancel Clean-up is needed here;
+                    // Cancel Clean-up is needed here
                     // This is Going to Highly Used Call
                     // Can Think about an Ulternative.
                     HandleGarbageCollectionL(EFalse);
@@ -1295,7 +1284,6 @@
         {
         if ( KErrNoMemory == err )
             {
-            //iGarbageCollector->Cleanup();
             HandleGarbageCollectionL(ETrue);
             }
             
@@ -1541,28 +1529,29 @@
     User::LeaveIfError( session.Connect() );
     CleanupClosePushL( session );
 
-    TUid uid;
-    User::LeaveIfError( session.AppForDocument( aFileName, uid, aMimeType ) );
-    CleanupStack::PopAndDestroy(&session);
-    }
+    if (iImageViewerInstance->IsPrivate())
+        {
+        TDataRecognitionResult result;
+        TInt err = session.RecognizeData(iImageViewerInstance->ImageFileHandle(), result);
+        GLX_DEBUG2("CGlxCacheManager::GetMimeTypeL(FileHandle) err=%d", err);
+        if (err == KErrNone)
+            {
+            aMimeType = result.iDataType;
+            }
+        }
+    else
+        {
+        TUid uid;
+        TDataType dataType;
+        TInt err = session.AppForDocument(aFileName, uid, dataType);
+        GLX_DEBUG2("CGlxCacheManager::GetMimeTypeL(FileName) err=%d", err);
 
-// -----------------------------------------------------------------------------
-// ImageSizeReady()
-// -----------------------------------------------------------------------------
-//
-void CGlxCacheManager::ImageSizeReady(TInt aError, const TSize aSz)
-    {
-    TRACER("CGlxCacheManager::ImageSizeReady");
-    GLX_DEBUG2("CGlxCacheManager::ImageSizeReady aError=%d", aError);
-    iImgSz = TSize();
-    if(iSchedulerWait)
-        {
-        iSchedulerWait->AsyncStop();    
-        }    
-
-    iImgSz = aSz;
-    GLX_DEBUG3("CGlxCacheManager::ImageSizeReady() iImgSz w(%d) h(%d)", 
-            iImgSz.iWidth, iImgSz.iHeight);    
+        if (err == KErrNone)
+            {
+            aMimeType = dataType;
+            }
+        }
+    CleanupStack::PopAndDestroy(&session);
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/medialists/src/glxgarbagecollector.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxgarbagecollector.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -135,7 +135,6 @@
     if (iPeriodic->IsActive())
         {
         iPeriodic->Cancel();
-        // Consideration of Restarting the timer is there; 
         }
     }
 
--- a/photosgallery/viewframework/medialists/src/glximagereader.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glximagereader.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -34,11 +34,11 @@
 // CGlxImageReader::NewL
 // ---------------------------------------------------------
 //  
-CGlxImageReader* CGlxImageReader::NewL(MImageReadyCallBack& aNotify)
+CGlxImageReader* CGlxImageReader::NewL()
     {
     TRACER("CGlxImageReader::NewL");  
     
-    CGlxImageReader* self = CGlxImageReader::NewLC( aNotify);
+    CGlxImageReader* self = CGlxImageReader::NewLC();
     CleanupStack::Pop(self);
     return self;
     }
@@ -47,11 +47,11 @@
 // CGlxImageReader::NewLC
 // ---------------------------------------------------------
 //  
-CGlxImageReader* CGlxImageReader::NewLC(MImageReadyCallBack& aNotify)
+CGlxImageReader* CGlxImageReader::NewLC()
     {
     TRACER("CGlxImageReader::NewLC"); 
     
-    CGlxImageReader* self = new(ELeave) CGlxImageReader(aNotify);
+    CGlxImageReader* self = new(ELeave) CGlxImageReader();
     CleanupStack::PushL(self);
     self->ConstructL();
     return self;
@@ -61,10 +61,9 @@
 // CGlxImageReader::CGlxImageReader
 // ---------------------------------------------------------
 // 
-CGlxImageReader::CGlxImageReader(MImageReadyCallBack& aNotify)
-:CActive(0),iNotify(aNotify)
-                                {
-                                }
+CGlxImageReader::CGlxImageReader()
+    {
+    }
 
 // ---------------------------------------------------------
 // CGlxImageReader::~CGlxImageReader
@@ -75,15 +74,9 @@
     TRACER("CGlxImageReader::~");
     if(iImageDecoder)
         {
-        Cancel();
         delete iImageDecoder;
         }  
 
-    if(iFrame)
-        {
-        delete iFrame;
-        }
-
     if(iImgViewerMgr)
         {
         iImgViewerMgr->DeleteInstance();
@@ -98,8 +91,6 @@
     {
     TRACER("CGlxImageReader::ConstructL");
 
-    CActiveScheduler::Add(this);
-
     iImgViewerMgr = CGlxImageViewerManager::InstanceL();
     if (!iImgViewerMgr)
         {
@@ -121,48 +112,11 @@
             TRAP(errInImage,iImageDecoder = CImageDecoder::FileNewL(CCoeEnv::Static()->FsSession(), iImgViewerMgr->ImageUri()->Des()));
             }
         }
+    
     if (errInImage != KErrNone)
         {
         User::Leave(errInImage);
         }
-
-    if ( iImageDecoder )
-        {
-        iFrame = new (ELeave) CFbsBitmap();
-        User::LeaveIfError(iFrame->Create(
-                iImageDecoder->FrameInfo(0).iOverallSizeInPixels,
-                iImageDecoder->FrameInfo(0).iFrameDisplayMode));
-        iImageDecoder->Convert(&iStatus, *iFrame, 0);
-        SetActive();
-        }
-    }
-
-// ---------------------------------------------------------
-// CGlxImageReader::DoCancel
-// ---------------------------------------------------------
-//
-void CGlxImageReader::DoCancel()
-    {
-    TRACER("CGlxImageReader::DoCancel");
-    iImageDecoder->Cancel();
-    }
-
-// ---------------------------------------------------------
-// CGlxImageReader::RunL
-// ---------------------------------------------------------
-//
-void CGlxImageReader::RunL()
-    {
-    TRACER("CGlxImageReader::RunL");
-    
-    TSize size = TSize();
-    TInt reqStatus = iStatus.Int(); 
-    if (reqStatus == KErrNone && iFrame)
-        {
-        size = iFrame->SizeInPixels();
-        }
-    GLX_DEBUG2("CGlxImageReader::RunL() reqStatus=%d", reqStatus);   
-    iNotify.ImageSizeReady(reqStatus, size);
     }
 
 // ---------------------------------------------------------
@@ -223,5 +177,23 @@
         {
         frameCount = iImageDecoder->FrameCount();
         }
+    GLX_DEBUG2("CGlxImageReader::GetFrameCount frameCount=%d", frameCount);
     return frameCount;
     }
+
+// ---------------------------------------------------------
+// CGlxImageReader::GetDimensions
+// ---------------------------------------------------------
+//
+TSize CGlxImageReader::GetDimensions()
+    {
+    TRACER("CGlxImageReader::GetDimensions");
+    TSize size = TSize();
+    if (iImageDecoder)
+        {
+        size = iImageDecoder->FrameInfo().iOverallSizeInPixels;
+        }
+    GLX_DEBUG3("CGlxImageReader::GetImageSize() size w(%d) h(%d)",
+            size.iWidth, size.iHeight);
+    return size;
+    }
--- a/photosgallery/viewframework/medialists/src/glxlistwindow.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxlistwindow.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -445,9 +445,8 @@
 	    // Focus should stay on the same item if possible. If not, it should
 	    // go to the first previous item still existing. If none, it should go to 
 	    // first (=first next) item.
-        
-        // @todo: Do not maintain focus index in this class!!! This is broken
-	    
+
+        // @todo: Do not maintain focus index in this class, This is broken
 	    // Update focus if the removal point was before	the focus
 	    if (aFirstRemovedIndex <= newFocusIndex) 
 	    	{
@@ -658,7 +657,7 @@
     TRACER("CGlxListWindow::Range");
     
     TRange range;
-    range.iLength = iRearOffset - iFrontOffset + 1; // Add 1 for focus;
+    range.iLength = iRearOffset - iFrontOffset + 1; // Add 1 for focus
 
 	// Start index is always zero if the whole list fits into the window
 	if ( range.iLength >= aChange.iNewTotalSize ) 
--- a/photosgallery/viewframework/medialists/src/glxmedia.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxmedia.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -675,8 +675,6 @@
         return KNullDesC;
         }
 
-   // __ASSERT_DEBUG(EMPXTypeText == iValues[i].iType,
-   //                                     Panic(EGlxPanicWrongAttributeType));
    if(EMPXTypeText == iValues[i].iType)
     {
     ptr = reinterpret_cast<HBufC*>(iValues[i].iValue);
--- a/photosgallery/viewframework/medialists/src/glxmedialist.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxmedialist.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -680,9 +680,6 @@
 
     TInt index = iItemListObservers.Find(aObserver);
 
-    // Make sure the observer is in the array
-    // LOG THIS! __ASSERT_DEBUG(index != -1, Panic(EGlxPanicIllegalArgument)); // No such observer
-
     if (index != KErrNotFound) 
         {
         iItemListObservers.Remove(index);	
@@ -1738,8 +1735,12 @@
 inline void CGlxMediaList::UpdateMedia()
     {
     TRACER("CGlxMediaList::UpdateMedia");
-    
+#ifdef _DEBUG
+    TTime startTime;
+    startTime.HomeTime();
+#endif
     TInt count = iItemList->Count();
+    GLX_DEBUG2("CGlxMediaList::UpdateMedia() count=%d", count);    
     for (TInt i = 0; i < count; ++i)
         {
         TGlxMedia& item = iItemList->Item( i );
@@ -1751,6 +1752,12 @@
             UpdateMediaInvalidateAttributesChangedByCounts(item);
             }
         }
+#ifdef _DEBUG
+    TTime stopTime;
+    stopTime.HomeTime();
+    GLX_DEBUG2("=>CGlxMediaList::UpdateMedia() took <%d> us", 
+                    (TInt)stopTime.MicroSecondsFrom(startTime).Int64());
+#endif    
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/medialists/src/glxmedialistiterator.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxmedialistiterator.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -30,8 +30,8 @@
 // Default granularity of items to request for
 const TUint KGlxBlockyIteratorDefaultGranularity = 15;
 
-const TInt KGlxLowerMemoryLimitForCacheSize = 15000000;
-const TInt KGlxUpperMemoryLimitForCacheSize = 25000000;
+const TInt KGlxLowerMemoryLimitForCacheSize = 31500000; // 30 MB
+const TInt KGlxUpperMemoryLimitForCacheSize = 52500000; // 50 MB
 
 const TInt KMaxLowMemOffsetValue = 3;
 const TInt KMinLowMemOffsetValue = 1;
--- a/photosgallery/viewframework/medialists/src/glxnavigablelist.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxnavigablelist.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -689,14 +689,6 @@
         // remove from array of selected items
         iSelectedItemIndices.Remove( selectionArrayIndex );
         
-        // free unused memory from selected item indexes array
-        // (this call may be a performance bottleneck if executing unmark all
-        //  in a list of many thousands of items when most of them are marked.
-        //  if it is proved to be a performance bottleneck, it may be sensible
-        //  to count how many times Deselect has been called, an only
-        //  compress every x times.)
-        //iSelectedItemIndices.Compress();
-        
         // selection has changed, notify observer
         iObserver.HandleItemSelected( aIndex, EFalse );
         }
--- a/photosgallery/viewframework/medialists/src/glxthumbnailcontext.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/src/glxthumbnailcontext.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -159,7 +159,7 @@
     spec.iPossHeight = iResolutionUtility->PixelsToPoss( height );
     spec.iFocusOffset = aFocusOffset;
 
-    // Has this focus index has already been added?
+    // Checf if this focus index has already been added
     #ifdef _DEBUG
     TIdentityRelation<TAssignedFetchSpec> match (&TAssignedFetchSpec::Match);
     #endif
@@ -589,7 +589,7 @@
         const TDesC& uri = item.Uri();
         if ( uri.Length() && cat != EMPXNoCategory )
             {
-            valid = iDrmUtility->CheckOpenRightsL( uri, ( cat == EMPXImage ) );
+            valid = iDrmUtility->ItemRightsValidityCheckL( uri, ( cat == EMPXImage ) );
             CGlxMedia* properties = const_cast<CGlxMedia*>(item.Properties());
             if( valid )
                 {
--- a/photosgallery/viewframework/medialists/tsrc/src/glxlisttestbase.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/src/glxlisttestbase.h	Wed Mar 31 21:31:03 2010 +0300
@@ -90,12 +90,6 @@
          *                 and 'f' indicates "no, is not linked"
          */
         TBool IsLinkedToMedia( const TDesC8& aAnswers ) const;
-        /** 
-         * Creates a media object in pool, and offers to list.
-         * @param aAnswers See IsLinkedToMedia
-         * @param aShouldAccept ETrue if list should accept the offer
-         */
-        //TBool TryOfferMedia( TChar aId, const TDesC8& aAnswers, TBool aShouldAccept );
         
         /** 
          * Tries to remove reference of list from media
--- a/photosgallery/viewframework/medialists/tsrc/t_cglxcache/t_cglxcache.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/t_cglxcache/t_cglxcache.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -53,8 +53,7 @@
 T_CGlxCache* T_CGlxCache::NewL()
     {
     T_CGlxCache* self = T_CGlxCache::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -62,9 +61,7 @@
     {
     T_CGlxCache* self = new( ELeave ) T_CGlxCache();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
@@ -480,7 +477,6 @@
 
 void T_CGlxCache::T_CGlxCache_ReserveUsersLL(  )
     {
-    // iCGlxCache->ReserveUsersL( <add parameters here > );
     EUNIT_ASSERT_DESC( EFalse, "Generated assert, replace with real");
     }
     
@@ -512,7 +508,7 @@
     CGlxCacheObserverTest* self = new (ELeave) CGlxCacheObserverTest();
     CleanupStack::PushL(self);
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -599,7 +595,7 @@
     CGlxMediaUserTest* self = new (ELeave) CGlxMediaUserTest();
     CleanupStack::PushL(self);
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/t_cglxfetcherrorarray/t_cglxfetcherrorarray.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/t_cglxfetcherrorarray/t_cglxfetcherrorarray.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -39,8 +39,7 @@
 T_CGlxFetchErrorArray* T_CGlxFetchErrorArray::NewL()
     {
     T_CGlxFetchErrorArray* self = T_CGlxFetchErrorArray::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -48,9 +47,7 @@
     {
     T_CGlxFetchErrorArray* self = new( ELeave ) T_CGlxFetchErrorArray();
     CleanupStack::PushL( self );
-
     self->ConstructL();
-
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/t_cglxgarbagecollector/t_cglxgarbagecollector.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -60,12 +60,8 @@
 const TInt KCache3Media7Id = 7;
 
 _LIT(KCache1Media1Title, "Captured");
-//_LIT(KCache1Media2Title, "Albums");
-//_LIT(KCache1Media3Title, "All");
 
 _LIT(KCache1Media1SubTitle, "0 items");
-//_LIT(KCache1Media2SubTitle, "0 albums");
-//_LIT(KCache1Media3SubTitle, "7 items");
 
 _LIT(KCache2Media1Title, "Favourites");
 _LIT(KCache2Media2Title, "Print later");
@@ -74,24 +70,16 @@
 _LIT(KCache2Media2SubTitle, "0 items");
 
 _LIT(KCache3Media1Title, "Spring");
-//_LIT(KCache3Media2Title, "Summer");
 _LIT(KCache3Media3Title, "Autumn");
 _LIT(KCache3Media4Title, "Winter");
 _LIT(KCache3Media5Title, "Sun");
-//_LIT(KCache3Media6Title, "Moon");
-//_LIT(KCache3Media7Title, "Stars");
 
 const TInt KCache3Media1Size = 8;
 const TInt KCache3Media2Size = 16;
 const TInt KCache3Media3Size = 32;
-//const TInt KCache3Media4Size = 64;
-//const TInt KCache3Media5Size = 128;
-//const TInt KCache3Media6Size = 256;
-//const TInt KCache3Media7Size = 512;
 
 // This value must be the same as in the garbage collector
 const TInt KItemsScannedPerGCRound = 10;
-
 const TInt KErrorExpiryPeriod = 30;
 const TInt KTimerCallbackPeriod1 = 5;
 const TInt KTimerCallbackPeriod2 = 35;
@@ -107,8 +95,7 @@
 T_CGlxGarbageCollector* T_CGlxGarbageCollector::NewL()
     {
     T_CGlxGarbageCollector* self = T_CGlxGarbageCollector::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -1170,7 +1157,6 @@
     // Cleanup media1 in cache1
     EUNIT_PRINT(_L("Cleanup media1 in cache1"));
     CGlxMedia* media1Cache1 = cache1Helper.ItemPool()[0];
-	//CGlxMedia& media = cache1->Media(0);
     iCGlxGarbageCollector->CleanupMediaL(*cache1,*media1Cache1);
 
     EUNIT_PRINT(_L("Check remaining attributes for media1 in cache1"));
@@ -2247,7 +2233,7 @@
     CGlxMediaUserTest* self = new (ELeave) CGlxMediaUserTest(aGarbageCollector);
     CleanupStack::PushL(self);
     self->ConstructL(aAttributes);
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -2296,7 +2282,7 @@
     CTimerTest* self = new (ELeave) CTimerTest(aTestGarbageCollector);
     CleanupStack::PushL(self);
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/t_cglxmedia/t_cglxmedia.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/t_cglxmedia/t_cglxmedia.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -42,8 +42,7 @@
 T_CGlxMedia* T_CGlxMedia::NewL()
     {
     T_CGlxMedia* self = T_CGlxMedia::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/t_glxfromfocusoutwarditerator/t_glxfromfocusoutwarditerator.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/t_glxfromfocusoutwarditerator/t_glxfromfocusoutwarditerator.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -29,7 +29,7 @@
 T_CGlxFromFocusOutwardIterator* T_CGlxFromFocusOutwardIterator::NewL()
     {
     T_CGlxFromFocusOutwardIterator* self = T_CGlxFromFocusOutwardIterator::NewLC();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/t_glxlistwindow/t_glxlistwindow.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/t_glxlistwindow/t_glxlistwindow.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -35,8 +35,7 @@
 t_CGlxListWindow* t_CGlxListWindow::NewL()
     {
     t_CGlxListWindow* self = t_CGlxListWindow::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/t_tglxexclusioniterator/t_tglxexclusioniterator.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/t_tglxexclusioniterator/t_tglxexclusioniterator.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -32,8 +32,7 @@
 t_tglxexclusioniterator* t_tglxexclusioniterator::NewL()
     {
     t_tglxexclusioniterator* self = t_tglxexclusioniterator::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxattributecontext/ut_cglxattributecontext.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -46,7 +46,7 @@
     delete this;
     }
     
-TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool)
+TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool)
     {
     return ETrue;
     }
@@ -76,8 +76,7 @@
 UT_CGlxAttributeContext* UT_CGlxAttributeContext::NewL()
     {
     UT_CGlxAttributeContext* self = UT_CGlxAttributeContext::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -200,13 +199,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop( attributes );
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop( itemIndices );
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy( mediaList );
     }
 
 void UT_CGlxAttributeContext::FetchOneItem_IndexZeroL()
@@ -241,13 +240,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchOneItem_IndexOneL()
@@ -282,13 +281,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchOneItem_IndexTwoL()
@@ -323,13 +322,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchOneItem_IndexThreeL()
@@ -364,13 +363,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchOneItem_IndexFourL()
@@ -405,13 +404,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexZeroL()
@@ -446,13 +445,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexOneL()
@@ -487,13 +486,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemindices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexTwoL()
@@ -528,13 +527,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexThreeL()
@@ -569,13 +568,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexFourL()
@@ -610,13 +609,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchItems_GranularityLessThanRange_IndexFiveL()
@@ -651,13 +650,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 void UT_CGlxAttributeContext::FetchItems_GranularityGreaterThanRangeL()
@@ -692,13 +691,13 @@
     delete attributeSpecs;
     attributeSpecs = NULL;
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(attributes);
     attributes.Close();
 
-    CleanupStack::Pop();
+    CleanupStack::Pop(itemIndices);
     itemIndices.Close();
 
-    CleanupStack::PopAndDestroy();
+    CleanupStack::PopAndDestroy(mediaList);
     }
 
 TBool UT_CGlxAttributeContext::FindAttribute(RArray<TMPXAttribute>& aAttributes, const TMPXAttribute& aAttribute)
@@ -718,7 +717,7 @@
     CGlxMediaListTest* self = new (ELeave) CGlxMediaListTest();
     CleanupStack::PushL(self);
     self->ConstructL(aNumberOfMedia);
-    CleanupStack::Pop();
+    CleanupStack::Pop(self);
     return self;
     }
 
@@ -777,7 +776,7 @@
             }
 
         iMedias.AppendL(cGlxMedia);
-        CleanupStack::Pop();
+        CleanupStack::Pop(cGlxMedia);
         }
 
     TGlxMedia tGlxMedia(id, cGlxMedia);
--- a/photosgallery/viewframework/medialists/tsrc/ut_cglxitemlist/ut_cglxitemlist.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxitemlist/ut_cglxitemlist.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -60,8 +60,7 @@
 ut_CGlxItemList* ut_CGlxItemList::NewL()
     {
     ut_CGlxItemList* self = ut_CGlxItemList::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/ut_cglxmedialist/ut_cglxmedialist.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxmedialist/ut_cglxmedialist.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -52,7 +52,7 @@
     delete this;
     }
     
-TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool)
+TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool)
     {
     return ETrue;
     }
@@ -82,8 +82,7 @@
 UT_CGlxMediaList* UT_CGlxMediaList::NewL()
     {
     UT_CGlxMediaList* self = UT_CGlxMediaList::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -136,7 +135,7 @@
     path->AppendL(KFavouritesAlbumId);
 
     iCGlxMediaList = CGlxMediaList::InstanceL(*path, NULL);
-    CleanupStack::PopAndDestroy(); // path
+    CleanupStack::PopAndDestroy( path );
 
     iCGlxMediaList->AddMediaListObserverL(this);
 
@@ -698,7 +697,7 @@
     EUNIT_ASSERT(titleAvailable && (*title == KTitle()));
 
     delete title;
-    CleanupStack::PopAndDestroy(); // addContainerCommand
+    CleanupStack::PopAndDestroy( addContainerCommand ); 
     }
 
 void UT_CGlxMediaList::UT_CGlxMediaList_CancelCommandL(  )
@@ -783,7 +782,7 @@
         iCGlxMediaList->HandleCollectionMessageL(*message);
         }
 
-    CleanupStack::PopAndDestroy(); // message
+    CleanupStack::PopAndDestroy( message ); // message
 
     // Check correct notification was observed
     const TInt messageCount = mediaListObserver->MessageCount();
@@ -840,7 +839,7 @@
 
     iCGlxMediaList->RemoveMediaListObserver(mediaListObserver);
 
-    CleanupStack::PopAndDestroy(); // mediaListObserver
+    CleanupStack::PopAndDestroy( mediaListObserver ); 
     }
 
 void UT_CGlxMediaList::SetupFocusTestL()
@@ -912,7 +911,7 @@
 
     iCGlxMediaList->RemoveMediaListObserver(mediaListObserver);
 
-    CleanupStack::PopAndDestroy(); // mediaListObserver
+    CleanupStack::PopAndDestroy( mediaListObserver ); 
     }
 
 void UT_CGlxMediaList::MoveFocusAbsoluteLessThanCurrentFocusL()
@@ -950,7 +949,7 @@
 
     iCGlxMediaList->RemoveMediaListObserver(mediaListObserver);
 
-    CleanupStack::PopAndDestroy(); // mediaListObserver
+    CleanupStack::PopAndDestroy( mediaListObserver ); 
     }
 
 void UT_CGlxMediaList::MoveFocusRelativeForwardL()
@@ -988,7 +987,7 @@
 
     iCGlxMediaList->RemoveMediaListObserver(mediaListObserver);
 
-    CleanupStack::PopAndDestroy(); // mediaListObserver
+    CleanupStack::PopAndDestroy( mediaListObserver ); 
     }
 
 void UT_CGlxMediaList::MoveFocusRelativeBackwardL()
@@ -1026,7 +1025,7 @@
 
     iCGlxMediaList->RemoveMediaListObserver(mediaListObserver);
 
-    CleanupStack::PopAndDestroy(); // mediaListObserver
+    CleanupStack::PopAndDestroy( mediaListObserver ); 
     }
 
 void UT_CGlxMediaList::MoveFocusRelativeForwardGreaterThanListCountL()
@@ -1065,7 +1064,7 @@
 
     iCGlxMediaList->RemoveMediaListObserver(mediaListObserver);
 
-    CleanupStack::PopAndDestroy(); // mediaListObserver
+    CleanupStack::PopAndDestroy( mediaListObserver ); 
     }
 
 void UT_CGlxMediaList::MoveFocusRelativeBackwardLessThanZeroL()
@@ -1104,7 +1103,7 @@
 
     iCGlxMediaList->RemoveMediaListObserver(mediaListObserver);
 
-    CleanupStack::PopAndDestroy(); // mediaListObserver
+    CleanupStack::PopAndDestroy( mediaListObserver ); 
     }
 
 void UT_CGlxMediaList::ReceiveMessageItemChangedItemModifiedL()
@@ -1127,7 +1126,6 @@
     // Send item modified notification for item not in list
     EUNIT_PRINT(_L("Send item modified notification for item not in list"));
     TMPXCollectionMessage message1(TMPXCollectionMessage::EItemChanged, EMcItemModified, KFavouritesAlbumId);
-//    iCGlxMediaList->HandleCollectionMessageL(message1);
 
     // Check no notification was observed
     TInt messageCount = mediaListObserver->MessageCount();
@@ -1138,7 +1136,6 @@
     // Send item modified notification for item in list
     EUNIT_PRINT(_L("Send item modified notification for item in list"));
     TMPXCollectionMessage message2(TMPXCollectionMessage::EItemChanged, EMcItemModified, KFavouritesAlbumFirstItemId);
-//    iCGlxMediaList->HandleCollectionMessageL(message2);
 
     // Check correct notification was observed
     messageCount = mediaListObserver->MessageCount();
@@ -1177,7 +1174,7 @@
     CGlxMediaListObserverTest* self = new (ELeave) CGlxMediaListObserverTest();
     CleanupStack::PushL(self);
     self->ConstructL();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/ut_cglxnavigablelist/ut_cglxnavigablelist.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxnavigablelist/ut_cglxnavigablelist.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -111,8 +111,7 @@
 ut_CGlxNavigableList* ut_CGlxNavigableList::NewL()
     {
     ut_CGlxNavigableList* self = ut_CGlxNavigableList::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/ut_cglxstaticitemlist/ut_cglxstaticitemlist.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/ut_cglxstaticitemlist/ut_cglxstaticitemlist.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -88,8 +88,7 @@
 ut_CGlxStaticItemList* ut_CGlxStaticItemList::NewL()
     {
     ut_CGlxStaticItemList* self = ut_CGlxStaticItemList::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/medialists/tsrc/ut_glxerrormanager/ut_glxerrormanager.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/ut_glxerrormanager/ut_glxerrormanager.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -48,7 +48,7 @@
     delete this;
     }
     
-TBool CGlxDRMUtility::CheckOpenRightsL(const TDesC&, TBool)
+TBool CGlxDRMUtility::ItemRightsValidityCheckL(const TDesC&, TBool)
     {
     return ETrue;
     }
@@ -79,8 +79,7 @@
 ut_glxerrormanager* ut_glxerrormanager::NewL()
     {
     ut_glxerrormanager* self = ut_glxerrormanager::NewLC();
-    CleanupStack::Pop();
-
+    CleanupStack::Pop( self );
     return self;
     }
 
@@ -88,7 +87,6 @@
     {
     ut_glxerrormanager* self = new( ELeave ) ut_glxerrormanager();
     CleanupStack::PushL( self );
-
     self->ConstructL();
 
     return self;
--- a/photosgallery/viewframework/medialists/tsrc/ut_tglxselectioniterator/ut_tglxselectioniterator.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/medialists/tsrc/ut_tglxselectioniterator/ut_tglxselectioniterator.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -29,7 +29,7 @@
 T_CGlxSelectionIterator* T_CGlxSelectionIterator::NewL()
     {
     T_CGlxSelectionIterator* self = T_CGlxSelectionIterator::NewLC();
-    CleanupStack::Pop();
+    CleanupStack::Pop( self );
     return self;
     }
 
--- a/photosgallery/viewframework/plugins/fullscreenviewplugin/src/glximageviewerfullscreenviewplugin.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/plugins/fullscreenviewplugin/src/glximageviewerfullscreenviewplugin.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -44,7 +44,7 @@
 #include <mpxcollectionutility.h>
 #include <mpxmediageneraldefs.h>
 #include <StringLoader.h>
-
+#include <photos.hlp.hrh>
 #include <glxfullscreenviewdata.rsg>
 #include <glxicons.mbg> // icons 
 
@@ -121,7 +121,7 @@
     CGlxFullScreenViewPluginBase::AddCommandHandlersL();
 
     TGlxHelpContext helpInfo;
-    helpInfo.iBrowseContext = LGAL_HLP_DOWNLOADS_FULLSCREEN;
+    helpInfo.iBrowseContext = LGAL_HLP_IMAGE_VIEWER;
     
     iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo));
     }
--- a/photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/plugins/fullscreenviewpluginbase/src/glxfullscreenviewpluginbase.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -95,12 +95,7 @@
 //
 TInt CGlxFullScreenViewPluginBase::PeriodicCallback(TAny* aPtr )
     {
-    //GLX_ASSERT_DEBUG( aPtr != NULL, Panic( EGlxPanicLogicError ), 
-    //    "Received null pointer for garbage collector" );
-        
-    // get "this" pointer
     static_cast< CGlxFullScreenViewPluginBase* >( aPtr )->PeriodicCallback();
-    
     return KErrNone;
     }
 
@@ -137,7 +132,6 @@
     
     iFullScreenView = fullScreenView;
     
-    //AddCommandHandlersL();
     GLX_LOG_INFO("Adding CGlxCommandHandlerBack");
     iFullScreenView->AddCommandHandlerL(
                   CGlxCommandHandlerBack::NewPreviousViewCommandHandlerL());
@@ -181,10 +175,6 @@
     iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerDetails::
                                 NewL(iFullScreenView));
     
-//  GLX_LOG_INFO("Adding CGlxCommandHandlerRotate");                    
-//  iFullScreenView->AddCommandHandlerL(                                           
-//                  CGlxCommandHandlerRotate::NewL( iFullScreenView ) );
-    
     GLX_LOG_INFO("Adding CGlxCommandHandlerAddToContainer");
     iFullScreenView->AddCommandHandlerL(CGlxCommandHandlerAddToContainer::
             NewAddToAlbumCommandHandlerL(iFullScreenView, EFalse));                             
--- a/photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/plugins/gridviewpluginbase/src/glxgridviewpluginbase.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -198,8 +198,6 @@
     GLX_LOG_INFO("Adding CGlxCommandHandlerCopyToHomeNetwork");
     iGridView->AddCommandHandlerL(CGlxCommandHandlerCopyToHomeNetwork::NewL(*iGridView));
     
-    //GLX_LOG_INFO("Adding CGlxCommandHandlerMarking");
-    //iGridView->AddCommandHandlerL( CGlxCommandHandlerMarking::NewL(iGridView/*, *iGridView, ETrue*/ ) );
     GLX_LOG_INFO("Adding CGlxCommandHandlerUpload");
     iGridView->AddCommandHandlerL(CGlxCommandHandlerUpload::NewL(iGridView, ETrue));    
     
--- a/photosgallery/viewframework/plugins/metadataviewplugin/data/200071af.rss	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description : Resource Definitions
-*
-*/
-
-
-
-// INCLUDES
-#include <ecom/registryinfo.rh>
-#include <mpxviewplugin.hrh>
-#include "glxmetadataviewplugin.hrh"
-
-
-// RESOURCE DEFINITIONS 
-
-/**
- * The opaque_data syntax is made up of three parts: 
- * a list of Uids for resolving the view plugin, feature flags, priority.
- * 
- * <p>uid1;uid2;uid3</p>
- *  uid*: uid of the supported Playback/Collection plugin.
- *  E.g. if the view plugin supports Local Playback plugin, the list of
- *  uids will be: 0x101FFC06
- *
- * <t>uid</t>
- *  uid: plugin type uid.
- *  E.g. if the view plugin supports playback type, uid will be: 0x101FFCA0
- *
- * <f>flags</f> [optional]
- *  flags: sum of the required feature flags that listed in mpxviewplugin.hrh. 
- *  E.g. if the view plugin needs to be pre-loaded and it's user-selectable,
- *  then flags = KMPXVpFeaturePreLoaded + KMPXVpFeatureUserSelectable = 0x0003.
- *
- * <i>priority</i> [optional]
- *  priority: a value of type TMPXViewPluginPriorities. This value determines
- *  which view plugin will be resolved when several plugins can support the 
- *  same set of Uids. 
- *  Default value of this field is EMPXViewPluginPriorityNormal.
- */
-RESOURCE REGISTRY_INFO theInfo
-    {
-    dll_uid = 0x200071AF;
-
-    interfaces = 
-        {
-        INTERFACE_INFO
-            {
-            interface_uid = KMPXViewPluginInterfaceUid;
-            implementations = 
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = KGlxMetadataViewImplementationId;
-                    version_no = 1 ;
-                    display_name = "Metadata view";
-                    default_data = "";
-                    opaque_data = "<p>0x2000A7C1</p>"
-                    		 					"<t>0x200071B0</t>"
-                                  "<f>0x0002</f>"
-                                  "<i>"EMPXViewPluginPriorityLowest"</i>";
-                    }
-                };
-            }
-        };
-    }
-
-// End of File
--- a/photosgallery/viewframework/plugins/metadataviewplugin/group/bld.inf	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description : Project build file
-*
-*/
-
-
-
-PRJ_EXPORTS
-
-//../rom/glxmetadataviewplugin.iby 	CORE_APP_LAYER_IBY_EXPORT_PATH(glxmetadataviewplugin.iby)
-
-PRJ_MMPFILES
-
-//glxmetadataviewplugin.mmp
-
-//End of file
-
--- a/photosgallery/viewframework/plugins/metadataviewplugin/group/glxmetadataviewplugin.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Project definition file 
-*
-*/
-
-
-
-#include <platform_paths.hrh>
-
-#include "../../../../group/glxbuildcommon.mmh"
-#include "../../../../inc/glxalfhelper.mmh"
-
-TARGET          glxunifiedmetadataviewplugin.dll
-TARGETTYPE      PLUGIN
-UID             0x10009D8D 0x200071AF
-
-#ifndef WINSCW
-EPOCALLOWDLLDATA
-#endif 
-CAPABILITY      CAP_ECOM_PLUGIN
-
-SOURCEPATH      ../src
-SOURCE          glxmetadataviewpluginproxy.cpp
-SOURCE          glxmetadataviewplugin.cpp
-
-START RESOURCE  ../data/200071AF.rss
-//TARGET          200071AF.rsc
-TARGET          glxunifiedmetadataviewplugin.rsc
-END // RESOURCE
-
-USERINCLUDE     ../inc
-SYSTEMINCLUDE		../../../views/viewbase/inc
-SYSTEMINCLUDE     ../../../medialists/inc
-SYSTEMINCLUDE     ../../../../inc
-SYSTEMINCLUDE     ../../../inc
-SYSTEMINCLUDE     ../../../uiutilities/inc
-SYSTEMINCLUDE     ../../../commandhandlers/commandhandlerbase/inc
-SYSTEMINCLUDE     ../../../commandhandlers/commoncommandhandlers/inc
-SYSTEMINCLUDE     ../../../commandhandlers/inc
-SYSTEMINCLUDE		../../../views/metadataview/inc
-
-APP_LAYER_SYSTEMINCLUDE
-
-LIBRARY         euser.lib					// for RAllocator
-LIBRARY         mpxviewplugin.lib			// for CMPXViewPlugin
-LIBRARY			glxunifiedmetadataview.lib	// for CGlxMetadataView
-LIBRARY			glxviewbase.lib				// for CGlxViewBase
-LIBRARY			glxcommoncommandhandlers.lib
-
-
-//EXPORTUNFROZEN
-
-// End of File
--- a/photosgallery/viewframework/plugins/metadataviewplugin/inc/glxmetadataviewplugin.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description : Metadata view plugin definition.
-*
-*/
-
-
-#ifndef C_GLXMETADATAVIEWPLUGIN_H
-#define C_GLXMETADATAVIEWPLUGIN_H
-
-
-// INCLUDES
-#include <mpxaknviewplugin.h>
-
-#include "glxmedialistfactory.h"
-
-// CLASS DECLARATION
-
-/**
- *  MPX Collection view plugin definition.
- *
- *  @lib glxunifiedmetadataviewplugin.lib
- */
-NONSHARABLE_CLASS( CGlxMetadataViewPlugin ) : public CMPXAknViewPlugin 
-    {
-public:
-
-    /**
-     * Two-phased constructor.
-     *
-     * @return Pointer to newly created object.
-     */
-    static CGlxMetadataViewPlugin* NewL();
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxMetadataViewPlugin();
-    
-private:
-
-    /**
-     * From CMPXAknViewPlugin
-     * Construct Avkon view.
-     *
-     * @return Pointer to a newly created Avkon view.
-     */
-    CAknView* ConstructViewLC();
-    
-private:
-
-    /**
-     * C++ default constructor.
-     */
-    CGlxMetadataViewPlugin();
-
-    /**
-     * By default Symbian 2nd phase constructor is private.
-     */
-    void ConstructL();
-    };
-
-#endif  // C_GLXMETADATAVIEWPLUGIN_H
-
-// End of File
--- a/photosgallery/viewframework/plugins/metadataviewplugin/inc/glxmetadataviewplugin.hrh	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description : Resource header
-*
-*/
-
-
-
-#ifndef GLXMETADATAVIEWPLUGIN_HRH
-#define GLXMETADATAVIEWPLUGIN_HRH
-
-// CONSTANTS
-
-#define KGlxMetadataViewImplementationId  0x200071B0
-
-#endif  // GLXMETADATAVIEWPLUGIN_HRH
-
-// End of File
--- a/photosgallery/viewframework/plugins/metadataviewplugin/rom/glxmetadataviewplugin.iby	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description : Metadata View Plugin iby file.
-*
-*/
-
-
-
-#ifndef __GLXMETADATAVIEWPLUGIN_IBY__
-#define __GLXMETADATAVIEWPLUGIN_IBY__
-
-ECOM_PLUGIN( glxunifiedmetadataviewplugin.dll, glxunifiedmetadataviewplugin.rsc )
-
-#endif // __GLXMETADATAVIEWPLUGIN_IBY__
\ No newline at end of file
--- a/photosgallery/viewframework/plugins/metadataviewplugin/src/glxmetadataviewplugin.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description : Implementation of metadata view plugin
-*
-*/
-
-
-
-// INCLUDE FILES
-
-#include "glxmetadataviewplugin.h"
-
-#include <glxcommandhandlerback.h>                     // For CGlxCommandHandlerBack
-#include <glxcommandhandlerhelp.h>
-#include <mpxcollectionpath.h>
-#include <mpxcollectionutility.h>
-
-#include "glxmetadataview.h"
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// ---------------------------------------------------------------------------
-//
-CGlxMetadataViewPlugin::CGlxMetadataViewPlugin()
-    {
-    // Do nothing
-    }
-
-// ---------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewPlugin::ConstructL()
-    {
-    // Do nothing
-    }
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CGlxMetadataViewPlugin* CGlxMetadataViewPlugin::NewL()
-    {
-    CGlxMetadataViewPlugin* self = new ( ELeave ) CGlxMetadataViewPlugin();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    CleanupStack::Pop( self );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxMetadataViewPlugin::~CGlxMetadataViewPlugin()
-    {
-    // Do nothing
-    }
-
-// ---------------------------------------------------------------------------
-// From CMPXAknViewPlugin
-// Construct Avkon view.
-// ---------------------------------------------------------------------------
-//
-CAknView* CGlxMetadataViewPlugin::ConstructViewLC()
-    {
-    /*Create view it self medialist provider ? */   
-	CGlxMetadataView* view = CGlxMetadataView::NewLC(NULL);    
-	
-	// add command handlers
-	view->AddCommandHandlerL(CGlxCommandHandlerBack::NewPreviousViewCommandHandlerL(view));
-	
-	TGlxHelpContext helpInfo;
-	helpInfo.iBrowseContext = LGAL_HLP_DETAILS_VIEW;
-	view->AddCommandHandlerL(CGlxCommandHandlerHelp::NewL(helpInfo)); 
-    
-    return view;
-    }
-
-//  End of File
--- a/photosgallery/viewframework/plugins/metadataviewplugin/src/glxmetadataviewpluginproxy.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-*  Description : Standard proxy of the ECOM plugin
-*
-*/
-
-
-// INCLUDE FILES
-#include <ecom/implementationproxy.h>
-#include "glxmetadataviewplugin.hrh"
-#include "glxmetadataviewplugin.h"
-
-#if ( !defined IMPLEMENTATION_PROXY_ENTRY )
-typedef TAny* TProxyNewLPtr;
-#define IMPLEMENTATION_PROXY_ENTRY( aUid,aFuncPtr ) { { aUid }, ( TProxyNewLPtr )( aFuncPtr ) }
-#endif
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// The list of implementations
-// ---------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] = 
-    { 
-    IMPLEMENTATION_PROXY_ENTRY( 
-        KGlxMetadataViewImplementationId, 
-        CGlxMetadataViewPlugin::NewL ) 
-    };
-
-// ---------------------------------------------------------------------------
-// The proxy of implementations
-// ---------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(
-    TInt& aTableCount )
-    {
-    aTableCount = 
-        sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
-    return ImplementationTable;
-    }
-
-// End of File
--- a/photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/plugins/tagsbrowserviewplugin/data/glxtagsbrowserview.rss	Wed Mar 31 21:31:03 2010 +0300
@@ -70,7 +70,7 @@
         MENU_ITEM { command=EGlxStopShowing; 
                     txt=qtn_lgal_options_stop_show; }, 
 		MENU_ITEM { command=EAknCmdHelp; 
-		            txt=qtn_clipb_litxt_help; }, 
+		            txt=qtn_options_help; },
 		MENU_ITEM { command=EAknCmdExit; 
 		            txt=qtn_options_exit; } 	
 		};
--- a/photosgallery/viewframework/texturemanager/inc/glxtexturemanagerimpl.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/texturemanager/inc/glxtexturemanagerimpl.h	Wed Mar 31 21:31:03 2010 +0300
@@ -359,8 +359,6 @@
     */
     TInt NextTextureId();
 
-   // void DoHandleResolutionChangedL(TInt aIconIndex);
-
     /**
     * Scales the grid Thumbnail bitmap to the fullscreen keeping the aspect 
     * ratio.
--- a/photosgallery/viewframework/texturemanager/src/glxbitmapdecoderwrapper.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/texturemanager/src/glxbitmapdecoderwrapper.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -101,7 +101,7 @@
     {
     TRACER("CGlxBitmapDecoderWrapper:: DoDecodeImageL ");
     iThumbnailIndex = aIndex;
-    //Variable used to get the decoder type used;
+    //Variable used to get the decoder type used
     TBool isExtDecoderUsed = ETrue;
     
 #ifdef _DEBUG
--- a/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/texturemanager/src/glxtexturemanagerimpl.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -892,45 +892,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// DoHandleResolutionChangedL
-// -----------------------------------------------------------------------------
-//
-//To-do
-/*void CGlxTextureManagerImpl::DoHandleResolutionChangedL(TInt aIconIndex)
-    {
-    TGlxIcon& icon = iIconList[aIconIndex];
-    CAlfTexture* texture = icon.iTexture;
-    // Clear previous content
-    //texture->SetSegmentCountL(0);
-    
-    // Get new bitmaps
-    CFbsBitmap* bitmap = NULL;
-    CFbsBitmap* mask = NULL;
-    ProvideBitmapL(icon.iTextureId, bitmap, mask);
-    // Upload to texture
-    if(bitmap)
-        {
-        CleanupStack::PushL(bitmap);
-        texture->SetSize(bitmap->SizeInPixels());
-        if(mask)
-            {
-            CleanupStack::PushL(mask);
-            texture->UploadL( *bitmap, mask,
-                        EAlfTextureUploadFlagDefault );
-            CleanupStack::PopAndDestroy(mask);
-            }
-        else
-            {
-            texture->UploadL( *bitmap, NULL,
-                        EAlfTextureUploadFlagDefault );
-            
-            }
-        CleanupStack::PopAndDestroy(bitmap);    
-        }
-    }*/
-
-
-// -----------------------------------------------------------------------------
 // ProvideBitmapL
 // -----------------------------------------------------------------------------
 //
@@ -1108,9 +1069,9 @@
         // check if rights have expired
         TBool checkViewRights = (cat==EMPXImage);
 
-        //Fix for ESLM-82WJ59: Since uri can be either focused or unfocused item
-        //better call CheckOpenRightsL which doesn't modify lastconsumedUri.
-        drmInvalid = !iDrmUtility->CheckOpenRightsL(uri, checkViewRights);
+        //Since uri can be either focused or unfocused item
+        //better call ItemRightsValidityCheckL which doesn't modify lastconsumedUri.
+        drmInvalid = !iDrmUtility->ItemRightsValidityCheckL(uri, checkViewRights);
 
         CGlxMedia* properties = const_cast<CGlxMedia*>(aMedia.Properties());
         if( !drmInvalid )
--- a/photosgallery/viewframework/tvout/bwins/glxtvoutu.def	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/bwins/glxtvoutu.def	Wed Mar 31 21:31:03 2010 +0300
@@ -3,15 +3,15 @@
 	?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)
-	?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@VTSize@@HH@Z @ 5 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, class TSize, int, int)
+	?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)
-	?IsConnected@CGlxTv@@QBEHXZ @ 10 NONAME ; int CGlxTv::IsConnected(void) const
-	?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 11 NONAME ; void CGlxHdmiController::ItemNotSupported(void)
-	?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 12 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &)
-	?NewL@CGlxHdmiController@@SAPAV1@ABVTDesC16@@@Z @ 13 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(class TDesC16 const &)
+	?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@H@Z @ 10 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, int)
+	?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)
 	?IsHDMIConnected@CGlxTv@@QBEHXZ @ 14 NONAME ; int CGlxTv::IsHDMIConnected(void) const
 	?DeactivateZoom@CGlxHdmiController@@QAEXXZ @ 15 NONAME ; void CGlxHdmiController::DeactivateZoom(void)
 
--- a/photosgallery/viewframework/tvout/eabi/glxtvoutu.def	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/eabi/glxtvoutu.def	Wed Mar 31 21:31:03 2010 +0300
@@ -5,8 +5,8 @@
 	_ZN18CGlxHdmiController16ItemNotSupportedEv @ 4 NONAME
 	_ZN18CGlxHdmiController18ShiftToCloningModeEv @ 5 NONAME
 	_ZN18CGlxHdmiController18ShiftToPostingModeEv @ 6 NONAME
-	_ZN18CGlxHdmiController4NewLERK7TDesC16 @ 7 NONAME
-	_ZN18CGlxHdmiController9SetImageLERK7TDesC165TSizeii @ 8 NONAME
+	_ZN18CGlxHdmiController4NewLEv @ 7 NONAME
+	_ZN18CGlxHdmiController9SetImageLERK7TDesC16i @ 8 NONAME
 	_ZN18CGlxHdmiControllerD0Ev @ 9 NONAME
 	_ZN18CGlxHdmiControllerD1Ev @ 10 NONAME
 	_ZN18CGlxHdmiControllerD2Ev @ 11 NONAME
--- a/photosgallery/viewframework/tvout/inc/glxactivedecoder.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/inc/glxactivedecoder.h	Wed Mar 31 21:31:03 2010 +0300
@@ -33,10 +33,8 @@
     /*
      * NewL()
      * @Param1 CGlxHdmiSurfaceUpdater
-     * @param2 framecount
      */
-    static CGlxHdmiDecoderAO* NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater,
-            TInt aFrameCount);
+    static CGlxHdmiDecoderAO* NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater);
     
     /*
      * Destructor
@@ -47,28 +45,24 @@
      * ConvertImageL() 
      * This calls the asyncronous service request to ICL convert
      * @param1 - Destination Bitmap
-     * @param2 - Framecount
-     * @param3 - Image decoder 
+     * @param2 - Image decoder 
      */
-    void ConvertImageL(CFbsBitmap& iBitmap, TInt aFrameNum,CImageDecoder* aDecoder);
-    
-//    void SetActive() { CActive::SetActive();};
+    void ConvertImageL(CFbsBitmap& iBitmap,CImageDecoder* aDecoder);
     
 protected:
     // from CActive
     void RunL();
     void DoCancel();
+    
 private:
     /*
      * Constructor
      */
-    CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater,TInt aFrameCount);
+    CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater);
 
 private:
     CGlxHdmiSurfaceUpdater* iHdmiSurfaceUpdater; // not owned
     CImageDecoder* iDecoder;
-    TInt iFrameCount;
-    TInt iDecodeCount;
     };
 
 #endif /* GLXACTIVEDECODER_H_ */
--- a/photosgallery/viewframework/tvout/inc/glxhdmicontroller.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/inc/glxhdmicontroller.h	Wed Mar 31 21:31:03 2010 +0300
@@ -36,7 +36,7 @@
      * NewLC 
      * @param1 - Image file path default to NULL
      */
-    IMPORT_C static CGlxHdmiController* NewL(const TDesC& aImageFile = KNullDesC );
+    IMPORT_C static CGlxHdmiController* NewL();
 
     /*
      * Destructor
@@ -46,11 +46,8 @@
     /*
      * Update Image
      * @param1 - Image file path
-     * @param2 - Image dimensions
-     * @param3 - frame count
      */
-    IMPORT_C void SetImageL(const TDesC& aImageFile,TSize aImageDimensions, 
-            TInt aFrameCount = 1, TBool aStore = ETrue);
+    IMPORT_C void SetImageL(const TDesC& aImageFile, TBool aStore = ETrue);
 
     /*
      * To intimate that the item is not supported.  
@@ -88,7 +85,7 @@
     /*
      * Constructor
      */
-    CGlxHdmiController(const TDesC& aImageFile);
+    CGlxHdmiController();
     
     /*
      * ConstructL 
@@ -102,12 +99,9 @@
     
     /*
      * Create surface updater and update background surface 
-     * @param1 - Image file
-     * @param2 - Image dimensions
-     * @param3 - framecount
+     * @param1 - Image file     
      */
-    void CreateSurfaceUpdaterL(const TDesC& aImageFile, TSize aImageDimensions, 
-            TInt aFrameCount);
+    void CreateSurfaceUpdaterL(const TDesC& aImageFile);
     
     /*
      * To Destroy the surface updater if present
@@ -120,21 +114,19 @@
     void DestroyContainer();
 
     /*
-     * 
+     * Stores the Image File name
+     * @param1 - Image file
      */
-    void StoreImageInfoL(const TDesC& aImageFile,
-            TSize aImageDimensions, TInt aFrameCount);
+    void StoreImageInfoL(const TDesC& aImageFile);
 
 private:
-    const TDesC& iImagePath;                        // Image path
     HBufC*  iStoredImagePath;
-    TSize   iImageDimensions; 
-    TInt    iFrameCount;
-
+    
     CGlxHdmiContainer*      iHdmiContainer;
     CGlxHdmiSurfaceUpdater* iSurfaceUpdater;
     CGlxTv*  iGlxTvOut;
-    TBool iImageSupported;
+    TBool iIsImageSupported;
+	TBool iIsPostingMode;
     };
 
 #endif /* GLXHDMICONTROLLER_H_ */
--- a/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/inc/glxhdmisurfaceupdater.h	Wed Mar 31 21:31:03 2010 +0300
@@ -42,12 +42,13 @@
      * 
      */
     static CGlxHdmiSurfaceUpdater* NewL(RWindow* aWindow, const TDesC& aImageFile, 
-            TSize aImageDimensions, TInt aFrameCount, MGlxGenCallback* aCallBack);
+                                         MGlxGenCallback* aCallBack);
     
     /*
      * destructor
      */
     ~CGlxHdmiSurfaceUpdater();
+    
 public:
     /*
      * This is to cancel the active object from decoding 
@@ -57,8 +58,7 @@
     /*
      * This updates the new image.
      */
-    void UpdateNewImageL(const TDesC& aImageFile, 
-            TInt aFrameCount,TSize aImageDimensions);
+    void UpdateNewImageL(const TDesC& aImageFile);
     
     /*
      * Activate Zoom 
@@ -88,12 +88,12 @@
      * Ctor 
      */
     CGlxHdmiSurfaceUpdater(RWindow* aWindow, const TDesC& aImageFile,
-            TSize aOrigImageDimensions, TInt aFrameCount, MGlxGenCallback* aCallBack);
+                            MGlxGenCallback* aCallBack);
     
     /*
      * ConstructL()
      */
-    void ConstructL(TSize aImageDimensions);   
+    void ConstructL();   
     
     /*
      * Create a New surface with given size
@@ -147,8 +147,6 @@
 private:
     RWindow* iWindow;
     const TDesC& iImagePath;
-    TSize iOrigImageDimensions;
-    TInt iFrameCount;
     MGlxGenCallback* iCallBack;
 
     // GCE Surface
@@ -168,7 +166,6 @@
     //ICL
     CGlxHdmiDecoderAO*  iGlxDecoderAO;              // Internal Image decoder AO              
     CImageDecoder*      iImageDecoder;              // Image Decoder
-    TInt                iAnimCount;                 // animation count
     RFs                 iFsSession;                 // RFs
     
     TPoint iLeftCornerForZoom;
--- a/photosgallery/viewframework/tvout/src/glxactivedecoder.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxactivedecoder.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -22,24 +22,20 @@
 // -----------------------------------------------------------------------------
 // NewL
 // -----------------------------------------------------------------------------
-CGlxHdmiDecoderAO* CGlxHdmiDecoderAO::NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater,
-        TInt aFrameCount)
+CGlxHdmiDecoderAO* CGlxHdmiDecoderAO::NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater)
     {
     TRACER("CGlxHdmiDecoderAO::NewL()");
-    CGlxHdmiDecoderAO* self = new (ELeave) CGlxHdmiDecoderAO(aHdmiSurfaceUpdater, 
-                                                                        aFrameCount);
+    CGlxHdmiDecoderAO* self = new (ELeave) CGlxHdmiDecoderAO(aHdmiSurfaceUpdater);
     return self;
     }
     
 // -----------------------------------------------------------------------------
 // CGlxHdmiDecoderAO()
 // -----------------------------------------------------------------------------
-CGlxHdmiDecoderAO::CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater,
-        TInt aFrameCount):CActive(CActive::EPriorityStandard-1),
-    iHdmiSurfaceUpdater(aHdmiSurfaceUpdater), iFrameCount(aFrameCount)
+CGlxHdmiDecoderAO::CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater):
+    CActive(CActive::EPriorityStandard-1),iHdmiSurfaceUpdater(aHdmiSurfaceUpdater)
     {
     TRACER("CGlxHdmiDecoderAO::CGlxHdmiDecoderAO()");
-    iDecodeCount = 0;
     CActiveScheduler::Add(this);
     }
 
@@ -81,12 +77,12 @@
 // -----------------------------------------------------------------------------
 // ConvertImageL
 // -----------------------------------------------------------------------------
-void CGlxHdmiDecoderAO::ConvertImageL(CFbsBitmap& aBitmap, TInt aFrameNum,
-        CImageDecoder* aDecoder)
+void CGlxHdmiDecoderAO::ConvertImageL(CFbsBitmap& aBitmap,
+                                       CImageDecoder* aDecoder)
     {
     TRACER("CGlxHdmiDecoderAO::ConvertImageL()");
     iDecoder = aDecoder;
-    iDecoder->Convert(&iStatus,aBitmap, aFrameNum); 
+    iDecoder->Convert(&iStatus,aBitmap); 
     SetActive();
     }
     
--- a/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxhdmicontroller.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -29,10 +29,10 @@
 // -----------------------------------------------------------------------------
 // NewLC
 // -----------------------------------------------------------------------------
-EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(const TDesC& aImageFile)
+EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL()
     {
     TRACER("CGlxHdmiController* CGlxHdmiController::NewL()");
-    CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aImageFile);
+    CGlxHdmiController* self = new (ELeave) CGlxHdmiController();
     CleanupStack::PushL(self);
     self->ConstructL();
     CleanupStack::Pop(self);
@@ -59,19 +59,20 @@
 // Setting an Image Path 
 // -----------------------------------------------------------------------------
 EXPORT_C void CGlxHdmiController::SetImageL(const TDesC& aImageFile,
-        TSize aImageDimensions, TInt aFrameCount, TBool aStore)
+                                             TBool aStore)
     {
     TRACER("CGlxHdmiController::SetImageL()");
     if (aStore)
         {
-        iImageSupported = ETrue;
-        StoreImageInfoL(aImageFile, aImageDimensions, aFrameCount);
+        iIsImageSupported = ETrue;
+        StoreImageInfoL(aImageFile);
         }
     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, imagedimension, framecount
+            // Call a function to pass imagefile
             if (!iHdmiContainer)
                 {            
                 CreateHdmiContainerL(); 
@@ -80,12 +81,12 @@
                 {
                 // This case would come when surface updater is not created at the first instance and also
                 // it satisfies the 720p condition                
-                CreateSurfaceUpdaterL(aImageFile, aImageDimensions, aFrameCount);
+                CreateSurfaceUpdaterL(aImageFile);
                 }
             else
                 {
             GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 3");
-            iSurfaceUpdater->UpdateNewImageL(aImageFile, aFrameCount,aImageDimensions);
+            iSurfaceUpdater->UpdateNewImageL(aImageFile);
             }
         iHdmiContainer->DrawNow();
         }
@@ -97,7 +98,7 @@
 EXPORT_C void CGlxHdmiController::ItemNotSupported()
     {
     TRACER("CGlxHdmiController::IsVideo()");
-    iImageSupported = EFalse;
+    iIsImageSupported = EFalse;
     if (iGlxTvOut->IsHDMIConnected())
         {
         DestroySurfaceUpdater();
@@ -135,6 +136,7 @@
 EXPORT_C void CGlxHdmiController::ShiftToCloningMode()
     {
     TRACER("CGlxHdmiController::ShiftToCloningMode()");
+    iIsPostingMode = EFalse;
     if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater)
         {
         iSurfaceUpdater->ShiftToCloningMode();
@@ -147,6 +149,7 @@
 EXPORT_C void CGlxHdmiController::ShiftToPostingMode()
     {
     TRACER("CGlxHdmiController::ShiftToPostingMode()");
+    iIsPostingMode = ETrue;
     if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater)
         {
         iSurfaceUpdater->ShiftToPostingMode();
@@ -156,8 +159,8 @@
 // -----------------------------------------------------------------------------
 // Constructor
 // -----------------------------------------------------------------------------
-CGlxHdmiController::CGlxHdmiController(const TDesC& aImageFile):
-        iImagePath(aImageFile)
+CGlxHdmiController::CGlxHdmiController():
+        iIsPostingMode(EFalse)
     {
     TRACER("CGlxHdmiController::CGlxHdmiController()");
     // Implement nothing here
@@ -213,21 +216,19 @@
 // -----------------------------------------------------------------------------
 // CreateSurfaceUpdaterL 
 // -----------------------------------------------------------------------------
-void CGlxHdmiController::CreateSurfaceUpdaterL(const TDesC& aImageFile, 
-        TSize aImageDimensions, TInt aFrameCount)
+void CGlxHdmiController::CreateSurfaceUpdaterL(const TDesC& aImageFile)
     {
     TRACER("CGlxHdmiController::CreateSurfaceUpdater()");
     RWindow* window = iHdmiContainer->GetWindow();
-    iSurfaceUpdater = CGlxHdmiSurfaceUpdater::NewL(window, aImageFile, aImageDimensions, 
-            aFrameCount, iHdmiContainer);
+    iSurfaceUpdater = CGlxHdmiSurfaceUpdater::NewL(window, aImageFile, 
+                                                    iHdmiContainer);
     iHdmiContainer->DrawNow();
     }
 
 // -----------------------------------------------------------------------------
 // StoreImageInfoL 
 // -----------------------------------------------------------------------------
-void CGlxHdmiController::StoreImageInfoL(const TDesC& aImageFile,
-        TSize aImageDimensions, TInt aFrameCount)
+void CGlxHdmiController::StoreImageInfoL(const TDesC& aImageFile)
     {
     TRACER("CGlxHdmiController::StoreImageInfoL()");
     if(iStoredImagePath)
@@ -236,8 +237,6 @@
         iStoredImagePath = NULL;
         }
     iStoredImagePath = aImageFile.AllocL();
-    iImageDimensions = aImageDimensions;
-    iFrameCount = aFrameCount;
     }
 
 // -----------------------------------------------------------------------------
@@ -248,11 +247,11 @@
     TRACER("CGlxHdmiController::HandleTvStatusChangedL()");
     if ( aChangeType == ETvConnectionChanged )          
         {
-        if ( iGlxTvOut->IsHDMIConnected() && iImageSupported)
+        if ( iGlxTvOut->IsHDMIConnected() && iIsImageSupported && iIsPostingMode)
             {
             GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Connected");
             // Calling SetImageL() with appropriate parameters
-            SetImageL(iStoredImagePath->Des(), iImageDimensions, iFrameCount, EFalse);
+            SetImageL(iStoredImagePath->Des(), EFalse);
             }
         else
             {
--- a/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxhdmisurfaceupdater.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -42,13 +42,13 @@
 // NewLC
 // -----------------------------------------------------------------------------
 CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL(RWindow* aWindow, const TDesC& aImageFile, 
-        TSize aImageDimensions, TInt aFrameCount, MGlxGenCallback* aCallBack)
+                                                      MGlxGenCallback* aCallBack)
     {
     TRACER("CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL()");
     CGlxHdmiSurfaceUpdater* self = new (ELeave) CGlxHdmiSurfaceUpdater(aWindow, aImageFile,
-            aImageDimensions, aFrameCount, aCallBack);
+                                                                    aCallBack);
     CleanupStack::PushL(self);
-    self->ConstructL(aImageDimensions);
+    self->ConstructL();
     CleanupStack::Pop(self);
     return self;
     }
@@ -134,10 +134,10 @@
 // -----------------------------------------------------------------------------
 // CTor 
 // -----------------------------------------------------------------------------
-CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater(RWindow* aWindow, const TDesC& aImageFile, 
-        TSize aOrigImageDimensions, TInt aFrameCount, MGlxGenCallback* aCallBack): 
-        iWindow(aWindow), iImagePath(aImageFile), iOrigImageDimensions(aOrigImageDimensions),
-        iFrameCount(aFrameCount ),iCallBack(aCallBack)
+CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater(RWindow* aWindow, 
+                          const TDesC& aImageFile, MGlxGenCallback* aCallBack): 
+                          iWindow(aWindow), iImagePath(aImageFile), 
+                          iCallBack(aCallBack)
     {
     TRACER("CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater()");
     // Implement nothing here
@@ -146,7 +146,7 @@
 // -----------------------------------------------------------------------------
 // ConstructL 
 // -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::ConstructL(TSize /*aImageDimensions*/)
+void CGlxHdmiSurfaceUpdater::ConstructL()
     {
     TRACER("CGlxHdmiSurfaceUpdater::ConstructL()");
     TInt error = iFsSession.Connect ();
@@ -155,7 +155,7 @@
     
     iBitmapReady = EFalse;
     // Create the active object
-    iGlxDecoderAO = CGlxHdmiDecoderAO::NewL(this, iFrameCount);
+    iGlxDecoderAO = CGlxHdmiDecoderAO::NewL(this);
     CreateImageDecoderL(iImagePath);
     CreateBitmapL();
     CreateHdmiL();
@@ -168,7 +168,7 @@
     iStartTime.HomeTime();
 #endif
     //start decoding the image    
-    iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,0,iImageDecoder);    
+    iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder);    
     
     iLeftCornerForZoom.iX = 0; 
     iLeftCornerForZoom.iY = 0;
@@ -179,8 +179,7 @@
 // -----------------------------------------------------------------------------
 // UpdateNewImageL 
 // -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::UpdateNewImageL(const TDesC& aImageFile, 
-        TInt /*aFrameCount*/,TSize aImageDimensions)
+void CGlxHdmiSurfaceUpdater::UpdateNewImageL(const TDesC& aImageFile)
     {
     TRACER("CGlxHdmiSurfaceUpdater::UpdateNewImageL()");
 	//Cancel the zoom timers if any
@@ -189,7 +188,7 @@
 		GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::UpdateNewImageL() - Cancel Timer");
         iTimer->Cancel();
         }
-    iOrigImageDimensions = aImageDimensions;
+    
 	iBitmapReady = EFalse;
 	iLeftCornerForZoom.iX = 0; 
 	iLeftCornerForZoom.iY = 0;
@@ -201,7 +200,7 @@
     iStartTime.HomeTime();
 #endif
     //start decoding the image
-    iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,0,iImageDecoder);
+    iGlxDecoderAO->ConvertImageL(*iDecodedBitmap,iImageDecoder);
     }
 
 // -----------------------------------------------------------------------------
@@ -355,22 +354,23 @@
     TRACER("CGlxHdmiSurfaceUpdater::StartImageDecodeL()");
     TSize scrnSize = iWindow->Size();
     TSize targetBitmapSize;
-    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - bitmapsize=%d, %d",iOrigImageDimensions.iWidth,iOrigImageDimensions.iHeight);
+    TSize imageSize = iImageDecoder->FrameInfo().iOverallSizeInPixels;
+    GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - bitmapsize=%d, %d",imageSize.iWidth,imageSize.iHeight);
     TReal32 scaleFactor = 0.0f;
-    if (scrnSize.iWidth * iOrigImageDimensions.iHeight > scrnSize.iHeight
-            * iOrigImageDimensions.iWidth)
+    if (scrnSize.iWidth * imageSize.iHeight > scrnSize.iHeight
+            * imageSize.iWidth)
         {
         scaleFactor = (TReal32) scrnSize.iHeight
-                / (TReal32) iOrigImageDimensions.iHeight;
+                / (TReal32) imageSize.iHeight;
         }
     else
         {
         scaleFactor = (TReal32) scrnSize.iWidth
-                / (TReal32) iOrigImageDimensions.iWidth;
+                / (TReal32) imageSize.iWidth;
         }
     GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - scaleFactor=%f",scaleFactor);
-    targetBitmapSize.iHeight = iOrigImageDimensions.iHeight * scaleFactor;
-    targetBitmapSize.iWidth = iOrigImageDimensions.iWidth * scaleFactor;
+    targetBitmapSize.iHeight = imageSize.iHeight * scaleFactor;
+    targetBitmapSize.iWidth = imageSize.iWidth * scaleFactor;
 
     GLX_LOG_INFO2("CGlxHdmiSurfaceUpdater::StartImageDecodeL() - targetBitmapSize=%d, %d",targetBitmapSize.iWidth,targetBitmapSize.iHeight);
     //create the bitmap for the required size
--- a/photosgallery/viewframework/tvout/src/glxtv.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/tvout/src/glxtv.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -165,17 +165,6 @@
 #else
     iSettingsTVAspectRatio = 0;
 #endif
-	// Commenting out code for request notification as these doesnt work fine,
-	// would be soon updated with latest api's to support aspectration chnages.
-    // Request notification when the user changes cenrep values
-//    TInt err = iRepository.NotifyRequest( iSettingsTVAspectRatio, iStatus );
-//    if (!(KErrNone ==err ||KErrAlreadyExists  ==err))
-//        {
-//        RDebug::Printf("## Error code in CGlxTv::CGlxTvOutCenRepMonitor::ConstructL() is %d",err);
-//        User::Leave(err);
-//        }
-    
-//    SetActive();
     }
 
     
--- a/photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/bwins/glxuiutilitiesu.def	Wed Mar 31 21:31:03 2010 +0300
@@ -60,4 +60,7 @@
 	?StartTNMDaemonL@CGlxUiUtility@@QAEXXZ @ 59 NONAME ; void CGlxUiUtility::StartTNMDaemonL(void)
 	?NewL@CGlxProgressIndicator@@SAPAV1@AAVMDialogDismisedObserver@@@Z @ 60 NONAME ; class CGlxProgressIndicator * CGlxProgressIndicator::NewL(class MDialogDismisedObserver &)
 	?StopTNMDaemonL@CGlxUiUtility@@QAEXXZ @ 61 NONAME ; void CGlxUiUtility::StopTNMDaemonL(void)
+	?NewL@CGlxMMCNotifier@@SAPAV1@AAVMStorageNotifierObserver@@@Z @ 62 NONAME ; class CGlxMMCNotifier * CGlxMMCNotifier::NewL(class MStorageNotifierObserver &)
+	?SetGridToolBar@CGlxUiUtility@@QAEXPAVCAknToolbar@@@Z @ 63 NONAME ; void CGlxUiUtility::SetGridToolBar(class CAknToolbar *)
+	?GetGridToolBar@CGlxUiUtility@@QAEPAVCAknToolbar@@XZ @ 64 NONAME ; class CAknToolbar * CGlxUiUtility::GetGridToolBar(void)
 
--- a/photosgallery/viewframework/uiutilities/data/glxuiutilities.rss	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/data/glxuiutilities.rss	Wed Mar 31 21:31:03 2010 +0300
@@ -615,17 +615,16 @@
 //
 // -----------------------------------------------------------------------------
 //
-RESOURCE AIW_INTEREST r_aiw_share_base_interest
+RESOURCE AIW_INTEREST r_glx_aiw_share_base_interest
     {
     items=
             {
             AIW_CRITERIA_ITEM
                 {
-                id = EGlxCmdUpload;// 1006;
+                id = EGlxCmdUpload;
                 serviceCmd = KAiwCmdUpload;
-                contentType = "*";
                 serviceClass = KAiwClassBase;
-                maxProviders    = 1;
+                contentType = "image/*";                               
                 }
             };
     }
@@ -833,15 +832,24 @@
     buf = "#Removed from Favourites";
     }
 
+RESOURCE CBA r_glx_progressbar_softkey_hide
+    {
+    buttons =
+            {
+            CBA_BUTTON { txt = text_softkey_empty; },
+            CBA_BUTTON { id = EAknSoftkeyHide; txt = qtn_softkey_hide; },
+            CBA_BUTTON { txt = text_softkey_empty; }
+            };
+    }
 //resource for waiting dialog
 RESOURCE TBUF r_glx_main_list_view_processing_dialog
     { 
-    buf = qtn_lgal_note_wait_processing; 
+    buf = qtn_lgal_refreshing_media_note; 
     }
 RESOURCE DIALOG r_progress_note
     {
     flags = EAknProgressNoteFlags;
-    buttons = R_AVKON_SOFTKEYS_CANCEL;
+    buttons = r_glx_progressbar_softkey_hide;
     items =
         {
         DLG_LINE
@@ -851,7 +859,7 @@
             control = AVKON_NOTE
                 {
                 layout = EProgressLayout;
-                singular_label =qtn_lgal_note_wait_processing;
+                singular_label =qtn_lgal_refreshing_media_note;
                 };
             }
         };
--- a/photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/eabi/glxuiutilitiesu.def	Wed Mar 31 21:31:03 2010 +0300
@@ -79,4 +79,9 @@
 	_ZTI21CGlxProgressIndicator @ 78 NONAME
 	_ZTV21CGlxProgressIndicator @ 79 NONAME
 	_ZN13CGlxUiUtility14StopTNMDaemonLEv @ 80 NONAME
+	_ZN15CGlxMMCNotifier4NewLER24MStorageNotifierObserver @ 81 NONAME
+	_ZTI15CGlxMMCNotifier @ 82 NONAME
+	_ZTV15CGlxMMCNotifier @ 83 NONAME
+	_ZN13CGlxUiUtility14GetGridToolBarEv @ 84 NONAME
+	_ZN13CGlxUiUtility14SetGridToolBarEP11CAknToolbar @ 85 NONAME
 
--- a/photosgallery/viewframework/uiutilities/group/glxuiutilities.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/group/glxuiutilities.mmp	Wed Mar 31 21:31:03 2010 +0300
@@ -49,6 +49,7 @@
 SOURCE          mglxactivemedialistresolver.cpp
 SOURCE          glxskinchangemonitor.cpp
 SOURCE 		glxprogressindicator.cpp
+SOURCE		glxmmcnotifier.cpp
 // System includes from epoc32/include
 APP_LAYER_SYSTEMINCLUDE
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/uiutilities/inc/glxmmcnotifier.h	Wed Mar 31 21:31:03 2010 +0300
@@ -0,0 +1,95 @@
+/*
+* 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    MMC Notifier
+*
+*/
+
+#ifndef GLXMMCNOTIFIER_H_
+#define GLXMMCNOTIFIER_H_
+
+#include <f32file.h>  
+
+//observer class to notify events
+class MStorageNotifierObserver
+    {
+public:
+    virtual void HandleMMCInsertionL() =0;
+    virtual void HandleMMCRemovalL() =0;
+    };
+/**
+ * states for MMC card
+ */
+enum TGlxMMCState
+    {
+    EMMCStateReset,
+    EMMCStateInsert
+    };
+/**
+ * class declaration
+ */
+class CGlxMMCNotifier : public CActive   
+    {  
+public: 
+    /**
+     * Two-phased constructor.
+     */
+    IMPORT_C static CGlxMMCNotifier* NewL(MStorageNotifierObserver& aNotify);
+    
+    /**
+     * Two-phased constructor.
+     */
+    static CGlxMMCNotifier* NewLC(MStorageNotifierObserver& aNotify);    
+    /**
+     * Destructor
+     */
+    ~CGlxMMCNotifier ();  
+    
+private:
+    /**
+     * Default constructor
+     */
+    CGlxMMCNotifier (MStorageNotifierObserver& aNotify);    
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     */
+    void ConstructL(); 
+    
+private:
+    /**
+     * active object's default implelemtaions
+     */    
+    void RunL();    
+    void DoCancel();      
+    
+    /**
+     * IssueRequest 
+     */
+    void IssueRequest();   
+    
+private:    
+    /**
+     * file session
+     */
+    RFs  iFs;
+    /**
+     * reference of observer
+     */
+    MStorageNotifierObserver& iNotify;
+    /**
+     * MMC state
+     */
+    TGlxMMCState istate;
+    };
+
+#endif /* GLXMMCNOTIFIER_H_ */
--- a/photosgallery/viewframework/uiutilities/inc/glxuiutility.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/inc/glxuiutility.h	Wed Mar 31 21:31:03 2010 +0300
@@ -171,23 +171,16 @@
     IMPORT_C CGlxScreenFurniture* ScreenFurniture();
 
     /**
-     * CHgContextUtility
-     * @return pointer to CHgContextUtility
-     */
-    //IMPORT_C CHgContextUtility* ContextUtility();
-    
-    /**
      * This method can be used to check whether pen support is enabled.
      * @return ETrue if pen support is enabled, otherwise EFalse.
      */
     IMPORT_C TBool IsPenSupported();
-    //Nitz Review Added
+
     /**
      * This method can be used to set the image size required for Rotation.
      * @param aRotatedImageSize the image size to be set.
      */
     IMPORT_C void SetRotatedImageSize(TSize aRotatedImageSize);
-    //Nitz Review Added end
     
     /**
      * This method can be used to Get the image size required for Rotation.
@@ -229,6 +222,17 @@
      */
     IMPORT_C TInt VisibleItemsInPageGranularityL();
     
+    /**
+     * @return The current Grid toolbar being used
+     */
+    IMPORT_C CAknToolbar* GetGridToolBar();
+
+    /**
+     * Set the current Grid toolbar being used
+     * @param aToolbar Current Toolbar
+     */
+    IMPORT_C void SetGridToolBar(CAknToolbar* aToolbar);
+    
 public: // from class MGlxTvObserver
 
     /**
@@ -350,8 +354,9 @@
     TBool iIsExiting;
     //Added to give the Image size to the Coverflow Widget for Rotation
     TSize iRotatedImageSize;
-    
-//    CHgContextUtility* iContextUtility;
+	
+	//current Toolbar being used
+    CAknToolbar* iToolbar;
     };
 
 
--- a/photosgallery/viewframework/uiutilities/src/glxanimationimageloading.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/src/glxanimationimageloading.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -77,8 +77,6 @@
     
     iImageBrush->SetLayer(EAlfBrushLayerForeground);
     iImageBrush->SetBorders(1,1,1,1);
-    /// @todo check is this is correct? Rowland 30/10/07 SetClipToVisual is no longer defined
-    //iImageBrush->SetClipToVisual(ETrue);
     iImageBrush->SetScaleMode(CAlfImageVisual::EScaleFit);
     }
 
--- a/photosgallery/viewframework/uiutilities/src/glxanimationtimed.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/src/glxanimationtimed.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -99,8 +99,7 @@
                 {
                 iObserver->AnimationComplete( this );
                 }
-            // IMPORTANT!
-            // No code after this! Client may delete the animation!
+            // IMPORTANT: No code after this, Client may delete the animation.
             }
         }
         
--- a/photosgallery/viewframework/uiutilities/src/glxanimationview.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/src/glxanimationview.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -139,7 +139,6 @@
     // Find out the screen size
     CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
     CleanupClosePushL( *uiUtility );
-    //TSize dispSize = uiUtility->ScreenFurniture().CentralScreenRect().Size();// tobe implemented by sf
     CleanupStack::PopAndDestroy( uiUtility );
 
     // Animate each of the control groups
@@ -155,10 +154,7 @@
         // Set up control group transformations
         iControlGroups[cg]->EnableTransformationL();
         CAlfTransformation& trans = iControlGroups[cg]->Transformation();
-
-        //trans.Translate(dispSize.iWidth/2, dispSize.iHeight/2);//tobe implemented by sf
         trans.Scale( scale, scale );
-       // trans.Translate(-dispSize.iWidth/2, -dispSize.iHeight/2);//tobe implemented by sf
         
         // Set opacity of all toplevel visuals in all controls in this group
         TInt controlCount = iControlGroups[cg]->Count();
--- a/photosgallery/viewframework/uiutilities/src/glxattributeretriever.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/src/glxattributeretriever.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -304,7 +304,7 @@
      * or a CGlxSynchronousAttributeRetriever and the object 'retriever' is of
      * class MGlxBlockingAttributeRetriever
      */
-    CleanupStack::PopAndDestroy(); 
+    CleanupStack::PopAndDestroy(); // retriever 
     return err;
     }
 
@@ -489,7 +489,7 @@
 //
 void CGlxAttributeRetriever::HandleError(TInt /* aError */)
     {
-    // An error has been reported. But is it ours?
+    // An error has been reported. But need to check if it is ours
     // If the request is not complete then the error is not ours
     iRequestCount = 0;
     TRAP_IGNORE(NotifyObserverIfCompleteL());
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/uiutilities/src/glxmmcnotifier.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -0,0 +1,141 @@
+/*
+* 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    MMC Notifier
+*
+*/
+
+
+#include <glxtracer.h>
+#include <glxlog.h>
+
+#include "glxmmcnotifier.h"
+
+// ---------------------------------------------------------
+// CGlxMMCNotifier::NewL
+// ---------------------------------------------------------
+//
+EXPORT_C CGlxMMCNotifier* CGlxMMCNotifier::NewL(MStorageNotifierObserver& aNotify)    
+    { 
+    TRACER("CGlxMMCNotifier::NewL()");
+    CGlxMMCNotifier* self = CGlxMMCNotifier::NewLC(aNotify);
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CGlxMMCNotifier::NewLC
+// ---------------------------------------------------------
+//
+CGlxMMCNotifier* CGlxMMCNotifier::NewLC(MStorageNotifierObserver& aNotify)    
+    {    
+    TRACER("CGlxMMCNotifier::NewLC()");
+    CGlxMMCNotifier* self = new (ELeave) CGlxMMCNotifier(aNotify);    
+    CleanupStack::PushL(self);    
+    self->ConstructL();    
+    return self;
+    }
+
+// ---------------------------------------------------------
+// CGlxMMCNotifier::CGlxMMCNotifier
+// ---------------------------------------------------------
+//
+CGlxMMCNotifier::CGlxMMCNotifier(MStorageNotifierObserver& aNotify)
+        : CActive( CActive::EPriorityStandard ),iNotify(aNotify)    
+    {
+    TRACER("CGlxMMCNotifier::CGlxMMCNotifier()");
+    CActiveScheduler::Add( this );
+    }
+
+// ---------------------------------------------------------
+// CGlxMMCNotifier::~CGlxMMCNotifier()
+// ---------------------------------------------------------
+//
+CGlxMMCNotifier::~CGlxMMCNotifier()
+    {
+    TRACER("CGlxMMCNotifier::~CGlxMMCNotifier()");
+    Cancel();
+    iFs.Close();
+    }
+
+// ---------------------------------------------------------
+// CGlxMMCNotifier::IssueRequest()
+// ---------------------------------------------------------
+//
+void CGlxMMCNotifier::IssueRequest()    
+    {
+    TRACER("CGlxMMCNotifier::IssueRequest()");
+    if ( !IsActive() )       
+        {      
+        // Request to get notified of MMC insertion/removal events      
+        iFs.NotifyChange( ENotifyDisk, iStatus );      
+        SetActive();      
+        }    
+    }
+
+// ---------------------------------------------------------
+// CGlxMMCNotifier::ConstructL()
+// ---------------------------------------------------------
+//
+void CGlxMMCNotifier::ConstructL()    
+    {    
+    TRACER("CGlxMMCNotifier::ConstructL()");
+    TInt err = iFs.Connect();
+    GLX_LOG_INFO1("CGlxMMCNotifier::ConstructL iFs.Connect err %d",err );
+    IssueRequest();
+    }
+
+// ---------------------------------------------------------
+// CGlxMMCNotifier::DoCancel()
+// ---------------------------------------------------------
+//
+void CGlxMMCNotifier::DoCancel()
+    {
+    TRACER("CGlxMMCNotifier::DoCancel()");
+    iFs.NotifyChangeCancel();   
+    }
+
+// ---------------------------------------------------------
+// CGlxMMCNotifier::RunL
+// ---------------------------------------------------------
+//
+void CGlxMMCNotifier::RunL()    
+    {    
+    TRACER("CGlxMMCNotifier::RunL()");
+    TDriveInfo driveInfo;
+    // Get the drive info for memory card     
+    TInt err = iFs.Drive( driveInfo, EDriveF );
+    GLX_LOG_INFO1("CGlxMMCNotifier::RunL err %d",err );
+    if( err == KErrNone )      
+        {      
+        switch( driveInfo.iType )        
+            {        
+            case EMediaNotPresent:          
+                {          
+                //MMC removed  don't do anything   
+                iNotify.HandleMMCRemovalL();
+                break;          
+                }        
+            default:          
+                { 
+                iNotify.HandleMMCInsertionL();
+                //MMC inserted                    
+                break;          
+                }        
+            }      
+        }    
+    // Issue request for next event notification    
+    IssueRequest();    
+    }
+
+
--- a/photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/src/glxprogressindicator.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -33,6 +33,7 @@
 EXPORT_C CGlxProgressIndicator* CGlxProgressIndicator::NewL
                     (MDialogDismisedObserver& aGlxGridViewNotifyObserver)
     {
+    TRACER("CGlxProgressIndicator::NewL()");
     CGlxProgressIndicator* self = CGlxProgressIndicator::NewLC
                                                 (aGlxGridViewNotifyObserver);
     CleanupStack::Pop(self);
@@ -46,7 +47,7 @@
 CGlxProgressIndicator* CGlxProgressIndicator::NewLC
                     (MDialogDismisedObserver& aGlxGridViewNotifyObserver)
     {
-    
+    TRACER("CGlxProgressIndicator::NewLC()");
     CGlxProgressIndicator* self = new(ELeave)
                     CGlxProgressIndicator(aGlxGridViewNotifyObserver);
     CleanupStack::PushL(self);
@@ -70,6 +71,7 @@
 //
 CGlxProgressIndicator::~CGlxProgressIndicator()
     {
+    TRACER("CGlxProgressIndicator::~CGlxProgressIndicator()");
     if (iProgressbarTicker && iProgressbarTicker->IsActive())
         {
         iProgressbarTicker->Cancel();
@@ -96,6 +98,7 @@
 //
 void CGlxProgressIndicator::ConstructL()
     {
+    TRACER("CGlxProgressIndicator::ConstructL()");
     CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
     CleanupClosePushL(*uiUtility);
     TRAPD(err,uiUtility->StartTNMDaemonL());
@@ -200,6 +203,7 @@
     else
         {
         iProgressDialog->ProcessFinishedL();
+        iGlxGridViewNotifyObserver.HandleDialogDismissedL();
         if(iProgressDialog)
             {
             iProgressDialog = NULL;
@@ -243,15 +247,9 @@
     if(iProgressbarTicker)
         {
         iProgressbarTicker->Cancel();
-        delete iProgressbarTicker;
         iProgressbarTicker = NULL;
         }
 
-    if (aButtonId == EAknSoftkeyCancel)
-        {
-        // cancel any process in here 
-        iGlxGridViewNotifyObserver.HandleDialogDismissedL();
-        }
     if(iProgressDialog)
         {
         iProgressDialog = NULL;
--- a/photosgallery/viewframework/uiutilities/src/glxscreenfurniture.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/src/glxscreenfurniture.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -154,20 +154,10 @@
 // SetVisibility
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CGlxScreenFurniture::SetToolbarVisibility( TBool aVisible )
+EXPORT_C void CGlxScreenFurniture::SetToolbarVisibility( TBool /*aVisible*/ )
     {
     TRACER("CGlxScreenFurniture::SetToolbarVisibility()");
-    
-    if( aVisible )
-        {                      
-      // @TODO: Abhijit : Uncomment the following lines after the Avkon fix in week 02 MCL  
-      //  iToolbar->SetFocus( ETrue, EDrawNow );        
-      //  iToolbar->SetToolbarVisibility( aVisible, ETrue );        
-        }
-    else
-        {        
-      //  iToolbar->SetToolbarVisibility( aVisible, EFalse );        
-        }
+    // Do Nothing
     }
 
 // -----------------------------------------------------------------------------
--- a/photosgallery/viewframework/uiutilities/src/glxskinchangemonitor.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/src/glxskinchangemonitor.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -40,7 +40,6 @@
 //-----------------------------------------------------------------------------
 CGlxSkinChangeMonitor::~CGlxSkinChangeMonitor()
     {
-    //ResetAndDestroy()???
     iSkinChangeObservers.Close();
     }
 
--- a/photosgallery/viewframework/uiutilities/src/glxuiutility.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/uiutilities/src/glxuiutility.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -123,23 +123,11 @@
     TRACER("CGlxUiUtility::ConstructL()");
     iSettingsModel = CGlxSettingsModel::InstanceL();
     
-
-	// Always start in default orientation
-    //SetAppOrientationL(EGlxOrientationDefault);
-
-	iOrientation = EGlxOrientationDefault;
-    // in emulator use bitgdi as open GL does not support changing orientation
-
-    // Ferhan (28/06/07) : commenting out usage of opengl because causing drawing problems when using
-    // the preview list (gldrawelements method in opengl seems to hang)
-   // iEnv = CHuiEnv::Static();
-   	//@ Fix for error id EABI-7RJA8C
+	iOrientation = EGlxOrientationDefault; // Always start in default orientation
     iEnv = CAlfEnv::Static();
     if (!iEnv)
        {
        iEnv = CAlfEnv::NewL();
-       // change to this on hw that supports opengl
-       // iEnv = CHuiEnv::NewL( EHuiRendererGles10 );
        }
     else
        {
@@ -163,9 +151,6 @@
             
      iEnv->AddActionObserverL (this);
      
-    // Use the Avkon skin background as the display background.    
-    //iAlfDisplay->SetClearBackgroundL(CAlfDisplay::EClearWithSkinBackground);
-    
     // create the resoltuion manager - needs to be informed when screen size 
     // changes
     iGlxResolutionManager = CGlxResolutionManager::NewL();
@@ -177,9 +162,6 @@
     HandleTvStatusChangedL( ETvConnectionChanged );
     
     iScreenFurniture = CGlxScreenFurniture::NewL(*this);
-    
-//    iContextUtility = CHgContextUtility::NewL();
-//    iContextUtility->RePublishWhenFgL( ETrue );
 	}
 
 // -----------------------------------------------------------------------------
@@ -191,12 +173,6 @@
     TRACER("CGlxUiUtility::~CGlxUiUtility()");
     GLX_LOG_INFO("~CGlxUiUtility");
     delete iScreenFurniture;
-/*    if (iContextUtility)
-        {
-        delete iContextUtility;
-        iContextUtility = NULL;
-        }
-*/
     // Destroy TV Out related objects
     delete iGlxTvOut;
     delete iGlxResolutionManager;
@@ -325,7 +301,6 @@
 EXPORT_C TSize CGlxUiUtility::DisplaySize() const
     {
     TRACER("CGlxUiUtility::DisplaySize()");
-    //return Env()->PrimaryDisplay().Size();
     const TRect& rect = Env()->PrimaryDisplay().VisibleArea();
 	return rect.Size();
     }
@@ -450,6 +425,31 @@
 	 TRACER("CGlxUiUtility::GetGridIconSize()");
     return iGridIconSize;
     }    
+
+// -----------------------------------------------------------------------------
+// SetGridToolBar
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CGlxUiUtility::SetGridToolBar(CAknToolbar* aToolbar)
+    {
+    TRACER("CGlxUiUtility::SetGridToolBar()");
+    iToolbar = aToolbar;
+    }
+
+// -----------------------------------------------------------------------------
+// GetGridToolBar
+// -----------------------------------------------------------------------------
+//
+EXPORT_C CAknToolbar* CGlxUiUtility::GetGridToolBar()
+    {
+    TRACER("CGlxUiUtility::GetGridToolBar()");
+    if(iToolbar)
+        {
+        return iToolbar;
+        }
+    return NULL;     
+    }
+
 // -----------------------------------------------------------------------------
 // HandleTvStatusChangedL
 // -----------------------------------------------------------------------------
@@ -544,9 +544,9 @@
         {
         delete iTvDisplay;
         iTvDisplay = NULL; 
-        // Remove Primary Window Refresh observer
-        //Display()->iRefreshObservers.Remove( *this );  
+
         iEnv->PauseRefresh();
+
         // Disable Primary Window Visibility events
         CCoeControl* contl = (CCoeControl*)iEnv->PrimaryDisplay().ObjectProvider();
         contl->DrawableWindow()->DisableVisibilityChangeEvents();
@@ -576,27 +576,6 @@
                           / phoneDisplaySz.iHeight, tvOutDisplaySz.iHeight );
     const TRect tvOutDisplayBuffer( tvOutDisplaySz );
  
-	// Commenting out Creation of second display as it goes into posting surface, 
-	// Right now, only cloning is going to be the funcationality and posting would be done
-	// only for specific views (FS , Zoom and Slideshow)
-//    if (!iTvDisplay)
-//	    {
-//        iTvDisplay = &iEnv->NewDisplayL( tvOutDisplayBuffer, 
-//                 CAlfEnv::ENewDisplayAsCoeControl, 
-//                 iGlxTvOut->IsWidescreen() ? CAlfDisplay::EDisplayTvOutWide :
-//                 CAlfDisplay::EDisplayTvOut );
-//        
-//        if (iTvDisplay)                                 
-//            {
-//            // Use the Avkon skin background as the display background.
-//            iTvDisplay->SetClearBackgroundL( 
-//                                        CAlfDisplay::EClearWithSkinBackground );
-//            //Todo
-//            // Primary Window Refresh observer
-//            iEnv->SetRefreshMode(EAlfRefreshModeAutomatic);
-//            }
-//	    }
-			
 	// Set the TV screen size    
     iGlxResolutionManager->SetScreenSizeL( tvOutDisplaySz );   
 	}
--- a/photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/group/glxcloudview.mmp	Wed Mar 31 21:31:03 2010 +0300
@@ -83,5 +83,5 @@
 LIBRARY		gdi.lib 
 LIBRARY		charconv.lib         // For UtfConverter
 LIBRARY         commonengine.lib
-LIBRARY	   	harvesterclient.lib
+LIBRARY 	gfxtrans.lib
 // End of File
\ No newline at end of file
--- a/photosgallery/viewframework/views/cloudview/inc/glxcloudviewimp.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/inc/glxcloudviewimp.h	Wed Mar 31 21:31:03 2010 +0300
@@ -24,7 +24,6 @@
 // INCLUDES
 #include <AknLayout2Def.h>
 #include <alf/alfanchorlayout.h>
-#include <harvesterclient.h>
 #include "mglxcloudviewmskobserver.h"
 #include "mglxenterkeyeventobserver.h"
 
@@ -32,6 +31,7 @@
 #include "mglxcloudviewlayoutobserver.h"
 
 #include "glxtagscontextmenucontrol.h"  // MGlxItemMenuObserver
+#include "glxmmcnotifier.h"
 
 // FORWARD DECLARATIONS
 class CGlxCloudViewControl;
@@ -54,7 +54,7 @@
 									public MGlxEnterKeyEventObserver,
 									public MGlxCloudViewLayoutObserver,
 									public MGlxItemMenuObserver,
-                                    public MHarvesterEventObserver
+									public MStorageNotifierObserver
 	{
 public:
 
@@ -120,6 +120,8 @@
 	 * @param aCommand command to be handled
 	 */
 	void HandleGridMenuListL(TInt aCommand);
+public:    
+    void HandleForegroundEventL(TBool aForeground); 
 	
 public:
    /**
@@ -128,17 +130,6 @@
      * @param aMenuPane The menu pane to edit
      */
     void ViewDynInitMenuPaneL(TInt aResourceId, CEikMenuPane *aMenuPane);
-public:
-    /**
-     * HarvestingUpdated
-     * @param aHEObserverType 
-     * @param aHarvesterEventState 
-     * @param aItemsLeft
-     */
-    void HarvestingUpdated( 
-                HarvesterEventObserverType aHEObserverType, 
-                HarvesterEventState aHarvesterEventState,
-                TInt aItemsLeft );
 
 protected:
 	// From CGlxViewBase
@@ -216,6 +207,15 @@
     //set the rect for scrollbar
     void SetScrollBarRect();
 
+private:
+    /**
+     * handle mmc insertion event
+     */
+    void HandleMMCInsertionL();
+    /**
+     * handle mmc removal event
+     */
+    void HandleMMCRemovalL();
 
 private:
 	// Data
@@ -254,7 +254,10 @@
 	//anchor layout from the view widget
 	CAlfAnchorLayout* iAnchorlayout;
 
-    RHarvesterClient iHarvesterClient;
+	//mmc notifier
+	CGlxMMCNotifier* iMMCNotifier;
+	
+	TBool iMMCState;
 	};
 }
 #endif // C_GLXTESTTILEVIEWIMP_H
--- a/photosgallery/viewframework/views/cloudview/src/glxbubbletimer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/src/glxbubbletimer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -33,11 +33,7 @@
 CGlxBubbleTimer::~CGlxBubbleTimer()
 	{
 	TRACER("GLX_CLOUD::CGlxBubbleTimer::~CGlxBubbleTimer");
-	//if (iTimer)	
-	//	{
-	//iTimer.Cancel ();
 	iTimer.Close ();
-	//}
 	if ( iNotifier)
 		{
 		iNotifier =NULL;
--- a/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/src/glxcloudviewimp.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -44,6 +44,11 @@
 #include <glxtagsbrowserview.rsg>               // For resources
 
 #include "glxcloudviewcontrol.h"//cloud view control
+
+// For transition effects
+#include <AknTransEffect.h>                             
+#include <GfxTransEffect/GfxTransEffect.h>
+#include "glxgfxtranseffect.h"  // For transition effects
     
 const TInt KViewId = 0x200071B7;
 
@@ -103,12 +108,7 @@
 
 	{
 	TRACER("GLX_CLOUD::CGlxCloudViewImp::ConstructL");
-	TInt err = iHarvesterClient.Connect();
-    GLX_LOG_INFO1("iHarvesterClient.Connect() err = %d",err);
-    if(err == KErrNone)
-        {
-        iHarvesterClient.AddHarvesterEventObserver(*this, EHEObserverTypeMMC, 1000);
-        }
+	
 	TFileName resourceFile(KDC_APP_RESOURCE_DIR);
 	resourceFile.Append (aFileName);
 	CGlxResourceUtilities::GetResourceFilenameL (resourceFile);
@@ -128,7 +128,6 @@
         {
         toolbar->DisableToolbarL(ETrue);  
         }
-//	SetSoftkeysFromResourceIdL (iSoftkeyMskDisabledId); //initially load empty msk
 	}
 
 // ---------------------------------------------------------------------------
@@ -138,7 +137,10 @@
 CGlxCloudViewImp::~CGlxCloudViewImp()
     {
     TRACER("GLX_CLOUD::CGlxCloudViewImp::~CGlxCloudViewImp");
-    iHarvesterClient.Close();
+    
+    delete iMMCNotifier;
+    iMMCNotifier = NULL;
+        
     CleanupVisuals ();
     delete iEmptyListText;
     if ( iResourceOffset )
@@ -199,12 +201,25 @@
 		TUid /* aCustomMessageId */, const TDesC8 & /* aCustomMessage */)
     {
     TRACER("GLX_CLOUD::CGlxCloudViewImp::DoMLViewActivateL");
+        
+    TUint transitionID = (iUiUtility->ViewNavigationDirection()==
+          EGlxNavigationForwards)?KActivateTransitionId:KDeActivateTransitionId; 
+    
+    GfxTransEffect::BeginFullScreen( transitionID, TRect(),
+            AknTransEffect::EParameterType, 
+            AknTransEffect::GfxTransParam( KPhotosUid,
+            AknTransEffect::TParameter::EEnableEffects) );   
+
+    
     if(StatusPane())
         {
         StatusPane()->MakeVisible(ETrue);
         }
     ConstructCloudControlL();
     GLX_LOG_INFO("CGlxCloudViewImp::DoMLViewActivateL Cloud View Control Created" );  
+    
+    GfxTransEffect::EndFullScreen();
+	
     // set app state to tag-browser view
     GlxSetAppState::SetState (EGlxInTagBrowserView);
     }
@@ -235,7 +250,6 @@
     TRACER("GLX_CLOUD ::CGlxCloudViewImp::HandleMskChangedL");
     GLX_LOG_INFO1("GLX_CLOUD ::GLX_CLOUD ::CGlxCloudViewImp::HandleMskChangedL MSk State  %d ",
         aMskEnabled);
-    //iViewWidget->setRect( ClientRect() );
 	 }
 
 // ---------------------------------------------------------------------------
@@ -277,14 +291,10 @@
         }
     if( iUiUtility )
         {
-
 		IAlfWidgetFactory& widgetFactory = AlfWidgetEnvExtension::widgetFactory(*(iUiUtility->Env ())); 
         widgetFactory.destroyWidget(iViewWidget);
-    
         }
     iViewWidget = NULL; 
-    // delete iCloudControl;
-    //  iCloudControl = NULL;  
     iScrollbarDefaultBaseElement = NULL;
     }
 
@@ -358,6 +368,8 @@
     
      //acquire the focus so as to get events to your control instead of widgets
     iCloudControl->AcquireFocus();
+    
+    iMMCNotifier = CGlxMMCNotifier::NewL(*this);
     }
 // ---------------------------------------------------------------------------
 // SetScrollBarRect()
@@ -430,19 +442,39 @@
         iCloudControl->ShowContextItemMenu(EFalse);
         }
     }
+
 // ---------------------------------------------------------------------------
-// HarvestingUpdated
+// HandleMMCInsertionL
 // 
 // ---------------------------------------------------------------------------
+void CGlxCloudViewImp::HandleMMCInsertionL()
+    {
+    TRACER("CGlxCloudViewImp::HandleMMCInsertionL()");
+    iMMCState = ETrue;
+    ProcessCommandL(EAknSoftkeyClose);
+    }
+
+// ---------------------------------------------------------------------------
+// HandleMMCRemovalL
+// 
+// ---------------------------------------------------------------------------
+void CGlxCloudViewImp::HandleMMCRemovalL()
+    {
+    TRACER("CGlxCloudViewImp::HandleMMCRemovalL()");
+    ProcessCommandL(EAknSoftkeyExit);
+    }
+
+// ---------------------------------------------------------------------------
+// Foreground event handling function.
+// ---------------------------------------------------------------------------
 //
-void CGlxCloudViewImp::HarvestingUpdated( 
-                HarvesterEventObserverType HarvestingUpdated, 
-                HarvesterEventState /*aHarvesterEventState*/,
-                TInt /*aItemsLeft*/ )
+void CGlxCloudViewImp::HandleForegroundEventL(TBool aForeground)
     {
-    TRACER("CGlxCloudViewImp::HarvestingUpdated()");
-    if(HarvestingUpdated == EHEObserverTypeMMC)
+    TRACER("CGlxCloudViewImp::HandleForegroundEventL");
+    CAknView::HandleForegroundEventL(aForeground);
+    if(iMMCState)
         {
+        iMMCState = EFalse;
         ProcessCommandL(EAknSoftkeyClose);
         }
     }
--- a/photosgallery/viewframework/views/cloudview/src/glxcontainerinfobubble.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/src/glxcontainerinfobubble.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -358,7 +358,6 @@
 void CGlxContainerInfoBubble::SetFocus(TPoint aPos)
 	{
 	TRACER("GLX_CLOUD::CGlxContainerInfoBubble::SetFocus");
-	//iFocusindex = iMediaList->FocusIndex (); //get the medialist focus index
 	DisappearBubble ();
 	
 	if ( iTexture )
--- a/photosgallery/viewframework/views/cloudview/src/glxinfobubble.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/cloudview/src/glxinfobubble.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -123,22 +123,15 @@
 		(iTypefaceSecondaryStyleId);
 	styleSecondary->SetTextSizeInPixels (14, 0);
 	stylePrimary->SetTextSizeInPixels (21, 0);
-
 	iBubbleTextTitle->SetTextStyle (iTypefacePrimaryStyleId);
 	
 	TAlfTimedValue opacity;
     opacity.SetTarget(1, 500);
     iBubbleTextTitle->SetOpacity(opacity);
-    
-//	iBubbleTextTitle->iOpacity.Set (1);
 	iBubbleTextTitle->SetColor (KRgbBlack);
-
 	iBubbleTextSubTitle->SetTextStyle (iTypefaceSecondaryStyleId);
-	
     opacity.SetTarget(1, 500);
     iBubbleTextSubTitle->SetOpacity(opacity);
-    
-//	iBubbleTextSubTitle->iOpacity.Set (1);
 	iBubbleTextSubTitle->SetColor (KRgbBlack);
 
 	}
@@ -390,8 +383,6 @@
 	//assign the params
 	//setting the texts value and image brush boundary
 	iBubbleTextTitle->SetTextL(aTitle);
-	//to-check
-	//iBubbleTextTitle->SetChanged();
 	iBubbleTextSubTitle->SetTextL(aSubTitle);
 	_LIT(KNullDesc,"");
 	iTempTitleText->SetTextL(KNullDesc());
@@ -399,8 +390,6 @@
 	
 	//loading the texture for thumbanil image		
     UpdateTextureL(aTexture);
-    //to-check
-	//iInfoDeck->Changed();
 	TRect rect;
 	AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EMainPane, rect);
 	iScreenWidth = rect.Width();
@@ -446,7 +435,6 @@
 		DrawBubbleFourthQuadL(aPos);
 		}
 //to-check
-//	iInfoBubble->SetChanged();
 	
 	//all texture loaded
 	//now find the width of bubblle and create layout based on these visuals.
@@ -488,34 +476,18 @@
 	TAlfTimedValue opacity;
     opacity.SetTarget(0.9, 500);
     iInfoBubble->SetOpacity(opacity);
-        
-	//iInfoBubble->iOpacity.Set(0.9, 1000);
 	iInfoDeck->SetPos(iBubbleRectDrawPoint);
 	CreateItemContainerLayoutL();
 
 	//Setting properies for Layouts
 	iInfoDeck->MoveToFront();
-	
-//	TAlfTimedValue opacity;
     opacity.SetTarget(0, 500);
     iInfoDeck->SetOpacity(opacity);
-    
-//	iInfoDeck->iOpacity.Set(0);
-	
 	opacity.SetTarget(1.0, 800);
 	iInfoDeck->SetOpacity(opacity);
-	//iInfoDeck->iOpacity.Set(1.0,800);
-	
 	opacity.SetTarget(1.0, 500);
 	iInfoBubble->SetOpacity(opacity);
-	//iInfoBubble->iOpacity.Set(1.0);
-	
 	iInfoBubbleContainer->MoveToFront();
-	//to-check
-   //	iInfoDeck->SetChanged();
-
-	/// @todo would need to reposition the tail as well somehow!!!
-
 	}
 
 void CGlxInfoBubble::DrawBubbleFirstQuadL(TPoint aReferencepos)
--- a/photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/group/glxfullscreenview.mmp	Wed Mar 31 21:31:03 2010 +0300
@@ -98,6 +98,7 @@
 LIBRARY         glxcommon.lib							// for filter facotory
 LIBRARY         glxcommonui.lib
 LIBRARY 	glxtvout.lib
-LIBRARY	   	harvesterclient.lib
+LIBRARY 	gfxtrans.lib
+LIBRARY		akntransitionutils.lib
 // EOF 
 
--- a/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/inc/glxfullscreenviewimp.h	Wed Mar 31 21:31:03 2010 +0300
@@ -26,7 +26,8 @@
 #include "glxfullscreenview.h"
 #include "glxfullscreenbindingsetfactory.h"
 #include "glxfullscreenview.hrh"
-#include <harvesterclient.h>
+#include "glxmmcnotifier.h"
+
 //Gesture Helper namespace 
 namespace GestureHelper
     {
@@ -77,7 +78,7 @@
 NONSHARABLE_CLASS (CGlxFullScreenViewImp): public CGlxFullScreenView, 
                                             public IAlfWidgetEventHandler,
  											public MGlxUiCommandHandler,
-											public MHarvesterEventObserver
+			                                public MStorageNotifierObserver
     {
 public:    
     /**
@@ -144,12 +145,6 @@
 
     AlfEventHandlerExecutionPhase eventExecutionPhase() ;
 
-public:
-    // from MHarvesterEventObserver
-    void HarvestingUpdated( 
-                HarvesterEventObserverType aHEObserverType, 
-                HarvesterEventState aHarvesterEventState,
-                TInt aItemsLeft );
 
 private:
     /*
@@ -270,11 +265,24 @@
   	/**
      * Consume DRM rights
      */  
-    void ConsumeDRMRightsL( const TDesC& uri );
+    void ConsumeDRMRightsL(const TGlxMedia& aMedia);
     /**
      * Set the image to external display - HDMI
      */
     void SetItemToHDMIL();
+    /**
+     * handle MMC insertion
+     */
+    void HandleMMCInsertionL();
+    /**
+     * handle MMC removal
+     */
+    void HandleMMCRemovalL();
+    
+    /**
+     * navigate to main list
+     */
+    void NavigateToMainListL();
 private:
     /** Softkey resource id's */
     TFullScreenViewResourceIds iResourceIds; 
@@ -312,8 +320,6 @@
 	CGlxCommandHandlerAiwShowMapHardKey* iShowOnMapHardKeyhandler;
     
     CGlxScreenFurniture* iScreenFurniture;
-    //CGlxSingleLineMetaPane* iSingleLineMetaPane;
-//    CHgContextUtility* iContextUtility;
     CGlxHdmiController* iHdmiController;
 	    
     CGlxDRMUtility* iDrmUtility;
@@ -328,7 +334,8 @@
     //Previous focused index
     TInt iOldFocusIndex;
     TBool iImgViewerMode;
-	RHarvesterClient iHarvesterClient;
+	CGlxMMCNotifier* iMMCNotifier;
+	TBool iMMCState;
     };
 
 #endif
--- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbindingsetfactory.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenbindingsetfactory.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -86,9 +86,7 @@
  */
 void TGlxMulFSMPTitleBindingSetFactory::AddBindingsL() const
     {
-	//AddIconBindingL( Alf::mulvisualitem::KMulIcon1 /*CGlxMulStaticIconProvider::NewL(resource ID)*/  );//@todo the resource file from which this to be read
 	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulTitle1 , KMPXMediaGeneralTitle );
-	//AddIconBindingL( Alf::mulvisualitem::KMulIcon1, CGlxMulStaticIconProvider::NewL(EMbmGlxiconsQgn_lgal_icon_tag_list));
 	AddTemplateBindingL(Alf::mulwidget::KTemplate5);
     }
 
@@ -114,7 +112,6 @@
  */
 void TGlxMulFSMPDateBindingSetFactory::AddBindingsL() const
     {
-	//AddThumbnailBindingL( Alf::mulvisualitem::KMulIcon1 );
 	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralDate,
 	    R_QTN_DATE_USUAL_WITH_ZERO );
 	AddTemplateBindingL(Alf::mulwidget::KTemplate3);
@@ -199,8 +196,6 @@
  */
 void TGlxMulFSMPAlbumBindingSetFactory::AddBindingsL() const
     {
-//	 AddIconBindingL( Alf::mulvisualitem::KMulIcon1 /*CGlxMulStaticIconProvider::NewL(resource ID)//qgn_lgal_fullscr_meta_album
-	//AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralTitle );
 	AddTemplateBindingL(Alf::mulwidget::KTemplate4);
 	}
 	
@@ -227,7 +222,6 @@
  */
 void TGlxMulFSMPLocationBindingSetFactory::AddBindingsL() const
     {
-//	AddIconBindingL( Alf::mulvisualitem::KMulIcon1, KGlxMediaGeneralLocation );//qgn_lgal_metapane_location
 	AddIconBindingL( Alf::mulvisualitem::KMulIcon1, 
 	        CGlxMulLocationIconProvider::NewL(), KDefaultIconSize );
 	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KGlxMediaGeneralLocation );//@todo
@@ -259,8 +253,6 @@
  */
 void TGlxMulFSMPTagsBindingSetFactory::AddBindingsL() const
     {
-//	AddIconBindingL( Alf::mulvisualitem::KMulIcon1 /*CGlxMulStaticIconProvider::NewL(resource ID)//QTN_LGAL_FULLSCR_METAPANE_TAGS //@todo
-	//AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralTitle );//@todo
 	AddTemplateBindingL(Alf::mulwidget::KTemplate4);
 	}
 
--- a/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/fullscreenview/src/glxfullscreenviewimp.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -25,6 +25,11 @@
 #include <glxcollectionpluginimageviewer.hrh>
 #include <StringLoader.h>                       // String Loader
 
+//For animation Effects
+#include <akntranseffect.h>
+#include <akntransitionutils.h>
+#include <alf/alflayout.h>
+
 // Alf Headers
 #include <alf/ialfwidgetfactory.h>              // widget factory
 #include <alf/alfwidgetcontrol.h>               // To get CAlfControl from CAlfWidgetControl
@@ -68,6 +73,7 @@
 #include <mpxcollectionpath.h>
 #include <glxcollectionpluginimageviewer.hrh>
 #include "glxfullscreenbusyicon.h"
+
 using namespace Alf;
 
 const TInt KGlxScreenTimeout =10000000;
@@ -87,12 +93,14 @@
 const TInt KPeriodicIntervalDelay = 100000; 
 
 //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);
+//6 = 5(iterator value in forward or backward direction for fullscreen) + 1(focus index)
 const TInt KFullScreenIterator = 3; 
 //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;
 
+_LIT( KTfxResourceActivateFullScreen, "z:\\resource\\effects\\photos_fullscreen_open.fxml" );
+
 // ======== MEMBER FUNCTIONS ========
 
 // ---------------------------------------------------------------------------
@@ -195,12 +203,7 @@
    // Get object that stores the active media list registry
     iActiveMediaListRegistry = CGlxActiveMediaListRegistry::InstanceL();
 	
-	TInt err = iHarvesterClient.Connect();
-	GLX_LOG_INFO1("iHarvesterClient.Connect() err = %d",err);
-	if(err == KErrNone)
-		{
-        iHarvesterClient.AddHarvesterEventObserver(*this, EHEObserverTypeMMC, 1000);
-	    }
+	iMMCNotifier = CGlxMMCNotifier::NewL(*this);
 	if(!iPeriodic)
 		{
 		iPeriodic = CPeriodic::NewL(CActive::EPriorityStandard);
@@ -214,7 +217,10 @@
 CGlxFullScreenViewImp::~CGlxFullScreenViewImp()
     {
     TRACER("CGlxFullScreenViewImp::~CGlxFullScreenViewImp");
-    iHarvesterClient.Close();
+    
+    delete iMMCNotifier;
+    iMMCNotifier = NULL;
+    
 	delete iMediaListMulModelProvider;   
     if(iTimer->IsActive())
 	    {
@@ -342,9 +348,6 @@
         SetItemToHDMIL();
         }
     iScreenFurniture->SetActiveView(iViewUid);
-
-    // create the screen furniture for touch devices
-    CreateScreenFurnitureL();
     
     //set the ui state to off,when the Fullscreen launches
     SetUiSate(NGlxNFullScreenUIState::EUiOff);
@@ -354,6 +357,9 @@
     // create the coverflow
     CreateCoverflowWidgetL();
     
+    // create the screen furniture for touch devices
+    CreateScreenFurnitureL();
+    
     CreateSliderWidgetL();
     
     iBusyIcon = CGlxFullScreenBusyIcon::NewL(*iMediaList,*iUiUtility);
@@ -366,11 +372,32 @@
 	// Set active media list pointer, so that UPnP renderer knows about this list
     iActiveMediaListRegistry->RegisterActiveMediaList(iMediaList);
     
-    if ( !iPeriodic->IsActive() )
-	    {
+	if ( !iPeriodic->IsActive() )
+		{
 	    iPeriodic->Start(KPeriodicStartDelay, KPeriodicIntervalDelay,
 	            TCallBack(&PeriodicCallback, static_cast<TAny*> (this)));
-	    }
+		}
+		
+	//Set the animation effect for the coverflow widget since the animation
+	//does not work for both avkon and alf together. This can be done since the
+	//UI Screen furnitures are disabled by default while going to fullscreen.
+	//Check if the transitions are enabled from themes
+    if (CAknTransitionUtils::TransitionsEnabled(
+                                    AknTransEffect::EFullScreenTransitionsOff))
+        {
+        const_cast<CAlfLayout&> (iCoverFlowWidget->ContainerLayout()).SetEffectL(
+                KTfxResourceActivateFullScreen);
+        }
+    
+	//Disable the status pane here as it causes flicker while animating
+    CAknViewAppUi* appui = AppUi();
+    if ( appui )
+        {
+        appui->StatusPane()->MakeVisible(EFalse);
+        appui->Cba()->MakeVisible(EFalse);
+        }
+
+	iViewWidget->show(true);    
 	}
 	
 
@@ -400,7 +427,6 @@
         iViewWidget->enableControlPane(EFalse);
         iViewWidget->enableStatusPane(EFalse);
         iViewWidget->setRect(TRect(TPoint(0, 0), AlfUtil::ScreenSize()));
-        iViewWidget->show(true);
         // create coverflow widget
         iCoverFlowWidget = widgetFactory.createWidget<IMulCoverFlowWidget> (
                 KWidgetName, KCoverflowWidget, *iViewWidget, NULL);
@@ -409,14 +435,6 @@
         // Widget takes the ownership
         iCoverFlowWidget->AddEventHandler(*this);
 
-        CAknViewAppUi* appui = AppUi();
-        if ( appui )
-            {
-            appui->StatusPane()->MakeVisible(EFalse);
-            appui->Cba()->MakeVisible(EFalse);
-            }
-
-        iCoverFlowWidget->ShowWidget(ETrue);
         iCoverFlowWidget->control()->AcquireFocus();
         iMediaListMulModelProvider = CGlxMediaListMulModelProvider::NewL(
                 *iEnv, *iCoverFlowWidget, *iMediaList, iFullScreenBindingSet,
@@ -481,8 +499,9 @@
     TBool isDrmRightsValid = ETrue;
 	if(item.IsDrmProtected())
 		{
-		//Fix for ESLM-82WJ59: Since it is always for the focused item - use DisplayRightsL instead of openrightsL
-		isDrmRightsValid = iDrmUtility->CheckDisplayRightsL(item.Uri(), (item.Category() == EMPXImage));
+		//Since it is always for the focused item - use DisplayItemRightsCheckL instead of ItemRightsValidityCheckL
+		isDrmRightsValid = iDrmUtility->DisplayItemRightsCheckL(item.Uri(),
+				(item.Category() == EMPXImage));
 		}
 	
     // Display slider only for non corrupted images and items with valid DRM license
@@ -556,8 +575,6 @@
     // hide the softkeys
     Cba()->MakeVisible( EFalse );
     Cba()->DrawNow();
-    // Hide the metapane
-    //iSingleLineMetaPane->ShowMetaPane(EFalse);
  
     // set the ui state to On
     SetUiSate(NGlxNFullScreenUIState::EUiOff);
@@ -574,9 +591,6 @@
     CEikButtonGroupContainer* cba = CEikButtonGroupContainer::Current();
     CleanupStack::PushL( cba );
     cba->SetCommandSetL(R_GLX_FULLSCREEN_SOFTKEYS);
-    // hide the softkeys
-    cba->MakeVisible( EFalse );
-    cba->DrawNow();
     CleanupStack::Pop(cba);
     }
 
@@ -684,8 +698,9 @@
     TBool isDrmRightsValid = ETrue;
     if(item.IsDrmProtected())
     	{
-    	 //Fix for ESLM-82WJ59: DRM Rights validity check for displayed item
-    	isDrmRightsValid = iDrmUtility->CheckDisplayRightsL(item.Uri(), (item.Category() == EMPXImage));
+    	 //DRM Rights validity check for displayed item
+    	isDrmRightsValid = iDrmUtility->DisplayItemRightsCheckL(item.Uri(),
+				(item.Category() == EMPXImage));
     	}
     // Activate Zoom if the item is an image and its DRM rights is not expired
     if(KErrNone == error && (EMPXImage == item.Category()) && isDrmRightsValid)
@@ -756,10 +771,10 @@
 void CGlxFullScreenViewImp::DoMLViewDeactivate()
     {
     TRACER("CGlxFullScreenViewImp::DoMLViewDeactivate");
-    //Fix for ESLM-82WJ59: Clear the last uri for which DRM Rights were consumed before going back to grid view
+    //Clear the last uri for which DRM Rights were consumed before going back to grid view
     //since the GridView::Activate() and FullScreen::DeActivate() can be called in any order,
     //this call is being made to be on safer side
-    iDrmUtility->ClearLastConsumedItemUri();
+    iDrmUtility->ClearLastConsumedItemUriL();
     iScreenFurniture->ViewDeactivated(iViewUid);
     iImgViewerMode = EFalse;
     if (iHdmiController)
@@ -800,8 +815,12 @@
     {
     TRACER("CGlxFullScreenViewImp::HandleForegroundEventL");
     CAknView::HandleForegroundEventL(aForeground);
+    if(iMMCState)
+        {
+        iMMCState =EFalse;
+        NavigateToMainListL();
+        }
     
-	
     if(iZoomControl && iZoomControl->Activated())
         {
         iZoomControl->HandleZoomForegroundEvent(aForeground);
@@ -1267,29 +1286,28 @@
     }
 	
 // ---------------------------------------------------------------------------
-// 
-// Shows expiry note/dialog for expired DRM files, can leave
+// Shows expiry note / Consumes DRM rights for expired DRM files
 // ---------------------------------------------------------------------------
 //
 void CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()
 	{
-	TRACER("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL");
-	if(iMediaList->Count()>0)
-		{
+    TRACER("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL");
+    if (iMediaList->Count() > 0)
+        {
         const TGlxMedia& media = iMediaList->Item(iMediaList->FocusIndex());
         TInt tnError = GlxErrorManager::HasAttributeErrorL(
                 media.Properties(), KGlxMediaIdThumbnail);
         GLX_LOG_INFO1("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
                 " tnError=%d ", tnError);
 
-        TSize tnSize = iUiUtility->DisplaySize();
-        TMPXAttribute qtyTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail,
-                GlxFullThumbnailAttributeId(ETrue, tnSize.iWidth,
-                        tnSize.iHeight));
-        const CGlxThumbnailAttribute* qtyTn = media.ThumbnailAttribute(
-                qtyTnAttrib);
+        if (media.IsDrmProtected())
+            {
+            GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
+                    "- ConsumeDRMRightsL()");
+            ConsumeDRMRightsL(media);
+            }
 
-        if (qtyTn)
+        if (tnError == KErrNone)
             {
             if (iPeriodic->IsActive())
                 {
@@ -1297,15 +1315,10 @@
                 }
             }
 
-        if (tnError == KErrNone && qtyTn && media.IsDrmProtected())
-            {
-            GLX_LOG_INFO("CGlxFullScreenViewImp::ShowDrmExpiaryNoteL()"
-                    "- ConsumeDRMRightsL()");
-            const TDesC& uri = media.Uri();
-            ConsumeDRMRightsL(uri);
-            }
-
-        if (tnError != KErrNone)
+        TMPXGeneralCategory cat = media.Category();
+        TBool checkViewRights = (cat == EMPXImage);
+        if (iDrmUtility->ItemRightsValidityCheckL(media.Uri(),
+                checkViewRights) && tnError != KErrNone)
             {
             if (iPeriodic->IsActive())
                 {
@@ -1326,29 +1339,55 @@
             CleanupStack::PopAndDestroy(naviState);
             CleanupStack::PopAndDestroy(navigationalState);
             }
-         }
-	}
+        }
+    }
 
 // ---------------------------------------------------------------------------
-// 
-// consumes DRM rights for DRM files, can leave
+// Consumes DRM rights / Shows DRM rights (if expired) information 
+// for DRM files
 // ---------------------------------------------------------------------------
 //
-void CGlxFullScreenViewImp::ConsumeDRMRightsL( const TDesC& uri )
+void CGlxFullScreenViewImp::ConsumeDRMRightsL(const TGlxMedia& aMedia)
     {
     TRACER("CGlxFullScreenViewImp::ConsumeDRMRightsL");
-    if( uri.Length() > 0 )
+    const TDesC& uri = aMedia.Uri();
+    if (uri.Length() > 0)
         {
         // check if rights have expired
-        TBool expired = !iDrmUtility->CheckOpenRightsL(uri,ETrue);
-        if(expired)
+        TBool expired = !iDrmUtility->ItemRightsValidityCheckL(uri, ETrue);
+        if (expired)
             {
-			iBusyIcon->ShowBusyIconL(EFalse);				
+            if (iPeriodic->IsActive())
+                {
+                iPeriodic->Cancel();
+                }
+            iBusyIcon->ShowBusyIconL(EFalse);
             iDrmUtility->ShowRightsInfoL(uri);
             return;
             }
-        iDrmUtility->ConsumeRightsL(uri);                        
-        }     
+
+        TSize tnSize = iUiUtility->DisplaySize();
+        TMPXAttribute qtyTnAttrib = TMPXAttribute(KGlxMediaIdThumbnail,
+                GlxFullThumbnailAttributeId(ETrue, tnSize.iWidth,
+                        tnSize.iHeight));
+        const CGlxThumbnailAttribute* qtyTn = aMedia.ThumbnailAttribute(
+                qtyTnAttrib);
+
+        TInt tnError = GlxErrorManager::HasAttributeErrorL(
+                aMedia.Properties(), KGlxMediaIdThumbnail);
+        GLX_LOG_INFO1("CGlxFullScreenViewImp::ConsumeDRMRightsL()"
+                " tnError=%d ", tnError);
+        if (qtyTn && tnError == KErrNone)
+            {
+            if (iPeriodic->IsActive())
+                {
+                iPeriodic->Cancel();
+                }
+            GLX_LOG_INFO("CGlxFullScreenViewImp::ConsumeDRMRightsL()"
+                    "- ConsumeRights");
+            iDrmUtility->ConsumeRightsL(uri);
+            }
+        }
     }
 
 // ---------------------------------------------------------------------------
@@ -1381,6 +1420,7 @@
 
     return swipedirection;        
     }
+
 // ---------------------------------------------------------------------------
 // 
 // Gets the index of the item for which the texture has to be removed
@@ -1413,6 +1453,7 @@
     GLX_LOG_INFO1("CGlxFullScreenViewImp::GetIndexToBeRemoved index tobe removed %d",indextoberemoved );
     return indextoberemoved;
     }
+
 // ---------------------------------------------------------------------------
 // 
 // Remove the texture on every swipe while HDMI is connected.
@@ -1444,8 +1485,7 @@
     // then dont SetImageToHDMI :)  
     if( ( KErrNotFound == focusIndex)
             || (0 == iMediaList->Count())
-            || (NULL == iHdmiController)
-            || (!iHdmiController->IsHDMIConnected())) 
+            || (NULL == iHdmiController)) 
         {
         GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - Cant Set Image To HDMI");
         return;
@@ -1460,38 +1500,45 @@
     // and it has valid DRM Viewing rights
     // and it has no attribute error 
     if ( (item.Category() != EMPXVideo) 
-            && iDrmUtility->CheckOpenRightsL(item.Uri(), ETrue) 
+            && iDrmUtility->ItemRightsValidityCheckL(item.Uri(), ETrue) 
             && (error == KErrNone) )
         {
         GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - CGlxHdmi - Setting the Image");
-        TInt frameCount(0);
-        TSize orignalSize;
-        item.GetFrameCount(frameCount);
-        item.GetDimensions(orignalSize);
-        iHdmiController->SetImageL(item.Uri(), orignalSize, frameCount);
+        iHdmiController->SetImageL(item.Uri());
         }
     else
         {
         GLX_LOG_INFO("CGlxFullScreenViewImp::SetImageToHDMIL - Unsupported Item");
         //Set the external display to cloning mode if
         //the current item is something we dont support 
-        //(e.g. video, corrupted item, item with invalid DRM);
+        //(e.g. video, corrupted item, item with invalid DRM)
         iHdmiController->ItemNotSupported();
         }
     iOldFocusIndex = iMediaList->FocusIndex();
     }
+
 // ---------------------------------------------------------------------------
-// HarvestingUpdated
+// HandleMMCInsertionL
 // 
 // ---------------------------------------------------------------------------
-//
-void CGlxFullScreenViewImp::HarvestingUpdated( 
-                HarvesterEventObserverType HarvestingUpdated, 
-                HarvesterEventState aHarvesterEventState,
-                TInt aItemsLeft )
+void CGlxFullScreenViewImp::HandleMMCInsertionL()
     {
-    TRACER("CGlxFullScreenViewImp::HarvestingUpdated()");
-    if(HarvestingUpdated == EHEObserverTypeMMC)
+    TRACER("CGlxFullScreenViewImp::HandleMMCInsertionL()");
+    iMMCState = ETrue;
+    NavigateToMainListL();
+    }
+	
+// ---------------------------------------------------------------------------
+// NavigateToMainListL
+// 
+// ---------------------------------------------------------------------------
+void CGlxFullScreenViewImp::NavigateToMainListL()
+    {
+    TRACER("CGlxFullScreenViewImp::NavigateToMainListL()");
+    CGlxNavigationalState* navigationalState =  CGlxNavigationalState::InstanceL();
+    CleanupClosePushL( *navigationalState );
+    CMPXCollectionPath* naviState = navigationalState->StateLC();
+    if (naviState->Id() != TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid))
         {
         if(iZoomControl && iZoomControl->Activated())
         	{
@@ -1500,4 +1547,21 @@
         	}
         ProcessCommandL(EAknSoftkeyClose);
         }
+    CleanupStack::PopAndDestroy(naviState);
+    CleanupStack::PopAndDestroy(navigationalState);
     }
+	
+// ---------------------------------------------------------------------------
+// HandleMMCInsertionL
+// 
+// ---------------------------------------------------------------------------
+void CGlxFullScreenViewImp::HandleMMCRemovalL()
+    {
+    TRACER("CGlxFullScreenViewImp::HandleMMCRemovalL()");
+    if(iZoomControl && iZoomControl->Activated())
+        {
+        SetSliderLevel();
+        DeactivateZoomControlL();   
+        }
+    ProcessCommandL(EAknSoftkeyExit);
+    }
--- a/photosgallery/viewframework/views/gridview/group/glxgridview.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/group/glxgridview.mmp	Wed Mar 31 21:31:03 2010 +0300
@@ -77,5 +77,6 @@
 LIBRARY         aknskins.lib
 LIBRARY         featmgr.lib					// FeatureManager
 LIBRARY	   	harvesterclient.lib 
+LIBRARY 	gfxtrans.lib
 // End of File
 
--- a/photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewcontainer.h	Wed Mar 31 21:31:03 2010 +0300
@@ -35,9 +35,9 @@
 #include <glxthumbnailcontext.h>
 #include <glxuistd.h>
 #include <glxprogressindicator.h>
-#include <harvesterclient.h>
 
 #include "glxgridvieweventobserver.h"
+#include "glxmmcnotifier.h"
 
 class CHgGrid;
 class CGlxUiUtility;
@@ -54,7 +54,7 @@
 								public MHgScrollBufferObserver,
 								public MHgSelectionObserver,
 								public MHgMarkingObserver,
-								public MHarvesterEventObserver
+								public MStorageNotifierObserver
 	{
 public:
 	/**
@@ -97,12 +97,6 @@
 
 	//handle orientaion realted changes
 	void HandleResourceChange(TInt aType);
-public:
-    // from MHarvesterEventObserver
-    void HarvestingUpdated( 
-                HarvesterEventObserverType aHEObserverType, 
-                HarvesterEventState aHarvesterEventState,
-                TInt aItemsLeft );
 
 private:
 	/**
@@ -158,6 +152,14 @@
      * Required as the tool bar is dynamically created.
      */
 	TRect GetHgGridRect();
+	/**
+	 * handle mmc insertion event
+	 */
+	void HandleMMCInsertionL();
+	/**
+	 * handle mmc removal event
+	 */
+	void HandleMMCRemovalL();
 
 private:
 	//medialist
@@ -219,7 +221,7 @@
 	//toolbar - created dynamically.
     CAknToolbar* iToolbar;
     CGlxProgressIndicator* iProgressIndicator;
-    RHarvesterClient iHarvesterClient;
+    CGlxMMCNotifier* iMMCNotifier;
 	};
 
 #endif // CGLXGRIDVIEWCONTROL_H
--- a/photosgallery/viewframework/views/gridview/inc/glxgridviewimp.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewimp.h	Wed Mar 31 21:31:03 2010 +0300
@@ -124,6 +124,7 @@
     CGlxGridViewContainer* iGlxGridViewContainer;
     //toolbar - created dynamically.
     CAknToolbar* iToolbar;
+    TBool iMMCState;
     };
 
 #endif  // C_GLXGRIDLVIEWIMP_H
--- a/photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/inc/glxgridviewmlobserver.h	Wed Mar 31 21:31:03 2010 +0300
@@ -103,10 +103,10 @@
     void UpdateItemsL (TInt aItemIndex,const RArray<TMPXAttribute>& aAttributes);
     
     /**
-     * DisplayErrorNote - Show an error note based on input parameter
+     * DisplayErrorNoteL - Show an error note based on input parameter
      * @param aError The error based on which the error note is to be shown. 
      */
-	void DisplayErrorNote(TInt aError);
+	void DisplayErrorNoteL(TInt aError);
     
 private:
 
@@ -123,15 +123,13 @@
     //No of visible items in a page/view
     TInt  iItemsPerPage;
 
-    // Has the error in disk (e.g disk error) been shown to the user?  
+    // Variable to check if the error in disk (e.g disk error) has been shown to the user.  
     // If a disk is full the user should not be intimated everytime over and over again.
     TInt  iDiskErrorIntimated;
 
     // Modified Indexes array to refresh the screen
     RArray<TInt> iModifiedIndexes;
 
-//    CHgContextUtility* iContextUtility;
-    
     //Grid Thumbnail Attribs
     TMPXAttribute iQualityTnAttrib;
     TMPXAttribute iSpeedTnAttrib;    
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewcontainer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -85,7 +85,10 @@
 CGlxGridViewContainer::~CGlxGridViewContainer()
 	{
 	TRACER("CGlxGridViewContainer::~CGlxGridViewContainer");
-	iHarvesterClient.Close();
+	
+	delete iMMCNotifier;
+	iMMCNotifier = NULL;
+	
 	if(iBgContext)
 		{
 		delete iBgContext;	
@@ -161,10 +164,10 @@
 	// For DRM Utility
 	iDRMUtility = CGlxDRMUtility::InstanceL();
 
-	//Fix for ESLM-82WJ59: Clear the last uri for which DRM Rights were consumed
-	//since the GridView::Activate() and FullScreen::DeActivate() can be called in any order,
-	//this call is being made to be on safer side
-	iDRMUtility->ClearLastConsumedItemUri();
+    //Clear the last uri for which DRM Rights were consumed
+    //since the GridView::Activate() and FullScreen::DeActivate() 
+    //can be called in any order, this call is being made to be on safer side
+    iDRMUtility->ClearLastConsumedItemUriL();
 
 	// background Skin Context for the skin support
 	TRect apRect = iEikonEnv->EikAppUi()->ApplicationRect();
@@ -180,12 +183,7 @@
 					iGridIconSize.iHeight ) );
 	CreateGridL();
 
-   TInt err = iHarvesterClient.Connect();
-   GLX_LOG_INFO1("iHarvesterClient.Connect() err = %d",err);
-   if(err == KErrNone)
-		{
-        iHarvesterClient.AddHarvesterEventObserver(*this, EHEObserverTypeMMC, 1000);
-		}
+   iMMCNotifier = CGlxMMCNotifier::NewL(*this);
 	}
 
 // ---------------------------------------------------------------------------
@@ -495,7 +493,10 @@
 void CGlxGridViewContainer::CreateGridAfterFSDeactivatedL()
 	{
 	TRACER("CGlxGridViewContainer::CreateGridAfterFSDeactivatedL()");
-	if (iBackwardActivation)
+    TInt focusIndex = iMediaList->FocusIndex();
+    GLX_LOG_INFO1("CreateGridAfterFSDeactivatedL() focusIndex=%d", focusIndex);
+
+    if (iBackwardActivation)
 		{
 		TInt mlCount = iMediaList->Count();
 		GLX_LOG_INFO1("CreateGridAfterFSDeactivatedL() mlCount=%d", mlCount);
@@ -512,7 +513,6 @@
 			iHgGrid->DrawNow();
 			}
 
-		TInt focusIndex = iMediaList->FocusIndex();
 		TSize setSize = CHgGrid::PreferredImageSize();
 		TFileName resFile(KDC_APP_BITMAP_DIR);
 		resFile.Append(KGlxIconsFilename);
@@ -521,10 +521,13 @@
 			{
 			SetIconsL(index);
 			}
-			
-		iHgGrid->SetSelectedIndex(focusIndex);
-		iHgGrid->RefreshScreen(focusIndex);
 		}
+	
+    if (focusIndex != KErrNotFound)
+        {
+        iHgGrid->SetSelectedIndex(focusIndex);
+        iHgGrid->RefreshScreen(focusIndex);
+        }
 	iBackwardActivation = EFalse;
 	}
  
@@ -607,7 +610,7 @@
 				TMPXGeneralCategory  cat = item.Category();
 				TBool checkViewRights = (cat==EMPXImage);
 
-				if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights))
+				if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights))
 					{
 					iHgGrid->ItemL(index).SetFlags(CHgItem::EHgItemFlagsDrmRightsValid);
 					}
@@ -621,7 +624,7 @@
 				TMPXGeneralCategory  cat = item.Category();
 				TBool checkViewRights = (cat==EMPXImage);
 
-				if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights))
+				if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights))
 					{
 					iHgGrid->ItemL(index).SetFlags(CHgItem::EHgItemFlagsDrmRightsValid);
 					}
@@ -731,8 +734,8 @@
 						{
 						iIsFSVideoViewActivating = ETrue;
 						iFullscreenViewActivated = ETrue;
+						iGlxGridViewObserver.HandleGridEventsL(EGlxCmdPlay) ;
 						iIsFSVideoViewActivating = EFalse;
-						iGlxGridViewObserver.HandleGridEventsL(EGlxCmdPlay) ;
 						}
 					}
 				else
@@ -931,22 +934,22 @@
 	}
 
 // ---------------------------------------------------------------------------
-// HarvestingUpdated
+// HandleMMCInsertionL
 // 
 // ---------------------------------------------------------------------------
-//
-void CGlxGridViewContainer::HarvestingUpdated( 
-                HarvesterEventObserverType HarvestingUpdated, 
-                HarvesterEventState aHarvesterEventState,
-                TInt aItemsLeft )
+void CGlxGridViewContainer::HandleMMCInsertionL()
     {
-    TRACER("CGlxGridViewContainer::HarvestingUpdated()");
-    GLX_LOG_INFO1("HarvestingUpdated = %d",HarvestingUpdated);
-    GLX_LOG_INFO1("aHarvesterEventState = %d",aHarvesterEventState);
-    GLX_LOG_INFO1("aItemsLeft = %d",aItemsLeft);
-    if(HarvestingUpdated == EHEObserverTypeMMC)
-        {
-        iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyClose);
-        }
+    TRACER("CGlxGridViewContainer::HandleMMCInsertionL()");
+    iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyClose);
+    }
+
+// ---------------------------------------------------------------------------
+// HandleMMCRemovalL
+// 
+// ---------------------------------------------------------------------------
+void CGlxGridViewContainer::HandleMMCRemovalL()
+    {
+    TRACER("CGlxGridViewContainer::HandleMMCRemovalL()");
+    iGlxGridViewObserver.HandleGridEventsL(EAknSoftkeyExit);
     }
 //end of file
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewimp.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -39,6 +39,11 @@
 #include "glxgridviewmlobserver.h"                      // medialist observer for Hg Grid                
 #include "glxgridviewcontainer.h"
 
+// For transition effects
+#include <AknTransEffect.h>                             
+#include <GfxTransEffect/GfxTransEffect.h>
+#include "glxgfxtranseffect.h"  // For transition effects
+
 const TInt KGlxToolbarButtonUnLatched = 0;              // Toolbar mark button's unlatched state defined in the rss file
 
 // ======== MEMBER FUNCTIONS ========
@@ -129,6 +134,15 @@
 	{
 	TRACER("CGlxGridViewImp::DoMLViewActivateL()");
 
+    TUint transitionID = (iUiUtility->ViewNavigationDirection()==
+          EGlxNavigationForwards)?KActivateTransitionId:KFSDeActivateTransitionId; 
+    
+	GfxTransEffect::BeginFullScreen( transitionID, TRect(),
+                                AknTransEffect::EParameterType, 
+                                AknTransEffect::GfxTransParam( KPhotosUid,
+                                AknTransEffect::TParameter::EEnableEffects) );	
+	GfxTransEffect::EndFullScreen();
+	
 	if(StatusPane())
 		{
 		StatusPane()->MakeVisible(ETrue);
@@ -261,6 +275,11 @@
 void CGlxGridViewImp::HandleForegroundEventL(TBool aForeground)
 	{
     TRACER("CGlxGridViewImp::HandleForegroundEventL()");
+	if(iMMCState)
+	    {
+        iMMCState = EFalse;
+        ProcessCommandL(EAknSoftkeyClose);
+	    }
 	CAknView::HandleForegroundEventL(aForeground);
 	}
 
@@ -274,6 +293,10 @@
 	{
 	TRACER("CGlxGridViewImp::HandleGridEventsL()");
 	//do processcmd related event handling
+	if(EAknSoftkeyClose == aCmd)
+	    {
+        iMMCState = ETrue;
+	    }
 	ProcessCommandL(aCmd);
 	}
 
--- a/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/gridview/src/glxgridviewmlobserver.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -21,7 +21,6 @@
 // Ganes Headers
 #include <ganes/HgItem.h>
 #include <ganes/HgGrid.h>                               //Hg Grid Widget
-//#include <hg/hgcontextutility.h>
 #include <gulicon.h>
 
 //Photos Headers
@@ -91,8 +90,6 @@
 
     CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
     iGridIconSize = uiUtility->GetGridIconSize();
-    //Get the HgContextUtility instance
-//    iContextUtility = uiUtility->ContextUtility();
     iItemsPerPage = uiUtility->VisibleItemsInPageGranularityL();
     uiUtility->Close() ;
     
@@ -209,17 +206,14 @@
         return;
         }
 
-    TInt mediaCount = iMediaList.Count();
-    const TGlxMedia& item = iMediaList.Item( aItemIndex );
     TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
-    
     if (KErrNotFound != aAttributes.Find( iQualityTnAttrib, match ) ||
         KErrNotFound != aAttributes.Find( iSpeedTnAttrib, match ))
         {
+        const TGlxMedia& item = iMediaList.Item( aItemIndex );
         TFileName resFile(KDC_APP_BITMAP_DIR);
         resFile.Append(KGlxIconsFilename);
         TSize setSize = CHgGrid::PreferredImageSize();
-        TIconInfo icon;
 
         const CGlxThumbnailAttribute* qualityTn = item.ThumbnailAttribute(
                                                           iQualityTnAttrib );
@@ -229,12 +223,13 @@
 
         TInt tnError = GlxErrorManager::HasAttributeErrorL(
                           item.Properties(), KGlxMediaIdThumbnail );
+        GLX_DEBUG4("GlxGridMLObs::HandleAttributesAvailableL() tnError(%d)"
+                "qualityTn(%x) and speedTn(%x)", qualityTn, speedTn, tnError);
 
         if (qualityTn)
             {
             CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
-            bitmap->Duplicate( qualityTn->iBitmap->Handle());
-            AknIconUtils::SetSize(bitmap, setSize);
+            bitmap->Duplicate(qualityTn->iBitmap->Handle());
             iHgGrid->ItemL(aItemIndex).SetIcon(CGulIcon::NewL(bitmap));
             GLX_LOG_INFO1("### CGlxGridViewMLObserver::HandleAttributesAvailableL"
                     " qualityTn-Index is %d",aItemIndex);
@@ -242,8 +237,7 @@
         else if (speedTn)
             {
             CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
-            bitmap->Duplicate( speedTn->iBitmap->Handle());
-            AknIconUtils::SetSize(bitmap, setSize);
+            bitmap->Duplicate(speedTn->iBitmap->Handle());
             iHgGrid->ItemL(aItemIndex).SetIcon(CGulIcon::NewL(bitmap));
             GLX_LOG_INFO1("### CGlxGridViewMLObserver::HandleAttributesAvailableL"
                     " speedTn-Index is %d",aItemIndex);
@@ -344,7 +338,7 @@
                     flags     = CHgItem::EHgItemFlagsNone ;
                     if (!iDiskErrorIntimated)
                         {
-                        DisplayErrorNote(KErrDiskFull);
+                        DisplayErrorNoteL(KErrDiskFull);
                         }
                     break;
                 default:
@@ -498,6 +492,7 @@
                 }
             }
         }
+    
     if (iModifiedIndexes.Count() > 0)        
         {
         for(TInt index = 0;index<iModifiedIndexes.Count();index++)
@@ -544,7 +539,7 @@
                     TMPXGeneralCategory  cat = item.Category();                  
                     TBool checkViewRights = (cat==EMPXImage);
                     
-                    if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights))
+                    if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights))
                         {
                         iHgGrid->ItemL(aItemIndex).SetFlags(
                                 CHgItem::EHgItemFlagsDrmRightsValid);
@@ -560,7 +555,7 @@
                     TMPXGeneralCategory  cat = item.Category();                  
                     TBool checkViewRights = (cat==EMPXImage);
                     
-                    if(iDRMUtility->CheckOpenRightsL(uri, checkViewRights))
+                    if(iDRMUtility->ItemRightsValidityCheckL(uri, checkViewRights))
                         {
                         iHgGrid->ItemL(aItemIndex).SetFlags(
                                 CHgItem::EHgItemFlagsDrmRightsValid);
@@ -593,17 +588,16 @@
         }    
     }
     
-    
 // ----------------------------------------------------------------------------
-// DisplayErrorNote
+// DisplayErrorNoteL
 // ----------------------------------------------------------------------------
 // 
-void CGlxGridViewMLObserver::DisplayErrorNote(TInt aError)
+void CGlxGridViewMLObserver::DisplayErrorNoteL(TInt aError)
     {
-    TRACER("CGlxGridViewMLObserver::DisplayErrorNote()");
-    GLX_LOG_INFO1("CGlxGridViewMLObserver::DisplayErrorNote Error note "
-                "displayed corresponging to [d]", aError);
+    TRACER("CGlxGridViewMLObserver::DisplayErrorNoteL()");
+    GLX_LOG_INFO1("CGlxGridViewMLObserver::DisplayErrorNoteL() "
+            " aError(%d)", aError);
     GlxGeneralUiUtilities::ShowErrorNoteL(aError);
     iDiskErrorIntimated = ETrue;
-    return ;
+    return;
     }
--- a/photosgallery/viewframework/views/listview/group/glxlistview.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/listview/group/glxlistview.mmp	Wed Mar 31 21:31:03 2010 +0300
@@ -53,7 +53,6 @@
 SYSTEMINCLUDE   ../../../commandhandlers/inc
 SYSTEMINCLUDE   ../../../dataprovider/inc
 SYSTEMINCLUDE   ../../../medialists/inc						//glxmedialistiterator
-SYSTEMINCLUDE   ../../../uiutilities/inc
 
 LIBRARY         euser.lib
 LIBRARY         cone.lib
@@ -78,3 +77,4 @@
 LIBRARY         egul.lib
 LIBRARY         aknskins.lib 
 LIBRARY         bitgdi.lib 
+LIBRARY 	gfxtrans.lib
--- a/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/listview/inc/glxlistviewimp.h	Wed Mar 31 21:31:03 2010 +0300
@@ -26,9 +26,9 @@
 // INCLUDES
 #include "glxlistview.h"
 #include "glxpreviewthumbnailbinding.h"
-
+#include "glxmmcnotifier.h"
 #include <glxmedialistiterator.h>        // Interface for going through items in
-
+#include <mglxnavigationalstateobserver.h>
 #include <ganes/HgScrollBufferObserverIface.h>
 #include <ganes/HgSelectionObserverIface.h>
 
@@ -41,7 +41,7 @@
 
 class CHgDoubleGraphicListFlat;
 class CAknsBasicBackgroundControlContext;
-
+class CGlxNavigationalState;
 
 //NOT: This enum is based on TGlxCollectionPluginPriority. If any
 //change happen regarding priority order in that, need to change 
@@ -73,7 +73,9 @@
 								       public MHgScrollBufferObserver,
 									   public MHgSelectionObserver,
 									   public MPreviewTNObserver,
-									   public MDialogDismisedObserver
+									   public MDialogDismisedObserver,
+                                       public MStorageNotifierObserver,
+                                       public MGlxNavigationalStateObserver
     {
 public:
     /**
@@ -160,7 +162,7 @@
 	 void DestroyListViewWidget();
 
 protected:
-    void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aPopulateList);
+    void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask);
     	 
 protected:
     void Request(TInt aRequestStart, TInt aRequestEnd, THgScrollDirection aDirection);
@@ -174,7 +176,11 @@
 private:
     void CreateListL();
     void SetDefaultThumbnailL(TInt aIndex);
-	 
+    void NavigateToMainListL();
+    void HandleMMCInsertionL();
+    void HandleMMCRemovalL();
+    void HandleNavigationalStateChangedL(){};
+ 
 public: // from MGlxMediaListObserver
     void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
     void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
@@ -191,7 +197,7 @@
     void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
     void HandlePopulatedL( MGlxMediaList* aList );
     void HandleDialogDismissedL(); // from MDialogDismisedObserver
-	 
+    void HandleForegroundEventL(TBool aForeground); 
 private:    // Data
 
     CAknsBasicBackgroundControlContext* iBgContext; //Own
@@ -239,6 +245,14 @@
 
 	//Check for TN generation
     TBool isTnGenerationComplete;
+	
+    CActiveSchedulerWait* iSchedulerWait;
+    
+    CGlxMMCNotifier* iMMCNotifier;
+
+    CGlxNavigationalState* iNavigationalState;
+	
+    TBool iMMCState;
     };
 
 #endif  // C_GLXLISTVIEWIMP_H
--- a/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/listview/inc/glxpreviewthumbnailbinding.h	Wed Mar 31 21:31:03 2010 +0300
@@ -34,7 +34,7 @@
 class MPreviewTNObserver 
     {
 public:
-    virtual void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aPopulateList) = 0;
+    virtual void PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* aMask) = 0;
     };
     
 // CLASS DECLARATION
@@ -88,7 +88,7 @@
 public:	
       void HandleItemChangedL(const CMPXCollectionPath& aPath,TBool aPopulateListTNs, 
 									  TBool aIsRefreshNeeded, TBool aBackwardNavigation);
-      void StartTimer(TBool aPopulateListTNs);
+      void StartTimer();
       void StopTimer();
       
       // From MGlxMediaListObserver
@@ -132,10 +132,7 @@
 	
 	// for thumbnail context
 	TGlxSequentialIterator iThumbnailIterator;
-	
-	// Preview thumbnail index
-	TInt iProgressIndex;
-	
+		
 	// flag that says whether timer has expired
 	TBool iTimerTicked;
 	
@@ -144,17 +141,12 @@
 	TBool iPopulateListTNs;
 	
 	TBool iIsRefreshNeeded;
-
-    //it holds the initial number of thumbnail to be displayed
-    RArray<TInt> iPreviewItemCount;
     
     TSize iGridIconSize;
     
     // Holds the numbers of trials count,after which PreviewTNReady callback
     // has to be called
     TInt iTrialCount;
-    
-    TInt iTrial;
         
     CMPXFilter* iPreviewFilter;
 };
--- a/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/listview/src/glxlistviewimp.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -44,10 +44,16 @@
 #include <glxcollectionpluginalbums.hrh>
 #include <glxcollectionpluginmonths.hrh>
 #include <glxcollectionplugintype.hrh>
+#include <glxnavigationalstate.h>
+
+#include <AknTransEffect.h>  // For transition effects
+#include <GfxTransEffect/GfxTransEffect.h>  // For transition effects
+#include "glxgfxtranseffect.h"  // For transition effects
 
 const TInt KListDataWindowSize(25);
 const TInt KNoOfPages(2);
 const TInt KBufferTresholdSize(6);
+const TInt KGlxCollectionRootLevel = 1;
 
 
 // ======== MEMBER FUNCTIONS ========
@@ -56,13 +62,13 @@
 // C++ default constructor can NOT contain any code that might leave.
 // ---------------------------------------------------------------------------
 //
-CGlxListViewImp::CGlxListViewImp(TInt aViewUid, const TListViewResourceIds& aResourceIds):        
-        iViewUid(aViewUid),
-        iResourceIds(aResourceIds)  
+CGlxListViewImp::CGlxListViewImp(TInt aViewUid,
+        const TListViewResourceIds& aResourceIds) :
+    iViewUid(aViewUid), iResourceIds(aResourceIds), iIsRefreshNeeded(EFalse),
+    iBackwardNavigation(EFalse), isTnGenerationComplete(ETrue)
     {
     }
 
-
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
 // ---------------------------------------------------------------------------
@@ -109,6 +115,11 @@
     BaseConstructL(iResourceIds.iViewId);
     ViewBaseConstructL();
     MLViewBaseConstructL(aMediaListFactory, aTitle);
+    
+    // Create navigational state 
+    iNavigationalState = CGlxNavigationalState::InstanceL();
+    iNavigationalState->AddObserverL( *this );
+ 
     CAknToolbar* toolbar = Toolbar();
     if(toolbar)
         {
@@ -117,9 +128,7 @@
     
     //Register the view to recieve toolbar events. ViewBase handles the events    
     SetToolbarObserver(this);
-    iBackwardNavigation = EFalse;
-    iIsRefreshNeeded = EFalse;
-	isTnGenerationComplete = ETrue;
+	iMMCNotifier = CGlxMMCNotifier::NewL(*this);
     }
 
 // ---------------------------------------------------------------------------
@@ -129,6 +138,15 @@
 CGlxListViewImp::~CGlxListViewImp()
     {    
     TRACER("CGlxListViewImp::~CGlxListViewImp");
+    delete iMMCNotifier;
+    iMMCNotifier = NULL;
+    
+    if ( iNavigationalState )
+        {
+        iNavigationalState->RemoveObserver(*this);
+        iNavigationalState->Close();
+        }
+    
     delete iTitletext;  
     }
 
@@ -162,6 +180,16 @@
         TUid /* aCustomMessageId */, const TDesC8& /* aCustomMessage */)
     {
     TRACER("CGlxListViewImp::DoMLViewActivateL");  
+    
+    TUint transitionID = (iUiUtility->ViewNavigationDirection()==
+          EGlxNavigationForwards)?KActivateTransitionId:KDeActivateTransitionId;
+
+    GfxTransEffect::BeginFullScreen( transitionID, TRect(),
+                                   AknTransEffect::EParameterType, 
+                         AknTransEffect::GfxTransParam( KPhotosUid, 
+                                 AknTransEffect::TParameter::EEnableEffects) );   
+    GfxTransEffect::EndFullScreen();
+    
     iNextViewActivationEnabled = ETrue;
     if(StatusPane())
         {
@@ -213,16 +241,18 @@
 
     iPreviewTNBinding = CGlxPreviewThumbnailBinding::NewL(*this);
     CreateListL();
-    if (iPreviewTNBinding)
+    if (iPreviewTNBinding && iBackwardNavigation && iMediaList->FocusIndex()
+            == 0)
         {
-        iPopulateListTNs  = ETrue;
-        CMPXCollectionPath* path = iMediaList->PathLC( 
-                NGlxListDefs::EPathFocusOrSelection );
-        iPreviewTNBinding->HandleItemChangedL(*path, 
-                iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation);
-        CleanupStack::PopAndDestroy( path );        
+        GLX_LOG_INFO("CGlxListViewImp::DoMLViewActivateL() - HandleItemChangedL()");        
+        iPopulateListTNs = ETrue;
+        CMPXCollectionPath* path = iMediaList->PathLC(
+                NGlxListDefs::EPathFocusOrSelection);
+        iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs,
+                iIsRefreshNeeded, iBackwardNavigation);
+        CleanupStack::PopAndDestroy(path);
         }
-
+    iProgressIndicator = CGlxProgressIndicator::NewL(*this);
     }
 
 // ---------------------------------------------------------------------------
@@ -445,10 +475,17 @@
             iProgressIndicator = NULL;
             }
         iProgressIndicator = CGlxProgressIndicator::NewL(*this);
+        if(iSchedulerWait)
+            {
+            delete iSchedulerWait;
+            iSchedulerWait = NULL;
+            }
+        iSchedulerWait = new (ELeave) CActiveSchedulerWait();
+        iSchedulerWait->Start();
         }
 #endif
 	if( iNextViewActivationEnabled && ( aIndex >= 0 && aIndex < 
-	        iMediaList->Count()) && isTnGenerationComplete)
+	        iMediaList->Count()) && isTnGenerationComplete )
 	    {
 	    	//Delete the PreviewTNMBinding as in forward navigation
 		//we do not get the medialist callback.
@@ -469,24 +506,50 @@
     }
 
 void CGlxListViewImp::PreviewTNReadyL(CFbsBitmap* aBitmap, CFbsBitmap* 
-        /*aMask*/, TBool aPopulateList)
+        /*aMask*/)
     {
     TRACER("CGlxListViewImp::PreviewTNReadyL");
 
+    if (!iPopulateListTNs)
+        {
+        GLX_LOG_INFO("CGlxListViewImp::PreviewTNReadyL()- Ignore!");
+        return;
+        }
     iPreviewTNBinding->StopTimer();
 
 	TInt focusIndex = iMediaList->FocusIndex();
     TInt mediaCount = iMediaList->Count();
-    iPopulateListTNs = aPopulateList;
+    GLX_LOG_INFO1("CGlxListViewImp::PreviewTNReadyL() focusIndex(%d)",
+            focusIndex);      
     
+    TGlxIdSpaceId id = iMediaList->IdSpaceId(0);        
     if (aBitmap)
-	    {	
-	    iList->ItemL(focusIndex).SetIcon(CGulIcon::NewL(aBitmap));
-	    }
+	    {
+        iList->ItemL(focusIndex).SetIcon(CGulIcon::NewL(aBitmap));
+        if (id == KGlxIdSpaceIdRoot && focusIndex == EGlxListItemAll)
+            {
+            CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
+            bitmap->Duplicate(aBitmap->Handle());
+            iList->ItemL(EGlxListItemMonth).SetIcon(CGulIcon::NewL(bitmap));
+            }
+        else if (iBackwardNavigation && id == KGlxIdSpaceIdRoot && focusIndex
+                == EGlxListItemMonth)
+            {
+            CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
+            bitmap->Duplicate(aBitmap->Handle());
+            iList->ItemL(EGlxListItemAll).SetIcon(CGulIcon::NewL(bitmap));
+            }
+        }
     else
     	{
+	    // In main list view, default thumbnails will be set according 
+	    // to the list items.
     	//Displays default thumbnail if aBitmap is NULL 
         SetDefaultThumbnailL(focusIndex);
+        if(id == KGlxIdSpaceIdRoot && focusIndex == EGlxListItemAll)
+            {
+            SetDefaultThumbnailL(EGlxListItemMonth);
+            }
     	}
     
     TInt firstIndex = iList->FirstIndexOnScreen();
@@ -497,12 +560,9 @@
 		lastOnScreen = mediaCount;	    	
 	    }
     
-    if (!iPopulateListTNs || focusIndex == lastOnScreen)
-        {
-        GLX_DEBUG2("CGlxListViewImp::PreviewTNReadyL()"
-               " RefreshScreen - focusIndex(%d)", focusIndex);        
-		iList->RefreshScreen(focusIndex);
-	    } 
+    GLX_DEBUG2("CGlxListViewImp::PreviewTNReadyL()"
+            " RefreshScreen - focusIndex(%d)", focusIndex);
+    iList->RefreshScreen(focusIndex);
 	
 	if (iPopulateListTNs)
 		{
@@ -514,10 +574,15 @@
 		TInt count = iMediaList->Count();
 		if(count)
 		    {
-            TInt focus = (focusIndex+1)%count;
+            TInt focus = (focusIndex + 1) % count;
+            if (!iBackwardNavigation && id == KGlxIdSpaceIdRoot && focus
+                    == EGlxListItemMonth)
+                {
+                focus += 1;
+                }
             if (focus != iStartIndex)
                 {
-                iMediaList->SetFocusL(NGlxListDefs::EAbsolute, focus);			
+                iMediaList->SetFocusL(NGlxListDefs::EAbsolute, focus);
                 }
             else
                 {
@@ -547,6 +612,7 @@
                     {                        
                     CMPXCollectionPath* path = iMediaList->PathLC( 
                             NGlxListDefs::EPathFocusOrSelection );
+                    GLX_LOG_INFO("CGlxListViewImp::PreviewTNReadyL() - HandleItemChangedL()");                    
                     iPreviewTNBinding->HandleItemChangedL(*path, 
                             iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation);
                     CleanupStack::PopAndDestroy( path );
@@ -564,7 +630,6 @@
     {
     TRACER("CGlxListViewImp::CreateListL");
     
-	iPopulateListTNs = ETrue;
 	iStartIndex = KErrNotFound;
 	TInt mediaCount = iMediaList->Count();
     GLX_DEBUG2("CGlxListViewImp::CreateListL() mediaCount=%d", mediaCount);
@@ -629,7 +694,7 @@
 		    {            
             for (TInt i = 0; i < mediaCount; i++)
                 {
-                    SetDefaultThumbnailL(i);
+                SetDefaultThumbnailL(i);
                 }
 		    }
         // Set the scrollbar type for albums list
@@ -723,7 +788,7 @@
 // ----------------------------------------------------------------------------
 //	
 void CGlxListViewImp::HandleAttributesAvailableL( TInt aItemIndex, 
-	const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* /*aList*/ )
+	const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList)
 	{
 	TRACER("CGlxListViewImp::HandleAttributesAvailableL");
 
@@ -751,17 +816,18 @@
 				== EGlxNavigationBackwards)
 			{
 			iIsRefreshNeeded = ETrue;
-			iPopulateListTNs = EFalse;
 			}
 
 		// Set iPopulateListTNs to ETrue and refresh all the items in
 		// list view if subtitle is updated
-		if (iPreviewTNBinding && !iPopulateListTNs)
-			{
+		if (iPreviewTNBinding && ((!iPopulateListTNs && aItemIndex
+                == aList->Count() - 1) || (iIsRefreshNeeded)))
+            {
 			iPopulateListTNs = ETrue;
 			iStartIndex = KErrNotFound;
 			CMPXCollectionPath* path = iMediaList->PathLC(
 					NGlxListDefs::EPathFocusOrSelection);
+            GLX_LOG_INFO("CGlxListViewImp::HandleAttributesAvailableL() - HandleItemChangedL()");		
 			iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs,
 					iIsRefreshNeeded, iBackwardNavigation);
 			CleanupStack::PopAndDestroy(path);
@@ -779,14 +845,21 @@
 	{
 	TRACER( "CGlxListViewImp::HandleFocusChangedL");
 	 
-	if (iPreviewTNBinding)
+	if (iPreviewTNBinding && iPopulateListTNs)
 		{
-		CMPXCollectionPath* path = iMediaList->PathLC( 
-		        NGlxListDefs::EPathFocusOrSelection );
-        iPreviewTNBinding->HandleItemChangedL(*path, 
-                iPopulateListTNs, iIsRefreshNeeded, iBackwardNavigation);
-		CleanupStack::PopAndDestroy( path );		
-		}
+        CMPXCollectionPath* path = iMediaList->PathLC(
+                NGlxListDefs::EPathFocusOrSelection);
+        if (!iBackwardNavigation && path->Levels() == KGlxCollectionRootLevel
+                && path->Id(0) == KGlxCollectionPluginMonthsImplementationUid)
+            {
+            CleanupStack::PopAndDestroy(path);
+            return;
+            }
+        GLX_LOG_INFO("CGlxListViewImp::HandleFocusChangedL() - HandleItemChangedL()");        
+        iPreviewTNBinding->HandleItemChangedL(*path, iPopulateListTNs,
+                iIsRefreshNeeded, iBackwardNavigation);
+        CleanupStack::PopAndDestroy(path);
+        }
 	}
 
 // ----------------------------------------------------------------------------
@@ -961,5 +1034,64 @@
     {
     TRACER("CGlxListViewImp::HandleDialogDismissedL()");
     isTnGenerationComplete = ETrue;
+    if(iSchedulerWait)
+        {
+        iSchedulerWait->AsyncStop();    
+        delete iSchedulerWait;
+        iSchedulerWait = NULL;
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// HandleMMCInsertionL
+// 
+// ---------------------------------------------------------------------------
+void CGlxListViewImp::HandleMMCInsertionL()
+    {
+    TRACER("CGlxListViewImp::HandleMMCInsertionL()");
+    iMMCState = ETrue;
+    NavigateToMainListL();
+    
+    }
+
+// ---------------------------------------------------------------------------
+// HandleMMCRemovalL
+// 
+// ---------------------------------------------------------------------------
+void CGlxListViewImp::HandleMMCRemovalL()
+    {
+    TRACER("CGlxListViewImp::HandleMMCRemovalL()");
+    ProcessCommandL(EAknSoftkeyExit);
+    }
+
+// ---------------------------------------------------------------------------
+// HandleForegroundEventL
+// 
+// ---------------------------------------------------------------------------
+void CGlxListViewImp::HandleForegroundEventL(TBool aForeground)
+    {
+    TRACER("CGlxListViewImp::HandleForegroundEventL()");
+    CAknView::HandleForegroundEventL(aForeground);
+    if(iMMCState)
+        {
+        iMMCState = EFalse;
+        NavigateToMainListL();
+        }
+    }
+
+// ---------------------------------------------------------------------------
+// NavigateToMainListL
+// 
+// ---------------------------------------------------------------------------
+void CGlxListViewImp::NavigateToMainListL()
+    {
+    TRACER("CGlxListViewImp::NavigateToMainListL()");
+    CMPXCollectionPath* naviState = iNavigationalState->StateLC();
+    GLX_LOG_INFO1("From listview level = %d",naviState->Levels());
+//    if ( naviState->Levels() >= 1)
+        {
+        ProcessCommandL(EAknSoftkeyClose);
+        }
+    CleanupStack::PopAndDestroy(naviState);
     }
 //  End of File
--- a/photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/listview/src/glxpreviewthumbnailbinding.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -20,25 +20,23 @@
 #include <glxthumbnailcontext.h>
 #include <glxfilterfactory.h>                         // For TGlxFilterFactory
 #include <glxthumbnailattributeinfo.h>
-#include "glxpreviewthumbnailbinding.h"
-#include "glxgeneraluiutilities.h"
 #include <glxuiutility.h>                               // For UiUtility instance
-
+#include <glxcollectionpluginmonths.hrh>
 #include <glxtracer.h>
 #include <glxlog.h>
-
+#include <glxerrormanager.h>             // For CGlxErrormanager
 #include <glxuistd.h>                    // Fetch context priority def'ns
 #include <mglxcache.h> 
 #include <ganes/HgDoubleGraphicList.h>
 
+#include "glxpreviewthumbnailbinding.h"
+#include "glxgeneraluiutilities.h"
 
-const TInt KInitialThumbnailsTimeDelay(100000);
-const TInt KWaitCount(10);
-const TInt KThumbnailStartTimeDelay(250000);
+const TInt KThumbnailsTimeTimeDelay(50000);
+const TInt KWaitCount(30);
 const TInt KPreviewThumbnailFetchCount(1);
 
 
-
 // ----------------------------------------------------------------------------
 // NewL
 // ----------------------------------------------------------------------------
@@ -85,11 +83,12 @@
     TRACER("CGlxPreviewThumbnailBinding::ConstructL");
     iTimer = CPeriodic::NewL( CActive::EPriorityStandard );
     CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
+    CleanupClosePushL(*uiUtility);
     iGridIconSize = uiUtility->GetGridIconSize();
-    uiUtility->Close() ;
+    CleanupStack::PopAndDestroy(uiUtility);
     
     // Filter that filters out any GIF, corrupted images     
-    iPreviewFilter = TGlxFilterFactory::CreatePreviewFilterL();    
+    iPreviewFilter = TGlxFilterFactory::CreatePreviewTNFilterL();
     iThumbnailIterator.SetRange(KPreviewThumbnailFetchCount);
     iThumbnailContext = new (ELeave) CGlxAttributeContext(&iThumbnailIterator); 
     TMPXAttribute tnAttr( KGlxMediaIdThumbnail,
@@ -123,8 +122,7 @@
 	    iTimer->Cancel();
 	    }
 	delete iTimer;
-	iTimer = NULL;
-	iPreviewItemCount.Close();	
+	iTimer = NULL;	
 	}
 
 // ----------------------------------------------------------------------------
@@ -135,70 +133,55 @@
 void CGlxPreviewThumbnailBinding::TimerTickedL()
     {
     TRACER("CGlxPreviewThumbnailBinding::TimerTickedL");
-    
-    if(iMediaList && iMediaList->Count() && iPreviewItemCount.Count() )
-       	{
-    	TInt thumbnailIndex = iPreviewItemCount[iProgressIndex];
-    	if(thumbnailIndex < iMediaList->Count())
-    	    {
-            const TGlxMedia& item = iMediaList->Item(thumbnailIndex);
-            TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-                GlxFullThumbnailAttributeId( ETrue,  iGridIconSize.iWidth,
-                        iGridIconSize.iHeight ) );
-            
+
+    if (!iMediaList)
+        {
+        GLX_LOG_INFO("TimerTickedL() iMediaList == NULL!");
+        return;
+        }
+
+    if (iMediaList->IsPopulated())
+        {
+        if (iMediaList->Count())
+            {
+            const TGlxMedia& item = iMediaList->Item(0);
+            TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail,
+                    GlxFullThumbnailAttributeId(ETrue, iGridIconSize.iWidth,
+                            iGridIconSize.iHeight));
+
             const CGlxThumbnailAttribute* value = item.ThumbnailAttribute(
-                    thumbnailAttribute );
+                    thumbnailAttribute);
             if (value)
                 {
                 CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
                 ScaleBitmapToListSizeL(value->iBitmap, bitmap);
-                GLX_LOG_INFO1("iObserver.PreviewTNReadyL() iTrial=%d", iTrial);
-                iObserver.PreviewTNReadyL(bitmap, NULL,iPopulateListTNs);
+                GLX_LOG_INFO1("iObserver.PreviewTNReadyL() iTrialCount=%d", iTrialCount);
+                iObserver.PreviewTNReadyL(bitmap, NULL);
                 }
-    	    }
-       	}
-    else if (iPopulateListTNs && iMediaList && iMediaList->Count() == 0)
-	    {
-	    if (iTrial == KWaitCount)
-		    {		   
-		    iObserver.PreviewTNReadyL(NULL, NULL, iPopulateListTNs);
-		    iTrial=0;
-		    return;
-		    }
-	    iTrial++;
-	    }
-    else if(iMediaList && iMediaList->Count() )
-    	{
-		if(iProgressIndex > iMediaList->Count()-1 )
-			{
-			iProgressIndex = 0;
-			}
-		const TGlxMedia& item = iMediaList->Item(iProgressIndex);
-		TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-			GlxFullThumbnailAttributeId( ETrue,  iGridIconSize.iWidth, 
-			        iGridIconSize.iHeight ) );
-		
-		const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( 
-		        thumbnailAttribute );
-		if (value)
-			{
-			CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
-		    ScaleBitmapToListSizeL(value->iBitmap, bitmap);
-			GLX_LOG_INFO1("iObserver.PreviewTNReadyL() iTrialCount=%d", iTrialCount);
-			iObserver.PreviewTNReadyL(bitmap, NULL,iPopulateListTNs);
-			}
-		else
-			{
-			if (iTrialCount == KWaitCount)
-				{				
-				iObserver.PreviewTNReadyL(NULL, NULL, iPopulateListTNs);
-				iTrialCount=0;
-				return;
-				}
-			iTrialCount++;
-			}
-    	}   
+            else
+                {
+                TInt tnError = GlxErrorManager::HasAttributeErrorL(
+                        item.Properties(), KGlxMediaIdThumbnail);
+                if (tnError != KErrNone || iTrialCount == KWaitCount)
+                    {
+                    GLX_LOG_INFO1("TimerTickedL() tnError(%d) / Max Trialcount reached", tnError);
+                    iObserver.PreviewTNReadyL(NULL, NULL);
+                    iTrialCount = 0;
+                    return;
+                    }
+                iTrialCount++;
+                }
+            }
+        else
+            {
+            // Media count is zero, 
+            // Notify immedialtely to jump to the next item in the list 
+            GLX_LOG_INFO("TimerTickedL() iMediaList->Count() = 0");
+            iObserver.PreviewTNReadyL(NULL, NULL);
+            }
+        }
     }
+
 // ----------------------------------------------------------------------------
 // IsTimeL callback function invoked when timer expires
 // ----------------------------------------------------------------------------
@@ -229,16 +212,16 @@
         TBool aPopulateListTNs, TBool  aIsRefreshNeeded, TBool aBackwardNavigation)
     {
     TRACER("CGlxPreviewThumbnailBinding::HandleItemChangedL");
+    GLX_LOG_INFO("CGlxPreviewThumbnailBinding::HandleItemChangedL()");
+    
     iTimerTicked = EFalse;
     iPopulateListTNs = aPopulateListTNs;
-    iProgressIndex = KErrNone;
     iIsRefreshNeeded = aIsRefreshNeeded;
 
     // remove and close old medialist   
     if( iMediaList )
 	    {
-	    // Reset the trial and the trialCount to 0 while deleting the medialist 
-	    iTrial = 0;
+	    // Reset the trialCount to 0 while deleting the medialist 
 	    iTrialCount = 0;
 	    iMediaList->RemoveMediaListObserver( this );
         iMediaList->RemoveContext(iThumbnailContext);
@@ -255,7 +238,7 @@
 	    {
 	    //On backward navigation start the timer manually, since we do not  
         //get the attribute callback.
-        StartTimer(iPopulateListTNs);        
+        StartTimer();        
         }
     }
 
@@ -265,12 +248,10 @@
 // are populated.
 // ----------------------------------------------------------------------------
 //    
-void CGlxPreviewThumbnailBinding::StartTimer(TBool aPopulateListTNs)
+void CGlxPreviewThumbnailBinding::StartTimer()
     {
     TRACER("CGlxPreviewThumbnailBinding::StartTimer");
     
-    iPopulateListTNs = aPopulateListTNs;
-    
     if (iTimer)
         {
         iTimer->Cancel();
@@ -278,8 +259,8 @@
         
     if (iPopulateListTNs)
         {
-         iTimer->Start(KThumbnailStartTimeDelay, 
-                    KInitialThumbnailsTimeDelay, TCallBack(IsTimeL,this));
+        iTimer->Start(KThumbnailsTimeTimeDelay, KThumbnailsTimeTimeDelay,
+                TCallBack(IsTimeL, this));
         }
      }
 
@@ -342,13 +323,13 @@
                 thumbnailAttribute );
         if (value)
 	        {
-            iPreviewItemCount.AppendL( aItemIndex );
+	        GLX_LOG_INFO("CGlxPreviewThumbnailBinding::HandleAttributesAvailableL()");
             // sometimes we get HandleAttributesAvailableL callback after some delay
             // when we do cache cleanup. 
             if(!iPopulateListTNs)
             	{
             	iPopulateListTNs = ETrue;
-            	StartTimer(iPopulateListTNs);
+            	StartTimer();
             	} 
             }
         }
@@ -433,6 +414,7 @@
 void CGlxPreviewThumbnailBinding::HandlePopulatedL( MGlxMediaList* /*aList*/ )
     {
 	TRACER("CGlxPreviewThumbnailBinding::HandlePopulatedL()");
+    GLX_LOG_INFO("CGlxPreviewThumbnailBinding::HandlePopulatedL()");
 
 	// Do cache cleanup. If iIsRefreshNeeded is set,
 	// then clean up the item at 0th index 
@@ -448,7 +430,7 @@
 			}
 		}
 	//Start the timer
-	StartTimer(iPopulateListTNs);
+	StartTimer();
 	}
 
 // ----------------------------------------------------------------------------
--- a/photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/data/glxmetadatadialog.rss	Wed Mar 31 21:31:03 2010 +0300
@@ -218,7 +218,6 @@
 	{
 	items=
 		{
-		//MENU_ITEM { command = KGlxEditBoundMenuCommandId; txt = qtn_lgal_options_edit; },
 		MENU_ITEM { command = KGlxViewBoundMenuCommandId; txt = qtn_lgal_options_view; },
         	MENU_ITEM { command = EGlxCmdAiwShowMap; txt = qtn_lgal_option_show_on_map;},
 		MENU_ITEM { command = KGlxDeleteBoundMenuCommandId; txt = qtn_lgal_options_delete;flags = EEikMenuItemSpecific; },
@@ -411,46 +410,12 @@
     buf = qtn_lgal_note_no_location;
     }
 
-//==============================================================================//
-//===========================start of Imageviewer details Dialog================//
-//==============================================================================//
-
-RESOURCE EIK_APP_INFO
-    {
-    menubar = r_imgvwr_metadata_menubar;
-    cba = R_AVKON_SOFTKEYS_OPTIONS_BACK;
-    }
-    // -----------------------------------------------------------------------------
-// reource for menubar
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_imgvwr_metadata_menubar
-	{
-	titles=
-		{
-		MENU_TITLE { menu_pane = r_imgvwr_metadata_menu; txt = qtn_lgal_title_details; }
-		};
-	}
-	
-
-// -----------------------------------------------------------------------------
-// reource for menupane
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_imgvwr_metadata_menu
-	{
-	items=
-		{
-		MENU_ITEM { command = EAknCmdHelp; txt = qtn_options_help; }
-	  	};
-	}
-	
 // -----------------------------------------------------------------------------
 // Metadata Dialog 
 // -----------------------------------------------------------------------------
 RESOURCE DIALOG r_img_viewer_metadata_dialog
     {
-    buttons = R_AVKON_SOFTKEYS_OPTIONS_BACK;
+    buttons = R_AVKON_SOFTKEYS_BACK;
     flags = EEikDialogFlagNoDrag | EEikDialogFlagFillAppClientRect |
               EEikDialogFlagCbaButtons | EEikDialogFlagWait;// |EEikDialogFlagNoBackgroundFade |EEikDialogFlagNoBorder;
     items =
--- a/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatacontainer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatacontainer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -63,7 +63,6 @@
 const TInt KMarqueeScrollAmount      = 20;
 const TInt KMarqueeScrollDelay       = 1000000;
 const TInt KMarqueeScrollInterval    = 200000;
-_LIT( KGlxTextSetter, "");
 
 // ============================ MEMBER FUNCTIONS ===============================
 
@@ -158,7 +157,7 @@
     {
     TRACER("CGlxImgVwrMetadataContainer::CreateSettingItemL");      
     CAknSettingItem* settingItem = NULL; // No need to push onto cleanup stack
-    iTextSetter.Copy(KGlxTextSetter);  
+    iTextSetter.Zero();  
 
     //Creating a empty Settings list box which will  be populated with metadata in handleattributeavailable
     switch(aResourceId)
@@ -305,6 +304,7 @@
             for(TInt index = 0; index <= EImgVwrlicenseItem; index++)
                 {
                 HBufC* string = NULL;               
+				iTextSetter.Zero();
 
                 if(index == EImgVwrSizeItem)
                     {
@@ -344,7 +344,7 @@
                     } 
                 if(string)
                     {
-                    iTextSetter.Copy(KGlxTextSetter);
+                    iTextSetter.Zero();
                     iTextSetter.Append(*string);
                     }
                 CleanupStack::PushL( string );
@@ -374,8 +374,8 @@
 // HandleCommandCompleteL
 // ----------------------------------------------------------------------------
 // 
-void CGlxImgVwrMetadataContainer::HandleCommandCompleteL(TAny* aSessionId, 
-        CMPXCommand* /*aCommandResult*/, TInt aError, MGlxMediaList* aList)
+void CGlxImgVwrMetadataContainer::HandleCommandCompleteL(TAny* /*aSessionId*/, 
+        CMPXCommand* /*aCommandResult*/, TInt /*aError*/, MGlxMediaList* /*aList*/)
     {
     TRACER("CGlxImgVwrMetadataContainer::HandleCommandCompleteL()");
     }
@@ -574,7 +574,7 @@
     //get the settings item based on the attribute and set the text.
     if ( string )
         {
-        iTextSetter.Copy(KGlxTextSetter);
+        iTextSetter.Zero();
         iTextSetter.Append(*string);
         if(attribute == KMPXMediaGeneralSize)
             {
@@ -665,6 +665,7 @@
       if(0 != (titleText.Compare(*textBuf)))
       {
         //Modify the MDS and setting list only if the entry is different from previous Item value
+        iTextSetter.Zero();
         iTextSetter.Copy(*textBuf);
         EditItemL(aItem,EFalse);
         if( iItemMediaList->Count() > 0 )
--- a/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/src/glximgvwrmetadatadialog.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -112,9 +112,6 @@
 
     iUiUtility = CGlxUiUtility::UtilityL(); 
 
-    // Call the base class' two-phased constructor
-    CAknDialog::ConstructL( R_IMGVWR_METADATA_MENUBAR );
-
     } 
 
 // -----------------------------------------------------------------------------
@@ -188,34 +185,9 @@
 //
 void CGlxImgVwrMetadataDialog::ProcessCommandL( TInt aCommandId )
     {
-
     TRACER("CGlxImgVwrMetadataDialog::ProcessCommandL");
     // hide menu bar
     iMenuBar->StopDisplayingMenuBar();
-    switch( aCommandId )
-        {
-        /// @todo need to put the proper help file.for the time being it will not do any thing.
-        /*
-        case EAknCmdHelp:
-            {
-            TCoeHelpContext helpContext;
-            helpContext.iMajor = TUid::Uid( KGlxGalleryApplicationUid );
-            helpContext.iContext.Copy( LGAL_HLP_DETAILS_VIEW );
-            const TInt KListSz = 1;
-            CArrayFix<TCoeHelpContext>* contextList =
-            new (ELeave) CArrayFixFlat<TCoeHelpContext>( KListSz );
-            CleanupStack::PushL(contextList);
-            contextList->AppendL(helpContext);
-            HlpLauncher::LaunchHelpApplicationL(
-            iEikonEnv->WsSession(), contextList );
-            CleanupStack::Pop( contextList );
-            break;
-            }*/
-        
-        default:
-            break;
-        }
-    
     }
 //-----------------------------------------------------------------------------
 // CGlxImgVwrMetadataDialog::CreateCustomControlL
--- a/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/metadatadialog/src/glxmetadatacontainer.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -217,7 +217,7 @@
     {
     TRACER("CGlxMetadataContainer::CreateSettingItemL");      
     CAknSettingItem* settingItem = NULL; // No need to push onto cleanup stack
-    iTextSetter.Copy(KGlxTextSetter);  
+	iTextSetter.Zero();
     
     //Creating a empty Settings list box which will  be populated with metadata in handleattributeavailable
     
@@ -733,7 +733,7 @@
     //get the settings item based on the attribute and set the text.
     if ( string )
 		{
-		iTextSetter.Copy(KGlxTextSetter);
+        iTextSetter.Zero();
 		iTextSetter.Append(*string);
 		if(attribute == KMPXMediaGeneralSize)
 			{
@@ -821,6 +821,7 @@
 			else
 				{
 				//Modify the MDS and setting list only if the entry is different from previous Item value
+                iTextSetter.Zero();
 				iTextSetter.Copy(*textBuf);
 				EditItemL(aItem,EFalse);
 				iItemMediaList->SetFocusL(NGlxListDefs::EAbsolute,0);//set focus to first item
@@ -1017,6 +1018,7 @@
 			for(TInt index = 0; index <= ElicenseItem ; index++)
 				{
 				HBufC* string = NULL;               
+                iTextSetter.Zero();             
   
 				if(index == ESizeItem)
 					{
@@ -1127,7 +1129,7 @@
 				iModifiedUri = NULL;	
 				}			
 			iModifiedUri = fileName.AllocL();			
-			iTextSetter.Copy(KGlxTextSetter);
+			iTextSetter.Zero();
 			TInt error = manager->RenameFile(media.Uri(), iModifiedUri->Des());
 			if(error == KErrNone)
 				{
@@ -1149,7 +1151,7 @@
 		iLocationinfo = EFalse;      
 		if ( aError == KErrNone )
 			{
-			iTextSetter.Copy(KGlxTextSetter);
+            iTextSetter.Zero();
 			EditItemL(ELocationItem,EFalse);
 			}
 		}
--- a/photosgallery/viewframework/views/metadataview/bwins/glxunifiedmetadataviewu.def	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-EXPORTS
-	??0TGlxMulAlbumsDetailsBindingSetFactory@@QAE@XZ @ 1 NONAME ; TGlxMulAlbumsDetailsBindingSetFactory::TGlxMulAlbumsDetailsBindingSetFactory(void)
-	??0TGlxMulDateAndTimeDetailsBindingSetFactory@@QAE@XZ @ 2 NONAME ; TGlxMulDateAndTimeDetailsBindingSetFactory::TGlxMulDateAndTimeDetailsBindingSetFactory(void)
-	??0TGlxMulDescriptionDetailsBindingSetFactory@@QAE@XZ @ 3 NONAME ; TGlxMulDescriptionDetailsBindingSetFactory::TGlxMulDescriptionDetailsBindingSetFactory(void)
-	??0TGlxMulDurationDetailsBindingSetFactory@@QAE@XZ @ 4 NONAME ; TGlxMulDurationDetailsBindingSetFactory::TGlxMulDurationDetailsBindingSetFactory(void)
-	??0TGlxMulFileSizeDetailsBindingSetFactory@@QAE@XZ @ 5 NONAME ; TGlxMulFileSizeDetailsBindingSetFactory::TGlxMulFileSizeDetailsBindingSetFactory(void)
-	??0TGlxMulLocationDetailsBindingSetFactory@@QAE@XZ @ 6 NONAME ; TGlxMulLocationDetailsBindingSetFactory::TGlxMulLocationDetailsBindingSetFactory(void)
-	??0TGlxMulResolutionDetailsBindingSetFactory@@QAE@XZ @ 7 NONAME ; TGlxMulResolutionDetailsBindingSetFactory::TGlxMulResolutionDetailsBindingSetFactory(void)
-	??0TGlxMulTagsDetailsBindingSetFactory@@QAE@XZ @ 8 NONAME ; TGlxMulTagsDetailsBindingSetFactory::TGlxMulTagsDetailsBindingSetFactory(void)
-	??0TGlxMulTitleDetailsBindingSetFactory@@QAE@XZ @ 9 NONAME ; TGlxMulTitleDetailsBindingSetFactory::TGlxMulTitleDetailsBindingSetFactory(void)
-	??0TGlxMulUsageRightsDetailsBindingSetFactory@@QAE@XZ @ 10 NONAME ; TGlxMulUsageRightsDetailsBindingSetFactory::TGlxMulUsageRightsDetailsBindingSetFactory(void)
-	??1TGlxMulAlbumsDetailsBindingSetFactory@@UAE@XZ @ 11 NONAME ; TGlxMulAlbumsDetailsBindingSetFactory::~TGlxMulAlbumsDetailsBindingSetFactory(void)
-	??1TGlxMulDateAndTimeDetailsBindingSetFactory@@UAE@XZ @ 12 NONAME ; TGlxMulDateAndTimeDetailsBindingSetFactory::~TGlxMulDateAndTimeDetailsBindingSetFactory(void)
-	??1TGlxMulDescriptionDetailsBindingSetFactory@@UAE@XZ @ 13 NONAME ; TGlxMulDescriptionDetailsBindingSetFactory::~TGlxMulDescriptionDetailsBindingSetFactory(void)
-	??1TGlxMulDurationDetailsBindingSetFactory@@UAE@XZ @ 14 NONAME ; TGlxMulDurationDetailsBindingSetFactory::~TGlxMulDurationDetailsBindingSetFactory(void)
-	??1TGlxMulFileSizeDetailsBindingSetFactory@@UAE@XZ @ 15 NONAME ; TGlxMulFileSizeDetailsBindingSetFactory::~TGlxMulFileSizeDetailsBindingSetFactory(void)
-	??1TGlxMulLocationDetailsBindingSetFactory@@UAE@XZ @ 16 NONAME ; TGlxMulLocationDetailsBindingSetFactory::~TGlxMulLocationDetailsBindingSetFactory(void)
-	??1TGlxMulResolutionDetailsBindingSetFactory@@UAE@XZ @ 17 NONAME ; TGlxMulResolutionDetailsBindingSetFactory::~TGlxMulResolutionDetailsBindingSetFactory(void)
-	??1TGlxMulTagsDetailsBindingSetFactory@@UAE@XZ @ 18 NONAME ; TGlxMulTagsDetailsBindingSetFactory::~TGlxMulTagsDetailsBindingSetFactory(void)
-	??1TGlxMulTitleDetailsBindingSetFactory@@UAE@XZ @ 19 NONAME ; TGlxMulTitleDetailsBindingSetFactory::~TGlxMulTitleDetailsBindingSetFactory(void)
-	??1TGlxMulUsageRightsDetailsBindingSetFactory@@UAE@XZ @ 20 NONAME ; TGlxMulUsageRightsDetailsBindingSetFactory::~TGlxMulUsageRightsDetailsBindingSetFactory(void)
-	?NewL@CGlxMetadataView@@SAPAV1@PAVMGlxMediaListFactory@@@Z @ 21 NONAME ; class CGlxMetadataView * CGlxMetadataView::NewL(class MGlxMediaListFactory *)
-	?NewLC@CGlxMetadataView@@SAPAV1@PAVMGlxMediaListFactory@@@Z @ 22 NONAME ; class CGlxMetadataView * CGlxMetadataView::NewLC(class MGlxMediaListFactory *)
-
--- a/photosgallery/viewframework/views/metadataview/data/glxmetadataview.rss	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,298 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Resource definitions for Metadata View
-*
-*/
-
-
-//RESOURCE IDENTIFIER
-
-NAME	MGMV
-
-//INCLUDES
-
-#include <eikon.rsg>
-#include <avkon.rsg>
-#include <avkon.rh>
-#include <avkon.loc>
-#include <avkon.mbg>
-#include <eikon.rh>
-#include <uikon.hrh> 
-#include <avkon.hrh> 
-#include <glxdetailsboundcommand.hrh>
-#include <photos.loc>
-#include <glxcommandhandlers.hrh>
-#include <AiwCommon.hrh>
-
-//RESOURCE DEFINITIONS 
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF { buf="MGMV"; }
-
-// -----------------------------------------------------------------------------
-// reource for view
-// -----------------------------------------------------------------------------
-//
-RESOURCE AVKON_VIEW r_glx_metadata_view
-	{
-	menubar = r_metadata_menubar;
-	cba = R_AVKON_SOFTKEYS_OPTIONS_BACK;	   
-	}
-
-// -----------------------------------------------------------------------------
-// reource for menubar
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_BAR r_metadata_menubar
-	{
-	titles=
-		{
-		MENU_TITLE { menu_pane=r_metadata_menu; txt = qtn_lgal_title_details; }
-		};
-	}
-
-// -----------------------------------------------------------------------------
-// reource for menupane
-// -----------------------------------------------------------------------------
-//
-RESOURCE MENU_PANE r_metadata_menu
-	{
-	items=
-		{
-		MENU_ITEM { command = KGlxEditBoundMenuCommandId; txt = qtn_lgal_options_edit; },
-		MENU_ITEM { command = KGlxViewBoundMenuCommandId; txt = qtn_lgal_options_view; },
-                MENU_ITEM { command = EGlxCmdAiwShowMap; txt = qtn_lgal_option_show_on_map;},
-		MENU_ITEM { command = KGlxDeleteBoundMenuCommandId; txt = qtn_lgal_options_delete;flags = EEikMenuItemSpecific; },
-		MENU_ITEM { command = EAknCmdHelp; txt = qtn_options_help; }
-		};
-	}
-	
-
-// -----------------------------------------------------------------------------
-//
-// metadata view custom resource
-//
-// -----------------------------------------------------------------------------
-//
-	
-// -----------------------------------------------------------------------------
-// reource for CEikEdwin control
-// -----------------------------------------------------------------------------
-//
-RESOURCE EDWIN r_glx_edwin
-    {
-    flags = EAknEditorFlagDefault 
-    		| EEikEdwinNoAutoSelection  
-    		| EEikEdwinAvkonDisableCursor ;
-    width = 10;
-    lines= 1;
-    maxlength = 512;  // Max number of characters
-    allowed_input_modes = EAknEditorTextInputMode; 
-    default_input_mode = EAknEditorTextInputMode;
-    }
-
-// -----------------------------------------------------------------------------
-// reource for CAknQueryControl control
-// -----------------------------------------------------------------------------
-//
-RESOURCE DIALOG r_glx_data_query
-	{
-	flags = EGeneralQueryFlags;
-	buttons = R_AVKON_SOFTKEYS_OK_CANCEL;
-	items =
-		{
-		DLG_LINE
-			{
-			type = EAknCtQuery;
-			id = EGeneralQuery;
-			control = AVKON_DATA_QUERY
-				{
-				layout = EDataLayout;
-				label = " "; // prompt text
-				control = EDWIN
-					{
-					width = 5;
-					lines = 1;
-					maxlength = 50;
-					};
-				};
-			}
-		};
-	}
-	
-// -----------------------------------------------------------------------------
-// reource for view title
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_title
-	{
-	buf = qtn_lgal_title_details; // CHANGED FROM  qtn_lgal_view_title_properties;
-	} 
-	
-// -----------------------------------------------------------------------------
-// reource for options edit
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_options_edit
-	{
-	buf = qtn_lgal_options_edit;
-	} 
-	
-// -----------------------------------------------------------------------------
-// reource for options delete
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_options_delete
-	{
-	buf = qtn_lgal_options_delete;
-	} 
-	
-// -----------------------------------------------------------------------------
-// reource for options view
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_options_view
-	{
-	buf = qtn_lgal_options_view;
-	}
-	
-// -----------------------------------------------------------------------------
-// reource for options show on map
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_show_on_map_options_view
-	{
-	buf = qtn_lgal_option_show_on_map;
-	}	
-	
-// -----------------------------------------------------------------------------
-// reource for view title
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_title_details
-	{
-	buf = qtn_lgal_title_details;
-	}
-	
-// -----------------------------------------------------------------------------
-// reource for metadata view title pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_title_nseries
-    {
-    buf = qtn_lgal_details_title;
-    }
-	
-// -----------------------------------------------------------------------------
-// reource for metadata view description pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_description_nseries
-    {
-    buf = qtn_lgal_details_description;
-    }
-	
-// -----------------------------------------------------------------------------
-// reource for metadata view tags pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_tags_nseries
-    {
-    buf = qtn_lgal_details_tags;
-    }
-// -----------------------------------------------------------------------------
-// reource for metadata view albums pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_albums_nseries
-    {
-    buf = qtn_lgal_details_albums;
-    }
-// -----------------------------------------------------------------------------
-// reource for metadata view location pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_location_nseries
-    {
-    buf = qtn_lgal_details_location;
-    }
-// -----------------------------------------------------------------------------
-// reource for metadata view resolution pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_resolution_nseries
-    {
-    buf = qtn_lgal_details_resolution_title;
-    }
-// -----------------------------------------------------------------------------
-// reource for metadata view duration pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_duration_nseries
-    {
-    buf = qtn_lgal_details_duration;
-    }
-// -----------------------------------------------------------------------------
-// reource for metadata view drm pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_drm_nseries
-    {
-    buf = qtn_lgal_detail_drm; 
-    }
-// -----------------------------------------------------------------------------
-// reource for metadata view date and time pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_date_time_nseries
-    {
-    buf = qtn_lgal_details_date_time;
-    }
-// -----------------------------------------------------------------------------
-// reource for metadata view file size pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_file_size_nseries
-    {
-    buf = qtn_lgal_details_file_size;
-    }
-// -----------------------------------------------------------------------------
-// reource for metadata view file size pane
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_view_resolution_detail_nseries
-    {
-    buf = qtn_lgal_details_resolution_detail; 
-    }
-
-// -----------------------------------------------------------------------------
-// reource for delete location confirmation note
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_note_delete_location
-    {
-    buf = qtn_lgal_note_delete_location;
-    }
-
-// -----------------------------------------------------------------------------
-// reource for no location info note
-// -----------------------------------------------------------------------------
-//
-RESOURCE TBUF r_glx_metadata_note_info_no_location
-    {
-    buf = qtn_lgal_note_no_location;
-    }
-
-//End of file
--- a/photosgallery/viewframework/views/metadataview/eabi/glxunifiedmetadataviewu.def	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-EXPORTS
-	_ZN16CGlxMetadataView4NewLEP20MGlxMediaListFactory @ 1 NONAME
-	_ZN16CGlxMetadataView5NewLCEP20MGlxMediaListFactory @ 2 NONAME
-	_ZN35TGlxMulTagsDetailsBindingSetFactoryC1Ev @ 3 NONAME
-	_ZN35TGlxMulTagsDetailsBindingSetFactoryC2Ev @ 4 NONAME
-	_ZN35TGlxMulTagsDetailsBindingSetFactoryD0Ev @ 5 NONAME
-	_ZN35TGlxMulTagsDetailsBindingSetFactoryD1Ev @ 6 NONAME
-	_ZN35TGlxMulTagsDetailsBindingSetFactoryD2Ev @ 7 NONAME
-	_ZN36TGlxMulTitleDetailsBindingSetFactoryC1Ev @ 8 NONAME
-	_ZN36TGlxMulTitleDetailsBindingSetFactoryC2Ev @ 9 NONAME
-	_ZN36TGlxMulTitleDetailsBindingSetFactoryD0Ev @ 10 NONAME
-	_ZN36TGlxMulTitleDetailsBindingSetFactoryD1Ev @ 11 NONAME
-	_ZN36TGlxMulTitleDetailsBindingSetFactoryD2Ev @ 12 NONAME
-	_ZN37TGlxMulAlbumsDetailsBindingSetFactoryC1Ev @ 13 NONAME
-	_ZN37TGlxMulAlbumsDetailsBindingSetFactoryC2Ev @ 14 NONAME
-	_ZN37TGlxMulAlbumsDetailsBindingSetFactoryD0Ev @ 15 NONAME
-	_ZN37TGlxMulAlbumsDetailsBindingSetFactoryD1Ev @ 16 NONAME
-	_ZN37TGlxMulAlbumsDetailsBindingSetFactoryD2Ev @ 17 NONAME
-	_ZN39TGlxMulDurationDetailsBindingSetFactoryC1Ev @ 18 NONAME
-	_ZN39TGlxMulDurationDetailsBindingSetFactoryC2Ev @ 19 NONAME
-	_ZN39TGlxMulDurationDetailsBindingSetFactoryD0Ev @ 20 NONAME
-	_ZN39TGlxMulDurationDetailsBindingSetFactoryD1Ev @ 21 NONAME
-	_ZN39TGlxMulDurationDetailsBindingSetFactoryD2Ev @ 22 NONAME
-	_ZN39TGlxMulFileSizeDetailsBindingSetFactoryC1Ev @ 23 NONAME
-	_ZN39TGlxMulFileSizeDetailsBindingSetFactoryC2Ev @ 24 NONAME
-	_ZN39TGlxMulFileSizeDetailsBindingSetFactoryD0Ev @ 25 NONAME
-	_ZN39TGlxMulFileSizeDetailsBindingSetFactoryD1Ev @ 26 NONAME
-	_ZN39TGlxMulFileSizeDetailsBindingSetFactoryD2Ev @ 27 NONAME
-	_ZN39TGlxMulLocationDetailsBindingSetFactoryC1Ev @ 28 NONAME
-	_ZN39TGlxMulLocationDetailsBindingSetFactoryC2Ev @ 29 NONAME
-	_ZN39TGlxMulLocationDetailsBindingSetFactoryD0Ev @ 30 NONAME
-	_ZN39TGlxMulLocationDetailsBindingSetFactoryD1Ev @ 31 NONAME
-	_ZN39TGlxMulLocationDetailsBindingSetFactoryD2Ev @ 32 NONAME
-	_ZN41TGlxMulResolutionDetailsBindingSetFactoryC1Ev @ 33 NONAME
-	_ZN41TGlxMulResolutionDetailsBindingSetFactoryC2Ev @ 34 NONAME
-	_ZN41TGlxMulResolutionDetailsBindingSetFactoryD0Ev @ 35 NONAME
-	_ZN41TGlxMulResolutionDetailsBindingSetFactoryD1Ev @ 36 NONAME
-	_ZN41TGlxMulResolutionDetailsBindingSetFactoryD2Ev @ 37 NONAME
-	_ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryC1Ev @ 38 NONAME
-	_ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryC2Ev @ 39 NONAME
-	_ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryD0Ev @ 40 NONAME
-	_ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryD1Ev @ 41 NONAME
-	_ZN42TGlxMulDateAndTimeDetailsBindingSetFactoryD2Ev @ 42 NONAME
-	_ZN42TGlxMulDescriptionDetailsBindingSetFactoryC1Ev @ 43 NONAME
-	_ZN42TGlxMulDescriptionDetailsBindingSetFactoryC2Ev @ 44 NONAME
-	_ZN42TGlxMulDescriptionDetailsBindingSetFactoryD0Ev @ 45 NONAME
-	_ZN42TGlxMulDescriptionDetailsBindingSetFactoryD1Ev @ 46 NONAME
-	_ZN42TGlxMulDescriptionDetailsBindingSetFactoryD2Ev @ 47 NONAME
-	_ZN42TGlxMulUsageRightsDetailsBindingSetFactoryC1Ev @ 48 NONAME
-	_ZN42TGlxMulUsageRightsDetailsBindingSetFactoryC2Ev @ 49 NONAME
-	_ZN42TGlxMulUsageRightsDetailsBindingSetFactoryD0Ev @ 50 NONAME
-	_ZN42TGlxMulUsageRightsDetailsBindingSetFactoryD1Ev @ 51 NONAME
-	_ZN42TGlxMulUsageRightsDetailsBindingSetFactoryD2Ev @ 52 NONAME
-
--- a/photosgallery/viewframework/views/metadataview/group/bld.inf	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Project build file 
-*
-*/
-
-
-
-PRJ_EXPORTS
-
-//../rom/glxmetadataview.iby      CORE_APP_LAYER_IBY_EXPORT_PATH(glxmetadataview.iby)
-
-PRJ_MMPFILES
-
-//glxmetadataview.mmp
-
-//End of files
-
-
-
--- a/photosgallery/viewframework/views/metadataview/group/glxmetadataview.mmp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Project definition file 
-*
-*/
-
-
-
-#include <platform_paths.hrh>
-
-#include "../../../../group/glxbuildcommon.mmh"
-#include "../../../../inc/glxalfhelper.mmh"
-
-TARGET          glxunifiedmetadataview.dll
-TARGETTYPE      dll
-UID             0x1000008D 0x200104E2
-
-#ifndef WINSCW
-EPOCALLOWDLLDATA
-#endif 
-CAPABILITY      CAP_GENERAL_DLL
-
-SOURCEPATH      ../src
-SOURCE          glxmetadataviewimp.cpp
-SOURCE          glxmetadataview.cpp
-SOURCE          glxmetadatabindingsetfactory.cpp
-
-START RESOURCE  ../data/glxmetadataview.rss
-HEADER
-TARGETPATH      resource/apps
-LANGUAGE_IDS
-END 
-
-SYSTEMINCLUDE     	../inc
-SYSTEMINCLUDE		../../viewbase/inc
-SYSTEMINCLUDE		../../../inc
-SYSTEMINCLUDE 		../../../dataprovider/inc
-SYSTEMINCLUDE		../../../medialists/inc
-SYSTEMINCLUDE		../../../uiutilities/inc  //for attribute retrival
-SYSTEMINCLUDE		../../../drmutility/inc  //for drm utility
-SYSTEMINCLUDE		../../../commandhandlers/inc
-SYSTEMINCLUDE		../../../../inc
-SYSTEMINCLUDE		../../../../common/inc     // for CGlxResourceUtilities
-SYSTEMINCLUDE     ../../../commandhandlers/commandhandlerbase/inc
-SYSTEMINCLUDE     ../../../commandhandlers/commoncommandhandlers/inc
-
-// System includes from epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-LIBRARY         euser.lib
-LIBRARY         avkon.lib						//for Avkon conrols
-LIBRARY         eikcoctl.lib					//for eik controls
-LIBRARY         eikcore.lib 					//for eik controls
-LIBRARY         cone.lib						//for CCoeEnv
-LIBRARY         efsrv.lib						//for TParse
-LIBRARY         glxmedialists.lib 				//for CGlxMedia
-LIBRARY         glxviewbase.lib 				//for CGlxViewBase
-LIBRARY         mpxcommon.lib					//for TMPXAttribute
-LIBRARY			glxcommon.lib 					//for filter factory, CResourceUtilities
-LIBRARY			glxuiutilities.lib				//for ui utility
-LIBRARY			glxcommoncommandhandlers.lib	//for show on map
-LIBRARY         flogger.lib
-	
-// Uiaccelerator related libraries  
-LIBRARY   		osncore.lib		// CAlfString
-LIBRARY    		alfclient.lib	// MAlfWidgetFactory
-LIBRARY	 		alfwidgetmodel.lib
-
-// MUL related libraries  
-LIBRARY	 		libstdcpp.lib	//for STL code
-LIBRARY         glxdataprovider.lib	//data provider
-
-
-// End of File
--- a/photosgallery/viewframework/views/metadataview/inc/glxmetadatabindingsetfactory.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Implementation of Metadata view
-*
-*/
-
-
-
-#ifndef _GLXMETADATABINDINGSETFACTORY_H_
-#define _GLXMETADATABINDINGSETFACTORY_H_
-
-
-#include <e32def.h>
-#include <mul\mulvisualitem.h>
-#include "glxmulbindingsetfactory.h"
-
-NONSHARABLE_CLASS( TGlxMulTitleDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulTitleDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulTitleDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };
-
-NONSHARABLE_CLASS( TGlxMulDateAndTimeDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulDateAndTimeDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulDateAndTimeDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };
-
-NONSHARABLE_CLASS( TGlxMulDescriptionDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulDescriptionDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulDescriptionDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };
-
-NONSHARABLE_CLASS( TGlxMulTagsDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulTagsDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulTagsDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };
-    
-NONSHARABLE_CLASS( TGlxMulAlbumsDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulAlbumsDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulAlbumsDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };
-    
-NONSHARABLE_CLASS( TGlxMulLocationDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulLocationDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulLocationDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };     
-    
-NONSHARABLE_CLASS( TGlxMulFileSizeDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulFileSizeDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulFileSizeDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };      
-
-
-NONSHARABLE_CLASS( TGlxMulResolutionDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulResolutionDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulResolutionDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };    
-
-NONSHARABLE_CLASS( TGlxMulDurationDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulDurationDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulDurationDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };
-    
-NONSHARABLE_CLASS( TGlxMulUsageRightsDetailsBindingSetFactory ) : public TGlxMulBindingSetFactory
-    {
-public:
-	IMPORT_C TGlxMulUsageRightsDetailsBindingSetFactory();
-	IMPORT_C ~TGlxMulUsageRightsDetailsBindingSetFactory();
-private:
-	/**
-	* Add different types of binding to the Binding set	
-	* @param aCommand command associated with option menu item/items
-	*/
-	void AddBindingsL() const;
-    };
-
-#endif // _GLXMETADATABINDINGSETFACTORY_H_   
\ No newline at end of file
--- a/photosgallery/viewframework/views/metadataview/inc/glxmetadataview.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Metadata view implementation
-*
-*/
-
-
-#ifndef C_GLXMETADATAVIEW_H
-#define C_GLXMETADATAVIEW_H
-
-
-// INCLUDES
-#include <glxmedialistviewbase.h>
-
-// CLASS DECLARATION
-
-/**
- *  Metadata view
- *
- */
-NONSHARABLE_CLASS(CGlxMetadataView) :public CGlxMediaListViewBase
-    {
-public:
-
-    /**
-     * Two-phased constructor.
-     *
-     * @return Pointer to newly created object.
-     */
-    IMPORT_C static CGlxMetadataView* NewL( MGlxMediaListFactory* aMediaListFactory );
-
-    /**
-     * Two-phased constructor.
-     *
-     * @return Pointer to newly created object.
-     */
-    IMPORT_C static CGlxMetadataView* NewLC( MGlxMediaListFactory* aMediaListFactory );
-
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxMetadataView();
-    
-    };
-
-#endif  // C_GLXMETADATAVIEW_H
-
-// End of File
-
--- a/photosgallery/viewframework/views/metadataview/inc/glxmetadataviewimp.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,177 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Metadata view implementation
- *
-*/
-
-
-#ifndef C_GLXMETADATAVIEWIMP_H__
-#define C_GLXMETADATAVIEWIMP_H__
-
-// INCLUDES
-#include <alf/alfwidgeteventhandler.h>
-
-#include "glxmetadataview.h"
-
-// FORWARD DECLARATIONS
-class MGlxMediaList;
-class CGlxDetailsMulModelProvider;
-
-// CLASS DECLARATION
-/**
- *  CGlxMetadataViewImp
- * 
- *  Metadata view implementation.
- */
-NONSHARABLE_CLASS( CGlxMetadataViewImp ) : public CGlxMetadataView, public IAlfWidgetEventHandler
-    {
-public:
-    /**
-     * Two-phased constructor.
-     *
-     * @return Pointer to newly created object.
-     */
-    static CGlxMetadataViewImp* NewL( MGlxMediaListFactory* aMediaListFactory );
-
-    /**
-     * Two-phased constructor.
-     *
-     * @return Pointer to newly created object.
-     */
-    static CGlxMetadataViewImp* NewLC( MGlxMediaListFactory* aMediaListFactory );
-   
-    /**
-     * Destructor.
-     */
-    virtual ~CGlxMetadataViewImp();
-    
-private:
-
-    /**
-     * C++ default constructor.
-     */
-    CGlxMetadataViewImp();
-    
-    /**
-     * By default Symbian 2nd phase constructor is private.
-     */
-    void ConstructL( MGlxMediaListFactory* aMediaListFactory );
-    
-	// From MEikMenuObserver
-	void ViewDynInitMenuPaneL( TInt /*aResourceId*/, CEikMenuPane *aMenuPane );
-	
-public: // From CGlxMediaListViewBase
-	
-	virtual TBool HandleViewCommandL( TInt aCommand );
-	
-	virtual TInt MenuResourceId();
-	
-	MGlxMediaList& MediaList();
-
-private: // from base class CGlxMediaListViewBase
-	
-    TUid Id() const;
-	
-    void DoMLViewActivateL( const TVwsViewId& /*aPrevViewId*/,  
-   						TUid /*aCustomMessageId*/, 
-    						const TDesC8& aCustomMessage );   										    
-    	
-    void DoMLViewDeactivate();
-    
-  
-public: // ialfwidgeteventhandler
-
-    bool accept( CAlfWidgetControl& /*aControl*/, const TAlfEvent& /*aEvent*/ ) const;
-    
-    void setActiveStates( unsigned int /*aStates*/ );
-    
-    AlfEventStatus offerEvent( CAlfWidgetControl& aControl, const TAlfEvent& aEvent );
-      
-    IAlfInterfaceBase* makeInterface( const IfId& /*aType*/ ); 
-    
-    void setEventHandlerData( const AlfWidgetEventHandlerInitData& /*aData*/ );
-    
-    AlfWidgetEventHandlerInitData* eventHandlerData();	
-    
-    AlfEventHandlerType eventHandlerType() ;
-
-    AlfEventHandlerExecutionPhase eventExecutionPhase() ;
-        
-private : //new method
-	
-	/**
-	 * Create media list with URI filter
-	 * 
-	 * @param aURI uri or file name of item
-	 */
-	void CreateMediaListL( const TDesC8& aURI ); 
-	
-	/**
-	* Sets the default text for the List View when empty
-	*/
-	void CreateEmptyText();
-
-	/**
- 	 * Constructs the Alf Environment and display
-	 */
-	void ConstructAlfEnvL();
-	
-	/**
-	 * Constructs the list widget
-	 */	
-	void ConstructInitialViewL();
-	
-	/**
-	 * Destroys the view Widget
-	 */
-	void DestroyListViewWidget();
-
-	/**
-	 * Send factory instance for the items to be shown in the list
-	 */	
-	void AddListEntryL();
-
-private:    // Data
-
-	MGlxMediaList*	iItemMediaList;//own	
-    TInt	iResourceOffset;
-    HBufC*	iItemURI;
-    
-    //Alf environment (not owned)
-   	CAlfEnv* iEnv; 
-   	
-   	//Alf display (not owned)
-	CAlfDisplay* iDisp; 
-	
-	// Owns the list widget (not owned)
-	IMulListWidget*     iListWidget;
-	IAlfViewWidget* 	iViewWidget;
-	
-	//Owns DetailsMulModelProvider
-	CGlxDetailsMulModelProvider* iDetailsMulModelProvider;
-	
-	
-    //Control gorup id
-    TInt iControlGroupId;
-    
-    TBool iIsVideo;
-    
-    TBool iIsDrm;
-
-    };
-
-#endif  // C_GLXMETADATAVIEWIMP_H__
-
-// End of File
-
--- a/photosgallery/viewframework/views/metadataview/rom/glxmetadataview.iby	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Metadataview iby file.
-*
-*/
-
-
-
-#ifndef __GLXMETADATAVIEW_IBY__
-#define __GLXMETADATAVIEW_IBY__
-
-file=ABI_DIR\BUILD_DIR\glxunifiedmetadataview.dll       SHARED_LIB_DIR\glxunifiedmetadataview.dll
-data=DATAZ_\app_resource_dir\glxmetadataview.rsc RESOURCE_FILES_DIR\glxmetadataview.rsc
-
-#endif // __GLXMETADATAVIEW_IBY__
-
-// End of file
--- a/photosgallery/viewframework/views/metadataview/src/glxmetadatabindingsetfactory.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,375 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   Implementation of Metadata view
-*
-*/
-
-
-#include "glxmetadatabindingsetfactory.h"
-#include "glxmuliconprovider.h"
-#include "glxdetailsboundcommand.h"
-#include "glxuiutility.h"
-#include <alf/ialfviewwidget.h>
-#include <mul/imulwidget.h>
-#include <avkon.rsg>
-#include <glxmetadataview.rsg>
-#include <mpxcollectionpath.h>
-#include <glxcollectionplugintags.hrh>      // tag collection plugin uid
-#include <glxcollectionpluginalbums.hrh>    // album collection plugin uid
-#include <glxtracer.h>
-
-//-----------------------------------------------------------------------------
-// TGlxMulTitleDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulTitleDetailsBindingSetFactory::TGlxMulTitleDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulTitleDetailsBindingSetFactory::~TGlxMulTitleDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulTitleDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulTitleDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate6, Alf::mulwidget::KTemplate6);
-	AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_TITLE_NSERIES );
-	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralTitle );
-
-	CGlxUiUtility* uiUtility = CGlxUiUtility::UtilityL();
-	CleanupClosePushL( *uiUtility );
-	AddThumbnailBindingL( Alf::mulvisualitem::KMulIcon1, uiUtility->GetGridIconSize() );
-	CleanupStack::PopAndDestroy( uiUtility );
-
-//	AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item
-	AddCommandBindingL(CGlxTitleBoundCommand::NewL());
-    }
-
-//-----------------------------------------------------------------------------
-// TGlxMulDateAndTimeDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulDateAndTimeDetailsBindingSetFactory::TGlxMulDateAndTimeDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulDateAndTimeDetailsBindingSetFactory::~TGlxMulDateAndTimeDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulDateAndTimeDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulDateAndTimeDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
-	AddStringBindingL( Alf::mulvisualitem::KMulTitle,R_GLX_METADATA_VIEW_DATE_TIME_NSERIES );
-	AddCommandBindingL(CGlxDateAndTimeBoundCommand::NewL());
-	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , 
-	                    KMPXMediaGeneralDate, R_QTN_DATE_USUAL_WITH_ZERO );
-    }
-
-//-----------------------------------------------------------------------------
-// TGlxMulDescriptionDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulDescriptionDetailsBindingSetFactory::TGlxMulDescriptionDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulDescriptionDetailsBindingSetFactory::~TGlxMulDescriptionDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulDescriptionDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulDescriptionDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
-	AddStringBindingL( Alf::mulvisualitem::KMulTitle,R_GLX_METADATA_VIEW_DESCRIPTION_NSERIES );
-	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralComment );
-//	AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item
-	AddCommandBindingL(CGlxDescriptionBoundCommand::NewL());
-    }
-
-//-----------------------------------------------------------------------------
-// TGlxMulTagsDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulTagsDetailsBindingSetFactory::TGlxMulTagsDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulTagsDetailsBindingSetFactory::~TGlxMulTagsDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulTagsDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulTagsDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
-	AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_TAGS_NSERIES );
-	
-	CMPXCollectionPath* path = CMPXCollectionPath::NewL();
-    CleanupStack::PushL( path );
-    path->AppendL( KGlxTagCollectionPluginImplementationUid );
-    AddContainerListBindingL( Alf::mulvisualitem::KMulDetail, *path ); 
-    CleanupStack::PopAndDestroy( path );
-    
-//	AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item
-	AddCommandBindingL(CGlxTagsBoundCommand::NewL());
-    }
-    
-//-----------------------------------------------------------------------------
-// TGlxMulAlbumsDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulAlbumsDetailsBindingSetFactory::TGlxMulAlbumsDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulAlbumsDetailsBindingSetFactory::~TGlxMulAlbumsDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulAlbumsDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulAlbumsDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
- 	AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_ALBUMS_NSERIES );
-
-	CMPXCollectionPath* path = CMPXCollectionPath::NewL();
-    CleanupStack::PushL( path );
-    path->AppendL( KGlxCollectionPluginAlbumsImplementationUid );
-    AddContainerListBindingL( Alf::mulvisualitem::KMulDetail, *path ); 
-    CleanupStack::PopAndDestroy( path );
-    
-	//AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item
-	AddCommandBindingL(CGlxAlbumsBoundCommand::NewL());
-
-    }
-
-//-----------------------------------------------------------------------------
-// TGlxMulLocationDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulLocationDetailsBindingSetFactory::TGlxMulLocationDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulLocationDetailsBindingSetFactory::~TGlxMulLocationDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulLocationDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulLocationDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
- 	AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_LOCATION_NSERIES );
-	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KGlxMediaGeneralLocation ) ;//@todo
-//	AddThumbnailBindingL( Alf::mulvisualitem::KMulIndicator1 );//qgn_lgal_details_editable_item
-	AddCommandBindingL(CGlxLocationBoundCommand::NewL());
-    }
-
-//-----------------------------------------------------------------------------
-// TGlxMulFileSizeDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulFileSizeDetailsBindingSetFactory::TGlxMulFileSizeDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulFileSizeDetailsBindingSetFactory::~TGlxMulFileSizeDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulFileSizeDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulFileSizeDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
-	AddStringBindingL( Alf::mulvisualitem::KMulTitle,R_GLX_METADATA_VIEW_FILE_SIZE_NSERIES );
-	AddCommandBindingL(CGlxFileSizeBoundCommand::NewL());
-	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralSize );
-    }
-    
-//-----------------------------------------------------------------------------
-// TGlxMulResolutionDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulResolutionDetailsBindingSetFactory::TGlxMulResolutionDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulResolutionDetailsBindingSetFactory::~TGlxMulResolutionDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulResolutionDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulResolutionDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
-	AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_RESOLUTION_NSERIES );
-	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KGlxMediaGeneralDimensions );
-	AddCommandBindingL(CGlxResolutionBoundCommand::NewL());
-    }
-
-//-----------------------------------------------------------------------------
-// TGlxMulDurationDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
- /**
- * Constructor
- */
-EXPORT_C TGlxMulDurationDetailsBindingSetFactory::TGlxMulDurationDetailsBindingSetFactory()
-    {
-    }
-
-/**
- * Destructor
- */
-EXPORT_C TGlxMulDurationDetailsBindingSetFactory::~TGlxMulDurationDetailsBindingSetFactory()
-    {
-    }
-
- /**
- * AddBindingsL
- */
-void TGlxMulDurationDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulDurationDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
- 	AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_DURATION_NSERIES);
-	AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaGeneralDuration );
-	AddCommandBindingL(CGlxDurationBoundCommand::NewL());
-    }    
-    
-    
-//-----------------------------------------------------------------------------
-// TGlxMulUsageRightsDetailsBindingSetFactory 
-//-----------------------------------------------------------------------------
-
-/**
-* Constructor
-*/
-EXPORT_C TGlxMulUsageRightsDetailsBindingSetFactory::TGlxMulUsageRightsDetailsBindingSetFactory()
-    {
-    }
-
-/**
-* Destructor
-*/
-EXPORT_C TGlxMulUsageRightsDetailsBindingSetFactory::~TGlxMulUsageRightsDetailsBindingSetFactory()
-    {
-    }
-
-/**
-* AddBindingsL
-*/
-void TGlxMulUsageRightsDetailsBindingSetFactory::AddBindingsL() const
-    {
-	TRACER("TGlxMulUsageRightsDetailsBindingSetFactory::AddBindingsL");
-    
-    AddTemplateBindingL(Alf::mulwidget::KTemplate5, Alf::mulwidget::KTemplate5);
- 	AddStringBindingL( Alf::mulvisualitem::KMulTitle, R_GLX_METADATA_VIEW_DRM_NSERIES );
-	//AddMpxAttributeBindingL( Alf::mulvisualitem::KMulDetail , KMPXMediaNullAttribute  );//@todo
- 	AddCommandBindingL(CGlxUsageRightsBoundCommand::NewL());
-    }
-
-    
-    
-
-    
-
-    
-    
-
--- a/photosgallery/viewframework/views/metadataview/src/glxmetadataview.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Implementation of Metadata view
-*
-*/
-
-
-// INCLUDE FILES
-#include "glxmetadataview.h" 
-#include "glxmetadataviewimp.h"
-
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-// 
-EXPORT_C CGlxMetadataView* CGlxMetadataView::NewL( MGlxMediaListFactory* aMediaListFactory )
-    {
-    return CGlxMetadataViewImp::NewL( aMediaListFactory );
-    }
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CGlxMetadataView* CGlxMetadataView::NewLC( MGlxMediaListFactory* aMediaListFactory )
-    {
-    return CGlxMetadataViewImp::NewLC( aMediaListFactory );
-    }
-    
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxMetadataView::~CGlxMetadataView()
-    {
-    // Do nothing
-    }
-
-//  End of File
--- a/photosgallery/viewframework/views/metadataview/src/glxmetadataviewimp.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,537 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Implementation of Metadataview
-*
-*/
-
-
-// INCLUDE FILES
-
-#include 	"glxmetadataviewimp.h"
-
-#include 	<aknviewappui.h>
-#include 	<data_caging_path_literals.hrh>
-#include 	<avkon.rsg>
-
-#include 	<alf/ialfviewwidget.h>
-#include 	<alf/alfdisplay.h>
-#include    <alf/alfwidgetenvextension.h>
-#include    <alf/alfwidgetcontrol.h>
-
-#include 	<glxmedialist.h>
-#include	<glxtracer.h>
-#include	<glxlog.h>
-#include 	<glxresourceutilities.h>       // for CGlxResourceUtilities
-#include	<glxsetappstate.h>             // set app state in PCFW key
-
-#include 	<glxfilterfactory.h>               // for TGlxFilterFactory
-#include	<glxdetailsmulmodelprovider.h>	//Details data provider
-#include    "glxmetadatabindingsetfactory.h" //for Binding list entries 
-#include    <glxdetailsboundcommand.hrh>
-
-#include 	"glxmetadataview.h"
-#include 	<glxmetadataview.rsg>
-
-#include <glxuiutilities.rsg>
-
-#include <glxcommandhandleraiwshowmap.h>
-
-//CONSTANTS
-const TInt  KViewId = 0x200071B0;
-const TInt  KMainMediaListId = 0x2000D248;
-const TInt  KDetialsDataWindowSize = 5;
-_LIT( KGlxStrETrue, "\x0001");
-
-// ============================== MEMBER FUNCTIONS ===========================
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CGlxMetadataViewImp* CGlxMetadataViewImp::NewL
-									( MGlxMediaListFactory* aMediaListFactory )
-    {
-	TRACER("CGlxMetadataViewImp::NewL");
-    
-    CGlxMetadataViewImp* self = CGlxMetadataViewImp::NewLC( aMediaListFactory );
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Two-phased constructor.
-// ---------------------------------------------------------------------------
-//
-CGlxMetadataViewImp* CGlxMetadataViewImp::NewLC
-									( MGlxMediaListFactory* aMediaListFactory )
-    {
-    TRACER("CGlxMetadataViewImp::NewLC");
-
-    CGlxMetadataViewImp* self = new (ELeave) CGlxMetadataViewImp();
-    CleanupStack::PushL(self);
-    self->ConstructL( aMediaListFactory );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that
-// might leave.
-// ---------------------------------------------------------------------------
-//
-CGlxMetadataViewImp::CGlxMetadataViewImp()
-    {
-    //No implementation
-    }
-    
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxMetadataViewImp::~CGlxMetadataViewImp()
-    {
-	TRACER("CGlxMetadataViewImp::~CGlxMetadataViewImp");
-	
-	
-    if ( iResourceOffset )
-       {
-        CCoeEnv::Static()->DeleteResourceFile( iResourceOffset );
-       }    
-    }
-    
-// ---------------------------------------------------------------------------
-// Symbian 2nd phase constructor can leave.
-// ---------------------------------------------------------------------------
-//    
-void CGlxMetadataViewImp::ConstructL( MGlxMediaListFactory* /*aMediaListFactory*/ )
-    {
-    TRACER("CGlxMetadataViewImp::ConstructL");
-    
-	_LIT(KGlxMetadataViewResource,"glxmetadataview.rsc");
-
-	//add resource file
-    TParse parse;
-    parse.Set(KGlxMetadataViewResource, &KDC_APP_RESOURCE_DIR, NULL);
-    TFileName resourceFile;
-    resourceFile.Append(parse.FullName()); 
-    CGlxResourceUtilities::GetResourceFilenameL(resourceFile);  
-    iResourceOffset = CCoeEnv::Static()->AddResourceFileL(resourceFile);
-	
-	//call base class's consructor
-    BaseConstructL(R_GLX_METADATA_VIEW);
-    ViewBaseConstructL();
-    
-   	HBufC* title = iEikonEnv->AllocReadResourceLC(R_GLX_METADATA_VIEW_TITLE_DETAILS);
-	MLViewBaseConstructL(NULL,*title);   	 	
-	CleanupStack::PopAndDestroy(title);
-	
-    // ShowMap commandhandler                         
-    GLX_LOG_INFO("Adding CGlxCommandHandlerAiwShowMap");
-    this->AddCommandHandlerL(CGlxCommandHandlerAiwShowMap::
-                                NewL(this, R_METADATA_MENU));
-	
-	// Creating the Alf Environment
-    ConstructAlfEnvL();
-	}
-	
-// ---------------------------------------------------------------------------
-// DynInitMenuPaneL
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewImp::ViewDynInitMenuPaneL(TInt /*aResourceId*/, CEikMenuPane *aMenuPane)
-    {
-	TRACER("CGlxMetadataViewImp::DynInitMenuPaneL");
-    
-    iDetailsMulModelProvider->InitMenuL(*aMenuPane);
-    }
-    
-// ---------------------------------------------------------------------------
-// HandleViewCommandL
-// ---------------------------------------------------------------------------
-//
-TBool CGlxMetadataViewImp::HandleViewCommandL(TInt aCommand)
-    {
-	TRACER("CGlxMetadataViewImp::HandleViewCommandL");
-        
-    if( aCommand )
-    	{
-    	return iDetailsMulModelProvider->OfferCommandL( aCommand );
-    	}
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// From CGlxViewBase
-// return menuresource id
-// ---------------------------------------------------------------------------
-//    
-TInt CGlxMetadataViewImp::MenuResourceId()
-	{
-	return R_METADATA_MENU;
-	}
-	
-// ---------------------------------------------------------------------------
-// From CAknView
-// Returns views id.
-// ---------------------------------------------------------------------------
-//
-TUid CGlxMetadataViewImp::Id() const
-    {
-    return TUid::Uid(KViewId);
-    }
-    
-// ---------------------------------------------------------------------------
-// From CAknView
-// Handles a view activation.
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewImp::DoMLViewActivateL( const TVwsViewId& /* aPrevViewId */, 
-    TUid /* aCustomMessageId */, const TDesC8&  aCustomMessage )
-	{
-	TRACER("CGlxMetadataViewImp::DoMLViewActivateL");
-	CreateMediaListL( aCustomMessage );
-	
-	StatusPane()->MakeVisible(ETrue);
-	
-	// Construct the application's default view i.e., listview widget
-	ConstructInitialViewL();
-	GlxSetAppState::SetState( EGlxInListView );
-	}
-	
-// ---------------------------------------------------------------------------
-// From CAknView
-// View deactivation function.
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewImp::DoMLViewDeactivate()
-    {
-	TRACER("CGlxMetadataViewImp::DoMLViewDeactivate");
-	
-	
-		
-    DestroyListViewWidget();
-	if( iItemMediaList ) 
-		{
-		iItemMediaList->Close();
-		iItemMediaList = NULL;	
-		} 
-	if( iItemURI )
-		{
-		delete iItemURI;
-		iItemURI = NULL;
-		}
-   }
-   
-// ---------------------------------------------------------------------------
-// ConstructAlfEnvL
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewImp::ConstructAlfEnvL()
-    {
-	TRACER("CGlxMetadataViewImp::ConstructAlfEnvL");
-    
-	
-	// Creating the Alf Environment
-	// Should be the first thing to be done before widgets can be created
-	iEnv = iUiUtility->Env();
-
-	// Creating the Alf display    
-	// display is need to show anything related to Alf
-	// Avkon perceives the Alf display as one CoeControl, 
-	// it can't see widgets inside the display
-	iDisp = iUiUtility->Display();
-	
-	// Use the Avkon skin background as the display background.
-	iDisp->SetClearBackgroundL (CAlfDisplay::EClearWithSkinBackground);
-   }
-
-// ---------------------------------------------------------------------------
-// ConstructInitialViewL
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewImp::ConstructInitialViewL()
-    {
-    TRACER("CGlxMetadataViewImp::ConstructInitialViewL");
-    
-    const char* KLoadName("mullistwidget");
-    const char* KWidgetLoadName("ListWidget");
-    
-    iControlGroupId = reinterpret_cast < TInt > (this);
-    
-    try
-        {
-        // Get widget factory from CAlfEnv
-        // Factory is then used to create the individual widgets & data model
-
-        IAlfWidgetFactory& widgetFactory = AlfWidgetEnvExtension::widgetFactory(*iEnv); 
-
-        
-        iViewWidget = widgetFactory.createViewWidget("detaillistviewwidget", iControlGroupId); 
-        
-        //Enable status pane
-        iViewWidget->enableStatusPane(true);
-        iViewWidget->setRect( ClientRect() );
-        iViewWidget->show(true);
-        
-        // Create List widget. CAlfEnv owns widget
-        iListWidget = widgetFactory.createWidget<IMulListWidget>( KLoadName, 
-                                        KWidgetLoadName, *iViewWidget, NULL);
-        
-        // Disable marking for list, need to remove this flag when widget  
-        // construction has no marking flag set by default
-        iListWidget->ClearFlags( IMulMultiItemWidget::EMulWidgetMarkingMode ); 
-        
-        //Sets the default text for the List View when empty
-        CreateEmptyText();
-    
-        if ( iListWidget )
-            {
-            // Widget takes the ownership
-            iListWidget->AddEventHandler (*this);
-            iListWidget->ShowWidget(true);
-            iListWidget->control()->AcquireFocus();
-            } 
-        
-        AddListEntryL();
-               
-    	}
-    catch(...)
-        {
-        User::Leave(KErrGeneral);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// Destroys the Widget
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewImp::DestroyListViewWidget()
-    {
-    if( iDetailsMulModelProvider )
-        {
-        delete iDetailsMulModelProvider;
-        iDetailsMulModelProvider = NULL;
-        }
-      if( iListWidget )
-        {
-        iListWidget->RemoveEventHandler (*this);
-        iListWidget->ShowWidget(false);
-        iViewWidget->show(false);
-        }
-
-    IAlfWidgetFactory& widgetFactory = AlfWidgetEnvExtension::widgetFactory(*iEnv); 
-    widgetFactory.destroyWidget(iViewWidget);
-      
-    iListWidget = NULL;  
-    iViewWidget = NULL;
-    }
-	
-// ---------------------------------------------------------------------------
-// From AddListEntryL
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewImp::AddListEntryL()
-	{
-	TRACER("CGlxMetadataViewImp::AddListEntryL");
-	
-	iDetailsMulModelProvider = CGlxDetailsMulModelProvider::NewL( *iEnv,
-										*iListWidget,
-										*iItemMediaList, 
-										mulwidget::KTemplate5, KDetialsDataWindowSize );
-										
-	iDetailsMulModelProvider->AddEntryL(TGlxMulTitleDetailsBindingSetFactory() );
-	iDetailsMulModelProvider->AddEntryL(TGlxMulDateAndTimeDetailsBindingSetFactory() );
-	iDetailsMulModelProvider->AddEntryL(TGlxMulDescriptionDetailsBindingSetFactory() );
-	iDetailsMulModelProvider->AddEntryL(TGlxMulTagsDetailsBindingSetFactory() ); 
-	iDetailsMulModelProvider->AddEntryL(TGlxMulAlbumsDetailsBindingSetFactory() ); 
-	iDetailsMulModelProvider->AddEntryL(TGlxMulLocationDetailsBindingSetFactory() ); 
-	iDetailsMulModelProvider->AddEntryL(TGlxMulFileSizeDetailsBindingSetFactory() );
-	iDetailsMulModelProvider->AddEntryL(TGlxMulResolutionDetailsBindingSetFactory() );
-	if( iIsVideo)
-	    {
-	    iDetailsMulModelProvider->AddEntryL(TGlxMulDurationDetailsBindingSetFactory() );
-	    }
-	if( iIsDrm )
-		{
-		iDetailsMulModelProvider->AddEntryL(TGlxMulUsageRightsDetailsBindingSetFactory() );
-		}
-	}
-	
-// ---------------------------------------------------------
-// CreateEmptyText
-// ---------------------------------------------------------
-//	
-void CGlxMetadataViewImp::CreateEmptyText()
-	{
-	TRACER("CGlxMetadataViewImp::CreateEmptyText");
-	
-	// The listwidget can set an empty text on the display
-	// If there are no data items in the associated data model,
-	// then the empty text is shown on the widget
-	// If the empty text is not set, then widget won't shown any text by default
-	UString* defaultText = new UString("No Items Present");
-	iListWidget->SetEmptyText (*defaultText); // Widget takes the ownership
-	delete defaultText;
-	}
-	
-// ---------------------------------------------------------------------------
-// CreateMediaListL
-// ---------------------------------------------------------------------------
-//
-void CGlxMetadataViewImp::CreateMediaListL( const TDesC8& aURI )
-	{
-	TRACER("CGlxMetadataViewImp::CreateMediaListL");
-	
-	CMPXCollectionPath* path = CMPXCollectionPath::NewL();
-	CleanupStack::PushL( path );
-	
-	path->AppendL(KGlxCollectionPluginAllImplementationUid);
-	
-	//convert uri from 8 bit to unicode
-	iItemURI = HBufC::NewL( aURI.Length() );
-	iItemURI->Des().Copy( aURI );
-	
-	//Get last two characters for checking drm or video and reset the length for uri
-    TPtr uriPtr (iItemURI->Des());
-    
-    TPtr isVideo = uriPtr.MidTPtr(uriPtr.Length()-1,1);
-    if( !isVideo.Compare(KGlxStrETrue ))
-	    {
-	    iIsVideo = ETrue;	
-	    }
-	    
-    TPtr isDrm = uriPtr.MidTPtr(uriPtr.Length()-2,1);
-    if( !isDrm.Compare(KGlxStrETrue))
-	    {
-	    iIsDrm = ETrue;	
-	    }
-    
-    uriPtr.SetLength(uriPtr.Length()-2);
-
-	CMPXFilter* filter  = TGlxFilterFactory::CreateURIFilterL( *iItemURI );  
-	CleanupStack::PushL( filter );	
-	
-	//@TODO remove magic no - allocate uid from uid list
-	iItemMediaList = MGlxMediaList::InstanceL(*path, TGlxHierarchyId(KMainMediaListId), filter);
-    
-	CleanupStack::PopAndDestroy( filter );	
-    CleanupStack::PopAndDestroy( path ); 
-	}
-	
-// ---------------------------------------------------------------------------
-// MediaList.
-// ---------------------------------------------------------------------------
-//
-MGlxMediaList& CGlxMetadataViewImp::MediaList()
-	{
-	return *iItemMediaList;
-	}
-	
-// ---------------------------------------------------------
-// offerEvent
-// ---------------------------------------------------------
-//	
-AlfEventStatus CGlxMetadataViewImp::offerEvent( CAlfWidgetControl& /*aControl*/, const TAlfEvent& aEvent )
-	{
-	    
-	//Check if its a Custom Event else return
-	if(!aEvent.IsCustomEvent())
-		{   
-		GLX_LOG_INFO("Event Not Handled");     		
-		return EEventNotHandled;
-		}
-    TInt eventId = aEvent.CustomParameter();
-    switch(eventId)
-        {
-        case KAlfActionIdDeviceLayoutChanged:
-          {
-          iViewWidget->setRect( ClientRect() ); 
-          return EEventNotHandled;
-          }
-        case ETypeSelect:
-            {
-            TRAP_IGNORE(HandleViewCommandL((TInt)KGlxEditBoundMenuCommandId));
-            }
-        }
- 
-	return EEventConsumed;	
-	}
-
-//----------------------------------------------------------------------------------
-// eventHandlerType
-//----------------------------------------------------------------------------------
-//
-IAlfWidgetEventHandler::AlfEventHandlerType CGlxMetadataViewImp::eventHandlerType() 
-	{
-	return IAlfWidgetEventHandler::EPresentationEventHandler;
-	}
-
-//----------------------------------------------------------------------------------
-// eventExecutionPhase
-//----------------------------------------------------------------------------------
-//
-IAlfWidgetEventHandler::AlfEventHandlerExecutionPhase CGlxMetadataViewImp::eventExecutionPhase()
-	{
-		return EBubblingPhaseEventHandler;
-	}  
-// ---------------------------------------------------------
-// accept
-// ---------------------------------------------------------
-//	
-
-bool CGlxMetadataViewImp::accept( CAlfWidgetControl& /*aControl*/, const TAlfEvent& /*aEvent*/ ) const
-    {
-    return ETrue;
-    }
-
-// ---------------------------------------------------------
-// setActiveStates
-// ---------------------------------------------------------
-//	
-    
- void CGlxMetadataViewImp::setActiveStates( unsigned int /*aStates*/ )
-    {
-    
-    }
-
-// ---------------------------------------------------------
-// makeInterface
-// ---------------------------------------------------------
-//	
-
-IAlfInterfaceBase* CGlxMetadataViewImp::makeInterface( const IfId& /*aType*/ )
-    {
-    return NULL; 
-    }
-
-// ---------------------------------------------------------
-// setEventHandlerData
-// ---------------------------------------------------------
-//	
-    
-void CGlxMetadataViewImp::setEventHandlerData(const AlfWidgetEventHandlerInitData& /*aData*/ )
-    {
-    
-    }
-
-// ---------------------------------------------------------
-// eventHandlerData
-// ---------------------------------------------------------
-//	
-    
-AlfWidgetEventHandlerInitData* CGlxMetadataViewImp::eventHandlerData()	  
-   {
-   return NULL;
-   }
-   
-//  End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/photosgallery/viewframework/views/viewbase/inc/glxgfxtranseffect.h	Wed Mar 31 21:31:03 2010 +0300
@@ -0,0 +1,35 @@
+/*
+* 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"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Transition Effects Header
+*
+*/
+
+#ifndef GLXGFXTRANSEFFECT_H_
+#define GLXGFXTRANSEFFECT_H_
+
+#include<glxgallery.hrh>
+
+//Photos uid
+const TUid KPhotosUid = TUid::Uid(KGlxGalleryApplicationUid);
+
+//Transition id for view activation for grid, list and cloud views
+const TUint KActivateTransitionId (1000);
+
+//Transition id for view De-activation for grid, list and cloud views
+const TUint KDeActivateTransitionId (1001);
+
+//Transition id for view De-activation for fullscreen view
+const TUint KFSDeActivateTransitionId (1003);
+
+#endif /* GLXGFXTRANSEFFECT_H_ */
--- a/photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/viewbase/inc/glxtoolbarcontroller.h	Wed Mar 31 21:31:03 2010 +0300
@@ -90,11 +90,7 @@
      * aLatched ETrue if the command button needs to be latched. 
      */
     void EnableLatch( TInt aCommandId, TInt aLatched );
-            
-   /*
-	* check the current view
-	*/
-	TBool IsFullScreenView();       
+     
 private:    
     CAknToolbar* iToolbar;
     TBool iAttributeAvailable;
--- a/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/viewbase/src/glxtoolbarcontroller.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -203,24 +203,6 @@
         {
         EnableLatch( EGlxCmdStartMultipleMarking, ETrue );
         }
-	/* single clk chngs
-	 * check the current view status.
-	 * need to disable upload button in toolbar for grid by default
-	 */
-	if(!IsFullScreenView())
-        {
-        if(aList->SelectionCount() >= 1 )
-            {
-            iToolbar->SetItemDimmed(EGlxCmdUpload,EFalse , ETrue);
-            }
-        else
-            {
-            iToolbar->SetItemDimmed(EGlxCmdUpload,ETrue , ETrue);
-            }    
-        }
-    
-    //DrawNow must be called since SetDimmed does not redraw the toolbar
-    iToolbar->DrawNow();    
     }
 
 //----------------------------------------------------------------------------
@@ -293,13 +275,6 @@
 			iToolbar->SetItemDimmed( EGlxCmdRename, EFalse, ETrue );
 			}    
 		}    
-	/* single clk chngs
-	 * enable/disable upload button as per selection count, only in grid view
-	 */
-	if(aList->SelectionCount()== 0 && !IsFullScreenView())
-	    {
-	    iToolbar->SetItemDimmed(EGlxCmdUpload,ETrue , ETrue);
-	    }
 	
 	//DrawNow must be called since SetDimmed does not redraw the toolbar
 	iToolbar->DrawNow();
@@ -326,42 +301,5 @@
             }
         }
     }
-//----------------------------------------------------------------------------
-// Check for current view mode .Grid/fullscreen/imgviewer
-//----------------------------------------------------------------------------
-//
-TBool CGlxToolbarController::IsFullScreenView()
-    {
-    TBool fullscreenViewingMode = EFalse;
-             
-     CGlxNavigationalState* aNavigationalState = CGlxNavigationalState::InstanceL();
-     CMPXCollectionPath* naviState = aNavigationalState->StateLC();
-     
-     if ( naviState->Levels() >= 1)
-         {
-         if (aNavigationalState->ViewingMode() == NGlxNavigationalState::EBrowse) 
-             {
-             // For image viewer collection, goto view mode
-             if (naviState->Id() == TMPXItemId(KGlxCollectionPluginImageViewerImplementationUid))
-                 {
-                 // current view mode is img vwr
-                 fullscreenViewingMode = ETrue;
-                 }
-             else
-                 {
-                 //current view mode is Grid 
-                 fullscreenViewingMode = EFalse;
-                 }
-             } 
-         else 
-             {
-             //current view mode is Fullscreen
-             fullscreenViewingMode = ETrue;
-             }                
-         }
-     CleanupStack::PopAndDestroy( naviState );
-     aNavigationalState->Close();
-     return fullscreenViewingMode;
-    }
-//end os file
+//end of file
 	
--- a/photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/viewbase/src/glxviewbase.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -41,6 +41,8 @@
 #include <mglxanimation.h>
 #include "glxcommandhandler.h"
 
+#include <aknbutton.h>                      // for getting the button state
+
 _LIT(KGlxViewBaseResource, "glxviewbase.rsc");
 
 /// Length of time a view-switch animation should take
@@ -247,7 +249,6 @@
 	    {
 	    iTitlePane->SetTextL(aTitleText);
 	    }
-	//StatusPane()->MakeVisible(ETrue);
 	}
 
 // -----------------------------------------------------------------------------
@@ -257,7 +258,6 @@
 EXPORT_C void CGlxViewBase::DisableTitle()
 	{
 	TRACER( "CGlxViewBase::DisableTitle" );
-	//StatusPane()->MakeVisible(EFalse);
 	}
 
 // DoActivateL
@@ -474,6 +474,7 @@
     {
     TRACER("CGlxViewBase::SetGridToolBar()");
     iToolbar = aToolbar;
+    iUiUtility->SetGridToolBar(aToolbar);
     }
 // -----------------------------------------------------------------------------
 // GetToolBar
@@ -538,6 +539,21 @@
     CAknToolbar* toolbar = GetToolBar();
     if(toolbar)
         {
+		//Here after the toolbar cmd is processed it is enabled
+		//back. For share the toolbar state should be same as it was 
+		//earlier, so we take the current state and reset back after
+		//the command is processed.
+        CAknButton* uploadButton =
+            static_cast<CAknButton*> (toolbar->ControlOrNull(EGlxCmdUpload));
+        TBool dimmed = EFalse;
+        
+        if(uploadButton)
+            {
+            // Get current button state
+            CAknButtonState* currentState = uploadButton->State();
+            dimmed = uploadButton->IsDimmed();
+            }
+        
         // Deactivate the toolbar. Don't accept the toolbar input when the command
         // execution is already in progress.
         toolbar->SetDimmed(ETrue);
@@ -549,6 +565,11 @@
         // Activate back the toolbar and set it's state properly
         // after command execution.
         SetToolbarStateL();
+        
+        if(dimmed || (aCommand == EGlxCmdStartMultipleMarking))
+            {
+            toolbar->SetItemDimmed(EGlxCmdUpload, ETrue, ETrue);
+            }
         }    
     }
 
--- a/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/zoomview/src/glxzoomcontrol.cpp	Wed Mar 31 21:31:03 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()");
--- a/photosgallery/viewframework/views/zoomview/src/glxzoomeventhandler.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/zoomview/src/glxzoomeventhandler.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -135,7 +135,7 @@
 //----------------------------------------------------------------------------------
 //
 // Todo: Combine logics of setting up animated zoom and pan.
-void CGlxZoomPanEventHandler::SetupAnimatedZoom(TZoomMode aZoomMode, TPoint* aZoomFocus)
+void CGlxZoomPanEventHandler::SetupAnimatedZoom(TZoomMode aZoomMode, TPoint* /*aZoomFocus*/)
     {
     TRACER("CGlxZoomPanEventHandler::SetupAnimatedZoom");
     
@@ -606,7 +606,7 @@
 // HandleGestureReleased
 // -----------------------------------------------------------------------------
 //
-void CGlxZoomPanEventHandler::HandleGestureReleased(const GestureHelper::MGestureEvent& aEvent )
+void CGlxZoomPanEventHandler::HandleGestureReleased(const GestureHelper::MGestureEvent& /*aEvent*/ )
     {
     TRACER("CGlxZoomPanEventHandler::HandleGestureReleasedEvent(const GestureHelper::MGestureEvent& )");
     
@@ -710,7 +710,7 @@
 // HandleDoubleTap
 // -----------------------------------------------------------------------------
 //
-void CGlxZoomPanEventHandler::HandleDoubleTap(const GestureHelper::MGestureEvent& aEvent )
+void CGlxZoomPanEventHandler::HandleDoubleTap(const GestureHelper::MGestureEvent& /*aEvent*/ )
     {
     TRACER("CGlxZoomControl::HandleDoubleTap(GestureHelper::MGestureEvent&)");
 
@@ -727,7 +727,7 @@
 // HandleSingleTap
 // -----------------------------------------------------------------------------
 //
-void CGlxZoomPanEventHandler::HandleSingleTap(const GestureHelper::MGestureEvent& aEvent )
+void CGlxZoomPanEventHandler::HandleSingleTap(const GestureHelper::MGestureEvent& /*aEvent*/ )
     {
     TRACER("CGlxZoomControl::HandleSingleTap(GestureHelper::MGestureEvent&)");
 
@@ -1151,6 +1151,5 @@
 void CGlxZoomPanEventHandler::HandleMultiTouchReleased()
     {
     TRACER("CGlxZoomPanEventHandler::HandleMultiTouchReleased");
-
-//    ShowScreenFurniture(KGlxScreenTimeout);
+    //Do nothing
     }
--- a/photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/views/zoomview/src/glxzoommathsengine.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -47,7 +47,7 @@
 void TGlxZoomAndPanMathsEngine::Initialize(TPoint& aCenter, 
         TSize& aScreenSize, 
         TSize& aImageSize,
-        TSize& aOriginalZoomedDimensions,
+        TSize& /*aOriginalZoomedDimensions*/,
         TUint8 aInitialZoomRatio)
     {
     TRACER("void TGlxZoomAndPanMathsEngine::Initialize()");
@@ -233,8 +233,8 @@
     imageDimension.iWidth =  (imageDimension.iWidth  * newZoomRatio)/100;
     imageDimension.iHeight = (imageDimension.iHeight * newZoomRatio)/100;
     
-    // Is image size bigger than screen size AND image is panned to such an extent that 
-    // the an edge of the image comes within the screen rectange? If so go ahead,   
+    // Check if image size is bigger than screen size AND image is panned to such an extent that 
+    // the an edge of the image comes within the screen rectange. If so go ahead,   
     // for everything else there is mastercard. I mean the else condition below. 
     // [TODO] The master card however needs more simplification. 
     if(
@@ -392,7 +392,7 @@
 // UpdatePanFactor: Calculates the Pan Factor based on time the key was pressed
 //-------------------------------------------------------------------------------------
 //
-void TGlxZoomAndPanMathsEngine::UpdatePanFactor(TTime& aPanTime)
+void TGlxZoomAndPanMathsEngine::UpdatePanFactor(TTime& /*aPanTime*/)
     {
     TRACER("void TGlxZoomAndPanMathsEngine::UpdatePanFactor()");
     
--- a/photosgallery/viewframework/visuallistmanager/inc/glxitemvisual.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/visuallistmanager/inc/glxitemvisual.h	Wed Mar 31 21:31:03 2010 +0300
@@ -57,7 +57,7 @@
 #include "glxiconmgrdefs.h"
 
 class MGlxVisualObjectStatusObserver;
-class MGlxVisualObjectLayoutRefreshObserver;
+
 /**
  * MGlxVisualObjectParameterFactory
  * Interface for the CGlxVisualObject
@@ -255,16 +255,6 @@
         TBool SetObserver( MGlxVisualObjectStatusObserver& aObserver );
         
         
-        /**
-        * Set observer to be notified when the thumbnail texture gains or
-        * loses content.
-        * @param aObserver Observer for the thumbnail status.
-        * @return Whether the thumbnail texture currently has content.
-        */
-        void AddObserver( MGlxVisualObjectLayoutRefreshObserver* aObserver );
-        
-        void RemoveObserver( MGlxVisualObjectLayoutRefreshObserver* aObserver );
-		
 		void Reset();
 		void ResetLayout( CAlfVisual& aVisual );
 		
@@ -476,10 +466,6 @@
         
         // The id of the zoom texture from the texture manager
         TInt iZoomTextureId;
-        
-        /** Array of observers (owned) */
-        RPointerArray<MGlxVisualObjectLayoutRefreshObserver> iObservers;
-
     };
 
 #endif // C_GLXITEMVISUAL_H
--- a/photosgallery/viewframework/visuallistmanager/inc/glxvisuallistcontrol.h	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/visuallistmanager/inc/glxvisuallistcontrol.h	Wed Mar 31 21:31:03 2010 +0300
@@ -35,12 +35,9 @@
 #include "mglxmedialistobserver.h"
 #include "mglxmedialist.h"
 #include "glxlistwindow.h"
-#include "glxblendlayout.h"
-#include "mglxvisualobjectlayoutrefreshobserver.h"
 #include "mglxvisuallist.h"
 
 class CGlxVisualListWindow;
-//class MGlxLayout;
 class MGlxVisualListObserver;
 class CAlfBorderBrush;
 class CGlxUiUtility;
@@ -56,7 +53,7 @@
  * @author Aki Vanhatalo
  */
 class CGlxVisualListControl : public CAlfControl, public MGlxVisualList, 
-		public MGlxMediaListObserver//, public MGlxVisualObjectLayoutRefreshObserver
+		public MGlxMediaListObserver
     {
     friend class CGlxVisualListWindow;    
 public:
@@ -136,12 +133,7 @@
     	void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList);
     	void HandleMessageL(const CMPXMessage& aMessage, MGlxMediaList* aList);
 
-// From MHuiDisplayRefreshObserver
-//	void NotifyDisplayRefreshStarted( CHuiDisplay &aDisplay );
 
-    //From 
-    
-     void VisualObjectLayoutRefreshed(TInt aListIndex ,TSize aScreenSize );
     /**
      * @return The thumbnail scale mode of list
      */
@@ -191,10 +183,11 @@
         void VisualLayoutUpdated( CAlfVisual& aVisual );
 	
 private:
-        /** The media list (not owned) */
-        MGlxMediaList& iMediaList;
-        /** The alf env (not owned) */
-        CAlfEnv& iEnv;
+    /** The media list (not owned) */
+    MGlxMediaList& iMediaList;
+    /** The alf env (not owned) */
+    CAlfEnv& iEnv;
+    
     /**
      * Structure to hold information about a view context.
      */
@@ -222,17 +215,14 @@
     TInt iControlGroupId;
 
     /** Parent layout for the visuals (owned by HUI) */
-        CAlfAnchorLayout* iParentLayout;
+    CAlfAnchorLayout* iParentLayout;
     
     /** Current Size of the Parent Layout */
     TSize iCurrentLayoutSize;
-   // TGlxBlendLayout iLayoutBlender;
+
     /** Ref: UI utility */
     CGlxUiUtility*  iUiUtility;	
 
-    /** Blender of multiple MGlxLayouts */
-    //MGlxLayout* iLayout;
-
     /** Array of view contexts (owned) */
     RArray<TContext> iContexts;
 
--- a/photosgallery/viewframework/visuallistmanager/inc/mglxvisualobjectlayoutrefreshobserver.h	Mon Mar 15 12:40:30 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-/*
-* 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"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:    Item visual container
-*
-*/
-
-
-
-
-
-
-//NONSHARABLE_CLASS ( MGlxVisualObjectLayoutRefreshObserver )
-//    {
-//    public:
-//      virtual void VisualObjectLayoutRefreshed(TInt aListIndex ,TSize aScreenSize )=0;
-//    };
\ No newline at end of file
--- a/photosgallery/viewframework/visuallistmanager/src/glxiconmanager.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/visuallistmanager/src/glxiconmanager.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -62,11 +62,11 @@
 	{
 	TRACER("CGlxIconManager::~CGlxIconManager");
 	GLX_LOG_INFO("CGlxIconManager::~CGlxIconManager");
+
 	if(iUiUtility)
 		{
         iUiUtility->Close();
         }
-                
     
     // remove brushes we've added to visuals in visual list
     TInt mcount = iMediaList.Count();
@@ -142,11 +142,7 @@
     CleanupStack::PushL(imageBrush);
     
     imageBrush->SetLayer(EAlfBrushLayerForeground);
-
-    /// @todo Remove these 2 lines when Hui fixes the image brush rendering bug
     imageBrush->SetBorders(-1,-1,-1,-1);
-   // imageBrush->SetClipToVisual(ETrue);
-    
     iImageBrushArray.AppendL(imageBrush);
     CleanupStack::Pop(imageBrush);
 	}
@@ -168,10 +164,7 @@
     CleanupStack::PushL(imageBrush);
     
     imageBrush->SetLayer( EAlfBrushLayerForeground );
-
-    /// @todo Remove these 2 lines when Hui fixes the image brush rendering bug
     imageBrush->SetBorders(-1,-1,-1,-1);
-   // imageBrush->SetClipToVisual(ETrue);
     
     TAlfTimedValue opacity( aParams.iOpacity, 0 ); 
     imageBrush->SetOpacity( opacity );
@@ -208,7 +201,6 @@
 		    aVisual->EnableBrushesL();	
 	        aVisual->Brushes()->AppendL(iImageBrushArray[aBrushIndex],
 	                                        EAlfDoesNotHaveOwnership );	
-           // aVisual->SetChanged();	                                        	
 		    }
 		}
 	}
@@ -246,7 +238,6 @@
     			if(brush==iImageBrushArray[aIconIndex])
     				{
     				brushArray->Remove(i);
-    			//	aVisual->SetChanged();
     				break;
     				}
     			}
--- a/photosgallery/viewframework/visuallistmanager/src/glxitemvisual.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/visuallistmanager/src/glxitemvisual.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -49,10 +49,8 @@
 #include <glxthumbnailutility.h>
 #include <alf/alftransformation.h>
 #include "mglxvisualobjectstatusobserver.h"
-#include "mglxvisualobjectlayoutrefreshobserver.h"
 
 const TInt KGlxOpacityFadeDuration = 400;
-
 const TInt KGlxForegroundAnchorOrdinal = 2;
 
 // -----------------------------------------------------------------------------
@@ -107,7 +105,6 @@
         {
         iUiUtility->Close();
         }
-    iObservers.Close();
     }
 
 // -----------------------------------------------------------------------------
@@ -137,7 +134,6 @@
     // create the child image visual
     iImageVisual = 
         CAlfImageVisual::AddNewL( aFactory.VisualOwner(), iMainVisual );
-    //iImageVisual->SetScaleMode( aFactory.ThumbnailScaleMode() );
 	iImageVisual->SetScaleMode(CAlfImageVisual::EScaleNormal);
     // Turn on clipping only if cover-mode has been chosen
     iImageVisual->SetClipping(ETrue);
@@ -286,7 +282,7 @@
 //
 void CGlxVisualObject::HandleAttributesAvailableL(
     const TGlxIdSpaceId& aIdSpaceId, const TGlxMedia& aItem,
-    const RArray<TMPXAttribute>& aAttributes)
+    const RArray<TMPXAttribute>& /*aAttributes*/)
     {
     TRACER("CGlxVisualObject::HandleAttributesAvailableL");
     TBool animate = ( EHasDefaultIcon == Status() );
@@ -500,8 +496,8 @@
 // ---------------------------------------------------------------------------
 //
 TInt CGlxVisualObject::AddZoomTileL(
-                    const TGlxMedia& aItem, const TMPXAttribute& aAttribute,
-                    TGlxIdSpaceId aIdSpaceId, const TRect& aCroppingRect )
+                    const TGlxMedia& /*aItem*/, const TMPXAttribute& aAttribute,
+                    TGlxIdSpaceId /*aIdSpaceId*/, const TRect& aCroppingRect )
     {
     TRACER("CGlxVisualObject::AddZoomTileL");
     // Reserve space for new tile
@@ -1041,24 +1037,4 @@
     TRACER("CGlxVisualObject::Match");
     return ( aIcon1.iTexture == aIcon2.iTexture );
     }
-    
-void CGlxVisualObject::AddObserver( MGlxVisualObjectLayoutRefreshObserver* aObserver ) 
-    {
-    TRACER("CGlxVisualObject::AddObserver");
-    	__ASSERT_DEBUG(iObservers.Find(aObserver) == KErrNotFound, 
-	                    Panic(EGlxPanicIllegalArgument)); // Already exists
-	iObservers.Append(aObserver);
-    }
-    
-void CGlxVisualObject::RemoveObserver( MGlxVisualObjectLayoutRefreshObserver* aObserver )
-    {
-    TRACER("CGlxVisualObject::RemoveObserver");
-    TInt i = iObservers.Find(aObserver);
-    if (i != KErrNotFound)
-        {
-        iObservers.Remove(i);
-        }
-    }
-    
- 
- 
+
--- a/photosgallery/viewframework/visuallistmanager/src/glxvisualiconmanager.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/visuallistmanager/src/glxvisualiconmanager.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -108,8 +108,8 @@
 // HandleVisualAddedL
 // ---------------------------------------------------------------------------
 //
-void CGlxVisualIconManager::HandleVisualAddedL( CAlfVisual* aVisual, 
-    TInt aIndex, MGlxVisualList* aList )
+void CGlxVisualIconManager::HandleVisualAddedL( CAlfVisual* /*aVisual*/, 
+    TInt aIndex, MGlxVisualList* /*aList*/ )
     {
     TRACER("CGlxVisualIconManager::HandleVisualAddedL");
     GLX_LOG_INFO("CGlxVisualIconManager::HandleVisualAddedL");
@@ -190,9 +190,6 @@
 	GLX_LOG_INFO("CGlxVisualIconManager::ConstructL");
 	BaseConstructL();
 	
-    //iWhiteTexture = 
-       // &( iTextureManager.CreateFlatColourTextureL( KRgbWhite ) );
-
 	// create 'default' icon
     TFileName resFile(KDC_APP_BITMAP_DIR);
     resFile.Append(KGlxIconsFilename);
@@ -283,9 +280,6 @@
                     {
                     iconTexture = iIconTextureArray[pos];
                     }
-                // add to visual
-				//@Migration info: Required?
-                //visItem->SetImage( THuiImage( *iconTexture ) );
                 }
             else
                 {
@@ -301,7 +295,6 @@
                 // add to visual
                 visItem->AddIconL( *iconTexture, NGlxIconMgrDefs::EGlxIconCentred,
                                     ETrue, EFalse, 0, 1.0, 1.0 );
-               // }
             }
         }
     }
--- a/photosgallery/viewframework/visuallistmanager/src/glxvisuallistcontrol.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/visuallistmanager/src/glxvisuallistcontrol.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -122,8 +122,6 @@
     // create the visual list window
     iVisualWindow = CGlxVisualListWindow::NewL(this,&iMediaList, iUiUtility, iScaleMode);
     
-    //@todo below method not found    
-    //iVisualWindow->SetOwnsObjects( ETrue );   
 	iControlGroupId = reinterpret_cast<int>((void*)this);   // @todo: Temp, have better logic for control group ids
 	iControlGroup = &Env().NewControlGroupL(iControlGroupId);
 	iControlGroup->AppendL(this);
@@ -416,8 +414,7 @@
 //
 void CGlxVisualListControl::AddLayoutL(MGlxLayout* /*aLayout*/)
 	{
-	// add the layout to the blender
-	//iLayoutBlender.AddLayoutL( aLayout );
+	// No implementation
 	}
 	
 // -----------------------------------------------------------------------------
@@ -426,8 +423,7 @@
 //
 void CGlxVisualListControl::RemoveLayout(const MGlxLayout* /*aLayout*/)
 	{
-	// remove layout
-	//iLayoutBlender.RemoveLayout( aLayout );
+	// No implementation
 	}
 
 // BringVisualsToFront
@@ -562,7 +558,6 @@
             {
             indexesMoved += ItemCount();
             }
-        //speed = indexesMoved / elapsed;		
         }
 
 	TInt count = iObservers.Count();
@@ -666,7 +661,6 @@
 	{
 	TRACER("CGlxVisualListControl::HandleVisualAddedL");
 	GLX_LOG_INFO("CGlxVisualListControl::HandleVisualAddedL");
-	//iVisualWindow->ObjectByIndex(aIndex)->AddObserver(this);
 	TInt count = iObservers.Count();
 	for (TInt i = 0; i < count; i++)
 		{
@@ -685,7 +679,6 @@
     CGlxVisualObject* visualObject = iVisualWindow->ObjectByIndex( aIndex );
     if ( visualObject )
         {
-        //iVisualWindow->ObjectByIndex(aIndex)->RemoveObserver(this);
         if( aAnimate )
             {
             visualObject->TryAnimateL( iMediaList.Item( aIndex ) );
@@ -789,14 +782,3 @@
         }
     }
 
-// -----------------------------------------------------------------------------
-// VisualObjectLayoutRefreshed
-// -----------------------------------------------------------------------------
-//
-void CGlxVisualListControl::VisualObjectLayoutRefreshed(TInt aListIndex ,TSize /*aScreensize*/)
-    {
-    TRACER("CGlxVisualListControl::VisualObjectLayoutRefreshed");
-    GLX_LOG_INFO("CGlxVisualListControl::VisualObjectLayoutRefreshed");
-     iLayoutObserver->UpdateLayout( * ( Visual ( aListIndex ) ) );
-    }
-
--- a/photosgallery/viewframework/visuallistmanager/src/glxvisuallistwindow.cpp	Mon Mar 15 12:40:30 2010 +0200
+++ b/photosgallery/viewframework/visuallistmanager/src/glxvisuallistwindow.cpp	Wed Mar 31 21:31:03 2010 +0300
@@ -109,9 +109,6 @@
     // No easy way to get rid of this trap. Would be possible to do
     // multiple objects within the same trap by modifying the CGlxListWindowBase
     // but would be surprising if this TRAP is a actually a performance problem
-
-    // create texture from thumbnail 
-    //TSize visSize = object.Visual()->Size().ValueNow().AsSize();
 	TSize visSize =iUiUtility->DisplaySize();
     
     CAlfTexture* texture = NULL; 
@@ -138,11 +135,16 @@
 	iMediaList->Item( aIndex ).GetDimensions(imageSize);	
     // Set scale mode to EScaleFitInside if the Image is bigger then screen
     // or to scale the grid size thumbnails if full thumbnail is not available while fast swipe
-	if ( imageSize.iWidth >= visSize.iWidth || imageSize.iHeight >= visSize.iHeight 
+	if ( (imageSize.iWidth >= visSize.iWidth || imageSize.iHeight >= visSize.iHeight)
 			||(texture->Size().iHeight < imageSize.iHeight  && texture->Size().iWidth < imageSize.iWidth ))
 		{
 		object.SetScaleMode(CAlfImageVisual::EScaleFitInside);		
 		}		
+	//this will keep the image back to its normal size if the condition is not satsified.
+	else
+		{
+		object.SetScaleMode(CAlfImageVisual::EScaleNormal);
+		}
 			    
     // show the object. do this before notifying control, to show
     // at the image if control leaves
@@ -152,7 +154,7 @@
     iControl->HandleVisualAddedL( object.Visual(), aIndex );
     }
 
- void CGlxVisualListWindow::CleanupObject(TInt aListIndex, CBase& aObject) 
+ void CGlxVisualListWindow::CleanupObject(TInt /*aListIndex*/, CBase& aObject) 
 	{
 	TRACER("CGlxVisualListWindow::CleanupObject");
     GLX_LOG_INFO("CGlxVisualListWindow::CleanupObject");
@@ -193,23 +195,8 @@
 // -----------------------------------------------------------------------------
 // PostObjectsAdded
 // -----------------------------------------------------------------------------	
-void CGlxVisualListWindow::PostObjectsAdded( RArray<TInt>& aAddedAtListIndexes )	
+void CGlxVisualListWindow::PostObjectsAdded( RArray<TInt>& /*aAddedAtListIndexes*/ )
     {
-    /*
-   TInt count = aAddedAtListIndexes.Count();
-    // step through array and notify our observers
-    // cant leave so need to just ignore the error
-    TRAP_IGNORE( 
-        {
-        for(TInt i = 0; i < count; i++ )
-            {
-            TInt listIdx = aAddedAtListIndexes[i];
-            //TInt idx =  ListIndexToWindowIndex( listIdx );
-            //CGlxVisualObject* item = ObjectByIndex( idx);
-    	    //iControl->HandleVisualAddedL( item->Visual(), listIdx );
-            }
-        }); 
-       */
     }
 
 // -----------------------------------------------------------------------------