201039_01 PDK_4.0.a
authorhgs
Wed, 06 Oct 2010 14:49:39 +0530
changeset 71 27f2d7aec52a
parent 69 45459746d5e8
child 72 0a8e959402e5
201039_01
data/listview.docml
engine/collectionframework/datasource/manager/group/glxdatasourcemanager.mmp
engine/collectionframework/datasource/plugins/glxdatasourcemde/data/20000A16.rss
engine/collectionframework/datasource/plugins/glxdatasourcemde/group/bld.inf
engine/collectionframework/datasource/plugins/glxdatasourcemde/group/glxdatasourcemde.mmp
engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcemde.h
engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcemde.hrh
engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcemde.inl
engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmde.h
engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeattribute.h
engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdecommand.h
engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeidlist.h
engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdethumbnail.h
engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemde.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemdeproxy.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeattribute.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdecommand.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeidlist.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdethumbnail.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/group/glxdatasourcemde.mmp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcemds.h
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcemds.inl
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmds.h
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdscommand.h
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsidlist.h
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxtnfileinfo.h
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxtnfileinfo.inl
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxtnthumbnailrequest.h
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxtnthumbnailrequest.inl
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxtnfileinfo.cpp
engine/collectionframework/datasource/plugins/group/bld.inf
engine/collectionframework/group/bld.inf
engine/collectionframework/plugins/glxcollectionpluginall/group/glxcollectionpluginall.mmp
engine/collectionframework/plugins/glxcollectionplugincamera/group/glxcollectionplugincamera.mmp
engine/collectionframework/plugins/glxcollectionplugincamera/src/glxcollectionplugincamera.cpp
engine/collectionframework/plugins/glxcollectionplugindownloads/group/glxcollectionplugindownloads.mmp
engine/collectionframework/plugins/glxcollectionpluginmonths/group/glxcollectionpluginmonths.mmp
engine/collectionframework/plugins/tagcollectionplugin/group/glxcollectionplugintags.mmp
engine/collectionframework/thumbnailcreator/Cenrep/02000A09.cre
engine/collectionframework/thumbnailcreator/Cenrep/02000A09.txt
engine/collectionframework/thumbnailcreator/Cenrep/keys_thumbnailcreator.xls
engine/collectionframework/thumbnailcreator/bwins/glxthumbnailcreatoru.def
engine/collectionframework/thumbnailcreator/conf/thumbnailcreator.confml
engine/collectionframework/thumbnailcreator/conf/thumbnailcreator_02000A09.crml
engine/collectionframework/thumbnailcreator/eabi/glxthumbnailcreatoru.def
engine/collectionframework/thumbnailcreator/group/bld.inf
engine/collectionframework/thumbnailcreator/group/create-ut_cglxtngeneratethumbnailtask-sis.bat
engine/collectionframework/thumbnailcreator/group/create-ut_cglxtnquickthumbnailtask-sis.bat
engine/collectionframework/thumbnailcreator/group/glxthumbnailcreator.mmp
engine/collectionframework/thumbnailcreator/group/ut_cglxtngeneratethumbnailtask.pkg
engine/collectionframework/thumbnailcreator/group/ut_cglxtnquickthumbnailtask.pkg
engine/collectionframework/thumbnailcreator/inc/glxtnbackgroundgenerationtask.h
engine/collectionframework/thumbnailcreator/inc/glxtncleanuptask.h
engine/collectionframework/thumbnailcreator/inc/glxtndatabase.h
engine/collectionframework/thumbnailcreator/inc/glxtndeletethumbnailstask.h
engine/collectionframework/thumbnailcreator/inc/glxtnfileinfo.h
engine/collectionframework/thumbnailcreator/inc/glxtnfileinfo.inl
engine/collectionframework/thumbnailcreator/inc/glxtnfileutility.h
engine/collectionframework/thumbnailcreator/inc/glxtnfilteravailabletask.h
engine/collectionframework/thumbnailcreator/inc/glxtngeneratethumbnailtask.h
engine/collectionframework/thumbnailcreator/inc/glxtnimagedecoderfactory.h
engine/collectionframework/thumbnailcreator/inc/glxtnimageutility.h
engine/collectionframework/thumbnailcreator/inc/glxtnloadthumbnailtask.h
engine/collectionframework/thumbnailcreator/inc/glxtnquickthumbnailtask.h
engine/collectionframework/thumbnailcreator/inc/glxtnsavethumbnailtask.h
engine/collectionframework/thumbnailcreator/inc/glxtnstd.h
engine/collectionframework/thumbnailcreator/inc/glxtntask.h
engine/collectionframework/thumbnailcreator/inc/glxtntask.inl
engine/collectionframework/thumbnailcreator/inc/glxtntaskmanager.h
engine/collectionframework/thumbnailcreator/inc/glxtnthumbnailcreator.h
engine/collectionframework/thumbnailcreator/inc/glxtnthumbnailrequest.h
engine/collectionframework/thumbnailcreator/inc/glxtnthumbnailrequest.inl
engine/collectionframework/thumbnailcreator/inc/glxtnvideoutility.h
engine/collectionframework/thumbnailcreator/inc/glxtnvolumedatabase.h
engine/collectionframework/thumbnailcreator/inc/glxtnzoomedimagetask.h
engine/collectionframework/thumbnailcreator/inc/mglxtnstorage.h
engine/collectionframework/thumbnailcreator/inc/mglxtnthumbnailcreatorclient.h
engine/collectionframework/thumbnailcreator/inc/mglxtnvolumedatabaseobserver.h
engine/collectionframework/thumbnailcreator/src/glxtnbackgroundgenerationtask.cpp
engine/collectionframework/thumbnailcreator/src/glxtncleanuptask.cpp
engine/collectionframework/thumbnailcreator/src/glxtndatabase.cpp
engine/collectionframework/thumbnailcreator/src/glxtndeletethumbnailstask.cpp
engine/collectionframework/thumbnailcreator/src/glxtnfileinfo.cpp
engine/collectionframework/thumbnailcreator/src/glxtnfileutility.cpp
engine/collectionframework/thumbnailcreator/src/glxtnfilteravailabletask.cpp
engine/collectionframework/thumbnailcreator/src/glxtngeneratethumbnailtask.cpp
engine/collectionframework/thumbnailcreator/src/glxtnimagedecoderfactory.cpp
engine/collectionframework/thumbnailcreator/src/glxtnimageutility.cpp
engine/collectionframework/thumbnailcreator/src/glxtnloadthumbnailtask.cpp
engine/collectionframework/thumbnailcreator/src/glxtnquickthumbnailtask.cpp
engine/collectionframework/thumbnailcreator/src/glxtnsavethumbnailtask.cpp
engine/collectionframework/thumbnailcreator/src/glxtntask.cpp
engine/collectionframework/thumbnailcreator/src/glxtntaskmanager.cpp
engine/collectionframework/thumbnailcreator/src/glxtnthumbnailcreator.cpp
engine/collectionframework/thumbnailcreator/src/glxtnvideoutility.cpp
engine/collectionframework/thumbnailcreator/src/glxtnvolumedatabase.cpp
engine/collectionframework/thumbnailcreator/src/glxtnzoomedimagetask.cpp
engine/collectionframework/thumbnailcreator/test/BMARM/ut_cglxtndeletethumbnailstasku.def
engine/collectionframework/thumbnailcreator/test/BMARM/ut_cglxtnfilteravailabletasku.def
engine/collectionframework/thumbnailcreator/test/BMARM/ut_cglxtngeneratethumbnailtasku.def
engine/collectionframework/thumbnailcreator/test/BMARM/ut_cglxtnquickthumbnailtasku.def
engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtndeletethumbnailstasku.def
engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtnfilteravailabletasku.def
engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtngeneratethumbnailtasku.def
engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtnquickthumbnailtasku.def
engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtnzoomedimagetasku.def
engine/collectionframework/thumbnailcreator/test/data/corrupt.jpg
engine/collectionframework/thumbnailcreator/test/data/red_1x1.jpg
engine/collectionframework/thumbnailcreator/test/data/tall.jpg
engine/collectionframework/thumbnailcreator/test/data/wide.jpg
engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtndeletethumbnailstasku.def
engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtnfilteravailabletasku.def
engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtngeneratethumbnailtasku.def
engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtnquickthumbnailtasku.def
engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtnzoomedimagetasku.def
engine/collectionframework/thumbnailcreator/test/group/ut_cglxtndeletethumbnailstask.mmp
engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnfilteravailabletask.mmp
engine/collectionframework/thumbnailcreator/test/group/ut_cglxtngeneratethumbnailtask.mmp
engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnquickthumbnailtask.mmp
engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnzoomedimagetask.mmp
engine/collectionframework/thumbnailcreator/test/inc/dummytaskmanager.h
engine/collectionframework/thumbnailcreator/test/stubs/glxadisstub.cpp
engine/collectionframework/thumbnailcreator/test/stubs/glxtnfileutilitystub.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtndeletethumbnailstask/ut_cglxtndeletethumbnailstask.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtndeletethumbnailstask/ut_cglxtndeletethumbnailstask.h
engine/collectionframework/thumbnailcreator/test/ut_cglxtndeletethumbnailstask/ut_cglxtndeletethumbnailstaskdllmain.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtnfilteravailabletask/ut_cglxtnfilteravailabletask.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtnfilteravailabletask/ut_cglxtnfilteravailabletask.h
engine/collectionframework/thumbnailcreator/test/ut_cglxtnfilteravailabletask/ut_cglxtnfilteravailabletaskdllmain.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtngeneratethumbnailtask/ut_cglxtngeneratethumbnailtask.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtngeneratethumbnailtask/ut_cglxtngeneratethumbnailtask.h
engine/collectionframework/thumbnailcreator/test/ut_cglxtngeneratethumbnailtask/ut_cglxtngeneratethumbnailtaskdllmain.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtnquickthumbnailtask/ut_cglxtnquickthumbnailtask.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtnquickthumbnailtask/ut_cglxtnquickthumbnailtask.h
engine/collectionframework/thumbnailcreator/test/ut_cglxtnquickthumbnailtask/ut_cglxtnquickthumbnailtaskdllmain.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtnzoomedimagetask/ut_cglxtnzoomedimagetask.cpp
engine/collectionframework/thumbnailcreator/test/ut_cglxtnzoomedimagetask/ut_cglxtnzoomedimagetask.h
engine/collectionframework/thumbnailcreator/test/ut_cglxtnzoomedimagetask/ut_cglxtnzoomedimagetaskdllmain.cpp
engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/200071D4.rss
engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.cpp
engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.h
engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.hrh
engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.mmp
engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerpluginproxy.cpp
inc/glxlocalisationstrings.h
main/glxaiwservicehandler.cpp
main/glxaiwservicehandler.h
main/service_conf.xml
package_definition.xml
tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.cpp
tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.h
tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.pro
tsrc/unittest/unittest_mediamodel/unittest_mediamodel.pro
tsrc/unittest/unittest_statehandler/unittest_statehandler.cpp
ui/inc/glxcommandhandlers.hrh
ui/inc/glxdocloaderdefs.h
ui/inc/glxicondefs.h
ui/inc/glxviewids.h
ui/uiengine/medialistwrapper/inc/glxmlwrapper.h
ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h
ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp
ui/uiengine/model/bwins/glxmediamodelu.def
ui/uiengine/model/eabi/glxmediamodelu.def
ui/uiengine/model/mediamodel/inc/glxmediamodel.h
ui/uiengine/model/mediamodel/src/glxmediamodel.cpp
ui/viewmanagement/bwins/glxstatehandleru.def
ui/viewmanagement/bwins/glxviewmanageru.def
ui/viewmanagement/eabi/glxstatehandleru.def
ui/viewmanagement/eabi/glxviewmanageru.def
ui/viewmanagement/statehandler/inc/glxbasestate.h
ui/viewmanagement/statehandler/inc/glxgridstate.h
ui/viewmanagement/statehandler/inc/glxstatemanager.h
ui/viewmanagement/statehandler/src/glxgridstate.cpp
ui/viewmanagement/statehandler/src/glxslideshowsettingsstate.cpp
ui/viewmanagement/statehandler/src/glxstatemanager.cpp
ui/viewmanagement/statehandler/statehandler.pro
ui/viewmanagement/viewmanager/inc/glxviewmanager.h
ui/viewmanagement/viewmanager/src/glxmenumanager.cpp
ui/viewmanagement/viewmanager/src/glxviewmanager.cpp
ui/views/detailsview/inc/glxdetailsviewitemprototype.h
ui/views/detailsview/src/glxdetailsview.cpp
ui/views/detailsview/src/glxdetailsviewitemprototype.cpp
ui/views/detailsview/src/glxdetailsviewmodelwrapper.cpp
ui/views/fullscreenview/inc/glxcoverflow.h
ui/views/fullscreenview/src/glxcoverflow.cpp
ui/views/fullscreenview/src/glxfullscreenview.cpp
ui/views/gridview/src/glxgridview.cpp
ui/views/listview/inc/glxlistview.h
ui/views/listview/src/glxlistview.cpp
ui/views/slideshowsettingsview/inc/glxslideshowsettingsview.h
ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp
ui/views/slideshowview/src/glxslideshowwidget.cpp
ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp
--- a/data/listview.docml	Mon Sep 27 15:13:20 2010 +0530
+++ b/data/listview.docml	Wed Oct 06 14:49:39 2010 +0530
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
+<hbdocument version="1.2">
     <widget name="glxlistview" type="HbView">
         <widget name="content" role="HbView:widget" type="HbWidget">
             <widget name="listview" type="HbListView">
-                <widget name="prototype" role="HbListView:prototype" type="HbListViewItem">
+                <widget name="prototype" role="HbAbstractView:prototype" type="HbListViewItem">
                     <enums name="graphicsSize" value="Thumbnail"/>
                     <string name="state" value="normal"/>
                 </widget>
@@ -15,17 +15,25 @@
                 <bool name="frictionEnabled" value="TRUE"/>
                 <enums name="clampingStyle" value="BounceBackClamping"/>
             </widget>
+            <widget name="albumCount" type="HbGroupBox">
+                <sizehint type="PREFERRED" width="25un"/>
+                <bool name="collapsable" value="FALSE"/>
+                <string name="heading"/>
+            </widget>
             <layout type="anchor">
-                <anchoritem dst="listview" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="listview" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-                <anchoritem dst="listview" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
-                <anchoritem dst="listview" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="listview" dstEdge="LEFT" src="" srcEdge="LEFT"/>
+                <anchoritem dst="listview" dstEdge="RIGHT" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="listview" dstEdge="BOTTOM" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="listview" dstEdge="TOP" prefLength="4.7un" src="" srcEdge="TOP"/>
+                <anchoritem dst="albumCount" dstEdge="LEFT" src="" srcEdge="LEFT"/>
+                <anchoritem dst="albumCount" dstEdge="TOP" src="" srcEdge="TOP"/>
+                <anchoritem direction="NEGATIVE" dst="albumCount" dstEdge="RIGHT" src="" srcEdge="RIGHT"/>
             </layout>
         </widget>
         <string name="title" value="Photos"/>
         <bool name="contentFullScreen" value="FALSE"/>
     </widget>
-    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+    <metadata activeUIState="Common ui state" display="NHD-3.2-inch_portrait" unit="un">
         <uistate name="Common ui state" sections="#common"/>
         <dummydata objectName="listview" section="#common" value="0"/>
     </metadata>
--- a/engine/collectionframework/datasource/manager/group/glxdatasourcemanager.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/manager/group/glxdatasourcemanager.mmp	Wed Oct 06 14:49:39 2010 +0530
@@ -48,7 +48,7 @@
 // System includes from the source tree
 SYSTEMINCLUDE   ../../../../../commonutilities/common/inc
 SYSTEMINCLUDE   ../../../../../inc
-SYSTEMINCLUDE   ../../../thumbnailcreator/inc
+SYSTEMINCLUDE  ../../plugins/glxdatasourcemde2.5/inc
 SYSTEMINCLUDE	/epoc32/include/mw/hb/hbcore
 
 
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/data/20000A16.rss	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2006 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 "glxdatasourcemde.hrh"
-
-RESOURCE REGISTRY_INFO theInfo
-    {
-    dll_uid = KGlxDataSourceMdePluginDllUid;
-
-    interfaces =
-        {
-        INTERFACE_INFO
-            {
-            interface_uid = 0x20000A0F; // KGlxDataSourceInterfaceUid
-            implementations =
-                {
-                IMPLEMENTATION_INFO
-                    {
-                    implementation_uid = KGlxDataSourceMdeImplementationUid;
-                    version_no = 1;
-                    display_name = "";
-                    default_data = "";
-                    opaque_data = "";
-                    }
-                };
-            }
-        };
-    }
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/group/bld.inf	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-/*
-* Copyright (c) 2006 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 glxcollectionpluginbase.
-*
-*/
-
-
-
-PRJ_MMPFILES
-glxdatasourcemde.mmp
\ No newline at end of file
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/group/glxdatasourcemde.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
-* Copyright (c) 2006 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 glxdatasourcemanager.
-*
-*/
-
-
-
-/**
- * @internal reviewed 11/07/2007 by M Byrne
- */
-
-#include   <bldvariant.hrh>
-#include  <data_caging_paths.hrh>
-#include  <platform_paths.hrh>   //APP_LAYER_SYSTEMINCLUDE
-
-#include "../../../../../../group/glxbuildcommon.mmh"
-
-
-TARGET          glxdatasourcemde.dll
-TARGETTYPE      PLUGIN
-UID             0x10009D8D 0x20000A16
-
-#ifndef WINSCW
-EPOCALLOWDLLDATA
-#endif 
-CAPABILITY      CAP_ECOM_PLUGIN
-
-SOURCEPATH      ../src
-SOURCE          glxdatasourcemde.cpp
-SOURCE          glxdatasourcemdeproxy.cpp
-SOURCE          glxdatasourcetaskmde.cpp
-SOURCE          glxdatasourcetaskmdeattribute.cpp
-SOURCE          glxdatasourcetaskmdecommand.cpp
-SOURCE          glxdatasourcetaskmdeidlist.cpp
-SOURCE          glxdatasourcetaskmdethumbnail.cpp
-
-// System includes from the source tree
-SYSTEMINCLUDE   ../../../../../../commonutilities/common/inc
-SYSTEMINCLUDE   ../../../../../../inc
-SYSTEMINCLUDE   ../../../../thumbnailcreator/inc
-SYSTEMINCLUDE   ../../../manager/inc
-SYSTEMINCLUDE   ../inc
-
-// System includes from epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE   /epoc32/include/caf
-SYSTEMINCLUDE   /epoc32/include/ecom
-
-SOURCEPATH      ../data
-START RESOURCE  20000A16.rss
-TARGET          glxdatasourcemde.rsc
-END
-
-LIBRARY         bafl.lib
-LIBRARY         caf.lib
-LIBRARY         ecom.lib
-LIBRARY         efsrv.lib
-LIBRARY         estor.lib
-LIBRARY         euser.lib
-LIBRARY         fbscli.lib 
-LIBRARY         glxcommon.lib
-LIBRARY         glxdatasourcemanager.lib
-LIBRARY         glxthumbnailcreator.lib
-LIBRARY         inetprotutil.lib
-LIBRARY         lbs.lib
-LIBRARY         mdeclient.lib
-LIBRARY         mpxcommon.lib
-LIBRARY         platformenv.lib
-LIBRARY         iclextjpegapi.lib
-LIBRARY         imageconversion.lib
-
-SMPSAFE
-// End of File
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcemde.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,334 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-/**
- * @author Simon Brooks, Alex Birkett
- */
-
-/**
- * @internal reviewed 10/07/2007 by M Byrne
- */
-
-#ifndef _C_GLXDATASOURCEMDE_H_
-#define _C_GLXDATASOURCEMDE_H_
-
-// INCLUDES
-#include <e32cmn.h>
-#include <f32file.h>
-
-#include <mdesession.h>
-#include <mglxtnstorage.h>
-#include <mpxcollectionmessagedefs.h>
-
-#include "glxdatasource.h"
-
-// FORWARD DECLARATIONS
-class CGlxRequest;
-class CGlxtnThumbnailCreator;
-class CGlxtnThumbnailDatabase;
-
-// CONSTANTS
-
-// CLASS DECLARATION
-
-/**
- *  CGlxDataSourceMde class 
- *
- *  Data Source Mde is a Meta Data Data Source.
- *  @lib GlxDataSourceMde.lib
- *  @ingroup collection_component_design
- */
-class CGlxDataSourceMde : public CGlxDataSource,
-                          public MMdESessionObserver,
-                          public MGlxtnThumbnailStorageObserver,
-                          public MMdEObjectObserver,
-                          public MMdEObjectPresentObserver,
-                          public MMdERelationObserver,
-                          public MMdERelationPresentObserver
-    {
-public:
-    static CGlxDataSourceMde* NewL();
-
-private:
-    ~CGlxDataSourceMde();
-    
-    CGlxDataSourceMde();
-    
-     void ConstructL();
-
-public: // from CGlxDataSource
-    CGlxDataSourceTask* CreateTaskL(CGlxRequest* aRequest, MGlxDataSourceRequestObserver& aObserver);
-
-private: 
-    /**
-    *  from MMdESessionObserver
-    */
-    void HandleSessionOpened(CMdESession& aSession, TInt aError);
-    
-    void HandleSessionError(CMdESession& aSession, TInt aError);
-
-private: // from MGlxtnThumbnailStorageObserver
-    /**
-    * Notify that a given thumbnail is available in storage.
-    * @param aId Media item ID.
-    * @param aSize Requested thumbnail size.
-    */
-    void ThumbnailAvailable(const TGlxMediaId& aId, const TSize& aSize);
-    /**
-    * Notify that a given thumbnail is available in storage.
-    * @param aId Media item ID.
-    * @param aSize Thumbnail size.
-    */
-    void BackgroundThumbnailError(const TGlxMediaId& aId, TInt aError);
-
-private: // MMdEObjectObserver
-    /**
-     * Called to notify the observer that new objects has been added to
-     * the metadata engine database.
-     *
-     * @param aSession  session
-     * @param aObjectIdArray       IDs of added object
-     */
-    void HandleObjectAdded(CMdESession& aSession, const RArray<TItemId>& aObjectIdArray);
-
-    /**
-     * Called to notify the observer that objects has been modified in
-     * the metadata engine database.
-     *
-     * @param aSession  session
-     * @param aObjectIdArray       IDs of modified object
-     */
-    void HandleObjectModified(CMdESession& aSession, const RArray<TItemId>& aObjectIdArray);
-
-    /**
-     * Called to notify the observer that objects has been removed from
-     * the metadata engine database.
-     *
-     * @param aSession  session
-     * @param aObjectIdArray       IDs of removed object
-     */
-    void HandleObjectRemoved(CMdESession& aSession, const RArray<TItemId>& aObjectIdArray);
-    
-private: // MMdEObjectPresentObserver
-    /**
-     * Called to notify the observer that objects has been set to present state in
-     * the metadata engine database.
-     *
-     * @param aSession  session
-     * @param aObjectIdArray   object IDs which are set to present state
-     */
-    void HandleObjectPresent(CMdESession& aSession, const RArray<TItemId>& aObjectIdArray);
-
-    /**
-     * Called to notify the observer that objects has been set to not present state in
-     * the metadata engine database.
-     *
-     * @param aSession  session
-     * @param aObjectIdArray   object IDs which are set to not present state
-     */
-    void HandleObjectNotPresent(CMdESession& aSession, const RArray<TItemId>& aObjectIdArray);
-
-private: // MMdERelationObserver
-    /**
-     * Called to notify the observer that new relations has been added to
-     * the metadata engine database.
-     *
-     * @param aSession   session
-     * @param aRelationIdArray  IDs of added relations
-     */
-    void HandleRelationAdded(CMdESession& aSession, const RArray<TItemId>& aRelationIdArray);
-
-    /**
-     * Called to notify the observer that relations has been removed from
-     * the metadata engine database.
-     *
-     * @param aSession  session
-     * @param aRelationIdArray       IDs of removed relations
-     */
-    void HandleRelationRemoved(CMdESession& aSession, const RArray<TItemId>& aRelationIdArray);
-    
-    /**
-     * Called to notify the observer that relations has been modified from
-     * the metadata engine database.
-     *
-     * @param aSession  session
-     * @param aRelationIdArray       IDs of modified relations
-     */
-    void HandleRelationModified(CMdESession& aSession, const RArray<TItemId>& aRelationIdArray);
-
-private: //MMdERelationPresentObserver
-	/**
-	 * Called to notify the observer that objects has been set to present state in
-	 * the metadata engine database.
-	 *
-	 * @param aSession  session
-	 * @param aObjectIdArray   object IDs which are set to present state
-	 */
-	void HandleRelationPresent(CMdESession& aSession, const RArray<TItemId>& aRelationIdArray);
-
-	/**
-	 * Called to notify the observer that objects has been set to not present state in
-	 * the metadata engine database.
-	 *
-	 * @param aSession  session
-	 * @param aObjectIdArray   object IDs which are set to not present state
-	 */
-	void HandleRelationNotPresent(CMdESession& aSession, const RArray<TItemId>& aRelationIdArray);
-	
-private:
-
-    void BackgroundThumbnailMessageL(const TGlxMediaId& aId, const TSize& aSize, TInt aError);
-    
-    void DoSessionInitL();
-    
-    void AddMdEObserversL();
-    
-    void ProcessUpdateArray(const RArray<TItemId>& aArray, TMPXChangeEventType aType, TBool aIsObject);
-    
-    void ProcessItemUpdateL();
-    
-    static TInt ProcessItemUpdate(TAny* aPtr);
-    
-    void CreateSessionL();
-    
-    static TInt CreateSession(TAny* aPtr);
-    
-    void PrepareMonthsL();
-    
-    void TaskCompletedL();
-    
-    void TaskStartedL();
-
-public:
-    inline CMdESession& Session() const;
-    
-    inline CGlxtnThumbnailCreator& ThumbnailCreator() const;
-    
-    inline CGlxtnThumbnailDatabase& ThumbnailDatabase() const;
-    
-    inline RFs& FileServerSession();
-    
-    inline const TGlxMediaId& CameraAlbumId() const;
-    
-    inline const TGlxMediaId& FavoritesId() const;
-
-    inline CMdENamespaceDef* NamespaceDef() const;
-    
-    inline CMdEObjectDef& ObjectDef() const;
-    
-    inline CMdEObjectDef& ImageDef() const;
-    
-    inline CMdEObjectDef& VideoDef() const;
-    
-    inline CMdEObjectDef& AlbumDef() const;
-    
-    inline CMdEObjectDef& MediaDef() const;
-    inline CMdEObjectDef& TagDef() const;
-    
-    /**
-     * Return object definition used to describe months.
-     * @return object definition used to describe months.
-     */
-    inline CMdEObjectDef& MonthDef() const;
-    
-    inline CMdERelationDef& ContainsDef() const;
-
-    /**
-     * Get the location definition.
-     * @return location definition.
-     */
-    inline CMdEObjectDef& LocationDef() const;
-    
-    TContainerType ContainerType(CMdEObject* aObject);
-    
-    TContainerType ContainerType(CMdEObjectDef* aObjectDef);
-    
-    TItemType ItemType(CMdEObject* aObject);
- 
-    const TGlxMediaId GetMonthIdL(const TTime& aMonth);
-
-    TBool SameMonth(const TTime& aOldDate, const TTime& aNewDate);
-     
-	TBool ContainerIsLeft(CMdEObjectDef& aObjectDef);    
-
-private:
-
-    CGlxtnThumbnailCreator*   iThumbnailCreator;
-
-    CGlxtnThumbnailDatabase*  iThumbnailDatabase;
-
-    CMdESession*              iSession;
-
-    RFs iFs;
-
-    TBool                     iSessionOpen;
-
-    TGlxMediaId               iCameraAlbumId;
-
-    TGlxMediaId               iFavoritesId;
-    
-
-    CMdENamespaceDef* iNameSpaceDef;
-
-    CMdEObjectDef* iObjectDef;
-
-    CMdEObjectDef* iImageDef;
-
-    CMdEObjectDef* iVideoDef;
-
-    CMdEObjectDef* iAlbumDef;
-
-    CMdEObjectDef* iMediaDef;
-    CMdEObjectDef* iTagDef;
-
-    CMdEObjectDef* iMonthDef;
-
-    /**
-     * Location object definition.
-     */
-    CMdEObjectDef* iLocationDef;
-    CMdERelationDef* iContainsDef;
-    
-
-    RArray<TTime> iMonthArray;
-
-    RArray<TGlxMediaId> iMonthList;
-
-    TTime iFirstMonth;
-    
-    TTime iLastMonth;
-    
-    CAsyncCallBack* iUpdateCallback;
-    
-    CAsyncCallBack* iCreateSessionCallback;
-    
-    struct TUpdateData
-        {
-        TItemId iId;
-        TMPXChangeEventType iType;
-        TBool iIsObject;
-        };
-    
-    RArray<TUpdateData> iUpdateData;
-    TBool iPauseUpdate;
-    };
-
-#include "glxdatasourcemde.inl"
-
-#endif //_C_GLXDATASOURCEMDE_H_
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcemde.hrh	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2006 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 
-*
-*/
-
-
-
-/**
- * @internal reviewed 10/07/2007 by M Byrne
- */
-
-#ifndef GLXDATASOURCEMDE_HRH
-#define GLXDATASOURCEMDE_HRH
-
-// CONSTANTS
-
-#define KGlxDataSourceMdePluginDllUid         0x20000A16
-#define KGlxDataSourceMdeImplementationUid    0x20000A10
-
-#endif  // GLXDATASOURCEMDE_HRH
-
-// End of File
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcemde.inl	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-/**
- * @internal reviewed 10/07/2007 by M Byrne
- */
-
-#include <glxpanic.h>
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::Session
-// ----------------------------------------------------------------------------
-// 
-CMdESession& CGlxDataSourceMde::Session() const
-    {
-    __ASSERT_DEBUG(iSessionOpen, Panic(EGlxPanicDatasourceMdeSessionNotOpen));
-    return *iSession;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::ThumbnailCreator
-// ----------------------------------------------------------------------------
-// 
-CGlxtnThumbnailCreator& CGlxDataSourceMde::ThumbnailCreator() const
-    {
-    return *iThumbnailCreator;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::ThumbnailDatabase
-// ----------------------------------------------------------------------------
-// 
-CGlxtnThumbnailDatabase& CGlxDataSourceMde::ThumbnailDatabase() const
-    {
-    return *iThumbnailDatabase;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::FileServerSession
-// ----------------------------------------------------------------------------
-// 
-RFs& CGlxDataSourceMde::FileServerSession()
-    {
-    return iFs;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::CameraAlbumId
-// ----------------------------------------------------------------------------
-// 
-const TGlxMediaId& CGlxDataSourceMde::CameraAlbumId() const
-    {
-    return iCameraAlbumId;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::FavoritesId
-// ----------------------------------------------------------------------------
-// 
-const TGlxMediaId& CGlxDataSourceMde::FavoritesId() const
-    {
-    return iFavoritesId;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::NamespaceDef
-// ----------------------------------------------------------------------------
-// 
-CMdENamespaceDef* CGlxDataSourceMde::NamespaceDef() const
-    {
-    return iNameSpaceDef;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::ObjectDef
-// ----------------------------------------------------------------------------
-// 
-CMdEObjectDef& CGlxDataSourceMde::ObjectDef() const
-    {
-    return *iObjectDef;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::ImageDef
-// ----------------------------------------------------------------------------
-// 
-CMdEObjectDef& CGlxDataSourceMde::ImageDef() const
-    {
-    return *iImageDef;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::VideoDef
-// ----------------------------------------------------------------------------
-// 
-CMdEObjectDef& CGlxDataSourceMde::VideoDef() const
-    {
-    return *iVideoDef;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::MediaDef
-// ----------------------------------------------------------------------------
-// 
-CMdEObjectDef& CGlxDataSourceMde::MediaDef() const
-    {
-    return *iMediaDef;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::AlbumDef
-// ----------------------------------------------------------------------------
-// 
-CMdEObjectDef& CGlxDataSourceMde::AlbumDef() const
-    {
-    return *iAlbumDef;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::TagDef
-// ----------------------------------------------------------------------------
-// 
-CMdEObjectDef& CGlxDataSourceMde::TagDef() const
-    {
-    return *iTagDef;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::MonthDef
-// ----------------------------------------------------------------------------
-//  
-CMdEObjectDef& CGlxDataSourceMde::MonthDef() const
-    {
-    return *iMonthDef;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::ContainsDef
-// ----------------------------------------------------------------------------
-//    
-CMdERelationDef& CGlxDataSourceMde::ContainsDef() const
-    {
-    return *iContainsDef;
-    }
-
-// ---------------------------------------------------------------------------
-// CGlxDataSourceMde::LocationDef
-// ---------------------------------------------------------------------------
-//   
-CMdEObjectDef&  CGlxDataSourceMde::LocationDef() const
-	{
-	return *iLocationDef;
-	}
-
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmde.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-#ifndef _C_GLXDATASOURCETASKMDE_H_
-#define _C_GLXDATASOURCETASKMDE_H_
-
-/**
- * @author Simon Brooks, Alex Birkett
- */
-
-// INCLUDES
-#include <e32cmn.h>
-#include <glxdatasource.h>
-#include <glxdatasourcetask.h>
-#include <glxfilterproperties.h>
-#include <mdccommon.h>
-#include <mdequery.h>
-#include <mglxtnthumbnailcreatorclient.h>
-#include <mpxfilter.h>
-
-// FORWARD DECLARATIONS
-class CGlxDataSourceMde;
-class CGlxRequest;
-class CGlxtnThumbnailCreator;
-class CMdEObjectDef;
-class CMdEObjectQuery;
-class CMdESession;
-
-
-/**
- * Query types supported by subclasses of CGlxDataSourceTaskMde
- */
-enum TGlxQueryType
-    {
-    EContainerFirstItemQuery,    // CGlxDataSourceTaskMdeThumbnail+
-    EIdListQuery,                // GlxDataSourceTaskMdeIdList
-    EAttributeQuery,             // CGlxDataSourceTaskMdeAttribute
-    ELocationAttributeQuery,     // CGlxDataSourceTaskMdeAttribute
-    EImageVideoQuery,            // CGlxDataSourceTaskMdeAttribute (but should be general)
-    ECommandRemoveFromContainer, // CGlxDataSourceTaskMdeCommand
-    ECommandAddToContainer,      // CGlxDataSourceTaskMdeCommand
-    ECommandRemoveLocation,      // CGlxDataSourceTaskMdeCommand
-    ECommandAddContainer,        // CGlxDataSourceTaskMdeCommand adds a container
-    ECommandDeleteContainers,    // CGlxDataSourceTaskMdeCommand deletes containers objects
-    ECommandDeleteItems,          // CGlxDataSourceTaskMdeCommand deletes containers objects
-    ECommandRenameContainer,
-    ECommandRename
-    };
-
-/**
- *  CGlxDataSourceTaskMde class 
- *  Base class for mde tasks: provides task generic functionality.
- */
-NONSHARABLE_CLASS(CGlxDataSourceTaskMde) : 	public CGlxDataSourceTask, public MMdEQueryObserver
-	{
-public:
-    /**
-     * Constructor.
-     * @param aRequest request to be executed.
-     * @param aObserver observer to be informed when task has completed.
-     * @param aDataSource data source to be used by this object.
-     */
-    CGlxDataSourceTaskMde(CGlxRequest* aRequest, MGlxDataSourceRequestObserver& aObserver, 
-            CGlxDataSource* aDataSource);
-    
-    /**
-     * Destructor.
-     */
-    ~CGlxDataSourceTaskMde();
-    
-    /**
-     * Second stage constructor
-     */
-    virtual void ConstructL();
-
-protected: // to be implemented by deriving classes
-    /**
-     * See @ref CGlxDataSourceTask::ExecuteRequestL
-     */ 
-    virtual void ExecuteRequestL() = 0;
-
-    /**
-     * Must be implemented by deriving classes. To handle query completion
-     * @param aQuery Query that has been completed.
-     */
-    virtual void DoHandleQueryCompletedL(CMdEQuery& aQuery) = 0;
-    
-    /**
-     * Optionally implemented by deriving classes. Used if the deriving class has
-     * to run more than one query. Should start the next query or call HandleRequestComplete() 
-     * if no futher queries are required to be run. If the deriving class only has a single query,
-     * HandleRequestComplete() can be called from DoHandleQueryCompletedL()
-     */
-    virtual void DoNextQueryL() {}
-    
-public: // From CGlxDataSourceTask
-    /**
-     * See @ref CGlxDataSourceTask::CancelRequest
-     */ 
-    void CancelRequest();
-
-private: // from MMdEQueryObserver
-    /**
-     * See @ref MMdEQueryObserver::HandleQueryNewResults
-     */ 
-    void HandleQueryNewResults( CMdEQuery& aQuery,
-                                TInt aFirstNewItemIndex,
-                                TInt aNewItemCount );
-    /**
-     * See @ref MMdEQueryObserver::HandleQueryNewResults
-     */
-    void HandleQueryNewResults( CMdEQuery& aQuery,
-                                TInt aNewObjectItemCount,
-                                TInt aNewRelationItemCount,
-                                TInt aNewEventItemCount);
-    /**
-     * See @ref MMdEQueryObserver::HandleQueryCompleted
-     */
-    void HandleQueryCompleted( CMdEQuery& aQuery, TInt aError);
-    
-protected:
-
-    /**
-     * Returns a pointer to the CGlxDataSourceMde object passed in on instantiation.
-     * @return a pointer to the CGlxDataSourceMde object passed in on instantiation.
-     */
-    CGlxDataSourceMde* DataSource();
-
-    void AddMonthFilterL(const TGlxMediaId& aContainerId, TGlxFilterProperties& aFilterProperties);
-    
-    void AddMonthFilterL(CMdEObject* aMonth, TGlxFilterProperties& aFilterProperties);
-        
-	/**
-	 * Set query contditions by container id and filter properties.
-     * @param aLogicCondition logic condition to add conditions to
-     * @param aContainerId Id of the container
-     * @param aContainerIsLeft. This should be set to to ETrue if the container is on the left side of the releation, or
-     * EFalse if the container is on the right side of the relation
-     * 
-     */	
-    void SetQueryConditionsL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties, const TGlxMediaId aContainerId, CMdEObjectDef& aObjectDef);
-
-    void SetQueryFilterConditionsL(CMdELogicCondition& aLogicCondition, CMdEObjectDef& aObjectDef, const TGlxFilterProperties& aFilterProperties);
-
-    void SetSortOrderL(CMdEQuery& aQuery, CMdEObjectDef& aObjectDef, const TGlxFilterProperties& aFilterProperties);
-
-    /**
-     * Returns the maximum number of items that a query should find.
-     * @return Maximum number of results
-     */
-    TInt MaxQueryResultsCount(const TGlxFilterProperties& aFilterProperties) const;
-    
-    /**
-     * Removes and destroys the oldest query in iQueries.
-     */
-    void RemoveQuery();
-
-    void DoQueryL(CMdEObjectDef& aObjectDef, TBool aIsContent, TGlxQueryType aQueryType, TQueryResultMode aResultMode, const TGlxMediaId& aContainerId);
-
-    /**
-     * Adds queries for images and or videos to the query queue. The queries will return objects
-     * of type image or video that have ids specified by aObjectIds. 
-     * @param aObjectIds A list of the ids of the required objects.
-     * @param aFilterProperties TGlxFilterProperties.iItemType is used to determine if only 
-     * image or video queries are required if iItemType is not set to EGlxFilterImage or 
-     * EGlxFitlerVideo a query for images will be queued first followed by a query for videos.
-     */
-    void QueueImageVideoObjectQueriesL(const RArray<TItemId>& aObjectIds, const TGlxFilterProperties& aFilterProperties);
-    
-    /**
-     * Adds a query for tag objects that have ids specified by aObjectIds
-     * to the query queue.
-     * @param aObjectIds A list of the ids of the required objects.
-     */
-    void QueueTagObjectQueryL(const RArray<TItemId>& aObjectIds);
-
-    /**
-     * Adds a query for album objects that have ids specified by aObjectIds
-     * to the query queue.
-     * @param aObjectIds A list of the ids of the required objects.
-     */
-    void QueueAlbumObjectQueryL(const RArray<TItemId>& aObjectIds);
-    
-    /**
-     * Adds a query for "month" objects that have ids specified by aObjectIds
-     * to the query queue.
-     * @param aObjectIds A list of the ids of the required objects.
-     */
-    void QueueMonthObjectQueryL(const RArray<TItemId>& aObjectIds);
-    
-    /**
-     * Adds a query for objects of type specified by aObjectDef
-     * that have ids specified by aObjectIds to the query queue.
-     * @param aObjectDef type of objects required.
-     * @param aObjectIds A list of the ids of the required objects.
-     * @param aQueryType The query type.
-     */
-    void QueueObjectQueryL(CMdEObjectDef& aObjectDef, 
-            const RArray<TItemId>& aObjectIds, const TGlxQueryType& aQueryType);
-
-    /**
-     * Appends a query to the query queue. (the ownership of the query is transferred)
-     * @param aQuery query to append to the query queue ownership is transferred to 
-     * the query queue. It is expected that aQuery is not on the cleanupstack before the
-     * call to AppendQueryL is made
-     * @param aQueryType the query type.
-     */
-    void AppendQueryL(CMdEQuery* aQuery, const TGlxQueryType& aQueryType);
-    
-    /**
-     * Executes the query at ordinal 0 in the
-     * query list implementation can be overidden by
-     * deriving classes.
-     */
-    virtual void ExecuteQueryL();
-    
-private:
-    /* 
-    * Helper function TRAPed and called by HandleQueryCompleted()
-    * @param aQuery the query that has been completed
-    */
-    void HandleQueryCompletedL(CMdEQuery& aQuery);
-
-    /**
-     * Removes the observer from any existing queries, cancels and destroys them
-     */
-    void DestroyQueries();
-    
-private:
-    /**
-     * Default namespace def (not owned)
-     */
-    CMdENamespaceDef* iDefaultNameSpaceDef;
-
-protected:
-    /**
-     * Outstanding queries array (owned)
-     */
-    RPointerArray <CMdEQuery> iQueries;
-    
-    /**
-     * Query types array (owned)
-     */
-    RArray <TGlxQueryType> iQueryTypes;
-
-    /**
-     * Filter properties
-     */
-    TGlxFilterProperties iFilterProperties;  
-    };
-
-#endif //_C_GLXDATASOURCETASKMDE_H_
\ No newline at end of file
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeattribute.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,162 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-#ifndef _C_GLXDATASOURCETASKMDEATTRIBUTETASK_H_
-#define _C_GLXDATASOURCETASKMDEATTRIBUTETASK_H_
-
-/**
- * @author Simon Brooks, Alex Birkett
- */
-
-#include <e32std.h>
-#include "glxdatasourcetaskmde.h"
-
-
-// CLASS DECLARATION
-
-class CGlxGetRequest;    
-
-NONSHARABLE_CLASS(TGlxQueryAttribute)
-    {
-public:
-    TGlxQueryAttribute(
-        TMPXAttribute aAttribute,
-        CMPXMedia* aMedia,
-        TGlxFilterProperties aFilterProperties
-        ) : 
-        iAttribute(aAttribute),
-        iMedia(aMedia),
-        iFilterProperties(aFilterProperties)
-            {
-            
-            };
-public:
-    TMPXAttribute iAttribute;
-    CMPXMedia* iMedia;
-    TGlxFilterProperties iFilterProperties;
-    };
-
-/**
- * Attribute retrieval task.
- */
-NONSHARABLE_CLASS(CGlxDataSourceTaskMdeAttribute) : public CGlxDataSourceTaskMde
-	{
-public:
-    /**
-     * Constructor.
-     * @param aRequest request to be executed.
-     * @param aObserver observer to be informed when task has completed.
-     * @param aDataSource data source to be used by this object.
-     */
-	CGlxDataSourceTaskMdeAttribute(CGlxGetRequest* aRequest, MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource);
-	
-    /**
-     * Destructor.
-     */
-    ~CGlxDataSourceTaskMdeAttribute();
-	
-private: // From CGlxDataSourceTask     
-    /**
-     * See @ref CGlxDataSourceTask::ExecuteRequestL
-     */ 
-    void ExecuteRequestL();
-	
-private: // From CGlxDataSourceTaskMde
-    /**
-     * See @ref CGlxDataSourceTaskMde::DoHandleQueryCompletedL
-     */ 
-    void DoHandleQueryCompletedL(CMdEQuery& aQuery);
-
-    /**
-     * See @ref CGlxDataSourceTaskMde::DoNextQueryL
-     */ 
-    void DoNextQueryL();
-    
-private:	
-
-	void AddAttributesL(CMdEObject& aObject, CMPXMedia* aEntry);
-
-	void AddCollectionAttributesL(CMPXMedia* aEntry);
-	
-	void AddContainerAttributesL(CMPXMedia* aEntry, CMdEObject* aContainer, CGlxDataSource::TContainerType aType);
-	
-	void AddItemAttributesL(CMPXMedia* aEntry, CMdEObject* aItem, CGlxDataSource::TItemType aType);
-	
-    /**
-     * Add location information to a media object from MDS.
-     * @param aLocationId the id of a location object.
-     * @param aMedia media object to add a location attribute to.
-     */
-    void AddLocationAttributeToMediaL(CMPXMedia& aMedia, const TItemId& aLocationId);
-        
-
-    void DoHandleAttributeQueryCompletedL();
-    
-    /**
-	 * Handles the completion of a query of type ELocationQuery.
-	 */
-	void DoHandleLocationQueryCompletedL();
-	
-
-	void DoHandleImageVideoQueryCompletedL();
-		
-    /**
-     * Creates a location query and adds it to the queue of queries.
-     */
-    void QueueLocaitonQueryL();
-
-    /**
-     * @param aObjectDef object definition which defines objects which will be queried
-     * @param aIsContent If ETrue, the definition of the objects being queried is set by the item type filter property, if EFalse, the definition
-     * of the object being queried is provided by the aObjectDef parameter
-     *  
-     */
-    void QueueObjectQueryL(CMdEObjectDef& aObjectDef, TBool aIsContent, TGlxQueryType aQueryType, TQueryResultMode aResultMode, 
-                          const TGlxMediaId& aContainerId, TMPXAttribute aAttribute, CMPXMedia* aEntry, 
-                          const TGlxFilterProperties& aFilterProperties);
-    
-
-	void DoHandleAttributeResponseCompleteL();
-
-	
-    /**
-     * Determines if the request contains the KGlxMediaGeneralLocation attribtue.
-     * @return ETrue if the the KGlxMediaGeneralLocation attribute is requrested else EFalse
-     */
-    TBool LocationAttributeRequested();
-    
-    /**
-     * Executes the next query in the queue of queries.
-     */
-    void ExecuteQueryL(); 
-
-private:
-    /**
-     * Results media array (owned)
-     */
-    CMPXMediaArray* iMediaArray;
-    
-    /**
-     * Attributes associated with outstanding queries
-     */
-    RArray< TGlxQueryAttribute > iQueryAttributes;
-	};
-
-
-#endif // _C_GLXDATASOURCETASKMDEATTRIBUTETASK_H_
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdecommand.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,315 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-#ifndef _C_GLXDATASOURCETASKMDECOMMAND_H_
-#define _C_GLXDATASOURCETASKMDECOMMAND_H_
-
-/**
- * @internal reviewed 10/07/2007 by M Byrne
- */
-
-
-// INCLUDES
-#include <e32cmn.h>
-#include <glxcommandparser.h>
-#include <mdequery.h>
-#include <mdeitem.h>
-#include <mglxtnthumbnailcreatorclient.h>
-#include <glxcommandrequest.h>
-#include "glxdatasourcetaskmde.h"
-
-// FORWARD DECLARATIONS
-class CGlxDataSourceMde;
-class CGlxRequest;
-class CMdENamespaceDef;
-class CMdEObjectDef;
-class CMdEObjectQuery;
-class CMdERelationDef;
-class CMdERelationQuery;
-class CMdESession;
-
-// CONSTANTS
-
-// CLASS DECLARATION
-
-/**
- *  CGlxDataSourceTaskMdeCommand class 
- *
- */
-NONSHARABLE_CLASS( CGlxDataSourceTaskMdeCommand ) : public CGlxDataSourceTaskMde, 
-									                public MGlxCommandParserCallback
-
-	{
-public: // Constructors / Destructors
-    /**
-     * Constructor.
-     * @param aRequest request to be executed.
-     * @param aObserver observer to be informed when task has completed.
-     * @param aDataSource data source to be used by this object.
-     */
-     CGlxDataSourceTaskMdeCommand(CGlxCommandRequest* aRequest, MGlxDataSourceRequestObserver& aObserver,
-             CGlxDataSource* aDataSource);
-
-     /**
-      * Symbian 2nd stage constructor
-      * See @ref CGlxDataSourceTaskMde::ConstructL
-      */
-     void ConstructL();
-     
-     /**
-      * Destructor
-      */
-     ~CGlxDataSourceTaskMdeCommand();
-
-private: // From MGlxCommandParserCallback	
- 
-     /**
-      * See @ref MGlxCommandParserCallback::AddContainerL
-      */ 
-     void AddContainerL(const TDesC& aContainerName);
- 
-     /**
-     * See @ref MGlxCommandParserCallback::AddToContainerL
-     */ 
-     void AddToContainerL(const RArray<TGlxMediaId>& aSourceIds, const RArray<TGlxMediaId>& aTargetContainers);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::AddToContainerL
-      */ 
-     void AddToContainerL(const TDesC& aSourceUri, const RArray<TGlxMediaId>& aTargetContainers);    
-     
-     /**
-      * See @ref MGlxCommandParserCallback::CopyL
-      */ 
-     void CopyL(const RArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::MoveL
-      */ 
-     void MoveL(const RArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::RemoveFromContainerL
-      */ 
-     void RemoveFromContainerL(const RArray<TGlxMediaId>& aItemIds, const TGlxMediaId& aContainerId);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::DeleteL
-      */ 
-     void DeleteL(const RArray<TGlxMediaId>& aItemIds);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::RenameL
-      */ 
-     void RenameL(const TGlxMediaId& aSourceItemId, const TDesC& aTitle);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::SetDescriptionL
-      */ 
-     void SetDescriptionL(const RArray<TGlxMediaId>& aItemIds, const TDesC& aDescription);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::SetCaptureLocationL
-      */ 
-     void SetCaptureLocationL(const RArray<TGlxMediaId>& aItemIds, const TCoordinate& aCoordinate);
-     
-     /**
-      * See @ref MGlxCommandParserCallback::ThumbnailCleanupL
-      */ 
-     void ThumbnailCleanupL();
-     
-private: // from CGlxDataSourceTaskMde
-	
-    /**
-     * See @ref CGlxDataSourceTaskMde::DoHandleQueryCompletedL
-     */
-    void DoHandleQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * See @ref CGlxDataSourceTaskMde::DoNextQueryL
-     */
-    void DoNextQueryL();
-
-private: 
-    
-    /**
-     * Enumeration to describe file operations
-     * (Copy or Move)
-     */
-	enum TFileOperation
-	{
-		ECopy,
-		EMove
-	};
-	
-    /**
-	 * Perform a file operation (copy or move).
-	 * @param aSourceIds an array of media ids to copy or move.
-	 * @param aDrive destination drive.
-	 * @param aFileOperation file operation to perform (either a copy or a move) 
-	 */
-	void FileOperationL(const TArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive, TFileOperation aFileOperation);
-	
-    /**
-	 * Gets the container id for a given media id.
-	 * If aMedia id is KGlxCollectionRootId (0) then container id
-	 * is determined using the collection id. E.g. if the aMediaId
-	 * is KGlxCollectionRootId and the collection uid is 
-	 * KGlxCollectionPluginCameraImplementationUid
-	 * then the camera album id is returned by the method.
-	 * When aMedia id is not equal to KGlxCollectionRootId, (the 
-	 * vast majority of cases) the container id returned by the method
-	 * will be the same as the media id passed in.
-	 * 
-	 * @param aMediaId should be either a valid container id or KGlxCollectionRootId
-	 * @return a container id.
-	 */
-	TMdEItemId ContainerItemId(const TGlxMediaId& aMediaId);
-	
-	/**
-	 * Uses the PathInfo class to determine the 'root' path for 
-	 * a given drive. The 'root' path is C:\data for the C drive and
-	 * x:\ for all other drives (where x is a drive letter)
-	 * @param aDrive the drive for which the root path is required.
-	 * @param aRootPath on return contains the root path.
-	 */
-	void RootPath(const TDesC& aDrive, TDes& aRootPath);
-   
-    /**
-     * Copies items from a TGlxMedia array to a TItemId array.
-     * @param aDestArray destination array. (It is the callers responsibility to ensure that aDestArray is on
-     *                                       the cleanup stack should this be required)
-     * @param aSourceArray source array.
-     */
-    void CopyArrayL(RArray<TItemId>& aDestArray, const RArray<TGlxMediaId>& aSourceArray); 
-    
-    /**
-     * Sends progress messages to the client
-     * @param aCurrentStep number of currently completed steps.
-     * @param aStepCount number of total steps to completion.
-     */
-    void SendProgressMessageL(TInt aCurrentStep, TInt aStepCount);
-    
-    /** 
-     * Returns the container object definition (either album or tag)
-     * the container object definition is calculated based on the
-     * collection plug-in id associated with the task.
-     * @param aContainerObjectDef a pointer to the container object
-     * definition associated with the collection plugin if the 
-     * function completes with out error. The caller does not take
-     * ownership of the pointer.
-     * @return KErrNone if the collection plug-in has a container
-     * object definition associated with it or a system wide
-     * error code.
-     */
-    TInt ContainerObjectDef(CMdEObjectDef*& aContainerObjectDef);
-    
-    /**
-     * Handle the completion of a 'add to container' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleAddToContainerQueryCompletedL(CMdEQuery& aQuery);
-
-    /**
-     * Handle the completion of a 'add container' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleAddContainerQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * Handle the completion of a 'delete containers' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleDeleteContainersQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * Handle the completion of a 'delete items' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleDeleteItemsQueryCompletedL(CMdEQuery& aQuery);
-    
-    
-    /**
-     * Handle the completion of a 'rename' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleRenameQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * Handle the completion of a 'rename container' query.
-     * @param aQuery Query that has been completed.
-     */
-    void DoHandleRenameConainerQueryCompletedL(CMdEQuery& aQuery);
-    
-    /**
-     * Appends a query to the query queue that determines the number
-     * of container objects that have the title aTitle. This
-     * method is used to check to see if a container with a
-     * specific title exists. The container type is determined 
-     * using the ContainerObjectDef() method
-     * @aQueryType the query type.
-     * @aTitle title to search for.
-     */
-    void AppendContainerTitleCountQueryL(const TGlxQueryType& aQueryType, const TDesC& aTitle);
-    
-private: // from CGlxDataSourceTask
-	/**
-     * See @ref CGlxDataSourceTask::ExecuteRequestL
-     */
-	void ExecuteRequestL();
-
-private:	
-	/**
-	 * Default name space definition.
-	 */
-	CMdENamespaceDef* iDefaultNameSpaceDef; 
-	
-	/**
-	 * Collection uid.
-	 */
-	TUid iCollectionUid;
-	
-	/**
-	 * Before new relations are added to the database, a check must be made to see if 
-     * identical relations already exist. This is done asynchronously so they need to 
-     * be stored temporarily as a member variable.
-	 */
-	RArray<TItemId> iLeftIds;
-    
-    /**
-     * Before new relations are added to the database, a check must be made to see if 
-     * identical relations already exist. This is done asynchronously so they need to 
-     * be stored temporarily as a member variable.
-     */
-    RArray<TItemId> iRightIds;
-    
-    /**
-     * Used to store object titles while asynchronous operations are in progress.
-     * (owned)
-     */
-    HBufC* iTitle;
-    
-    /**
-     * Used to store the object to rename while asynchronous operations are in progress.
-     * (owned)
-     */
-    CMdEObject* iObjectToRename;
-	};
-
-#endif //_C_GLXDATASOURCETASKMDECOMMAND_H_
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdeidlist.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-#ifndef GLXDATASOURCETASKMDEIDLIST_H_
-#define GLXDATASOURCETASKMDEIDLIST_H_
-
-/**
- * @author Simon Brooks, Alex Birkett
- */
-
-// INCLUDES
-#include <e32cmn.h>
-#include <mdequery.h>
-
-#include <glxdatasourcetask.h>
-#include <glxdatasource.h>
-#include <mdccommon.h>
-#include <mglxtnthumbnailcreatorclient.h>
-#include <mpxfilter.h>
-#include <glxfilterproperties.h>
-#include "glxdatasourcetaskmde.h"
-// FORWARD DECLARATIONS
-class CGlxDataSourceMde;
-class CGlxIdListRequest;
-class CGlxtnThumbnailCreator;
-class CMdEObjectDef;
-class CMdEObjectQuery;
-class CMdESession;
-
-/**
- *  CGlxDataSourceTaskMdeIdList class 
- *  Task to handle id list requests.
- */
-NONSHARABLE_CLASS(CGlxDataSourceTaskMdeIdList) : public CGlxDataSourceTaskMde, public MGlxtnThumbnailCreatorClient
-
-	{
-public:
-    /**
-     * Constructor.
-     * @param aRequest request to be executed.
-     * @param aObserver observer to be informed when task has completed.
-     * @param aDataSource data source to be used by this object.
-     */
-     CGlxDataSourceTaskMdeIdList(CGlxIdListRequest* aRequest, MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource);
-        
-     /**
-      * Destructor.
-      */
-     ~CGlxDataSourceTaskMdeIdList();
-    	
-private: // from MGlxtnThumbnailCreatorClient
-	/**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::ThumbnailFetchComplete
-	 */ 
-	void ThumbnailFetchComplete(const TGlxMediaId& /*aItemId*/,
-            TGlxThumbnailQuality /*aQuality*/, TInt /*aErrorCode*/) {};
-	 
-	/**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::ThumbnailDeletionComplete
-	 */ 
-	 void ThumbnailDeletionComplete(const TGlxMediaId& /*aItemId*/,
-             TInt /*aErrorCode*/) {};
-	 
-	/**
-	 * See @ref MGlxtnThumbnailCreatorClient::FilterAvailableComplete
-	 */ 
-	 void FilterAvailableComplete(const RArray<TGlxMediaId>& aIdArray,
-	                                         TInt aErrorCode);
-	/**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::FetchFileInfoL
-	 */ 
-	 void FetchFileInfoL(CGlxtnFileInfo* /*aInfo*/,
-	                 const TGlxMediaId& /*aItemId*/, TRequestStatus* /*aStatus*/) {};
-	
-    /**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::CancelFetchUri
-	 */ 
-	 void CancelFetchUri(const TGlxMediaId& /*aItemId*/) {};
-	 
-	/**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::ThumbnailStorage
-	 */ 
-	 MGlxtnThumbnailStorage* ThumbnailStorage() { return NULL; };
-
-public: // From CGlxDataSourceTask    
-    /**
-     * See @ref CGlxDataSourceTask::ExecuteRequestL
-     */ 
-    void ExecuteRequestL();
-
-private: // from CGlxDataSourceTaskMde
-    /**
-     * See @ref CGlxDataSourceTask::DoHandleQueryCompletedL
-     */ 
-    void DoHandleQueryCompletedL(CMdEQuery& aQuery);
-
-private:
-	void DoHandleListQueryCompletedL();
-		
-    void DoMonthListCreationL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties);
-        
-    void DoPostFilterComplete(const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode);	
-    
-    void PostFilterL(const RArray<TGlxMediaId>& aFilteredList, const TGlxFilterProperties& aFilterProperties);                                                                            
-	};
-
-#endif // GLXDATASOURCETASKMDEIDLIST_H_
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/inc/glxdatasourcetaskmdethumbnail.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,123 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-#ifndef GLXDATASOURCETASKMDETHUMBNAIL_H_
-#define GLXDATASOURCETASKMDETHUMBNAIL_H_
-
-/**
- * @author Simon Brooks, Alex Birkett
- */
-
-#include "glxdatasourcetaskmdeattribute.h"
-
-#include <mglxtnthumbnailcreatorclient.h>
-#include <glxthumbnailrequest.h>
-
-/**
- *  CGlxDataSourceTaskMdeThumnail class 
- *  Services thumbnail requests
- */
-NONSHARABLE_CLASS(CGlxDataSourceTaskMdeThumbnail) : public CGlxDataSourceTaskMde, 
-									                public MGlxtnThumbnailCreatorClient
-			                    	    
-	{
-public:
-    /**
-	 * Constructor
-	 * @param aRequest thumbnail request to service
-	 * @param aObserver observer
-	 * @param aDataSource data source
-	 */
-	CGlxDataSourceTaskMdeThumbnail(CGlxThumbnailRequest* aRequest, 
-			MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource);
-
-    /**
-     * Destructor
-     */
-    ~CGlxDataSourceTaskMdeThumbnail();
-
-private: // From CGlxDataSourceTask     
-    /**
-     * See @ref CGlxDataSourceTask::ExecuteRequestL
-     */ 
-    void ExecuteRequestL();
-    
-    /**
-     * See @ref CGlxDataSourceTask::HandleRequestComplete
-     */ 
-    void HandleRequestComplete(TInt aError);
-
-private: // From CGlxDataSourceTaskMde
-    /**
-     * See @ref CGlxDataSourceTaskMde::DoHandleQueryCompletedL
-     */ 
-    void DoHandleQueryCompletedL(CMdEQuery& aQuery);
-
-private: // From MGlxtnThumbnailCreatorClient
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::ThumbnailFetchComplete
-     */ 
-    void ThumbnailFetchComplete(const TGlxMediaId& aItemId,
-                            TGlxThumbnailQuality aQuality, TInt aErrorCode);
-            
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::ThumbnailDeletionComplete
-     */
-    void ThumbnailDeletionComplete(const TGlxMediaId& aItemId, TInt aErrorCode);
-
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::FilterAvailableComplete
-     */
-    void FilterAvailableComplete(const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode);
-    
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::FetchFileInfoL
-     */
-    void FetchFileInfoL(CGlxtnFileInfo* aInfo, const TGlxMediaId& aItemId,
-                    TRequestStatus* aStatus);
-      
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::CancelFetchUri
-     */
-    void CancelFetchUri(const TGlxMediaId& aItemId);
-    
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::ThumbnailStorage
-     */
-    MGlxtnThumbnailStorage* ThumbnailStorage();
-    			
- 	void HandleThumbnailFetchCompleteL(const TGlxMediaId& aId,
-		TGlxThumbnailQuality aQuality);	
-	
- 	void DoHandleContainerFirstItemQueryCompletedL();
-    
- 	void CompleteFetchFileInfoL(CMdEObject* aItem);
-        
-private:
-	void CompleteThumbnailRequest(TInt aError);
-	
-private:
-    CGlxtnFileInfo* iTnFileInfo;
-
-    TRequestStatus* iTnRequestStatus;
-
-    TBool iTnRequestInProgress;
-	};
-
-#endif // GLXDATASOURCETASKMDETHUMBNAIL_H_
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemde.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,661 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-/**
- * @internal reviewed 11/07/2007 by M Byrne
- */
-
-
-// INCLUDE FILES
-#include "glxdatasourcemde.h"
-
-#include <fbs.h>
-#include <glxbackgroundtnmessagedefs.h>
-#include <glxcollectionmessagedefs.h>
-#include <glxcommandrequest.h>
-#include <glxgetrequest.h>
-#include <glxidlistrequest.h>
-#include <glxlog.h>
-#include <glxrequest.h>
-#include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
-#include <glxtnthumbnailcreator.h>
-#include <mdeobjectcondition.h>
-#include <mderelationcondition.h>
-#include <mderelationdef.h>
-#include <mpxmediageneraldefs.h>
-#include <mpxmessagegeneraldefs.h>
-
-#include "glxdatasourcetaskmde.h"
-#include "glxdatasourcetaskmdeattribute.h"
-#include "glxdatasourcetaskmdecommand.h"
-#include "glxdatasourcetaskmdeidlist.h"
-#include "glxdatasourcetaskmdethumbnail.h"
-
-_LIT(KGlxMdeDataSourceThumbnailDatabase, "glxmdstn");
-
-_LIT(KObjectDefLocation, "Location");
-_LIT(KObjectDefNameAlbum, "Album");
-_LIT(KObjectDefNameImage, "Image");
-_LIT(KObjectDefNameMedia, "MediaObject");
-_LIT(KObjectDefNameObject, "Object");
-_LIT(KObjectDefNameTag, "Tag");
-_LIT(KObjectDefNameVideo, "Video");
-_LIT(KPropertyDefNameCreationDate, "CreationDate");
-_LIT(KPropertyDefNameLastModifiedDate, "LastModifiedDate");
-_LIT(KPropertyDefNameSize, "Size");
-_LIT(KPropertyDefNameTitle, "Title");
-_LIT(KRelationDefNameContains, "Contains");
-
-_LIT(KObjectDefNameMonth, "MediaObject");/// @todo nasty hack remove and use base object
-
-_LIT(KGlxMdeCameraAlbumUri, "Camera album");
-_LIT(KGlxMdeFavoritesUri, "Favorites");
-
-#undef __USING_INTELLIGENT_UPDATE_FILTERING
-
-// ============================ MEMBER FUNCTIONS ==============================
-
-CGlxDataSourceMde* CGlxDataSourceMde::NewL()
-	{
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceMde* CGlxDataSourceMde::NewL()");
-	CGlxDataSourceMde* ds = new (ELeave) CGlxDataSourceMde();
-	CleanupStack::PushL(ds);
-	ds->ConstructL();
-	CleanupStack::Pop(ds); 
-	return ds;
-	}
-
-CGlxDataSourceMde::~CGlxDataSourceMde()
-	{
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceMde::~CGlxDataSourceMde()");
-    delete iSession;
-     if (iThumbnailCreator)
-    	{
-    	iThumbnailCreator->Close(iThumbnailDatabase);
-    	}
-    delete iThumbnailDatabase;
-    iFs.Close();
-    RFbsSession::Disconnect();
-    iMonthArray.Close();
-    iMonthList.Close();
-    iUpdateData.Close();
-    delete iUpdateCallback;
-    delete iCreateSessionCallback;
-	}
-
-CGlxDataSourceMde::CGlxDataSourceMde()
-	{
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceMde::CGlxDataSourceMde()");
-	}
-
-void CGlxDataSourceMde::ConstructL()
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::ConstructL()");
-	iDataSourceReady = EFalse;			
-    User::LeaveIfError(iFs.Connect());
-	iSession = CMdESession::NewL( *this );
-            
-    User::LeaveIfError(RFbsSession::Connect());
-	iThumbnailCreator = CGlxtnThumbnailCreator::InstanceL();
-	iThumbnailDatabase = CGlxtnThumbnailDatabase::NewL(
-            	                        KGlxMdeDataSourceThumbnailDatabase, this);
-    iCreateSessionCallback = new ( ELeave )
-	    CAsyncCallBack( TCallBack( CreateSession, this ), CActive::EPriorityHigh );
-    iUpdateCallback = new ( ELeave )
-	    CAsyncCallBack( TCallBack( ProcessItemUpdate, this ), CActive::EPriorityLow );
-    iUpdateData.Reserve(100); // ignore if it fails
-	}
-	
-// ----------------------------------------------------------------------------
-// from MMdESessionObserver
-// CMPXCollectionMdEPlugin::HandleSessionOpened
-// ----------------------------------------------------------------------------
-//    
-void CGlxDataSourceMde::HandleSessionOpened( CMdESession& aSession, TInt aError )    
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleSessionOpened(CMdESession& aSession, TInt aError)");
-    if( KErrNone != aError )
-        {
-        HandleSessionError(aSession, aError);
-        }
-    TRAPD(err, DoSessionInitL());
-    if( KErrNone != err )
-        {
-        HandleSessionError(aSession, err);
-        }
-    
-    iSessionOpen = ETrue;
-    iDataSourceReady = ETrue;
-	TryStartTask(ETrue);
-    }
-    
-// ----------------------------------------------------------------------------
-// from MMdESessionObserver
-// CMPXCollectionMdEPlugin::HandleSessionError
-// ----------------------------------------------------------------------------
-//     
-void CGlxDataSourceMde::HandleSessionError(CMdESession& /*aSession*/, TInt /*aError*/ )    
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleSessionError(CMdESession& /*aSession*/, TInt /*aError*/)");
-    iSession = NULL;
-    iDataSourceReady = EFalse;
-    iSessionOpen = EFalse;
-    iCreateSessionCallback->CallBack();
-    }
-
-
-CGlxDataSourceTask* CGlxDataSourceMde::CreateTaskL(CGlxRequest* aRequest, MGlxDataSourceRequestObserver& aObserver)
-	{
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTask* CGlxDataSourceMde::CreateTaskL(CGlxRequest* aRequest, MGlxDataSourceRequestObserver& aObserver)");	
-	if(dynamic_cast<CGlxCommandRequest*>(aRequest))
-		{
-        CleanupStack::PushL(aRequest);
-        CGlxDataSourceTaskMdeCommand* task = new (ELeave) CGlxDataSourceTaskMdeCommand(static_cast<CGlxCommandRequest*>(aRequest), aObserver, this);
-		CleanupStack::Pop(aRequest); // now owned by task
-        CleanupStack::PushL(task);
-        task->ConstructL();
-		CleanupStack::Pop(task);
-		return task;
-		}
-	else if (dynamic_cast< CGlxGetRequest *>(aRequest))
-		{
-        CleanupStack::PushL(aRequest);
-        CGlxDataSourceTaskMdeAttribute* task = new (ELeave) CGlxDataSourceTaskMdeAttribute(static_cast<CGlxGetRequest*>(aRequest), aObserver, this);
-		CleanupStack::Pop(aRequest); // now owned by task
-        CleanupStack::PushL(task);
-        task->ConstructL();
-		CleanupStack::Pop(task);
-		return task;
-		}
-	else if (dynamic_cast< CGlxIdListRequest *>(aRequest))
-		{	
-        CleanupStack::PushL(aRequest);
-        CGlxDataSourceTaskMdeIdList* task = new (ELeave) CGlxDataSourceTaskMdeIdList(static_cast<CGlxIdListRequest*>(aRequest), aObserver, this);
-        CleanupStack::Pop(aRequest); // now owned by task
-        CleanupStack::PushL(task); 
-        task->ConstructL();
-        CleanupStack::Pop(task);
-        return task;
-		}
-	else if (dynamic_cast< CGlxThumbnailRequest *>(aRequest))
-		{	
-        CleanupStack::PushL(aRequest);
-        CGlxDataSourceTaskMdeThumbnail* task = new (ELeave) CGlxDataSourceTaskMdeThumbnail(static_cast<CGlxThumbnailRequest*>(aRequest), aObserver, this);
-        CleanupStack::Pop(aRequest); // now owned by task
-        CleanupStack::PushL(task); 
-        task->ConstructL();
-        CleanupStack::Pop(task);
-        return task;
-		}
-	else
-		{
-		User::Leave(KErrNotSupported);
-		return NULL; // stops compiler warning
-		}
-	}
-
-void CGlxDataSourceMde::ThumbnailAvailable(const TGlxMediaId& /*aId*/, const TSize& /*aSize*/)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::ThumbnailAvailable()");
-	//	no implementation
-	}
-
-void CGlxDataSourceMde::BackgroundThumbnailError(const TGlxMediaId& aId, TInt aError)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::BackgroundThumbnailError()");
-	TSize size(0, 0);
-	TRAP_IGNORE(BackgroundThumbnailMessageL(aId, size, aError));
-	}
-
-void CGlxDataSourceMde::BackgroundThumbnailMessageL(const TGlxMediaId& aId, const TSize& aSize, TInt aError)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::BackgroundThumbnailMessageL()");
-	CMPXMessage* message = CMPXMessage::NewL();
-	CleanupStack::PushL(message);
-	message->SetTObjectValueL(KMPXMessageGeneralId, KGlxMessageIdBackgroundThumbnail);
-	message->SetTObjectValueL<TMPXItemId>(KGlxBackgroundThumbnailMediaId, aId.Value());
-	message->SetTObjectValueL(KGlxBackgroundThumbnailSize, aSize);
-	message->SetTObjectValueL(KGlxBackgroundThumbnailError, aError);
-	BroadcastMessage(*message);
-	CleanupStack::PopAndDestroy(message);
-	}
-
-void CGlxDataSourceMde::DoSessionInitL()
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::DoSessionInitL()");
- 	/// @todo check schema version number
-    iNameSpaceDef = iSession->GetDefaultNamespaceDefL();
-    if ( !iNameSpaceDef )
-        {
-        User::Leave(KErrCorrupt);
-        }
-    
-	CMdEObject* cameraAlbum = iSession->GetObjectL(KGlxMdeCameraAlbumUri);
-	if ( !cameraAlbum )
-		{
-		User::Leave(KErrCorrupt);
-		}
-	iCameraAlbumId = (TGlxMediaId)cameraAlbum->Id();
-	delete cameraAlbum;
-
-	CMdEObject* favorites = iSession->GetObjectL(KGlxMdeFavoritesUri);
-	if ( !favorites )
-		{
-		User::Leave(KErrCorrupt);
-		}
-	iFavoritesId = (TGlxMediaId)favorites->Id();
-	delete favorites;
-
-    iContainsDef = iNameSpaceDef->GetRelationDefL(KRelationDefNameContains);
-    
-    iObjectDef = iNameSpaceDef->GetObjectDefL(KObjectDefNameObject);
-    iImageDef = iNameSpaceDef->GetObjectDefL(KObjectDefNameImage);
-    iVideoDef = iNameSpaceDef->GetObjectDefL(KObjectDefNameVideo);
-    iMediaDef = iNameSpaceDef->GetObjectDefL(KObjectDefNameMedia);
-    iAlbumDef = iNameSpaceDef->GetObjectDefL(KObjectDefNameAlbum);
-    iTagDef = iNameSpaceDef->GetObjectDefL(KObjectDefNameTag);
-    iMonthDef = iNameSpaceDef->GetObjectDefL(KObjectDefNameMonth);
-    iLocationDef = iNameSpaceDef->GetObjectDefL(KObjectDefLocation);
-	
-	AddMdEObserversL();
-	
-	PrepareMonthsL();
-	}
-
-void CGlxDataSourceMde::AddMdEObserversL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::AddMdEObserversL()");
-	iSession->AddRelationObserverL(*this);
-	iSession->AddRelationPresentObserverL(*this);
-	
-	iSession->AddObjectObserverL(*this);
-	iSession->AddObjectPresentObserverL(*this);
-    }
-
-void CGlxDataSourceMde::HandleObjectAdded(CMdESession& /*aSession*/, const RArray<TItemId>& aObjectIdArray)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleObjectAdded()");
-	ProcessUpdateArray(aObjectIdArray, EMPXItemInserted, ETrue);
-	}
-
-void CGlxDataSourceMde::HandleObjectModified(CMdESession& /*aSession*/, const RArray<TItemId>& aObjectIdArray)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleObjectModified()");
-	ProcessUpdateArray(aObjectIdArray, EMPXItemModified, ETrue);
-	}
-
-void CGlxDataSourceMde::HandleObjectRemoved(CMdESession& /*aSession*/, const RArray<TItemId>& aObjectIdArray)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleObjectRemoved()");
-	ProcessUpdateArray(aObjectIdArray, EMPXItemDeleted, ETrue);
-	}
-
-void CGlxDataSourceMde::HandleObjectPresent(CMdESession& /*aSession*/, const RArray<TItemId>& aObjectIdArray)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleObjectPresent()");
-	ProcessUpdateArray(aObjectIdArray, EMPXItemInserted, ETrue);
-	}
-void CGlxDataSourceMde::HandleObjectNotPresent(CMdESession& /*aSession*/, const RArray<TItemId>& aObjectIdArray)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleObjectNotPresent()");
-	ProcessUpdateArray(aObjectIdArray, EMPXItemDeleted, ETrue);
-	}
-void CGlxDataSourceMde::HandleRelationAdded(CMdESession& /*aSession*/, const RArray<TItemId>& aRelationIdArray)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleRelationAdded()");
-	ProcessUpdateArray(aRelationIdArray, EMPXItemInserted, EFalse);
-	}
-void CGlxDataSourceMde::HandleRelationRemoved(CMdESession& /*aSession*/, const RArray<TItemId>& aRelationIdArray)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleRelationRemoved()");
-	ProcessUpdateArray(aRelationIdArray, EMPXItemDeleted, EFalse);
-	}
-void CGlxDataSourceMde::HandleRelationModified(CMdESession& /*aSession*/, const RArray<TItemId>& /*aRelationIdArray*/)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleRelationModified()");
-	// not used until ordinals are required
-	}
-void CGlxDataSourceMde::HandleRelationPresent(CMdESession& /*aSession*/, const RArray<TItemId>& aRelationIdArray)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleRelationPresent()");
-	ProcessUpdateArray(aRelationIdArray, EMPXItemInserted, EFalse);
-    }
-void CGlxDataSourceMde::HandleRelationNotPresent(CMdESession& /*aSession*/, const RArray<TItemId>& aRelationIdArray)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::HandleRelationNotPresent()");
-	ProcessUpdateArray(aRelationIdArray, EMPXItemDeleted, EFalse);
-    }
-void CGlxDataSourceMde::ProcessUpdateArray(const RArray<TItemId>& aArray, TMPXChangeEventType aType, TBool aIsObject)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::ProcessUpdateArray()");
-    // only need one message so process first item
-    TUpdateData update;
-    update.iId = aArray[0];
-    update.iType = aType;
-    update.iIsObject = aIsObject;
-    if( iUpdateData.Count() )
-        {
-        if( ( iUpdateData[0].iType == aType ) && ( iUpdateData[0].iIsObject ) )
-            {
-            return;
-            }
-        }
-    if( iUpdateData.Append(update) == KErrNone ) // if we can't allocate space for the update, ignore it
-        {
-        iUpdateCallback->CallBack();
-        }
-	}
-TInt CGlxDataSourceMde::CreateSession(TAny* aPtr)
-    {
-    GLX_LOG_ENTRY_EXIT("TInt CGlxDataSourceMde::CreateSession(TAny* aPtr)");
-    CGlxDataSourceMde* self
-                    = reinterpret_cast<CGlxDataSourceMde*>( aPtr );
-    TRAP_IGNORE(self->CreateSessionL());
-    return 0;
-    }
-    
-void CGlxDataSourceMde::CreateSessionL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::CreateSessionL()");
-	iSession = CMdESession::NewL( *this );
-    }
-            
-
-TInt CGlxDataSourceMde::ProcessItemUpdate(TAny* aPtr)
-    {
-    GLX_LOG_ENTRY_EXIT("TInt CGlxDataSourceMde::ProcessItemUpdate(TAny* aPtr)");
-    CGlxDataSourceMde* self
-                    = reinterpret_cast<CGlxDataSourceMde*>( aPtr );
-    TRAP_IGNORE(self->ProcessItemUpdateL());
-    return 0;
-    }
-    
-void CGlxDataSourceMde::ProcessItemUpdateL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::ProcessItemUpdateL()");
-    if ( !iUpdateData.Count() || iPauseUpdate )
-        {
-        return;
-        }
-        
-    CMPXMessage* message = CMPXMessage::NewL();
-    CleanupStack::PushL(message);
-    message->SetTObjectValueL<TInt>(KMPXMessageGeneralId, KMPXMessageIdItemChanged);
-    message->SetTObjectValueL<TMPXChangeEventType>(KMPXMessageChangeEventType, iUpdateData[0].iType);
-    TMPXGeneralCategory category = EMPXNoCategory;
-	TMPXItemId id = iUpdateData[0].iId;
-	
-	GLX_LOG_INFO2("CGlxDataSourceMde::ProcessItemUpdateL() cat%d, item id %d", category, id.iId1);
-#ifdef __USING_INTELLIGENT_UPDATE_FILTERING
-	if ( !iUpdateData[0].iIsObject )
-		{
-		TMPXGeneralCategory containerCategory = EMPXNoCategory;
-		TMPXItemId containerId;
-		
-		CMdERelation* relation = iSession->GetRelationL(id);
-		if( relation )
-			{
-			TItemId rightId = relation->RightObjectId();
-			TItemId leftId = relation->LeftObjectId();
-    		delete relation;
-    		
-    		CMdEObject* contObject = iSession->GetObjectL(leftId);
-   		    __ASSERT_DEBUG(contObject, Panic(EGlxPanicIllegalState));
-    		TContainerType container = ContainerType(contObject);
-    		delete contObject;
-	    	__ASSERT_DEBUG(( EContainerTypeTag != container), Panic(EGlxPanicIllegalState));
-    		if( EContainerTypeNotAContainer == container )
-    			{
-    			CMdEObject* rightObject = iSession->GetObjectL(rightId);
-    		    __ASSERT_DEBUG(rightObject, Panic(EGlxPanicIllegalState));
-    			TContainerType rightContainer = ContainerType(rightObject);
-    			delete rightObject;
-   		    	__ASSERT_DEBUG(( EContainerTypeAlbum != rightContainer), Panic(EGlxPanicIllegalState));
-    			if( EContainerTypeTag == rightContainer )
-    				{
-        			id = leftId;
-        			containerId = rightId;
-    		    	containerCategory = EMPXTag;
-    				}
-    			else if( EContainerTypeNotAContainer == rightContainer )
-    				{
-    				User::Leave(KErrNotSupported); // Not a gallery relation.
-    				}
-    			}
-    		else if( EContainerTypeAlbum == container)
-    	    	{
-    			id = rightId;
-    			containerId = leftId;
-    	    	containerCategory = EMPXAlbum;
-    	    	}
-    		message->SetTObjectValueL<TMPXGeneralCategory>(KGlxCollectionMessageContainerCategory, containerCategory);
-    		message->SetTObjectValueL<TMPXItemId>(KGlxCollectionMessageContainerId, containerId);
-			}
-	    else
-	        {
-	        // use id 0 to identify to ML that we don't know what was deleted
-	        id = 0;
-	        }
-		}
-
-	if ( id != 0 )
-	    {
-	    CMdEObject* object = iSession->GetObjectL(id);
-    	if( object )
-    		{
-        	TContainerType container = ContainerType(object);
-            if( EContainerTypeAlbum == container)
-            	{
-            	category = EMPXAlbum;
-            	}
-            else if( EContainerTypeTag == container)
-            	{
-            	category = EMPXTag;
-            	}
-            else
-            	{
-            	TItemType item = ItemType(object);
-                if( EItemTypeImage == item)
-                	{
-                	category = EMPXImage;
-                	}
-                else if( EItemTypeVideo == item)
-                	{
-                	category = EMPXVideo;
-                	}
-            	}
-        	delete object;
-    		}
-	    }
-#endif // __USING_INTELLIGENT_UPDATE_FILTERING
-	message->SetTObjectValueL<TMPXGeneralCategory>(KMPXMessageMediaGeneralCategory, category);
-   	message->SetTObjectValueL<TMPXItemId>(KMPXMessageMediaGeneralId, id);
-    BroadcastMessage(*message); 
-    CleanupStack::PopAndDestroy(message);
-    iUpdateData.Remove(0);
-    }
-
-CGlxDataSource::TContainerType CGlxDataSourceMde::ContainerType(CMdEObject* aObject)
-	{
-    GLX_LOG_ENTRY_EXIT("TContainerType CGlxDataSourceMde::ContainerType()");
-	TContainerType containerType = EContainerTypeNotAContainer;
- 	
-	if( 0 == aObject->Def().Compare(*iAlbumDef) )
-		{
-		containerType = EContainerTypeAlbum;
-		}
-	else if( 0 == aObject->Def().Compare(*iTagDef) )
-		{
-		containerType = EContainerTypeTag;
-		}
-	else if( 0 == aObject->Def().Compare(*iMonthDef) )
-	    {
-		containerType = EContainerTypeMonth;
-	    }
-
-	return containerType;
-	}
-	
-CGlxDataSource::TContainerType CGlxDataSourceMde::ContainerType(CMdEObjectDef* aObjectDef)
-	{
-    GLX_LOG_ENTRY_EXIT("TContainerType CGlxDataSourceMde::ContainerType()");
-	TContainerType containerType = EContainerTypeNotAContainer;
- 	
-	if( 0 == aObjectDef->Compare(*iAlbumDef) )
-		{
-		containerType = EContainerTypeAlbum;
-		}
-	else if( 0 == aObjectDef->Compare(*iTagDef) )
-		{
-		containerType = EContainerTypeTag;
-		}
-	else if( 0 == aObjectDef->Compare(*iMonthDef) )
-	    {
-		containerType = EContainerTypeMonth;
-	    }
-
-	return containerType;
-	}
-CGlxDataSource::TItemType CGlxDataSourceMde::ItemType(CMdEObject* aObject)
-	{
-    GLX_LOG_ENTRY_EXIT("TItemType CGlxDataSourceMde::ItemType()");
-	TItemType itemType = EItemTypeNotAnItem;
-	
-	if( 0 == aObject->Def().Compare(*iImageDef) )
-		{
-		itemType = EItemTypeImage;
-		}
-	else if(0 == aObject->Def().Compare(*iVideoDef) )
-		{
-		itemType = EItemTypeVideo;
-		}
-	
-	return itemType;
-	}
-void CGlxDataSourceMde::PrepareMonthsL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceMde::PrepareMonthsL()");
-    TTime month(0);
-    iFirstMonth = month;
-    }
-const TGlxMediaId CGlxDataSourceMde::GetMonthIdL(const TTime& aMonth)
-    {
-    GLX_LOG_ENTRY_EXIT("TGlxMediaId CGlxDataSourceMde::GetMonthIdL()");
-    TTime monthStart = iFirstMonth + aMonth.MonthsFrom(iFirstMonth);
-    const TTimeIntervalMonths KGlxOneMonth = 1;
-    const TTimeIntervalMicroSeconds KGlxOneMicrosecond = 1;
-
-    TGlxMediaId monthId;    
-    TInt monthIndex = iMonthArray.Find(monthStart);
-    if( monthIndex != KErrNotFound )
-        {
-        monthId = iMonthList[monthIndex];
-        }
-    else
-        {
-        _LIT(KGlxMonthTitleFormat, "%F%Y%M%D:");
-        const TInt KGlxMonthTitleLength = 12;
-        TBuf<KGlxMonthTitleLength> title;
-        monthStart.FormatL(title, KGlxMonthTitleFormat);
-        
-        CMdEObject* month = iSession->GetObjectL(title);
-        if( month )
-            {
-            monthId = (TGlxMediaId)month->Id();
-            iMonthArray.AppendL(monthStart);
-            iMonthList.AppendL(monthId);
-            delete month;
-            }
-        else
-            {
-            TTime monthEnd = monthStart + KGlxOneMonth - KGlxOneMicrosecond;
-            month = iSession->NewObjectLC(*iMonthDef, title); 
-            
-            // A title property def of type text is required.
-            CMdEPropertyDef* titlePropertyDef = iObjectDef->GetPropertyDefL(KPropertyDefNameTitle);
-            if (!titlePropertyDef || titlePropertyDef->PropertyType() != EPropertyText)
-            	{
-            	User::Leave(KErrCorrupt);
-            	}
-            // Set the object title.
-            month->AddTextPropertyL (*titlePropertyDef, title);
-
-            // A size property is required.
-            CMdEPropertyDef* sizePropertyDef = iObjectDef->GetPropertyDefL(KPropertyDefNameSize);
-            if (!sizePropertyDef  || sizePropertyDef->PropertyType() != EPropertyUint32)
-            	{
-            	User::Leave(KErrCorrupt);
-            	}
-            month->AddUint32PropertyL(*sizePropertyDef,0);
-
-            
-            // A creation date property is required.
-        	CMdEPropertyDef* creationDateDef = iObjectDef->GetPropertyDefL(KPropertyDefNameCreationDate);
-            if (!creationDateDef  || creationDateDef->PropertyType() != EPropertyTime)
-            	{
-            	User::Leave(KErrCorrupt);
-            	}
-        	month->AddTimePropertyL(*creationDateDef, monthStart);
-
-            // A last modified date property is required.
-        	CMdEPropertyDef* lmDateDef = iObjectDef->GetPropertyDefL(KPropertyDefNameLastModifiedDate);
-            if (!lmDateDef  || lmDateDef->PropertyType() != EPropertyTime)
-            	{
-            	User::Leave(KErrCorrupt);
-            	}
-            
-        	month->AddTimePropertyL(*lmDateDef, monthEnd);
-        	
-            monthId = (TGlxMediaId)iSession->AddObjectL(*month);
-            CleanupStack::PopAndDestroy(month);
-            iMonthArray.AppendL(monthStart);
-            iMonthList.AppendL(monthId);
-            }
-        }
-    return monthId;
-    }
-TBool CGlxDataSourceMde::SameMonth(const TTime& aOldDate, const TTime& aNewDate)
-    {
-    GLX_LOG_ENTRY_EXIT("TBool CGlxDataSourceMde::SameMonth(const TTime& aOldDate, const TTime& aNewDate)");
-    return ( aOldDate.MonthsFrom(iFirstMonth) == aNewDate.MonthsFrom(iFirstMonth) );
-    }
-
-TBool CGlxDataSourceMde::ContainerIsLeft(CMdEObjectDef& aObjectDef)
-    {
-    GLX_LOG_ENTRY_EXIT("TBool CGlxDataSourceMde::ContainerIsLeft(CMdEObjectDef& aObjectDef)");
-    TBool containerLeft = EFalse;
-    if ( 0 == aObjectDef.Compare(AlbumDef()) )
-        {
-        containerLeft = ETrue;
-        }
-    return containerLeft;
-    }
-
-void CGlxDataSourceMde::TaskCompletedL()
-    {
-    iPauseUpdate = EFalse;
-    iUpdateCallback->CallBack();
-    }
-
-void CGlxDataSourceMde::TaskStartedL()
-    {
-    iPauseUpdate = ETrue;
-    }
-
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcemdeproxy.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/*
-* Copyright (c) 2006 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
-*
-*/
-
-
-
-
-/**
- * @internal reviewed 11/07/2007 by M Byrne
- */
-
-#include <implementationproxy.h>
-#include "glxdatasourcemde.h"
-#include "glxdatasourcemde.hrh"
-
-// ----------------------------------------------------------------------------
-// The list of implementations
-// ----------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] =
-    { IMPLEMENTATION_PROXY_ENTRY(KGlxDataSourceMdeImplementationUid,
-                                    CGlxDataSourceMde::NewL) };
-
-// ----------------------------------------------------------------------------
-// The proxy of implementations
-// ----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-    {
-    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-    return ImplementationTable;
-    }
-
-// End of File
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmde.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,663 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-/**
- * @internal reviewed 11/07/2007 by M Byrne
- * @internal reviewed 24/07/2007 by K Hoikka, SCO 403-8472 removal of all view
- */
-
-
-#include "glxdatasourcetaskmde.h"
-
-#include <glxcollectionpluginCamera.hrh>
-#include <glxcollectionpluginDownloads.hrh>
-#include <glxcollectionpluginMonths.hrh>
-#include <glxcollectionpluginalbums.hrh>
-#include <glxcollectionpluginall.hrh>
-#include <glxcollectionplugintags.hrh>
-#include <glxerrors.h>
-#include <glxfilterfactory.h>
-#include <glxgetrequest.h>
-#include <glxidlistrequest.h>
-#include <glxlog.h>
-#include <glxmediacollectioninternaldefs.h>
-#include <glxmediageneraldefs.h>
-#include <glxrequest.h>
-#include <glxthumbnailattributeinfo.h>
-#include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
-#include <glxtnfileinfo.h>
-#include <glxtnthumbnailcreator.h>
-#include <lbsposition.h>
-#include <mdeconstants.h>
-#include <mdelogiccondition.h>
-#include <mdeobject.h>
-#include <mdeobjectdef.h>
-#include <mdeobjectquery.h>
-#include <mdepropertydef.h>
-#include <mderelationdef.h>
-#include <mdesession.h>
-#include <mdetextproperty.h>
-#include <mpxmedia.h>
-#include <mpxmediaarray.h> 
-#include <mpxmediacollectiondetaildefs.h>
-#include <mpxmediacontainerdefs.h>
-#include <mpxmediadrmdefs.h>
-#include <mpxmediageneraldefs.h>
-
-#include "glxdatasourcemde.h"
-#include "glxdatasourcemde.hrh"
-
-// CONSTANTS
-_LIT(KPropertyDefNameCreationDate, "CreationDate");
-_LIT(KPropertyDefNameLastModifiedDate, "LastModifiedDate");
-_LIT(KPropertyDefNameTitle, "Title");
-_LIT(KPropertyDefNameDRM, "DRM");
-_LIT(KPropertyDefNameUsageCount, "UsageCount");
-_LIT(KPropertyDefNameFrameCount, "FrameCount");
-_LIT(KPropertyDefNameOrigin, "Origin");
-
-// ----------------------------------------------------------------------------
-//  Constructor
-// ----------------------------------------------------------------------------
-//  
-CGlxDataSourceTaskMde:: CGlxDataSourceTaskMde(CGlxRequest* aRequest, 
-        MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource)
-    : CGlxDataSourceTask(aRequest, aObserver, aDataSource)
-    {
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMde::CGlxDataSourceTaskMde()");
-    // No implementation required
-    }
-
-// ----------------------------------------------------------------------------
-//  Destructor
-// ----------------------------------------------------------------------------
-//  
-CGlxDataSourceTaskMde::~CGlxDataSourceTaskMde()
-    {
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMde::~CGlxDataSourceTaskMde()");
-    DestroyQueries();
-    }
-
-// ----------------------------------------------------------------------------
-//  Second stage constructor
-// ----------------------------------------------------------------------------
-//  	
-void CGlxDataSourceTaskMde::ConstructL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::ConstructL()");
-    CreateResponseL();
-    DataSource()->ThumbnailCreator().CancelRequest( TGlxMediaId(0) );
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::CancelRequest
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMde::CancelRequest()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::CancelRequest()");
-    DestroyQueries();
-    iCancelled = ETrue;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::HandleQueryNewResults
-// ----------------------------------------------------------------------------
-//      
-void CGlxDataSourceTaskMde::HandleQueryNewResults( CMdEQuery& /*aQuery*/,
-                                                     TInt /*aFirstNewItemIndex*/,
-                                                     TInt /*aNewItemCount*/ )
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::HandleQueryNewResults()");
-    // Not used.
-    }
-
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::HandleQueryNewResults
-// ----------------------------------------------------------------------------
-//    
-void CGlxDataSourceTaskMde::HandleQueryNewResults( CMdEQuery& /*aQuery*/,
-                                TInt /*aNewObjectItemCount*/,
-                                TInt /*aNewRelationItemCount*/,
-                                TInt /*aNewEventItemCount*/)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::HandleQueryNewResults()");
-    // Not used.
-    }
-
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::HandleQueryCompleted
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMde::HandleQueryCompleted(CMdEQuery& aQuery, TInt aError)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::HandleQueryCompleted()");
-    __ASSERT_ALWAYS(&aQuery == iQueries[0], Panic(EGlxPanicQueryLogicError));
-
-    TInt err = aError;
-    if (err == KErrNone)
-        {
-        TRAP(err, HandleQueryCompletedL(aQuery));
-        }
-
-    if (err != KErrNone)
-        {
-        HandleRequestComplete(err);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::DataSource
-// ----------------------------------------------------------------------------
-//   
-CGlxDataSourceMde* CGlxDataSourceTaskMde::DataSource()
-    {
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceMde* CGlxDataSourceTaskMde::DataSource()");
-    return static_cast<CGlxDataSourceMde*>(iDataSource);
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::AddMonthFilterL
-// ----------------------------------------------------------------------------
-//     
-void CGlxDataSourceTaskMde::AddMonthFilterL(const TGlxMediaId& aContainerId, TGlxFilterProperties& aFilterProperties)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::AddMonthFilterL()");
-    CMdEObject* month = DataSource()->Session().GetObjectL(aContainerId.Value());
-    if( !month )
-        {
-        User::Leave(KErrNotFound);
-        }
-    CleanupStack::PushL(month);
-    
-    AddMonthFilterL(month, aFilterProperties);
-        
-    CleanupStack::PopAndDestroy(month);
-    }
-
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::AddMonthFilterL
-// ----------------------------------------------------------------------------
-//   
-void CGlxDataSourceTaskMde::AddMonthFilterL(CMdEObject* aMonth, TGlxFilterProperties& aFilterProperties)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::AddMonthFilterL()");
-    CMdEPropertyDef* creationDateDef = DataSource()->ObjectDef().GetPropertyDefL(KPropertyDefNameCreationDate);
-    if (!creationDateDef  || creationDateDef->PropertyType() != EPropertyTime)
-        {
-        User::Leave(KErrCorrupt);
-        }
-
-    CMdEPropertyDef* lmDateDef = DataSource()->ObjectDef().GetPropertyDefL(KPropertyDefNameLastModifiedDate);
-    if (!lmDateDef  || lmDateDef->PropertyType() != EPropertyTime)
-        {
-        User::Leave(KErrCorrupt);
-        }
-        
-    CMdEProperty* startDate;
-    TInt startDateIndex = aMonth->Property(*creationDateDef, startDate);
-    if( KErrNotFound == startDateIndex) 
-        {
-        User::Leave(KErrCorrupt);
-        }
-    aFilterProperties.iStartDate = static_cast<CMdETimeProperty*>(startDate)->Value();
-     
-    CMdEProperty* endDate;
-    TInt endDateIndex = aMonth->Property(*lmDateDef, endDate);
-    if( KErrNotFound == endDateIndex) 
-        {
-        User::Leave(KErrCorrupt);
-        }
-    aFilterProperties.iEndDate = static_cast<CMdETimeProperty*>(endDate)->Value();
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::SetQueryConditionsL
-// ----------------------------------------------------------------------------
-//    
-void CGlxDataSourceTaskMde::SetQueryConditionsL(CMdEQuery& aQuery, const TGlxFilterProperties& aFilterProperties, const TGlxMediaId aContainerId, CMdEObjectDef& aObjectDef)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::SetQueryConditionsL()");
-    CMdELogicCondition& rootCondition = aQuery.Conditions();
-    CMdEObjectDef* objectDef = &aObjectDef;
-
-    SetQueryFilterConditionsL(rootCondition, *objectDef, aFilterProperties);
-    SetSortOrderL(aQuery, aObjectDef, aFilterProperties);
-    
-    if( KGlxCollectionRootId != aContainerId.Value() )
-        {
-        CMdELogicCondition* containerCondition = NULL;
-        CMdERelationCondition* relationCondition = NULL;
-        objectDef = &DataSource()->ObjectDef();
-        if( DataSource()->ContainerIsLeft(aObjectDef) )
-            {
-            relationCondition = &rootCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideRight);
-            containerCondition = &relationCondition->LeftL();
-            }
-        else
-            {
-            relationCondition = &rootCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideLeft);
-            containerCondition = &relationCondition->RightL();
-            }
-        containerCondition->AddObjectConditionL(aContainerId.Value());
-        }
-
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::SetQueryFilterConditionsL
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMde::SetQueryFilterConditionsL(CMdELogicCondition& 
-                                   aLogicCondition, CMdEObjectDef& aObjectDef,
-                                 const TGlxFilterProperties& aFilterProperties)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::SetQueryFilterConditionsL()");
-    
-    if( aFilterProperties.iUri )
-        {
-        aLogicCondition.AddObjectConditionL(EObjectConditionCompareUri, 
-                                                     *aFilterProperties.iUri);
-        }
-
-    if( 0 == aObjectDef.Compare(DataSource()->ObjectDef()) ) 
-        {
-        // Filter on content type
-        if ( EGlxFilterVideoAndImages == aFilterProperties.iItemType )
-            {
-            CMdELogicCondition& logicCondition = 
-                aLogicCondition.AddLogicConditionL(ELogicConditionOperatorOr);
-            logicCondition.AddObjectConditionL( DataSource()->ImageDef() ); 
-            logicCondition.AddObjectConditionL( DataSource()->VideoDef() );
-            }
-        }
-    
-    if( ( aFilterProperties.iMinCount > 0 ) && ( CGlxDataSource::EContainerTypeNotAContainer != DataSource()->ContainerType(&aObjectDef) ) )
-        {
-        CMdEPropertyDef* itemCountProperty = 
-                         aObjectDef.GetPropertyDefL(KPropertyDefNameUsageCount);
-        aLogicCondition.AddPropertyConditionL(*itemCountProperty, 
-                              TMdEIntGreaterEqual(aFilterProperties.iMinCount));
-        }
-
-    if( 0 != aFilterProperties.iContainsItem.Value() )
-        {
-        
-        if( DataSource()->ContainerIsLeft(aObjectDef) )
-            {
-            CMdERelationCondition& relationCondition = 
-                    aLogicCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideLeft);
-            relationCondition.RightL().AddObjectConditionL(aFilterProperties.iContainsItem.Value());
-            }
-        else
-            {
-            CMdERelationCondition& relationCondition = aLogicCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideRight);
-            relationCondition.LeftL().AddObjectConditionL(aFilterProperties.iContainsItem.Value());
-            }
-        }
-        
-    if( EGlxFilterOriginNotUsed != aFilterProperties.iOrigin )
-        {
-        CMdEPropertyDef* originProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameOrigin);
-        if(originProperty)
-            {
-            if( EGlxFilterOriginDownload == aFilterProperties.iOrigin )
-                {
-#ifdef GLX_NO_ALL_VIEW
-                // The download collection shows all but captured items
-                aLogicCondition.AddPropertyConditionL(*originProperty, TMdEUintNotEqual(MdeConstants::Object::ECamera));
-#else
-                // The download collection shows only downloaded items
-                aLogicCondition.AddPropertyConditionL(*originProperty, TMdEUintEqual(MdeConstants::Object::EDownloaded));
-#endif            
-                }
-            }
-        }
-        
-    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);
-        if( frameCountProperty )
-            {
-            aLogicCondition.AddPropertyConditionL(*frameCountProperty, TMdEIntLess(excludeAllImagesAboveOrEqualToThisFrameCount));
-            }
-        }
-        
-    if( aFilterProperties.iNoDRM )
-        {
-        __ASSERT_DEBUG((EGlxFilterImage == aFilterProperties.iItemType), Panic(EGlxPanicIllegalArgument));
-        // Exclude any image which is DRM protected
-        CMdEPropertyDef* drmProperty = DataSource()->ImageDef().GetPropertyDefL(KPropertyDefNameDRM);
-        if( drmProperty )
-            {
-            aLogicCondition.AddPropertyConditionL(*drmProperty, EFalse);
-            }
-        }
-        
-    if( aFilterProperties.iPath )          // If this is set. Then we need to filter on the Ids it supplies
-        {
-        TArray<TInt> selection = aFilterProperties.iPath->Selection();
-        TInt selectionCount = selection.Count();
-        RArray<TItemId> itemList;
-        CleanupClosePushL(itemList);
-        GLX_DEBUG2("Reading Ids from Path, count = %d", selectionCount);
-        if( selectionCount )
-            {
-            for( TInt i = 0; i < selectionCount; i++ )
-                {
-                const TMPXItemId& itemId = aFilterProperties.iPath->IdOfIndex(selection[i]);
-                itemList.AppendL(itemId);
-                }
-            aLogicCondition.AddObjectConditionL(itemList);
-            }
-        CleanupStack::Pop(&itemList);
-        }
-        
-    if( !aFilterProperties.iIncludeCameraAlbum )
-        {
-        CMdEObjectCondition& objectCondition = aLogicCondition.AddObjectConditionL(DataSource()->CameraAlbumId().Value());
-        objectCondition.SetNegate(ETrue);
-        }
-    
-    if( TTime(0) != aFilterProperties.iStartDate )
-        {
-        CMdEPropertyDef* creationDateDef = aObjectDef.GetPropertyDefL(KPropertyDefNameCreationDate);
-        if (!creationDateDef  || creationDateDef->PropertyType() != EPropertyTime)
-            {
-            User::Leave(KErrCorrupt);
-            }
-
-        aLogicCondition.AddPropertyConditionL(*creationDateDef, TMdETimeBetween(aFilterProperties.iStartDate, aFilterProperties.iEndDate));
-        }
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::SetSortOrderL
-// ----------------------------------------------------------------------------
-// 
-void CGlxDataSourceTaskMde::SetSortOrderL(CMdEQuery& aQuery, CMdEObjectDef& aObjectDef, 
-                                         const TGlxFilterProperties& aFilterProperties)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::SetSortOrderL()");
-    switch(aFilterProperties.iSortOrder)
-        {
-        case EGlxFilterSortOrderAlphabetical:
-            {
-            CMdEPropertyDef* titleProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameTitle);
-            TMdEOrderRule orderRule(*titleProperty, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending);
-            orderRule.SetType(EOrderRuleTypeProperty);
-            orderRule.SetCaseSensitive(EFalse);
-            aQuery.AppendOrderRuleL(orderRule);
-            break;
-            }
-         case EGlxFilterSortOrderItemCount:
-            {
-            CMdEPropertyDef* itemCountProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameUsageCount);
-            TMdEOrderRule orderRule(*itemCountProperty, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending);
-            orderRule.SetType(EOrderRuleTypeProperty);
-            aQuery.AppendOrderRuleL(orderRule);
-            break;
-            }
-        case EGlxFilterSortOrderCaptureDate:
-            {
-            CMdEPropertyDef* creationDateProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameCreationDate);
-            TMdEOrderRule orderRule(*creationDateProperty, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending);
-            orderRule.SetType(EOrderRuleTypeProperty);
-            aQuery.AppendOrderRuleL(orderRule);
-            TMdEOrderRule orderRule2(EOrderRuleTypeItemID, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending);
-            aQuery.AppendOrderRuleL(orderRule2);
-            break;
-            }
-         case EGlxFilterSortOrderModifiedDate:
-            {
-            CMdEPropertyDef* modifiedDateProperty = aObjectDef.GetPropertyDefL(KPropertyDefNameLastModifiedDate);
-            TMdEOrderRule orderRule(*modifiedDateProperty, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending);
-            orderRule.SetType(EOrderRuleTypeProperty);
-            aQuery.AppendOrderRuleL(orderRule);
-            TMdEOrderRule orderRule2(EOrderRuleTypeItemID, aFilterProperties.iSortDirection == EGlxFilterSortDirectionAscending);
-            aQuery.AppendOrderRuleL(orderRule2);
-            break;
-            }
-        case EGlxFilterSortOrderNotUsed:
-            {
-            break;
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::MaxQueryResultsCount
-// ----------------------------------------------------------------------------
-// 
-TInt CGlxDataSourceTaskMde::MaxQueryResultsCount(const TGlxFilterProperties& aFilterProperties) const
-    {
-    GLX_LOG_ENTRY_EXIT("TInt CGlxDataSourceTaskMde::MaxQueryResultsCount()");
-    TInt ret = KMdEQueryDefaultMaxCount;
-    if (aFilterProperties.iLastCaptureDate)
-        {
-        ret = 1;
-        }
-    return ret;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::RemoveQuery
-// ----------------------------------------------------------------------------
-// 
-void CGlxDataSourceTaskMde::RemoveQuery()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::RemoveQuery()");
-    CMdEQuery* query = iQueries[0];
-    iQueryTypes.Remove(0);
-    iQueries.Remove(0);
-    query->RemoveObserver(*this);
-    delete query;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::DoQueryL
-// ----------------------------------------------------------------------------
-// 	
-void CGlxDataSourceTaskMde::DoQueryL(CMdEObjectDef& aObjectDef, 
-        TBool aIsContent, TGlxQueryType aQueryType, TQueryResultMode aResultMode, 
-                                                const TGlxMediaId& aContainerId)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::DoQueryL()");
-    
-    CMdEObjectDef* queryBaseObject = &aObjectDef;
-    if( aIsContent )
-        {
-        switch(iFilterProperties.iItemType)
-            {
-            case EGlxFilterImage: 
-                {
-                queryBaseObject = &DataSource()->ImageDef();
-                break;
-                }
-            case EGlxFilterVideo:
-                {
-                queryBaseObject = &DataSource()->VideoDef();
-                break;
-                }
-            default:
-                {
-                queryBaseObject = &DataSource()->ObjectDef();
-                break;
-                }
-            }
-        }
-
-    CMdEQuery* query = DataSource()->Session().NewObjectQueryL(*DataSource()->NamespaceDef(), *queryBaseObject, this);
-    CleanupStack::PushL(query);
-    
-    SetQueryConditionsL(*query, iFilterProperties, aContainerId, aObjectDef);   
-    query->SetResultMode(aResultMode);
-    
-    CleanupStack::Pop(query);
-    
-    AppendQueryL(query, aQueryType);
-
-    query->FindL(MaxQueryResultsCount(iFilterProperties));    
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTask::QueueImageVideoObjectQueriesL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMde::QueueImageVideoObjectQueriesL(const RArray<TItemId>& aObjectIds,
-                                          const TGlxFilterProperties& aFilterProperties)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueImageVideoObjectQueriesL()");
-    if (aFilterProperties.iItemType == EGlxFilterImage)
-        {
-        // Only perform the image query
-        QueueObjectQueryL(DataSource()->ImageDef(), aObjectIds, EImageVideoQuery);
-        }
-    else if (aFilterProperties.iItemType == EGlxFilterVideo)
-        {
-        // Only perform the video query
-        QueueObjectQueryL(DataSource()->VideoDef(), aObjectIds, EImageVideoQuery);
-        }
-    else
-        {
-        QueueObjectQueryL(DataSource()->ImageDef(), aObjectIds, EImageVideoQuery);
-        QueueObjectQueryL(DataSource()->VideoDef(), aObjectIds, EImageVideoQuery);
-        // Perform both the image and video queries
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTask::QueueTagObjectQueryL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMde::QueueTagObjectQueryL(const RArray<TItemId>& aObjectIds)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueTagObjectQueryL()");
-    QueueObjectQueryL(DataSource()->TagDef(), aObjectIds, EImageVideoQuery);
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTask::QueueAlbumObjectQueryL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMde::QueueAlbumObjectQueryL(const RArray<TItemId>& aObjectIds)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueAlbumObjectQueryL()");
-    QueueObjectQueryL(DataSource()->AlbumDef(), aObjectIds, EImageVideoQuery);
-    }
-
-
-void CGlxDataSourceTaskMde::QueueMonthObjectQueryL(const RArray<TItemId>& aObjectIds)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueMonthObjectQueryL()");
-    QueueObjectQueryL(DataSource()->MonthDef(), aObjectIds, EImageVideoQuery);
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTask::QueueObjectQueryL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMde::QueueObjectQueryL(CMdEObjectDef& aObjectDef, 
-        const RArray<TItemId>& aObjectIds, const TGlxQueryType& aQueryType)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::QueueObjectQueryL()");
-    CMdEQuery* query = DataSource()->Session().NewObjectQueryL(*DataSource()->NamespaceDef(), aObjectDef,  this);
-    CleanupStack::PushL(query);
-    
-    CMdELogicCondition& lc = query->Conditions();
-    lc.AddObjectConditionL(aObjectIds);
- 
-    query->SetResultMode(EQueryResultModeObjectWithoutFreetexts);
-    
-    CleanupStack::Pop(query);
-    AppendQueryL(query, aQueryType);
-    
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::AppendQueryL
-// ----------------------------------------------------------------------------
-// 
-void CGlxDataSourceTaskMde::AppendQueryL(CMdEQuery* aQuery, const TGlxQueryType& aQueryType)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::AppendQueryL()");
-    CleanupStack::PushL(aQuery);
-    
-    TInt err = iQueryTypes.Append(aQueryType);
-    
-    if (KErrNone == err)
-        {
-        iQueries.AppendL(aQuery);
-        CleanupStack::Pop(aQuery);
-        }
-    else
-        {
-        User::Leave(err);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::ExecuteQueryL
-// ----------------------------------------------------------------------------
-// 
-void CGlxDataSourceTaskMde::ExecuteQueryL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::ExecuteQueryL()");
-    __ASSERT_DEBUG(iQueries.Count(), Panic(EGlxPanicQueryLogicError));
-    iQueries[0]->FindL();
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::HandleQueryCompletedL
-// ----------------------------------------------------------------------------
-// 
-void CGlxDataSourceTaskMde::HandleQueryCompletedL(CMdEQuery& aQuery)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::HandleQueryCompletedL()");
-    DoHandleQueryCompletedL(aQuery);
-    RemoveQuery();
-    DoNextQueryL();
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMde::DestroyQueries
-// ----------------------------------------------------------------------------
-// 
-void CGlxDataSourceTaskMde::DestroyQueries()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMde::DestroyQueries()");
-    for (TInt i = 0; i < iQueries.Count(); i++)
-        {
-        // Ensure that there are not any running queries
-        iQueries[i]->RemoveObserver(*this);
-        iQueries[i]->Cancel();
-        }
-    iQueries.ResetAndDestroy();
-    iQueryTypes.Close();
-    }
-
-
-
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeattribute.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1277 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-#include "glxdatasourcetaskmdeattribute.h"
-
-#include <glxcollectionpluginCamera.hrh>
-#include <glxcollectionpluginDownloads.hrh>
-#include <glxcollectionpluginMonths.hrh>
-#include <glxcollectionpluginalbums.hrh>
-#include <glxcollectionpluginall.hrh>
-#include <glxcollectionplugintags.hrh>
-#include <glxerrors.h>
-#include <glxfilterfactory.h>
-#include <glxgetrequest.h>
-#include <glxgetrequest.h>
-#include <glxidlistrequest.h>
-#include <glxlog.h>
-#include <glxmediacollectioninternaldefs.h>
-#include <glxmediageneraldefs.h>
-#include <glxrequest.h>
-#include <glxthumbnailattributeinfo.h>
-#include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
-#include <glxtnfileinfo.h>
-#include <glxtnthumbnailcreator.h>
-#include <imageconversion.h>
-#include <lbsposition.h>
-#include <mdeconstants.h>
-#include <mdelogiccondition.h>
-#include <mdeobject.h>
-#include <mdeobjectdef.h>
-#include <mdeobjectquery.h>
-#include <mdepropertydef.h>
-#include <mderelationdef.h>
-#include <mdesession.h>
-#include <mdetextproperty.h>
-#include <mpxmedia.h>
-#include <mpxmediaarray.h> 
-#include <mpxmediacollectiondetaildefs.h>
-#include <mpxmediacontainerdefs.h>
-#include <mpxmediadrmdefs.h>
-#include <mpxmediageneraldefs.h>
-
-#include "glxdatasourcemde.h"
-#include "glxdatasourcemde.h"
-#include "glxdatasourcemde.hrh"
-
-// CONSTANTS
-
-_LIT(KPropertyDefNameAlbumType, "Type");
-_LIT(KPropertyDefNameComment, "Comment");
-_LIT(KPropertyDefNameCreationDate, "CreationDate");
-_LIT(KPropertyDefNameDRM, "DRM");
-_LIT(KPropertyDefNameDuration, "Duration");
-_LIT(KPropertyDefNameFrameCount, "FrameCount");
-_LIT(KPropertyDefNameHeight, "Height");
-_LIT(KPropertyDefNameItemType, "ItemType");
-_LIT(KPropertyDefNameLastModifiedDate, "LastModifiedDate");
-_LIT(KPropertyDefNameLatitude, "Latitude");
-_LIT(KPropertyDefNameLongitude, "Longitude");
-_LIT(KPropertyDefNameSize, "Size");
-_LIT(KPropertyDefNameTitle, "Title");
-_LIT(KPropertyDefNameUsageCount, "UsageCount");
-_LIT(KPropertyDefNameWidth, "Width");
-
-// ----------------------------------------------------------------------------
-//  Constructor
-// ----------------------------------------------------------------------------
-//  
-CGlxDataSourceTaskMdeAttribute::CGlxDataSourceTaskMdeAttribute(CGlxGetRequest* aRequest, MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource)
-    : CGlxDataSourceTaskMde(aRequest, aObserver, aDataSource)
-    {
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMdeAttribute::CGlxDataSourceTaskMdeAttribute()");
-    iFilterProperties = TGlxFilterFactory::ExtractAttributes(iRequest->Filter());
-    }
-
-// ----------------------------------------------------------------------------
-//  Destructor
-// ----------------------------------------------------------------------------
-//  
-CGlxDataSourceTaskMdeAttribute::~CGlxDataSourceTaskMdeAttribute()
-	{
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMdeAttribute::~CGlxDataSourceTaskMdeAttribute()");
-    delete iMediaArray;
-    iQueryAttributes.Close();
-	}
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeAttribute::ExecuteRequestL
-// ----------------------------------------------------------------------------
-//      
-void CGlxDataSourceTaskMdeAttribute::ExecuteRequestL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::ExecuteRequestL()");
-    CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);
-        
-    __ASSERT_DEBUG(request->MediaIds().Count() > 0, User::Invariant());
-    
-    if (request->MediaIds().Count() > 1)
-        {
-        iMediaArray = CMPXMediaArray::NewL();
-        }
-    
-    if (request->MediaIds()[0] == KGlxCollectionRootId)
-    	{
-        __ASSERT_DEBUG(request->MediaIds().Count() == 1, User::Invariant());
-        AddCollectionAttributesL(iResponse);
-    	}
-    else
-    	{
-        
-        __ASSERT_DEBUG(dynamic_cast<CGlxGetRequest*>(iRequest), Panic(EGlxPanicLogicError));
-        CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);   
-
-        const RArray<TItemId>& mediaIds = reinterpret_cast<const RArray<TItemId>&>(request->MediaIds());
-        
-        switch(iFilterProperties.iItemType)
-            {
-            case EGlxFilterVideoAndImages:
-            case EGlxFilterImage:
-            case EGlxFilterVideo:
-                {
-            	QueueImageVideoObjectQueriesL(mediaIds, iFilterProperties);
-        	    if (LocationAttributeRequested())
-        	        {
-        	        QueueLocaitonQueryL();
-        	        }
-                break;
-                }
-            case EGlxFilterAlbum:
-                {
-            	QueueAlbumObjectQueryL(mediaIds);
-                break;
-                }
-            case EGlxFilterTag:
-                {
-                QueueTagObjectQueryL(mediaIds);
-                break;
-                }
-            case EGlxFilterMonth:
-                {
-                QueueMonthObjectQueryL(mediaIds);
-                break;
-                }
-            }
-        
-    	}
-
-    DoNextQueryL();
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::DoHandleQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::DoHandleQueryCompletedL(CMdEQuery& /*aQuery*/)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::DoHandleQueryCompletedL()");   
-    switch (iQueryTypes[0])
-        {
-        case ELocationAttributeQuery:
-            DoHandleLocationQueryCompletedL();
-        break;
-        case EAttributeQuery:
-            DoHandleAttributeQueryCompletedL();
-        break;
-        case EImageVideoQuery:
-            DoHandleImageVideoQueryCompletedL();
-        break;
-        case EContainerFirstItemQuery:
-            // Fall through to panic, DoHandleQueryCompletedL can't handle this query type.
-        default:
-            Panic(EGlxPanicLogicError);
-        break;
-        }  
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeAttribute::DoNextQueryL
-// ----------------------------------------------------------------------------
-//    
-void CGlxDataSourceTaskMdeAttribute::DoNextQueryL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::DoNextQueryL()");
-    if (iQueries.Count())
-        {
-        ExecuteQueryL();
-        }
-    else
-    	{
-    	DoHandleAttributeResponseCompleteL();
-    	}
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeAttribute::DoHandleAttributeResponseCompleteL
-// ----------------------------------------------------------------------------
-//     
-void CGlxDataSourceTaskMdeAttribute::DoHandleAttributeResponseCompleteL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::DoHandleAttributeResponseCompleteL()");
-    __ASSERT_DEBUG(dynamic_cast<CGlxGetRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);
-    if(request->MediaIds().Count() > 1)
-        {
-        iResponse->SetCObjectValueL(KMPXMediaArrayContents, iMediaArray);
-        iResponse->SetTObjectValueL(KMPXMediaArrayCount, iMediaArray->Count());
-        delete iMediaArray;
-        iMediaArray = NULL;
-        }
-    HandleRequestComplete(KErrNone);
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeAttribute::AddAttributesLC
-// ----------------------------------------------------------------------------
-//      
-void CGlxDataSourceTaskMdeAttribute::AddAttributesL(CMdEObject& aObject, CMPXMedia* aEntry)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::AddAttributesL(CMdEObject& aObject, CMPXMedia* aEntry)");
-    __ASSERT_DEBUG(dynamic_cast<CGlxGetRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    
-    CGlxDataSource::TContainerType containerType = DataSource()->ContainerType(&aObject);
-    if( containerType != CGlxDataSource::EContainerTypeNotAContainer )
-        {
-        AddContainerAttributesL(aEntry, &aObject, containerType);
-        }
-    else 
-        {
-        CGlxDataSource::TItemType itemType = DataSource()->ItemType(&aObject);
-        if ( itemType != CGlxDataSource::EItemTypeNotAnItem )
-            {
-            AddItemAttributesL(aEntry, &aObject, itemType);
-            }
-        else
-            {
-            User::Leave(KErrNotSupported);
-            }
-        }       
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeAttribute::AddCollectionAttributesL
-// ----------------------------------------------------------------------------
-//     
-void CGlxDataSourceTaskMdeAttribute::AddCollectionAttributesL(CMPXMedia* aEntry)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::AddCollectionAttributesL(CMPXMedia* aEntry)");
-    __ASSERT_DEBUG(aEntry, Panic(EGlxPanicLogicError));
-    __ASSERT_DEBUG(dynamic_cast<CGlxGetRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);
-    
-    for ( TInt i = 0; i < request->Attributes().Count(); i++ )
-        {
-        if ( request->Attributes()[i] == KMPXMediaGeneralId )
-            {
-            aEntry->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, (TMPXItemId)request->CollectionPluginUid().iUid);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralType )
-            {
-            aEntry->SetTObjectValueL(KMPXMediaGeneralType, EMPXNoType);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralCategory )
-            {
-            aEntry->SetTObjectValueL(KMPXMediaGeneralCategory, EMPXCollection);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralTitle )
-            {
-            request->AppendCpiAttributeL(KMPXMediaGeneralTitle);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralSystemItem )
-            {
-            aEntry->SetTObjectValueL(KGlxMediaGeneralSystemItem, ETrue);
-            }
-            
-        
- #ifdef GLX_SUB_TITLE_REL8
-            
-        //Attributes to get the Count of Images in Container                
-        else if	( request->Attributes()[i] == KGlxMediaItemTypeImage )    
-        	{
-        	TGlxMediaId container = TGlxMediaId(KGlxCollectionRootId);
-            CMdEObjectDef* objectDef = &DataSource()->ObjectDef();
-            TBool isContent = ETrue;
-            TGlxFilterProperties filterProperties = iFilterProperties;
-            
-            switch(iRequest->CollectionPluginUid().iUid)
-	            {
-	        	case KGlxCollectionPluginCameraImplementationUid:
-	        		{        		
-	                 container = DataSource()->CameraAlbumId();
-	                 objectDef = &DataSource()->AlbumDef();
-	                 filterProperties.iItemType = EGlxFilterImage;
-	                 QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, EQueryResultModeCount, container, request->Attributes()[i], aEntry,  filterProperties);
-	                 break;                    	
-	        		}
-	        	default:
-	        		{
-	        		break;	
-	        		}
-	        	 }
-        	}           	
-		
-		
-		//Attributes to get the Count of Videos in Container                    	
-         else if ( request->Attributes()[i] == KGlxMediaItemTypeVideo )    
-        	{
-        	TGlxMediaId container = TGlxMediaId(KGlxCollectionRootId);
-            CMdEObjectDef* objectDef = &DataSource()->ObjectDef();
-            TBool isContent = ETrue;
-            TGlxFilterProperties filterProperties = iFilterProperties;
-            
-            switch(iRequest->CollectionPluginUid().iUid)
-	            {
-	        	case KGlxCollectionPluginCameraImplementationUid:
-	        		{        		
-	                 container = DataSource()->CameraAlbumId();
-	                 objectDef = &DataSource()->AlbumDef();
-	                 filterProperties.iItemType = EGlxFilterVideo;
-	                 QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, EQueryResultModeCount, container, request->Attributes()[i], aEntry,  filterProperties);
-	                 break;                    	
-	        		}
-	        	default:
-	        		{
-	        		break;	
-	        		}
-	        	 }
-        	}
-        	
-#endif
-
-        	
-        else if ( ( request->Attributes()[i] == KMPXMediaGeneralCount ) || ( request->Attributes()[i] == KGlxMediaCollectionInternalUsageCount ) )
-            {
-            TGlxMediaId container = TGlxMediaId(KGlxCollectionRootId);
-            CMdEObjectDef* objectDef = &DataSource()->ObjectDef();
-            TBool isContent = ETrue;
-            TGlxFilterProperties filterProperties = iFilterProperties;
-            
-            switch(iRequest->CollectionPluginUid().iUid)
-                {
-
-                case KGlxCollectionPluginAlbumsImplementationUid:
-                    {
-                    isContent = EFalse;
-                    objectDef = &DataSource()->AlbumDef();
-                    break;
-                    }
-                case KGlxCollectionPluginCameraImplementationUid:
-                    {
-                    container = DataSource()->CameraAlbumId();
-                    objectDef = &DataSource()->AlbumDef();
-                    break;
-                    }
-                case KGlxTagCollectionPluginImplementationUid: 
-                    {
-                    isContent = EFalse;
-                    objectDef = &DataSource()->TagDef();
-                    break;
-                    }
-                case KGlxCollectionPluginMonthsImplementationUid:
-                    {
-                    container = DataSource()->CameraAlbumId();
-                    objectDef = &DataSource()->AlbumDef();
-                    break;
-                    }
-                default:
-                    {
-                    // default gallery query returns all objects as per filter
-                    break;
-                    }
-                }
-            QueueObjectQueryL(*objectDef, isContent, EAttributeQuery, EQueryResultModeCount, container, request->Attributes()[i], aEntry,  filterProperties);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaColDetailSpaceId )
-            {
-            aEntry->SetTObjectValueL(KMPXMediaColDetailSpaceId, KGlxDataSourceMdeImplementationUid);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaCollectionInternalStartDate )
-            {
-            TGlxFilterProperties filterProperties = iFilterProperties;
-            filterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate;
-            filterProperties.iSortDirection = EGlxFilterSortDirectionAscending;
-
-            QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeObjectWithoutFreetexts, DataSource()->CameraAlbumId(), KGlxMediaCollectionInternalStartDate, aEntry, filterProperties);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaCollectionInternalEndDate )
-            {
-            // not necessary to be requested, returned when StartDate requested
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralSlideshowableContent )
-            {
-            aEntry->SetTObjectValueL(KGlxMediaGeneralSlideshowableContent, 0);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaDrmProtected )
-            {
-            // collection itself is not protected
-            aEntry->SetTObjectValueL(KMPXMediaDrmProtected, EFalse); 
-            }
-        else
-            {
-            User::Leave(KErrNotSupported);
-            }
-        }
-    }
-
-
-    
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeAttribute::AddContainerAttributesL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::AddContainerAttributesL(CMPXMedia* aEntry, CMdEObject* aContainer, CGlxDataSource::TContainerType aType)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::AddContainerAttributesL()");
-    __ASSERT_DEBUG(aEntry, Panic(EGlxPanicLogicError));
-    __ASSERT_DEBUG(aContainer, Panic(EGlxPanicLogicError));
-    __ASSERT_DEBUG(dynamic_cast<CGlxGetRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);
-
-    /// @todo check property defs are valid and type is correct
-    for ( TInt i = 0; i < request->Attributes().Count(); i++ )
-        {
-        if ( request->Attributes()[i] == KMPXMediaGeneralId )
-            {
-            aEntry->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, (TMPXItemId)aContainer->Id());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralType )
-            {
-            aEntry->SetTObjectValueL(KMPXMediaGeneralType, EMPXGroup);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralCategory )
-            {
-            if( CGlxDataSource::EContainerTypeAlbum == aType)
-                {
-                aEntry->SetTObjectValueL(KMPXMediaGeneralCategory, EMPXAlbum);
-                }
-            else if( CGlxDataSource::EContainerTypeTag == aType)
-                {
-                aEntry->SetTObjectValueL(KMPXMediaGeneralCategory, EMPXTag);
-                }
-            else if( CGlxDataSource::EContainerTypeMonth == aType)
-                {
-                aEntry->SetTObjectValueL(KMPXMediaGeneralCategory, EMPXMonth);
-                }
-            else
-                {
-                User::Leave(KErrNotSupported);
-                }
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralUri )
-            {
-            aEntry->SetTextValueL(KMPXMediaGeneralUri, aContainer->Uri());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralTitle )
-            {
-            CMdEProperty* title;
-            CMdEPropertyDef* titleProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameTitle);
-            TInt titleIndex = aContainer->Property(*titleProperty, title);
-            if(titleIndex == KErrNotFound)
-                {
-                TParsePtrC parser(aContainer->Uri());
-                aEntry->SetTextValueL(KMPXMediaGeneralTitle, parser.Name());
-                }
-            else
-                {
-                aEntry->SetTextValueL(KMPXMediaGeneralTitle, static_cast<CMdETextProperty*>(title)->Value());
-                }
-            switch (aType)
-                {
-                case CGlxDataSource::EContainerTypeAlbum:
-                    {
-                    CMdEProperty* albumType;
-                    CMdEPropertyDef* albumTypeProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameAlbumType);
-                    TInt albumTypeIndex = aContainer->Property(*albumTypeProperty, albumType);
-                    if( KErrNotFound != albumTypeIndex )
-                        {
-                        TUint16 albumTypeValue = static_cast<CMdEUint16Property*>(albumType)->Value();
-                        if ( albumTypeValue != MdeConstants::Album::EAlbumUser ) 
-                            {
-                            request->AppendCpiAttributeL(KMPXMediaGeneralTitle);
-                            aEntry->SetTObjectValueL(KGlxMediaCollectionInternalSystemItemType, albumTypeValue);
-                            }
-                        }
-                    break;
-                    }
-                case CGlxDataSource::EContainerTypeTag:
-                    {
-                    break;
-                    }
-                case CGlxDataSource::EContainerTypeMonth:
-                    {
-                    request->AppendCpiAttributeL(KMPXMediaGeneralTitle);
-                    CMdEProperty* time;
-                    CMdEPropertyDef* timeProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameCreationDate);
-                    TInt timeIndex = aContainer->Property(*timeProperty, time);
-                    if( KErrNotFound == timeIndex )
-                        {
-                        User::Leave(KErrCorrupt);
-                        }
-
-                    aEntry->SetTObjectValueL(KGlxMediaCollectionInternalStartDate, static_cast<CMdETimeProperty*>(time)->Value());
-                    break;
-                    }
-                }
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralDate )
-            {
-            CMdEProperty* time;
-            CMdEPropertyDef* timeProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameCreationDate);
-            TInt timeIndex = aContainer->Property(*timeProperty, time);
-            if( KErrNotFound == timeIndex )
-                {
-                User::Leave(KErrCorrupt);
-                }
-
-            aEntry->SetTObjectValueL(KMPXMediaGeneralDate, static_cast<CMdETimeProperty*>(time)->Value());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralSize )
-            {
-            CMdEProperty* size;
-            CMdEPropertyDef* sizeProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameSize);
-            TInt sizeIndex = aContainer->Property(*sizeProperty, size);
-            TInt sizeValue;
-            if(sizeIndex == KErrNotFound)
-                {
-                sizeValue = 0;
-                }
-            else
-                {
-                sizeValue = static_cast<CMdEInt32Property*>(size)->Value();
-                }
-            aEntry->SetTObjectValueL(KMPXMediaGeneralSize, sizeValue);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralDrive )
-            {
-            TParsePtrC parser(aContainer->Uri());
-            aEntry->SetTextValueL(KMPXMediaGeneralDrive, parser.Drive());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralMimeType )
-            {
-            CMdEProperty* mimeType;
-            CMdEPropertyDef* mimeTypeProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameItemType);
-            TInt mimeTypeIndex = aContainer->Property(*mimeTypeProperty, mimeType);
-            if( KErrNotFound == mimeTypeIndex)
-                {
-                aEntry->SetTextValueL(KMPXMediaGeneralMimeType, KNullDesC); 
-                }
-            else
-                {
-                aEntry->SetTextValueL(KMPXMediaGeneralMimeType, static_cast<CMdETextProperty*>(mimeType)->Value());
-                }
-            }
-        else if ( ( request->Attributes()[i] == KMPXMediaGeneralCount ) || ( request->Attributes()[i] == KGlxMediaCollectionInternalUsageCount ) )
-            {
-            switch (aType)
-                {
-                case CGlxDataSource::EContainerTypeAlbum:
-                case CGlxDataSource::EContainerTypeTag:
-                    {
-                    CMdEProperty* countType;
-                    CMdEPropertyDef* countTypeProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameUsageCount);
-                    TInt countTypeIndex = aContainer->Property(*countTypeProperty, countType);
-                    if( KErrNotFound != countTypeIndex )
-                        {
-                        TUint count = static_cast<CMdEUint32Property*>(countType)->Value();
-                        aEntry->SetTObjectValueL(request->Attributes()[i], count);
-                        }
-                    else
-                        {
-                        aEntry->SetTObjectValueL(request->Attributes()[i], 0);
-                        }
-                    break;
-                    }
-                case CGlxDataSource::EContainerTypeMonth:
-                    {
-                    TGlxFilterProperties filterProperties = iFilterProperties;
-                    AddMonthFilterL(aContainer, filterProperties);
-                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties);
-                    break;
-                    }
-                }
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralSystemItem )
-            {
-            TBool systemItem = EFalse;
-            switch (aType)
-                {
-                case CGlxDataSource::EContainerTypeAlbum:
-                    {
-                    CMdEProperty* albumType;
-                    CMdEPropertyDef* albumTypeProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameAlbumType);
-                    TInt albumTypeIndex = aContainer->Property(*albumTypeProperty, albumType);
-                    if( KErrNotFound != albumTypeIndex )
-                        {
-                        TInt albumTypeValue = static_cast<CMdEUint16Property*>(albumType)->Value();
-                        if( (albumTypeValue == MdeConstants::Album::EAlbumSystemCamera) || (albumTypeValue == MdeConstants::Album::EAlbumSystemFavourite ) )
-                            {
-                            systemItem = ETrue;
-                            }
-                        }
-                    break;
-                    }
-                case CGlxDataSource::EContainerTypeTag:
-                    {
-                    systemItem = EFalse;
-                    break;
-                    }
-                case CGlxDataSource::EContainerTypeMonth:
-                    {
-                    systemItem = ETrue;
-                    break;
-                    }
-                }
-            aEntry->SetTObjectValueL(KGlxMediaGeneralSystemItem, systemItem);
-            }
-            
-         //Attributes to get the Count of Images in Container                
-        else if	( request->Attributes()[i] == KGlxMediaItemTypeImage )    
-        	{
-            switch (aType)
-	            {
-	        	case CGlxDataSource::EContainerTypeMonth:
-	        		{
-                    TGlxFilterProperties filterProperties = iFilterProperties;
-                    AddMonthFilterL(aContainer, filterProperties);
-                    filterProperties.iItemType = EGlxFilterImage;
-                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties);
-                    break;
-                    }
-	        	default:
-	        		{
-	        		break;	
-	        		}
-	        	 }
-        	}           	
-		
-		// Attributes to get the Count of Videos in Container 		
-						                   	
-         else if ( request->Attributes()[i] == KGlxMediaItemTypeVideo )    
-        	{
-            switch (aType)
-	            {
-	        	case CGlxDataSource::EContainerTypeMonth:
-	        		{
-                    TGlxFilterProperties filterProperties = iFilterProperties;
-                    AddMonthFilterL(aContainer, filterProperties);
-                    filterProperties.iItemType = EGlxFilterVideo;
-                    QueueObjectQueryL(DataSource()->AlbumDef(), ETrue, EAttributeQuery, EQueryResultModeCount, DataSource()->CameraAlbumId(), request->Attributes()[i], aEntry, filterProperties);
-                    break;
-                    }
-	        	default:
-	        		{
-	        		break;	
-	        		}
-	        	 }
-        	}
-            
-        else if ( request->Attributes()[i] == KMPXMediaColDetailSpaceId )
-            {
-            aEntry->SetTObjectValueL(KMPXMediaColDetailSpaceId, KGlxDataSourceMdeImplementationUid);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaCollectionInternalStartDate )
-            {
-            // nothing returned for container but is valid for CPI to request
-            }
-        else if ( request->Attributes()[i] == KGlxMediaCollectionInternalEndDate )
-            {
-            // nothing returned for container but is valid for CPI to request
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralDimensions )
-            {
-            // return zero size for container (thumbnail only used in preview list)
-            aEntry->SetTObjectValueL(KGlxMediaGeneralDimensions, TSize(0,0));
-            }
-        else if ( request->Attributes()[i] == KMPXMediaDrmProtected )
-            {
-            // container itself is not protected
-            aEntry->SetTObjectValueL(KMPXMediaDrmProtected, EFalse); 
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralFramecount )
-            {
-            aEntry->SetTObjectValueL(KGlxMediaGeneralFramecount, 1);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralSlideshowableContent )
-            {
-            TGlxFilterProperties filterProperties = iFilterProperties;
-            filterProperties.iItemType = EGlxFilterImage;
-            filterProperties.iNoDRM = ETrue;
-            filterProperties.iExcludeAnimation = ETrue;
-            switch (aType)
-                {
-                case CGlxDataSource::EContainerTypeAlbum:
-                case CGlxDataSource::EContainerTypeTag:
-                    {
-                    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);
-                    break;
-                    }
-                }
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralLastModifiedDate )
-            {
-            CMdEProperty* time;
-            CMdEPropertyDef* timeProperty = aContainer->Def().GetPropertyDefL(KPropertyDefNameLastModifiedDate);
-            TInt timeIndex = aContainer->Property(*timeProperty, time);
-            if( KErrNotFound == timeIndex) 
-                {
-                User::Leave(KErrCorrupt);
-                }
-            aEntry->SetTObjectValueL(KGlxMediaGeneralLastModifiedDate, static_cast<CMdETimeProperty*>(time)->Value());
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralDimensions )
-            {
-            TSize dimensions(0,0);
-            
-            aEntry->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions);
-            }
-        else
-            {
-            User::Leave(KErrNotSupported);
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeAttribute::AddItemAttributesL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::AddItemAttributesL(CMPXMedia* aEntry, CMdEObject* aItem, CGlxDataSource::TItemType aType)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::AddItemAttributesL(CMPXMedia* aEntry, CMdEObject* aItem, CGlxDataSource::TItemType aType)");
-    __ASSERT_DEBUG(aEntry, Panic(EGlxPanicLogicError));
-    __ASSERT_DEBUG(aItem, Panic(EGlxPanicLogicError));
-    __ASSERT_DEBUG(dynamic_cast<CGlxGetRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);
-
-    /// @todo check property defs are valid and type is correct
-    for ( TInt i = 0; i < request->Attributes().Count(); i++ )
-        {   
-        if ( request->Attributes()[i] == KMPXMediaGeneralId )
-            {
-            aEntry->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, (TMPXItemId)aItem->Id());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralType )
-            {
-            aEntry->SetTObjectValueL(KMPXMediaGeneralType, EMPXItem);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralCategory )
-            {
-            if( CGlxDataSource::EItemTypeImage == aType)
-                {
-                aEntry->SetTObjectValueL(KMPXMediaGeneralCategory, EMPXImage);
-                }
-            else if( CGlxDataSource::EItemTypeVideo == aType)
-                {
-                aEntry->SetTObjectValueL(KMPXMediaGeneralCategory, EMPXVideo);
-                }
-            else
-                {
-                User::Leave(KErrNotSupported);
-                }
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralUri )
-            {
-            aEntry->SetTextValueL(KMPXMediaGeneralUri, aItem->Uri());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralTitle )
-            {
-            CMdEProperty* title;
-            CMdEPropertyDef* titleProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameTitle);
-            TInt titleIndex = aItem->Property(*titleProperty, title);
-            if( KErrNotFound == titleIndex )
-                {
-                TParsePtrC parser(aItem->Uri());
-                aEntry->SetTextValueL(KMPXMediaGeneralTitle, parser.Name());
-                }
-            else
-                {
-                aEntry->SetTextValueL(KMPXMediaGeneralTitle, static_cast<CMdETextProperty*>(title)->Value());
-                }
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralDate )
-            {
-            CMdEProperty* time;
-            CMdEPropertyDef* timeProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameCreationDate);
-            TInt timeIndex = aItem->Property(*timeProperty, time);
-            if( KErrNotFound == timeIndex) 
-                {
-                User::Leave(KErrCorrupt);
-                }
-            aEntry->SetTObjectValueL(KMPXMediaGeneralDate, static_cast<CMdETimeProperty*>(time)->Value());
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralLastModifiedDate )
-            {
-            CMdEProperty* time;
-            CMdEPropertyDef* timeProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameLastModifiedDate);
-            TInt timeIndex = aItem->Property(*timeProperty, time);
-            if( KErrNotFound == timeIndex) 
-                {
-                User::Leave(KErrCorrupt);
-                }
-            aEntry->SetTObjectValueL(KGlxMediaGeneralLastModifiedDate, static_cast<CMdETimeProperty*>(time)->Value());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralSize )
-            {
-            CMdEProperty* size;
-            CMdEPropertyDef* sizeProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameSize);
-            TInt sizeIndex = aItem->Property(*sizeProperty, size);
-            User::LeaveIfError(sizeIndex);
-            
-            aEntry->SetTObjectValueL(KMPXMediaGeneralSize, static_cast<CMdEInt32Property*>(size)->Value());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralDrive )
-            {
-            TParsePtrC parser(aItem->Uri());
-            aEntry->SetTextValueL(KMPXMediaGeneralDrive, parser.Drive());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralMimeType )
-            {
-            CMdEProperty* mimeType;
-            CMdEPropertyDef* mimeTypeProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameItemType);
-            TInt mimeTypeIndex = aItem->Property(*mimeTypeProperty, mimeType);
-
-            User::LeaveIfError(mimeTypeIndex); 
-            aEntry->SetTextValueL(KMPXMediaGeneralMimeType, static_cast<CMdETextProperty*>(mimeType)->Value());
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralDuration )
-            {
-            if( CGlxDataSource::EItemTypeImage == aType )
-                {
-                aEntry->SetTObjectValueL(KMPXMediaGeneralDuration, 0);
-                }
-            else
-                {
-                CMdEProperty* duration;
-                CMdEPropertyDef* durationProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameDuration);
-                TInt durationIndex = aItem->Property(*durationProperty, duration);
-                User::LeaveIfError(durationIndex); 
-                
-                aEntry->SetTObjectValueL(KMPXMediaGeneralDuration, static_cast<CMdEUint32Property*>(duration)->Value());
-                }
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralSystemItem)
-            {
-            aEntry->SetTObjectValueL(KGlxMediaGeneralSystemItem, EFalse);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralDimensions )
-            {
-            TSize dimensions(0,0);
-            
-            CMdEProperty* xDim;
-            CMdEPropertyDef* xDimProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameWidth);
-            TInt xDimIndex = aItem->Property(*xDimProperty, xDim);
-            if( KErrNotFound == xDimIndex )
-                {
-                //User::Leave(KErrCorrupt);
-                }
-            else
-                {
-                dimensions.iWidth = static_cast<CMdEUint16Property*>(xDim)->Value();
-                }
-            
-            CMdEProperty* yDim;
-            CMdEPropertyDef* yDimProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameHeight);
-            TInt yDimIndex = aItem->Property(*yDimProperty, yDim);
-            if( KErrNotFound == yDimIndex )
-                {
-                //User::Leave(KErrCorrupt);
-                }
-            else
-                {
-                dimensions.iHeight = static_cast<CMdEUint16Property*>(yDim)->Value();
-                }
-            if ( ( dimensions.iWidth == 0 ) || ( dimensions.iHeight == 0 ) )
-                {
-                if( CGlxDataSource::EItemTypeImage == aType)
-                    {
-                    // EXIF header is corrupt, must read size from file.
-                    CImageDecoder* decoder = NULL;
-
-                    TRAPD(err, decoder = CImageDecoder::FileNewL( DataSource()->FileServerSession(), aItem->Uri(), CImageDecoder::EOptionNone ));
-                    if (err == KErrNone)
-                    	{
-                    	dimensions = decoder->FrameInfo().iOverallSizeInPixels;
-                    	}
-                    delete decoder;
-                    }
-                }
-            
-            aEntry->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralFramecount )
-            {
-            CMdEProperty* framecount;
-            TInt fcount = 1;
-            CMdEPropertyDef* framecountProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameFrameCount);
-            if( framecountProperty )
-                {
-                TInt framecountIndex = aItem->Property(*framecountProperty, framecount);
-                if( KErrNotFound != framecountIndex )
-                    {
-                    fcount = static_cast<CMdEUint32Property*>(framecount)->Value();
-                    }
-                }
-             aEntry->SetTObjectValueL(KGlxMediaGeneralFramecount, fcount);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralComment )
-            {
-            CMdEProperty* comment;
-            CMdEPropertyDef* commentProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameComment); /// @todo using Exif Comment field for comment as spec is not clear
-            TInt commentIndex = aItem->Property(*commentProperty, comment);
-            if( KErrNotFound == commentIndex)
-                {
-                aEntry->SetTextValueL(KMPXMediaGeneralComment, KNullDesC); 
-                }
-            else
-                {
-                aEntry->SetTextValueL(KMPXMediaGeneralComment, static_cast<CMdETextProperty*>(comment)->Value());
-                }
-            }
-        else if ( request->Attributes()[i] == KMPXMediaDrmProtected )
-            {
-            CMdEProperty* drmProtected;
-            CMdEPropertyDef* drmProtectedProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameDRM); 
-            TInt drmProtectedIndex = aItem->Property(*drmProtectedProperty, drmProtected);
-            if( KErrNotFound == drmProtectedIndex)
-                {
-                aEntry->SetTObjectValueL(KMPXMediaDrmProtected, EFalse); 
-                }
-            else
-                {
-                aEntry->SetTObjectValueL(KMPXMediaDrmProtected, static_cast<CMdEBoolProperty*>(drmProtected)->Value());
-                }
-            }
-        else if ( request->Attributes()[i] == KMPXMediaGeneralCount )
-            {
-            aEntry->SetTObjectValueL(KMPXMediaGeneralCount, 1);
-            }
-        else if ( request->Attributes()[i] == KMPXMediaColDetailSpaceId )
-            {
-            aEntry->SetTObjectValueL(KMPXMediaColDetailSpaceId, KGlxDataSourceMdeImplementationUid);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralSlideshowableContent )
-            {
-            aEntry->SetTObjectValueL(KGlxMediaGeneralSlideshowableContent, -1);
-            }
-        else if ( request->Attributes()[i] == KGlxMediaGeneralLocation)
-            {
-            // Set the attribute to a TCoordinate initialised to NaN. 
-            aEntry->SetTObjectValueL(KGlxMediaGeneralLocation, TCoordinate());
-            }
-        else
-            {
-            User::Leave(KErrNotSupported);
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::AddLocationAttributeToMediaL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::AddLocationAttributeToMediaL(CMPXMedia& aMedia, const TItemId& aLocationId)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::AddLocationAttributeToMediaL(CMPXMedia& aMedia, const TItemId& aLocationId)");
-    CMdEObject* location = DataSource()->Session().GetObjectL(aLocationId, DataSource()->LocationDef()); 
-    if(!location)
-        {
-        User::Leave(KErrNotFound);
-        }
-    CleanupStack::PushL(location);
-    CMdEProperty* longitude = NULL;
-    CMdEPropertyDef* longitudePropertyDef = location->Def().GetPropertyDefL(KPropertyDefNameLongitude);
-    TInt longitudeIndex = location->Property(*longitudePropertyDef, longitude);
-    CMdEProperty* latitude = NULL;
-    CMdEPropertyDef* latitudePropertyDef = location->Def().GetPropertyDefL(KPropertyDefNameLatitude);
-    TInt latitudeIndex = location->Property(*latitudePropertyDef, latitude);
-
-    if (longitudeIndex > KErrNotFound && latitudeIndex > KErrNotFound)
-        {
-        TCoordinate coordinate(static_cast< CMdEReal64Property *>(latitude)->Value(),static_cast< CMdEReal64Property *>(longitude)->Value());
-        aMedia.SetTObjectValueL(KGlxMediaGeneralLocation, coordinate); 
-        }
-    
-    CleanupStack::PopAndDestroy(location);
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeAttribute::DoHandleAttributeQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::DoHandleAttributeQueryCompletedL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::DoHandleAttributeQueryCompletedL()");
-    __ASSERT_DEBUG(iQueryAttributes.Count(), Panic(EGlxPanicIllegalState));
-    CMdEQuery* query =  iQueries[0];
-    
-    if( EQueryResultModeObjectWithoutFreetexts == query->ResultMode() )
-        {
-        __ASSERT_DEBUG(( iQueryAttributes[0].iAttribute == KGlxMediaCollectionInternalStartDate ), Panic(EGlxPanicIllegalState));
-    	CMdEPropertyDef* creationDateDef = DataSource()->ObjectDef().GetPropertyDefL(KPropertyDefNameCreationDate);
-        if (!creationDateDef  || creationDateDef->PropertyType() != EPropertyTime)
-        	{
-        	User::Leave(KErrCorrupt);
-        	}
-        TTime startMonth(0);	
-        TTime endMonth(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();
-            }
-        iQueryAttributes[0].iMedia->SetTObjectValueL(KGlxMediaCollectionInternalStartDate, startMonth);
-        iQueryAttributes[0].iMedia->SetTObjectValueL(KGlxMediaCollectionInternalEndDate, endMonth);
-        }
-    else if( EQueryResultModeCount == query->ResultMode() )
-        {
-        iQueryAttributes[0].iMedia->SetTObjectValueL(iQueryAttributes[0].iAttribute, query->Count());
-        }
-    else
-        {
-        Panic(EGlxPanicIllegalState);
-        }
-    iQueryAttributes.Remove(0);
-    }       
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::DoHandleLocationQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::DoHandleLocationQueryCompletedL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::DoHandleLocationQueryCompletedL()");
-    TInt queryResultsCount = iQueries[0]->Count();
-    
-    for (TInt queryResultsPos = 0; queryResultsPos < queryResultsCount; queryResultsPos++)
-        {
-        CMdERelation& relation = static_cast<CMdERelation&>(iQueries[0]->ResultItem(queryResultsPos));
-        CMPXMedia* targetMedia = NULL;
-        if (iMediaArray)
-            {
-            TInt mediaArrayCount = iMediaArray->Count();
-            for (TInt mediaArrayPos = 0; mediaArrayPos < mediaArrayCount; mediaArrayPos++)
-                {
-                CMPXMedia* media = (*iMediaArray)[mediaArrayPos];
-                TMPXItemId id =  media->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
-                if (id.iId1 == relation.LeftObjectId())
-                    {
-                    targetMedia = media;
-                    break;
-                    }
-                }
-            }
-        else
-            {
-            targetMedia = iResponse;
-#ifdef _DEBUG
-            TMPXItemId id =  targetMedia->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
-            __ASSERT_DEBUG(id.iId1 == relation.LeftObjectId(), Panic(EGlxPanicLogicError));
-#endif
-            }
-        
-            __ASSERT_DEBUG(targetMedia, Panic(EGlxPanicLogicError));
-            AddLocationAttributeToMediaL(*targetMedia, relation.RightObjectId());
-          
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeAttribute::DoHandleImageVideoQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::DoHandleImageVideoQueryCompletedL()
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::DoHandleImageVideoQueryCompletedL()");
-	CMdEQuery* query = iQueries[0];
-	
-    TInt queryResultsCount = query->Count();
-    
-    if( ( queryResultsCount == 1 ) && ( !iMediaArray ) )
-        {
-        CMdEObject& object = static_cast<CMdEObject&>(query->ResultItem(0));
-        
-        delete iResponse;
-        // setiing iResponse to NULL to remove CodeScanner warning
-        iResponse = NULL;
-        iResponse = CMPXMedia::NewL();
-        AddAttributesL(object, iResponse);
-        }
-    else
-        {    
-        for (TInt i = 0; i < queryResultsCount; i++)
-            {
-            CMdEObject& object = static_cast<CMdEObject&>(query->ResultItem(i));
-            
-            CMPXMedia* entry = CMPXMedia::NewL();
-            CleanupStack::PushL(entry);
-            iMediaArray->AppendL(entry);
-            CleanupStack::Pop(entry);
-            AddAttributesL(object, (*iMediaArray)[iMediaArray->Count() - 1]);
-            }
-        }    
-	}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeAttribute::QueueLocaitonQueryL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::QueueLocaitonQueryL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::QueueLocaitonQueryL()");
-    __ASSERT_DEBUG(dynamic_cast<CGlxGetRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);
-        
-    CMdEQuery* query = DataSource()->Session().NewRelationQueryL(*DataSource()->NamespaceDef(), this); 
-    CleanupStack::PushL(query);
-    
-    CMdELogicCondition& rootCondition = query->Conditions();
-    CMdERelationCondition& containerRelationCondition = rootCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideRight);
-    CMdELogicCondition& itemLogicCondition  = containerRelationCondition.LeftL();
-    CMdELogicCondition&  locationLogicCondition = containerRelationCondition.RightL();
-    locationLogicCondition.AddObjectConditionL(DataSource()->LocationDef());
-    locationLogicCondition.SetOperator(ELogicConditionOperatorOr);
-    itemLogicCondition.SetOperator(ELogicConditionOperatorOr);
-    
-    TInt mediaIdCount = request->MediaIds().Count();
-    
-    RArray<TItemId> mediaIdArray;
-    CleanupClosePushL(mediaIdArray);
-    
-    for (TInt i = 0; i < mediaIdCount; i++)
-        {
-        mediaIdArray.AppendL(request->MediaIds()[i].Value());
-        }
-    
-    itemLogicCondition.AddObjectConditionL(mediaIdArray);
-    CleanupStack::PopAndDestroy(&mediaIdArray);
-
-    query->SetResultMode(EQueryResultModeItem);     
-    
-    CleanupStack::Pop(query);
-    AppendQueryL(query, ELocationAttributeQuery);
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTask::ExecuteQueryL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeAttribute::ExecuteQueryL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::ExecuteQueryL()");
-    switch (iQueryTypes[0])
-        {
-        case EAttributeQuery:
-            {
-            iQueries[0]->FindL(MaxQueryResultsCount(iQueryAttributes[0].iFilterProperties));
-            }
-        break;
-        case EImageVideoQuery: // fall through
-        case ELocationAttributeQuery:
-            {
-            iQueries[0]->FindL();
-            }
-        break;
-        default:
-            {
-            Panic(EGlxPanicUnsupportedQueryType);
-            }
-        break;
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeAttribute::LocationAttributeRequested
-// ----------------------------------------------------------------------------
-//
-TBool CGlxDataSourceTaskMdeAttribute::LocationAttributeRequested()
-    {
-    GLX_LOG_ENTRY_EXIT("TBool CGlxDataSourceTaskMdeAttribute::LocationAttributeRequested()");
-    __ASSERT_DEBUG(dynamic_cast<CGlxGetRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxGetRequest* request = static_cast<CGlxGetRequest*>(iRequest);
-    
-    TInt attributeArrayCount = request->Attributes().Count();
-    for (TInt i = 0; i < attributeArrayCount; i++)
-        {
-        if (request->Attributes()[i] == KGlxMediaGeneralLocation)
-            {
-            return ETrue;
-            }
-        }
-    return EFalse;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTask::QueueObjectQueryL
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeAttribute::QueueObjectQueryL(CMdEObjectDef& aObjectDef, TBool aIsContent, TGlxQueryType aQueryType, 
-        TQueryResultMode aResultMode, const TGlxMediaId& aContainerId, TMPXAttribute aAttribute, CMPXMedia* aEntry, 
-        const TGlxFilterProperties& aFilterProperties)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeAttribute::QueueObjectQueryL()");   
-    CMdEObjectDef* queryBaseObject = &aObjectDef;
-    if( aIsContent )
-        {
-        switch(aFilterProperties.iItemType)
-            {
-            case EGlxFilterImage: 
-                {
-                queryBaseObject = &DataSource()->ImageDef();
-                break;
-                }
-            case EGlxFilterVideo:
-                {
-                queryBaseObject = &DataSource()->VideoDef();
-                break;
-                }
-            default:
-                {
-                queryBaseObject = &DataSource()->ObjectDef();
-                break;
-                }
-            }
-        }
-
-    CMdEQuery* query = DataSource()->Session().NewObjectQueryL(*DataSource()->NamespaceDef(), *queryBaseObject, this);
-    CleanupStack::PushL(query);
-    SetQueryConditionsL(*query, aFilterProperties, aContainerId, aObjectDef);
-    query->SetResultMode(aResultMode);
-  
-    iQueryAttributes.AppendL(TGlxQueryAttribute(aAttribute, aEntry, aFilterProperties));
-
-    CleanupStack::Pop(query);
-    
-   	TRAPD(err, AppendQueryL(query,aQueryType));
-   	
-   	if (err != KErrNone)
-   		{
-   		iQueryAttributes.Remove(iQueryAttributes.Count() - 1);
-   		}
-    }
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdecommand.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1150 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-/**
- * @internal reviewed 11/07/2007 by M Byrne
- */
-
-
-#include "glxdatasourcetaskmdecommand.h"
-
-#include <bautils.h>
-#include <e32math.h>
-#include <glxcommandrequest.h>
-#include <glxlog.h>
-#include <glxpanic.h>
-#include <glxtndatabase.h>
-#include <glxtnthumbnailcreator.h>
-#include <caf/manager.h>
-#include <mdeconstants.h>
-#include <mdeeventdef.h>
-#include <mdelogiccondition.h>
-#include <mdeobject.h>
-#include <mdeobjectdef.h>
-#include <mdeobjectquery.h>
-#include <mdepropertydef.h>
-#include <mderelationcondition.h>
-#include <mderelationdef.h>
-#include <mderelationquery.h>
-#include <mdesession.h>
-#include <mdetextproperty.h>
-#include <mpxcollectionmessagedefs.h>
-#include <mpxcommandgeneraldefs.h>
-#include <mpxmedia.h>
-#include <mpxmediaarray.h>
-#include <mpxmediacollectiondetaildefs.h>
-#include <mpxmediacontainerdefs.h>
-#include <mpxmediageneraldefs.h>
-#include <mpxmessagegeneraldefs.h>
-#include <mpxmessageprogressdefs.h>
-#include <pathinfo.h>
-
-#include <glxcollectionpluginalbums.hrh>
-#include <glxcollectionplugincamera.hrh>
-#include <glxcollectionplugintags.hrh>
-
-#include "glxdatasourcemde.h"
-#include "glxdatasourcemde.hrh"
-
-// CONSTANTS
-_LIT(KPropertyDefNameDescription, "Comment");
-_LIT(KPropertyDefNameTitle, "Title" );
-_LIT(KPropertyDefNameSize, "Size");
-_LIT(KPropertyDefNameCreationDate, "CreationDate");
-_LIT(KPropertyDefNameLastModifiedDate, "LastModifiedDate");
-_LIT(KPropertyDefNameAlbumType, "Type");
-_LIT(KPropertyDefItemType, "ItemType");
-// Item type for Album
-_LIT( KAlbumItemType, "application/vnd.nokia.mde.album" );
-// Item type for Tag
-_LIT( KTagItemType, "application/vnd.nokia.mde.tag" );
-
-const TInt KDriveLetterLength = 1;
-_LIT(KColonBackslash, ":\\");
-_LIT(KFileNameFormatString, "(%+02u)");
-
-// ----------------------------------------------------------------------------
-// Destructor
-// ----------------------------------------------------------------------------
-//
-CGlxDataSourceTaskMdeCommand::~CGlxDataSourceTaskMdeCommand()
-	{
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMdeCommand::~CGlxDataSourceTaskMdeCommand()");
-	iLeftIds.Close();
-    iRightIds.Close();
-    delete iTitle;
-    delete iObjectToRename;
-    }
-
-
-// ----------------------------------------------------------------------------
-// Constructor
-// ----------------------------------------------------------------------------
-//
-CGlxDataSourceTaskMdeCommand::CGlxDataSourceTaskMdeCommand(
-       CGlxCommandRequest* aRequest, MGlxDataSourceRequestObserver& aObserver, 
-       CGlxDataSource* aDataSource)
-    : CGlxDataSourceTaskMde(aRequest, aObserver, aDataSource) 
-	{
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMdeCommand::CGlxDataSourceTaskMdeCommand()");
-	// No implementation required
-	}
-
-// ----------------------------------------------------------------------------
-// Second phase constructor
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::ConstructL()
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::ConstructL()");
-	iResponse = CMPXCommand::NewL(static_cast<CGlxCommandRequest*>(iRequest)->Command());
-    DataSource()->ThumbnailCreator().CancelRequest( TGlxMediaId(0) );
-	}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::ExecuteRequestL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::ExecuteRequestL()
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::ExecuteRequestL()");
-    __ASSERT_DEBUG(DataSource()->NamespaceDef(), Panic(EGlxPanicIllegalState));
-    
-	const CMPXCommand& command = static_cast<CGlxCommandRequest*>(iRequest)->Command();
-	
-	if ( command.IsSupported(KMPXCommandGeneralCollectionId) )
-		{
-		iCollectionUid = command.ValueTObjectL<TUid>(KMPXCommandGeneralCollectionId);
-		}
-	else
-		{
-		// if the collection Uid has not been set on the command, use the Ud of the plugin in use.
-		iCollectionUid = iRequest->CollectionPluginUid();
-		}
-	
-	TGlxCommandParser::ParseL(*this, command);
-	}
-
-// ----------------------------------------------------------------------------
-// Add container
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::AddContainerL(const TDesC& aContainerName)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::AddContainerL(const TDesC& aContainerName)");
-	iTitle = aContainerName.AllocL();
-	AppendContainerTitleCountQueryL(ECommandAddContainer, aContainerName);
-    ExecuteQueryL();
-    }
-
-// ----------------------------------------------------------------------------
-// Add items to container by id
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::AddToContainerL(const RArray<TGlxMediaId>& aSourceIds, const RArray<TGlxMediaId>& aTargetContainers)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::AddToContainerL()");	
-	__ASSERT_DEBUG(aSourceIds.Count() && aTargetContainers.Count(), Panic(EGlxPanicEmptyArray));
-	
-    iLeftIds.Reset();
-    iRightIds.Reset();
-
-	CMdEQuery* query = DataSource()->Session().NewRelationQueryL(*DataSource()->NamespaceDef(), this); 
-	AppendQueryL(query, ECommandAddToContainer);
-    
-    CMdELogicCondition& rootCondition = query->Conditions();
-    CMdERelationCondition& containerRelationCondition = rootCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideLeft);
-    CMdELogicCondition& leftLogicCondition = containerRelationCondition.LeftL();
-    CMdELogicCondition& rightLogicCondition = containerRelationCondition.RightL();
-    leftLogicCondition.SetOperator(ELogicConditionOperatorOr);
-    rightLogicCondition.SetOperator(ELogicConditionOperatorOr);
-
-    TMdEItemId containerId = ContainerItemId(aTargetContainers[0]);
-    // It is currenly a safe assumption that all containers are of the same type (either albums or tags)
-    // and thus they will either all be on the left or all be on the right of the logic condition. Therefore, 
-    // we only need to test the first container to see if it is on the left or on the right. 
-    CMdEObject* container = DataSource()->Session().GetObjectL(containerId);
-    if (!container)
-        {
-        User::Leave(KErrNotFound);
-        }
-    TBool containerIsLeft = DataSource()->ContainerIsLeft(container->Def());
-    
-    delete container;
-    container = NULL;
-    
-
-    if (containerIsLeft)
-        {
-        // the container is on the left
-        CopyArrayL(iLeftIds, aTargetContainers);
-        CopyArrayL(iRightIds, aSourceIds);
-        }
-    else
-        {
-        // the container is on the right
-        CopyArrayL(iRightIds, aTargetContainers);
-        CopyArrayL(iLeftIds, aSourceIds);
-        }
-    
-    leftLogicCondition.AddObjectConditionL(iLeftIds);
-    rightLogicCondition.AddObjectConditionL(iRightIds);
-
-    query->SetResultMode(EQueryResultModeItem);	 
-
-    ExecuteQueryL();
-    
-    }
-
-// ----------------------------------------------------------------------------
-// Add item to containers by URI.
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::AddToContainerL(const TDesC& aSourceUri, 
-		                        const RArray< TGlxMediaId >& aTargetContainers)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::AddToContainerL()");
-    CMdEObject* sourceObject = DataSource()->Session().GetObjectL(aSourceUri);
-    if (!sourceObject)
-        {
-        User::Leave(KErrNotFound);
-        }
-    RArray<TGlxMediaId> sourceIds;
-    CleanupClosePushL(sourceIds);
-    sourceIds.AppendL(TGlxMediaId(sourceObject->Id()));
-    
-    AddToContainerL(sourceIds, aTargetContainers);
-    CleanupStack::PopAndDestroy(&sourceIds);
-    }
-
-// ----------------------------------------------------------------------------
-// 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()");
-    FileOperationL(aSourceIds.Array(), aDrive, ECopy);
-    }
-
-// ----------------------------------------------------------------------------
-// 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()");
-    FileOperationL(aSourceIds.Array(), aDrive, EMove);
-    }
-
-// ----------------------------------------------------------------------------
-// Remove items from a container.
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::RemoveFromContainerL(const RArray<TGlxMediaId>& aItemIds, const TGlxMediaId& aContainerId)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::RemoveFromContainerL()");
-    // Answer to question in @bug above: No
-    
-	CMdEObject* object = NULL;
-	object = DataSource()->Session().GetObjectL(aContainerId.Value());
-    CleanupStack::PushL(object);
-	if (!object)
-    	{
-    	User::Leave(KErrNotFound);
-    	}
-	
-	CMdEQuery* query = DataSource()->Session().NewRelationQueryL(*DataSource()->NamespaceDef(), this); 
-	AppendQueryL(query, ECommandRemoveFromContainer); // query is now owned by the query array.
-    
-    CMdELogicCondition& rootCondition = query->Conditions();
-
-    CMdERelationCondition& containerRelationCondition = rootCondition.AddRelationConditionL(DataSource()->ContainsDef(), ERelationConditionSideLeft);
-    CMdELogicCondition* containerLogicCondition = NULL;
-    CMdELogicCondition* itemLogicCondition = NULL;
-    // Containers are on the left for albums, right for tags
-    if ( DataSource()->ContainerIsLeft(object->Def()) )
-    	{
-    	containerLogicCondition = &containerRelationCondition.LeftL();
-    	itemLogicCondition = &containerRelationCondition.RightL();
-    	}
-    else
-    	{
-    	containerLogicCondition = &containerRelationCondition.RightL();
-    	itemLogicCondition = &containerRelationCondition.LeftL();
-    	}
-   
-    containerLogicCondition->AddObjectConditionL(aContainerId.Value());
-    
-    itemLogicCondition->SetOperator(ELogicConditionOperatorOr);
-    itemLogicCondition->AddObjectConditionL(reinterpret_cast<const RArray<TItemId>&>(aItemIds));
-    
-    query->SetResultMode(EQueryResultModeId);	 
-    CleanupStack::PopAndDestroy(object);
-    ExecuteQueryL();
-    }
-
-// ----------------------------------------------------------------------------
-// Delete files, Remove container.
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DeleteL(const RArray<TGlxMediaId>& aItemIds)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DeleteL()");
-    CMdEObjectDef* containerObjectDef = NULL;
-    TInt err = ContainerObjectDef(containerObjectDef);
-    if (err == KErrNone)
-    	{
-	    QueueObjectQueryL(*containerObjectDef, 
-	            reinterpret_cast<const RArray<TItemId>&>(aItemIds), ECommandDeleteContainers);
-    	}
-    // Assume that only items are left
-    QueueObjectQueryL(DataSource()->ObjectDef(), 
-            reinterpret_cast<const RArray<TItemId>&>(aItemIds), ECommandDeleteItems);
-    
-    ExecuteQueryL();
-    }
-
-// ----------------------------------------------------------------------------
-// Rename files, Rename container.
-//
-/// @todo test this method.
-//
-// ----------------------------------------------------------------------------
-//
-/// @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()");
-    delete iTitle;
-    iTitle = NULL;
-	iTitle = aTitle.AllocL();
-	
-	RArray<TItemId> sourceIdArray;
-	CleanupClosePushL(sourceIdArray);
-	sourceIdArray.AppendL(aSourceItemId.Value());
-	
-	QueueObjectQueryL(DataSource()->ObjectDef(), sourceIdArray , ECommandRename);
-	CleanupStack::PopAndDestroy(&sourceIdArray);
-	
-	ExecuteQueryL();
-    }
-
-// ----------------------------------------------------------------------------
-// Set description.
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::SetDescriptionL(const RArray<TGlxMediaId>& aItemIds, const TDesC& aDescription)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::SetDescriptionL()");
-    CMdEPropertyDef* descriptionPropertyDef = DataSource()->MediaDef().GetPropertyDefL(KPropertyDefNameDescription);
-    if (!descriptionPropertyDef || descriptionPropertyDef->PropertyType() != EPropertyText)
-    	{
-    	User::Leave(KErrCorrupt);
-    	}
-    
-    TInt count = aItemIds.Count();
-    for (TInt i = 0; i < count; i++)
-    	{
-    	TMdEItemId itemId = aItemIds[i].Value();
-    	CMdEObject* object = DataSource()->Session().OpenFullObjectL(itemId);
-    	if (!object)
-    		{
-    		User::Leave(KErrNotFound);
-    		}
-    	CleanupStack::PushL(object);
-    	CMdEProperty* descriptionProperty = NULL;
-    	TInt index = object->Property(*descriptionPropertyDef, descriptionProperty);
-	    if (index < KErrNotFound)
-	    	{
-	    	User::Leave(index);
-	    	}
-	    if (index != KErrNotFound)
-	    	{
-	    	// Check whether the description string is empty
-	    	if( aDescription.Length()  )
-	    	    {	    	   
-	    	    static_cast<CMdETextProperty*>(descriptionProperty)->SetValueL(aDescription);
-	    	    }
-	    	    
-	        //if entered description string is blank then remove the old property
-	    	else
-                {
-                object->RemoveProperty(index);
-                }
-	    	}
-    	else
-    	    {
-    	    if( aDescription.Length()  )
-	    	    {
-    	        object->AddTextPropertyL(*descriptionPropertyDef, aDescription);
-	    	    }
-    	    }
-	    DataSource()->Session().CommitObjectL(*object); 
-	    CleanupStack::PopAndDestroy(object);
-    	}
-    
-    HandleRequestComplete(KErrNone);
-    }
-
-
-// ----------------------------------------------------------------------------
-// Set capture location.
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::SetCaptureLocationL(const RArray<TGlxMediaId>& aItemIds, const TCoordinate& aCoordinate)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::SetCaptureLocationL()");    
-    if (!Math::IsNaN(aCoordinate.Latitude()) || !Math::IsNaN(aCoordinate.Longitude()))
-    	{
-    	User::Leave(KErrArgument);
-    	}
-    	
-	CMdEQuery* query = DataSource()->Session().NewRelationQueryL(*DataSource()->NamespaceDef(), this); 
-	AppendQueryL(query, ECommandRemoveLocation); // query is now owned by the query array.
-    
-    CMdELogicCondition& rootCondition = query->Conditions();
-
-    CMdERelationCondition& containerRelationCondition = rootCondition.AddRelationConditionL(ERelationConditionSideLeft);
-    CMdELogicCondition& locationLogicCondition = containerRelationCondition.RightL();
-    CMdELogicCondition& itemLogicCondition = containerRelationCondition.LeftL();
-    locationLogicCondition.AddObjectConditionL(DataSource()->LocationDef());
-    
-    itemLogicCondition.SetOperator(ELogicConditionOperatorOr);
-
-    itemLogicCondition.AddObjectConditionL(reinterpret_cast<const RArray<TItemId>&>(aItemIds));
-    
-    query->SetResultMode(EQueryResultModeId);	 
-    ExecuteQueryL();
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::ThumbnailCleanupL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::ThumbnailCleanupL()
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::ThumbnailCleanupL()");
-    CGlxDataSourceMde* ds = DataSource();
-    ds->ThumbnailCreator().CleanupThumbnailsL(&ds->ThumbnailDatabase());
-	HandleRequestComplete(KErrNone);	
-	}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::HandleQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DoHandleQueryCompletedL(CMdEQuery& aQuery)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DoHandleQueryCompletedL()");
-    TGlxQueryType queryType = iQueryTypes[0];
-	
-    switch (queryType)
-    	{
-
-	    case ECommandRemoveFromContainer: // don't break
-	    case ECommandRemoveLocation:
-			{
-			TInt queryCount = aQuery.Count();
-			RArray<TItemId> relationsToRemove;
-			CleanupClosePushL(relationsToRemove);
-			User::LeaveIfError(relationsToRemove.Reserve(queryCount));
-			
-			RArray<TItemId> successfullyRemovedReleations;
-			CleanupClosePushL(successfullyRemovedReleations);
-			User::LeaveIfError(successfullyRemovedReleations.Reserve(queryCount));
-			
-			for(TInt i = queryCount - 1; i >= 0; i--)
-				{		
-				relationsToRemove.AppendL(aQuery.ResultId(i));
-				}
-			
-			if (queryCount)
-				{
-				User::LeaveIfError(DataSource()->Session().RemoveRelationsL(relationsToRemove, successfullyRemovedReleations));
-				}
-			
-			CleanupStack::PopAndDestroy(&successfullyRemovedReleations);
-			CleanupStack::PopAndDestroy(&relationsToRemove);
-			}
-	    break;
-	    case ECommandAddToContainer:
-			{
-			DoHandleAddToContainerQueryCompletedL(aQuery);
-	        }
-	    break;
-	    case ECommandAddContainer:
-	        { 
-	        DoHandleAddContainerQueryCompletedL(aQuery);   
-	        }
-	        break;
-	    case ECommandDeleteContainers:
-	        {
-	        DoHandleDeleteContainersQueryCompletedL(aQuery);
-	        }
-	    break;
-	    case ECommandDeleteItems:
-	        {
-	        DoHandleDeleteItemsQueryCompletedL(aQuery);
-	        }
-	    break;
-    	case ECommandRename:
-    		{
-    		DoHandleRenameQueryCompletedL(aQuery);
-    		}
-    	break;
-    	case ECommandRenameContainer:
-    		{
-    		DoHandleRenameConainerQueryCompletedL(aQuery);
-    		}
-    	break;
-    	}
-    }
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::DoNextQueryL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DoNextQueryL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DoNextQueryL()");
-    if (iQueries.Count())
-        {
-        ExecuteQueryL();
-        }
-    else
-        {
-        HandleRequestComplete(KErrNone);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::FileOperationL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::FileOperationL(const TArray<TGlxMediaId>& aSourceIds, const TDesC& aDrive, TFileOperation aFileOperation)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::FileOperationL()");
-	ContentAccess::CManager *manager = ContentAccess::CManager::NewL();
-	CleanupStack::PushL(manager);
-	// The following line causes a code scanner warning advising use of EikonEnv RFs instance.
-	// We don't have an EikonEnv as we are running in a server process.
-	RFs rfs; // used for BaflUtils::FileExists
-	
-	CleanupClosePushL(rfs);
-	User::LeaveIfError(rfs.Connect());
-	for (TInt i = 0; i < aSourceIds.Count(); i++)
-    	{
-    	CMdEObject* sourceObject = DataSource()->Session().GetObjectL(aSourceIds[i].Value());
-    	if (!sourceObject)
-    		{
-    		User::Leave(KErrNotFound);
-    		}
-
-    	CleanupStack::PushL(sourceObject);
-    	
-    	const TDesC& sourceFileName = sourceObject->Uri();
-    	TFileName sourceRootPath;
-    	
-    	RootPath(sourceFileName, sourceRootPath);
-    	TPtrC fileNameWithoutRoot(NULL,0);
-    	if (sourceFileName.Left(sourceRootPath.Length()).CompareF(sourceRootPath) == 0)
-    		// This is the expected case. The file to be copied is under the 'root' of 
-    		// the drive that it is located on. (For the C:, the root is C:\data, 
-    		// for the D: the root is D:\)
-    		{
-    		fileNameWithoutRoot.Set(sourceFileName.Right(sourceFileName.Length() - sourceRootPath.Length()));
-    		}
-    	else
-    		{
-    		fileNameWithoutRoot.Set(sourceFileName);
-    		}
-    		
-    	TFileName destinationFileName;
-    	// Set destination file name to destination 'root' path
-    	RootPath(aDrive, destinationFileName);
-    	// Append the file name
-    	destinationFileName.Append(fileNameWithoutRoot);
-    	
-/// @todo minor: Rowland Cook 12/06/2007 majic number.
-    	if (destinationFileName.CompareF(sourceFileName) != 0)
-    		{
-    		// If source and destination are not identical, perform the copy.	
-			if (BaflUtils::FileExists(rfs, destinationFileName))
-				{
-				// If the destination file name already exists find an available file name.
-				TParse destinationFileNameParse;
-				destinationFileNameParse.Set(destinationFileName,NULL,NULL); // this is a copy of the data
-				TInt destinationFileNameWithoutExtensionLength = destinationFileName.Length() - destinationFileNameParse.Ext().Length();
-				TInt i = 1;
-				do
-					{
-			    	destinationFileName.SetLength(destinationFileNameWithoutExtensionLength);
-			    	destinationFileName.AppendFormat(KFileNameFormatString,i++);
-			    	destinationFileName.Append(destinationFileNameParse.Ext());		    	
-					}
-				while (BaflUtils::FileExists(rfs, destinationFileName));
-				}
-			
-            // Ensure the path that we are copying to exists.
-            // Fixed error ID:  ELLZ-798BP3 Lumiere 07.46.08_MC Photo: 
-            // "System: System error." is displayed when copying/moving image which is saved in a user created folder.
-            BaflUtils::EnsurePathExistsL(rfs,destinationFileName);
-            
-	    	if (aFileOperation == ECopy)
-	    		{
-	    		User::LeaveIfError(manager->CopyFile(sourceFileName, destinationFileName));		
-	    		}
-	    	else
-	    		{
-	    		User::LeaveIfError(manager->RenameFile(sourceFileName, destinationFileName));
-	    		}
-
-    		}
-    	
-    	CleanupStack::PopAndDestroy(sourceObject);
-    	}
-    
-	CleanupStack::PopAndDestroy(&rfs);
-	CleanupStack::PopAndDestroy(manager);
-	
-    HandleRequestComplete(KErrNone);
-	}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::ContainerItemId
-// ----------------------------------------------------------------------------
-//
-TMdEItemId CGlxDataSourceTaskMdeCommand::ContainerItemId(const TGlxMediaId& aMediaId)
-    {
-    GLX_LOG_ENTRY_EXIT("TMdEItemId CGlxDataSourceTaskMdeCommand::ContainerItemId()");    
-    TMdEItemId containerId = aMediaId.Value();
-    if (aMediaId == KGlxCollectionRootId)
-        {
-        // Check the collection plugin uid
-        if (iCollectionUid == TUid::Uid(KGlxCollectionPluginCameraImplementationUid))
-            {
-            containerId = DataSource()->CameraAlbumId().Value();
-            }  
-        }
-    return containerId;
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::ContainerItemId
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::RootPath(const TDesC& aDrive, TDes& aRootPath)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::RootPath(const TDesC& aDrive, TDes& aRootPath)");
-	if (aDrive.Left(KDriveLetterLength).CompareF(PathInfo::PhoneMemoryRootPath().Left(KDriveLetterLength)) == 0)
-		{
-		aRootPath = PathInfo::PhoneMemoryRootPath();
-		}
-	else if (aDrive.Left(KDriveLetterLength).CompareF(PathInfo::MemoryCardRootPath().Left(KDriveLetterLength)) == 0)
-		{
-		aRootPath = PathInfo::MemoryCardRootPath();
-		}
-	else if (aDrive.Left(KDriveLetterLength).CompareF(PathInfo::RomRootPath().Left(KDriveLetterLength)) == 0)
-		{
-		aRootPath = PathInfo::RomRootPath();
-		}
-	else
-		{
-		aRootPath = aDrive.Left(KDriveLetterLength);
-		aRootPath.Append(KColonBackslash);
-		}
-	}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::CopyArrayL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::CopyArrayL(RArray<TItemId>& aDestArray, const RArray<TGlxMediaId>& aSourceArray)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::CopyArrayL()");
-    TInt count = aSourceArray.Count();
-    User::LeaveIfError(aDestArray.Reserve(count));
-    for (TInt i = 0; i < count; i++)
-        {
-        aDestArray.AppendL(ContainerItemId(aSourceArray[i]));
-        }
-    }
-   
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::SendProgressMessageL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::SendProgressMessageL(TInt aCurrentStep, TInt aStepCount)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::SendProgressMessageL(TInt aCurrentStep, TInt aStepCount)");
-	MGlxDataSourceUpdateObserver& observer = static_cast<CGlxCommandRequest*>(iRequest)->DataSourceUpdateObserver();
-	
-	const CMPXCommand& command = static_cast<CGlxCommandRequest*>(iRequest)->Command();
-	__ASSERT_DEBUG(command.IsSupported(KMPXCommandGeneralSessionId), Panic(EGlxPanicCommandHasNoGeneralSessionId));
-	
-	TAny* sessionId = command.ValueTObjectL<TAny*>(KMPXCommandGeneralSessionId);
-	
-	CMPXMessage* progressMessage = CMPXMessage::NewL();
-	CleanupStack::PushL(progressMessage);
-	progressMessage->SetTObjectValueL<TInt>(KMPXMessageGeneralId, KMPXMessageContentIdProgress);	
-	progressMessage->SetTObjectValueL<TInt>(TMPXAttribute(KMPXMessageContentIdProgress, EMPXMessageProgressCurrentCount), aCurrentStep);
-	progressMessage->SetTObjectValueL<TInt>(TMPXAttribute(KMPXMessageContentIdProgress, EMPXMessageProgressTotalCount), aStepCount);
-	progressMessage->SetTObjectValueL<TAny*>(KMPXCommandGeneralSessionId, sessionId);
-	
-	observer.HandleMessage(*progressMessage);
-	
-	CleanupStack::PopAndDestroy(progressMessage);
-	}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::ContainerObjectDef
-// ----------------------------------------------------------------------------
-//
-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))
-        {
-        aContainerObjectDef  = &DataSource()->TagDef();      
-        }
-    else if (iCollectionUid  == TUid::Uid(KGlxCollectionPluginAlbumsImplementationUid))
-        {
-        aContainerObjectDef  = &DataSource()->AlbumDef();
-        }
-    else
-    	{
-    	err = KErrNotFound;
-    	}
-	return err;
-}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::DoHandleAddToContainerQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DoHandleAddToContainerQueryCompletedL
-															(CMdEQuery& aQuery)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DoHandleAddToContainerQueryCompletedL(CMdEQuery& aQuery)");
-	RPointerArray<CMdEInstanceItem> relations;
-	CleanupClosePushL(relations);
-	 
-	TInt leftCount = iLeftIds.Count();
-    TInt rightCount = iRightIds.Count();
-	User::LeaveIfError(relations.Reserve(leftCount*rightCount)); // this is a bigest reservation that could be required.
-    for (TInt leftPos = 0; leftPos < leftCount; leftPos++)
-        {
-        for (TInt rightPos = 0; rightPos < rightCount; rightPos++)
-            {
-            // Check to see if id already exists
-            TBool alreadyExists = EFalse;
-            for(TInt queryPos = aQuery.Count() - 1; queryPos >= 0; queryPos--)
-                {
-                CMdERelation& relation = static_cast<CMdERelation&>(aQuery.ResultItem(queryPos));
-                if (relation.LeftObjectId() == iLeftIds[leftPos]
-                    && relation.RightObjectId() == iRightIds[rightPos])
-                    {
-                    alreadyExists = ETrue;
-                    break;
-                    }
-                }
-            
-            if (!alreadyExists)
-                {
-                CMdERelation* relation = DataSource()->Session().NewRelationL(DataSource()->ContainsDef(), iLeftIds[leftPos], iRightIds[rightPos]);
-                CleanupStack::PushL(relation);
-                relations.AppendL(relation);
-                CleanupStack::Pop(relation);
-                }
-            }
-        
-        }
-
-    if (relations.Count())
-    	{
-    	User::LeaveIfError(DataSource()->Session().AddItemsL(relations));
-    	}
-    
-    CleanupStack::PopAndDestroy(&relations);
-
-    iLeftIds.Reset();
-    iRightIds.Reset();
-	}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::DoHandleAddContainerQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DoHandleAddContainerQueryCompletedL
-															(CMdEQuery& aQuery)
-
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DoHandleAddContainerQueryCompletedL()");
-    if (aQuery.Count())
-        {
-        // An object (or more strickly objects) with the given container name already exist
-        User::Leave(KErrAlreadyExists);
-        }
-     
-    CMdEObject* object = NULL;
-    CMdEObjectDef* containerObjectDef = NULL;
-    TInt err = ContainerObjectDef(containerObjectDef );
-    __ASSERT_ALWAYS(err == KErrNone, Panic(EGlxPanicInvalidCollectionUid));
-    
-    object = DataSource()->Session().NewObjectLC(*containerObjectDef, KNullDesC);
-    
-    // A title property def of type text is required.
-    CMdEPropertyDef* titlePropertyDef = containerObjectDef->GetPropertyDefL(KPropertyDefNameTitle);
-    if (!titlePropertyDef || titlePropertyDef->PropertyType() != EPropertyText)
-        {
-        User::Leave(KErrCorrupt);
-        }
-    // Set the object title.
-    object->AddTextPropertyL (*titlePropertyDef, *iTitle);
-    
-      //ItemType property def of type text is required.
-    CMdEPropertyDef* itemTypePropertyDef = containerObjectDef->GetPropertyDefL(KPropertyDefItemType);
-    if (!itemTypePropertyDef || itemTypePropertyDef->PropertyType() != EPropertyText)
-    	{
-    	User::Leave(KErrCorrupt);
-    	}
-  
-    // Checks the Container type whether it is Tag or Album	
-    if (iCollectionUid == TUid::Uid(KGlxTagCollectionPluginImplementationUid))
-      {
-      object->AddTextPropertyL (*itemTypePropertyDef, KTagItemType);
-      }
-    else
-      {
-      object->AddTextPropertyL (*itemTypePropertyDef, KAlbumItemType);
-      }
-   
-   
-    // A size property is required.
-  
-    CMdEPropertyDef* sizePropertyDef = containerObjectDef->GetPropertyDefL(KPropertyDefNameSize);
-    if (!sizePropertyDef  || sizePropertyDef->PropertyType() != EPropertyUint32)
-        {
-        User::Leave(KErrCorrupt);
-        }
-    object->AddUint32PropertyL(*sizePropertyDef,0);
-
-    
-    // A creation date property is required.
-    CMdEPropertyDef* creationDateDef = containerObjectDef->GetPropertyDefL(KPropertyDefNameCreationDate);
-    if (!creationDateDef  || creationDateDef->PropertyType() != EPropertyTime)
-        {
-        User::Leave(KErrCorrupt);
-        }
-
-    // A last modified date property is required.
-    CMdEPropertyDef* lmDateDef = containerObjectDef->GetPropertyDefL(KPropertyDefNameLastModifiedDate);
-    if (!lmDateDef  || lmDateDef->PropertyType() != EPropertyTime)
-        {
-        User::Leave(KErrCorrupt);
-        }
-    
-    TTime uTime;
-    uTime.UniversalTime();
-    object->AddTimePropertyL(*creationDateDef, uTime);
-    object->AddTimePropertyL(*lmDateDef, uTime);
-    
-    TMdEItemId id = DataSource()->Session().AddObjectL(*object);
-    CleanupStack::PopAndDestroy(object);
-    
-    iResponse->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, id);
-    iResponse->SetTObjectValueL<TMPXItemId>(KMPXMessageMediaGeneralId, id);  
-    iResponse->SetTObjectValueL<TMPXChangeEventType>(KMPXMessageChangeEventType, EMPXItemInserted); 
-	}
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::DoHandleDeleteContainersQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DoHandleDeleteContainersQueryCompletedL
-															(CMdEQuery& aQuery)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DoHandleDeleteContainersQueryCompletedL()");
-    CMdEPropertyDef* albumTypeProperty = DataSource()->AlbumDef().GetPropertyDefL(KPropertyDefNameAlbumType);
-    TInt queryCount = aQuery.Count();
-    
-    RArray<TItemId> objectsForRemoval;
-    CleanupClosePushL(objectsForRemoval);
-    User::LeaveIfError(objectsForRemoval.Reserve(queryCount));
-
-    RArray<TItemId> sucessfullyRemovedObjects;
-    CleanupClosePushL(sucessfullyRemovedObjects);
-    User::LeaveIfError(sucessfullyRemovedObjects.Reserve(queryCount));
-    
-    // Ensure that deletion is legal and that deletion
-    for(TInt queryPos = 0; queryPos < queryCount; queryPos++)
-        {
-        CMdEObject& object = static_cast<CMdEObject&>(aQuery.ResultItem(queryPos));
-  
-        CMdEProperty* albumType;
-        TInt albumTypeIndex = object.Property(*albumTypeProperty, albumType);
-        if (KErrNotFound != albumTypeIndex)
-            {
-            TInt albumTypeValue = static_cast<CMdEUint16Property*>(albumType)->Value();
-            if ((albumTypeValue == MdeConstants::Album::EAlbumSystemFavourite) || (albumTypeValue == MdeConstants::Album::EAlbumSystemCamera))
-               {
-               User::Leave(KErrAccessDenied); 
-               }
-            }
-        objectsForRemoval.AppendL(object.Id());
-        }
-    
-    if (queryCount)
-    	{
-    	User::LeaveIfError(DataSource()->Session().RemoveObjectsL(objectsForRemoval, sucessfullyRemovedObjects));
-    	}
-    
-    CleanupStack::PopAndDestroy(&sucessfullyRemovedObjects);
-    CleanupStack::PopAndDestroy(&objectsForRemoval);
-	}
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeCommand::DoHandleDeleteItemsContainersQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DoHandleDeleteItemsQueryCompletedL
-															(CMdEQuery& aQuery)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DoHandleDeleteItemsQueryCompletedL()");
-    ContentAccess::CManager *manager = ContentAccess::CManager::NewL();
-    CleanupStack::PushL(manager);
-    TInt queryCount = aQuery.Count();
-    RArray<TItemId> objectsForRemoval;
-    CleanupClosePushL(objectsForRemoval);
-    User::LeaveIfError(objectsForRemoval.Reserve(queryCount));
-
-    RArray<TItemId> sucessfullyRemovedObjects;
-    CleanupClosePushL(sucessfullyRemovedObjects);
-    User::LeaveIfError(sucessfullyRemovedObjects.Reserve(queryCount));
-    
-    TInt lastErr = KErrNone;
-    for(TInt queryPos = queryCount - 1; queryPos >= 0; queryPos--)
-        {
-        CMdEObject& object = static_cast<CMdEObject&>(aQuery.ResultItem(queryPos));
-        TInt err = manager->DeleteFile(object.Uri());
-        if (err != KErrNone)
-        	{
-        	lastErr = err;
-        	}    
-        objectsForRemoval.AppendL(object.Id());
-        }
-    
-    User::LeaveIfError(lastErr);
-    
-    if (queryCount)
-    	{
-    	// Some objects may have already been removed by the harvester
-    	DataSource()->Session().RemoveObjectsL(objectsForRemoval, sucessfullyRemovedObjects);
-    	}
-    
-    CleanupStack::PopAndDestroy(&sucessfullyRemovedObjects);
-    CleanupStack::PopAndDestroy(&objectsForRemoval);
-    
-    CleanupStack::PopAndDestroy(manager);
-	}
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeCommand::DoHandleRenameConainerQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DoHandleRenameConainerQueryCompletedL
-                                                            (CMdEQuery& aQuery)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DoHandleRenameConainerQueryCompletedL()");
-	__ASSERT_DEBUG(iObjectToRename, Panic(EGlxPanicLogicError));
-	if (aQuery.Count())
-		{
-		User::Leave(KErrAlreadyExists);
-		}
-		
-	CMdEObject* object = DataSource()->Session().OpenObjectL(iObjectToRename->Id(), iObjectToRename->Def());
-	CleanupStack::PushL(object);
-    CMdEProperty* albumType;
-    CMdEPropertyDef* albumTypeProperty = object->Def().GetPropertyDefL(KPropertyDefNameAlbumType);       
-    TInt albumTypeIndex = KErrNotFound;
-    // Must guard against non-existance of albumTypeProperty (e.g. when renaming a tag)
-    if (albumTypeProperty)
-        {
-        albumTypeIndex = object->Property(*albumTypeProperty, albumType);
-        }
-    if( KErrNotFound != albumTypeIndex )
-        {
-        TInt albumTypeValue = static_cast<CMdEUint16Property*>(albumType)->Value();
-        if ( albumTypeValue == MdeConstants::Album::EAlbumUserPredefined ) 
-            {
-            // Want to rename a predefined, localised album name so reclassify
-            // the type to be a non-localised user defined album
-            static_cast<CMdEUint16Property*>(albumType)->SetValueL(MdeConstants::Album::EAlbumUser);
-            }
-		else if ((albumTypeValue == MdeConstants::Album::EAlbumSystemFavourite) || (albumTypeValue == MdeConstants::Album::EAlbumSystemCamera))
-		    {
-            // Cannot rename system albums
-		    User::Leave(KErrAccessDenied); 
-		    }
-        }
-
-    
-    CMdEPropertyDef* titlePropertyDef = object->Def().GetPropertyDefL(KPropertyDefNameTitle);
-    if (!titlePropertyDef || titlePropertyDef->PropertyType() != EPropertyText)
-    	{
-    	User::Leave(KErrCorrupt);
-    	}
-    
-    CMdEProperty* titleProperty = NULL;
-    TInt index = object->Property(*titlePropertyDef, titleProperty);
-    if (index < KErrNotFound)
-    	{
-    	User::Leave(index);
-    	}
-    if (index != KErrNotFound)
-    	{
-    	// Remove the old property
-    	object->RemoveProperty(index);
-    	}
-    // Set the object title
-    object->AddTextPropertyL(*titlePropertyDef, *iTitle);
-    
-    // Get time propertydef of current session object
-    CMdEPropertyDef* timePropertyDef = object->Def().GetPropertyDefL(
-        KPropertyDefNameLastModifiedDate);
-        
-    // Check the validty of the time def
-    if (!timePropertyDef || timePropertyDef->PropertyType() != EPropertyTime)
-    	{
-    	User::Leave(KErrCorrupt);
-    	}
-    	
-    // Get index and check the validity 
-    CMdEProperty* timeProperty = NULL;
-    index = object->Property(*timePropertyDef, timeProperty);
-    
-    if (index < KErrNotFound)
-    	{
-    	User::Leave(index);
-    	}
-    	
-    if (index != KErrNotFound)
-    	{
-    	// Remove the old property
-    	object->RemoveProperty(index);
-    	}
-    	
-    // Take current universal time
-    TTime currentTime;
-    currentTime.UniversalTime();
-
-    // Set the object current time
-    object->AddTimePropertyL(*timePropertyDef, currentTime);
-    
-    DataSource()->Session().CommitObjectL(*object);
-    CleanupStack::PopAndDestroy(object);
-	}
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeCommand::DoHandleRenameConainerQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeCommand::DoHandleRenameQueryCompletedL
-                                                           (CMdEQuery& aQuery)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::DoHandleRenameQueryCompletedL()");
-	__ASSERT_DEBUG(aQuery.Count() == 1, Panic(EGlxPanicUnexpectedQueryResultCount ));
-	delete iObjectToRename;
-	iObjectToRename = static_cast<CMdEObject*>(aQuery.TakeOwnershipOfResult(0));
-	
-    CMdEObjectDef* containerObjectDef = NULL;
-    TInt err = ContainerObjectDef(containerObjectDef);
-
-	if (err == KErrNone && 0 == iObjectToRename->Def().Compare(*containerObjectDef))
-		{
-		AppendContainerTitleCountQueryL(ECommandRenameContainer, *iTitle);
-		}
-	else
-		// The object is an image or video; Rename the file using CAF and let the harvester detect the changes.
-		{	
-		TParsePtrC parsePtr(iObjectToRename->Uri());
-		
-		TFileName destinationFileName;
-		destinationFileName.Append(parsePtr.DriveAndPath());
-		destinationFileName.Append(*iTitle);
-		destinationFileName.Append(parsePtr.Ext());
-
-        // If the destination file already exists, leave with KErrAlreadyExists
-        // It is up to the client to handle this error
-        // This check is explicitly needed because manager->RenameFile calls
-        // CFileMan Rename() with default behaviour of overwriting existing files
-        // See EDKZ-79UDW3
-        RFs fs;
-        CleanupClosePushL( fs );
-
-        User::LeaveIfError( fs.Connect() );
-
-        if ( BaflUtils::FileExists( fs, destinationFileName ) )
-            {
-            User::Leave( KErrAlreadyExists );
-            }
-
-        CleanupStack::PopAndDestroy( &fs );
-		
-		if(destinationFileName.CompareF(iObjectToRename->Uri()))
-		    {
-    		ContentAccess::CManager *manager = ContentAccess::CManager::NewL();
-    		CleanupStack::PushL(manager);
-    		
-    		User::LeaveIfError(manager->RenameFile(iObjectToRename->Uri(), destinationFileName));	
-    		
-    		CleanupStack::PopAndDestroy(manager);
-		    }
-		}
-	}
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeCommand::AppendContainerTitleCountQueryL
-// ----------------------------------------------------------------------------
-//
-void  CGlxDataSourceTaskMdeCommand::AppendContainerTitleCountQueryL
-                        (const TGlxQueryType& aQueryType, const TDesC& aTitle)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeCommand::AppendContainerTitleCountQueryL(const TGlxQueryType& aQueryType, const TDesC& aTitle)");
-	// Test to see if a container alerady exists in the database with aContainerName
-    CMdEObjectDef* containerObjectDef = NULL;
-    TInt err = ContainerObjectDef(containerObjectDef);
-    __ASSERT_ALWAYS(err == KErrNone, Panic(EGlxPanicInvalidCollectionUid));
-    
-    CMdEQuery* query = DataSource()->Session().NewObjectQueryL(*DataSource()->NamespaceDef(), *containerObjectDef, this);
-    CleanupStack::PushL(query);
-    
-    CMdEPropertyDef* titlePropertyDef = DataSource()->ObjectDef().GetPropertyDefL(KPropertyDefNameTitle);
-    
-    query->SetResultMode(EQueryResultModeCount);
-    
-    query->Conditions().AddPropertyConditionL(*titlePropertyDef, ETextPropertyConditionCompareEquals, aTitle);
-    
-    CleanupStack::Pop(query);
-    
-    AppendQueryL(query, aQueryType); 
-	}
-
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdeidlist.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,308 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-/**
- * @internal reviewed 11/07/2007 by M Byrne
- */
-
-#include "glxdatasourcetaskmdeidlist.h"
-
-#include <glxcollectionpluginCamera.hrh>
-#include <glxcollectionpluginDownloads.hrh>
-#include <glxcollectionpluginMonths.hrh>
-#include <glxcollectionpluginalbums.hrh>
-#include <glxcollectionpluginall.hrh>
-#include <glxcollectionplugintags.hrh>
-#include <glxerrors.h>
-#include <glxfilterfactory.h>
-#include <glxgetrequest.h>
-#include <glxidlistrequest.h>
-#include <glxidlistrequest.h>
-#include <glxlog.h>
-#include <glxmediacollectioninternaldefs.h>
-#include <glxmediageneraldefs.h>
-#include <glxrequest.h>
-#include <glxthumbnailattributeinfo.h>
-#include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
-#include <glxtnfileinfo.h>
-#include <glxtnthumbnailcreator.h>
-#include <lbsposition.h>
-#include <mdeconstants.h>
-#include <mdelogiccondition.h>
-#include <mdeobject.h>
-#include <mdeobjectdef.h>
-#include <mdeobjectquery.h>
-#include <mdepropertydef.h>
-#include <mderelationdef.h>
-#include <mdesession.h>
-#include <mdetextproperty.h>
-#include <mpxmedia.h>
-#include <mpxmediaarray.h> 
-#include <mpxmediacollectiondetaildefs.h>
-#include <mpxmediacontainerdefs.h>
-#include <mpxmediadrmdefs.h>
-#include <mpxmediageneraldefs.h>
-
-#include "glxdatasourcemde.h"
-#include "glxdatasourcemde.hrh"
-
-// CONSTANTS
-const TInt KGlxAlbumPromotionPosition = 0;
-
-_LIT(KPropertyDefNameCreationDate, "CreationDate");
-
-// ----------------------------------------------------------------------------
-//  Constructor
-// ----------------------------------------------------------------------------
-//	
-CGlxDataSourceTaskMdeIdList::CGlxDataSourceTaskMdeIdList(CGlxIdListRequest* aRequest, MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource)
-    : CGlxDataSourceTaskMde(aRequest, aObserver, aDataSource)
-    {
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMdeIdList::CGlxDataSourceTaskMdeIdList()");
-    iFilterProperties = TGlxFilterFactory::ExtractAttributes(iRequest->Filter());
-    }
-
-// ----------------------------------------------------------------------------
-//  Destructor
-// ----------------------------------------------------------------------------
-//		
-CGlxDataSourceTaskMdeIdList::~CGlxDataSourceTaskMdeIdList()
-    {
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMdeIdList::~CGlxDataSourceTaskMdeIdList()");
-    // No implementation required
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::FilterAvailableComplete
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeIdList::FilterAvailableComplete(
-                                const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeIdList::FilterAvailableComplete()");
-    DoPostFilterComplete(aIdArray, aErrorCode);
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeIdList::ExecuteRequestL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeIdList::ExecuteRequestL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeIdList::ExecuteRequestL()"); 
-    CGlxIdListRequest* request = static_cast<CGlxIdListRequest*>(iRequest);
-    TGlxMediaId container = request->ContainerId();
-    TGlxQueryType queryType = EIdListQuery;
-    TQueryResultMode resultMode = EQueryResultModeId;
-    CMdEObjectDef* objectDef = &DataSource()->ObjectDef();
-    TBool isContent = ETrue;
-
-    if( KGlxCollectionRootId == container.Value() )    // The root.
-        {
-        switch(request->CollectionPluginUid().iUid)
-            {
-
-            case KGlxCollectionPluginAlbumsImplementationUid:
-                {
-                isContent = EFalse;
-                objectDef = &DataSource()->AlbumDef();
-                break;
-                }
-            case KGlxCollectionPluginCameraImplementationUid:
-                {
-                container = DataSource()->CameraAlbumId();
-                objectDef = &DataSource()->AlbumDef();
-                break;
-                }
-            case KGlxTagCollectionPluginImplementationUid: 
-                {
-                isContent = EFalse;
-                objectDef = &DataSource()->TagDef();
-                break;
-                }
-            case KGlxCollectionPluginMonthsImplementationUid:
-                {
-                container = DataSource()->CameraAlbumId();
-                objectDef = &DataSource()->AlbumDef();
-                resultMode = EQueryResultModeObjectWithoutFreetexts;
-                break;
-                }
-            default:
-                {
-                // default gallery query returns all objects as per filter
-                break;
-                }
-            }
-        }
-    else    // return the content of a container
-        {
-        switch(request->CollectionPluginUid().iUid)
-            {
-            case KGlxCollectionPluginAlbumsImplementationUid:
-                {
-                objectDef = &DataSource()->AlbumDef();
-                break;
-                }
-            case KGlxTagCollectionPluginImplementationUid: 
-                {
-                objectDef = &DataSource()->TagDef();
-                break;
-                }
-            case KGlxCollectionPluginMonthsImplementationUid: 
-                {
-                AddMonthFilterL(container, iFilterProperties);
-                container = DataSource()->CameraAlbumId();
-                objectDef = &DataSource()->AlbumDef();
-                break;
-                }
-            default:
-                {
-                User::Leave(KErrNotSupported);
-                break;
-                }
-            }
-        }
-        
-    DoQueryL(*objectDef, isContent, queryType, resultMode, container);  
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::DoHandleQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeIdList::DoHandleQueryCompletedL(CMdEQuery& /*aQuery*/)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeIdList::DoHandleQueryCompletedL()");
-    __ASSERT_DEBUG(iQueryTypes[0] == EIdListQuery, Panic(EGlxPanicLogicError));
-    DoHandleListQueryCompletedL();
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeIdList::DoHandleListQueryCompletedL
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeIdList::DoHandleListQueryCompletedL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeIdList::DoHandleListQueryCompletedL()");
-    if( EQueryResultModeObjectWithoutFreetexts == iQueries[0]->ResultMode() )
-        {
-        DoMonthListCreationL(*iQueries[0], iFilterProperties);
-        }
-    else // only id or item supported
-        {
-        const RArray<TGlxMediaId>& localList = reinterpret_cast<const RArray<TGlxMediaId>&>(iQueries[0]->ResultIds());
-        PostFilterL(localList, iFilterProperties);
-        
-        }
-    }     
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeIdList::DoMonthListCreationL
-// ----------------------------------------------------------------------------
-//      
-void CGlxDataSourceTaskMdeIdList::DoMonthListCreationL(CMdEQuery& aQuery,
-                                  const TGlxFilterProperties& aFilterProperties)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeIdList::DoMonthListCreationL()");
-    CMdEProperty* time;
-    CMdEPropertyDef* creationDateDef = DataSource()->ObjectDef().GetPropertyDefL(KPropertyDefNameCreationDate);
-    if (!creationDateDef  || creationDateDef->PropertyType() != EPropertyTime)
-        {
-        User::Leave(KErrCorrupt);
-        }
-    RArray<TGlxMediaId> monthList;
-    CleanupClosePushL(monthList);
-    TTime lastMonth;
-    TTime currentMonth;
-    TInt count = aQuery.Count();
-    for( TInt i = 0 ; i < count ; i++ )
-        {
-        CMdEObject& object = (CMdEObject&)aQuery.ResultItem(i);
-        TInt timeIndex = object.Property(*creationDateDef, time);
-        if( KErrNotFound == timeIndex )
-            {
-            User::Leave(KErrCorrupt);
-            }
-        currentMonth = static_cast<CMdETimeProperty*>(time)->Value();
-        if( !DataSource()->SameMonth(lastMonth, currentMonth) )
-            {
-            const TGlxMediaId monthId = DataSource()->GetMonthIdL(currentMonth);
-            monthList.AppendL(monthId);
-            lastMonth = currentMonth;
-            }
-        }
-    PostFilterL(monthList, aFilterProperties);
-    CleanupStack::PopAndDestroy(&monthList);
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeIdList::DoPostFilterComplete
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeIdList::DoPostFilterComplete(
-                                const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeIdList::DoPostFilterComplete()");
-    if (aErrorCode == KErrNone)
-    	{
-    	TRAP(aErrorCode, ListToMediaL(aIdArray));
-    	}
-    
-    HandleRequestComplete(aErrorCode);
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::PostFilterL
-// ----------------------------------------------------------------------------
-//		
-void CGlxDataSourceTaskMdeIdList::PostFilterL(const RArray<TGlxMediaId>& 
-                   aFilteredList, const TGlxFilterProperties& aFilterProperties)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeIdList::PostFilterL()");
-/*    if( TSize(0,0) != aFilterProperties.iThumbnailLoadability )
-        {
-        DataSource()->ThumbnailCreator().FilterAvailableThumbnailsL
-        (aFilteredList.Array(), iFilterProperties.iThumbnailLoadability, *this);
-        }
-    else
-        {
-*/        if( aFilterProperties.iPromoteSystemItems )
-            {
-            RArray<TGlxMediaId> list = aFilteredList;
-            TInt favoritesIndex = list.Find(DataSource()->FavoritesId());
-            if( KErrNotFound != favoritesIndex )
-                {
-                list.Remove(favoritesIndex);
-                list.Insert(DataSource()->FavoritesId(), KGlxAlbumPromotionPosition);
-                }
-            TInt cameraAlbumIndex = list.Find(DataSource()->CameraAlbumId());
-            if( KErrNotFound != cameraAlbumIndex )
-                {
-                list.Remove(cameraAlbumIndex);
-                list.Insert(DataSource()->CameraAlbumId(), KGlxAlbumPromotionPosition);
-                }
-            DoPostFilterComplete(list, KErrNone);
-            }
-        else
-            {
-            DoPostFilterComplete(aFilteredList, KErrNone);
-            }
-//        }
-    }
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde/src/glxdatasourcetaskmdethumbnail.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,464 +0,0 @@
-/*
-* Copyright (c) 2006 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:   
-*
-*/
-
-
-
-#include "glxdatasourcetaskmdethumbnail.h"
-
-#include <caf/content.h>
-#include <glxcollectionpluginCamera.hrh>
-#include <glxcollectionpluginDownloads.hrh>
-#include <glxcollectionpluginMonths.hrh>
-#include <glxcollectionpluginalbums.hrh>
-#include <glxcollectionpluginall.hrh>
-#include <glxcollectionplugintags.hrh>
-#include <glxerrors.h>
-#include <glxfilterfactory.h>
-#include <glxgetrequest.h>
-#include <glxidlistrequest.h>
-#include <glxlog.h>
-#include <glxmediacollectioninternaldefs.h>
-#include <glxmediageneraldefs.h>
-#include <glxrequest.h>
-#include <glxthumbnailattributeinfo.h>
-#include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
-#include <glxtnfileinfo.h>
-#include <glxtnthumbnailcreator.h>
-#include <lbsposition.h>
-#include <mdeconstants.h>
-#include <mdelogiccondition.h>
-#include <mdeobject.h>
-#include <mdeobjectdef.h>
-#include <mdeobjectquery.h>
-#include <mdepropertydef.h>
-#include <mderelationdef.h>
-#include <mdesession.h>
-#include <mdetextproperty.h>
-#include <mpxmedia.h>
-#include <mpxmediaarray.h> 
-#include <mpxmediacollectiondetaildefs.h>
-#include <mpxmediacontainerdefs.h>
-#include <mpxmediadrmdefs.h>
-#include <mpxmediageneraldefs.h>
-
-#include "glxdatasourcemde.h"
-#include "glxdatasourcemde.hrh"
-
-// CONSTANTS
-
-_LIT(KPropertyDefNameDRM, "DRM");
-_LIT(KPropertyDefNameItemType, "ItemType");
-_LIT(KPropertyDefNameLastModifiedDate, "LastModifiedDate");
-_LIT(KPropertyDefNameSize, "Size");
-_LIT(KUnsupportedItemType,  "video/x-pn-realvideo");
-_LIT(KUnsupportedItemType1, "video/x-pn-multirate-realvideo");
-_LIT(KUnsupportedItemType2, "video/vnd.rn-realvideo");
-_LIT(KUnsupportedItemType3, "video/x-ms-wmv");
-
-// ----------------------------------------------------------------------------
-//  IsUnsupportedL
-//  Tests to see if an item type is unsupported
-// ----------------------------------------------------------------------------
-//  
-TBool IsUnsupportedL(CMdESession& aSession, TItemId aItemId)
-	{
-    GLX_LOG_ENTRY_EXIT("IsUnsupportedL()");
-	TBool isUnsupported = EFalse;
-    CMdEObject* item = aSession.GetObjectL(aItemId);
-    
-    if (!item)
-    	{
-    	User::Leave(KErrNotFound);
-    	}
-    
-    CleanupStack::PushL(item);
-    CMdEProperty* itemType = NULL;
-    CMdEPropertyDef* itemTypeProperty = item->Def().GetPropertyDefL(KPropertyDefNameItemType);
-    
-    TInt itemTypeIndex = item->Property(*itemTypeProperty, itemType);
-    if (itemTypeIndex > KErrNotFound)
-    	{
-    	const TDesC& des = static_cast< CMdETextProperty *>(itemType)->Value();
-    	if (des.Compare(KUnsupportedItemType) == 0 || 
-    	    des.Compare(KUnsupportedItemType1) == 0 || 
-    	    des.Compare(KUnsupportedItemType2) == 0 ||
-    	    des.Compare(KUnsupportedItemType3) == 0)
-    		{
-    		// The item is unsupported
-    		isUnsupported = ETrue;
-    		}
-    	}
-    CleanupStack::PopAndDestroy(item);
-
-    return isUnsupported;
-	}
-
-// ----------------------------------------------------------------------------
-//  Constructor
-// ----------------------------------------------------------------------------
-// 	
-CGlxDataSourceTaskMdeThumbnail:: CGlxDataSourceTaskMdeThumbnail(CGlxThumbnailRequest* aRequest, 
-		                       MGlxDataSourceRequestObserver& aObserver, CGlxDataSource* aDataSource)
-    : CGlxDataSourceTaskMde(aRequest, aObserver, aDataSource)
-    {
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMdeThumbnail::CGlxDataSourceTaskMdeThumbnail()");
-    iFilterProperties = TGlxFilterFactory::ExtractAttributes(iRequest->Filter());
-    }
-
-// ----------------------------------------------------------------------------
-//  Destructor
-// ----------------------------------------------------------------------------
-//  	
-CGlxDataSourceTaskMdeThumbnail::~CGlxDataSourceTaskMdeThumbnail()
-    {
-    GLX_LOG_ENTRY_EXIT("CGlxDataSourceTaskMdeThumbnail::~CGlxDataSourceTaskMdeThumbnail()");    
-    if( iTnRequestStatus )
-        {
-        CancelFetchUri(TGlxMediaId());
-        }
-    if( iTnRequestInProgress )
-        {
-        CGlxThumbnailRequest* request = static_cast<CGlxThumbnailRequest*>(iRequest);
-    
-        TGlxThumbnailRequest tnReq;
-        request->ThumbnailRequest(tnReq);
-        DataSource()->ThumbnailCreator().CancelRequest(tnReq.iId);
-        }
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::ExecuteRequest
-// ----------------------------------------------------------------------------
-//          
-void CGlxDataSourceTaskMdeThumbnail::ExecuteRequestL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::ExecuteRequestL()"); 
-    CGlxThumbnailRequest* request = static_cast<CGlxThumbnailRequest*>(iRequest);
-    
-    TGlxThumbnailRequest tnReq;
-    request->ThumbnailRequest(tnReq);
-    iTnRequestInProgress = ETrue;
-    DataSource()->ThumbnailCreator().FetchThumbnailL(tnReq, *this);
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::HandleRequestComplete
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeThumbnail::HandleRequestComplete(TInt aError)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::HandleRequestComplete()");
-    CGlxThumbnailRequest* request = static_cast<CGlxThumbnailRequest*>(iRequest);
-    if(request && !(aError == KErrNone || aError == KErrNoMemory))
-    	{
-    	// An error has occured.
-    	TBool isUnsupported = EFalse;
-    	// If the item type is unsupported the we want to display the default
-    	// icon rather than the corrupt icon.
-    	TRAPD(err, isUnsupported = IsUnsupportedL(DataSource()->Session(), 
-    			                          TItemId(request->ItemId().Value())));
-    	if (isUnsupported)
-    		{
-    		aError = KErrNotSupported;
-    		}
-    	else if (err != KErrNone)
-    		{
-    		aError = err;
-    		}
-    	}
-	CGlxDataSourceTask::HandleRequestComplete(aError);
-	}
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeThumbnail::DoHandleQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeThumbnail::DoHandleQueryCompletedL(CMdEQuery& /*aQuery*/)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::DoHandleQueryCompletedL()");
-    if (EContainerFirstItemQuery == iQueryTypes[0])
-        {
-        TRAPD(err, DoHandleContainerFirstItemQueryCompletedL());
-        
-        if (err != KErrNone)
-            {
-            CompleteThumbnailRequest(err);
-            }
-        }
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::HandleThumbnailFetchCompleteL
-// ----------------------------------------------------------------------------
-//   
-void CGlxDataSourceTaskMdeThumbnail::HandleThumbnailFetchCompleteL(const TGlxMediaId& aId,
-        TGlxThumbnailQuality aQuality)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::HandleThumbnailFetchCompleteL()");
-    __ASSERT_DEBUG(dynamic_cast<CGlxThumbnailRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxThumbnailRequest* req = static_cast<CGlxThumbnailRequest*>(iRequest);
-    delete iResponse;
-    iResponse = NULL;
-    iResponse = CMPXMedia::NewL();
-    CGlxThumbnailAttribute* tnAttribute = new (ELeave) CGlxThumbnailAttribute;
-    CleanupStack::PushL(tnAttribute);
-    TGlxThumbnailRequest tnRequest;
-    req->ThumbnailRequest(tnRequest); 
-    TSize size(tnRequest.iSizeClass);
-    tnAttribute->iDimensions = size;
-    tnAttribute->iCroppingRect = tnRequest.iCroppingRect;
-    tnAttribute->iThumbnailQuality = aQuality;
-
-    TUint attributeId = req->AttributeId();
-    if ( GlxIsFullThumbnailAttribute(attributeId) )
-        {
-        TBool quality = (EGlxThumbnailQualityHigh == aQuality);
-        attributeId = GlxFullThumbnailAttributeId(quality,
-                                                size.iWidth, size.iHeight);
-        }
-
-    iResponse->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, aId.Value());
-    iResponse->SetNoNewLCObjectL(
-                TMPXAttribute(KGlxMediaIdThumbnail, attributeId), tnAttribute);
-    CleanupStack::PopAndDestroy(tnAttribute);
-    }
-
-// -----------------------------------------------------------------------------
-// ThumbnailFetchComplete
-// Notifies that a thumbnail for a given item is available, or that
-// thumbnail generation failed.
-// -----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeThumbnail::ThumbnailFetchComplete(
-    const TGlxMediaId& aItemId, TGlxThumbnailQuality aQuality, TInt aErrorCode)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::ThumbnailFetchComplete()");
-    iTnRequestInProgress = EFalse;
-    TInt err = aErrorCode;
-    if(!err)
-        {
-        TRAP(err, HandleThumbnailFetchCompleteL(aItemId, aQuality));
-        }
-    HandleRequestComplete(err);
-    }
-
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::ThumbnailDeletionComplete
-// ----------------------------------------------------------------------------
-//   
-void CGlxDataSourceTaskMdeThumbnail::ThumbnailDeletionComplete(
-                                const TGlxMediaId& /*aItemId*/, TInt /*aErrorCode*/)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::ThumbnailDeletionComplete()");
-    }
-
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::FilterAvailableComplete
-// ----------------------------------------------------------------------------
-//   
-void CGlxDataSourceTaskMdeThumbnail::FilterAvailableComplete(
-                                const RArray<TGlxMediaId>& /*aIdArray*/, TInt /*aErrorCode*/)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::FilterAvailableComplete()");
-    // No implementation
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::FetchFileInfoL
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeThumbnail::FetchFileInfoL(CGlxtnFileInfo* aInfo,
-                        const TGlxMediaId& aItemId, TRequestStatus* aStatus)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::FetchFileInfoL()");
-    __ASSERT_DEBUG(dynamic_cast<CGlxThumbnailRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxThumbnailRequest* request = static_cast<CGlxThumbnailRequest*>(iRequest);
-    if(request->ThumbnailInfo())
-        {
-        aInfo->CopyInfoL(*request->ThumbnailInfo());
-        *aStatus = KRequestPending;
-        User::RequestComplete(aStatus, KErrNone);
-        return;
-        }
-
-    CMdEObject* item = DataSource()->Session().GetObjectL((TMdEItemId)aItemId.Value());
-    if(!item)
-        {
-        User::Leave(KErrNotFound);
-        }
-        
-    CleanupStack::PushL(item);
-    iTnRequestStatus = aStatus;
-    iTnFileInfo = aInfo;
-    *iTnRequestStatus = KRequestPending;
-    
-    CGlxDataSource::TContainerType containerType = DataSource()->ContainerType(item);
-    if( CGlxDataSource::EContainerTypeNotAContainer != containerType )
-        {
-        iTnFileInfo->iTemporary = ETrue;
-        
-        TGlxMediaId container = aItemId;
-        CMdEObjectDef* objectDef = &item->Def();
-        
-        /// @todo: use default filter so we can ensure we always get correct first item if filters change
-        iFilterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate;
-        iFilterProperties.iSortDirection = EGlxFilterSortDirectionDescending;
-        iFilterProperties.iLastCaptureDate = ETrue;
-
-        if( CGlxDataSource::EContainerTypeMonth == containerType )
-            {
-            AddMonthFilterL(item, iFilterProperties);
-            container = DataSource()->CameraAlbumId();
-            objectDef = &DataSource()->AlbumDef();
-            }
-            
-        DoQueryL(*objectDef, ETrue, EContainerFirstItemQuery, EQueryResultModeObjectWithoutFreetexts, container);        
-        }
-    else
-        {
-        CompleteFetchFileInfoL(item);
-        }
-
-    CleanupStack::PopAndDestroy(item);
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::CompleteFetchFileInfoL
-// ----------------------------------------------------------------------------
-//  	    
-void CGlxDataSourceTaskMdeThumbnail::CompleteFetchFileInfoL(CMdEObject* aItem)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::CompleteFetchFileInfoL()");
-    TParsePtrC parser(aItem->Uri());
-    iTnFileInfo->SetFilePathL(parser.FullName());
-
-    CMdEProperty* size;
-    CMdEPropertyDef* sizeProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameSize);
-    TInt sizeIndex = aItem->Property(*sizeProperty, size); 
-    if( KErrNotFound == sizeIndex )
-        {
-        iTnFileInfo->iFileSize = 0;
-        }
-    else
-        {
-        iTnFileInfo->iFileSize = static_cast< CMdEInt32Property *>(size)->Value();
-        }
-
-    CMdEProperty* lastModifiedDateProperty;
-    CMdEPropertyDef* lastModifiedDatePropertyDef = aItem->Def().GetPropertyDefL(KPropertyDefNameLastModifiedDate);
-
-#ifdef _DEBUG
-    TInt index = // This variable is only required for the assert debug below. If it is not wrapped in an  
-                 // #ifdef _DEBUG, it will cause a warning in non debug builds.
-#endif    
-    aItem->Property(*lastModifiedDatePropertyDef, lastModifiedDateProperty);
-    __ASSERT_DEBUG(index > KErrNotFound, Panic(EGlxPanicRequiredPropertyNotFound));
-    
-    iTnFileInfo->iFileTime = static_cast<CMdETimeProperty*>(lastModifiedDateProperty)->Value();
-    
-    CGlxDataSource::TItemType itemType = DataSource()->ItemType(aItem);
-    iTnFileInfo->iIsVideo = ( CGlxDataSource::EItemTypeVideo == itemType );
-    
-    CMdEProperty* drmProtected;
-    CMdEPropertyDef* drmProtectedProperty = aItem->Def().GetPropertyDefL(KPropertyDefNameDRM); 
-    TInt drmProtectedIndex = aItem->Property(*drmProtectedProperty, drmProtected);
-    TInt err = KErrNone;
-    if( KErrNotFound == drmProtectedIndex)
-        {
-        // should be present for all normally harvested images
-        // so this should only be where we didn't pre-fetch the attributes
-        // i.e. background thumbnail generation
-        // so we get status from CAF to avoid forcing second stage harvest
-        TRAP(err, 
-            ContentAccess::CContent* content = ContentAccess::CContent::NewLC(iTnFileInfo->FilePath());
-            content->GetAttribute(ContentAccess::EIsProtected, iTnFileInfo->iIsProtected);
-            CleanupStack::PopAndDestroy(content);
-            );
-        }
-    else
-        {
-        iTnFileInfo->iIsProtected =  static_cast<CMdEBoolProperty*>(drmProtected)->Value();
-        }
-
-    CompleteThumbnailRequest(err);
-    iTnFileInfo = NULL;
-    iTnRequestStatus = NULL;
-    }
-
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::CancelFetchUri
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeThumbnail::CancelFetchUri(const TGlxMediaId& /*aItemId*/)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::CancelFetchUri()");
-    CompleteThumbnailRequest(KErrCancel);
-    }
-
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::ThumbnailStorage
-// ----------------------------------------------------------------------------
-//  
-MGlxtnThumbnailStorage* CGlxDataSourceTaskMdeThumbnail::ThumbnailStorage()
-    {
-    GLX_LOG_ENTRY_EXIT("MGlxtnThumbnailStorage* CGlxDataSourceTaskMdeThumbnail::ThumbnailStorage()");
-    return &DataSource()->ThumbnailDatabase();
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeThumbnail::DoHandleContainerFirstItemQueryCompletedL
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeThumbnail::DoHandleContainerFirstItemQueryCompletedL()
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::DoHandleContainerFirstItemQueryCompletedL()");
-    if( !iQueries[0]->Count() )
-        {
-        User::Leave(KErrGlxEmptyContainer); // leave with a specific Error code so UI can display empty folder icon
-        }
-    
-    CMdEObject* item = static_cast<CMdEObject*>(iQueries[0]->TakeOwnershipOfResult(0));
-    if(!item)
-        {
-        User::Leave(KErrNotFound);
-        }
-    
-    CleanupStack::PushL(item);
-    CompleteFetchFileInfoL(item);
-    CleanupStack::PopAndDestroy(item);
-    }
-
-// ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMdeThumbnail::CompleteThumbnailRequest
-// ----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeThumbnail::CompleteThumbnailRequest(TInt aError)
-	{
-    GLX_LOG_ENTRY_EXIT("void CGlxDataSourceTaskMdeThumbnail::CompleteThumbnailRequest()");
-    if (iTnRequestStatus)
-        {
-    	*iTnRequestStatus = KRequestPending;
-        User::RequestComplete(iTnRequestStatus, aError);
-        iTnFileInfo = NULL;
-        iTnRequestStatus = NULL;
-        }
-	}
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/group/glxdatasourcemde.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/group/glxdatasourcemde.mmp	Wed Oct 06 14:49:39 2010 +0530
@@ -46,15 +46,11 @@
 SOURCE          glxdatasourcetaskmdscommand.cpp
 SOURCE          glxdatasourcetaskmdsidlist.cpp
 SOURCE          glxdatasourcetaskmdsthumbnail.cpp
-
-// if you comment the lines below out, Photos dB will be used for thumbnail fetching
-MACRO USE_S60_TNM
-#define USE_S60_TNM
+SOURCE          glxtnfileinfo.cpp
 
 // System includes from the source tree
 SYSTEMINCLUDE   ../../../../../../commonutilities/common/inc
 SYSTEMINCLUDE   ../../../../../../inc
-SYSTEMINCLUDE   ../../../../thumbnailcreator/inc
 SYSTEMINCLUDE   ../../../manager/inc
 SYSTEMINCLUDE   ../inc
 
@@ -81,12 +77,8 @@
 LIBRARY         fbscli.lib 
 LIBRARY         glxcommon.lib
 LIBRARY         glxdatasourcemanager.lib
-#ifdef USE_S60_TNM
 LIBRARY         thumbnailmanager.lib
 LIBRARY         bitgdi.lib
-#else
-LIBRARY         glxthumbnailcreator.lib
-#endif
 LIBRARY         inetprotutil.lib
 LIBRARY         lbs.lib
 LIBRARY         mdeclient.lib
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcemds.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcemds.h	Wed Oct 06 14:49:39 2010 +0530
@@ -40,26 +40,17 @@
 
 #include <harvesterclient.h>
 #include <harvestereventenum.h>
-
-#include <mglxtnstorage.h>
 #include <mpxcollectionmessagedefs.h>
-
-#ifdef USE_S60_TNM
 #include <thumbnailmanager.h>
 #include <thumbnailmanagerobserver.h>
 #include <thumbnaildata.h>
 #include <thumbnailobjectsource.h>
 
 #include "mthumbnailfetchrequestobserver.h"
-#endif
 #include "glxdatasource.h"
 
 // FORWARD DECLARATIONS
 class CGlxRequest;
-#ifndef USE_S60_TNM
-class CGlxtnThumbnailCreator;
-class CGlxtnThumbnailDatabase;
-#endif
 class CGlxDataSourceMde ;
 
 const TUid KHarvesterPSShutdown = { 0x200009F5 } ;
@@ -169,12 +160,8 @@
                           public MMdEObjectPresentObserver,
                           public MMdERelationObserver,
                           public MMdERelationPresentObserver,
-                          public MHarvesterEventObserver
-#ifdef USE_S60_TNM
-						, public MThumbnailManagerObserver
-#else
-                        , public MGlxtnThumbnailStorageObserver
-#endif
+                          public MHarvesterEventObserver,
+						  public MThumbnailManagerObserver
     {
 public:
     static CGlxDataSourceMde* NewL();
@@ -197,27 +184,10 @@
                 HarvesterEventState aHarvesterEventState,
                 TInt aItemsLeft );
 
-#ifdef USE_S60_TNM
 public:
 	void FetchThumbnailL(CGlxRequest* aRequest, 
 	        MThumbnailFetchRequestObserver& aObserver);
 	TInt CancelFetchThumbnail();
-#else
-private: 
-    // from MGlxtnThumbnailStorageObserver
-    /**
-    * Notify that a given thumbnail is available in storage.
-    * @param aId Media item ID.
-    * @param aSize Requested thumbnail size.
-    */
-    void ThumbnailAvailable(const TGlxMediaId& aId, const TSize& aSize);
-    /**
-    * Notify that a given thumbnail is available in storage.
-    * @param aId Media item ID.
-    * @param aSize Thumbnail size.
-    */
-    void BackgroundThumbnailError(const TGlxMediaId& aId, TInt aError);
-#endif
 
 private: 
     /**
@@ -257,14 +227,12 @@
 	void HandleRelationPresentNotification(CMdESession& aSession,
 			TBool aPresent, const RArray<TItemId>& aRelationIdArray);
 
-#ifdef USE_S60_TNM
     // from MThumbnailManagerObserver
     void ThumbnailPreviewReady( MThumbnailData& aThumbnail,
         TThumbnailRequestId aId );
     
     void ThumbnailReady( TInt aError, MThumbnailData& aThumbnail,
         TThumbnailRequestId aId );
-#endif
 		
 private:
     void BackgroundThumbnailMessageL(const TGlxMediaId& aId, const TSize& aSize, 
@@ -289,13 +257,11 @@
 
     void TaskStartedL();
     
-#ifdef USE_S60_TNM
     /*
      * This function doesnt add up any value, added to reduce compiler warnings
      */
     void ThumbnailReadyL( TInt aError, MThumbnailData& aThumbnail,
         TThumbnailRequestId aId, TBool aQuality );
-#endif
     
 public:
 
@@ -303,12 +269,6 @@
     
     inline CMdESession& Session() const;
     
-#ifndef USE_S60_TNM
-    inline CGlxtnThumbnailCreator& ThumbnailCreator() const;
-
-    inline CGlxtnThumbnailDatabase& ThumbnailDatabase() const;
-#endif
-
     inline RFs& FileServerSession();
 
     inline const TGlxMediaId& CameraAlbumId() const;
@@ -360,7 +320,6 @@
     void ShutdownNotification(TInt aShutdownState);
 
 private:
-#ifdef USE_S60_TNM
 	MThumbnailFetchRequestObserver* iTnFetchObserver; 
     CThumbnailManager* iTnEngine;
     CFbsBitmap* iTnThumbnail;
@@ -370,11 +329,6 @@
     TInt iTnHandle;
     TGlxMediaId iMediaId;
     
-#else
-    CGlxtnThumbnailCreator*   iThumbnailCreator;
-    CGlxtnThumbnailDatabase*  iThumbnailDatabase;
-#endif
-
     CMdESession*              iSession;
     RFs iFs;
     TBool                     iSessionOpen;
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcemds.inl	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcemds.inl	Wed Oct 06 14:49:39 2010 +0530
@@ -33,26 +33,6 @@
     return *iSession;
     }
 
-#ifndef USE_S60_TNM
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::ThumbnailCreator
-// ----------------------------------------------------------------------------
-// 
-CGlxtnThumbnailCreator& CGlxDataSourceMde::ThumbnailCreator() const
-    {
-    return *iThumbnailCreator;
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceMde::ThumbnailDatabase
-// ----------------------------------------------------------------------------
-// 
-CGlxtnThumbnailDatabase& CGlxDataSourceMde::ThumbnailDatabase() const
-    {
-    return *iThumbnailDatabase;
-    }
-#endif
-
 // ----------------------------------------------------------------------------
 //  CGlxDataSourceMde::FileServerSession
 // ----------------------------------------------------------------------------
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmds.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmds.h	Wed Oct 06 14:49:39 2010 +0530
@@ -31,13 +31,11 @@
 #include <glxfilterproperties.h>
 #include <mdccommon.h>
 #include <mdequery.h>
-#include <mglxtnthumbnailcreatorclient.h>
 #include <mpxfilter.h>
 
 // FORWARD DECLARATIONS
 class CGlxDataSourceMde;
 class CGlxRequest;
-class CGlxtnThumbnailCreator;
 class CMdEObjectDef;
 class CMdEObjectQuery;
 class CMdESession;
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdscommand.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdscommand.h	Wed Oct 06 14:49:39 2010 +0530
@@ -30,7 +30,6 @@
 #include <glxcommandparser.h>
 #include <mdequery.h>
 #include <mdeitem.h>
-#include <mglxtnthumbnailcreatorclient.h>
 #include <glxcommandrequest.h>
 #include "glxdatasourcetaskmds.h"
 
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsidlist.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsidlist.h	Wed Oct 06 14:49:39 2010 +0530
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:   
+* Description:    Data Source Task MDS IDlist class
 *
 */
 
@@ -31,14 +31,12 @@
 #include <glxdatasourcetask.h>
 #include <glxdatasource.h>
 #include <mdccommon.h>
-#include <mglxtnthumbnailcreatorclient.h>
 #include <mpxfilter.h>
 #include <glxfilterproperties.h>
 #include "glxdatasourcetaskmds.h"
 // FORWARD DECLARATIONS
 class CGlxDataSourceMde;
 class CGlxIdListRequest;
-class CGlxtnThumbnailCreator;
 class CMdEObjectDef;
 class CMdEObjectQuery;
 class CMdESession;
@@ -47,9 +45,7 @@
  *  CGlxDataSourceTaskMdeIdList class 
  *  Task to handle id list requests.
  */
-NONSHARABLE_CLASS(CGlxDataSourceTaskMdeIdList) : public CGlxDataSourceTaskMde,
-                                                 public MGlxtnThumbnailCreatorClient
-
+NONSHARABLE_CLASS(CGlxDataSourceTaskMdeIdList) : public CGlxDataSourceTaskMde
 	{
 public:
     /**
@@ -65,46 +61,7 @@
       * Destructor.
       */
      ~CGlxDataSourceTaskMdeIdList();
-    	
-private: // from MGlxtnThumbnailCreatorClient
-	/**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::ThumbnailFetchComplete
-	 */ 
-	void ThumbnailFetchComplete(const TGlxMediaId& /*aItemId*/,
-            TGlxThumbnailQuality /*aQuality*/, TInt /*aErrorCode*/) {};
 	 
-	/**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::ThumbnailDeletionComplete
-	 */ 
-	 void ThumbnailDeletionComplete(const TGlxMediaId& /*aItemId*/,
-             TInt /*aErrorCode*/) {};
-	 
-	/**
-	 * See @ref MGlxtnThumbnailCreatorClient::FilterAvailableComplete
-	 */ 
-	 void FilterAvailableComplete(const RArray<TGlxMediaId>& aIdArray,
-	                                         TInt aErrorCode);
-	/**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::FetchFileInfoL
-	 */ 
-	 void FetchFileInfoL(CGlxtnFileInfo* /*aInfo*/,
-	                 const TGlxMediaId& /*aItemId*/, TRequestStatus* /*aStatus*/) {};
-	
-    /**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::CancelFetchUri
-	 */ 
-	 void CancelFetchUri(const TGlxMediaId& /*aItemId*/) {};
-	 
-	/**
-	 * Not used (pure virtual stubbed)
-	 * See @ref MGlxtnThumbnailCreatorClient::ThumbnailStorage
-	 */ 
-	 MGlxtnThumbnailStorage* ThumbnailStorage() { return NULL; };
-
 public: // From CGlxDataSourceTask    
     /**
      * See @ref CGlxDataSourceTask::ExecuteRequestL
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxdatasourcetaskmdsthumbnail.h	Wed Oct 06 14:49:39 2010 +0530
@@ -25,24 +25,16 @@
  */
 
 #include "glxdatasourcetaskmdsattribute.h"
+#include "mthumbnailfetchrequestobserver.h"
 
-#ifdef USE_S60_TNM
-#include "mthumbnailfetchrequestobserver.h"
-#endif
-
-#include <mglxtnthumbnailcreatorclient.h>
 #include <glxthumbnailrequest.h>
 
 /**
  *  CGlxDataSourceTaskMdeThumnail class 
  *  Services thumbnail requests
  */
-NONSHARABLE_CLASS(CGlxDataSourceTaskMdeThumbnail) : public CGlxDataSourceTaskMde 
-#ifdef USE_S60_TNM
-									                , public MThumbnailFetchRequestObserver
-#else									                
-									                , public MGlxtnThumbnailCreatorClient
-#endif									                
+NONSHARABLE_CLASS(CGlxDataSourceTaskMdeThumbnail) : public CGlxDataSourceTaskMde,  
+									                public MThumbnailFetchRequestObserver
 	{
 public:
     /**
@@ -75,44 +67,9 @@
      */ 
     void DoHandleQueryCompletedL(CMdEQuery& aQuery);
 
-#ifdef USE_S60_TNM
 private: //MThumbnailFetchRequestObserver
     void ThumbnailFetchComplete(TInt aError, TBool aQuality);
     void FetchFileInfoL();
-#endif
-
-private: // From MGlxtnThumbnailCreatorClient
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::ThumbnailFetchComplete
-     */ 
-    void ThumbnailFetchComplete(const TGlxMediaId& aItemId,
-                            TGlxThumbnailQuality aQuality, TInt aErrorCode);
-            
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::ThumbnailDeletionComplete
-     */
-    void ThumbnailDeletionComplete(const TGlxMediaId& aItemId, TInt aErrorCode);
-
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::FilterAvailableComplete
-     */
-    void FilterAvailableComplete(const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode);
-    
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::FetchFileInfoL
-     */
-    void FetchFileInfoL(CGlxtnFileInfo* aInfo, const TGlxMediaId& aItemId,
-                    TRequestStatus* aStatus);
-      
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::CancelFetchUri
-     */
-    void CancelFetchUri(const TGlxMediaId& aItemId);
-    
-    /**
-     * See @ref MGlxtnThumbnailCreatorClient::ThumbnailStorage
-     */
-    MGlxtnThumbnailStorage* ThumbnailStorage();
     			
 private:
 	void HandleThumbnailFetchCompleteL(const TGlxMediaId& aId,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxtnfileinfo.h	Wed Oct 06 14:49:39 2010 +0530
@@ -0,0 +1,81 @@
+/*
+* 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 "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: 
+*
+*/
+
+
+#ifndef C_GLXTNFILEINFO_H
+#define C_GLXTNFILEINFO_H
+
+#include <e32base.h>
+
+/**
+ * Object holding information about a file to be thumbnailed.
+ *
+ */
+class CGlxtnFileInfo : public CBase
+    {
+public:
+	inline CGlxtnFileInfo();
+    inline	~CGlxtnFileInfo();
+
+    /**
+    * Copy info from one object to another.
+    */
+    inline void CopyInfoL(CGlxtnFileInfo& aInfo);
+
+    /**
+    * Get the full path to the media file.
+    * @return Media file path.
+    */
+    inline const TDesC& FilePath() const;
+
+    /**
+    * Set the full path to the media file.
+    * @param aPath Media file path (takes ownership).
+    */
+    inline void SetFilePath(HBufC* aPath);
+
+    /**
+    * Set the full path to the media file.
+    * @param aPath Media file path.
+    */
+    inline void SetFilePathL(const TDesC& aPath);
+
+    /**
+    * Set the full path to the media file.
+    * @param aIsVideo Set to true if the file is a video.
+    * @param aIsProtected Set to true if the file is DRM protected.
+    */
+    void IdentifyFileL(TBool& aIsVideo, TBool& aIsProtected);
+
+public:
+    /** Size of the media file */
+    TInt iFileSize;
+    /** Last modified time of the media file */
+    TTime iFileTime;
+    /** True if the thumbnail is temporary and should not be stored */
+    TBool iTemporary;
+    TBool iIsVideo;
+    TBool iIsProtected;
+
+private:
+    /** Full path of the media file */
+    HBufC* iFilePath;
+    };
+
+#include "glxtnfileinfo.inl"
+   
+#endif // C_GLXTNFILEINFO_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxtnfileinfo.inl	Wed Oct 06 14:49:39 2010 +0530
@@ -0,0 +1,81 @@
+/*
+* 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 "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: 
+*
+*/
+
+
+// -----------------------------------------------------------------------------
+// Constructor
+// -----------------------------------------------------------------------------
+//
+inline CGlxtnFileInfo::CGlxtnFileInfo()
+    {
+    }
+
+// -----------------------------------------------------------------------------
+// Destructor
+// -----------------------------------------------------------------------------
+//
+inline CGlxtnFileInfo::~CGlxtnFileInfo()
+    {
+    delete iFilePath;
+    }
+
+// -----------------------------------------------------------------------------
+// CopyInfoL
+// -----------------------------------------------------------------------------
+//
+inline void CGlxtnFileInfo::CopyInfoL(CGlxtnFileInfo& aInfo)
+    {
+    SetFilePathL(aInfo.FilePath());
+    iFileSize = aInfo.iFileSize;
+    iFileTime = aInfo.iFileTime;
+    iTemporary = aInfo.iTemporary;
+    iIsVideo = aInfo.iIsVideo;
+    iIsProtected = aInfo.iIsProtected;
+    }
+
+// -----------------------------------------------------------------------------
+// FilePath
+// Get the full path to the media file.
+// -----------------------------------------------------------------------------
+//
+inline const TDesC& CGlxtnFileInfo::FilePath() const
+    {
+    return *iFilePath;
+    }
+
+// -----------------------------------------------------------------------------
+// SetFilePathL
+// Set the full path to the media file.
+// -----------------------------------------------------------------------------
+//
+inline void CGlxtnFileInfo::SetFilePath(HBufC* aPath)
+    {
+    delete iFilePath;
+    iFilePath = aPath;
+    }
+
+// -----------------------------------------------------------------------------
+// SetFilePathL
+// Set the full path to the media file.
+// -----------------------------------------------------------------------------
+//
+inline void CGlxtnFileInfo::SetFilePathL(const TDesC& aPath)
+    {
+    delete iFilePath;
+    iFilePath = NULL;
+    iFilePath = aPath.AllocL();
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxtnthumbnailrequest.h	Wed Oct 06 14:49:39 2010 +0530
@@ -0,0 +1,57 @@
+/*
+* 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 "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: 
+*
+*/
+
+#ifndef T_GLXTHUMBNAILREQUEST_H
+#define T_GLXTHUMBNAILREQUEST_H
+
+#include "glxmediaid.h"
+#include "glxthumbnailinfo.h"
+
+class TGlxThumbnailRequest 
+	{
+public:
+	enum TPriorityMode
+		{
+		EPrioritizeSpeed,	// Speed of thumbnail provisioning is mode important that quality
+		EPrioritizeQuality,	// Quality of thumbnail provisioning is mode important that speed
+		};
+
+public:
+    inline TGlxThumbnailRequest();
+
+    inline TGlxThumbnailRequest(TGlxMediaId aId,
+        const TSize& aSizeClass, TPriorityMode aPriorityMode,
+        TInt aBitmapHandle, TBool aDrmAllowed);
+
+    inline TGlxThumbnailRequest(TGlxMediaId aId,
+        const TSize& aSizeClass, TPriorityMode aPriorityMode,
+        TInt aBitmapHandle, TBool aDrmAllowed,
+        const TRect& aCroppingRect, TGlxThumbnailFilter aFilter);
+
+public:
+	TGlxMediaId iId;
+	TSize iSizeClass;
+	TPriorityMode iPriorityMode; 
+	TInt iBitmapHandle; // Handle of target bitmap for the thumbnail
+	TBool iDrmAllowed;  // True if client has DRM capability
+    TRect iCroppingRect;
+    TGlxThumbnailFilter iFilter;
+	};
+
+#include "glxtnthumbnailrequest.inl"
+
+#endif // T_GLXTHUMBNAILREQUEST_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/inc/glxtnthumbnailrequest.inl	Wed Oct 06 14:49:39 2010 +0530
@@ -0,0 +1,42 @@
+/*
+* 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 "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: 
+*
+*/
+
+
+inline TGlxThumbnailRequest::TGlxThumbnailRequest() :
+    iPriorityMode(EPrioritizeQuality), iBitmapHandle(0),
+    iDrmAllowed(EFalse), iFilter(EGlxThumbnailFilterNone)
+    {
+    }
+
+inline TGlxThumbnailRequest::TGlxThumbnailRequest(TGlxMediaId aId,
+        const TSize& aSizeClass, TPriorityMode aPriorityMode,
+        TInt aBitmapHandle, TBool aDrmAllowed) :
+    iId(aId), iSizeClass(aSizeClass), iPriorityMode(aPriorityMode), 
+    iBitmapHandle(aBitmapHandle), iDrmAllowed(aDrmAllowed),
+    iFilter(EGlxThumbnailFilterNone)
+    {
+    }
+
+inline TGlxThumbnailRequest::TGlxThumbnailRequest(TGlxMediaId aId,
+        const TSize& aSizeClass, TPriorityMode aPriorityMode,
+        TInt aBitmapHandle, TBool aDrmAllowed,
+        const TRect& aCroppingRect, TGlxThumbnailFilter aFilter) :
+    iId(aId), iSizeClass(aSizeClass), iPriorityMode(aPriorityMode), 
+    iBitmapHandle(aBitmapHandle), iDrmAllowed(aDrmAllowed),
+	iCroppingRect(aCroppingRect), iFilter(aFilter)
+    {
+    }
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcemds.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -29,12 +29,6 @@
 #include <glxidlistrequest.h>
 #include <glxrequest.h>
 #include <glxthumbnailrequest.h>
-
-#ifndef USE_S60_TNM
-#include <glxtndatabase.h>
-#include <glxtnthumbnailcreator.h>
-#endif
-
 #include <glxtracer.h>
 #include <glxlog.h>
 #include <mdeobjectcondition.h>
@@ -49,13 +43,7 @@
 #include "glxdatasourcetaskmdsidlist.h"
 #include "glxdatasourcetaskmdsthumbnail.h"
 
-#ifdef USE_S60_TNM
 const TInt KMaxGridThumbnailWidth = 200;
-#else
-const TInt KGlxThumbnailCleanupAfterDeletions = 200;
-
-_LIT(KGlxMdeDataSourceThumbnailDatabase, "glxmdstn");
-#endif
 
 _LIT(KObjectDefLocation, "Location");
 _LIT(KObjectDefNameAlbum, "Album");
@@ -234,7 +222,6 @@
     TRACER("CGlxDataSourceMde::~CGlxDataSourceMde()");
     delete iSession;
     
-#ifdef USE_S60_TNM
     delete iTnThumbnail;
     iTnThumbnail = NULL;    
 
@@ -243,13 +230,7 @@
 
     delete iTnEngine;
     iTnEngine = NULL;    
-#else 
-     if (iThumbnailCreator)
-    	{
-    	iThumbnailCreator->Close(iThumbnailDatabase);
-    	}
-    delete iThumbnailDatabase;
-#endif
+
     iFs.Close();
     iHC.Close();
     RFbsSession::Disconnect();
@@ -287,15 +268,9 @@
             
     User::LeaveIfError(RFbsSession::Connect());
 
-#ifdef USE_S60_TNM
     iTnEngine = CThumbnailManager::NewL( *this);
     iTnEngine->SetDisplayModeL( EColor16M );
     iTnRequestInProgress = EFalse;
-#else
-	iThumbnailCreator = CGlxtnThumbnailCreator::InstanceL();
-	iThumbnailDatabase = CGlxtnThumbnailDatabase::NewL(
-            	                        KGlxMdeDataSourceThumbnailDatabase, this);
-#endif
             	                        
     iCreateSessionCallback = new ( ELeave )
 	    CAsyncCallBack( TCallBack( CreateSession, this ), CActive::EPriorityHigh );
@@ -422,30 +397,6 @@
 		}
 	}
 
-#ifndef USE_S60_TNM
-// ---------------------------------------------------------------------------
-// ThumbnailAvailable
-// ---------------------------------------------------------------------------
-//
-void CGlxDataSourceMde::ThumbnailAvailable(const TGlxMediaId& 
-        /*aId*/, const TSize& /*aSize*/)
-	{
-    TRACER("CGlxDataSourceMde::ThumbnailAvailable(const TGlxMediaId& /*aId*/, const TSize& /*aSize*/)");
-	//No implementation
-	}
-
-// ---------------------------------------------------------------------------
-// BackgroundThumbnailError
-// ---------------------------------------------------------------------------
-//
-void CGlxDataSourceMde::BackgroundThumbnailError(const TGlxMediaId& aId, TInt aError)
-	{
-    TRACER("CGlxDataSourceMde::BackgroundThumbnailError(const TGlxMediaId& aId, TInt aError)");
-	TSize size(0, 0);
-	TRAP_IGNORE(BackgroundThumbnailMessageL(aId, size, aError));
-	}
-#endif
-
 // ---------------------------------------------------------------------------
 // BackgroundThumbnailMessageL
 // ---------------------------------------------------------------------------
@@ -580,29 +531,6 @@
 
    	GLX_DEBUG1("HandleObjectNotification - ProcessUpdateArray");
 	ProcessUpdateArray(aObjectIdArray,  MPXChangeEventType(aType), ETrue);
-#ifndef USE_S60_TNM
-	if(MPXChangeEventType(aType) == EMPXItemDeleted )
-		{			
-		TInt count = aObjectIdArray.Count();
-		iDeletedCount += count;
-		GLX_DEBUG3("EMPXItemDeleted - aObjectIdArray.Count()=%d, iDeletedCount=%d", 
-		        count, iDeletedCount);
-		if(iDeletedCount > KGlxThumbnailCleanupAfterDeletions)
-		    {
-	    	TRAPD(err, ThumbnailCreator().CleanupThumbnailsL(iThumbnailDatabase));
-	    	if(!err)
-	    	    {
-	    	    iDeletedCount = 0;
-	    	    }
-		    }
-		}
-
-	if(MPXChangeEventType(aType) == EMPXItemModified )
-	    {
-	    GLX_DEBUG1("HandleObjectNotification - EMPXItemModified");
-	    TRAP_IGNORE(ThumbnailCreator().CleanupThumbnailsL(iThumbnailDatabase));
-		}
-#endif		
 	}
 
 // ---------------------------------------------------------------------------
@@ -1058,7 +986,6 @@
     iPauseUpdate = ETrue;
     }	
     
-#ifdef USE_S60_TNM
 void CGlxDataSourceMde::FetchThumbnailL(CGlxRequest* aRequest, 
         MThumbnailFetchRequestObserver& aObserver)
 	{
@@ -1210,7 +1137,6 @@
         iTnRequestInProgress = EFalse;
         }
     }
-#endif
 
 // ---------------------------------------------------------------------------
 // CGlxDataSourceMde
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmds.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -40,9 +40,7 @@
 #include <glxrequest.h>
 #include <glxthumbnailattributeinfo.h>
 #include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
 #include <glxtnfileinfo.h>
-#include <glxtnthumbnailcreator.h>
 #include <glxtracer.h>
 #include <lbsposition.h>
 #include <mdeconstants.h>
@@ -103,11 +101,7 @@
     {
     TRACER("CGlxDataSourceTaskMde::ConstructL()");
     CreateResponseL();
-#ifdef USE_S60_TNM
     DataSource()->CancelFetchThumbnail();
-#else    
-    DataSource()->ThumbnailCreator().CancelRequest( TGlxMediaId(0) );
-#endif
     }
 
 // ----------------------------------------------------------------------------
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -36,9 +36,7 @@
 #include <glxrequest.h>
 #include <glxthumbnailattributeinfo.h>
 #include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
 #include <glxtnfileinfo.h>
-#include <glxtnthumbnailcreator.h>
 #include <glxtracer.h>
 #include <lbsposition.h>
 #include <mdeconstants.h>
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdscommand.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -28,8 +28,6 @@
 #include <e32math.h>
 #include <glxcommandrequest.h>
 #include <glxpanic.h>
-#include <glxtndatabase.h>
-#include <glxtnthumbnailcreator.h>
 #include <glxtracer.h>
 #include <caf/manager.h>
 #include <mdeconstants.h>
@@ -136,11 +134,7 @@
 	{
     TRACER("CGlxDataSourceTaskMdeCommand::ConstructL()");
 	iResponse = CMPXCommand::NewL(static_cast<CGlxCommandRequest*>(iRequest)->Command());
-#ifdef USE_S60_TNM
     DataSource()->CancelFetchThumbnail();
-#else    
-    DataSource()->ThumbnailCreator().CancelRequest( TGlxMediaId(0) );
-#endif    
     
     iTimer = CPeriodic::NewL(CActive::EPriorityStandard);
     iSchedulerWait = new (ELeave) CActiveSchedulerWait();
@@ -490,10 +484,6 @@
 void CGlxDataSourceTaskMdeCommand::ThumbnailCleanupL()
 	{
     TRACER("CGlxDataSourceTaskMdeCommand::ThumbnailCleanupL()");
-#ifndef USE_S60_TNM
-    CGlxDataSourceMde* ds = DataSource();
-    ds->ThumbnailCreator().CleanupThumbnailsL(&ds->ThumbnailDatabase());
-#endif
 	HandleRequestComplete(KErrNone);	
 	}
 
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsidlist.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -42,9 +42,7 @@
 #include <glxrequest.h>
 #include <glxthumbnailattributeinfo.h>
 #include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
 #include <glxtnfileinfo.h>
-#include <glxtnthumbnailcreator.h>
 #include <glxtracer.h>
 #include <lbsposition.h>
 #include <mdeconstants.h>
@@ -96,17 +94,6 @@
     }
 
 // ----------------------------------------------------------------------------
-// CGlxDataSourceTaskMde::FilterAvailableComplete
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeIdList::FilterAvailableComplete(
-                                const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode)
-    {
-    TRACER("CGlxDataSourceTaskMdeIdList::FilterAvailableComplete()")
-    DoPostFilterComplete(aIdArray, aErrorCode);
-    }
-
-// ----------------------------------------------------------------------------
 //  CGlxDataSourceTaskMdeIdList::ExecuteRequestL
 // ----------------------------------------------------------------------------
 //
@@ -246,6 +233,10 @@
                                   const TGlxFilterProperties& aFilterProperties)
     {
     TRACER("CGlxDataSourceTaskMdeIdList::DoMonthListCreationL()")
+#ifdef _DEBUG
+    TTime startTime;
+    startTime.HomeTime(); 
+#endif            
     CMdEProperty* time;
     CMdEPropertyDef& creationDateDef = DataSource()->ObjectDef().GetPropertyDefL(KPropertyDefNameCreationDate);
     if (creationDateDef.PropertyType() != EPropertyTime)
@@ -280,6 +271,12 @@
     GLX_DEBUG2("CGlxDataSourceTaskMdeIdList::DoMonthListCreationL monthList.Count=%d", monthList.Count());    
     PostFilterL(monthList, aFilterProperties);
     CleanupStack::PopAndDestroy(&monthList);
+#ifdef _DEBUG
+    TTime stopTime;
+    stopTime.HomeTime(); 
+    GLX_DEBUG2("GlxDataSrcTaskMdeIdList:DoMonthListCreationL() took %d us",
+                     (TInt)stopTime.MicroSecondsFrom(startTime).Int64());
+#endif     
     }
 
 // ----------------------------------------------------------------------------
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -36,9 +36,7 @@
 #include <glxrequest.h>
 #include <glxthumbnailattributeinfo.h>
 #include <glxthumbnailrequest.h>
-#include <glxtndatabase.h>
 #include <glxtnfileinfo.h>
-#include <glxtnthumbnailcreator.h>
 #include <glxtracer.h>
 #include <lbsposition.h>
 #include <mdeconstants.h>
@@ -129,24 +127,9 @@
 CGlxDataSourceTaskMdeThumbnail::~CGlxDataSourceTaskMdeThumbnail()
     {
     TRACER("CGlxDataSourceTaskMdeThumbnail::~CGlxDataSourceTaskMdeThumbnail()")    
-#ifdef USE_S60_TNM
     DataSource()->CancelFetchThumbnail();
     delete iTnFileInfo;
     iTnFileInfo = NULL;
-#else
-    if( iTnRequestStatus )
-        {
-        CancelFetchUri(TGlxMediaId());
-        }
-    if( iTnRequestInProgress )
-        {
-        CGlxThumbnailRequest* request = static_cast<CGlxThumbnailRequest*>(iRequest);
-    
-        TGlxThumbnailRequest tnReq;
-        request->ThumbnailRequest(tnReq);
-        DataSource()->ThumbnailCreator().CancelRequest(tnReq.iId);
-        }
-#endif        
     }
 
 // ----------------------------------------------------------------------------
@@ -167,7 +150,6 @@
     						tnReq.iSizeClass.iWidth, tnReq.iSizeClass.iHeight);
     GLX_DEBUG2("CGlxDataSourceTaskMdeThumbnail::ExecuteRequestL() iPriorityMode=%d", tnReq.iPriorityMode);
 	
-#ifdef USE_S60_TNM
 	if(request->ThumbnailInfo())
 		{
 		if (tnReq.iSizeClass.iWidth > 0 && tnReq.iSizeClass.iHeight > 0 )
@@ -183,10 +165,6 @@
 		{
 	   	FetchFileInfoL();
 		}
-#else
-    iTnRequestInProgress = ETrue;
-    DataSource()->ThumbnailCreator().FetchThumbnailL(tnReq, *this);
-#endif
     }
 
 // ----------------------------------------------------------------------------
@@ -278,7 +256,6 @@
     CleanupStack::PopAndDestroy(tnAttribute);
     }
 
-#ifdef USE_S60_TNM
 void CGlxDataSourceTaskMdeThumbnail::ThumbnailFetchComplete(TInt aError, 
                                                             TBool aQuality)
 	{
@@ -298,131 +275,6 @@
         }
     HandleRequestComplete(err);
 	}
-#else
-// -----------------------------------------------------------------------------
-// ThumbnailFetchComplete
-// Notifies that a thumbnail for a given item is available, or that
-// thumbnail generation failed.
-// -----------------------------------------------------------------------------
-//
-void CGlxDataSourceTaskMdeThumbnail::ThumbnailFetchComplete(
-    const TGlxMediaId& aItemId, TGlxThumbnailQuality aQuality, TInt aErrorCode)
-    {
-    TRACER("CGlxDataSourceTaskMdeThumbnail::ThumbnailFetchComplete()")
-    GLX_DEBUG2("CGlxDataSourceTaskMdeThumbnail::ThumbnailFetchComplete() aErrorCode=%d", aErrorCode);
-    iTnRequestInProgress = EFalse;
-    TInt err = aErrorCode;
-    if(!err)
-        {
-        TRAP(err, HandleThumbnailFetchCompleteL(aItemId, aQuality));
-        }
-    HandleRequestComplete(err);
-    }
-
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::ThumbnailDeletionComplete
-// ----------------------------------------------------------------------------
-//   
-void CGlxDataSourceTaskMdeThumbnail::ThumbnailDeletionComplete(
-                                const TGlxMediaId& /*aItemId*/, TInt /*aErrorCode*/)
-    {
-    TRACER("CGlxDataSourceTaskMdeThumbnail::ThumbnailDeletionComplete()")
-    }
-
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::FilterAvailableComplete
-// ----------------------------------------------------------------------------
-//   
-void CGlxDataSourceTaskMdeThumbnail::FilterAvailableComplete(
-                                const RArray<TGlxMediaId>& /*aIdArray*/, TInt /*aErrorCode*/)
-    {
-    TRACER("CGlxDataSourceTaskMdeThumbnail::FilterAvailableComplete()")
-    // No implementation
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::FetchFileInfoL
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeThumbnail::FetchFileInfoL(CGlxtnFileInfo* aInfo,
-                        const TGlxMediaId& aItemId, TRequestStatus* aStatus)
-    {
-    TRACER("CGlxDataSourceTaskMdeThumbnail::FetchFileInfoL()")
-    __ASSERT_DEBUG(dynamic_cast<CGlxThumbnailRequest*>(iRequest), Panic(EGlxPanicLogicError));
-    CGlxThumbnailRequest* request = static_cast<CGlxThumbnailRequest*>(iRequest);
-    if(request->ThumbnailInfo())
-        {
-        aInfo->CopyInfoL(*request->ThumbnailInfo());
-        *aStatus = KRequestPending;
-        User::RequestComplete(aStatus, KErrNone);
-        return;
-        }
-
-    CMdEObject* item = DataSource()->Session().GetObjectL((TItemId)aItemId.Value());
-    if(!item)
-        {
-        User::Leave(KErrNotFound);
-        }
-        
-    CleanupStack::PushL(item);
-    iTnRequestStatus = aStatus;
-    iTnFileInfo = aInfo;
-    *iTnRequestStatus = KRequestPending;
-    
-    CGlxDataSource::TContainerType containerType = DataSource()->ContainerType(item);
-    if( CGlxDataSource::EContainerTypeNotAContainer != containerType )
-        {
-        iTnFileInfo->iTemporary = ETrue;
-        
-        TGlxMediaId container = aItemId;
-        CMdEObjectDef* objectDef = &item->Def();
-        
-        /// @todo: use default filter so we can ensure we always get correct first item if filters change
-        iFilterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate;
-        iFilterProperties.iSortDirection = EGlxFilterSortDirectionOverrideToDescendingIfDate;
-        iFilterProperties.iLastCaptureDate = ETrue;
-
-        if( CGlxDataSource::EContainerTypeMonth == containerType )
-            {
-            iFilterProperties.iOrigin = EGlxFilterOriginAll;
-            AddMonthFilterL(item, iFilterProperties);
-            container = TGlxMediaId(KGlxCollectionRootId);
-            objectDef = &DataSource()->ObjectDef();
-            }
-            
-        DoQueryL(*objectDef, ETrue, EContainerFirstItemQuery,  
-                EQueryResultModeItem, container);        
-        }
-    else
-        {
-        CompleteFetchFileInfoL(item);
-        }
-
-    CleanupStack::PopAndDestroy(item);
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::CancelFetchUri
-// ----------------------------------------------------------------------------
-//  
-void CGlxDataSourceTaskMdeThumbnail::CancelFetchUri(const TGlxMediaId& /*aItemId*/)
-    {
-    TRACER("CGlxDataSourceTaskMdeThumbnail::CancelFetchUri()")
-    CompleteThumbnailRequest(KErrCancel);
-    }
-
-// ----------------------------------------------------------------------------
-//  CGlxDataSourceTaskMdeThumbnail::ThumbnailStorage
-// ----------------------------------------------------------------------------
-//  
-MGlxtnThumbnailStorage* CGlxDataSourceTaskMdeThumbnail::ThumbnailStorage()
-    {
-    TRACER("CGlxDataSourceTaskMdeThumbnail::ThumbnailStorage()")
-    return &DataSource()->ThumbnailDatabase();
-    }
-#endif
 
 // ----------------------------------------------------------------------------
 //  CGlxDataSourceTaskMdeThumbnail::CompleteFetchFileInfoL
@@ -529,7 +381,6 @@
 	{
     TRACER("CGlxDataSourceTaskMdeThumbnail::CompleteThumbnailRequest(TInt aError)")
     GLX_DEBUG2("CGlxDataSourceTaskMdeThumbnail::CompleteThumbnailRequest  aError=%d", aError);
-#ifdef USE_S60_TNM
 	if (aError != KErrNone)
 		{
 		ThumbnailFetchComplete(aError, EFalse);
@@ -553,17 +404,9 @@
 		    GLX_LOG_INFO("CGlxDataSourceTaskMdeThumbnail::CompleteThumbnailRequest KErrArgument");
 			ThumbnailFetchComplete(KErrArgument, EFalse);
 			}
-			}
-#else
-    if (iTnRequestStatus)
-        {
-    	*iTnRequestStatus = KRequestPending;
-        User::RequestComplete(iTnRequestStatus, aError);
-        }
-#endif
+		}
 	}
 
-#ifdef USE_S60_TNM
 // ----------------------------------------------------------------------------
 //  CGlxDataSourceTaskMdeThumbnail::FetchFileInfoL
 // ----------------------------------------------------------------------------
@@ -616,5 +459,3 @@
 
     CleanupStack::PopAndDestroy(item);
     }
-
-#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxtnfileinfo.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -0,0 +1,33 @@
+/*
+* 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 CGlxtnFileInfo
+*
+*/
+
+
+#include "glxtnfileinfo.h"
+
+#include <glxtracer.h>
+// -----------------------------------------------------------------------------
+// IdentifyFileL
+// -----------------------------------------------------------------------------
+//
+void CGlxtnFileInfo::IdentifyFileL(TBool& aIsVideo, TBool& aIsProtected)
+    {
+    TRACER("void CGlxtnFileInfo::IdentifyFileL()");
+    User::LeaveIfNull(iFilePath);
+
+    aIsVideo = iIsVideo;
+    aIsProtected = iIsProtected;
+    }
--- a/engine/collectionframework/datasource/plugins/group/bld.inf	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/group/bld.inf	Wed Oct 06 14:49:39 2010 +0530
@@ -18,9 +18,4 @@
 
 
 PRJ_MMPFILES
-
-#ifdef GLX_USE_MDS_2_0
-#include "../glxdatasourcemde/group/bld.inf"
-#else
 #include "../glxdatasourcemde2.5/group/bld.inf"
-#endif
--- a/engine/collectionframework/group/bld.inf	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/group/bld.inf	Wed Oct 06 14:49:39 2010 +0530
@@ -17,7 +17,6 @@
 
 
 
-#include "../thumbnailcreator/group/bld.inf"
 #include <platform_paths.hrh>    //APP_LAYER_DOMAIN_EXPORT_PATH
 
 PRJ_TESTEXPORTS
--- a/engine/collectionframework/plugins/glxcollectionpluginall/group/glxcollectionpluginall.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/plugins/glxcollectionpluginall/group/glxcollectionpluginall.mmp	Wed Oct 06 14:49:39 2010 +0530
@@ -43,7 +43,6 @@
 SYSTEMINCLUDE   ../../../../../inc
 SYSTEMINCLUDE   ../../../../../gallery/loc
 SYSTEMINCLUDE   ../../../datasource/manager/inc
-SYSTEMINCLUDE   ../../../thumbnailcreator/inc
 
 // System includes from epoc32/include
 APP_LAYER_SYSTEMINCLUDE
--- a/engine/collectionframework/plugins/glxcollectionplugincamera/group/glxcollectionplugincamera.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/plugins/glxcollectionplugincamera/group/glxcollectionplugincamera.mmp	Wed Oct 06 14:49:39 2010 +0530
@@ -45,7 +45,6 @@
 SYSTEMINCLUDE   ../../../../../inc
 SYSTEMINCLUDE   ../../../../../gallery/loc
 SYSTEMINCLUDE   ../../../datasource/manager/inc
-SYSTEMINCLUDE   ../../../thumbnailcreator/inc
 
 // System includes from epoc32/include
 APP_LAYER_SYSTEMINCLUDE
--- a/engine/collectionframework/plugins/glxcollectionplugincamera/src/glxcollectionplugincamera.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/plugins/glxcollectionplugincamera/src/glxcollectionplugincamera.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -371,7 +371,7 @@
 // 
 TGlxFilterProperties CGlxCollectionPluginCamera::DefaultFilter(TInt aLevel)
     {
-    TRACER("CGlxCollectionPluginDownloads::DefaultFilter");
+    TRACER("CGlxCollectionPluginCamera::DefaultFilter");
     
     __ASSERT_DEBUG(( (aLevel == KGlxCollectionRootLevel) || (aLevel == KGlxCollectionRootLevel+1) 
     || (aLevel == KGlxCollectionRootLevel+2) ), Panic(EGlxPanicInvalidPathLevel));
--- a/engine/collectionframework/plugins/glxcollectionplugindownloads/group/glxcollectionplugindownloads.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/plugins/glxcollectionplugindownloads/group/glxcollectionplugindownloads.mmp	Wed Oct 06 14:49:39 2010 +0530
@@ -45,7 +45,6 @@
 SYSTEMINCLUDE   ../../../../../inc
 SYSTEMINCLUDE   ../../../../../gallery/loc
 SYSTEMINCLUDE   ../../../datasource/manager/inc
-SYSTEMINCLUDE   ../../../thumbnailcreator/inc
 
 // System includes for epoc32/include
 
--- a/engine/collectionframework/plugins/glxcollectionpluginmonths/group/glxcollectionpluginmonths.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/plugins/glxcollectionpluginmonths/group/glxcollectionpluginmonths.mmp	Wed Oct 06 14:49:39 2010 +0530
@@ -43,7 +43,6 @@
 SYSTEMINCLUDE   ../../../../../inc
 SYSTEMINCLUDE   ../../../../../gallery/loc
 SYSTEMINCLUDE   ../../../datasource/manager/inc
-SYSTEMINCLUDE   ../../../thumbnailcreator/inc
 
 // System includes for epoc32/include
 APP_LAYER_SYSTEMINCLUDE
--- a/engine/collectionframework/plugins/tagcollectionplugin/group/glxcollectionplugintags.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ b/engine/collectionframework/plugins/tagcollectionplugin/group/glxcollectionplugintags.mmp	Wed Oct 06 14:49:39 2010 +0530
@@ -58,7 +58,6 @@
 SYSTEMINCLUDE         ../../../../../gallery/loc							//Gallery Loc
 SYSTEMINCLUDE         ../../../datasource/manager/inc			//DataSource Include
 SYSTEMINCLUDE         ../../../../../commonutilities/common/inc
-SYSTEMINCLUDE         ../../../thumbnailcreator/inc
 
 
 // System includes from epoc32/include
Binary file engine/collectionframework/thumbnailcreator/Cenrep/02000A09.cre has changed
Binary file engine/collectionframework/thumbnailcreator/Cenrep/02000A09.txt has changed
Binary file engine/collectionframework/thumbnailcreator/Cenrep/keys_thumbnailcreator.xls has changed
--- a/engine/collectionframework/thumbnailcreator/bwins/glxthumbnailcreatoru.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-EXPORTS
-	?CancelRequest@CGlxtnThumbnailCreator@@QAEXABVTGlxMediaId@@@Z @ 1 NONAME ; void CGlxtnThumbnailCreator::CancelRequest(class TGlxMediaId const &)
-	?CleanupThumbnailsL@CGlxtnThumbnailCreator@@QAEXPAVMGlxtnThumbnailStorage@@@Z @ 2 NONAME ; void CGlxtnThumbnailCreator::CleanupThumbnailsL(class MGlxtnThumbnailStorage *)
-	?Close@CGlxtnThumbnailCreator@@QAEXPAVMGlxtnThumbnailStorage@@@Z @ 3 NONAME ; void CGlxtnThumbnailCreator::Close(class MGlxtnThumbnailStorage *)
-	?DeleteThumbnailsL@CGlxtnThumbnailCreator@@QAEXABVTGlxMediaId@@AAVMGlxtnThumbnailCreatorClient@@@Z @ 4 NONAME ; void CGlxtnThumbnailCreator::DeleteThumbnailsL(class TGlxMediaId const &, class MGlxtnThumbnailCreatorClient &)
-	?FetchThumbnailL@CGlxtnThumbnailCreator@@QAEXABVTGlxThumbnailRequest@@AAVMGlxtnThumbnailCreatorClient@@@Z @ 5 NONAME ; void CGlxtnThumbnailCreator::FetchThumbnailL(class TGlxThumbnailRequest const &, class MGlxtnThumbnailCreatorClient &)
-	?FilterAvailableThumbnailsL@CGlxtnThumbnailCreator@@QAEXABV?$TArray@VTGlxMediaId@@@@ABVTSize@@AAVMGlxtnThumbnailCreatorClient@@@Z @ 6 NONAME ; void CGlxtnThumbnailCreator::FilterAvailableThumbnailsL(class TArray<class TGlxMediaId> const &, class TSize const &, class MGlxtnThumbnailCreatorClient &)
-	?InstanceL@CGlxtnThumbnailCreator@@SAPAV1@XZ @ 7 NONAME ; class CGlxtnThumbnailCreator * CGlxtnThumbnailCreator::InstanceL(void)
-	?NewL@CGlxtnThumbnailDatabase@@SAPAV1@ABVTDesC16@@PAVMGlxtnThumbnailStorageObserver@@@Z @ 8 NONAME ; class CGlxtnThumbnailDatabase * CGlxtnThumbnailDatabase::NewL(class TDesC16 const &, class MGlxtnThumbnailStorageObserver *)
-
Binary file engine/collectionframework/thumbnailcreator/conf/thumbnailcreator.confml has changed
Binary file engine/collectionframework/thumbnailcreator/conf/thumbnailcreator_02000A09.crml has changed
--- a/engine/collectionframework/thumbnailcreator/eabi/glxthumbnailcreatoru.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-EXPORTS
-	_ZN22CGlxtnThumbnailCreator13CancelRequestERK11TGlxMediaId @ 1 NONAME
-	_ZN22CGlxtnThumbnailCreator15FetchThumbnailLERK20TGlxThumbnailRequestR28MGlxtnThumbnailCreatorClient @ 2 NONAME
-	_ZN22CGlxtnThumbnailCreator17DeleteThumbnailsLERK11TGlxMediaIdR28MGlxtnThumbnailCreatorClient @ 3 NONAME
-	_ZN22CGlxtnThumbnailCreator18CleanupThumbnailsLEP22MGlxtnThumbnailStorage @ 4 NONAME
-	_ZN22CGlxtnThumbnailCreator26FilterAvailableThumbnailsLERK6TArrayI11TGlxMediaIdERK5TSizeR28MGlxtnThumbnailCreatorClient @ 5 NONAME
-	_ZN22CGlxtnThumbnailCreator5CloseEP22MGlxtnThumbnailStorage @ 6 NONAME
-	_ZN22CGlxtnThumbnailCreator9InstanceLEv @ 7 NONAME
-	_ZN23CGlxtnThumbnailDatabase4NewLERK7TDesC16P30MGlxtnThumbnailStorageObserver @ 8 NONAME
-	_ZTI22CGlxtnThumbnailCreator @ 9 NONAME ; #<TI>#
-	_ZTI23CGlxtnThumbnailDatabase @ 10 NONAME ; #<TI>#
-	_ZTV22CGlxtnThumbnailCreator @ 11 NONAME ; #<VT>#
-	_ZTV23CGlxtnThumbnailDatabase @ 12 NONAME ; #<VT>#
-
--- a/engine/collectionframework/thumbnailcreator/group/bld.inf	Mon Sep 27 15:13:20 2010 +0530
+++ /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:   Build information file for project glxthumbnailcreator.
-*
-*/
-
-
-// Lines removed while reverting task 8396
-//#include <platform_paths.hrh>
-
-PRJ_MMPFILES
-../group/glxthumbnailcreator.mmp
-../thumbnailcomposerplugin/glxthumbnailcomposerplugin.mmp
-
-PRJ_TESTEXPORTS
-../../../../gallery/data/Battle.jpg    /epoc32/winscw/c/TncTest/test.jpg
-../../../../gallery/data/Image1.jpg    /epoc32/winscw/c/TncTest/no_exif.jpg
-../test/data/tall.jpg               /epoc32/winscw/c/TncTest/tall.jpg
-../test/data/wide.jpg               /epoc32/winscw/c/TncTest/wide.jpg
-../test/data/red_1x1.jpg            /epoc32/winscw/c/TncTest/red_1x1.jpg
-../test/data/corrupt.jpg            /epoc32/winscw/c/TncTest/corrupt.jpg
-
-// Lines removed while reverting task 8396
-//PRJ_EXPORTS
-//../cenrep/02000A09.txt              /epoc32/data/z/private/10202be9/02000A09.txt
-//../cenrep/02000A09.txt              /epoc32/release/winscw/udeb/z/private/10202be9/02000A09.txt
-//../conf/thumbnailcreator.confml                 CONFML_EXPORT_PATH(thumbnailcreator.confml,customsw)
-//../conf/thumbnailcreator_02000A09.crml 	        CRML_EXPORT_PATH(thumbnailcreator_02000A09.crml,customsw)
-
-// Generic configuration interface for component cenrep settings  
-// component_1000292B implementation specifics for cenrep data
-// component_12345678 implementation specifics for genconf ml data
-
-//gnumakefile bld_cenrep_entry.mk
-
-
-PRJ_TESTMMPFILES
-../test/group/ut_cglxtndeletethumbnailstask.mmp
-../test/group/ut_cglxtnfilteravailabletask.mmp
-../test/group/ut_cglxtngeneratethumbnailtask.mmp
-../test/group/ut_cglxtnquickthumbnailtask.mmp
-../test/group/ut_cglxtnzoomedimagetask.mmp
--- a/engine/collectionframework/thumbnailcreator/group/create-ut_cglxtngeneratethumbnailtask-sis.bat	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-rem
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description: 
-rem
-
-
-
-@echo off
-echo.
-echo ====================================
-echo.
-echo Digia EUnit - Test
-echo.
-echo This BAT copies Test DLL
-echo to local folder and makes SIS file
-echo.
-echo ====================================
-echo.
-
-:CHECK_EPOCROOT
-echo.
-echo - verify epoc root
-set EPOCROOT
-if errorlevel == 1 goto END_ERROR 
-
-:COPY_DLL
-echo.
-echo - copy test dll to current directory
-copy %EPOCROOT%epoc32\release\thumb\urel\ut_cglxtngeneratethumbnailtask.dll .
-if errorlevel == 1 goto END_ERROR 
-
-:CREATE_DIR
-echo.
-echo - create Sis folder (created only if needed)
-mkdir ..\Sis
-
-:MAKESIS
-echo.
-echo - makesis ut_cglxtngeneratethumbnailtask.pkg ..\sis\ut_cglxtngeneratethumbnailtask.sis
-call makesis ut_cglxtngeneratethumbnailtask.pkg ..\sis\ut_cglxtngeneratethumbnailtask.sis
-if errorlevel == 1 goto END_ERROR
-
-:DELETE_DLL
-echo.
-echo - remove the copied dll from current folder
-del ut_cglxtngeneratethumbnailtask.dll
-goto END
-
-:END_ERROR
-echo.
-echo Sis creation failed. 
-goto FINAL_END
-
-:END
-echo.
-echo Sis file created succesfully
-echo ============================
-
-:FINAL_END
-echo.
-
--- a/engine/collectionframework/thumbnailcreator/group/create-ut_cglxtnquickthumbnailtask-sis.bat	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-rem
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description: 
-rem
-
-
-
-
-@echo off
-echo.
-echo ====================================
-echo.
-echo Digia EUnit - Test
-echo.
-echo This BAT copies Test DLL
-echo to local folder and makes SIS file
-echo.
-echo ====================================
-echo.
-
-:CHECK_EPOCROOT
-echo.
-echo - verify epoc root
-set EPOCROOT
-if errorlevel == 1 goto END_ERROR 
-
-:COPY_DLL
-echo.
-echo - copy test dll to current directory
-copy %EPOCROOT%epoc32\release\thumb\urel\ut_cglxtnquickthumbnailtask.dll .
-if errorlevel == 1 goto END_ERROR 
-
-:CREATE_DIR
-echo.
-echo - create Sis folder (created only if needed)
-mkdir ..\Sis
-
-:MAKESIS
-echo.
-echo - makesis ut_cglxtnquickthumbnailtask.pkg ..\sis\ut_cglxtnquickthumbnailtask.sis
-call makesis ut_cglxtnquickthumbnailtask.pkg ..\sis\ut_cglxtnquickthumbnailtask.sis
-if errorlevel == 1 goto END_ERROR
-
-:DELETE_DLL
-echo.
-echo - remove the copied dll from current folder
-del ut_cglxtnquickthumbnailtask.dll
-goto END
-
-:END_ERROR
-echo.
-echo Sis creation failed. 
-goto FINAL_END
-
-:END
-echo.
-echo Sis file created succesfully
-echo ============================
-
-:FINAL_END
-echo.
-
--- a/engine/collectionframework/thumbnailcreator/group/glxthumbnailcreator.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +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:   
-*
-*/
-
-
-
-#include   <bldvariant.hrh>
-#include   <data_caging_paths.hrh>
-#include   <platform_paths.hrh>  //APP_LAYER_SYSTEMINCLUDE
-
-#include   "../../../../group/glxbuildcommon.mmh"
-
-
-TARGET          glxthumbnailcreator.dll
-TARGETTYPE      dll
-UID             0x1000008d 0x02000A09
-
-#ifndef WINSCW
-EPOCALLOWDLLDATA
-#endif 
-CAPABILITY      CAP_GENERAL_DLL
-
-SOURCEPATH      ../src
-
-SOURCE          glxtnbackgroundgenerationtask.cpp
-SOURCE          glxtncleanuptask.cpp
-SOURCE          glxtndatabase.cpp
-SOURCE          glxtndeletethumbnailstask.cpp
-SOURCE          glxtnfileinfo.cpp
-SOURCE          glxtnfileutility.cpp
-SOURCE          glxtnfilteravailabletask.cpp
-SOURCE          glxtngeneratethumbnailtask.cpp
-SOURCE          glxtnimagedecoderfactory.cpp
-SOURCE          glxtnimageutility.cpp
-SOURCE          glxtnloadthumbnailtask.cpp
-SOURCE          glxtnquickthumbnailtask.cpp
-SOURCE          glxtnsavethumbnailtask.cpp
-SOURCE          glxtntaskmanager.cpp
-SOURCE          glxtntask.cpp
-SOURCE          glxtnthumbnailcreator.cpp
-SOURCE          glxtnvideoutility.cpp
-SOURCE          glxtnvolumedatabase.cpp
-SOURCE          glxtnzoomedimagetask.cpp
-
-USERINCLUDE     ../inc
-// System includes from the source tree
-SYSTEMINCLUDE   ../../../../inc
-SYSTEMINCLUDE   ../../../../commonutilities/common/inc
-
-
-// System includes from epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-
-LIBRARY         ihl.lib						// For IHL Library
-LIBRARY         bitgdi.lib
-LIBRARY         caf.lib
-//Line removed while reverting task 8396
-//LIBRARY         bafl.lib
-LIBRARY         edbms.lib
-LIBRARY         efsrv.lib
-LIBRARY         estor.lib
-LIBRARY         euser.lib
-LIBRARY         exiflib.lib
-LIBRARY         fbscli.lib 
-LIBRARY         glxcommon.lib 
-LIBRARY         iclextjpegapi.lib
-LIBRARY         imageconversion.lib
-LIBRARY         platformenv.lib
-//Line removed while reverting task 8396
-//LIBRARY         centralrepository.lib
-LIBRARY         flogger.lib						// For Logging Tracer
-#ifdef ENABLE_VED
-LIBRARY         vedengine.lib
-#else
-LIBRARY         tneengine.lib
-#endif
-
-SMPSAFE
-// End of File
--- a/engine/collectionframework/thumbnailcreator/group/ut_cglxtngeneratethumbnailtask.pkg	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-;
-; Copyright (c) 2004 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: 
-;
-
-; Supported languages
-&en
-
-; Package header (one name for each supported language)
-#{"ut_cglxtngeneratethumbnailtask"},(0x01700000),0,10,0
-
-; Package signature
-
-
-; Options line not supported currently
-
-; Conditions blocks not supported currently
-
-; Language independent files that are always installed
-"ut_cglxtngeneratethumbnailtask.dll"-"!:\DigiaEUnit\Tests\ut_cglxtngeneratethumbnailtask.dll"
-
-; Language dependent files 
-
-
-; Requisites (of type: (UID),Major,Minor,Build-Number,{"Requisite Name1", "Requisite Name2"})
-(0x101F6F88), 0, 0, 0, {"Series60ProductID"}
--- a/engine/collectionframework/thumbnailcreator/group/ut_cglxtnquickthumbnailtask.pkg	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-;
-; Copyright (c) 2004 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: 
-;
-
-; Supported languages
-&en
-
-; Package header (one name for each supported language)
-#{"ut_cglxtnquickthumbnailtask"},(0x01700000),0,10,0
-
-; Package signature
-
-
-; Options line not supported currently
-
-; Conditions blocks not supported currently
-
-; Language independent files that are always installed
-"ut_cglxtnquickthumbnailtask.dll"-"!:\DigiaEUnit\Tests\ut_cglxtnquickthumbnailtask.dll"
-
-; Language dependent files 
-
-
-; Requisites (of type: (UID),Major,Minor,Build-Number,{"Requisite Name1", "Requisite Name2"})
-(0x101F6F88), 0, 0, 0, {"Series60ProductID"}
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnbackgroundgenerationtask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,157 +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:   Thumbnail background generation task implementation
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef GLXTNBACKGROUNDGENERATIONTASK_H
-#define GLXTNBACKGROUNDGENERATIONTASK_H
-
-// INCLUDES
-
-#include "glxtnsavethumbnailtask.h"
-#include <glxsettingsmodel.h>
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-class CGlxtnFileUtility;
-class CGlxtnImageUtility;
-class CGlxtnVideoUtility;
-
-// CLASS DECLARATION
-
-/**
-* Background task to generate a thumbnail.
-*
-* @author Dan Rhodes
-* @ingroup glx_thumbnail_creator
-*/
-NONSHARABLE_CLASS(CGlxtnBackgroundGenerationTask) : public CGlxtnSaveThumbnailTask
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        * @param iItemId Media ID of item to thumbnail.
-        * @param aFileUtility File utility for use by the task.
-        * @param aClient Client initiating the request.
-        */
-        static CGlxtnBackgroundGenerationTask* NewL(
-                    const TGlxMediaId& iItemId, CGlxtnFileUtility& aFileUtility,
-                    MGlxtnThumbnailCreatorClient& aClient, 
-                    CGlxSettingsModel::TSupportedOrientations aSupportedOrientations);
-
-        /**
-        * Destructor.
-        */
-        virtual ~CGlxtnBackgroundGenerationTask();
-
-    private:    // From CGlxtnTask
-        TBool DoStartL(TRequestStatus& aStatus);
-    	void DoCancel(); 
-    	TBool DoRunL(TRequestStatus& aStatus);
-        TBool DoRunError(TInt aError);
-
-    private:
-        /**
-        * C++ default constructor.
-        * @param iItemId Media ID of item to thumbnail.
-        * @param aFileUtility File utility for use by the task.
-        * @param aClient Client initiating the request.
-        */
-        CGlxtnBackgroundGenerationTask(const TGlxMediaId& iItemId,
-                                    CGlxtnFileUtility& aFileUtility,
-                                    MGlxtnThumbnailCreatorClient& aClient, 
-                    CGlxSettingsModel::TSupportedOrientations aSupportedOrientations);
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-        /**
-        * Check whether next size already exists or needs to be generated.
-        * @param aStatus Request status for the asynchronous operation.
-        * @return ETrue if the task has issued an asyncronous request.
-        */
-        TBool CheckNextL(TRequestStatus& aStatus);
-
-        /**
-        * Create the next size to be generated.
-        * @param aStatus Request status for the asynchronous operation.
-        * @return ETrue if the task has issued an asyncronous request.
-        */
-        TBool ProcessNextL(TRequestStatus& aStatus);
-
-        /**
-        * Filter the thumbnail for the next required size.
-        * @param aStatus Request status for the asynchronous operation.
-        */
-        void FilterThumbnailL(TRequestStatus& aStatus);
-
-        /**
-        * Scale the thumbnail to the next required size.
-        * @param aStatus Request status for the asynchronous operation.
-        */
-        void ScaleThumbnailL(TRequestStatus& aStatus);
-
-        /**
-        * Decode the image for the required size.
-        * @param aStatus Request status for the asynchronous operation.
-        */
-        void DecodeImageL(TRequestStatus& aStatus);
-
-    private:    // Data
-        /** Pointer to client, or NULL after client goes away */
-        MGlxtnThumbnailCreatorClient* iClient;
-        /** File utility */
-        CGlxtnFileUtility& iFileUtility;
-        /** Array of sizes to check if need to generate */
-        RArray<TSize> iSizes;
-        /** Array of sizes to generate */
-        RArray<TSize> iTodoSizes;
-        /** Utility to get thumbnail from image */
-        CGlxtnImageUtility* iImageUtility;
-        /** Utility to get thumbnail from video */
-        CGlxtnVideoUtility* iVideoUtility;
-        /** Image loaded from file */
-        CFbsBitmap* iImage;
-       /** Image loaded from file */
-        CFbsBitmap* iFilteredImage;
-        /** Flag to show BadFileMarker not created so no need to delete **/
-        TBool iBadFileMarkerNotNeededFlag;
-        /** Flag to show whether image has been decoded yet **/
-        TBool iImageDecoded;
-        /** Flag to show which orientations are supported **/
-        CGlxSettingsModel::TSupportedOrientations iSupportedOrientations;
-        
-    };
-
-#endif  // GLXTNBACKGROUNDGENERATIONTASK_H
-
-// End of File
--- a/engine/collectionframework/thumbnailcreator/inc/glxtncleanuptask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +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:   Thumbnail storage cleanup task implementation
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef GLXTNCLEANUPTASK_H
-#define GLXTNCLEANUPTASK_H
-
-// INCLUDES
-
-#include "glxtntask.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-// CLASS DECLARATION
-
-/**
-* Background task to clean thumbnail storage of thumbnails for files which no
-* longer exist.
-*
-* @author Dan Rhodes
-* @ingroup glx_thumbnail_creator
-*/
-NONSHARABLE_CLASS(CGlxtnCleanupTask) : public CGlxtnTask
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        * @param aStorage Client's storage interface.
-        */
-        static CGlxtnCleanupTask* NewL(MGlxtnThumbnailStorage* aStorage);
-
-        /**
-        * Destructor.
-        */
-        virtual ~CGlxtnCleanupTask();
-
-    private:    // From CGlxtnTask
-        TBool DoStartL(TRequestStatus& aStatus);
-    	void DoCancel(); 
-    	TBool DoRunL(TRequestStatus& aStatus);
-        TBool DoRunError(TInt aError);
-
-    private:
-        /**
-        * C++ default constructor.
-        * @param aStorage Client's storage interface.
-        */
-        CGlxtnCleanupTask(MGlxtnThumbnailStorage* aStorage);
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-    private:    // Data
-    };
-
-#endif  // GLXTNCLEANUPTASK_H
-
-// End of File
--- a/engine/collectionframework/thumbnailcreator/inc/glxtndatabase.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +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:   Thumbnail storage implementation
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef GLXTNDATABASE_H
-#define GLXTNDATABASE_H
-
-// INCLUDES
-
-#include <e32base.h>
-#include <f32file.h>
-#include "mglxtnstorage.h"
-#include "mglxtnvolumedatabaseobserver.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-class CGlxtnVolumeDatabase;
-
-// CLASS DECLARATION
-
-/**
-*  Default implementation of thumbnail storage.
-*
-* @author Dan Rhodes
-* @ingroup glx_thumbnail_creator
-*/
-class CGlxtnThumbnailDatabase : public CBase, public MGlxtnThumbnailStorage,
-                                public MGlxtnVolumeDatabaseObserver
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        * @param aDbFilename Filename (without path) for database.
-        * @param aStorageObserver Observer of storage operations.
-        */
-        IMPORT_C static CGlxtnThumbnailDatabase* NewL(const TDesC& aDbFilename,
-                MGlxtnThumbnailStorageObserver* aStorageObserver = NULL);
-
-        /**
-        * Destructor.
-        */
-        virtual ~CGlxtnThumbnailDatabase();
-
-    public: // New functions
-
-    public: // Functions from MGlxtnThumbnailStorage
-        void LoadThumbnailDataL(HBufC8*& aData, TGlxImageDataFormat& aFormat,
-                    const TGlxMediaId& aId, const CGlxtnFileInfo& aFileInfo,
-                    const TSize& aSize, TRequestStatus* aStatus);
-        void SaveThumbnailDataL(const TDesC8& aData,
-                    TGlxImageDataFormat aFormat, const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo, const TSize& aSize,
-                    TRequestStatus* aStatus);
-        void DeleteThumbnailsL(const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo, TRequestStatus* aStatus);
-        void CleanupThumbnailsL(TRequestStatus* aStatus);
-        void IsThumbnailAvailableL(const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo,
-                    const TSize& aSize, TRequestStatus* aStatus);
-        void StorageCancel();
-        void NotifyBackgroundError(const TGlxMediaId& aId, TInt aError);
-
-    private:    // From MGlxtnVolumeDatabaseObserver
-        void HandleDatabaseError(TInt aError);
-        void HandleThumbnailIdFromMediaIdL(
-                                        const TGlxtnThumbnailId& aThumbId );
-        void HandleThumbnailIdFromFilenameL(
-                                        const TGlxtnThumbnailId& aThumbId );
-        void HandleThumbnailIdStoredL();
-        void HandleThumbnail(TGlxImageDataFormat aFormat, HBufC8* aData);
-        void HandleThumbnailStored();
-        void HandleMediaIdDeletedL();
-        void HandleThumbnailsDeletedL();
-        void HandleItemDeletedL();
-        void HandleAvailabilityChecked(TInt aResult);
-        void HandleDatabaseCleanedL();
-
-    private:
-
-        /**
-        * C++ default constructor.
-        */
-        CGlxtnThumbnailDatabase();
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        * @param aDbFilename Filename (without path) for database.
-        * @param aStorageObserver Observer of storage operations.
-        */
-        void ConstructL(const TDesC& aDbFilename,
-                        MGlxtnThumbnailStorageObserver* aStorageObserver);
-
-        /**
-        * Continue current operation after receiving the thumbnail ID.
-        */
-        void DoHandleThumbnailIdL();
-
-        /**
-        * Open a volume database on the specified drive.
-        * @param aDrive String beginnning with drive letter and colon.
-        */
-        CGlxtnVolumeDatabase* OpenDatabaseL(const TDesC& aDrive);
-
-    private:    // Data
-        enum TDatabaseOperation
-            {
-            ELoading, ESaving, EDeleting, ECleaning, ECheckingAvailable
-            };
-
-        /** Pointer to a storage observer */
-        MGlxtnThumbnailStorageObserver* iStorageObserver;
-        /** File server session */
-        RFs iFs;
-        /** Path to the database files (excluding drive letter) */
-        TFileName iDatabasePath;
-        /** Drive name of the phone memory drive */
-        TDriveName iInternalDrive;
-        /** Array of open databases (one per volume) */
-        RPointerArray<CGlxtnVolumeDatabase> iDatabaseArray;
-        /** Request status for asynchronous operation */
-        TRequestStatus* iClientStatus;
-        /** Operation currently being carried out by the database */
-        TDatabaseOperation iCurrentOperation;
-        /** Media ID for request */
-        TGlxMediaId iMediaId;
-        /** URI for request (not owned) */
-        const CGlxtnFileInfo* iFileInfo;
-        /** Thumbnail size for request */
-        TSize iSize;
-        /** Data buffer for load request */
-        HBufC8** iLoadData;
-        /** Data buffer for save request */
-        TPtrC8 iSaveData;
-        /** Thumbnail format for load request */
-        TGlxImageDataFormat* iLoadFormat;
-        /** Thumbnail format for save request */
-        TGlxImageDataFormat iSaveFormat;
-        /** ID for thumbnail */
-        TGlxtnThumbnailId iThumbId;
-        /** Index to count through iDatabaseArray */
-        TInt  iDatabaseIndex;
-    };
-
-#endif  // GLXTNDATABASE_H
-
-// End of File
--- a/engine/collectionframework/thumbnailcreator/inc/glxtndeletethumbnailstask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +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 CGlxtnDeleteThumbnailsTask
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef C_GLXTNDELETETHUMBNAILSTASK_H
-#define C_GLXTNDELETETHUMBNAILSTASK_H
-
-// INCLUDES
-
-#include "glxtntask.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-class CGlxtnFileInfo;
-
-// CLASS DECLARATION
-
-/**
-* Task to delete all stored thumbnails for a media item.
-*
-* @author Dan Rhodes
-* @ingroup glx_thumbnail_creator
-*/
-NONSHARABLE_CLASS(CGlxtnDeleteThumbnailsTask) : public CGlxtnClientTask
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        * @param iItemId Media ID of item whose thumbnails should be deleted.
-        * @param aClient Client initiating the request.
-        */
-        static CGlxtnDeleteThumbnailsTask* NewL(const TGlxMediaId& aItemId,
-                                        MGlxtnThumbnailCreatorClient& aClient);
-
-        /**
-        * Destructor.
-        */
-        virtual ~CGlxtnDeleteThumbnailsTask();
-
-    protected:  // From CGlxtnTask
-
-        TBool DoStartL(TRequestStatus& aStatus);
-    	void DoCancel(); 
-    	TBool DoRunL(TRequestStatus& aStatus);
-        TBool DoRunError(TInt aError);
-
-    private:
-
-        /**
-        * C++ default constructor.
-        * @param iItemId Media ID of item whose thumbnails should be deleted.
-        * @param aClient Client initiating the request.
-        */
-        CGlxtnDeleteThumbnailsTask(const TGlxMediaId& aItemId,
-                                    MGlxtnThumbnailCreatorClient& aClient);
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        */
-        void ConstructL();
-
-    private:    // Data
-        /** File information for item whose thumbnails are to be deleted */
-        CGlxtnFileInfo* iInfo;
-        /** Whether delete operation has been started */
-        TBool iDeleting;
-    };
-
-#endif  // C_GLXTNDELETETHUMBNAILSTASK_H
-
-// End of File
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnfileinfo.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +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 CGlxtnFileInfo
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef C_GLXTNFILEINFO_H
-#define C_GLXTNFILEINFO_H
-
-#include <e32base.h>
-
-/**
- * Object holding information about a file to be thumbnailed.
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-class CGlxtnFileInfo : public CBase
-    {
-public:
-	inline CGlxtnFileInfo();
-    inline	~CGlxtnFileInfo();
-
-    /**
-    * Copy info from one object to another.
-    */
-    inline void CopyInfoL(CGlxtnFileInfo& aInfo);
-
-    /**
-    * Get the full path to the media file.
-    * @return Media file path.
-    */
-    inline const TDesC& FilePath() const;
-
-    /**
-    * Set the full path to the media file.
-    * @param aPath Media file path (takes ownership).
-    */
-    inline void SetFilePath(HBufC* aPath);
-
-    /**
-    * Set the full path to the media file.
-    * @param aPath Media file path.
-    */
-    inline void SetFilePathL(const TDesC& aPath);
-
-    /**
-    * Set the full path to the media file.
-    * @param aIsVideo Set to true if the file is a video.
-    * @param aIsProtected Set to true if the file is DRM protected.
-    */
-    void IdentifyFileL(TBool& aIsVideo, TBool& aIsProtected);
-
-public:
-    /** Size of the media file */
-    TInt iFileSize;
-    /** Last modified time of the media file */
-    TTime iFileTime;
-    /** True if the thumbnail is temporary and should not be stored */
-    TBool iTemporary;
-    TBool iIsVideo;
-    TBool iIsProtected;
-
-private:
-    /** Full path of the media file */
-    HBufC* iFilePath;
-    };
-
-#include "glxtnfileinfo.inl"
-   
-#endif // C_GLXTNFILEINFO_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnfileinfo.inl	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +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 CGlxtnFileInfo
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-inline CGlxtnFileInfo::CGlxtnFileInfo()
-    {
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-inline CGlxtnFileInfo::~CGlxtnFileInfo()
-    {
-    delete iFilePath;
-    }
-
-// -----------------------------------------------------------------------------
-// CopyInfoL
-// -----------------------------------------------------------------------------
-//
-inline void CGlxtnFileInfo::CopyInfoL(CGlxtnFileInfo& aInfo)
-    {
-    SetFilePathL(aInfo.FilePath());
-    iFileSize = aInfo.iFileSize;
-    iFileTime = aInfo.iFileTime;
-    iTemporary = aInfo.iTemporary;
-    iIsVideo = aInfo.iIsVideo;
-    iIsProtected = aInfo.iIsProtected;
-    }
-
-// -----------------------------------------------------------------------------
-// FilePath
-// Get the full path to the media file.
-// -----------------------------------------------------------------------------
-//
-inline const TDesC& CGlxtnFileInfo::FilePath() const
-    {
-    return *iFilePath;
-    }
-
-// -----------------------------------------------------------------------------
-// SetFilePathL
-// Set the full path to the media file.
-// -----------------------------------------------------------------------------
-//
-inline void CGlxtnFileInfo::SetFilePath(HBufC* aPath)
-    {
-    delete iFilePath;
-    iFilePath = aPath;
-    }
-
-// -----------------------------------------------------------------------------
-// SetFilePathL
-// Set the full path to the media file.
-// -----------------------------------------------------------------------------
-//
-inline void CGlxtnFileInfo::SetFilePathL(const TDesC& aPath)
-    {
-    delete iFilePath;
-    iFilePath = NULL;
-    iFilePath = aPath.AllocL();
-    }
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnfileutility.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +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:   Utility for thumbnail tasks handling files
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef GLXTNFILEUTILITY_H
-#define GLXTNFILEUTILITY_H
-
-#include <e32base.h>
-#include <f32file.h>
-
-/**
- * Utility for thumbnail tasks handling files.
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS(CGlxtnFileUtility) : public CBase
-    {
-public:  // Constructors and destructor
-
-    /**
-    * Two-phased constructor.
-    */
-    static CGlxtnFileUtility* NewL();
-
-    /**
-    * Destructor.
-    */
-    ~CGlxtnFileUtility();
-
-    /**
-    * Provide file server session for opening images from files.
-    */
-    RFs& FsSession();
-
-    /**
-    * Test whether a file is on the bad file list.  If so this method leaves.
-    * If not the bad file marker is set to the filename, so that if a panic
-    * occurs the file will be added to the bad file list.
-    * @param aFilename Path of file for which a thumbnail is to be generated.
-    */
-    void CheckBadFileListL(const TDesC& aFilename);
-
-    /**
-    * Clear the bad file marker.  Called when processing a file is complete (no
-    * panic occurred).
-    */
-    void ClearBadFileMarker();
-
-    /**
-    * Test whether a generated thumbnail should be stored in persistent storage.
-    * @param aSize Requested size of thumbnail.
-    */
-    TBool IsPersistentSize(const TSize& aSize);
-
-private:
-
-    /**
-    * C++ default constructor.
-    */
-    CGlxtnFileUtility();
-
-    /**
-    * By default Symbian 2nd phase constructor is private.
-    */
-    void ConstructL();
-
-    /**
-    * Read bad file list from file and add file from marker, if present.
-    */
-    void ReadBadFileListL();
-    /**
-    * Write bad file list to file.
-    */
-    void WriteBadFileListL();
-
-private:
-    /** File server session for opening images from files */
-    RFs iFs;
-    /** Directory in which to store bad file list and marker */
-    TFileName iBadFileDir;
-    /** Filenames of media files which cause panics when decoding */
-    RPointerArray<HBufC> iBadFileArray;
-    /** Persistent thumbnail size classes */
-    RArray<TSize> iPersistentSizeClasses;
-    };
-
-#endif  // GLXTNFILEUTILITY_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnfilteravailabletask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +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:   Task used for thumbnail availability filter.
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef C_GLXTNFILTERAVAILABLETASK_H
-#define C_GLXTNFILTERAVAILABLETASK_H
-
-#include "glxtntask.h"
-
-// Forward declarations
-class CGlxtnFileInfo;
-
-/**
- * Task to filter a list of media item IDs to include only those which don't
- * have a high quality thumbnail of a given size.
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS(CGlxtnFilterAvailableTask) : public CGlxtnClientTask
-    {
-public:
-    /**
-    * Two-phased constructor.
-    * @param aItemArray Array of item IDs, from which those with thumbnails
-    *                   should be removed.
-    * @param aSize Size of thumbnail required.
-    * @param aClient Client initiating the request.
-    */
-	static CGlxtnFilterAvailableTask* NewL(
-            	    const TArray<TGlxMediaId>& aItemArray, const TSize& aSize,
-            	    MGlxtnThumbnailCreatorClient& aClient);
-    /**
-    * Destructor.
-    */
-    ~CGlxtnFilterAvailableTask();
-
-protected:  // From CGlxtnTask
-
-    TBool DoStartL(TRequestStatus& aStatus);
-	void DoCancel();
-	TBool DoRunL(TRequestStatus& aStatus);
-    TBool DoRunError(TInt aError);
-
-private:
-    /**
-    * C++ default constructor.
-    * @param aSize Size of thumbnail required.
-    * @param aClient Client initiating the request.
-    */
-    CGlxtnFilterAvailableTask(const TSize& aSize,
-                                MGlxtnThumbnailCreatorClient& aClient);
-    /**
-    * Symbian 2nd phase constructor.
-    * @param aItemArray Array of item IDs, from which those with thumbnails
-    *                   should be removed.
-    */
-	void ConstructL(const TArray<TGlxMediaId>& aItemArray);
-
-    /**
-    * Start asynchronous request for file information for an item.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    TBool GetFileInfoL(TRequestStatus& aStatus);
-    /**
-    * Start asynchronous check for thumbnail in persistent storage.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    TBool CheckIdL(TRequestStatus& aStatus);
-
-private:
-    enum TFilterState
-        {
-        EStateFetchingUri, EStateChecking
-        };
-
-    /** Size of thumbnail for which to check */
-    TSize iSize;
-    /** Array of media IDs from which those with thumbnails are removed */
-    RArray<TGlxMediaId> iIdArray;
-    /** Current task state */
-    TFilterState iState;
-    /** Current index in Id array */
-    TInt iIndex;
-    /** File info for current item */
-    CGlxtnFileInfo* iFileInfo;
-    };
-
-#endif  // C_GLXTNFILTERAVAILABLETASK_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtngeneratethumbnailtask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +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:   Classes for thumbnail-related tasks.
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef C_GLXTNGENERATETHUMBNAILTASK_H
-#define C_GLXTNGENERATETHUMBNAILTASK_H
-
-#include "glxtnloadthumbnailtask.h"
-
-class CGlxtnFileInfo;
-class CGlxtnFileUtility;
-class CGlxtnImageUtility;
-class CGlxtnVideoUtility;
-class CFbsBitmap;
-class CImageDecoder;
-class RFs;
-
-/**
- * Task to generate a high quality thumbnail for a media item.
- *
- * An instance of CImageDecoder is constructed to produce a bitmap from the
- * image file, scaling to the smallest possible size not smaller than the
- * required size.
- *
- * The task then uses ADIS to scale to the exact size required, and also uses
- * the sharpening and IETD algorithms to enhance the image.
- *
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS( CGlxtnGenerateThumbnailTask )
-        : public CGlxtnLoadThumbnailTask
-    {
-public:
-    /**
-    * Two-phased constructor.
-    * @param aRequestInfo Parameters for the thumbnail request.
-    * @param aFileUtility File utility for use by the task.
-    * @param aClient Client initiating the request.
-    */
-	static CGlxtnGenerateThumbnailTask* NewL(
-	    const TGlxThumbnailRequest& aRequestInfo,
-	    CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient);
-    /**
-    * Destructor.
-    */
-	~CGlxtnGenerateThumbnailTask();
-
-protected:  // From CGlxtnTask
-    void SetManager(CGlxtnTaskManager* aManager);
-    virtual TBool DoStartL(TRequestStatus& aStatus);
-	virtual void DoCancel();
-	virtual TBool DoRunL(TRequestStatus& aStatus); 
-    TBool DoRunError(TInt aError);
-
-private:
-    /**
-    * C++ default constructor.
-    * @param aRequestInfo Parameters for the thumbnail request.
-    * @param aFileUtility File utility for use by the task.
-    * @param aClient Client initiating the request.
-    */
-    CGlxtnGenerateThumbnailTask(const TGlxThumbnailRequest& aRequestInfo,
-        CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient);
-    /**
-    * Symbian 2nd phase constructor.
-    * @param aBitmapHandle Handle to bitmap in which to store the thumbnail.
-    */
-	void ConstructL(TInt aBitmapHandle);
-
-    /**
-    * Start asynchronous decoding process for a high quality thumbnail.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    void HighQualityDecodeL( TRequestStatus& aStatus );
-    /**
-    * @return ETrue if viewing the requested thumbnail size would require
-    *       DRM rights.
-    */
-    TBool SizeRequiresDrmRights();
-
-private:
-    /** Pointer to task manager (not owned) */
-    CGlxtnTaskManager* iTaskManager;
-    /** Utility to get thumbnail from image (owned) */
-    CGlxtnImageUtility* iImageUtility;
-    /** Utility to get thumbnail from video (owned) */
-    CGlxtnVideoUtility* iVideoUtility;
-    /** Image loaded from file (owned) */
-    CFbsBitmap* iImage;
-    /** Whether current item is a video */
-    TBool iVideo;
-    /** Whether current file is DRM protected */
-    TBool iProtected;
-    /** Flag to show BadFileMarker not created so no need to delete **/
-    TBool iBadFileMarkerNotNeededFlag;
-    };
-        
-#endif // C_GLXTNGENERATETHUMBNAILTASK_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnimagedecoderfactory.h	Mon Sep 27 15:13:20 2010 +0530
+++ /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:   Definition of GlxtnImageDecoderFactory
-*
-*/
-
-
-
-#ifndef GLXTNIMAGEDECODERFACTORY_H
-#define GLXTNIMAGEDECODERFACTORY_H
-
-#include <e32std.h>
-
-class CImageDecoder;
-class RFs;
-
-/**
- * Factory to create appropriate decoder for a given image.
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-class GlxtnImageDecoderFactory
-    {
-public:
-    /**
-    * Create a decoder for an image file.  If the file is a JPEG, the function
-    * will first try to create a hardware decoder.  If that fails a software
-    * decoder will be created.
-    * @param aFs File server session.
-    * @param aFilename Full path of the file.
-    * @return Pointer to image decoder (caller takes ownership).
-    */
-    static CImageDecoder* NewL( RFs& aFs, const TDesC& aFilename );
-    /**
-    * Create a decoder for JPEG image data.
-    * @param aFs File server session.
-    * @param aData Buffer containing the image to be decoded.
-    * @return Pointer to image decoder (caller takes ownership).
-    */
-    static CImageDecoder* NewL( RFs& aFs, const TDesC8& aData );
-    };
-
-#endif  // GLXTNIMAGEDECODERFACTORY_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnimageutility.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +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:   Utility for creating bitmaps from image files
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef GLXTNIMAGEUTILITY_H
-#define GLXTNIMAGEUTILITY_H
-
-#include <e32base.h>
-#include <gdi.h>        // For TDisplayMode
-
-class MIHLScaler;
-class CFbsBitmap;
-class CFbsBitGc;
-class CImageDecoder;
-class RFs;
-
-/**
- * Utility for creating bitmaps from image files
- *
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS(CGlxtnImageUtility) : public CBase
-    {
-public:
-    CGlxtnImageUtility(RFs& aFs);
-    ~CGlxtnImageUtility();
-
-    void Cancel();
-
-    /**
-    * Reduce target size to same aspect ratio as source image.
-    */
-    void AdjustSize(TSize& aTargetSize, const TSize& aSourceSize);
-
-    /**
-    * Start asynchronous decoding process for a high quality thumbnail.
-    * @param aStatus Request status for the asynchronous operation.
-    * @param aFileName Full path of image file.
-    * @param aTargetSize Size for the image - modified by this function to
-    *           preserve the aspect ratio.
-    * @param aMode Display mode for the image.
-    */
-    CFbsBitmap* DecodeImageL(TRequestStatus& aStatus, const TDesC& aFileName,
-                                RArray<TSize>& aTargetSizes, TDisplayMode aMode);
-
-    /**
-    * Free resources used by decoding.
-    */
-    void FreeDecoder();
-
-    /**
-    * Get the original size of the image decoded.
-    */
-    const TSize& OriginalSize() const;
-
-    /**
-    * Start asynchronous filtering process for a high quality thumbnail.
-    * @param aStatus Request status for the asynchronous operation.
-    * @param aSource Source image bitmap.
-    * @param aFilteredSource Filtered  image bitmap.
-    * @param aTarget Target thumbnail bitmap.
-    */
-    void FilterImageL(TRequestStatus* aStatus, CFbsBitmap* aSource, CFbsBitmap*& aFilteredSource, CFbsBitmap* aTarget);
-    
-    /**
-    * Start asynchronous scaling process for a high quality thumbnail.
-    * @param aStatus Request status for the asynchronous operation.
-    * @param aSrcBitmap Source image bitmap.
-    * @param aSrcRect Source image rectangle.
-    * @param aDstBitmap Destination thumbnail bitmap.
-    * @param aDstRect Destination image rectangle.
-    */
-	void ScaleImageL(TRequestStatus& aStatus, CFbsBitmap& aSrcBitmap, const TRect& aSrcRect, CFbsBitmap& aDstBitmap, const TRect& aDstRect);
-
-    /**
-    * Start asynchronous scaling process for a high quality thumbnail.
-    * @param aStatus Request status for the asynchronous operation.
-    * @param aSource Source image bitmap.
-    * @param aFilteredSource Filtered Source image bitmap.
-    * @param aTarget Target thumbnail bitmap.
-    */
-    void ScaleImage64kL(TRequestStatus* aStatus, CFbsBitmap* aSource, CFbsBitmap* aFilteredSource, CFbsBitmap* aTarget);
-
-private:
-    
-    void ScaleColor64K( TUint16* aSrc, TInt aSrcStride, TInt aSrcCols, TInt aSrcRows,
-	  								TInt aX, TInt aY, TInt aW, TInt aH,
-          		      TUint16* aDst, TInt aDstStride, TInt aDstCols, TInt aDstRows );
-          		      
-    void FilterL( CFbsBitmap* aSource, CFbsBitmap*& aFilteredSource, TInt aFilterPercent );
-
-    void FIRFiltering(
-		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows );
-
-    void FIRFiltering4(
-		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows );
-
-    void FIRFiltering8(
-		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows );
-
-private:
-    // File server session
-    RFs& iFs;
-    // Decoder used to read image from file
-    CImageDecoder* iDecoder;
-    // Bitmap scaler
-    MIHLScaler* iScaler;
-    /** Size of the image in the file being decoded */
-    TSize iOriginalSize;
-    CFbsBitmap* iImage;
-    TUint16* iAddress;
-    CFbsBitGc* iBitGc;
-    };
-
-#endif  // GLXTNIMAGEUTILITY_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnloadthumbnailtask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,115 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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 tasks which load thumbnails
-*
-*/
-
-
-
-#ifndef C_GLXTNLOADTHUMBNAILTASK_H
-#define C_GLXTNLOADTHUMBNAILTASK_H
-
-#include "glxtntask.h"
-#include "glxtnstd.h"
-
-// Forward declarations
-class CGlxtnFileInfo;
-class CGlxtnFileUtility;
-class CFbsBitmap;
-class CImageDecoder;
-class TGlxThumbnailRequest;
-
-/**
- * Base class for tasks which load thumbnails.
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS( CGlxtnLoadThumbnailTask ) : public CGlxtnClientTask
-    {
-public:
-    /**
-    * Destructor.
-    */
-    ~CGlxtnLoadThumbnailTask();
-
-protected:  // From CGlxtnTask
-	void DoCancel();
-
-protected:
-    /**
-    * C++ default constructor.
-    * @param aId Task type ID.
-    * @param aRequestInfo Parameters for the thumbnail request.
-    * @param aFileUtility File utility for use by the task.
-    * @param aClient Client initiating the request.
-    */
-    CGlxtnLoadThumbnailTask( const TGlxtnTaskId& aId,
-                            const TGlxThumbnailRequest& aRequestInfo,
-                            CGlxtnFileUtility& aFileUtility,
-                            MGlxtnThumbnailCreatorClient& aClient );
-    /**
-    * Symbian 2nd phase constructor.
-    * @param aBitmapHandle Handle to bitmap in which to store the thumbnail.
-    */
-    void ConstructL( TInt aBitmapHandle );
-
-    /**
-    * Start asynchronous loading.
-    * @param aStatus Request status for the asynchronous operation.
-    * @return ETrue if an asynchronous operation has been started.
-    */
-    TBool LoadThumbnailL( TRequestStatus& aStatus );
-    /**
-    * Create bitmap from loaded thumbnail data.
-    * @param aStatus Request status for the asynchronous operation.
-    * @return ETrue if an asynchronous operation has been started.
-    */
-    TBool HandleLoadedThumbnailL( TRequestStatus& aStatus );
-    /**
-    * Start asynchronous decoding.  iDecoder should point to a valid decoder.
-    * @param aStatus Request status for the asynchronous operation.
-    * @param aScaleBitmap If true, scale the loaded bitmap close to
-    *       requested size.
-    */
-    void DecodeThumbnailL( TRequestStatus& aStatus, TBool aScaleBitmap );
-
-protected:
-    enum TGeneratorState
-        {
-        EStateFetchingUri, EStateLoading, EStateDecodingThumbnail,
-        EStateDecodingImage, EStateScaling, EStateFiltering
-        };
-
-    /** File utility */
-    CGlxtnFileUtility& iFileUtility;
-	/** Current state for task state machine */
-    TGeneratorState iState;
-    /** File information for item to thumbnail (owned) */
-    CGlxtnFileInfo* iInfo;
-    /** Requested thumbnail size */
-    TSize iRequestedSize;
-    /** Thumbnail image data (owned) */
-    HBufC8* iThumbData;
-    /** Thumbnail data format */
-    TGlxImageDataFormat iFormat;
-    /** Decoder to decode the thumbnail data (owned) */
-    CImageDecoder* iDecoder;
-    /** Bitmap to decode image into (owned) */
-    CFbsBitmap* iThumbnail;
-    /** DRM allowed flag passed from thumbnail request */
-    TBool iDrmAllowed;
-    };
-
-#endif // C_GLXTNLOADTHUMBNAILTASK_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnquickthumbnailtask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Quick thumbnail generation task.
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef C_GLXTNQUICKTHUMBNAILTASK_H
-#define C_GLXTNQUICKTHUMBNAILTASK_H
-
-#include "glxtnloadthumbnailtask.h"
-#include "glxthumbnailinfo.h"
-
-// Forward declarations
-class CGlxtnFileUtility;
-class CGlxtnVideoUtility;
-class CFbsBitmap;
-
-/**
- * Task to quickly produce a thumbnail for an item, usually from the EXIF
- * thumbnail.
- *
- * The task first attempts to extract the EXIF thumbnail data from the file
- * using ExifLib.  If this succeeds, an instance of CImageDecoder is constructed
- * from the data and used to produce a bitmap.
- *
- * If this fails, an instance of CImageDecoder is constructed from the file,
- * and set to use the thumbnail.  If this fails, it is assumed that there is no
- * EXIF thumbnail in the file, and the decoder is set to scale the main image
- * as close as possible to the required thumbnail size.
- *
- * No scaling or image enhancement is applied to the decoded bitmap.
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS( CGlxtnQuickThumbnailTask ) : public CGlxtnLoadThumbnailTask
-    {
-public:
-    /**
-    * Two-phased constructor.
-    * @param aRequestInfo Parameters for the thumbnail request.
-    * @param aFileUtility File utility for use by the task.
-    * @param aClient Client initiating the request.
-    */
-	static CGlxtnQuickThumbnailTask* NewL(
-        const TGlxThumbnailRequest& aRequestInfo,
-        CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient);
-    /**
-    * Destructor.
-    */
-    ~CGlxtnQuickThumbnailTask();
-
-protected:  // From CGlxtnTask
-
-    TBool DoStartL(TRequestStatus& aStatus);
-	void DoCancel();
-	TBool DoRunL(TRequestStatus& aStatus);
-    TBool DoRunError(TInt aError);
-
-private:
-    /**
-    * C++ default constructor.
-    * @param aRequestInfo Parameters for the thumbnail request.
-    * @param aFileUtility File utility for use by the task.
-    * @param aClient Client initiating the request.
-    */
-    CGlxtnQuickThumbnailTask(const TGlxThumbnailRequest& aRequestInfo,
-        CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient);
-
-    /**
-    * Start asynchronous decoding process for a low quality thumbnail.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    void QuickDecodeL(TRequestStatus& aStatus);
-    /**
-    * Decode an image file using thumbnail embedded in the file if possible.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    void ReadThumbnailL(TRequestStatus& aStatus);
-    /**
-    * Read thumbnail data from the file using ExifLib.
-    */
-    void ReadExifThumbnailL();
-    void QuickScaleL();
-
-private:
-    /** Quality of thumbnail (high if loaded, low if generated) */
-    TGlxThumbnailQuality iQuality;
-    /** Utility to get thumbnail from video (owned) */
-    CGlxtnVideoUtility* iUtility;
-    /** Bitmap to hold video frame (owned) */
-    CFbsBitmap* iVideoFrame;
-    /** Whether the media file is a video */
-    TBool iVideo;
-    /** Flag to show BadFileMarker not created so no need to delete **/
-    TBool iBadFileMarkerNotNeededFlag;
-    };
-
-#endif // C_GLXTNQUICKTHUMBNAILTASK_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnsavethumbnailtask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,149 +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:   Thumbnail save task implementation
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef GLXTNSAVETHUMBNAILTASK_H
-#define GLXTNSAVETHUMBNAILTASK_H
-
-// INCLUDES
-
-#include "glxtntask.h"
-
-// CONSTANTS
-
-// MACROS
-
-// DATA TYPES
-
-// FUNCTION PROTOTYPES
-
-// FORWARD DECLARATIONS
-
-class CFbsBitmap;
-class CImageEncoder;
-class CGlxtnFileInfo;
-
-// CLASS DECLARATION
-
-/**
-* Task to save a generated thumbnail in persistent storage.
-*
-* @author Dan Rhodes
-* @ingroup glx_thumbnail_creator
-*/
-NONSHARABLE_CLASS(CGlxtnSaveThumbnailTask) : public CGlxtnTask
-    {
-    public:  // Constructors and destructor
-
-        /**
-        * Two-phased constructor.
-        * @param iItemId Media ID of item whose thumbnail is to be saved.
-        * @param aFileInfo Information about the media file.
-        * @param aSize Requested thumbnail size.
-        * @param aThumbnail Thumbnail bitmap to save.
-        * @param aStorage Client's storage interface.
-        */
-        static CGlxtnSaveThumbnailTask* NewL(
-                    const TGlxMediaId& aItemId,
-                    CGlxtnFileInfo* aFileInfo, const TSize& aSize,
-                    CFbsBitmap* aThumbnail, MGlxtnThumbnailStorage* aStorage);
-
-        /**
-        * Destructor.
-        */
-        virtual ~CGlxtnSaveThumbnailTask();
-
-    protected:  // From CGlxtnTask
-        TBool DoStartL(TRequestStatus& aStatus);
-    	void DoCancel(); 
-    	TBool DoRunL(TRequestStatus& aStatus);
-        TBool DoRunError(TInt aError);
-
-    protected:
-        /**
-        * Constructor for derived classes.
-        * @param aId Task type ID.
-        * @param iItemId Media ID of item whose thumbnail is to be saved.
-        * @param aStorage Client's storage interface.
-        */
-        CGlxtnSaveThumbnailTask(const TGlxtnTaskId& aId,
-                const TGlxMediaId& aItemId, MGlxtnThumbnailStorage* aStorage);
-
-        /**
-        * Encode the bitmap to a data buffer.
-        * @param aStatus Request status for the asynchronous operation.
-        */
-        void EncodeThumbnailL(TRequestStatus& aStatus);
-        /**
-        * Save buffer to storage.
-        * @param aStatus Request status for the asynchronous operation.
-        */
-        void SaveThumbnailL(TRequestStatus& aStatus);
-
-    private:
-        /**
-        * Constructor.
-        * @param iItemId Media ID of item whose thumbnail is to be saved.
-        * @param aSize Requested thumbnail size.
-        * @param aStorage Client's storage interface.
-        */
-        CGlxtnSaveThumbnailTask(const TGlxMediaId& aItemId, const TSize& aSize,
-                                MGlxtnThumbnailStorage* aStorage);
-
-        /**
-        * By default Symbian 2nd phase constructor is private.
-        * @param aFileInfo Information about the media file.
-        * @param aThumbnail Thumbnail bitmap to save.
-        */
-        void ConstructL(CGlxtnFileInfo* aFileInfo, CFbsBitmap* aThumbnail);
-
-    protected:  // Data
-        /**
-        * States for the task's state machine.
-        */
-        enum TSaveState
-            {
-            EStateEncoding, EStateSaving, EStateFetchingUri, 
-            EStateDecoding, EStateChecking, EStateScaling, EStateFiltering
-            };
-
-        /** Requested thumbnail size */
-        TSize iSize;
-        /** Information about the item's media file */
-        CGlxtnFileInfo* iFileInfo;
-        /** Thumbnail bitmap to save (owned) */
-        CFbsBitmap* iThumbnail;
-        /** Current task state */
-        TSaveState iState;
-
-    private:    // Data
-        /** Format in which the bitmap was encoded */
-        TGlxImageDataFormat iFormat;
-        /** Encoder for the bitmap (owned) */
-        CImageEncoder* iEncoder;
-        /** Buffer for encoded data (owned) */
-        HBufC8* iData;
-    };
-
-#endif  // GLXTNSAVETHUMBNAILTASK_H
-
-// End of File
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnstd.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +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:   Global defs
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-
-#ifndef _GLXTNSTD_H
-#define _GLXTNSTD_H
-
-#include "glxid.h"
-#include <e32base.h>
-class TGlxTasktnIdTypeBase {}; // Don't use this
-typedef TGlxId<TGlxTasktnIdTypeBase> TGlxtnTaskId;	// Use this
-
-// Thumbnail task Ids
-const TUint KGlxtnTaskIdGenerateThumbnail = 1;
-const TUint KGlxtnTaskIdSaveThumbnail = 2;
-const TUint KGlxtnTaskIdBackgroundThumbnailGeneration = 3;
-const TUint KGlxtnTaskIdQuickThumbnail = 4;
-const TUint KGlxtnTaskIdDeleteThumbnails = 5;
-const TUint KGlxtnTaskIdFilterAvailable = 6;
-const TUint KGlxtnTaskIdCleanupThumbnails = 7;
-const TUint KGlxtnTaskIdZoomedThumbnail = 8;
-
-// Task priorities
-const TInt KGlxTaskPriorityCreateList = CActive::EPriorityStandard + 1;
-const TInt KGlxTaskPriorityFetchProperties = KGlxTaskPriorityCreateList - 1;
-const TInt KGlxTaskPriorityForegroundThumbnailProvisioning = KGlxTaskPriorityFetchProperties - 1;
-const TInt KGlxTaskPriorityFileSystemScan = KGlxTaskPriorityForegroundThumbnailProvisioning - 1;
-const TInt KGlxTaskPriorityBackgroundThumbnailProvisioning = EPriorityLow;
-const TInt KGlxTaskPriorityBackgroundThumbnailGenerator = EPriorityLow - 1;
-
-// Thumbnail availablity
-const TInt KGlxThumbnailAvailable = 0;
-const TInt KGlxThumbnailNotAvailable = 1;
-
-
-
-/**
- * Thumbnail image formats
- */
-enum TGlxImageDataFormat 
-	{
-	EGlxIDF_Bitmap, // Externalised CFbsBitmap
-	EGlxIDF_JPEG    // Encoded with JPEG format
-	};
-
-#endif // _GLXTNSTD_H
\ No newline at end of file
--- a/engine/collectionframework/thumbnailcreator/inc/glxtntask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /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:   Base classes for multi-purpose tasks.
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef C_GLXTNTASK_H
-#define C_GLXTNTASK_H
-
-#include "glxtnstd.h"
-#include <glxmediaid.h>
-#include <e32base.h>
-
-// Forward declarations
-class CGlxtnTaskManager;
-class MGlxtnThumbnailCreatorClient;
-class MGlxtnThumbnailStorage;
-
-/**
- *  Base class for thumbnail tasks.
- *
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS(CGlxtnTask) : public CBase
-    {
-    friend class CGlxtnTaskManager;
-public:
-    /**
-    * Different state a task can go through
-    */
-    enum TState 
-        {
-        EIdle,      /**< Task is not ready to start */
-        EStarting,  /**< Task is ready to start */
-        ERunning,   /**< Task is currently running */
-        ECanceled,  /**< Task has been cancelled, and can be deleted */
-        EComplete   /**< Task has finished, and can be deleted */
-        };
-
-public:
-    CGlxtnTask(const TGlxtnTaskId& aId, const TGlxMediaId& aItemId,
-                MGlxtnThumbnailStorage* aStorage);
-    ~CGlxtnTask();
-	
-    /**
-     * Gets the current task specific state
-     * @returns TState The task current state.
-     */
-    inline TState State() const;
-
-    /**
-     * Gets the type of task this is.
-     * @returns TGlxtnTaskId Task type ID.
-     */
-    inline TGlxtnTaskId Id() const;
-
-    /**
-     * Gets the media ID of the item to which this task relates.
-     * @returns TGlxMediaId Media ID.
-     */
-    inline TGlxMediaId ItemId() const;
-
-    /**
-     * Sets the priority of the task. By default it is set to 
-     * EPriorityStandard.
-     */
-    inline void SetPriority(TInt aPriority);
-    /**
-     * Gets the task priority.
-     * @returns TInt Task priority.
-     */
-	inline TInt Priority() const;
-
-    /**
-     * Get thumbnail storage for the task to use, if any.
-     * @returns Pointer to thumbnail storage, or NULL if none.
-     */
-    inline MGlxtnThumbnailStorage* Storage() const;
-
-    /**
-     * Provides a pointer to the task manager.
-     * @param aManager Pointer to the task manager.
-     */
-    virtual void SetManager(CGlxtnTaskManager* aManager);
-
-private: // For CGlxTaskManager only
-    /**
-     * Starts the task 
-     */
-    void StartL(TRequestStatus& aStatus);
-
-	/**
-	 * Cancels the task
-	 */
-	void Cancel(); 
-	
-	/**
-	 * Runs a bit of the task
-	 */
-	void RunL(TRequestStatus& aStatus);
-
-	/**
-	 * Handle a leave in StartL or RunL.
-	 */
-    void RunError(TInt aError);
-
-protected:
-    /**
-     * Starts the task.
-     * @param aStatus Request status for asynchronous operations
-     * @returns -ETrue if the task has issued an asyncronous request.
-     *			CActive::SetActive() will be called in this case and the 
-     *			task state will be ERunning.
-     *			-EFalse if the task has not issued a request. 
-     *			SetActive will not be called and the task state will be 
-     *			EComplete.
-     */
-    virtual TBool DoStartL(TRequestStatus& aStatus) = 0;
-
-	/**
-	 * Cancels the task.  The task's state will be set to ECanceled.
-	 */
-	virtual void DoCancel() = 0; 
-
-	/**
-	 * Runs a bit of the task
-     * @param aStatus Request status for asynchronous operations
-     * @returns -ETrue if the task has issued an asyncronous request.
-     *			CActive::SetActive() will be called in this case and the 
-     *			task state will be ERunning.
-     *			-EFalse if the task has not issued a request. 
-     *			SetActive will not be called and the task state will be 
-     *			EComplete.
-	 */
-	virtual TBool DoRunL(TRequestStatus& aStatus) = 0;
-
-	/**
-	 * Handle a leave in StartL or RunL.
-     * @param aError The error that occurred.
-     * @returns -ETrue if the task has issued an asyncronous request.
-     *			CActive::SetActive() will be called in this case and the 
-     *			task state will be ERunning.
-     *			-EFalse if the task has not issued a request. 
-     *			SetActive will not be called and the task state will be 
-     *			EComplete.
-	 */
-    virtual TBool DoRunError(TInt aError) = 0;
-
-protected:
-	/**
-	 * Issues a request and sets the aStatus as KRequestPending
-	 * Use this to make a synchronous operation asynchronous.
-	 */
-	void SelfComplete(TRequestStatus& aStatus); 
-   
-private:
-    /** Task state */
-    TState iState;
-
-    /** Task id */
-    TGlxtnTaskId iId;
-
-    /** Media item id */
-    TGlxMediaId iItemId;
-
-    /**
-     * Priority of this task. 
-     * The task schedule will execute tasks based on this priority
-     * When this task is run, the execution priority in CActiveScheduler
-     * will be this priority. (So it is comparable to priorities of active 
-     * objects in the system.)
-     */
-    TInt iPriority; 
-
-    /** Thumbnail storage for the task to use (can be NULL) */
-    MGlxtnThumbnailStorage* iStorage;
-    };
-
-/**
- *  Base class for thumbnail tasks which return results to a client.
- *
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS(CGlxtnClientTask) : public CGlxtnTask
-    {
-protected:
-    CGlxtnClientTask(const TGlxtnTaskId& aId, const TGlxMediaId& aItemId,
-                MGlxtnThumbnailCreatorClient& aClient);
-
-    /**
-     * Get the client for this task.
-     */
-    inline MGlxtnThumbnailCreatorClient& Client();
-
-private:
-    /** Client for this task */
-    MGlxtnThumbnailCreatorClient& iClient;
-    };
-
-#include "glxtntask.inl"
-
-#endif // C_GLXTNTASK_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtntask.inl	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +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 classes for multi-purpose tasks.
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-// -----------------------------------------------------------------------------
-// SetPriority
-// Gets the current task specific state
-// -----------------------------------------------------------------------------
-//
-inline CGlxtnTask::TState CGlxtnTask::State() const
-    {
-    return iState;
-    }
-
-// -----------------------------------------------------------------------------
-// SetPriority
-// Gets the type of task this is.
-// -----------------------------------------------------------------------------
-//
-inline TGlxtnTaskId CGlxtnTask::Id() const
-    {
-    return iId;
-    }
-
-// -----------------------------------------------------------------------------
-// SetPriority
-// Gets the media ID of the item to which this task relates.
-// -----------------------------------------------------------------------------
-//
-inline TGlxMediaId CGlxtnTask::ItemId() const
-    {
-    return iItemId;
-    }
-
-// -----------------------------------------------------------------------------
-// SetPriority
-// Sets the priority of the task. By default it is set to EPriorityStandard.
-// -----------------------------------------------------------------------------
-//
-inline void CGlxtnTask::SetPriority(TInt aPriority)
-    {
-    iPriority = aPriority;
-    }
-
-// -----------------------------------------------------------------------------
-// Priority
-// Gets the task priority.
-// -----------------------------------------------------------------------------
-//
-inline TInt CGlxtnTask::Priority() const
-    {
-    return iPriority;
-    }
-
-// -----------------------------------------------------------------------------
-// Storage
-// Get the thumbnail storage for this task to use, if any.
-// -----------------------------------------------------------------------------
-//
-inline MGlxtnThumbnailStorage* CGlxtnTask::Storage() const
-    {
-    return iStorage;
-    }
-
-// -----------------------------------------------------------------------------
-// Client
-// Get the client for this task.
-// -----------------------------------------------------------------------------
-//
-inline MGlxtnThumbnailCreatorClient& CGlxtnClientTask::Client()
-    {
-    return iClient;
-    }
--- a/engine/collectionframework/thumbnailcreator/inc/glxtntaskmanager.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +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:   Task manager for multiple tasks. Allows asynchronosity and 
-*                tracking/callback for long running tasks.
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef C_GLXTNTASKMANAGER_H
-#define C_GLXTNTASKMANAGER_H
-
-#include "glxtnstd.h"
-#include <glxmediaid.h>
-#include <e32base.h>
-
-// Forward declarations
-class CGlxtnTask;
-class MGlxtnThumbnailStorage;
-
-/**
- * Active object which maintains a priority queue of long running tasks, and
- * provides callback upon task completion or error.
- *
- * The highest priority task in the queue which has @ref CGlxtnTask::TState "state"
- * EStarting is started and the task manager's RunL then delegates to the task's
- * RunL until the task is complete, or is cancelled.  The task is then deleted
- * and another task is started, if any are ready to start.
- *
- * The task manager's DoCancel and RunError methods also delegate to the current
- * task, if any.
- *
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS(CGlxtnTaskManager) : public CActive
-    {
-public:
-	enum TExecutionOrder
-		{
-		ELastOut,	// Old tasks with the same priority get executed before the new task
-		EFirstOut	// New task gets executed before other tasks with the same priority
-		};
-public:
-    /**
-     * Static constructor.
-     */
-    static CGlxtnTaskManager* NewL();
-    
-    /**
-     * Destructor.
-     */
-    ~CGlxtnTaskManager();
-    
-public:
-    /**
-     * @returns CVieTask task at an index
-     */
-
-    inline CGlxtnTask* Task(TInt aIndex) const { return iTasks[aIndex]; };
-
-     /**
-      * Returns the highest priority task with the id.
-      * If there are multiple tasks with same id and priority, 
-      * returns the one of those that will be executed first 
-      */
-   	CGlxtnTask* Task(const TGlxtnTaskId& aId) const;
-
-    /**
-     * Adds a task to the task list.  If no task is currently running, the task
-     * is started.
-     *
-     * @param aTask Task to add.  Takes ownership, task is deleted if a leave occurs.
-     *
-     * @param aExecutionOrder -if ELastOut, the tast gets added to the bottom 
-     *					  	  of the queue of the tasks with the same priority 
-     * 					      as the new tasks. This means that the task is 
-     *						  executed after the previously added tasks (with 
-     *						  same priority) have been run.
-     *						  -if EFirstOut, the task gets added to the top,
-     *						  and will be executed before the other tasks
-     *						  with the same priority (unless more tasks added 
-     *						  later, of course)
-     */
-    void AddTaskL(CGlxtnTask* aTask, TExecutionOrder aExecutionOrder = ELastOut);
-
-    /**
-     * Cancel all tasks relating to a given media item.
-     * @param aItemId ID of media item.
-     */
-    void CancelTasks(const TGlxMediaId& aItemId);
-
-    /**
-     * Cancel all tasks using a given storage.
-     * @param aClient Reference to thumbnail storage.
-     */
-    void CancelTasks(MGlxtnThumbnailStorage* aStorage);
-
-    /**
-     * Gets the total task count
-     *
-     * @return TInt task count
-     */
-    inline TInt TaskCount() const { return iTasks.Count(); };
-
-protected:
-    /**
-     * Constructors
-     */
-    CGlxtnTaskManager();
-    void ConstructL(); 
-
-private: // From CActive
-	void RunL();		
-	void DoCancel();
-    TInt RunError(TInt aError);
-
-private:
-    /**
-     * Issue a self-completing request causing RunL to be called.
-     */
-    void AsyncRun();
-
-private:
-    /**
-     * Task list in priority order
-     */
-    RPointerArray<CGlxtnTask> iTasks;
-    
-    /**
-     * Task that is currently being run.
-     */
-    CGlxtnTask* iCurrentTask;
-    };
-
-#endif // C_GLXTNTASKMANAGER_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnthumbnailcreator.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +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:   Thumbnail creator: provides thumbnails and generates on background
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef C_GLXTNTHUMBNAILCREATOR_H
-#define C_GLXTNTHUMBNAILCREATOR_H
-
-#include "glxtnstd.h"
-#include "glxtntask.h"
-#include <glxmediaid.h>
-#include <glxpanic.h>
-#include <glxthumbnailinfo.h>
-
-class CGlxtnFileUtility;
-class CGlxSettingsModel;
-class MGlxtnThumbnailCreatorClient;
-class MGlxtnThumbnailStorage;
-class TGlxThumbnailRequest;
-
-/**
- *  CGlxtnThumbnailCreator
- *
- *  Thumbnail creator is the thumbnail engine, and it loads and generates 
- *  thumbnails on the foreground and generates non-created thumbnails on
- *  the background
- *
- * @ingroup glx_thumbnail_creator
- */
-class CGlxtnThumbnailCreator : public CBase
-    {
-public:
-    /**
-    * Starts the provisioning of a thumbnail.  This will result in a callback
-    * to MGlxtnThumbnailCreatorClient::ThumbnailFetchComplete().
-    */
-    IMPORT_C static CGlxtnThumbnailCreator* InstanceL();
-    /**
-    * Decrement the reference count, and delete the instance if the count
-    * becomes zero.  Ensures any tasks using the given storage are cancelled.
-    * @param aStorage Pointer to storage used by client, or NULL.
-    */
-    IMPORT_C void Close(MGlxtnThumbnailStorage* aStorage);
-
-    /**
-    * Destructor.
-    */
-	~CGlxtnThumbnailCreator();
-
-    /**
-    * Starts the provisioning of a thumbnail.  This will result in a callback
-    * to MGlxtnThumbnailCreatorClient::ThumbnailFetchComplete().
-    * @param aRequestInfo Parameters for required thumbnail.
-    * @param aClient Client initiating the request.
-    */
-    IMPORT_C void FetchThumbnailL(const TGlxThumbnailRequest& aRequestInfo,
-                                    MGlxtnThumbnailCreatorClient& aClient);
-
-    /**
-    * Starts deleting all stored thumbnails for a given item.  This will result
-    * in a callback to MGlxtnThumbnailCreatorClient::ThumbnailDeletionComplete().
-    * @param aItemId ID of the media item.
-    * @param aClient Client initiating the request.
-    */
-    IMPORT_C void DeleteThumbnailsL(const TGlxMediaId& aItemId,
-                                    MGlxtnThumbnailCreatorClient& aClient);
-
-    /**
-    * Starts the filtering of items for which a thumbnail is available from a
-    * list of item IDs.  This will result in a callback to
-    * MGlxtnThumbnailCreatorClient::FilterAvailableComplete().
-    * @param aItemArray Array of item IDs, from which those with thumbnails
-    *                   should be removed.
-    * @param aSize Size of thumbnail required.
-    * @param aClient Client initiating the request.
-    */
-    IMPORT_C void FilterAvailableThumbnailsL(
-                    const TArray<TGlxMediaId>& aItemArray, const TSize& aSize,
-                    MGlxtnThumbnailCreatorClient& aClient);
-
-    /**
-    * Starts the cleanup of obsolete thumbnails from storage.  There is no
-    * callback indicating completion of the request.
-    * @param aStorage Pointer to storage used by client.
-    */
-    IMPORT_C void CleanupThumbnailsL(MGlxtnThumbnailStorage* aStorage);
-
-    /** 
-    * Cancel any ongoing tasks for a given item.  This ensures the TNC is not
-    * locking the media file.
-    * @param aItemId ID of the media item.
-    */
-    IMPORT_C void CancelRequest(const TGlxMediaId& aItemId);
-
-private:
-	CGlxtnThumbnailCreator();
-	void ConstructL();
-
-private:
-    /** Task manager */
-    CGlxtnTaskManager* iTaskManager;
-    /** File utility used by the tasks */
-    CGlxtnFileUtility* iFileUtility;
-    /** Reference count of the single instance */
-    TInt iReferenceCount;
-    /** Settings Model used by the background tasks */
-    CGlxSettingsModel* iSettingsModel;
-    };
-
-#endif // C_GLXTNTHUMBNAILCREATOR_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnthumbnailrequest.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +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:   Represents a thumbnail request
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef T_GLXTHUMBNAILREQUEST_H
-#define T_GLXTHUMBNAILREQUEST_H
-
-#include "glxmediaid.h"
-#include "glxthumbnailinfo.h"
-
-class TGlxThumbnailRequest 
-	{
-public:
-	enum TPriorityMode
-		{
-		EPrioritizeSpeed,	// Speed of thumbnail provisioning is mode important that quality
-		EPrioritizeQuality,	// Quality of thumbnail provisioning is mode important that speed
-		};
-
-public:
-    inline TGlxThumbnailRequest();
-
-    inline TGlxThumbnailRequest(TGlxMediaId aId,
-        const TSize& aSizeClass, TPriorityMode aPriorityMode,
-        TInt aBitmapHandle, TBool aDrmAllowed);
-
-    inline TGlxThumbnailRequest(TGlxMediaId aId,
-        const TSize& aSizeClass, TPriorityMode aPriorityMode,
-        TInt aBitmapHandle, TBool aDrmAllowed,
-        const TRect& aCroppingRect, TGlxThumbnailFilter aFilter);
-
-public:
-	TGlxMediaId iId;
-	TSize iSizeClass;
-	TPriorityMode iPriorityMode; 
-	TInt iBitmapHandle; // Handle of target bitmap for the thumbnail
-	TBool iDrmAllowed;  // True if client has DRM capability
-    TRect iCroppingRect;
-    TGlxThumbnailFilter iFilter;
-	};
-
-#include "glxtnthumbnailrequest.inl"
-
-#endif // T_GLXTHUMBNAILREQUEST_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnthumbnailrequest.inl	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +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:   Represents a thumbnail request
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-inline TGlxThumbnailRequest::TGlxThumbnailRequest() :
-    iPriorityMode(EPrioritizeQuality), iBitmapHandle(0),
-    iDrmAllowed(EFalse), iFilter(EGlxThumbnailFilterNone)
-    {
-    }
-
-inline TGlxThumbnailRequest::TGlxThumbnailRequest(TGlxMediaId aId,
-        const TSize& aSizeClass, TPriorityMode aPriorityMode,
-        TInt aBitmapHandle, TBool aDrmAllowed) :
-    iId(aId), iSizeClass(aSizeClass), iPriorityMode(aPriorityMode), 
-    iBitmapHandle(aBitmapHandle), iDrmAllowed(aDrmAllowed),
-    iFilter(EGlxThumbnailFilterNone)
-    {
-    }
-
-inline TGlxThumbnailRequest::TGlxThumbnailRequest(TGlxMediaId aId,
-        const TSize& aSizeClass, TPriorityMode aPriorityMode,
-        TInt aBitmapHandle, TBool aDrmAllowed,
-        const TRect& aCroppingRect, TGlxThumbnailFilter aFilter) :
-    iId(aId), iSizeClass(aSizeClass), iPriorityMode(aPriorityMode), 
-    iBitmapHandle(aBitmapHandle), iDrmAllowed(aDrmAllowed),
-	iCroppingRect(aCroppingRect), iFilter(aFilter)
-    {
-    }
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnvideoutility.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +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:   Utility for creating bitmaps from video files
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef GLXTNVIDEOUTILITY_H
-#define GLXTNVIDEOUTILITY_H
-
-#include <e32base.h>
-#ifdef ENABLE_VED
-#include <VedVideoClipInfo.h>
-#else
-#include <TNEVideoClipInfo.h>
-#endif
-
-class CFbsBitmap;
-
-/**
- * Utility for creating bitmaps from video files
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS( CGlxtnVideoUtility ) : public CBase,
-#ifdef ENABLE_VED
-    public MVedVideoClipInfoObserver, public MVedVideoClipFrameObserver
-#else
-    public MTNEVideoClipInfoObserver, public MTNEVideoClipThumbObserver
-#endif
-    {
-public:
-    /**
-     * Default constructor.
-     */
-    CGlxtnVideoUtility();
-    /**
-     * Destructor.
-     */
-    ~CGlxtnVideoUtility();
-
-    /**
-     * Start asynchronous frame decoding.
-     * @param aRequestStatus Request status for the asynchronous operation.
-     * @param aDestination Bitmap in which to store the frame.
-     * @param aFileName Full name of video file.
-     */
-    void GetVideoFrameL( TRequestStatus* aRequestStatus,
-                        CFbsBitmap*& aDestination, const TDesC& aFileName,
-                                RArray<TSize>& aTargetSizes, TDisplayMode aMode );
-    /**
-     * Cancel asynchronous frame decoding.
-     */
-    void Cancel();
-
-#ifdef ENABLE_VED
-private:    // From MVedVideoClipInfoObserver
-    void NotifyVideoClipInfoReady( CVedVideoClipInfo& aInfo, TInt aError );
-
-private:    // From MVedVideoClipFrameObserver
-    void NotifyVideoClipFrameCompleted( CVedVideoClipInfo& aInfo,
-                                        TInt aError, CFbsBitmap* aFrame );
-#else
-private:    // From MTNEVideoClipInfoObserver
-    void NotifyVideoClipInfoReady( CTNEVideoClipInfo& aInfo, TInt aError );
-
-private:    // From MTNEVideoClipThumbObserver
-    void NotifyVideoClipThumbCompleted( CTNEVideoClipInfo& aInfo, 
-                                        TInt aError, CFbsBitmap* aFrame );
-#endif
-
-private:
-#ifdef ENABLE_VED
-    CVedVideoClipInfo* iVideoInfo;
-#else
-    CTNEVideoClipInfo* iVideoInfo;
-#endif
-    /** Client's request status */
-    TRequestStatus* iRequestStatus;
-    /** Pointer to variable to hold returned frame */
-    CFbsBitmap** iDestination;
-    TSize iSize;
-    TDisplayMode iDisplayMode;
-    };
-
-#endif  // GLXTNVIDEOUTILITY_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnvolumedatabase.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +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 CGlxtnVolumeDatabase
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef GLXTNVOLUMEDATABASE_H
-#define GLXTNVOLUMEDATABASE_H
-
-#include <e32base.h>
-#include <d32dbms.h>    // For RDbStoreDatabase
-#include <f32file.h>    // For TDriveName
-
-#include <glxmediaid.h>
-#include "glxtnstd.h"   // For TGlxImageDataFormat
-#include "mglxtnvolumedatabaseobserver.h"   // For TGlxtnThumbnailId
-
-class CFileStore;
-class CGlxtnFileInfo;
-class MGlxtnVolumeDatabaseObserver;
-
-/**
- * CGlxtnVolumeDatabase implements the database for a single volume.
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS(CGlxtnVolumeDatabase) : public CActive
-    {
-public:
-    /**
-    * Static constructor.
-    * @param aObserver Observer of database operations.
-    * @param aFs File server handle.
-    * @param aPath Full path to the database file to use.
-    */
-    static CGlxtnVolumeDatabase* NewLC(MGlxtnVolumeDatabaseObserver& aObserver,
-                                       RFs& aFs, 
-                                       const TDesC& aPath);
-
-    /**
-    * Destructor
-    */
-    ~CGlxtnVolumeDatabase();
-
-    /**
-    * Get the drive this database is stored on
-    */
-    const TDesC& Drive() const;
-
-    /**
-    * Look up thumbnail ID from Ids table
-    * @param aMediaId Media item ID.
-    */
-    void GetThumbnailIdL( const TGlxMediaId& aMediaId );
-    /**
-    * Look up thumbnail ID from Items table.  If not found, add new record.
-    * @param aInfo File info for media item.
-    */
-    void GetThumbnailIdL(const CGlxtnFileInfo* aInfo);
-    /**
-    * Add record to Ids table
-    * @param aMediaId Media item ID.
-    * @param aThumbId Thumbnail ID.
-    */
-    void StoreThumbnailIdL( const TGlxMediaId& aMediaId,
-                            const TGlxtnThumbnailId& aThumbId );
-    /**
-    * Look up thumbnail from Thumbnails table
-    * @param aThumbId Thumbnail ID.
-    * @param aSize Thumbnail size.
-    */
-    void GetThumbnailL( const TGlxtnThumbnailId& aThumbId, const TSize& aSize );
-    /**
-    * Check if a particular thumbnail is in Thumbnails table
-    * @param aThumbId Thumbnail ID.
-    * @param aSize Thumbnail size.
-    */
-    void CheckAvailableL( const TGlxtnThumbnailId& aThumbId, const TSize& aSize );
-    /**
-    * Add record to Thumbnails table
-    * @param aThumbId Thumbnail ID.
-    * @param aSize Thumbnail size.
-    * @param aFormat Thumbnail data format.
-    * @param aData Thumbnail binary data.
-    */
-    void StoreThumbnailL( const TGlxtnThumbnailId& aThumbId, const TSize& aSize,
-                        TGlxImageDataFormat aFormat, const TDesC8& aData );
-                        
-    /**
-    * Delete a record from the Ids table
-    * @param aMediaId MediaId of record to delete.
-    */
-    void DeleteIdL( const TGlxMediaId& aMediaId );
-    
-    /**
-    * Delete a record from the Thumbnails table
-    * @param aThumbId ThumbId of records to delete.
-    */
-    void DeleteThumbnailsL( const TGlxtnThumbnailId& aThumbId );
-    
-    /**
-    * Delete a record from the Items table
-    * @param aThumbId ThumbId of record to delete.
-    */
-    void DeleteItemL( const TGlxtnThumbnailId& aThumbId );
-    
-    /**
-    * Cleanup Database (remove entries that do not have corresponding file)
-    */
-    void CleanupDatabaseL();
-    
-protected:  // From CActive
-    void DoCancel();
-    void RunL();
-    TInt RunError(TInt aError);
-
-private:
-    /**
-    * Default constructor.
-    * @param aObserver Observer of database operations.
-    * @param aFs File server handle.
-    */
-    CGlxtnVolumeDatabase(MGlxtnVolumeDatabaseObserver& aObserver, RFs& aFs);
-    /**
-    * 2nd phase constructor.
-    * @param aPath Full path to the database file to use.
-    */
-    void ConstructL(const TDesC& aPath);
-
-    /**
-    * Open an existing database.
-    * @param aFs File server handle.
-    * @param aPath Full path to the database file to use.
-    */
-    void OpenDbL(RFs& aFs, const TDesC& aFilename);
-
-    /**
-    * Create a new database.
-    * @param aFs File server handle.
-    * @param aPath Full path to the database file to use.
-    */
-    void CreateDbL(RFs& aFs, const TDesC& aFilename);
-
-    /**
-    * Add record to Items table
-    * @return Thumbnail ID of new record.
-    */
-    TGlxtnThumbnailId DoAddItemL();
-
-    /**
-    * Evaluate a view based on a SQL query.
-    * @param aQuery The SQL select statement.
-    */
-    void EvaluateQueryL( const TDbQuery &aQuery );
-
-    /**
-    * Execute a SQL data update statement.
-    * @param aSql The SQL statement.
-    */
-    void UpdateDataL( const TDesC& aSql );
-
-    /**
-    * Test and cleanup a row in Items table
-    */
-    void CleanupRowL();
- 
-    /**
-    * Modify SQL string to handle quotes correctly
-    * @param aText String to be modified
-    * @return New HBufC containing modified string
-    */
-    HBufC* QuoteSqlStringLC(const TDesC& aText);
-
-private:
-    enum TDatabaseState
-        {
-        EStateIdle, 
-        EStateGettingIdFromMediaId, 
-        EStateGettingIdFromFilename,
-        EStateGettingThumbnail,
-        EStateDeletingId,
-        EStateDeletingThumbnails,
-        EStateDeletingItem,
-        EStateCheckingAvailability,
-        EStateCleaning,
-        EStateCleaningDeletingThumbnails
-        };
-
-    /** Observer of this database */
-    MGlxtnVolumeDatabaseObserver& iObserver;
-    /** File server session */
-    RFs& iFs;
-    /** Drive name of the volume */
-    TDriveName iDrive;
-    /** Handle to the database */
-    RDbStoreDatabase iDatabase;
-    /** Store used by the database */
-    CFileStore* iStore;
-    /** ID for next stored thumbnail */
-    TUint iNextThumbId;
-    /** File info for media item current query relates to (not owned) */
-    const CGlxtnFileInfo* iInfo;
-    /** Current state */
-    TDatabaseState iState;
-    /** View used for current query */
-    RDbView iView;
-    /** Updater to update a table */
-    RDbUpdate iDbUpdater;
-    /** Table used for query/deletion of rows in table */
-    RDbTable iTable;
-    };
-
-#endif  // GLXTNVOLUMEDATABASE_H
--- a/engine/collectionframework/thumbnailcreator/inc/glxtnzoomedimagetask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +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:   Task to generate a cropped thumbnail for a JPEG image.
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-
-#ifndef C_GLXTNZOOMEDIMAGETASK_H
-#define C_GLXTNZOOMEDIMAGETASK_H
-
-#include "glxtntask.h"
-
-#include <glxthumbnailinfo.h>   // For TGlxThumbnailFilter
-
-class CGlxtnFileInfo;
-class CGlxtnFileUtility;
-class TGlxThumbnailRequest;
-class CFbsBitmap;
-class CExtJpegDecoder;
-
-/**
- * Task to generate a cropped thumbnail for a JPEG image.
- *
- * @ingroup glx_thumbnail_creator
- */
-NONSHARABLE_CLASS(CGlxtnZoomedImageTask) : public CGlxtnClientTask
-    {
-public:
-    /**
-    * Two-phased constructor.
-    */
-	static CGlxtnZoomedImageTask* NewL(
-	    const TGlxThumbnailRequest& aRequestInfo,
-	    CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient);
-	~CGlxtnZoomedImageTask();
-
-protected:  // From CGlxtnTask
-    virtual TBool DoStartL(TRequestStatus& aStatus);
-	virtual void DoCancel();
-	virtual TBool DoRunL(TRequestStatus& aStatus);
-    TBool DoRunError(TInt aError);
-
-private:
-    CGlxtnZoomedImageTask(const TGlxThumbnailRequest& aRequestInfo,
-        CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient);
-	void ConstructL(TInt aBitmapHandle);
-
-    void DecodePartialImageL(TRequestStatus& aStatus);
-    void CreateDecoderL(TInt aDecoderType);
-
-private:
-    enum TTaskState
-        {
-        EStateFetchingUri, EStateDecoding, EStateProcessing
-        };
-
-    /** File utility (not owned) */
-    CGlxtnFileUtility& iFileUtility;
-    /** File information for item to thumbnail */
-    CGlxtnFileInfo* iInfo;
-	/** Current state for task state machine */
-    TTaskState iState;
-    /** Bitmap for the generated thumbnail */
-    CFbsBitmap* iThumbnail;
-    /** Decoder for the JPEG file */
-    CExtJpegDecoder* iDecoder;
-    /** Requested thumbnail size */
-    TSize iRequestedSize;
-    /** Part of image to keep */
-    TRect iCroppingRect;
-    /** Filtering to apply to generated image */
-    TGlxThumbnailFilter iFilter;
-    /** DRM allowed flag passed from thumbnail request */
-    TBool iDrmAllowed;
-    /** Whether current file is DRM protected */
-    TBool iProtected;
-    };
-        
-#endif  // C_GLXTNZOOMEDIMAGETASK_H
--- a/engine/collectionframework/thumbnailcreator/inc/mglxtnstorage.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +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:   Thumbnail storage interface
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef M_GLXTNSTORAGE_H
-#define M_GLXTNSTORAGE_H
-
-// INCLUDES
-
-#include <e32std.h>
-#include <glxmediaid.h>
-#include "glxtnstd.h"
-
-class CGlxtnFileInfo;
-
-// CLASS DECLARATION
-
-/**
-*  Interface for thumbnail persistent storage.
-*
-* @ingroup glx_thumbnail_creator
-*/
-class MGlxtnThumbnailStorage
-    {
-public:
-    /**
-    * Start asynchronous loading of thumbnail data.
-    * @param aData Buffer pointer for the loaded data. Memory is allocated
-                internally and ownership passed to the caller.
-    * @param aFormat Format of the thumbnail in aData.
-    * @param aId Media item ID.
-    * @param aFileInfo File info for media item.
-    * @param aSize Requested thumbnail size.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    virtual void LoadThumbnailDataL(HBufC8*& aData,
-                        TGlxImageDataFormat& aFormat, const TGlxMediaId& aId,
-                        const CGlxtnFileInfo& aFileInfo, const TSize& aSize,
-                        TRequestStatus* aStatus) = 0;
-    /**
-    * Start asynchronous saving of thumbnail data.
-    * @param aData Buffer containing the data to be saved.
-    * @param aFormat Format of the thumbnail in aData.
-    * @param aId Media item ID.
-    * @param aFileInfo File info for media item.
-    * @param aSize Requested thumbnail size.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    virtual void SaveThumbnailDataL(const TDesC8& aData,
-                        TGlxImageDataFormat aFormat, const TGlxMediaId& aId,
-                        const CGlxtnFileInfo& aFileInfo, const TSize& aSize,
-                        TRequestStatus* aStatus) = 0;
-    /**
-    * Start asynchronous deletion of all saved thumbnails for an item.
-    * @param aId Media item ID.
-    * @param aFileInfo File info for media item.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    virtual void DeleteThumbnailsL(const TGlxMediaId& aId,
-                const CGlxtnFileInfo& aFileInfo, TRequestStatus* aStatus) = 0;
-    /**
-    * Start asynchronous deletion of all saved thumbnails for items which no
-    * longer exist.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    virtual void CleanupThumbnailsL(TRequestStatus* aStatus) = 0;
-    /**
-    * Test whether a given thumbnail is available in storage.
-    * @param aId Media item ID.
-    * @param aFileInfo File info for media item.
-    * @param aSize Requested thumbnail size.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    virtual void IsThumbnailAvailableL(const TGlxMediaId& aId,
-                        const CGlxtnFileInfo& aFileInfo,
-                        const TSize& aSize, TRequestStatus* aStatus) = 0;
-    /**
-    * Cancel an ongoing asynchronous operation.
-    */
-    virtual void StorageCancel() = 0;
-    /**
-    * Notify that an error occurred in background generation.
-    * @param aId Media item ID.
-    * @param aError Error code.
-    */
-    virtual void NotifyBackgroundError(const TGlxMediaId& aId, TInt aError) = 0;
-    };
-
-/**
-*  Interface for notification of thumbnails becoming available in storage.
-*
-* @ingroup glx_thumbnail_creator
-*/
-class MGlxtnThumbnailStorageObserver
-    {
-public:
-    /**
-    * Notify that a given thumbnail is available in storage.
-    * @param aId Media item ID.
-    * @param aSize Requested thumbnail size.
-    */
-    virtual void ThumbnailAvailable(const TGlxMediaId& aId, const TSize& aSize) = 0;
-    /**
-    * Notify that an error occurred in background generation.
-    * @param aId Media item ID.
-    * @param aError Error code.
-    */
-    virtual void BackgroundThumbnailError(const TGlxMediaId& aId, TInt aError) = 0;
-    };
-
-#endif  // M_GLXTNSTORAGE_H
-
-// End of File
--- a/engine/collectionframework/thumbnailcreator/inc/mglxtnthumbnailcreatorclient.h	Mon Sep 27 15:13:20 2010 +0530
+++ /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:   Thumbnail creator client interface
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef M_GLXTNTHUMBNAILCREATORCLIENT_H
-#define M_GLXTNTHUMBNAILCREATORCLIENT_H
-
-// INCLUDES
-
-#include <e32std.h>
-#include <glxthumbnailinfo.h>
-
-// FUNCTION PROTOTYPES
-
-class CGlxtnFileInfo;
-class MGlxtnThumbnailStorage;
-class TGlxMediaId;
-
-// CLASS DECLARATION
-
-/**
-*  Interface for clients of the TNC.
-*
-* @ingroup glx_thumbnail_creator
-*/
-class MGlxtnThumbnailCreatorClient
-    {
-public:
-    /**
-	* Notifies that a thumbnail for a given item is available, or that
-	* thumbnail generation failed.
-    * @param aItemId The item for which the thumbnail was required.
-    * @param aQuality quality of the thumbnail
-    * @param aErrorCode KErrNone if successful, otherwise an error code.
-    */
-    virtual void ThumbnailFetchComplete(const TGlxMediaId& aItemId,
-                        TGlxThumbnailQuality aQuality, TInt aErrorCode) = 0;
-    /**
-	* Notifies that deletion of thumbnails for a given item is complete, or
-	* the operation failed.
-    * @param aItemId The item whose thumbnails were deleted.
-    * @param aErrorCode KErrNone if successful, otherwise an error code.
-    */
-    virtual void ThumbnailDeletionComplete(const TGlxMediaId& aItemId,
-                                            TInt aErrorCode) = 0;
-    /**
-	* Notifies that filtering items with available thumbnails from a list is
-	* complete, or the operation failed.
-    * @param aIdArray Array of IDs of items which don't have a thumbnail
-    *           available.
-    * @param aErrorCode KErrNone if successful, otherwise an error code.
-    */
-    virtual void FilterAvailableComplete(const RArray<TGlxMediaId>& aIdArray,
-                                            TInt aErrorCode) = 0;
-    /**
-    * Called by a task to request file information for an item.  The
-    * information is returned asynchronously.
-    * @param aInfo Buffer to hold the information.
-    * @param aItemId The item for which the URI is required.
-    * @param aStatus Request status for the asynchronous operation.
-    */
-    virtual void FetchFileInfoL(CGlxtnFileInfo* aInfo,
-                    const TGlxMediaId& aItemId, TRequestStatus* aStatus) = 0;
-    /**
-    * Cancel the request for an URI.
-    * @param aItemId The item for which the URI was required.
-    */
-    virtual void CancelFetchUri(const TGlxMediaId& aItemId) = 0;
-    /**
-    * Get the thumbnail storage used by this client.
-    * @return Pointer to the storage.
-    */
-    virtual MGlxtnThumbnailStorage* ThumbnailStorage() = 0;
-    };
-
-#endif  // M_GLXTNTHUMBNAILCREATORCLIENT_H
-
-// End of File
--- a/engine/collectionframework/thumbnailcreator/inc/mglxtnvolumedatabaseobserver.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +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 CGlxtnVolumeDatabase
-*
-*/
-
-
-
-/**
- * @internal reviewed 30/07/2007 by Simon Brooks
- */
-
-#ifndef M_GLXTNVOLUMEDATABASEOBSERVER_H
-#define M_GLXTNVOLUMEDATABASEOBSERVER_H
-
-#include "glxtnstd.h"   // For TGlxImageDataFormat
-
-/**
- * Typesafe thumbnail ID.
- */
-class TGlxtnThumbnailIdTypeBase {};     // Don't use this
-typedef TGlxId<TGlxtnThumbnailIdTypeBase> TGlxtnThumbnailId;    // Use this
-
-/**
- * Interface to receive callbacks from a CGlxtnVolumeDatabase.
- *
- * @author Dan Rhodes
- * @ingroup glx_thumbnail_creator
- */
-class MGlxtnVolumeDatabaseObserver
-    {
-public:
-    /**
-    * Called when a database operation cannot be completed.
-    * @param aError Error code.
-    */
-    virtual void HandleDatabaseError(TInt aError) = 0;
-    /**
-    * Called when a thumbnail ID has been found in the Ids table.
-    * @param aThumbId Thumbnail ID for the media item.
-    */
-    virtual void HandleThumbnailIdFromMediaIdL(
-                                    const TGlxtnThumbnailId& aThumbId ) = 0;
-    /**
-    * Called when a thumbnail ID has been found in the Items table.
-    * @param aThumbId Thumbnail ID for the media item.
-    */
-    virtual void HandleThumbnailIdFromFilenameL(
-                                    const TGlxtnThumbnailId& aThumbId ) = 0;
-    /**
-    * Called when a thumbnail ID has been saved in the Ids table.
-    */
-    virtual void HandleThumbnailIdStoredL() = 0;
-    /**
-    * Called when a thumbnail has been found in the Thumbnails table.
-    * @param aFormat Thumbnail data format.
-    * @param aData Thumbnail binary data (ownership passed).
-    */
-    virtual void HandleThumbnail(TGlxImageDataFormat aFormat, HBufC8* aData) = 0;
-    /**
-    * Called when a thumbnail has been saved in the Thumbnails table.
-    */
-    virtual void HandleThumbnailStored() = 0;
-    /**
-    * Called when a record has been deleted from a Ids table.
-    */
-    virtual void HandleMediaIdDeletedL() = 0;
-    /**
-    * Called when records have been deleted from a Thumbnails table.
-    */
-    virtual void HandleThumbnailsDeletedL() = 0;
-    /**
-    * Called when a record has been deleted from a Items table.
-    */
-    virtual void HandleItemDeletedL() = 0;
-    /**
-    * Called when availability has been chaecked.
-    * @param aResult The result of the check.
-    */
-    virtual void HandleAvailabilityChecked(TInt aResult) = 0;
-    /**
-    * Called after the database has been cleaned up.
-    */
-    virtual void HandleDatabaseCleanedL() = 0;
-    };
-
-#endif  // M_GLXTNVOLUMEDATABASEOBSERVER_H
--- a/engine/collectionframework/thumbnailcreator/src/glxtnbackgroundgenerationtask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,376 +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:   Thumbnail background generation task implementation
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-// INCLUDE FILES
-
-#include "glxtnbackgroundgenerationtask.h"
-
-#include <fbs.h>
-#include <glxassert.h>
-#include <glxtracer.h>
-#include <glxthumbnail.h>
-
-#include "glxtnfileinfo.h"
-#include "glxscreenresolutions.h"
-#include "glxtnfileutility.h"
-#include "glxtnimageutility.h"
-#include "glxtnvideoutility.h"
-#include "mglxtnstorage.h"
-#include "mglxtnthumbnailcreatorclient.h"
-
-
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGlxtnBackgroundGenerationTask::CGlxtnBackgroundGenerationTask
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CGlxtnBackgroundGenerationTask::CGlxtnBackgroundGenerationTask(
-                    const TGlxMediaId& iItemId, CGlxtnFileUtility& aFileUtility,
-                    MGlxtnThumbnailCreatorClient& aClient, 
-                    CGlxSettingsModel::TSupportedOrientations aSupportedOrientations) :
-    CGlxtnSaveThumbnailTask(KGlxtnTaskIdBackgroundThumbnailGeneration,
-                            iItemId, aClient.ThumbnailStorage()),
-    iClient(&aClient), iFileUtility(aFileUtility),
-    iSupportedOrientations(aSupportedOrientations)
-    {
-    TRACER("CGlxtnBackgroundGenerationTask::CGlxtnBackgroundGenerationTask()");
-    // Background task is always low priority
-    SetPriority(EPriorityLow);
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnBackgroundGenerationTask::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnBackgroundGenerationTask::ConstructL()
-    {
-    TRACER("void CGlxtnBackgroundGenerationTask::ConstructL()");
-    iImageUtility = new (ELeave) CGlxtnImageUtility(iFileUtility.FsSession());
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnBackgroundGenerationTask::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGlxtnBackgroundGenerationTask* CGlxtnBackgroundGenerationTask::NewL(
-                    const TGlxMediaId& iItemId, CGlxtnFileUtility& aFileUtility,
-                    MGlxtnThumbnailCreatorClient& aClient, 
-                    CGlxSettingsModel::TSupportedOrientations aSupportedOrientations)
-    {
-    TRACER("CGlxtnBackgroundGenerationTask* CGlxtnBackgroundGenerationTask::NewL()");
-    CGlxtnBackgroundGenerationTask* self
-            = new (ELeave) CGlxtnBackgroundGenerationTask(
-                                                iItemId, aFileUtility, aClient,
-                                                aSupportedOrientations);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-// Destructor
-CGlxtnBackgroundGenerationTask::~CGlxtnBackgroundGenerationTask()
-    {
-    TRACER("Destructor CGlxtnBackgroundGenerationTask::~CGlxtnBackgroundGenerationTask()");
-    delete iImageUtility;
-    delete iVideoUtility;
-    delete iImage;
-    delete iFilteredImage;
-    iSizes.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// DoStartL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnBackgroundGenerationTask::DoStartL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnBackgroundGenerationTask::DoStartL()");
-    // Sizes to generate, largest first
-    iSizes.AppendL(TSize(KGlxThumbnailLargeWidth, KGlxThumbnailLargeHeight));
-    iSizes.AppendL(TSize(KGlxThumbnailSmallWidth, KGlxThumbnailSmallHeight));
-    if( CGlxSettingsModel::ELandscapeAndPortrait == iSupportedOrientations )
-        {
-        iSizes.AppendL(TSize(KGlxThumbnailPortraitWidth, KGlxThumbnailPortraitHeight));
-        }
-
-    iFileInfo = new (ELeave) CGlxtnFileInfo;
-    iClient->FetchFileInfoL(iFileInfo, ItemId(), &aStatus);
-    iState = EStateFetchingUri;
-
-    return ETrue; // Request has been issued
-    }
-
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnBackgroundGenerationTask::DoCancel()
-    {
-    TRACER("void CGlxtnBackgroundGenerationTask::DoCancel()");
-    CGlxtnSaveThumbnailTask::DoCancel();
-    
-    Storage()->NotifyBackgroundError(ItemId(), KErrCancel);
-
-    if ( iClient && EStateFetchingUri == iState )
-        {
-        iClient->CancelFetchUri(ItemId());
-        }
-
-	iImageUtility->Cancel();
-
-	if ( iVideoUtility ) 
-		{
-		iVideoUtility->Cancel();
-		}
-
-    iFileUtility.ClearBadFileMarker();
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnBackgroundGenerationTask::DoRunL(TRequestStatus& aStatus)
-    {
-    TRACER("TBool CGlxtnBackgroundGenerationTask::DoRunL()");
-    User::LeaveIfError(aStatus.Int());
-
-    TBool active = EFalse;
-
-    switch ( iState )
-        {
-        case EStateFetchingUri:
-            {
-            iImageDecoded = EFalse;
-            iBadFileMarkerNotNeededFlag = ETrue;
-            // Client is no longer needed
-            iClient->ThumbnailFetchComplete(ItemId(),
-                                        EGlxThumbnailQualityHigh, KErrNone);
-            iClient = NULL;
-
-            User::LeaveIfNull(iFileInfo);
- 
-            TBool isVideo, isProtected;
-            iFileInfo->IdentifyFileL(isVideo, isProtected);
-            // if DRM protected leave
-            // assume DRM capablity not present
-            if(isProtected)
-                {
-                User::Leave(KErrAccessDenied);
-                }
-            
-            active = CheckNextL(aStatus);
-            }
-            break;
-
-        case EStateDecoding:
-            iImageUtility->FreeDecoder();
-            iImageDecoded = ETrue;
-            FilterThumbnailL(aStatus);
-            active = ETrue;
-            break;
-
-        case EStateFiltering:
-            ScaleThumbnailL(aStatus);
-            active = ETrue;
-            break;
-
-        case EStateSaving:
-            active = ProcessNextL(aStatus);
-            break;
-
-        case EStateChecking:
-            if ( KGlxThumbnailNotAvailable == aStatus.Int() )
-                {
-                iTodoSizes.AppendL(iSize);
-                }
-            active = CheckNextL(aStatus);
-            break;
-
-        case EStateScaling:
-            EncodeThumbnailL(aStatus);
-            active = ETrue;
-            break;
-
-        case EStateEncoding:
-            SaveThumbnailL(aStatus);
-            active = ETrue;
-            break;
-
-        default:
-            GLX_ASSERT_ALWAYS( EFalse, Panic( EGlxPanicIllegalState ),
-                            "CGlxtnBackgroundGenerationTask: Illegal state" );
-            break;
-        }
-
-    if ( !active )
-        {
-        if( !iBadFileMarkerNotNeededFlag )
-            {
-            iFileUtility.ClearBadFileMarker();
-            }
-        // Send notification that we've finished
-        Storage()->NotifyBackgroundError( ItemId(), KErrNone );
-        }
-
-    return active;  // Task is complete
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunError
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnBackgroundGenerationTask::DoRunError(TInt aError)
-    {
-    TRACER("CGlxtnBackgroundGenerationTask::DoRunError()");
-    if( !iBadFileMarkerNotNeededFlag )
-        {
-        iFileUtility.ClearBadFileMarker();
-        }
-    if ( iClient )
-        {
-        iClient->ThumbnailFetchComplete(
-                                ItemId(), EGlxThumbnailQualityHigh, aError);
-        }
-    else
-        {
-        Storage()->NotifyBackgroundError(ItemId(), aError);
-        }
-
-    return EFalse;  // Task is complete
-    }
-
-// -----------------------------------------------------------------------------
-// CheckNextL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnBackgroundGenerationTask::CheckNextL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnBackgroundGenerationTask::CheckNextL()");
-    if ( iSizes.Count() == 0 )
-        {
-        return ProcessNextL(aStatus);
-        }
-
-    iSize = iSizes[0];
-    iSizes.Remove(0);
-
-    Storage()->IsThumbnailAvailableL(ItemId(), *iFileInfo, iSize, &aStatus);
-    iState = EStateChecking;
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// ProcessNextL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnBackgroundGenerationTask::ProcessNextL(TRequestStatus& aStatus)
-    {
-    TRACER("TBool CGlxtnBackgroundGenerationTask::ProcessNextL()");
-    if ( iTodoSizes.Count() == 0 )
-        {
-        return EFalse;
-        }
-
-    iSize = iTodoSizes[0];
-    if( iImageDecoded )
-        {
-        FilterThumbnailL(aStatus);
-        }
-    else
-        {
-        DecodeImageL(aStatus);
-        }
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// FilterThumbnailL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnBackgroundGenerationTask::FilterThumbnailL(TRequestStatus& aStatus)
-    {
-    TRACER("void CGlxtnBackgroundGenerationTask::FilterThumbnailL()");
-    // Create thumbnail bitmap of required size
-    TSize targetSize(iTodoSizes[0]);
-    iTodoSizes.Remove(0);
-    iImageUtility->AdjustSize(targetSize, iImage->SizeInPixels());
-
-    delete iThumbnail;
-    iThumbnail = NULL;
-    iThumbnail = new (ELeave) CFbsBitmap;
-    User::LeaveIfError(iThumbnail->Create(targetSize, KGlxThumbnailDisplayMode));
-
-    iImageUtility->FilterImageL(&aStatus, iImage, iFilteredImage, iThumbnail);
-    iState = EStateFiltering;
-    }
-
-// -----------------------------------------------------------------------------
-// ScaleThumbnailL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnBackgroundGenerationTask::ScaleThumbnailL(TRequestStatus& aStatus)
-    {
-    TRACER("void CGlxtnBackgroundGenerationTask::ScaleThumbnailL()");
-    TSize targetSize(iSize);
-    const TSize srcSize = iImage->SizeInPixels();
-    iImageUtility->AdjustSize(targetSize, iImage->SizeInPixels());
-    iImageUtility->ScaleImageL(aStatus, *iImage, srcSize, *iThumbnail, targetSize);
-    iState = EStateScaling;
-    }
-
-// -----------------------------------------------------------------------------
-// DecodeImageL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnBackgroundGenerationTask::DecodeImageL(TRequestStatus& aStatus)
-    {
-    TRACER("void CGlxtnBackgroundGenerationTask::DecodeImageL()");
-    iBadFileMarkerNotNeededFlag = EFalse;
-    iFileUtility.CheckBadFileListL( iFileInfo->FilePath() );
-    TBool isVideo, isProtected;
-    iFileInfo->IdentifyFileL(isVideo, isProtected);
-    if ( isVideo )
-        {
-        iVideoUtility = new (ELeave) CGlxtnVideoUtility;
-        iVideoUtility->GetVideoFrameL(&aStatus, iImage,
-                                        iFileInfo->FilePath(), iTodoSizes, KGlxThumbnailDisplayMode);
-        }
-    else
-        {
-        iImage = iImageUtility->DecodeImageL(aStatus,
-                    iFileInfo->FilePath(), iTodoSizes, KGlxThumbnailDisplayMode);
-        }
-    delete iFilteredImage;
-    iFilteredImage = NULL;
-    iState = EStateDecoding;
-    }
-
-//  End of File  
--- a/engine/collectionframework/thumbnailcreator/src/glxtncleanuptask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +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:   Thumbnail storage cleanup task implementation
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-// INCLUDE FILES
-
-#include "glxtncleanuptask.h"
-
-#include <glxassert.h>
-#include <glxtracer.h>
-
-#include "mglxtnstorage.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGlxtnCleanupTask::CGlxtnCleanupTask
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CGlxtnCleanupTask::CGlxtnCleanupTask(MGlxtnThumbnailStorage* aStorage) :
-    CGlxtnTask(KGlxtnTaskIdCleanupThumbnails, KGlxIdNone, aStorage)
-    {
-    TRACER("CGlxtnCleanupTask::CGlxtnCleanupTask(MGlxtnThumbnailStorage* aStorage)");
-    GLX_ASSERT_ALWAYS( aStorage, Panic( EGlxPanicIllegalArgument ),
-                        "CGlxtnCleanupTask created without storage" );
-
-    // Background task is always low priority
-    SetPriority(EPriorityLow);
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnCleanupTask::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnCleanupTask::ConstructL()
-    {
-    TRACER("void CGlxtnCleanupTask::ConstructL()");
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnCleanupTask::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGlxtnCleanupTask* CGlxtnCleanupTask::NewL(MGlxtnThumbnailStorage* aStorage)
-    {
-    TRACER("CGlxtnCleanupTask* CGlxtnCleanupTask::NewL(MGlxtnThumbnailStorage* aStorage)");
-    CGlxtnCleanupTask* self = new (ELeave) CGlxtnCleanupTask(aStorage);
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop(self);
-
-    return self;
-    }
-
-// Destructor
-CGlxtnCleanupTask::~CGlxtnCleanupTask()
-    {
-    TRACER("Destructor CGlxtnCleanupTask::~CGlxtnCleanupTask()");
-    }
-
-// -----------------------------------------------------------------------------
-// DoStartL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnCleanupTask::DoStartL(TRequestStatus& aStatus)
-    {
-    TRACER("TBool CGlxtnCleanupTask::DoStartL(TRequestStatus& aStatus)");
-    Storage()->CleanupThumbnailsL(&aStatus);
-
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnCleanupTask::DoCancel()
-    {
-    TRACER("void CGlxtnCleanupTask::DoCancel()");
-    Storage()->StorageCancel();
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnCleanupTask::DoRunL(TRequestStatus& /*aStatus*/)
-    {
-    TRACER("TBool CGlxtnCleanupTask::DoRunL(TRequestStatus& /*aStatus*/)");
-    return EFalse;  // Task is complete
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunError
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnCleanupTask::DoRunError(TInt /*aError*/)
-    {
-    TRACER("TBool CGlxtnCleanupTask::DoRunError(TInt /*aError*/)");
-    return EFalse;  // Task is complete
-    }
-
-//  End of File  
--- a/engine/collectionframework/thumbnailcreator/src/glxtndatabase.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /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:   Thumbnail storage implementation
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-// INCLUDE FILES
-
-#include "glxtndatabase.h"
-
-#include <glxassert.h>
-#include <glxtracer.h>
-#include <pathinfo.h>
-
-#include "glxtnfileinfo.h"
-#include "glxtnvolumedatabase.h"
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGlxtnThumbnailDatabase::CGlxtnThumbnailDatabase
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CGlxtnThumbnailDatabase::CGlxtnThumbnailDatabase()
-    {
-    TRACER("CGlxtnThumbnailDatabase::CGlxtnThumbnailDatabase()");
-    iInternalDrive = PathInfo::PhoneMemoryRootPath().Left( KMaxDriveName );
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnThumbnailDatabase::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::ConstructL(const TDesC& aDbFilename,
-                             MGlxtnThumbnailStorageObserver* aStorageObserver)
-    {
-    TRACER("void CGlxtnThumbnailDatabase::ConstructL()");
-    User::LeaveIfError(iFs.Connect());
-
-    User::LeaveIfError(iFs.PrivatePath(iDatabasePath));
-    iDatabasePath.Append(aDbFilename);
-    iStorageObserver = aStorageObserver;
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnThumbnailDatabase::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGlxtnThumbnailDatabase* CGlxtnThumbnailDatabase::NewL(
-                             const TDesC& aDbFilename,
-                             MGlxtnThumbnailStorageObserver* aStorageObserver)
-    {
-    TRACER("CGlxtnThumbnailDatabase* CGlxtnThumbnailDatabase::NewL()");
-    CGlxtnThumbnailDatabase* self = new (ELeave) CGlxtnThumbnailDatabase;
-    
-    CleanupStack::PushL(self);
-    self->ConstructL(aDbFilename, aStorageObserver);
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnThumbnailDatabase::~CGlxtnThumbnailDatabase()
-    {
-    TRACER("CGlxtnThumbnailDatabase::~CGlxtnThumbnailDatabase()");
-    iDatabaseArray.ResetAndDestroy();
-    iFs.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// LoadThumbnailDataL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::LoadThumbnailDataL(HBufC8*& aData,
-                        TGlxImageDataFormat& aFormat, const TGlxMediaId& aId,
-                        const CGlxtnFileInfo& aFileInfo, const TSize& aSize,
-                        TRequestStatus* aStatus)
-    {
-    TRACER("void CGlxtnThumbnailDatabase::LoadThumbnailDataL()");
-    if ( iClientStatus )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    iCurrentOperation = ELoading;
-    iLoadData = &aData;
-    iLoadFormat = &aFormat;
-    iMediaId = aId;
-    iFileInfo = &aFileInfo;
-    iSize = aSize;
-
-    OpenDatabaseL( iInternalDrive )->GetThumbnailIdL( iMediaId );
-
-    iClientStatus = aStatus;
-    *iClientStatus = KRequestPending;
-    }
-
-// -----------------------------------------------------------------------------
-// SaveThumbnailDataL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::SaveThumbnailDataL(const TDesC8& aData,
-                        TGlxImageDataFormat aFormat, const TGlxMediaId& aId,
-                        const CGlxtnFileInfo& aFileInfo, const TSize& aSize,
-                        TRequestStatus* aStatus)
-    {
-    TRACER("void CGlxtnThumbnailDatabase::SaveThumbnailDataL()");
-    if ( iClientStatus )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    iCurrentOperation = ESaving;
-    iSaveData.Set(aData);
-    ASSERT(iSaveData.Length() == aData.Length());
-    iSaveFormat = aFormat;
-    iMediaId = aId;
-    iFileInfo = &aFileInfo;
-    iSize = aSize;
-
-    OpenDatabaseL( iInternalDrive )->GetThumbnailIdL( iMediaId );
-
-    iClientStatus = aStatus;
-    *iClientStatus = KRequestPending;
-    }
-
-// -----------------------------------------------------------------------------
-// DeleteThumbnailsL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::DeleteThumbnailsL(const TGlxMediaId& aId,
-                const CGlxtnFileInfo& aFileInfo, TRequestStatus* aStatus)
-    {
-    TRACER("void CGlxtnThumbnailDatabase::DeleteThumbnailsL()");
-    if ( iClientStatus )
-        {
-        User::Leave(KErrNotReady);
-        }
-    iCurrentOperation = EDeleting;
-    iMediaId = aId;
-    iFileInfo = &aFileInfo;
-
-    OpenDatabaseL( iInternalDrive )->GetThumbnailIdL( iMediaId );
-
-    iClientStatus = aStatus;
-    *iClientStatus = KRequestPending;
-    }
-
-// -----------------------------------------------------------------------------
-// CleanupThumbnailsL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::CleanupThumbnailsL(TRequestStatus* aStatus)
-    {
-    TRACER("void CGlxtnThumbnailDatabase::CleanupThumbnailsL()");
-    if ( iClientStatus )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    OpenDatabaseL( iInternalDrive );
-    GLX_ASSERT_ALWAYS( iDatabaseArray.Count() > 0,
-                    Panic( EGlxPanicLogicError ), "No databases to clean" );
-
-    iDatabaseIndex = 0;
-    iDatabaseArray[iDatabaseIndex]->CleanupDatabaseL();
-
-    iClientStatus  = aStatus;
-    *iClientStatus = KRequestPending;
-    }
-
-// -----------------------------------------------------------------------------
-// IsThumbnailAvailableL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::IsThumbnailAvailableL(const TGlxMediaId& aId,
-                        const CGlxtnFileInfo& aFileInfo,
-                        const TSize& aSize, TRequestStatus* aStatus)
-    {
-    TRACER("void CGlxtnThumbnailDatabase::IsThumbnailAvailableL()");
-    if ( iClientStatus )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    iCurrentOperation = ECheckingAvailable;
-    iMediaId = aId;
-    iFileInfo = &aFileInfo;
-    iSize = aSize;
-
-    OpenDatabaseL( iInternalDrive )->GetThumbnailIdL( iMediaId );
-
-    iClientStatus = aStatus;
-    *iClientStatus = KRequestPending;
-    }
-
-// -----------------------------------------------------------------------------
-// StorageCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::StorageCancel()
-    {
-    TRACER("void CGlxtnThumbnailDatabase::StorageCancel()");
-    TInt count = iDatabaseArray.Count();
-    for ( TInt i = 0; i < count; i++ )
-        {
-        iDatabaseArray[i]->Cancel();
-        }
-
-    if ( iClientStatus )
-        {
-        User::RequestComplete(iClientStatus, KErrCancel);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// NotifyBackgroundError
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::NotifyBackgroundError(
-                                        const TGlxMediaId& aId, TInt aError )
-    {
-    TRACER("void CGlxtnThumbnailDatabase::NotifyBackgroundError()");
-    if ( iStorageObserver )
-        {
-        iStorageObserver->BackgroundThumbnailError(aId, aError);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// HandleDatabaseError
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleDatabaseError(TInt aError)
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleDatabaseError()");
-    __ASSERT_DEBUG(KErrNone != aError, Panic(EGlxPanicIllegalArgument));
-    __ASSERT_DEBUG(iClientStatus, Panic(EGlxPanicNotInitialised));
-    if ( iClientStatus )
-        {
-        User::RequestComplete(iClientStatus, aError);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// HandleThumbnailIdFromMediaIdL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleThumbnailIdFromMediaIdL(
-                                        const TGlxtnThumbnailId& aThumbId )
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleThumbnailIdFromMediaIdL()");
-    if ( aThumbId == KGlxIdNone )
-        {
-        // Not found in Ids table - check the Items table
-        OpenDatabaseL(iFileInfo->FilePath())->GetThumbnailIdL(iFileInfo);
-        }
-    else
-        {
-        iThumbId = aThumbId;
-        if(iCurrentOperation == EDeleting)
-            {
-            OpenDatabaseL( iInternalDrive )->DeleteIdL( iMediaId );
-            }
-        else
-            {
-            DoHandleThumbnailIdL();
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// HandleMediaIdDeletedL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleMediaIdDeletedL()
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleMediaIdDeletedL()");
-    OpenDatabaseL(iFileInfo->FilePath())->DeleteThumbnailsL(iThumbId);
-    }
-    
-// -----------------------------------------------------------------------------
-// HandleThumbnailsDeletedL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleThumbnailsDeletedL()
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleThumbnailsDeletedL()");
-    OpenDatabaseL(iFileInfo->FilePath())->DeleteItemL(iThumbId);
-    }
-    
-// -----------------------------------------------------------------------------
-// HandleItemsDeletedL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleItemDeletedL()
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleItemDeletedL()");
-    __ASSERT_DEBUG(iClientStatus, Panic(EGlxPanicNotInitialised));
-    if ( iClientStatus )
-        {
-        User::RequestComplete(iClientStatus, KErrNone);
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// HandleThumbnailIdFromFilenameL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleThumbnailIdFromFilenameL(
-                                        const TGlxtnThumbnailId& aThumbId )
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleThumbnailIdFromFilenameL()");
-    iThumbId = aThumbId;
-    if(iCurrentOperation == EDeleting)
-        {
-        GLX_LOG_INFO1("GlxtnThumbnailDatabase::HandleThumbnailIdFromFilenameL Current Operation Deleting. aThumbId = %d", aThumbId.Value());
-        OpenDatabaseL(iFileInfo->FilePath())->DeleteThumbnailsL(iThumbId);
-        }
-    else
-        {
-        GLX_LOG_INFO1("GlxtnThumbnailDatabase::HandleThumbnailIdFromFilenameL Current Operation NOT Deleting. aThumbId = %d", aThumbId.Value());
-        // Store thumbnail ID to speed up future lookups
-        OpenDatabaseL( iInternalDrive )->StoreThumbnailIdL(
-                                                        iMediaId, iThumbId );
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// HandleThumbnailIdStoredL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleThumbnailIdStoredL()
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleThumbnailIdStoredL()");
-    DoHandleThumbnailIdL();
-    }
-
-// -----------------------------------------------------------------------------
-// HandleThumbnail
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleThumbnail(
-                                TGlxImageDataFormat aFormat, HBufC8* aData )
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleThumbnail()");
-    __ASSERT_DEBUG(iClientStatus, Panic(EGlxPanicNotInitialised));
-    if ( iClientStatus )
-        {
-        *iLoadData = aData;
-        *iLoadFormat = aFormat;
-        User::RequestComplete(iClientStatus, KErrNone);
-        }
-    else
-        {
-        // Data loaded, but client doesn't want it (shouldn't ever happen)
-        delete aData;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// HandleThumbnailStored
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleThumbnailStored()
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleThumbnailStored()");
-    if ( iStorageObserver )
-        {
-        iStorageObserver->ThumbnailAvailable(iMediaId, iSize);
-        }
-
-    __ASSERT_DEBUG(iClientStatus, Panic(EGlxPanicNotInitialised));
-    if ( iClientStatus )
-        {
-        User::RequestComplete(iClientStatus, KErrNone);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// HandleAvailabilityChecked
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleAvailabilityChecked(TInt aResult)
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleAvailabilityChecked()");
-    __ASSERT_DEBUG(iClientStatus, Panic(EGlxPanicNotInitialised));
-    if ( iClientStatus )
-        {
-        User::RequestComplete(iClientStatus, aResult);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// HandleDatabaseCleanedL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::HandleDatabaseCleanedL()
-    {
-    TRACER("void CGlxtnThumbnailDatabase::HandleDatabaseCleanedL()");
-
-    iDatabaseIndex++;
-    if(iDatabaseIndex < iDatabaseArray.Count())
-        {
-        // cleanup next database
-        iDatabaseArray[iDatabaseIndex]->CleanupDatabaseL();
-        }
-    else
-        {
-        // Finished cleanup
-        __ASSERT_DEBUG(iClientStatus, Panic(EGlxPanicNotInitialised));
-        if ( iClientStatus )
-            {
-            User::RequestComplete(iClientStatus, KErrNone);
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// DoHandleThumbnailIdL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailDatabase::DoHandleThumbnailIdL()
-    {
-    TRACER("void CGlxtnThumbnailDatabase::DoHandleThumbnailIdL()");
-    CGlxtnVolumeDatabase* db = OpenDatabaseL(iFileInfo->FilePath());
-
-    switch ( iCurrentOperation )
-        {
-        case ELoading:
-            db->GetThumbnailL(iThumbId, iSize);
-            break;
-        case ESaving:
-            db->StoreThumbnailL(iThumbId, iSize, iSaveFormat, iSaveData);
-            break;
-        case ECheckingAvailable:
-            db->CheckAvailableL(iThumbId, iSize);
-            break;
-        default:
-            Panic(EGlxPanicIllegalState);
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// OpenDatabaseL
-// -----------------------------------------------------------------------------
-//
-CGlxtnVolumeDatabase* CGlxtnThumbnailDatabase::OpenDatabaseL(const TDesC& aDrive)
-    {
-    TRACER("CGlxtnVolumeDatabase* CGlxtnThumbnailDatabase::OpenDatabaseL()");
-    TPtrC drive(aDrive.Left(KMaxDriveName));
-
-    TInt count = iDatabaseArray.Count();
-    for ( TInt i = 0; i < count; i++ )
-        {
-        if ( 0 == drive.CompareF(iDatabaseArray[i]->Drive()) )
-            {
-            return iDatabaseArray[i];
-            }
-        }
-
-    // Get path of DB on specified drive
-    TFileName path(drive);
-    path.Append(iDatabasePath);
-
-    CGlxtnVolumeDatabase* database = CGlxtnVolumeDatabase::NewLC(*this, iFs, path);
-    iDatabaseArray.AppendL(database);
-    CleanupStack::Pop(database);
-
-    return database;
-    }
-
-
-//  End of File  
--- a/engine/collectionframework/thumbnailcreator/src/glxtndeletethumbnailstask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +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 CGlxtnDeleteThumbnailsTask
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-// INCLUDE FILES
-
-#include "glxtndeletethumbnailstask.h"
-
-#include <glxassert.h>
-#include "glxtnfileinfo.h"
-#include "mglxtnstorage.h"
-#include "mglxtnthumbnailcreatorclient.h"
-#include <glxtracer.h>
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CGlxtnDeleteThumbnailsTask::CGlxtnDeleteThumbnailsTask(
-            const TGlxMediaId& aItemId, MGlxtnThumbnailCreatorClient& aClient) :
-    CGlxtnClientTask(KGlxtnTaskIdDeleteThumbnails, aItemId, aClient)
-    {
-    TRACER("CGlxtnDeleteThumbnailsTask::CGlxtnDeleteThumbnailsTask()");
-    GLX_ASSERT_ALWAYS( Storage(), Panic( EGlxPanicIllegalArgument ),
-                    "CGlxtnDeleteThumbnailsTask created without storage" );
-    }
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnDeleteThumbnailsTask::ConstructL()
-    {
-    TRACER("void CGlxtnDeleteThumbnailsTask::ConstructL()");
-    }
-
-// -----------------------------------------------------------------------------
-// NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGlxtnDeleteThumbnailsTask* CGlxtnDeleteThumbnailsTask::NewL(
-            const TGlxMediaId& aItemId, MGlxtnThumbnailCreatorClient& aClient)
-    {
-    TRACER("CGlxtnDeleteThumbnailsTask::NewL()");
-    CGlxtnDeleteThumbnailsTask* self = new (ELeave) CGlxtnDeleteThumbnailsTask(
-                                                            aItemId, aClient);
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-// Destructor
-CGlxtnDeleteThumbnailsTask::~CGlxtnDeleteThumbnailsTask()
-    {
-    TRACER("Destructor CGlxtnDeleteThumbnailsTask::~CGlxtnDeleteThumbnailsTask()");
-    delete iInfo;
-    }
-
-// -----------------------------------------------------------------------------
-// DoStartL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnDeleteThumbnailsTask::DoStartL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnDeleteThumbnailsTask::DoStartL()");
-    iInfo = new (ELeave) CGlxtnFileInfo;
-    Client().FetchFileInfoL(iInfo, ItemId(), &aStatus);
-
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnDeleteThumbnailsTask::DoCancel()
-    {
-    TRACER("CGlxtnDeleteThumbnailsTask::DoCancel()");
-    Storage()->StorageCancel();
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnDeleteThumbnailsTask::DoRunL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnDeleteThumbnailsTask::DoRunL()");
-    User::LeaveIfError(aStatus.Int());
-
-    TBool active = EFalse;
-
-    if ( iDeleting )
-        {
-        Client().ThumbnailDeletionComplete(ItemId(), KErrNone);
-        }
-    else
-        {
-        User::LeaveIfNull(iInfo);
-        Storage()->DeleteThumbnailsL(ItemId(), *iInfo, &aStatus);
-        iDeleting = ETrue;
-        active = ETrue;
-        }
-
-    return active;
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunError
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnDeleteThumbnailsTask::DoRunError(TInt aError)
-    {
-    TRACER("CGlxtnDeleteThumbnailsTask::DoRunError()");
-    Client().ThumbnailDeletionComplete(ItemId(), aError);
-
-    return EFalse;
-    }
-
-//  End of File
--- a/engine/collectionframework/thumbnailcreator/src/glxtnfileinfo.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +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 CGlxtnFileInfo
-*
-*/
-
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-#include "glxtnfileinfo.h"
-
-#include <glxtracer.h>
-// -----------------------------------------------------------------------------
-// IdentifyFileL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnFileInfo::IdentifyFileL(TBool& aIsVideo, TBool& aIsProtected)
-    {
-    TRACER("void CGlxtnFileInfo::IdentifyFileL()");
-    User::LeaveIfNull(iFilePath);
-
-    aIsVideo = iIsVideo;
-    aIsProtected = iIsProtected;
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnfileutility.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,257 +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:   Utility for thumbnail tasks handling files
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtnfileutility.h"
-#include "glxscreenresolutions.h"
-#include <glxtracer.h>
-#include <glxpanic.h>
-#include <glxthumbnailinfo.h>
-#include <pathinfo.h>
-#include <s32file.h>
-
-_LIT(KGlxBadFileList, "glxbadfilelist.dat");
-_LIT(KGlxBadFileMarker, "glxbadfilemarker.dat");
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnFileUtility::CGlxtnFileUtility()
-    {
-    TRACER("CGlxtnFileUtility::CGlxtnFileUtility()");
-    }
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnFileUtility::ConstructL()
-    {
-    TRACER("CGlxtnFileUtility::ConstructL()");
-	User::LeaveIfError(iFs.Connect());
-
-    iFs.PrivatePath(iBadFileDir);
-    iBadFileDir.Insert(
-                0, PathInfo::PhoneMemoryRootPath().Left( KMaxDriveName ) );
-
-    TRAP_IGNORE(ReadBadFileListL());
-
-    iPersistentSizeClasses.AppendL(
-                TSize(KGlxThumbnailSmallWidth, KGlxThumbnailSmallHeight));
-    iPersistentSizeClasses.AppendL(
-                TSize(KGlxThumbnailLargeWidth, KGlxThumbnailLargeHeight));
-    iPersistentSizeClasses.AppendL(
-                TSize(KGlxThumbnailPortraitWidth, KGlxThumbnailPortraitHeight));
-    }
-
-// -----------------------------------------------------------------------------
-// NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGlxtnFileUtility* CGlxtnFileUtility::NewL()
-    {
-    TRACER("CGlxtnFileUtility::NewL()");
-    CGlxtnFileUtility* self = new (ELeave) CGlxtnFileUtility;
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnFileUtility::~CGlxtnFileUtility()
-    {
-    TRACER("CGlxtnFileUtility::~CGlxtnFileUtility()");
-	iFs.Close();
-	iBadFileArray.ResetAndDestroy();
-	iPersistentSizeClasses.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// FsSession
-// Provide file server session for opening images from files.
-// -----------------------------------------------------------------------------
-//
-RFs& CGlxtnFileUtility::FsSession()
-    {
-    TRACER("RFs& CGlxtnFileUtility::FsSession()");
-    return iFs;
-    }
-
-// -----------------------------------------------------------------------------
-// CheckBadFileListL
-// Test whether a file is on the bad file list.  If not the bad file marker
-// is set to the filename, so that if a panic occurs it will be added to the
-// bad file list.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnFileUtility::CheckBadFileListL(const TDesC& aFilename)
-    {
-    TRACER("0CGlxtnFileUtility::CheckBadFileListL(const TDesC& aFilename)");
-    for ( TInt i = 0; i < iBadFileArray.Count(); i++ )
-        {
-        if ( 0 == iBadFileArray[i]->CompareF(aFilename) )
-            {
-            // File is bad
-            User::Leave( KErrCorrupt );
-            }
-        }
-
-    // Set bad file marker
-    TPath path(iBadFileDir);
-    path.Append(KGlxBadFileMarker);
-
-    // Ensure directory exists
-    TInt err = iFs.MkDirAll(path);
-    if ( err != KErrAlreadyExists )
-        {
-        User::LeaveIfError(err);
-        }
-
-    RFileWriteStream stream;
-    CleanupClosePushL(stream);
-    User::LeaveIfError(stream.Replace(
-                                iFs, path, EFileWrite | EFileShareExclusive));
-    stream << aFilename;
-    stream.CommitL();
-    CleanupStack::PopAndDestroy(&stream);
-    }
-
-// -----------------------------------------------------------------------------
-// ClearBadFileMarker
-// Clear the bad file marker.  Called when processing a file is complete (no
-// panic occurred).
-// -----------------------------------------------------------------------------
-//
-void CGlxtnFileUtility::ClearBadFileMarker()
-    {
-    TRACER("void CGlxtnFileUtility::ClearBadFileMarker()");
-    TPath path(iBadFileDir);
-    path.Append(KGlxBadFileMarker);
-
-    ( void )iFs.Delete( path );  // Ignore error
-    }
-
-// -----------------------------------------------------------------------------
-// IsPersistentSize
-// Test whether a generated thumbnail should be stored in persistent storage.
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnFileUtility::IsPersistentSize(const TSize& aSize)
-    {
-    TRACER("CGlxtnFileUtility::IsPersistentSize()");
-    for ( TInt i = 0; i < iPersistentSizeClasses.Count(); i++ )
-        {
-        if ( iPersistentSizeClasses[i] == aSize )
-            {
-            return ETrue;
-            }
-        }
-
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// ReadBadFileListL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnFileUtility::ReadBadFileListL()
-    {
-    TRACER("void CGlxtnFileUtility::ReadBadFileListL()");
-    TPath pathList(iBadFileDir);
-    pathList.Append(KGlxBadFileList);
-    TPath pathMarker(iBadFileDir);
-    pathMarker.Append(KGlxBadFileMarker);
-
-    RFileReadStream stream;
-    CleanupClosePushL(stream);
-
-    // Check bad file list
-    if ( KErrNone == stream.Open(
-                            iFs, pathList, EFileRead | EFileShareReadersOnly) )
-        {
-        TInt err;
-        // Loop until end of file
-        do
-            {
-            TRAP(err,
-                HBufC* file = HBufC::NewLC(stream, KMaxTInt);
-                iBadFileArray.AppendL(file);
-                CleanupStack::Pop(file);
-                )
-            } while ( KErrNone == err );
-
-        stream.Close();
-        // NOTE: We always get KErrEof even if the file is corrupted
-        }
-
-    // Check bad file marker
-    if ( KErrNone == stream.Open(
-                        iFs, pathMarker, EFileRead | EFileShareReadersOnly) )
-        {
-        // File exists, file in marker must be bad
-        HBufC* file = HBufC::NewLC(stream, KMaxTInt);
-        iBadFileArray.AppendL(file);
-        CleanupStack::Pop(file);
-
-        // Save the list for next gallery session
-        // Recreate whole file in case existing file is corrupted
-        WriteBadFileListL();
-
-        stream.Close();
-        ClearBadFileMarker();
-        }
-
-    CleanupStack::Pop(&stream); // Stream already closed
-    }
-
-// -----------------------------------------------------------------------------
-// WriteBadFileListL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnFileUtility::WriteBadFileListL()
-    {
-    TRACER("void CGlxtnFileUtility::WriteBadFileListL()");
-    TPath path(iBadFileDir);
-    path.Append(KGlxBadFileList);
-
-    RFileWriteStream stream;
-    CleanupClosePushL(stream);
-    User::LeaveIfError(stream.Replace(
-                        iFs, path, EFileWrite | EFileShareExclusive));
-
-    for ( TInt i = 0; i < iBadFileArray.Count() ; i++ )
-        {
-        stream << *iBadFileArray[i];
-        }
-    stream.CommitL();
-
-    CleanupStack::PopAndDestroy(&stream);
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnfilteravailabletask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +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:   Task used for thumbnail availability filter.
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtnfilteravailabletask.h"
-
-#include <glxassert.h>
-#include <glxtracer.h>
-
-#include "glxtnfileinfo.h"
-#include "mglxtnstorage.h"
-#include "mglxtnthumbnailcreatorclient.h"
-
-// -----------------------------------------------------------------------------
-// NewL
-// -----------------------------------------------------------------------------
-//
-CGlxtnFilterAvailableTask* CGlxtnFilterAvailableTask::NewL(
-                    const TArray<TGlxMediaId>& aItemArray, const TSize& aSize,
-                    MGlxtnThumbnailCreatorClient& aClient)
-    {
-    TRACER("CGlxtnFilterAvailableTask* CGlxtnFilterAvailableTask::NewL()");
-    CGlxtnFilterAvailableTask* task = new (ELeave) CGlxtnFilterAvailableTask(
-                                                                aSize, aClient);
-    CleanupStack::PushL(task);
-    task->ConstructL(aItemArray);
-    CleanupStack::Pop(task);
-    return task;
-    }
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnFilterAvailableTask::CGlxtnFilterAvailableTask(const TSize& aSize,
-                                        MGlxtnThumbnailCreatorClient& aClient) :
-    CGlxtnClientTask(KGlxtnTaskIdFilterAvailable, KGlxIdNone, aClient),
-    iSize(aSize)
-    {
-    TRACER("CGlxtnFilterAvailableTask::CGlxtnFilterAvailableTask()");
-    }
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnFilterAvailableTask::ConstructL(
-                                        const TArray<TGlxMediaId>& aItemArray)
-    {
-    TRACER("void CGlxtnFilterAvailableTask::ConstructL()");
-    TInt count = aItemArray.Count();
-    for ( TInt i = 0; i < count; i++ )
-        {
-        iIdArray.AppendL(aItemArray[i]);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnFilterAvailableTask::~CGlxtnFilterAvailableTask() 
-    {
-    TRACER("CGlxtnFilterAvailableTask::~CGlxtnFilterAvailableTask()");
-    delete iFileInfo;
-    iIdArray.Close();
-    }
-
-// -----------------------------------------------------------------------------
-// DoStartL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnFilterAvailableTask::DoStartL(TRequestStatus& aStatus)
-    {
-    TRACER("TBool CGlxtnFilterAvailableTask::DoStartL()");
-    iIndex = 0;
-
-    GLX_ASSERT_DEBUG( !iFileInfo, Panic( EGlxPanicAlreadyInitialised ),
-                        "iFileInfo not NULL" );
-    iFileInfo = new (ELeave) CGlxtnFileInfo;
-
-    return GetFileInfoL(aStatus);
-    }
-
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnFilterAvailableTask::DoCancel() 
-    {
-    TRACER("void CGlxtnFilterAvailableTask::DoCancel()");
-    Storage()->StorageCancel();
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnFilterAvailableTask::DoRunL(TRequestStatus& aStatus) 
-    {
-    TRACER("TBool CGlxtnFilterAvailableTask::DoRunL()");
-    TInt result = aStatus.Int();
-    User::LeaveIfError(result);
-
-    TBool active = EFalse;
-
-    switch ( iState )
-        {
-        case EStateFetchingUri:
-            Storage()->IsThumbnailAvailableL(iIdArray[iIndex], *iFileInfo,
-                                                iSize, &aStatus);
-            iState = EStateChecking;
-            active = ETrue;
-            break;
-
-        case EStateChecking:
-            if ( KGlxThumbnailNotAvailable == result )
-                {
-                iIndex++;
-                }
-            else
-                {
-                iIdArray.Remove(iIndex);
-                }
-
-            active = GetFileInfoL(aStatus);
-            break;
-
-        default:
-            GLX_ASSERT_ALWAYS( EFalse, Panic( EGlxPanicIllegalState ),
-                            "CGlxtnFilterAvailableTask: Illegal state" );
-            break;
-        }
-
-    return active; 
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunError
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnFilterAvailableTask::DoRunError(TInt aError)
-    {
-    TRACER("CGlxtnFilterAvailableTask::DoRunError()");
-    Client().FilterAvailableComplete(iIdArray, aError);
-
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// GetFileInfoL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnFilterAvailableTask::GetFileInfoL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnFilterAvailableTask::GetFileInfoL()");
-    if ( iIndex < iIdArray.Count() )
-        {
-        Client().FetchFileInfoL(iFileInfo, iIdArray[iIndex], &aStatus);
-        iState = EStateFetchingUri;
-
-        return ETrue;
-        }
-
-    // Finished checking the array
-    Client().FilterAvailableComplete(iIdArray, KErrNone);
-
-    return EFalse;
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtngeneratethumbnailtask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,335 +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:   Classes for thumbnail-related tasks.
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtngeneratethumbnailtask.h"
-
-#include <bitdev.h>
-#include <fbs.h>
-#include <glxassert.h>
-#include <glxlog.h>
-#include <glxtracer.h>
-#include <glxthumbnail.h>
-
-#include "glxtnfileinfo.h"
-#include "glxtnfileutility.h"
-#include "glxtnimageutility.h"
-#include "glxtnsavethumbnailtask.h"
-#include "glxtntaskmanager.h"
-#include "glxtnthumbnailrequest.h"
-#include "glxtnvideoutility.h"
-#include "mglxtnthumbnailcreatorclient.h"
-
-// -----------------------------------------------------------------------------
-// NewL
-// -----------------------------------------------------------------------------
-//
-CGlxtnGenerateThumbnailTask* CGlxtnGenerateThumbnailTask::NewL(
-        const TGlxThumbnailRequest& aRequestInfo,
-        CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient)
-    {
-    TRACER("CGlxtnGenerateThumbnailTask::NewL()");
-    CGlxtnGenerateThumbnailTask* task
-                = new (ELeave) CGlxtnGenerateThumbnailTask(
-                                        aRequestInfo, aFileUtility, aClient);
-    CleanupStack::PushL(task);
-    task->ConstructL(aRequestInfo.iBitmapHandle);
-    CleanupStack::Pop( task );
-    return task;
-    }
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnGenerateThumbnailTask::CGlxtnGenerateThumbnailTask(
-        const TGlxThumbnailRequest& aRequestInfo,
-        CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient) :
-    CGlxtnLoadThumbnailTask( KGlxtnTaskIdGenerateThumbnail,
-                            aRequestInfo, aFileUtility, aClient )
-	{
-    TRACER("CGlxtnGenerateThumbnailTask::CGlxtnGenerateThumbnailTask()");
-	}
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnGenerateThumbnailTask::ConstructL(TInt aBitmapHandle)
-	{
-    TRACER("CGlxtnGenerateThumbnailTask::ConstructL()");
-	CGlxtnLoadThumbnailTask::ConstructL( aBitmapHandle );
-
-    iImageUtility = new (ELeave) CGlxtnImageUtility(iFileUtility.FsSession());
-	}
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnGenerateThumbnailTask::~CGlxtnGenerateThumbnailTask() 
-	{
-    TRACER("CGlxtnGenerateThumbnailTask::~CGlxtnGenerateThumbnailTask()");
-	delete iImageUtility;
-    delete iVideoUtility;
-    delete iImage;
-	}
-
-// -----------------------------------------------------------------------------
-// SetManager
-// -----------------------------------------------------------------------------
-//
-void CGlxtnGenerateThumbnailTask::SetManager(CGlxtnTaskManager* aManager)
-    {
-    TRACER("void CGlxtnGenerateThumbnailTask::SetManager()");
-    iTaskManager = aManager;
-    }
-
-// -----------------------------------------------------------------------------
-// DoStartL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnGenerateThumbnailTask::DoStartL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnGenerateThumbnailTask::DoStartL()");
-    iInfo = new (ELeave) CGlxtnFileInfo;
-    Client().FetchFileInfoL(iInfo, ItemId(), &aStatus);
-    iState = EStateFetchingUri;
-
-    return ETrue; // Request has been issued
-    } 
-
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnGenerateThumbnailTask::DoCancel() 
-	{
-    TRACER("void CGlxtnGenerateThumbnailTask::DoCancel()");
-	CGlxtnLoadThumbnailTask::DoCancel();
-
-	iImageUtility->Cancel();
-
-	if ( iVideoUtility ) 
-		{
-		iVideoUtility->Cancel();
-		}
-
-    iFileUtility.ClearBadFileMarker();
-	}
-
-// -----------------------------------------------------------------------------
-// DoRunL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnGenerateThumbnailTask::DoRunL(TRequestStatus& aStatus) 
-	{
-    TRACER("TBool CGlxtnGenerateThumbnailTask::DoRunL()");
-	TInt error = aStatus.Int();
-
-	TBool active = EFalse;
-
-    if ( KErrNone == error )
-        {
-        switch ( iState )
-            {
-            case EStateFetchingUri:
-                {
-                User::LeaveIfNull(iInfo);
-                iBadFileMarkerNotNeededFlag = ETrue;
-
-                iInfo->IdentifyFileL(iVideo, iProtected);
-                // leave if file is DRM protected and client has no DRM 
-                // capablity
-                if ( iProtected && !iDrmAllowed )
-                    {
-                    User::Leave(KErrAccessDenied);
-                    }
-
-                if ( !LoadThumbnailL( aStatus ) )
-                    {
-                    iBadFileMarkerNotNeededFlag = EFalse;
-                    iFileUtility.CheckBadFileListL( iInfo->FilePath() );
-                    HighQualityDecodeL( aStatus );
-                    }
-                active = ETrue;
-                }
-                break;
-
-            case EStateLoading:
-                active = HandleLoadedThumbnailL( aStatus );
-                break;
-
-            case EStateDecodingThumbnail:
-                // Nothing to do
-                break;
-
-            case EStateDecodingImage:
-                {
-                iImageUtility->FreeDecoder();
-
-                // Resize empty bitmap to required size
-                TSize targetSize(iRequestedSize);
-                iImageUtility->AdjustSize(targetSize, iImage->SizeInPixels());
-                User::LeaveIfError(iThumbnail->Resize(targetSize));
-
-                iImageUtility->FilterImageL(&aStatus, iImage, iImage, iThumbnail);
-                iState = EStateFiltering;
-                active = ETrue;
-                }
-                break;
-
-            case EStateFiltering:
-                {
-                TSize targetSize(iRequestedSize);
-                const TSize srcSize = iImage->SizeInPixels();
-                iImageUtility->AdjustSize(targetSize, iImage->SizeInPixels());
-                iImageUtility->ScaleImageL(aStatus, *iImage, srcSize, *iThumbnail, targetSize);
-                iState = EStateScaling;
-                active = ETrue;
-                }
-                break;
-
-            case EStateScaling:
-            	{
-            	User::LeaveIfError(iThumbnail->SetDisplayMode(KGlxThumbnailDisplayMode));
-            	           	
-                // Create task to save generated thumbnail
-                if ( Storage() && !iInfo->iTemporary
-                    && !SizeRequiresDrmRights()
-                    && iFileUtility.IsPersistentSize(iRequestedSize) )
-                    {
-                    CGlxtnSaveThumbnailTask* task
-                        = CGlxtnSaveThumbnailTask::NewL(ItemId(), iInfo,
-                                        iRequestedSize, iThumbnail, Storage());
-                    iThumbnail = NULL;  // Task has ownership
-                    iInfo = NULL;       // Task has ownership
-                    iTaskManager->AddTaskL(task);
-                    }
-                break;
-            	}
-
-            default:
-                GLX_ASSERT_ALWAYS( EFalse, Panic( EGlxPanicIllegalState ),
-                            "CGlxtnGenerateThumbnailTask: Illegal state" );
-                break;
-            }
-        }
-    else
-        {
-        if ( EStateLoading == iState )
-            {
-            // Loading failed - generate new thumbnail instead
-            HighQualityDecodeL( aStatus );
-            active = ETrue;
-            }
-        }
-
-    if ( !active )
-        {
-        if ( !iBadFileMarkerNotNeededFlag )
-            {
-            iFileUtility.ClearBadFileMarker();
-            }
-        Client().ThumbnailFetchComplete(ItemId(),
-                                        EGlxThumbnailQualityHigh, error);
-        }
-
-    return active; 
-	}
-
-// -----------------------------------------------------------------------------
-// DoRunError
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnGenerateThumbnailTask::DoRunError(TInt aError)
-    {
-    TRACER("TBool CGlxtnGenerateThumbnailTask::DoRunError(TInt aError)");
-    iFileUtility.ClearBadFileMarker();
-    Client().ThumbnailFetchComplete(ItemId(), EGlxThumbnailQualityHigh, aError);
-
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// HighQualityDecodeL
-// ---------------------------------------------------------------------------
-//
-void CGlxtnGenerateThumbnailTask::HighQualityDecodeL(
-                                                TRequestStatus& aStatus )
-    {
-    TRACER("void CGlxtnGenerateThumbnailTask::HighQualityDecodeL()");
-    RArray<TSize> targetSizes;
-    CleanupClosePushL(targetSizes);
-    targetSizes.AppendL( TSize(iRequestedSize) );
-    if ( iVideo )
-        {
-        iVideoUtility = new (ELeave) CGlxtnVideoUtility;
-        iVideoUtility->GetVideoFrameL( &aStatus, iImage, iInfo->FilePath(), targetSizes, KGlxThumbnailDisplayMode );
-        }
-    else
-        {
-        iImage = iImageUtility->DecodeImageL( aStatus, iInfo->FilePath(),
-                                    targetSizes, KGlxThumbnailDisplayMode );
-        }
-    CleanupStack::PopAndDestroy(&targetSizes);
-    iState = EStateDecodingImage;
-    }
-
-// -----------------------------------------------------------------------------
-// SizeRequiresDrmRights
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnGenerateThumbnailTask::SizeRequiresDrmRights()
-    {
-    TRACER("TBool CGlxtnGenerateThumbnailTask::SizeRequiresDrmRights()");
-    if ( iProtected )
-        {
-        if ( iVideo )
-            {
-            return ETrue;
-            }
-
-        // Rights are required if thumbnail doesn't fit in KGlxThumbnailDrmWidth
-        // by KGlxThumbnailDrmHeight box either portrait or landscape
-        if ( (iRequestedSize.iWidth > KGlxThumbnailDrmWidth
-                || iRequestedSize.iHeight > KGlxThumbnailDrmHeight)
-            && (iRequestedSize.iWidth > KGlxThumbnailDrmHeight
-                || iRequestedSize.iHeight > KGlxThumbnailDrmWidth) )
-            {
-            return ETrue;
-            }
-
-        const TSize& imageSize(iImageUtility->OriginalSize());
-
-        // Rights are required if thumbnail is greater than 25% of image size
-        // Due to preserving aspect ratio, this will only happen if both width
-        // and height are greater than half the image width and height
-        if ( iRequestedSize.iWidth > imageSize.iWidth / 2
-            && iRequestedSize.iHeight> imageSize.iHeight / 2 )
-            {
-            return ETrue;
-            }
-        }
-
-    return EFalse;
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnimagedecoderfactory.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +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 GlxtnImageDecoderFactory
-*
-*/
-
-
-
-#include "glxtnimagedecoderfactory.h"
-
-#include <glxtracer.h>
-#include <IclExtJpegApi.h>  // For CExtJpegDecoder
-
-// ---------------------------------------------------------------------------
-// NewL
-// ---------------------------------------------------------------------------
-//
-CImageDecoder* GlxtnImageDecoderFactory::NewL( RFs& aFs,
-                                                const TDesC& aFilename )
-    {
-    TRACER("CImageDecoder* GlxtnImageDecoderFactory::NewL()");
-    CImageDecoder* decoder = NULL;
-
-    // Use extended JPEG decoder
-    TRAPD( err, decoder = CExtJpegDecoder::FileNewL(
-                CExtJpegDecoder::EHwImplementation, aFs, aFilename, CImageDecoder::EOptionNone ) );
-    if ( KErrNone != err )
-        {
-        TRAP(err,decoder = CExtJpegDecoder::FileNewL(
-                CExtJpegDecoder::ESwImplementation, aFs, aFilename, CImageDecoder::EOptionNone ) );
-        if ( KErrNone != err )
-            {
-            // Not a JPEG - use standard decoder
-            decoder = CImageDecoder::FileNewL( aFs, aFilename, CImageDecoder::EOptionNone );
-            }
-        }
-
-    return decoder;
-    }
-
-// ---------------------------------------------------------------------------
-// NewL
-// ---------------------------------------------------------------------------
-//
-CImageDecoder* GlxtnImageDecoderFactory::NewL( RFs& aFs, const TDesC8& aData )
-    {
-    TRACER("CImageDecoder* GlxtnImageDecoderFactory::NewL()");
-    CImageDecoder* decoder = NULL;
-
-    TRAPD( err, decoder = CExtJpegDecoder::DataNewL(
-                        CExtJpegDecoder::EHwImplementation, aFs, aData ) );
-    if ( KErrNone != err )
-        {
-        TRAP(err, decoder = CExtJpegDecoder::DataNewL(
-                        CExtJpegDecoder::ESwImplementation, aFs, aData ) );
-        if ( KErrNone != err )
-            {
-            // Not a JPEG - use standard decoder
-            decoder = CImageDecoder::DataNewL( aFs, aData, CImageDecoder::EOptionNone );
-            }
-        }
-
-    return decoder;
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnimageutility.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,626 +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:   Utility for creating bitmaps from video files
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtnimageutility.h"
-
-#include <MIHLScaler.h>    // MIHLScaler
-#include <fbs.h>
-#include <glxtracer.h>
-#include <glxpanic.h>
-#include <glxthumbnail.h>
-#include <imageconversion.h>
-
-#include "glxtnimagedecoderfactory.h"
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnImageUtility::CGlxtnImageUtility(RFs& aFs) : iFs(aFs)
-    {
-    TRACER("CGlxtnImageUtility::CGlxtnImageUtility()");
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnImageUtility::~CGlxtnImageUtility()
-    {
-    TRACER("CGlxtnImageUtility::~CGlxtnImageUtility()");
-    delete iDecoder;
-    delete iScaler;
-    delete iBitGc;
-    }
-
-// -----------------------------------------------------------------------------
-// Cancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnImageUtility::Cancel()
-    {
-    TRACER("void CGlxtnImageUtility::Cancel()");
-	if ( iDecoder ) 
-		{
-		iDecoder->Cancel();
-		}
-    if ( iScaler && iScaler->IsBusy())
-        {
-        iScaler->CancelProcess();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// AdjustSize
-// -----------------------------------------------------------------------------
-//
-void CGlxtnImageUtility::AdjustSize(TSize& aTargetSize, const TSize& aSourceSize)
-    {
-    TRACER("void CGlxtnImageUtility::AdjustSize()");
-    if ( aTargetSize.iHeight * aSourceSize.iWidth
-            < aTargetSize.iWidth * aSourceSize.iHeight )
-        {
-        // Source has taller aspect than target so reduce target width
-        aTargetSize.iWidth =  ( ( aTargetSize.iHeight * aSourceSize.iWidth )
-                                / (  aSourceSize.iHeight ) );
-        }
-    else
-        {
-        // Source has wider aspect than target so reduce target height
-        aTargetSize.iHeight = (aTargetSize.iWidth * aSourceSize.iHeight)
-                                / aSourceSize.iWidth;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// DecodeImageL
-// -----------------------------------------------------------------------------
-//
-CFbsBitmap* CGlxtnImageUtility::DecodeImageL(TRequestStatus& aStatus,
-                const TDesC& aFileName, RArray<TSize>& aTargetSizes, TDisplayMode aMode)
-    {
-    TRACER("CFbsBitmap* CGlxtnImageUtility::DecodeImageL()");
-    delete iDecoder;
-    iDecoder = NULL;
-	iDecoder = GlxtnImageDecoderFactory::NewL( iFs, aFileName );
-
-    iOriginalSize = iDecoder->FrameInfo().iOverallSizeInPixels;
-    if ( 0 == iOriginalSize.iWidth || 0 == iOriginalSize.iHeight )
-        {
-        User::Leave(KErrCorrupt);
-        }
-    
-    TInt count = aTargetSizes.Count();
-    TSize testSize;
-    TSize targetSize;
-    for ( TInt i = 0 ; i < count ; i++ )
-        {
-        testSize = aTargetSizes[i];
-        AdjustSize(testSize, iOriginalSize);
-        if( ( testSize.iWidth > targetSize.iWidth ) || ( testSize.iHeight > targetSize.iHeight ) )
-            {
-            targetSize = testSize;
-            }
-        }
-
-    // Find max scaling factor which won't make image smaller than target size
-    TInt shift = 3;
-    while ( shift
-            && ((iOriginalSize.iWidth >> shift) < targetSize.iWidth
-                || (iOriginalSize.iHeight >> shift) < targetSize.iHeight ) )
-        {
-        shift--;
-        }
-    TInt roundUp = (1 << shift) - 1;  
-    TSize loadSize((iOriginalSize.iWidth + roundUp) >> shift,
-                    (iOriginalSize.iHeight + roundUp) >> shift);
-
-    CFbsBitmap* image = new (ELeave) CFbsBitmap;
-    CleanupStack::PushL(image);
-    User::LeaveIfError(image->Create(loadSize, aMode));
-
-    iDecoder->Convert(&aStatus, *image);
-
-    CleanupStack::Pop(image);
-    return image;
-	}
-
-// -----------------------------------------------------------------------------
-// FreeDecoder
-// -----------------------------------------------------------------------------
-//
-void CGlxtnImageUtility::FreeDecoder()
-    {
-    TRACER("void CGlxtnImageUtility::FreeDecoder()");
-    delete iDecoder;
-    iDecoder = NULL;
-    }
-
-// -----------------------------------------------------------------------------
-// OriginalSize
-// -----------------------------------------------------------------------------
-//
-const TSize& CGlxtnImageUtility::OriginalSize() const
-    {
-    TRACER("TSize& CGlxtnImageUtility::OriginalSize()");
-    return iOriginalSize;
-    }
-
-//---------------------------------------------------------------------------
-/**
-    K-Nearest neighbour scaling for EColor64K.
-    Code originally inherited from t_display.cpp by Toni Hemminki.
-    Added windowing and further optimized by Jarmo Nikula 2006-2007.
-
-    @param  aSrc       Source buffer pointer
-    @param  aSrcStride Source buffer stride in bytes
-    @param  aSrcCols   Source columns
-    @param  aSrcRows   Source rows
-    @param  aX   			 Source window top-left X-coordinate
-    @param  aY   			 Source window top-left Y-coordinate
-    @param  aW   			 Source window width
-    @param  aH   			 Source window height
-    @param  aDst       Destination buffer pointer
-    @param  aDstStride Destination buffer stride in bytes
-    @param  aDstCols   Destination columns, must be even
-    @param  aDstRows   Destination rows
-*/
-// OPTION's for MMP file:
-// Interleave assembly code with C, output can be found on txt-files on some BUILD directory:
-// 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)
-    {
-    TRACER("void CGlxtnImageUtility::FilterImageL()");
-    TSize sourceSize(aSource->SizeInPixels());
-    TSize targetSize(aTarget->SizeInPixels());
-    TInt scalePercent = ((100*sourceSize.iWidth)/targetSize.iWidth) - 100;
-
-    // no need to filter if close enough or smaller
-    if ( scalePercent >= 2 && ( aTarget->DisplayMode() == EColor64K ) )
-        {
-        FilterL(aSource, aFilteredSource, scalePercent);
-        }
-    
-    *aStatus = KRequestPending;
-    User::RequestComplete(aStatus, KErrNone);
-    }
-
-// -----------------------------------------------------------------------------
-// ScaleImageL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnImageUtility::ScaleImageL(TRequestStatus& aStatus, CFbsBitmap& aSrcBitmap,  
-										const TRect& aSrcRect,	CFbsBitmap& aDstBitmap,
-																	const TRect& aDstRect)
-	{
-    TRACER("void CGlxtnImageUtility::ScaleImageL(IHL)");
-	if (!iScaler)
-		{
-		TInt option = MIHLScaler::EOptionUseBilinearInterpolation;
-		
-		iScaler = IHLScaler::CreateL(option);	
-		}
-	User::LeaveIfError(iScaler->Scale(aStatus, aSrcBitmap, aSrcRect, aDstBitmap, aDstRect));      
-    }
-
-void CGlxtnImageUtility::ScaleImage64kL(TRequestStatus* aStatus, CFbsBitmap* aSource, CFbsBitmap* aFilteredSource, CFbsBitmap* aTarget)
-    {
-    TRACER("void CGlxtnImageUtility::ScaleImage64kL()");
-    TSize sourceSize(aSource->SizeInPixels());
-    TSize targetSize(aTarget->SizeInPixels());
-    TInt scalePercent = ((100*sourceSize.iWidth)/targetSize.iWidth) - 100;
-    TRect targetRect(targetSize);
-    TRect sourceRect(sourceSize);
-
-    CFbsBitmap* sourceImage = aFilteredSource;
-    if ( !aFilteredSource )
-        {
-        sourceImage = aSource;
-        }
-    if ( scalePercent < 2 )
-        {
-        if ( scalePercent > 0 )
-            {
-            sourceRect = targetRect;
-            }
-        sourceImage = aSource;
-        }
-    sourceImage->LockHeap();
-    TUint16* sourceAddress = (TUint16*)sourceImage->DataAddress();
-	sourceImage->UnlockHeap();
-    aTarget->LockHeap();
-    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);
-    
-/*    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);
-    }
-
-void CGlxtnImageUtility::ScaleColor64K( TUint16* aSrc, TInt aSrcStride, TInt /*aSrcCols*/, TInt /*aSrcRows*/,
-	  								TInt aX, TInt aY, TInt aW, TInt aH,
-          		      TUint16* aDst, TInt aDstStride, TInt aDstCols, TInt aDstRows )
-    {
-    TRACER("void CGlxtnImageUtility::ScaleColor64K()");
-    const TUint KPrecision = 16;
-    TUint hInc = ( aW<< KPrecision ) / aDstCols;
-    TUint vInc = ( aH << KPrecision ) / aDstRows;
-    TUint v = 0;
-    for ( TUint row = aDstRows; row > 0; --row )
-        {
-        TInt h = hInc * (aDstCols - 1);
-        TUint linestart = aSrcStride * ( aY + ( v >> KPrecision ) ) / sizeof(TUint16) + aX;
-        TUint16* src = &aSrc[ linestart ];
-        TUint32* dst = (TUint32*)aDst + aDstCols / 2;
-        TUint32 pxl2x;
-        // This loop generates 11 assembly instructions per round
-        // when using "--arm --Otime" options. Since two pixels are handled per round,
-        // it means 5.5 instructions per pixel on average.
-        do  {
-            pxl2x = src[ h >> KPrecision ]<<16;
-            h -= hInc;
-            pxl2x |= src[ h >> KPrecision ];
-            *--dst = pxl2x;
-            // Compiler eliminates CMP instruction when substraction
-            // is done inside the while () statement.
-            } while ( ( h -= hInc ) >= 0 );
-        v += vInc;
-        aDst += aDstStride / sizeof(TUint16);
-        }
-    }
-
-void CGlxtnImageUtility::FilterL( CFbsBitmap* aSource, CFbsBitmap*& aFilteredSource, TInt aFilterPercent )
-	{
-    TRACER("void CGlxtnImageUtility::FilterL()");
-	if ( !aFilteredSource )
-	    {
-        TSize imageSize = aSource->SizeInPixels();
-        aFilteredSource =  new (ELeave) CFbsBitmap;
-        aFilteredSource->Create(imageSize, aSource->DisplayMode());
-        
-        CFbsBitmapDevice *bitmapDevice = CFbsBitmapDevice::NewL(aFilteredSource);
-        if ( !iBitGc )
-            {
-            iBitGc = CFbsBitGc::NewL();
-            }
-        iBitGc->Activate(bitmapDevice);
-        iBitGc->BitBlt(TPoint(), aSource, imageSize); 
-        delete bitmapDevice;
-        }
-
-    TSize imageSize = aFilteredSource->SizeInPixels();
-    aFilteredSource->LockHeap();
-    TUint16* sourceAddress = (TUint16*)aFilteredSource->DataAddress();
-	aFilteredSource->UnlockHeap();
-	const TInt KGlxScalingNeeds4Filtering = 80; // if scaling more than 1.8 need to filter by 4
-	const TInt KGlxScalingNeeds8Filtering = 260; // if scaling more than 3.6 need to filter by 8
-	if ( KGlxScalingNeeds8Filtering < aFilterPercent )
-	    {
-       	FIRFiltering8( 
-    		sourceAddress, aFilteredSource->DataStride() / sizeof(TUint16),
-    		imageSize.iWidth, imageSize.iHeight );
-	    }
-	else if ( KGlxScalingNeeds4Filtering < aFilterPercent )
-	    {
-       	FIRFiltering4( 
-    		sourceAddress, aFilteredSource->DataStride() / sizeof(TUint16),
-    		imageSize.iWidth, imageSize.iHeight );
-	    }
-	else
-	    {
-       	FIRFiltering( 
-    		sourceAddress, aFilteredSource->DataStride() / sizeof(TUint16),
-    		imageSize.iWidth, imageSize.iHeight );
-	    }
-	}
-
-#define rmask565	0xf800
-#define gmask565	0x07e0
-#define bmask565	0x001f
-#define rbmask565	(rmask565|bmask565)
-#define rm565( rgb ) 		((rgb) & rmask565)
-#define gm565( rgb ) 		((rgb) & gmask565)
-#define bm565( rgb ) 		((rgb) & bmask565)
-#define rbm565( rgb ) 		((rgb) & rbmask565)
-#define r565( rgb ) 		((rgb)>>11)
-#define g565( rgb ) 		(gm565(rgb)>>5)
-#define b565( rgb ) 		(bm565(rgb))
-#define rgb565( r, g, b )	(((r)<<11)|((g)<<5)|(b))
-
-#define mask32gbr655 0x07e0f81f
-
-// 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!
-
-void CGlxtnImageUtility::FIRFiltering(
-		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows )
-    {
-    TRACER("void CGlxtnImageUtility::FIRFiltering( )");
-    TUint firFifo[ KFIRLen ];
-    TUint i; // index for fifo in&out
-    TUint16 *p;
-    TUint32 px;
-    TInt row, col;
-    TUint FIRsum;
-    // Horizontal scan.
-    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!
-        FIRsum = ((KFIRLen / 2)<<21) | ((KFIRLen / 2)<<11) | (KFIRLen / 2); // for correct rounding
-        i = 0;
-        TUint32 mask1 = mask32gbr655;
-	    for ( col = 0; col < KFIRLen; col++ )
-	    	{
-	    	px = p[ col ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex( i );
-	    	}
-        TUint32 ave;
-	    for ( ; col < aDstCols; col++ )
-	    	{
-	    	ave = ( FIRsum / KFIRLen ) & mask1;
-	    	p[ col - KFIRCen ] = TUint16( ave | (ave>>16) );
-	        FIRsum -= firFifo[ i ];
-	    	px = p[ col ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	        incFIRIndex( i );
-            }
-        p += aDstStridep;
-        }
-    // Vertical scan.
-    for ( col = aDstCols - 1; col >= 0; col-- )
-        {
-        // Fill in the FIR first.
-        FIRsum = ((KFIRLen / 2)<<21) | ((KFIRLen / 2)<<11) | (KFIRLen / 2); // for correct rounding
-        TUint32 mask1 = mask32gbr655;
-        i = 0;
-	    p = aDst + col;
-	    for ( row = 0; row < KFIRLen; row++ )
-	    	{
-	    	px = *p;
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex( i );
-	    	p += aDstStridep;
-            }
-        TUint32 ave;
-    	p -= aDstStridep * KFIRCen;
-	    for ( ; row < aDstRows; row++ )
-	    	{
-	    	ave = ( FIRsum / KFIRLen ) & mask1;
-	    	p[0] = TUint16( ave | (ave>>16) );
-	        FIRsum -= firFifo[ i ];
-	    	px = p[ aDstStridep * KFIRCen ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex( i );
-	        p += aDstStridep;
-            }
-        }
-    }
-//
-// 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!
-
-void CGlxtnImageUtility::FIRFiltering4(
-		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows )
-    {
-    TRACER("void CGlxtnImageUtility::FIRFiltering4()");
-    TUint firFifo[ KFIRLen4 ];
-    TUint i; // index for fifo in&out
-    TUint16 *p;
-    TUint32 px;
-    TInt row, col;
-    TUint FIRsum;
-    // Horizontal scan.
-    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!
-        FIRsum = ((KFIRLen4 / 2)<<21) | ((KFIRLen4 / 2)<<11) | (KFIRLen4 / 2); // for correct rounding
-        i = 0;
-        TUint32 mask1 = mask32gbr655;
-	    for ( col = 0; col < KFIRLen4; col++ )
-	    	{
-	    	px = p[ col ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex4( i );
-	    	}
-        TUint32 ave;
-	    for ( ; col < aDstCols; col++ )
-	    	{
-	    	ave = ( FIRsum / KFIRLen4 ) & mask1;
-	    	p[ col - KFIRCen4 ] = TUint16( ave | (ave>>16) );
-	        FIRsum -= firFifo[ i ];
-	    	px = p[ col ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	        incFIRIndex4( i );
-            }
-        p += aDstStridep;
-        }
-    // Vertical scan.
-    for ( col = aDstCols - 1; col >= 0; col-- )
-        {
-        // Fill in the FIR first.
-        FIRsum = ((KFIRLen4 / 2)<<21) | ((KFIRLen4 / 2)<<11) | (KFIRLen4 / 2); // for correct rounding
-        TUint32 mask1 = mask32gbr655;
-        i = 0;
-	    p = aDst + col;
-	    for ( row = 0; row < KFIRLen4; row++ )
-	    	{
-	    	px = *p;
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex4( i );
-	    	p += aDstStridep;
-            }
-        TUint32 ave;
-    	p -= aDstStridep * KFIRCen4;
-	    for ( ; row < aDstRows; row++ )
-	    	{
-	    	ave = ( FIRsum / KFIRLen4 ) & mask1;
-	    	p[0] = TUint16( ave | (ave>>16) );
-	        FIRsum -= firFifo[ i ];
-	    	px = p[ aDstStridep * KFIRCen4 ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex4( i );
-	        p += aDstStridep;
-            }
-        }
-    }
-
-// 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!
-
-void CGlxtnImageUtility::FIRFiltering8(
-		TUint16* aDst, TUint aDstStridep, TUint aDstCols, TUint aDstRows )
-    {
-    TRACER("void CGlxtnImageUtility::FIRFiltering8()");
-    TUint firFifo[ KFIRLen8 ];
-    TUint i; // index for fifo in&out
-    TUint16 *p;
-    TUint32 px;
-    TInt row, col;
-    TUint FIRsum;
-    // Horizontal scan.
-    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!
-        FIRsum = ((KFIRLen8 / 2)<<21) | ((KFIRLen8 / 2)<<11) | (KFIRLen8 / 2); // for correct rounding
-        i = 0;
-        TUint32 mask1 = mask32gbr655;
-	    for ( col = 0; col < KFIRLen8; col++ )
-	    	{
-	    	px = p[ col ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex8( i );
-	    	}
-        TUint32 ave;
-	    for ( ; col < aDstCols; col++ )
-	    	{
-	    	ave = ( FIRsum / KFIRLen8 ) & mask1;
-	    	p[ col - KFIRCen8 ] = TUint16( ave | (ave>>16) );
-	        FIRsum -= firFifo[ i ];
-	    	px = p[ col ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	        incFIRIndex8( i );
-            }
-        p += aDstStridep;
-        }
-    // Vertical scan.
-    for ( col = aDstCols - 1; col >= 0; col-- )
-        {
-        // Fill in the FIR first.
-        FIRsum = ((KFIRLen8 / 2)<<21) | ((KFIRLen8 / 2)<<11) | (KFIRLen8 / 2); // for correct rounding
-        TUint32 mask1 = mask32gbr655;
-        i = 0;
-	    p = aDst + col;
-	    for ( row = 0; row < KFIRLen8; row++ )
-	    	{
-	    	px = *p;
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex8( i );
-	    	p += aDstStridep;
-            }
-        TUint32 ave;
-    	p -= aDstStridep * KFIRCen8;
-	    for ( ; row < aDstRows; row++ )
-	    	{
-	    	ave = ( FIRsum / KFIRLen8 ) & mask1;
-	    	p[0] = TUint16( ave | (ave>>16) );
-	        FIRsum -= firFifo[ i ];
-	    	px = p[ aDstStridep * KFIRCen8 ];
-            px = ((px<<16) | px) & mask1;
-	    	firFifo[ i ] = px;
-	        FIRsum += px;
-	    	incFIRIndex8( i );
-	        p += aDstStridep;
-            }
-        }
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnloadthumbnailtask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +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 tasks which load thumbnails
-*
-*/
-
-
-
-#include "glxtnloadthumbnailtask.h"
-
-#include <glxassert.h>
-#include <glxtracer.h>
-#include <glxthumbnail.h>
-#include <imageconversion.h>
-#include <s32mem.h>
-
-#include "glxtnfileinfo.h"
-#include "glxtnfileutility.h"
-#include "glxtnimagedecoderfactory.h"
-#include "glxtnthumbnailrequest.h"
-#include "mglxtnstorage.h"
-
-
-
-// ---------------------------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------------------------
-//
-CGlxtnLoadThumbnailTask::CGlxtnLoadThumbnailTask( const TGlxtnTaskId& aId,
-                                    const TGlxThumbnailRequest& aRequestInfo,
-                                    CGlxtnFileUtility& aFileUtility,
-                                    MGlxtnThumbnailCreatorClient& aClient) :
-    CGlxtnClientTask( aId, aRequestInfo.iId, aClient ),
-    iFileUtility( aFileUtility ), iRequestedSize( aRequestInfo.iSizeClass ),
-    iDrmAllowed( aRequestInfo.iDrmAllowed )
-    {
-    TRACER("CGlxtnLoadThumbnailTask::CGlxtnLoadThumbnailTask()");
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CGlxtnLoadThumbnailTask::~CGlxtnLoadThumbnailTask() 
-    {
-    TRACER("CGlxtnLoadThumbnailTask::~CGlxtnLoadThumbnailTask()");
-    delete iDecoder;
-    delete iThumbnail;
-    delete iThumbData;
-    delete iInfo;
-    }
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnLoadThumbnailTask::ConstructL( TInt aBitmapHandle )
-    {
-    TRACER("void CGlxtnLoadThumbnailTask::ConstructL()");
-    // Duplicate the client's bitmap
-    iThumbnail = new (ELeave) CFbsBitmap();
-    User::LeaveIfError( iThumbnail->Duplicate( aBitmapHandle ) );
-    }
-
-// ---------------------------------------------------------------------------
-// DoCancel
-// ---------------------------------------------------------------------------
-//
-void CGlxtnLoadThumbnailTask::DoCancel()
-    {
-    TRACER("void CGlxtnLoadThumbnailTask::DoCancel()");
-    if ( iDecoder )
-        {
-        iDecoder->Cancel();
-        }
-
-    Storage()->StorageCancel();
-    }
-
-// ---------------------------------------------------------------------------
-// LoadThumbnailL
-// ---------------------------------------------------------------------------
-//
-TBool CGlxtnLoadThumbnailTask::LoadThumbnailL( TRequestStatus& aStatus )
-    {
-    TRACER("TBool CGlxtnLoadThumbnailTask::LoadThumbnailL()");
-    GLX_ASSERT_DEBUG( iInfo, Panic( EGlxPanicNullPointer ), "No file info" );
-
-    if ( Storage() && iFileUtility.IsPersistentSize( iRequestedSize ) )
-        {
-        Storage()->LoadThumbnailDataL( iThumbData, iFormat, ItemId(),
-                                    *iInfo, iRequestedSize, &aStatus );
-        iState = EStateLoading;
-
-        return ETrue;
-        }
-
-    return EFalse;
-    }
-
-// ---------------------------------------------------------------------------
-// HandleLoadedThumbnailL
-// ---------------------------------------------------------------------------
-//
-TBool CGlxtnLoadThumbnailTask::HandleLoadedThumbnailL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnLoadThumbnailTask::HandleLoadedThumbnailL()");
-	TBool active = EFalse;
-
-    User::LeaveIfNull( iThumbData );
-
-    switch ( iFormat )
-        {
-        case EGlxIDF_Bitmap:
-            {
-            CFbsBitmap* bitmap = new (ELeave) CFbsBitmap;
-            CleanupStack::PushL( bitmap );
-
-            RDesReadStream stream( *iThumbData );
-            CleanupClosePushL( stream );
-            stream >> *bitmap;
-            CleanupStack::PopAndDestroy( &stream );
-
-            User::LeaveIfError( iThumbnail->Resize( bitmap->SizeInPixels() ) );
-
-            CFbsBitmapDevice* device = CFbsBitmapDevice::NewL( iThumbnail );
-            CleanupStack::PushL( device );
-            CFbsBitGc* context = NULL;
-            User::LeaveIfError( device->CreateContext( context ) );
-            CleanupStack::PushL( context );
-
-            context->BitBlt( TPoint(), bitmap );
-
-            CleanupStack::PopAndDestroy( context ); 
-            CleanupStack::PopAndDestroy( device );
-
-            CleanupStack::PopAndDestroy( bitmap );
-            }
-            break;
-
-    	case EGlxIDF_JPEG:
-            iDecoder = GlxtnImageDecoderFactory::NewL(
-                                    iFileUtility.FsSession(), *iThumbData );
-            DecodeThumbnailL( aStatus, EFalse );
-            active = ETrue;
-            break;
-
-        default:
-            User::Leave( KErrNotSupported );
-            break;
-        }
-
-    return active;
-    }
-
-// ---------------------------------------------------------------------------
-// DecodeThumbnailL
-// ---------------------------------------------------------------------------
-//
-void CGlxtnLoadThumbnailTask::DecodeThumbnailL( TRequestStatus& aStatus,
-                                                TBool aScaleBitmap )
-    {
-    TRACER("CGlxtnLoadThumbnailTask::DecodeThumbnailL()");
-    GLX_ASSERT_DEBUG( iDecoder, Panic( EGlxPanicNullPointer ), "No decoder" );
-
-    // Resize empty bitmap to required size
-    TSize thumbSize( iDecoder->FrameInfo().iOverallSizeInPixels );
-    if ( aScaleBitmap )
-        {
-        // Find scaling factor which makes the image closest to requested size
-        // Use biggest size less than 150% of the requested size
-        TInt maxWidth = iRequestedSize.iWidth * 3 / 2;
-        TInt maxHeight = iRequestedSize.iHeight * 3 / 2;
-        TInt shift = 0;
-        while ( shift < 3
-                && ((thumbSize.iWidth >> shift) > maxWidth
-                    || (thumbSize.iHeight >> shift) > maxHeight) )
-            {
-            shift++;
-            }
-        TInt fudge = (1 << shift) - 1;  // Used to "round up" the scaled values
-        thumbSize.SetSize((thumbSize.iWidth + fudge) >> shift,
-                        (thumbSize.iHeight + fudge) >> shift);
-        }
-    User::LeaveIfError( iThumbnail->Resize(thumbSize) );
-
-    iDecoder->Convert( &aStatus, *iThumbnail );
-    iState = EStateDecodingThumbnail;
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnquickthumbnailtask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,350 +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:   Classes for thumbnail-related tasks.
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtnquickthumbnailtask.h"
-
-#include <ExifRead.h>
-#include <glxassert.h>
-#include <glxtracer.h>
-#include <imageconversion.h>
-
-#include "glxtnfileinfo.h"
-#include "glxtnfileutility.h"
-#include "glxtnimagedecoderfactory.h"
-#include "glxtnthumbnailrequest.h"
-#include "glxtnvideoutility.h"
-#include "mglxtnthumbnailcreatorclient.h"
-
-
-// All EXIF data is within the first KGlxMaxExifSize bytes of the file
-const TInt KGlxMaxExifSize = 0x10000;
-
-// -----------------------------------------------------------------------------
-// NewL
-// -----------------------------------------------------------------------------
-//
-CGlxtnQuickThumbnailTask* CGlxtnQuickThumbnailTask::NewL(
-        const TGlxThumbnailRequest& aRequestInfo,
-        CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient)
-    {
-    TRACER("CGlxtnQuickThumbnailTask::NewL()");
-    CGlxtnQuickThumbnailTask* task = new (ELeave) CGlxtnQuickThumbnailTask(
-                                        aRequestInfo, aFileUtility, aClient);
-    CleanupStack::PushL(task);
-    task->ConstructL(aRequestInfo.iBitmapHandle);
-    CleanupStack::Pop( task );
-    return task;
-    }
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnQuickThumbnailTask::CGlxtnQuickThumbnailTask(
-                                    const TGlxThumbnailRequest& aRequestInfo,
-                                    CGlxtnFileUtility& aFileUtility,
-                                    MGlxtnThumbnailCreatorClient& aClient ) :
-    CGlxtnLoadThumbnailTask( KGlxtnTaskIdQuickThumbnail,
-                            aRequestInfo, aFileUtility, aClient ),
-    iQuality( EGlxThumbnailQualityLow )
-    {
-    TRACER("CGlxtnQuickThumbnailTask::CGlxtnQuickThumbnailTask()");
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnQuickThumbnailTask::~CGlxtnQuickThumbnailTask() 
-    {
-    TRACER("CGlxtnQuickThumbnailTask::~CGlxtnQuickThumbnailTask()");
-    delete iUtility;
-    delete iVideoFrame;
-    }
-
-// -----------------------------------------------------------------------------
-// DoStartL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnQuickThumbnailTask::DoStartL(TRequestStatus& aStatus)
-    {
-    TRACER("TBool CGlxtnQuickThumbnailTask::DoStartL()");
-    iInfo = new (ELeave) CGlxtnFileInfo;
-	Client().FetchFileInfoL(iInfo, ItemId(), &aStatus);
-    iState = EStateFetchingUri;
-
-    return ETrue;
-    } 
-
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnQuickThumbnailTask::DoCancel() 
-    {
-    TRACER("void CGlxtnQuickThumbnailTask::DoCancel()");
-    CGlxtnLoadThumbnailTask::DoCancel();
-
-    if ( EStateFetchingUri == iState )
-        {
-        Client().CancelFetchUri( ItemId() );
-        }
-
-    if ( iUtility )
-        {
-        iUtility->Cancel();
-        }
-
-    iFileUtility.ClearBadFileMarker();
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnQuickThumbnailTask::DoRunL(TRequestStatus& aStatus) 
-    {
-    TRACER("TBool CGlxtnQuickThumbnailTask::DoRunL()");
-    TInt error = aStatus.Int();
-	TBool active = EFalse;
-
-    if ( KErrNone == error )
-        {
-        switch ( iState )
-            {
-            case EStateFetchingUri:
-                User::LeaveIfNull(iInfo);
-                iBadFileMarkerNotNeededFlag = ETrue;
-
-                TBool protectedFile;
-                iInfo->IdentifyFileL(iVideo, protectedFile);
-                
-                // leave if file is DRM protected and client has no DRM 
-                // capablity
-                if ( protectedFile && !iDrmAllowed )
-                    {
-                    User::Leave(KErrAccessDenied);
-                    }
-
-                if ( !LoadThumbnailL( aStatus ) )
-                    {
-                    iBadFileMarkerNotNeededFlag = EFalse;
-                    iFileUtility.CheckBadFileListL( iInfo->FilePath() );
-                    QuickDecodeL(aStatus);
-                    }
-                active = ETrue;
-                break;
-
-            case EStateLoading:
-                iQuality = EGlxThumbnailQualityHigh;
-                active = HandleLoadedThumbnailL(aStatus);
-                break;
-
-            case EStateDecodingThumbnail:
-                // Nothing to do
-                break;
-
-            case EStateDecodingImage:
-                QuickScaleL();
-                break;
-
-            default:
-                GLX_ASSERT_ALWAYS( EFalse, Panic( EGlxPanicIllegalState ),
-                                "CGlxtnQuickThumbnailTask: Illegal state" );
-                break;
-            }
-        }
-    else
-        {
-        if ( EStateLoading == iState )
-            {
-            // Loading failed - generate low quality thumbnail instead
-            iBadFileMarkerNotNeededFlag = EFalse;
-            iFileUtility.CheckBadFileListL( iInfo->FilePath() );
-            QuickDecodeL(aStatus);
-            active = ETrue;
-            }
-        }
-
-    if ( !active )
-        {
-        if ( !iBadFileMarkerNotNeededFlag )
-            {
-            iFileUtility.ClearBadFileMarker();
-            }
-        Client().ThumbnailFetchComplete(ItemId(), iQuality, error);
-        }
-       
-    return active; 
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunError
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnQuickThumbnailTask::DoRunError(TInt aError)
-    {
-    TRACER("TBool CGlxtnQuickThumbnailTask::DoRunError(TInt aError)");
-    iFileUtility.ClearBadFileMarker();
-    Client().ThumbnailFetchComplete(ItemId(), iQuality, aError);
-
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// QuickDecodeL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnQuickThumbnailTask::QuickDecodeL(TRequestStatus& aStatus)
-    {
-    TRACER("void CGlxtnQuickThumbnailTask::QuickDecodeL(TRequestStatus& aStatus)");
-    iQuality = EGlxThumbnailQualityLow;
-
-    if ( iVideo )
-        {
-        RArray<TSize> targetSizes;
-        CleanupClosePushL(targetSizes);
-        targetSizes.AppendL( TSize(iRequestedSize) );
-        iUtility = new (ELeave) CGlxtnVideoUtility;
-        iUtility->GetVideoFrameL(&aStatus, iVideoFrame, iInfo->FilePath(), targetSizes, iThumbnail->DisplayMode() );
-        iState = EStateDecodingImage;
-        CleanupStack::PopAndDestroy(&targetSizes);
-        }
-    else
-        {
-        ReadThumbnailL(aStatus);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// ReadThumbnailL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnQuickThumbnailTask::ReadThumbnailL(TRequestStatus& aStatus)
-    {
-    TRACER("void CGlxtnQuickThumbnailTask::ReadThumbnailL(TRequestStatus& aStatus)");
-    TBool scaleBitmap = EFalse;
-
-    TRAPD(error, ReadExifThumbnailL());
-    if ( KErrNotFound == error || KErrCorrupt == error
-        || KErrNotSupported == error )
-        {
-        // Use CImageDecoder to get the EXIF thumbnail instead
-        iDecoder = GlxtnImageDecoderFactory::NewL(
-                                iFileUtility.FsSession(), iInfo->FilePath() );
-
-        TRAPD( error2, iDecoder->SetImageTypeL(
-                                    CImageDecoder::EImageTypeThumbnail ) );
-        if ( KErrNotFound == error2 )
-            {
-            // No EXIF thumbnail - load whole image and scale quickly
-            scaleBitmap = ETrue;
-            }
-        else
-            {
-            User::LeaveIfError( error2 );
-            }
-        }
-    else
-        {
-        User::LeaveIfError(error);
-        iDecoder = GlxtnImageDecoderFactory::NewL(
-                                    iFileUtility.FsSession(), *iThumbData );
-        }
-
-    DecodeThumbnailL(aStatus, scaleBitmap);
-    }
-
-// -----------------------------------------------------------------------------
-// ReadExifThumbnailL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnQuickThumbnailTask::ReadExifThumbnailL()
-    {
-    TRACER("void CGlxtnQuickThumbnailTask::ReadExifThumbnailL()");
-    __ASSERT_ALWAYS(iInfo, Panic(EGlxPanicNullPointer));
-
-    RFile file;
-    CleanupClosePushL(file);
-    User::LeaveIfError(file.Open(iFileUtility.FsSession(),
-                                    iInfo->FilePath(), EFileRead));
-    TInt size;
-    User::LeaveIfError(file.Size(size));
-    if ( KGlxMaxExifSize < size )
-        {
-        size = KGlxMaxExifSize;
-        }
-
-    HBufC8* exifData = HBufC8::NewLC(size);
-    TPtr8 ptr(exifData->Des());
-    User::LeaveIfError(file.Read(ptr));
-
-    CExifRead* exifReader = CExifRead::NewL(*exifData, CExifRead::ENoJpeg);
-    CleanupStack::PushL(exifReader);
-    delete iThumbData;
-    iThumbData = NULL;
-    iThumbData = exifReader->GetThumbnailL();
-
-    CleanupStack::PopAndDestroy(exifReader);
-    CleanupStack::PopAndDestroy(exifData);
-    CleanupStack::PopAndDestroy(&file);
-    }
-
-// -----------------------------------------------------------------------------
-// QuickScaleL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnQuickThumbnailTask::QuickScaleL()
-    {
-    TRACER("void CGlxtnQuickThumbnailTask::QuickScaleL()");
-    User::LeaveIfNull(iVideoFrame);
-
-    TSize frameSize(iVideoFrame->SizeInPixels());
-    TSize thumbSize(iRequestedSize);
-
-    // Reduce target thumbSize to same aspect ratio as source image
-    if ( thumbSize.iHeight * frameSize.iWidth < thumbSize.iWidth * frameSize.iHeight )
-        {
-        // Source has taller aspect than target so reduce target width
-        thumbSize.iWidth = (thumbSize.iHeight * frameSize.iWidth) / frameSize.iHeight;
-        }
-    else
-        {
-        // Source has wider aspect than target so reduce target height
-        thumbSize.iHeight = (thumbSize.iWidth * frameSize.iHeight) / frameSize.iWidth;
-        }
-
-    // Resize empty bitmap to required size
-    User::LeaveIfError( iThumbnail->Resize( thumbSize ) );
-
-    CFbsBitmapDevice* device = CFbsBitmapDevice::NewL( iThumbnail );
-    CleanupStack::PushL(device);
-    CFbsBitGc* context = NULL;
-    User::LeaveIfError(device->CreateContext(context));
-    CleanupStack::PushL(context);
-
-    context->DrawBitmap(TRect(thumbSize), iVideoFrame);
-
-    CleanupStack::PopAndDestroy(context); 
-    CleanupStack::PopAndDestroy(device);
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnsavethumbnailtask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +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:   Thumbnail save task implementation
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-// INCLUDE FILES
-
-#include "glxtnsavethumbnailtask.h"
-
-#include <glxassert.h>
-#include <glxtracer.h>
-#include <glxthumbnail.h>
-#include <imageconversion.h>
-#include <s32mem.h>
-
-#include "glxtnfileinfo.h"
-#include "mglxtnstorage.h"
-
-// Minimum size of thumbnail to be saved as JPEG rather than bitmap
-const TInt KGlxMinPixelsForJpeg = 30000;
-
-const TInt KGlxBitmapBufferGranularity = 1024;
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CGlxtnSaveThumbnailTask::CGlxtnSaveThumbnailTask
-// C++ default constructor can NOT contain any code, that might leave.
-// -----------------------------------------------------------------------------
-//
-CGlxtnSaveThumbnailTask::CGlxtnSaveThumbnailTask(const TGlxMediaId& aItemId,
-                    const TSize& aSize, MGlxtnThumbnailStorage* aStorage) :
-    CGlxtnTask(KGlxtnTaskIdSaveThumbnail, aItemId, aStorage), iSize(aSize)
-    {
-    TRACER("CGlxtnSaveThumbnailTask::CGlxtnSaveThumbnailTask()");
-    GLX_ASSERT_ALWAYS( aStorage, Panic( EGlxPanicIllegalArgument ),
-                        "CGlxtnSaveThumbnailTask created without storage" );
-
-    // Save task is always low priority
-    SetPriority(EPriorityLow);
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnSaveThumbnailTask::CGlxtnSaveThumbnailTask
-// Constructor for derived classes.
-// -----------------------------------------------------------------------------
-//
-CGlxtnSaveThumbnailTask::CGlxtnSaveThumbnailTask(const TGlxtnTaskId& aId,
-                const TGlxMediaId& aItemId, MGlxtnThumbnailStorage* aStorage) :
-    CGlxtnTask(aId, aItemId, aStorage)
-    {
-    TRACER("CGlxtnSaveThumbnailTask::CGlxtnSaveThumbnailTask()");
-    GLX_ASSERT_ALWAYS( aStorage, Panic( EGlxPanicIllegalArgument ),
-                        "CGlxtnSaveThumbnailTask created without storage" );
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnSaveThumbnailTask::ConstructL
-// Symbian 2nd phase constructor can leave.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnSaveThumbnailTask::ConstructL(CGlxtnFileInfo* aFileInfo,
-                                            CFbsBitmap* aThumbnail)
-    {
-    TRACER("void CGlxtnSaveThumbnailTask::ConstructL()");
-    // Shouldn't create save task if client doesn't use storage
-    if ( !(Storage() && aFileInfo && aThumbnail) )
-        {
-        User::Leave(KErrArgument);
-        }
-
-    // Must not leave after taking ownership of these
-    iFileInfo = aFileInfo;
-    iThumbnail = aThumbnail;
-    }
-
-// -----------------------------------------------------------------------------
-// CGlxtnSaveThumbnailTask::NewL
-// Two-phased constructor.
-// -----------------------------------------------------------------------------
-//
-CGlxtnSaveThumbnailTask* CGlxtnSaveThumbnailTask::NewL(
-                    const TGlxMediaId& aItemId,
-                    CGlxtnFileInfo* aFileInfo, const TSize& aSize,
-                    CFbsBitmap* aThumbnail, MGlxtnThumbnailStorage* aStorage)
-    {
-    TRACER("CGlxtnSaveThumbnailTask* CGlxtnSaveThumbnailTask::NewL()");
-    CGlxtnSaveThumbnailTask* self = new (ELeave) CGlxtnSaveThumbnailTask(
-                                                    aItemId, aSize, aStorage);
-    CleanupStack::PushL(self);
-    self->ConstructL(aFileInfo, aThumbnail);
-    CleanupStack::Pop( self );
-
-    return self;
-    }
-
-// Destructor
-CGlxtnSaveThumbnailTask::~CGlxtnSaveThumbnailTask()
-    {
-    TRACER("Destructor CGlxtnSaveThumbnailTask::~CGlxtnSaveThumbnailTask()");
-    delete iEncoder;
-    delete iThumbnail;
-    delete iData;
-    delete iFileInfo;
-    }
-
-// -----------------------------------------------------------------------------
-// DoStartL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnSaveThumbnailTask::DoStartL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnSaveThumbnailTask::DoStartL()");
-    EncodeThumbnailL(aStatus);
-
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnSaveThumbnailTask::DoCancel()
-    {
-    TRACER("CGlxtnSaveThumbnailTask::DoCancel()");
-    if ( iEncoder )
-        {
-        iEncoder->Cancel();
-        }
-
-    Storage()->StorageCancel();
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnSaveThumbnailTask::DoRunL(TRequestStatus& aStatus)
-    {
-    TRACER("TBool CGlxtnSaveThumbnailTask::DoRunL()");
-    if ( KErrNone == aStatus.Int() && EStateEncoding == iState )
-        {
-        SaveThumbnailL(aStatus);
-        return ETrue;
-        }
-
-    return EFalse;  // Task is complete
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunError
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnSaveThumbnailTask::DoRunError(TInt /*aError*/)
-    {
-    TRACER("CGlxtnSaveThumbnailTask::DoRunError()");
-    delete iEncoder;
-    iEncoder = NULL;
-
-    return EFalse;  // Task is complete
-    }
-
-// -----------------------------------------------------------------------------
-// EncodeThumbnailL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnSaveThumbnailTask::EncodeThumbnailL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnSaveThumbnailTask::EncodeThumbnailL()");
-    TSize size(iThumbnail->SizeInPixels());
-    User::LeaveIfError(iThumbnail->SetDisplayMode(KGlxThumbnailDisplayMode));
-
-    delete iData;
-    iData = NULL;
-
-    if ( KGlxMinPixelsForJpeg <= size.iWidth * size.iHeight )
-        {
-        // Encode as JPEG
-        iFormat = EGlxIDF_JPEG;
-        delete iEncoder;
-        iEncoder = NULL;
-        iEncoder = CImageEncoder::DataNewL(iData, CImageEncoder::EOptionNone,
-                                            KImageTypeJPGUid);
-        iState = EStateEncoding;
-        iEncoder->Convert(&aStatus, *iThumbnail);
-        }
-    else
-        {
-        // Externalise bitmap into buffer
-        iFormat = EGlxIDF_Bitmap;
-        CBufBase* buffer = CBufSeg::NewL(KGlxBitmapBufferGranularity);
-        CleanupStack::PushL(buffer);
-
-        RBufWriteStream stream(*buffer);
-        CleanupClosePushL(stream);
-        stream << *iThumbnail;
-        stream.CommitL();
-        CleanupStack::PopAndDestroy(&stream);
-
-        TInt length = buffer->Size();
-        iData = HBufC8::NewL(length);
-        TPtr8 ptr(iData->Des());
-        buffer->Read(0, ptr, length);
-
-        CleanupStack::PopAndDestroy(buffer);
-
-        SaveThumbnailL(aStatus);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// SaveThumbnailL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnSaveThumbnailTask::SaveThumbnailL(TRequestStatus& aStatus)
-    {
-    TRACER("CGlxtnSaveThumbnailTask::SaveThumbnailL()");
-    delete iEncoder;
-    iEncoder = NULL;
-
-    iState = EStateSaving;
-    Storage()->SaveThumbnailDataL(*iData, iFormat, ItemId(),
-                                    *iFileInfo, iSize, &aStatus);
-    }
-
-//  End of File  
--- a/engine/collectionframework/thumbnailcreator/src/glxtntask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,151 +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 classes for multi-purpuse tasks
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-
-#include "glxtntask.h"
-
-#include <glxtracer.h>
-
-#include "mglxtnthumbnailcreatorclient.h"
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnTask::CGlxtnTask(const TGlxtnTaskId& aId, const TGlxMediaId& aItemId,
-                        MGlxtnThumbnailStorage* aStorage)
-		: iState(EStarting), iId(aId), iItemId(aItemId), iStorage(aStorage)
-    {
-    TRACER("CGlxtnTask::CGlxtnTask()");
-    iPriority = CActive::EPriorityStandard;
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnTask::~CGlxtnTask()
-    {
-    TRACER("CGlxtnTask::~CGlxtnTask()");
-    }
-
-// -----------------------------------------------------------------------------
-// SetManager
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTask::SetManager(CGlxtnTaskManager* /*aManager*/)
-    {
-    TRACER("CGlxtnTask::SetManager()");
-    // No implementation - can be overridden by subclasses
-    }
-
-// -----------------------------------------------------------------------------
-// StartL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTask::StartL(TRequestStatus& aStatus)
-	{
-    TRACER("CGlxtnTask::StartL()");
-	__ASSERT_DEBUG(iState == EIdle || iState == EStarting, Panic(EGlxPanicIllegalState));
-	
-	iState = EStarting;
-	
-	TBool active = DoStartL(aStatus);
-	
-	if (active) 
-		{
-		iState = ERunning;
-		}
-	else 
-		{
-		iState = EComplete; // Well, that was quick
-		}
-	}
-
-// -----------------------------------------------------------------------------
-// Cancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTask::Cancel()
-    {
-    TRACER("CGlxtnTask::Cancel()");
-    if ( ERunning == iState )
-        {
-        DoCancel();
-        }
-
-    iState = ECanceled;
-    }
-	
-// -----------------------------------------------------------------------------
-// RunL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTask::RunL(TRequestStatus& aStatus) 
-	{
-    TRACER("void CGlxtnTask::RunL()");
-	__ASSERT_DEBUG(iState == ERunning, Panic(EGlxPanicIllegalState));
-	
-	TBool active = DoRunL(aStatus);
-	
-	if (!active) 
-		{
-		iState = EComplete; // The task is done
-		}
-	}
-
-// -----------------------------------------------------------------------------
-// RunError
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTask::RunError(TInt aError)
-    {
-    TRACER("void CGlxtnTask::RunError()");
-    if ( !DoRunError(aError) ) 
-        {
-        iState = EComplete; // The task is done
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// SelfComplete
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTask::SelfComplete(TRequestStatus& aStatus) 
-	{
-    TRACER("CGlxtnTask::SelfComplete()");
-    aStatus = KRequestPending;
-    TRequestStatus* status = &aStatus;
-    User::RequestComplete(status, KErrNone);
-	}
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnClientTask::CGlxtnClientTask(const TGlxtnTaskId& aId,
-        const TGlxMediaId& aItemId, MGlxtnThumbnailCreatorClient& aClient) :
-    CGlxtnTask(aId, aItemId, aClient.ThumbnailStorage()), iClient(aClient)
-    {
-    TRACER("CGlxtnClientTask::CGlxtnClientTask()");
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtntaskmanager.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,345 +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:   Task manager for multiple tasks. Allows asynchronosity and 
-*                tracking/callback for long running tasks.
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtntaskmanager.h"
-
-#include <glxtracer.h>
-
-#include "glxtnbackgroundgenerationtask.h"
-#include "glxtntask.h"
-
-const TInt KGlxTMMaxTasksToRunInOneRound = 4;
-// -----------------------------------------------------------------------------
-// Static Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnTaskManager* CGlxtnTaskManager::NewL()
-    {
-    TRACER("CGlxtnTaskManager::NewL()");
-	CGlxtnTaskManager* self = new (ELeave) CGlxtnTaskManager();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-    }
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnTaskManager::CGlxtnTaskManager() 
-		: CActive(EPriorityStandard)
-    {
-    TRACER("CGlxtnTaskManager::CGlxtnTaskManager()");
-    }
-     
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTaskManager::ConstructL()
-    {
-    TRACER("void CGlxtnTaskManager::ConstructL()");
-    CActiveScheduler::Add(this);
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnTaskManager::~CGlxtnTaskManager()
-    {
-    TRACER("CGlxtnTaskManager::~CGlxtnTaskManager()");
-    Cancel(); 
-    iTasks.ResetAndDestroy();
-    }
-
-// -----------------------------------------------------------------------------
-// Task by id
-// -----------------------------------------------------------------------------
-//
-CGlxtnTask* CGlxtnTaskManager::Task(const TGlxtnTaskId& aId) const
-	{
-    TRACER("CGlxtnTaskManager::Task(const TGlxtnTaskId& aId)");
-	TInt count = iTasks.Count();
-	for (TInt i = 0; i < count; i++) 
-		{
-		CGlxtnTask* task = iTasks[i];
-		if (task->Id() == aId) 
-			{
-			return task;
-			}
-		}
-		
-	// Not found
-	return NULL;
-	}
-
-// -----------------------------------------------------------------------------
-// AddTaskL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTaskManager::AddTaskL(CGlxtnTask* aTask, TExecutionOrder aExecutionOrder)
-    {
-    TRACER("CGlxtnTaskManager::AddTaskL()");
-    __ASSERT_DEBUG(aTask, Panic(EGlxPanicNullPointer));
-	__ASSERT_DEBUG(iTasks.Find(aTask) == KErrNotFound, Panic(EGlxPanicIllegalArgument)); // Task already added
-    CleanupStack::PushL(aTask);
-
- 	// Order manually to allow full control over placement of tasks when 
- 	// priorities are the same
- 	TInt priority = aTask->Priority();
- 	TInt count = iTasks.Count();
-
-    TInt pos = 0;
-    while ( pos < count )
-        {
- 		TInt compPriority = iTasks[pos]->Priority();
- 		if ( compPriority < priority
- 		    || (compPriority == priority && EFirstOut == aExecutionOrder) )
- 		    {
- 		    break;
- 		    }
-
-        pos++;
-        }
-
-    iTasks.InsertL(aTask, pos);
-    CleanupStack::Pop(aTask);
-
-    aTask->SetManager(this);
-
-	// Start processing the task if this active object is not already doing something else
-	if ( !iCurrentTask ) 
-		{
-        AsyncRun();
-		}
-    else if( dynamic_cast<CGlxtnBackgroundGenerationTask*>(iCurrentTask) && (!dynamic_cast<CGlxtnBackgroundGenerationTask*>(aTask)) )
-        {
-        iCurrentTask->Cancel();
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CancelTasks
-// Cancel all tasks relating to a given media item.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTaskManager::CancelTasks(const TGlxMediaId& aItemId)
-    {
-    TRACER("CGlxtnTaskManager::CancelTasks()");
-    TInt count = iTasks.Count();
-
-    if( aItemId == TGlxMediaId(0) )
-        {
-        if( dynamic_cast<CGlxtnBackgroundGenerationTask*>(iCurrentTask) )
-        {
-        iCurrentTask->Cancel();
-        }
-        }
-
-    for ( TInt i = 0; i < count; i++ )
-        {
-        CGlxtnTask* task = iTasks[i];
-
-        if ( task->ItemId() == aItemId )
-            {
-            task->Cancel();		
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// CancelTasks
-// Cancel all tasks using a given storage.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTaskManager::CancelTasks(MGlxtnThumbnailStorage* aStorage)
-    {
-    TRACER("void CGlxtnTaskManager::CancelTasks()");
-    TInt count = iTasks.Count();
-
-    for ( TInt i = 0; i < count; i++ )
-        {
-        CGlxtnTask* task = iTasks[i];
-
-        if ( task->Storage() == aStorage )
-            {
-            task->Cancel();		
-            }
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// RunL
-// -----------------------------------------------------------------------------
-//   
-void CGlxtnTaskManager::RunL()
-	{
-    TRACER("void CGlxtnTaskManager::RunL()");
-    TInt taskIndex = 0;
-    TInt tasksRun = 0;
-    while ( taskIndex < iTasks.Count() )
-        {
-    	if ( iCurrentTask )
-    	    {
-            if ( CGlxtnTask::EStarting == iCurrentTask->State() ) 
-                {
-                // Start the task
-                iCurrentTask->StartL(iStatus);
-                }
-            else if ( CGlxtnTask::ERunning == iCurrentTask->State() )
-                {
-                // Let the task run
-                iCurrentTask->RunL(iStatus);
-                }
-
-            if ( CGlxtnTask::ERunning == iCurrentTask->State() )
-                {
-                SetActive();
-                return;
-                }
-
-            // Task completed or cancelled, delete the task immediately
-            __ASSERT_DEBUG(iStatus != KRequestPending, Panic(EGlxPanicIllegalState));
-            __ASSERT_DEBUG(CGlxtnTask::EComplete == iCurrentTask->State()
-                        || CGlxtnTask::ECanceled == iCurrentTask->State(), Panic(EGlxPanicIllegalState));
-
-            // Search for the task again, since the processing of the task might have added new tasks to the queue
-            TInt index = iTasks.Find(iCurrentTask);
-            __ASSERT_DEBUG(index != KErrNotFound, Panic(EGlxPanicLogicError));
-            iTasks.Remove(index);
-            delete iCurrentTask;
-            iCurrentTask = NULL;
-
-            // Start from top, since the task might have added another task
-            taskIndex = 0;
-    	    }
-    	else
-    	    {
-            CGlxtnTask* task = iTasks[taskIndex];
-            CGlxtnTask::TState state = task->State();
-
-            switch ( state )
-                {
-                case CGlxtnTask::EIdle:
-                    // Task not started. Ignore and try next task
-                    taskIndex++; // Skip
-                    break;
-                case CGlxtnTask::EStarting:
-                    {
-                    // Start the task
-                    iCurrentTask = task;
-
-                    // Update active object priority to match task priority
-                    TInt priority = task->Priority();
-                    if ( priority != Priority() )
-                        {
-                        SetPriority(priority);
-                        }
-
-                    // Check if too many tasks have been run during this call to RunL. 
-                    // This check exist to make sure a blocking loop does not occur, in which
-                    // a task creates another task which completes immediately, which creates
-                    // another task, which also completes immediately. (Task don't have to 
-                    // be asynchronous.)
-                    tasksRun++;
-                    if ( tasksRun >= KGlxTMMaxTasksToRunInOneRound )
-                        {
-                        AsyncRun();
-                        return;
-                        }
-                    }
-                    break;
-                case CGlxtnTask::ECanceled:
-        			// Task is canceled, remove from queue
-        			delete task;
-        			iTasks.Remove(taskIndex);
-                    break;
-                default:
-                    Panic(EGlxPanicIllegalState);   // Unknown or wrong state
-                    break;
-                }
-    	    }
-        }
-	}
-	
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTaskManager::DoCancel()
-    {
-    TRACER("CGlxtnTaskManager::DoCancel()");
-    TInt count = iTasks.Count();
-	for (TInt i = 0; i < count; i++)
-		{
-		CGlxtnTask* task = iTasks[i];
-		CGlxtnTask::TState state = task->State();
-		if (state == CGlxtnTask::ERunning) 
-			{
-			task->Cancel();
-			}
-		}
-    }
-
-// -----------------------------------------------------------------------------
-// RunError
-// -----------------------------------------------------------------------------
-//
-TInt CGlxtnTaskManager::RunError(TInt aError)
-    {
-    TRACER("CGlxtnTaskManager::RunError()");
-    if ( iCurrentTask )
-        {
-        iCurrentTask->RunError(aError);
-
-        if ( CGlxtnTask::ERunning == iCurrentTask->State() )
-            {
-            SetActive();
-            }
-        else
-            {
-            AsyncRun();
-            }
-
-        return KErrNone;
-        }
-
-    return aError;
-    }
-
-// -----------------------------------------------------------------------------
-// AsyncRun
-// -----------------------------------------------------------------------------
-//
-void CGlxtnTaskManager::AsyncRun()
-    {
-    TRACER("CGlxtnTaskManager::AsyncRun()");
-    // Issue a self-completing request.
-    iStatus = KRequestPending;
-    SetActive();
-    TRequestStatus* status = &iStatus;
-    User::RequestComplete(status, KErrNone);
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnthumbnailcreator.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /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:   Classes for thumbnail-related tasks.
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtnthumbnailcreator.h"
-
-#include "glxpanic.h"
-#include "glxtnbackgroundgenerationtask.h"
-#include "glxtncleanuptask.h"
-#include "glxtndeletethumbnailstask.h"
-#include "glxtnfileutility.h"
-#include "glxtnfilteravailabletask.h"
-#include "glxtngeneratethumbnailtask.h"
-#include "glxtnquickthumbnailtask.h"
-#include "glxtntaskmanager.h"
-#include "glxtnthumbnailrequest.h"
-#include "glxtnzoomedimagetask.h"
-#include "mglxtnthumbnailcreatorclient.h"
-
-#include <glxtracer.h>
-#include <glxsettingsmodel.h>
-
-// -----------------------------------------------------------------------------
-// InstanceL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGlxtnThumbnailCreator* CGlxtnThumbnailCreator::InstanceL()
-    {
-    TRACER("CGlxtnThumbnailCreator::InstanceL()");
-    CGlxtnThumbnailCreator* instance
-                    = reinterpret_cast<CGlxtnThumbnailCreator*>(Dll::Tls());
-
-    // Create instance if does not exist
-    if ( !instance ) 
-        {
-    	instance = new (ELeave) CGlxtnThumbnailCreator();
-    	CleanupStack::PushL(instance);
-    	instance->ConstructL();
-    	CleanupStack::Pop(instance);
-
-        Dll::SetTls(instance);
-        }
-
-    // Add user	
-    instance->iReferenceCount++;
-
-    return instance;
-    }
-
-// -----------------------------------------------------------------------------
-// Close
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGlxtnThumbnailCreator::Close(MGlxtnThumbnailStorage* aStorage)
-    {
-    TRACER("CGlxtnThumbnailCreator::Close()");
-    // Cancel any tasks using the client's storage
-    if ( aStorage )
-        {
-        iTaskManager->CancelTasks(aStorage);
-        }
-
-    __ASSERT_DEBUG(iReferenceCount > 0, Panic(EGlxPanicIllegalState));
-    iReferenceCount--;
-    if ( iReferenceCount < 1 )
-        {
-        Dll::SetTls(NULL);
-        delete this;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnThumbnailCreator::CGlxtnThumbnailCreator() 
-	{
-    TRACER("CGlxtnThumbnailCreator::CGlxtnThumbnailCreator()");
-	}
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnThumbnailCreator::ConstructL() 
-	{
-    TRACER("CGlxtnThumbnailCreator::ConstructL()");
-	iFileUtility = CGlxtnFileUtility::NewL();
-	iTaskManager = CGlxtnTaskManager::NewL();
-	iSettingsModel = CGlxSettingsModel::InstanceL();
-	}
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnThumbnailCreator::~CGlxtnThumbnailCreator() 
-	{
-    TRACER("CGlxtnThumbnailCreator::~CGlxtnThumbnailCreator()");
-	delete iTaskManager;
-	delete iFileUtility;
-	if (iSettingsModel)
-	    {
-	    iSettingsModel->Close();
-	    }
-	}
-
-// -----------------------------------------------------------------------------
-// FetchThumbnailL
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGlxtnThumbnailCreator::FetchThumbnailL(
-                                    const TGlxThumbnailRequest& aRequestInfo,
-                                    MGlxtnThumbnailCreatorClient& aClient) 
-	{
-    TRACER("void CGlxtnThumbnailCreator::FetchThumbnailL()");
-	// Create the task
-	CGlxtnTask* task = NULL;
-
-    if ( 0 == aRequestInfo.iBitmapHandle )
-        {
-        task = CGlxtnBackgroundGenerationTask::NewL(aRequestInfo.iId,
-                                                *iFileUtility, aClient, iSettingsModel->SupportedOrientations() );
-        }
-    else if ( ( 0 == aRequestInfo.iSizeClass.iWidth) || ( 0 == aRequestInfo.iSizeClass.iHeight ) )
-        {
-        User::Leave(KErrArgument);
-        }
-	else if ( !aRequestInfo.iCroppingRect.IsEmpty() )
-	    {
-	    task = CGlxtnZoomedImageTask::NewL(aRequestInfo,
-	                                            *iFileUtility, aClient);
-        }
-	else if ( TGlxThumbnailRequest::EPrioritizeQuality == aRequestInfo.iPriorityMode )
-		{
-		task = CGlxtnGenerateThumbnailTask::NewL(aRequestInfo,
-		                                        *iFileUtility, aClient);
-		}
-    else
-        {
-        task = CGlxtnQuickThumbnailTask::NewL(aRequestInfo,
-                                                *iFileUtility, aClient);
-        }
-
-    iTaskManager->AddTaskL(task);   // Takes ownership
-    } 
-
-// -----------------------------------------------------------------------------
-// DeleteThumbnailsL
-// Starts deleting all stored thumbnails for a given item.  This will result
-// in a callback to MGlxtnThumbnailCreatorClient::ThumbnailDeletionComplete().
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGlxtnThumbnailCreator::DeleteThumbnailsL(
-            const TGlxMediaId& aItemId, MGlxtnThumbnailCreatorClient& aClient)
-    {
-    TRACER("void CGlxtnThumbnailCreator::DeleteThumbnailsL()");
-    iTaskManager->AddTaskL(CGlxtnDeleteThumbnailsTask::NewL(aItemId, aClient));
-    }
-
-// -----------------------------------------------------------------------------
-// FilterAvailableThumbnailsL
-// Starts the filtering of items for which a thumbnail is available from a
-// list of item IDs.  This will result in a callback to
-// MGlxtnThumbnailCreatorClient::FilterAvailableComplete().
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGlxtnThumbnailCreator::FilterAvailableThumbnailsL(
-                    const TArray<TGlxMediaId>& aItemArray, const TSize& aSize,
-                    MGlxtnThumbnailCreatorClient& aClient)
-    {
-    TRACER("void CGlxtnThumbnailCreator::FilterAvailableThumbnailsL()");
-    iTaskManager->AddTaskL(CGlxtnFilterAvailableTask::NewL(aItemArray, aSize,
-                                                            aClient));
-    }
-
-// -----------------------------------------------------------------------------
-// CleanupThumbnailsL
-// Starts the cleanup of obsolete thumbnails from storage.  There is no
-// callback indicating completion of the request.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGlxtnThumbnailCreator::CleanupThumbnailsL(
-                                        MGlxtnThumbnailStorage* aStorage)
-    {
-    TRACER("void CGlxtnThumbnailCreator::CleanupThumbnailsL()");
-    iTaskManager->AddTaskL(CGlxtnCleanupTask::NewL(aStorage));
-    }
-
-// -----------------------------------------------------------------------------
-// CancelRequest
-// Cancel any ongoing tasks for a given item.  This ensures the TNC is not
-// locking the media file.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C void CGlxtnThumbnailCreator::CancelRequest(const TGlxMediaId& aItemId)
-    {
-    TRACER("void CGlxtnThumbnailCreator::CancelRequest()");
-    iTaskManager->CancelTasks(aItemId);
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnvideoutility.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +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:   Utility for creating bitmaps from video files
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtnvideoutility.h"
-
-#include <fbs.h>
-#include <glxtracer.h>
-#include <glxpanic.h>
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnVideoUtility::CGlxtnVideoUtility() : iDestination(NULL)
-    {
-    TRACER("CGlxtnVideoUtility::CGlxtnVideoUtility()");
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnVideoUtility::~CGlxtnVideoUtility()
-    {
-    TRACER("CGlxtnVideoUtility::~CGlxtnVideoUtility()");
-    delete iVideoInfo;
-    }
-
-// -----------------------------------------------------------------------------
-// GetVideoFrameL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVideoUtility::GetVideoFrameL(TRequestStatus* aRequestStatus,
-                            CFbsBitmap*& aDestination, const TDesC& aFileName,
-                                RArray<TSize>& aTargetSizes, TDisplayMode aMode)
-    {
-    TRACER("void CGlxtnVideoUtility::GetVideoFrameL(TRequestStatus* aRequestStatus, CFbsBitmap*& aDestination, const TDesC& aFileName, RArray<TSize>& aTargetSizes, TDisplayMode aMode)");
-    if ( iRequestStatus )
-        {
-        User::Leave(KErrNotReady);
-        }
-        
-    iDisplayMode = aMode;
-    iSize = aTargetSizes[0];
-            
-    iRequestStatus = aRequestStatus;
-    *iRequestStatus = KRequestPending;
-
-    iDestination = &aDestination;
-    delete *iDestination;
-    *iDestination = NULL;
-
-    delete iVideoInfo;
-    iVideoInfo = NULL;
-#ifdef ENABLE_VED
-    iVideoInfo = CVedVideoClipInfo::NewL(aFileName, *this);
-#else
-    iVideoInfo = CTNEVideoClipInfo::NewL(aFileName, *this);
-#endif
-    }
-
-// -----------------------------------------------------------------------------
-// Cancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVideoUtility::Cancel()
-    {
-    TRACER("void CGlxtnVideoUtility::Cancel()");
-    if ( iVideoInfo )
-        {
-#ifdef ENABLE_VED
-        iVideoInfo->CancelFrame();
-#else
-        iVideoInfo->CancelThumb();
-#endif
-        delete iVideoInfo;
-        iVideoInfo = NULL;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// NotifyVideoClipInfoReady
-// -----------------------------------------------------------------------------
-//
-#ifdef ENABLE_VED
-void CGlxtnVideoUtility::NotifyVideoClipInfoReady( CVedVideoClipInfo& aInfo,
-                                                        TInt aError )
-#else
-void CGlxtnVideoUtility::NotifyVideoClipInfoReady( CTNEVideoClipInfo& aInfo,
-                                                        TInt aError )
-#endif
-    {
-    TRACER("void CGlxtnVideoUtility::NotifyVideoClipInfoReady( CVedVideoClipInfo& aInfo, TInt aError )");
-    __ASSERT_DEBUG(&aInfo == iVideoInfo, Panic(EGlxPanicIllegalArgument));
-
-    //adding a check if the callback is for iVideoInfo
-	if ( KErrNone == aError && (&aInfo == iVideoInfo))
-        {
-#ifdef ENABLE_VED
-        TRAP(aError, iVideoInfo->GetFrameL(*this, KFrameIndexBestThumb,
-                                            NULL /*aResolution*/, iDisplayMode));
-#else
-        TRAP(aError, iVideoInfo->GetThumbL(*this, KBestThumbIndex,
-                                            &iSize, iDisplayMode));
-#endif
-        }
-
-    if ( KErrNone != aError )
-        {
-        User::RequestComplete(iRequestStatus, aError);
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// NotifyVideoClipFrameCompleted
-// -----------------------------------------------------------------------------
-//
-#ifdef ENABLE_VED
-void CGlxtnVideoUtility::NotifyVideoClipFrameCompleted(
-                    CVedVideoClipInfo& /*aInfo*/, TInt aError, CFbsBitmap* aFrame )
-#else
-void CGlxtnVideoUtility::NotifyVideoClipThumbCompleted(
-                    CTNEVideoClipInfo& /*aInfo*/, TInt aError, CFbsBitmap* aFrame )
-#endif
-    {
-    TRACER("void CGlxtnVideoUtility::NotifyVideoClipFrameCompleted( CVedVideoClipInfo& aInfo, TInt aError, CFbsBitmap* aFrame )");
-	//removing as this is not used anymore
-   // __ASSERT_DEBUG(&aInfo == iVideoInfo, Panic(EGlxPanicIllegalArgument));
-    *iDestination = aFrame;
-
-    User::RequestComplete(iRequestStatus, aError);
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnvolumedatabase.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,820 +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 CGlxtnVolumeDatabase
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtnvolumedatabase.h"
-
-#include <glxtracer.h>
-#include <glxpanic.h>
-#include <s32file.h>
-
-#include "glxtnfileinfo.h"
-#include "mglxtnvolumedatabaseobserver.h"
-
-#include <glxlog.h>
-_LIT(KGlxCreateTableIds, "CREATE TABLE Ids (MediaId UNSIGNED INTEGER NOT NULL, ThumbId UNSIGNED INTEGER NOT NULL)");
-_LIT(KGlxCreateTableItems, "CREATE TABLE Items (Uri VARCHAR NOT NULL, ThumbId UNSIGNED INTEGER NOT NULL, FileSize INTEGER, ModTime TIME)");
-_LIT(KGlxCreateTableThumbnails, "CREATE TABLE Thumbnails (ThumbId UNSIGNED INTEGER NOT NULL, Width INTEGER NOT NULL, Height INTEGER NOT NULL, Format INTEGER NOT NULL, ImageData LONG VARBINARY NOT NULL)");
-_LIT(KGlxCreateIndexIds, "CREATE UNIQUE INDEX IdIndex ON Ids (MediaId)");
-_LIT(KGlxCreateIndexItems, "CREATE UNIQUE INDEX ItemIndex ON Items (ThumbId ASC)");
-_LIT(KGlxCreateIndexThumbnails, "CREATE UNIQUE INDEX ThumbnailIndex ON Thumbnails (ThumbId, Width, Height)");
-
-_LIT(KGlxTableIds, "Ids");
-_LIT(KGlxTableItems, "Items");
-_LIT(KGlxTableThumbnails, "Thumbnails");
-_LIT(KGlxIndexItems, "ItemIndex");
-
-const TInt KGlxColIdMediaId = 1;
-const TInt KGlxColIdThumbId = 2;
-
-const TInt KGlxColItemUri = 1;
-const TInt KGlxColItemId = 2;
-const TInt KGlxColItemFileSize = 3;
-const TInt KGlxColItemModTime = 4;
-
-const TInt KGlxColThumbnailId = 1;
-const TInt KGlxColThumbnailWidth = 2;
-const TInt KGlxColThumbnailHeight = 3;
-const TInt KGlxColThumbnailFormat = 4;
-const TInt KGlxColThumbnailData = 5;
-
-_LIT(KGlxQueryThumbIdFromIds, "SELECT * FROM Ids WHERE MediaId = ");
-_LIT(KGlxQueryThumbIdFromItems, "SELECT * FROM Items WHERE Uri = ");
-_LIT(KGlxQueryThumbnail, "SELECT * FROM Thumbnails WHERE ThumbId = %d AND Width = %d AND Height = %d");
-_LIT(KGlxQueryAvailable, "SELECT ThumbId, Width, Height FROM Thumbnails WHERE ThumbId = %d AND Width = %d AND Height = %d");
-
-_LIT(KGlxDeleteId, "DELETE FROM Ids WHERE MediaId = %d");
-_LIT(KGlxDeleteThumbnails, "DELETE FROM Thumbnails WHERE ThumbId = %d");
-_LIT(KGlxDeleteItem, "DELETE FROM Items WHERE ThumbId = %d");
-
-const TInt KGlxTIntMaxDigits = 11;
-
-const TUint KGlxFirstThumbnailId = 1;
-
-// -----------------------------------------------------------------------------
-// NewL
-// -----------------------------------------------------------------------------
-//
-CGlxtnVolumeDatabase* CGlxtnVolumeDatabase::NewLC(
-        MGlxtnVolumeDatabaseObserver& aObserver, RFs& aFs, const TDesC& aPath)
-    {
-    TRACER("CGlxtnVolumeDatabase* CGlxtnVolumeDatabase::NewLC( MGlxtnVolumeDatabaseObserver& aObserver, RFs& aFs, const TDesC& aPath)");
-    CGlxtnVolumeDatabase* self = 
-                        new (ELeave) CGlxtnVolumeDatabase(aObserver, aFs);
-    CleanupStack::PushL(self);
-    self->ConstructL(aPath);
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnVolumeDatabase::CGlxtnVolumeDatabase(
-                                    MGlxtnVolumeDatabaseObserver& aObserver, 
-                                    RFs& aFs)
-    : CActive(EPriorityStandard), 
-      iObserver(aObserver), iFs(aFs), iState(EStateIdle)
-    {
-    TRACER("CGlxtnVolumeDatabase::CGlxtnVolumeDatabase( MGlxtnVolumeDatabaseObserver& aObserver, RFs& aFs)");
-    }
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::ConstructL(const TDesC& aPath)
-    {
-    TRACER("void CGlxtnVolumeDatabase::ConstructL(const TDesC& aPath)");
-    iDrive = aPath.Left(KMaxDriveName);
-
-    TRAPD(error, OpenDbL(iFs, aPath));
-    if ( KErrNone != error )
-        {
-        iDatabase.Close();
-        delete iStore;
-        iStore = NULL;
-        CreateDbL(iFs, aPath);
-        }
-
-    CActiveScheduler::Add(this);
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnVolumeDatabase::~CGlxtnVolumeDatabase() 
-    {
-    TRACER("CGlxtnVolumeDatabase::~CGlxtnVolumeDatabase()");
-    Cancel();
-    iView.Close();
-    iTable.Close();
-    iDbUpdater.Close();
-    iDatabase.Close();
-    delete iStore;
-    }
-
-// -----------------------------------------------------------------------------
-// Drive
-// -----------------------------------------------------------------------------
-//
-const TDesC& CGlxtnVolumeDatabase::Drive() const
-    {
-    TRACER("TDesC& CGlxtnVolumeDatabase::Drive()");
-    return iDrive;
-    }
-
-// -----------------------------------------------------------------------------
-// GetThumbnailIdL
-// Look up thumbnail ID from Ids table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::GetThumbnailIdL( const TGlxMediaId& aMediaId )
-    {
-    TRACER("void CGlxtnVolumeDatabase::GetThumbnailIdL( const TGlxMediaId& aMediaId )");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    GLX_LOG_INFO1("CGlxtnVolumeDatabase::GetThumbnailIdL() Media Id= %d",aMediaId.Value());
-    HBufC* sql = HBufC::NewLC(
-                    KGlxQueryThumbIdFromIds().Length() + KGlxTIntMaxDigits );
-    *sql = KGlxQueryThumbIdFromIds;
-    sql->Des().AppendNum( aMediaId.Value() );
-
-    EvaluateQueryL( *sql );
-    iState = EStateGettingIdFromMediaId;
-
-    CleanupStack::PopAndDestroy(sql);
-    }
-
-// -----------------------------------------------------------------------------
-// GetThumbnailIdL
-// Look up thumbnail ID from Items table.  If not found, add new record.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::GetThumbnailIdL(const CGlxtnFileInfo* aInfo)
-    {
-    TRACER("void CGlxtnVolumeDatabase::GetThumbnailIdL(const CGlxtnFileInfo* aInfo)");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    iInfo = aInfo;
-    HBufC* uri = QuoteSqlStringLC(iInfo->FilePath());
-    HBufC* sql = HBufC::NewLC(
-                    KGlxQueryThumbIdFromItems().Length() + uri->Length());
-    *sql = KGlxQueryThumbIdFromItems;
-    sql->Des().Append(*uri);
-
-    EvaluateQueryL( *sql );
-    iState = EStateGettingIdFromFilename;
-
-    CleanupStack::PopAndDestroy(sql);
-    CleanupStack::PopAndDestroy(uri);
-    }
-
-// -----------------------------------------------------------------------------
-// StoreThumbnailIdL
-// Add record to Ids table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::StoreThumbnailIdL( const TGlxMediaId& aMediaId,
-                                        const TGlxtnThumbnailId& aThumbId )
-    {
-    TRACER("void CGlxtnVolumeDatabase::StoreThumbnailIdL( const TGlxMediaId& aMediaId, const TGlxtnThumbnailId& aThumbId )");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-    GLX_LOG_INFO1("StoreThumbnailIdL():- Media Id = %d",aMediaId.Value());
-    GLX_LOG_INFO1("StoreThumbnailIdL():- aThumbId = %d",aThumbId.Value());
-    RDbTable table;
-    CleanupClosePushL(table);
-    User::LeaveIfError( table.Open(
-                        iDatabase, KGlxTableIds, RDbRowSet::EInsertOnly ) );
-
-    table.InsertL();
-    table.SetColL( KGlxColIdMediaId, aMediaId.Value() );
-    table.SetColL( KGlxColIdThumbId, aThumbId.Value() );
-    table.PutL();
-
-    CleanupStack::PopAndDestroy(&table);
-
-    iObserver.HandleThumbnailIdStoredL();
-    }
-
-// -----------------------------------------------------------------------------
-// GetThumbnailL
-// Look up thumbnail from Thumbnails table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::GetThumbnailL( const TGlxtnThumbnailId& aThumbId,
-                                            const TSize& aSize )
-    {
-    TRACER("void CGlxtnVolumeDatabase::GetThumbnailL( const TGlxtnThumbnailId& aThumbId, const TSize& aSize )");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    GLX_LOG_INFO1("GetThumbnailL():- ThumbId Id = %d",aThumbId.Value());
-    GLX_LOG_INFO2("GetThumbnailL Width=%d, Height=%d", aSize.iWidth, aSize.iHeight);
-    HBufC* sql = HBufC::NewLC( KGlxQueryThumbnail().Length()
-                                + 3 * KGlxTIntMaxDigits);
-    sql->Des().Format( KGlxQueryThumbnail,
-                        aThumbId.Value(), aSize.iWidth, aSize.iHeight );
-
-    EvaluateQueryL( *sql );
-    iState = EStateGettingThumbnail;
-
-    CleanupStack::PopAndDestroy(sql);
-    }
-
-// -----------------------------------------------------------------------------
-// CheckAvailableL
-// Check if thumbnail is in Thumbnails table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::CheckAvailableL( const TGlxtnThumbnailId& aThumbId,
-                                            const TSize& aSize )
-    {
-    TRACER("void CGlxtnVolumeDatabase::CheckAvailableL( const TGlxtnThumbnailId& aThumbId, const TSize& aSize )");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-    GLX_LOG_INFO1("CheckAvailableL():- ThumbId = %d", aThumbId.Value());
-
-    HBufC* sql = HBufC::NewLC( KGlxQueryAvailable().Length()
-                                + 3 * KGlxTIntMaxDigits);
-    sql->Des().Format( KGlxQueryAvailable,
-                        aThumbId.Value(), aSize.iWidth, aSize.iHeight );
-
-    EvaluateQueryL( *sql );
-    iState = EStateCheckingAvailability;
-
-    CleanupStack::PopAndDestroy(sql);
-    }
-
-// -----------------------------------------------------------------------------
-// StoreThumbnailL
-// Add record to Thumbnails table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::StoreThumbnailL( const TGlxtnThumbnailId& aThumbId,
-                                           const TSize& aSize,
-                                           TGlxImageDataFormat aFormat,
-                                           const TDesC8& aData )
-    {
-    TRACER("void CGlxtnVolumeDatabase::StoreThumbnailL( const TGlxtnThumbnailId& aThumbId, const TSize& aSize, TGlxImageDataFormat aFormat, const TDesC8& aData )");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-    GLX_LOG_INFO1("StoreThumbnailL():- aThumbId = %d",aThumbId.Value());
-    GLX_LOG_INFO2("StoreThumbnailL Width=%d, Height=%d", aSize.iWidth, aSize.iHeight);
-
-    RDbTable table;
-    CleanupClosePushL(table);
-    User::LeaveIfError( table.Open(
-                iDatabase, KGlxTableThumbnails, RDbRowSet::EInsertOnly ) );
-
-    table.InsertL();
-    table.SetColL( KGlxColThumbnailId, aThumbId.Value() );
-    table.SetColL( KGlxColThumbnailWidth, aSize.iWidth );
-    table.SetColL( KGlxColThumbnailHeight, aSize.iHeight );
-    table.SetColL( KGlxColThumbnailFormat, aFormat );
-    table.SetColL( KGlxColThumbnailData, aData );
-    table.PutL();
-
-    CleanupStack::PopAndDestroy(&table);
-
-    iObserver.HandleThumbnailStored();
-    }
-
-// -----------------------------------------------------------------------------
-// DeleteFromIdsL
-// Delete from IDs table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::DeleteIdL( const TGlxMediaId& aMediaId )
-    {
-    TRACER("void CGlxtnVolumeDatabase::DeleteIdL( const TGlxMediaId& aMediaId )");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    GLX_LOG_INFO1("DeleteIdL():- Media Id = %d",aMediaId.Value());
-    HBufC* sql = HBufC::NewLC( KGlxDeleteId().Length() + KGlxTIntMaxDigits);
-    
-    sql->Des().Format( KGlxDeleteId, aMediaId.Value() );
-    
-    UpdateDataL( *sql );
-    iState = EStateDeletingId;
-    
-    CleanupStack::PopAndDestroy(sql);
-    }
-    
-// -----------------------------------------------------------------------------
-// DeleteThumbnailsL
-// Delete Thumbnails from Thumbnail table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::DeleteThumbnailsL(
-                                        const TGlxtnThumbnailId& aThumbId )
-    {
-    TRACER("void CGlxtnVolumeDatabase::DeleteThumbnailsL( const TGlxtnThumbnailId& aThumbId )");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-    GLX_LOG_INFO1("DeleteThumbnailsL():- aThumbId = %d",aThumbId.Value());
-
-    HBufC* sql = HBufC::NewLC(KGlxDeleteThumbnails().Length() + 
-                                 KGlxTIntMaxDigits);
-    
-    sql->Des().Format( KGlxDeleteThumbnails, aThumbId.Value() );
-    
-    UpdateDataL( *sql );
-    iState = EStateDeletingThumbnails;
-    
-    CleanupStack::PopAndDestroy(sql);
-    }
-    
-// -----------------------------------------------------------------------------
-// DeleteItemL
-// Delete Item from Items table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::DeleteItemL( const TGlxtnThumbnailId& aThumbId )
-    {
-    TRACER("void CGlxtnVolumeDatabase::DeleteItemL( const TGlxtnThumbnailId& aThumbId )");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-
-    GLX_LOG_INFO1("DeleteItemL():- aThumbId = %d",aThumbId.Value());
-    HBufC* sql = HBufC::NewLC( KGlxDeleteItem().Length() + KGlxTIntMaxDigits);
-    
-    sql->Des().Format( KGlxDeleteItem, aThumbId.Value() );
-    
-    UpdateDataL( *sql );
-    iState = EStateDeletingItem;
-    
-    CleanupStack::PopAndDestroy(sql);
-    }
-
-// -----------------------------------------------------------------------------
-// CleanupDatabaseL
-// Clean from database entries that do not have a corresponding media file
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::CleanupDatabaseL()
-    {
-    TRACER("void CGlxtnVolumeDatabase::CleanupDatabaseL()");
-    if ( EStateIdle != iState )
-        {
-        User::Leave(KErrNotReady);
-        }
-    User::LeaveIfError( iTable.Open(
-                        iDatabase, KGlxTableItems, RDbRowSet::EUpdatable ) );
-    iTable.BeginningL();
-
-    SetActive();
-    TRequestStatus* ts = &iStatus;
-    User::RequestComplete(ts, KErrNone);
-
-    iState = EStateCleaning;
-    }
-
-    
-// -----------------------------------------------------------------------------
-// CleanupRowL
-// Test entry in one row in Items table to see if file is available. If it is
-// not, delete this row and start process of deleting corresponding entries 
-// from Ids table and Thumbnails table
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::CleanupRowL()
-    {
-    TRACER("void CGlxtnVolumeDatabase::CleanupRowL()");
-    // Get filename
-    iTable.GetL();
-    TPtrC filename = iTable.ColDes(KGlxColItemUri);
-   
-    // does file exist
-    TTime time;
-    TInt err = iFs.Modified(filename, time);
-    if(err == KErrNone)
-        {
-        //yes, file exists, so complete to go to next row
-        SetActive();
-        TRequestStatus* ts = &iStatus;
-        User::RequestComplete(ts, KErrNone);
-        iState = EStateCleaning;
-        }
-    else
-        {
-        // Problem accessing file, so delete database entries
-        // First delete row in Items table
-        TUint thumbId = iTable.ColUint( KGlxColItemId );
-        //Delete the row (entry in Items)
-        iTable.DeleteL();
-
-        // Now delete from Thumbnails
-        HBufC* sql = HBufC::NewLC(KGlxDeleteThumbnails().Length() + 
-                                     KGlxTIntMaxDigits);
-
-        sql->Des().Format( KGlxDeleteThumbnails, thumbId );
-        UpdateDataL( *sql );
-        iState = EStateCleaningDeletingThumbnails;
-        CleanupStack::PopAndDestroy(sql);
-        }
-    }
-    
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::DoCancel()
-    {
-    TRACER("void CGlxtnVolumeDatabase::DoCancel()");
-    iView.Cancel();
-    iTable.Close();
-    iDbUpdater.Close();
-    iState = EStateIdle;
-    }
-
-// -----------------------------------------------------------------------------
-// RunL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::RunL()
-    {
-    TRACER("void CGlxtnVolumeDatabase::RunL()");
-    User::LeaveIfError(iStatus.Int());
-
-    // Continue any database operations which aren't finished
-    switch ( iState )
-        {
-        case EStateGettingIdFromMediaId:
-        case EStateGettingIdFromFilename:
-        case EStateGettingThumbnail:
-        case EStateCheckingAvailability:
-            if ( iView.Unevaluated() )
-                {
-                iView.Evaluate(iStatus);
-                SetActive();
-                return;
-                }
-            break;
-        case EStateDeletingId:
-        case EStateDeletingThumbnails:
-        case EStateDeletingItem:
-        case EStateCleaningDeletingThumbnails:
-            if(iStatus.Int() != 0)
-                {
-                iDbUpdater.Next(iStatus);
-                SetActive();
-                return;
-                }
-            break;
-        case EStateCleaning:
-        // do nothing
-            break;
-        default:
-            Panic(EGlxPanicIllegalState);
-            break;
-        }
-
-    // Handle results of database operation
-    switch ( iState )
-        {
-        case EStateGettingIdFromMediaId:
-            {
-            TGlxtnThumbnailId thumbId;
-            if ( iView.FirstL() )
-                {
-                iView.GetL();
-                thumbId = iView.ColUint(KGlxColIdThumbId);
-                GLX_LOG_INFO1("RunL - EStateGettingIdFromMediaId  IF (iView.FirstL()): ThumbId = %d", thumbId.Value());
-                }
-            iView.Close();
-            iState = EStateIdle;
-            GLX_LOG_INFO1("RunL - EStateGettingIdFromMediaId - aThumbId = %d", thumbId.Value());
-            iObserver.HandleThumbnailIdFromMediaIdL(thumbId);
-            }
-            break;
-
-        case EStateGettingIdFromFilename:
-            {
-            TGlxtnThumbnailId thumbId;
-            if ( iView.FirstL() )
-                {
-                iView.GetL();
-                thumbId = iView.ColUint(KGlxColItemId);
-                iView.Close();
-                }
-            else
-                {
-                iView.Close();
-                thumbId = DoAddItemL();
-                }
-            iState = EStateIdle;
-            iInfo = NULL;
-            GLX_LOG_INFO1("RunL - EStateGettingIdFromFilename - aThumbId = %d", thumbId.Value());
-            iObserver.HandleThumbnailIdFromFilenameL(thumbId);
-            }
-            break;
-
-        case EStateGettingThumbnail:
-            if ( iView.FirstL() )
-                {
-                iView.GetL();
-                TGlxImageDataFormat format = static_cast<TGlxImageDataFormat>(
-                                        iView.ColInt(KGlxColThumbnailFormat));
-                TInt size = iView.ColSize(KGlxColThumbnailData);
-
-                RDbColReadStream stream;
-                stream.OpenLC(iView, KGlxColThumbnailData);
-                HBufC8* data = HBufC8::NewLC(size);
-                TPtr8 ptr(data->Des());
-                // Need to specify amount to read, as the HBufC8 can be bigger
-                // than requested
-                stream.ReadL(ptr, size);    
-
-                CleanupStack::Pop(data);
-                CleanupStack::PopAndDestroy(&stream);
-
-                iView.Close();
-                iState = EStateIdle;
-                iObserver.HandleThumbnail(format, data);
-                }
-            else
-                {
-                iView.Close();
-                iState = EStateIdle;
-                GLX_LOG_INFO("RunL: HandleDatabaseError - KErrNotFound");
-                iObserver.HandleDatabaseError(KErrNotFound);
-                }
-            break;
-            
-        case EStateDeletingId:
-            iState = EStateIdle;
-            iDbUpdater.Close();
-            iObserver.HandleMediaIdDeletedL();
-            break;
-            
-        case EStateDeletingThumbnails:
-            iState = EStateIdle;
-            iDbUpdater.Close();
-            iObserver.HandleThumbnailsDeletedL();
-            break;
-            
-        case EStateDeletingItem:
-            iState = EStateIdle;
-            iDbUpdater.Close();
-            iObserver.HandleItemDeletedL();
-            break;
-
-        case EStateCheckingAvailability:
-            {
-            TInt result = KGlxThumbnailAvailable;
-            if ( iView.IsEmptyL() )
-                {
-                result = KGlxThumbnailNotAvailable;
-                }
-            iView.Close();
-            iState = EStateIdle;
-            GLX_LOG_INFO1("RunL - EStateCheckingAvailability - result = %d", result);
-            iObserver.HandleAvailabilityChecked(result);
-            }
-            break;
-            
-        case EStateCleaningDeletingThumbnails:
-            iState = EStateCleaning;
-            iDbUpdater.Close();      // deliberate fall through to next row
-        case EStateCleaning:
-            if(iTable.NextL())
-                {
-                // next row
-                CleanupRowL();
-                }
-            else
-                {
-                // no more rows
-                iTable.Close();
-                iState = EStateIdle;
-                iObserver.HandleDatabaseCleanedL();
-                }
-            break;
-        default:
-            Panic(EGlxPanicIllegalState);
-            break;
-        }
-    }
-
-// -----------------------------------------------------------------------------
-// RunError
-// -----------------------------------------------------------------------------
-//
-TInt CGlxtnVolumeDatabase::RunError(TInt aError)
-    {
-    TRACER("TInt CGlxtnVolumeDatabase::RunError(TInt aError)");
-    iTable.Close();
-    iView.Close();
-    iDbUpdater.Close();
-    iState = EStateIdle;
-    iInfo = NULL;
-    GLX_LOG_INFO1("RunL: HandleDatabaseError - error=%d", aError);
-    iObserver.HandleDatabaseError(aError);
-
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// OpenDbL
-// Open an existing database.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::OpenDbL(RFs& aFs, const TDesC& aFilename)
-    {
-    GLX_LOG_ENTRY_EXIT("void CGlxtnVolumeDatabase::OpenDbL(RFs& aFs, const TDesC& aFilename)");
-    iStore = CFileStore::OpenL(aFs, aFilename, EFileRead | EFileWrite);
-    iDatabase.OpenL(iStore, iStore->Root());
-
-    // Get next available thumbnail ID (synchronous)
-    RDbTable table;
-    CleanupClosePushL(table);
-    User::LeaveIfError( table.Open(
-                        iDatabase, KGlxTableItems, RDbRowSet::EReadOnly ) );
-    User::LeaveIfError(table.SetIndex(KGlxIndexItems));
-
-    // Find highest thumbnail ID in use.  New entries are added to the Items
-    // table first, and deleted from the Items table last, so all IDs in use
-    // will always be found there.
-    // Thumbnail IDs are only unique within a volume.
-    if ( table.LastL() )
-        {
-        table.GetL();
-        iNextThumbId = table.ColUint(KGlxColItemId) + 1;
-        }
-    else
-        {
-        // Database is empty
-        iNextThumbId = KGlxFirstThumbnailId;
-        }
-
-    CleanupStack::PopAndDestroy(&table);
-    }
-    
-// -----------------------------------------------------------------------------
-// CreateDbL
-// Create a new database.
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::CreateDbL(RFs& aFs, const TDesC& aFilename)
-    {
-    TRACER("void CGlxtnVolumeDatabase::CreateDbL(RFs& aFs, const TDesC& aFilename)");
-    // Create database, overwriting any existing file
-    TInt err = aFs.MkDirAll(aFilename);
-    if ( err != KErrAlreadyExists )
-        {
-        User::LeaveIfError(err);
-        }
-    iStore = CPermanentFileStore::ReplaceL(aFs, aFilename,
-                                            EFileRead | EFileWrite);
-    iStore->SetTypeL(KPermanentFileStoreLayoutUid);
-    iStore->SetRootL(iDatabase.CreateL(iStore));
-    iStore->CommitL();
-
-    User::LeaveIfError(iDatabase.Execute(KGlxCreateTableIds));
-    User::LeaveIfError(iDatabase.Execute(KGlxCreateTableItems));
-    User::LeaveIfError(iDatabase.Execute(KGlxCreateTableThumbnails));
-    User::LeaveIfError(iDatabase.Execute(KGlxCreateIndexIds));
-    User::LeaveIfError(iDatabase.Execute(KGlxCreateIndexItems));
-    User::LeaveIfError(iDatabase.Execute(KGlxCreateIndexThumbnails));
-    
-    iNextThumbId = KGlxFirstThumbnailId;
-    }
-
-// -----------------------------------------------------------------------------
-// DoAddItemL
-// -----------------------------------------------------------------------------
-//
-TGlxtnThumbnailId CGlxtnVolumeDatabase::DoAddItemL()
-    {
-    TRACER("TGlxtnThumbnailId CGlxtnVolumeDatabase::DoAddItemL()");
-    __ASSERT_ALWAYS(iInfo, Panic(EGlxPanicNullPointer));
-    RDbTable table;
-    CleanupClosePushL(table);
-    User::LeaveIfError(table.Open(iDatabase, KGlxTableItems, RDbRowSet::EInsertOnly));
-    TGlxtnThumbnailId thumbId( iNextThumbId );
-
-    table.InsertL();
-    table.SetColL( KGlxColItemUri, iInfo->FilePath() );
-    table.SetColL( KGlxColItemId, thumbId.Value() );
-    table.SetColL( KGlxColItemFileSize, iInfo->iFileSize );
-    table.SetColL( KGlxColItemModTime, iInfo->iFileTime );
-    table.PutL();
-
-    iNextThumbId++;
-    CleanupStack::PopAndDestroy(&table);
-
-    return thumbId;
-    }
-
-// -----------------------------------------------------------------------------
-// EvaluateQueryL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::EvaluateQueryL( const TDbQuery &aQuery )
-    {
-    TRACER("void CGlxtnVolumeDatabase::EvaluateQueryL( const TDbQuery &aQuery )");
-    User::LeaveIfError( iView.Prepare(
-                                iDatabase, aQuery, RDbRowSet::EReadOnly ) );
-    iView.Evaluate( iStatus );
-    SetActive();
-    }
-
-// -----------------------------------------------------------------------------
-// UpdateDataL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnVolumeDatabase::UpdateDataL( const TDesC& aSql )
-    {
-    TRACER("void CGlxtnVolumeDatabase::UpdateDataL( const TDesC& aSql )");
-    TInt result = iDbUpdater.Execute( iDatabase, aSql );
-
-    if ( result < KErrNone )
-        {
-        iDbUpdater.Close();
-        User::Leave( result );
-        }
-
-    // According to documentation a result of 0 should indicate complete
-    // but this does not seem to be the case
-    iDbUpdater.Next( iStatus );
-    SetActive();
-    }
-
-// -----------------------------------------------------------------------------
-// QuoteSqlStringLC
-// -----------------------------------------------------------------------------
-//
-HBufC* CGlxtnVolumeDatabase::QuoteSqlStringLC(const TDesC& aText)
-    {
-    TRACER("HBufC* CGlxtnVolumeDatabase::QuoteSqlStringLC(const TDesC& aText)");
-    const TText quote('\'');
-    TInt length = aText.Length() + 2;
-
-    for ( TInt i = 0; i < aText.Length(); i++ )
-        {
-        if ( quote == aText[i] )
-            {
-            length++;
-            }
-        }
-
-    HBufC* text = HBufC::NewLC(length);
-    TPtr ptr(text->Des());
-
-    ptr.Append(quote);
-    for ( TInt i = 0; i < aText.Length(); i++ )
-        {
-        TText chr = aText[i];
-        ptr.Append(chr);
-        if ( quote == chr )
-            {
-            ptr.Append(quote);
-            }
-        }
-    ptr.Append(quote);
-
-    return text;
-    }
--- a/engine/collectionframework/thumbnailcreator/src/glxtnzoomedimagetask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,256 +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:   Task to generate a cropped thumbnail for a JPEG image.
-*
-*/
-
-
-
-/**
- * @internal reviewed 31/07/2007 by Simon Brooks
- */
-
-#include "glxtnzoomedimagetask.h"
-
-#include <fbs.h>
-#include <glxassert.h>
-#include <glxlog.h>
-#include <IclExtJpegApi.h>  // For CExtJpegDecoder
-#include <glxtracer.h>
-
-#include "glxtnfileinfo.h"
-#include "glxtnfileutility.h"
-#include "glxtnthumbnailrequest.h"
-#include "mglxtnthumbnailcreatorclient.h"
-
-// -----------------------------------------------------------------------------
-// NewL
-// -----------------------------------------------------------------------------
-//
-CGlxtnZoomedImageTask* CGlxtnZoomedImageTask::NewL(
-        const TGlxThumbnailRequest& aRequestInfo,
-        CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient)
-    {
-    TRACER("CGlxtnZoomedImageTask* CGlxtnZoomedImageTask::NewL( const TGlxThumbnailRequest& aRequestInfo, CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient)");
-    CGlxtnZoomedImageTask* task = new (ELeave) CGlxtnZoomedImageTask(
-                                        aRequestInfo, aFileUtility, aClient);
-    CleanupStack::PushL(task);
-    task->ConstructL(aRequestInfo.iBitmapHandle);
-    CleanupStack::Pop( task );
-    return task;
-    }
-
-// -----------------------------------------------------------------------------
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnZoomedImageTask::~CGlxtnZoomedImageTask()
-    {
-    TRACER("CGlxtnZoomedImageTask::~CGlxtnZoomedImageTask()");
-    delete iDecoder;
-    delete iInfo;
-    delete iThumbnail;
-    }
-
-// -----------------------------------------------------------------------------
-// Constructor
-// -----------------------------------------------------------------------------
-//
-CGlxtnZoomedImageTask::CGlxtnZoomedImageTask(
-                                    const TGlxThumbnailRequest& aRequestInfo,
-                                    CGlxtnFileUtility& aFileUtility,
-                                    MGlxtnThumbnailCreatorClient& aClient) :
-    CGlxtnClientTask(KGlxtnTaskIdZoomedThumbnail, aRequestInfo.iId, aClient),
-    iFileUtility(aFileUtility), iRequestedSize(aRequestInfo.iSizeClass),
-    iCroppingRect(aRequestInfo.iCroppingRect), iFilter(aRequestInfo.iFilter),
-    iDrmAllowed(aRequestInfo.iDrmAllowed)
-    {
-    TRACER("CGlxtnZoomedImageTask::CGlxtnZoomedImageTask( const TGlxThumbnailRequest& aRequestInfo, CGlxtnFileUtility& aFileUtility, MGlxtnThumbnailCreatorClient& aClient)");
-    }
-
-// -----------------------------------------------------------------------------
-// ConstructL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnZoomedImageTask::ConstructL(TInt aBitmapHandle)
-    {
-    TRACER("void CGlxtnZoomedImageTask::ConstructL(TInt aBitmapHandle)");
-    // Duplicate the client's bitmap
-    iThumbnail = new (ELeave) CFbsBitmap();
-    User::LeaveIfError(iThumbnail->Duplicate(aBitmapHandle));
-    }
-
-// -----------------------------------------------------------------------------
-// DoStartL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnZoomedImageTask::DoStartL(TRequestStatus& aStatus)
-    {
-    TRACER("TBool CGlxtnZoomedImageTask::DoStartL(TRequestStatus& aStatus)");
-    iInfo = new (ELeave) CGlxtnFileInfo;
-    Client().FetchFileInfoL(iInfo, ItemId(), &aStatus);
-    iState = EStateFetchingUri;
-
-    return ETrue;
-    }
-
-// -----------------------------------------------------------------------------
-// DoCancel
-// -----------------------------------------------------------------------------
-//
-void CGlxtnZoomedImageTask::DoCancel()
-    {
-    TRACER("void CGlxtnZoomedImageTask::DoCancel()");
-    if ( EStateFetchingUri == iState )
-        {
-        Client().CancelFetchUri(ItemId());
-        }
-    if ( iDecoder )
-        {
-        iDecoder->Cancel();
-        }
-
-    iFileUtility.ClearBadFileMarker();
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunL
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnZoomedImageTask::DoRunL(TRequestStatus& aStatus)
-    {
-    TRACER("TBool CGlxtnZoomedImageTask::DoRunL(TRequestStatus& aStatus)");
-    TInt error = aStatus.Int();
-	TBool active = EFalse;
-
-    if ( KErrNone == error )
-        {
-        switch ( iState )
-            {
-            case EStateFetchingUri:
-                {
-                User::LeaveIfNull(iInfo);
-                iFileUtility.CheckBadFileListL( iInfo->FilePath() );
-
-                TBool video;
-                iInfo->IdentifyFileL(video, iProtected);
-                if ( iProtected && !iDrmAllowed )
-                    {
-                    User::Leave(KErrAccessDenied);
-                    }
-
-                DecodePartialImageL(aStatus);
-                active = ETrue;
-                iState = EStateDecoding;
-                }
-                break;
-
-            case EStateDecoding:
-                // Nothing to do
-                break;
-
-            default:
-                GLX_ASSERT_ALWAYS( EFalse, Panic( EGlxPanicIllegalState ),
-                                "CGlxtnZoomedImageTask: Illegal state" );
-                break;
-            }
-        }
-
-    if ( !active )
-        {
-        iFileUtility.ClearBadFileMarker();
-        Client().ThumbnailFetchComplete(ItemId(),
-                                        EGlxThumbnailQualityHigh, error);
-        }
-       
-    return active; 
-    }
-
-// -----------------------------------------------------------------------------
-// DoRunError
-// -----------------------------------------------------------------------------
-//
-TBool CGlxtnZoomedImageTask::DoRunError(TInt aError)
-    {
-    TRACER("TBool CGlxtnZoomedImageTask::DoRunError(TInt aError)");
-    iFileUtility.ClearBadFileMarker();
-    Client().ThumbnailFetchComplete(ItemId(), EGlxThumbnailQualityHigh, aError);
-
-    return EFalse;
-    }
-
-// -----------------------------------------------------------------------------
-// DecodePartialImageL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnZoomedImageTask::DecodePartialImageL(TRequestStatus& aStatus)
-    {
-    TRACER("void CGlxtnZoomedImageTask::DecodePartialImageL(TRequestStatus& aStatus)");
-    TRAPD(err, CreateDecoderL(CExtJpegDecoder::EHwImplementation));
-    if ( KErrNone != err )
-        {
-        CreateDecoderL(CExtJpegDecoder::ESwImplementation);
-        }
-
-    TSize sourceSize(iDecoder->FrameInfo().iOverallSizeInPixels);
-    if ( 0 == sourceSize.iWidth || 0 == sourceSize.iHeight )
-        {
-        User::Leave(KErrCorrupt);
-        }
-
-    iCroppingRect.Intersection(TRect(sourceSize));
-    if ( iCroppingRect.IsEmpty() )
-        {
-        User::Leave(KErrArgument);
-        }
-
-    // Find max scaling factor which won't make image smaller than target size
-    TInt shift = 3;
-    while ( shift
-            && (sourceSize.iWidth >> shift) < iRequestedSize.iWidth
-            && (sourceSize.iHeight >> shift) < iRequestedSize.iHeight )
-        {
-        shift--;
-        }
-    TInt fudge = (1 << shift) - 1;  // Used to "round up" the scaled values
-    TSize loadSize((iCroppingRect.Width() + fudge) >> shift,
-                    (iCroppingRect.Height() + fudge) >> shift);
-
-    // Resize empty bitmap to required size
-    User::LeaveIfError(iThumbnail->Resize(loadSize));
-
-    iDecoder->SetCroppingL(iCroppingRect);
-    iDecoder->Convert(&aStatus, *iThumbnail);
-    }
-
-// -----------------------------------------------------------------------------
-// CreateDecoderL
-// -----------------------------------------------------------------------------
-//
-void CGlxtnZoomedImageTask::CreateDecoderL(TInt aDecoderType)
-    {
-    TRACER("void CGlxtnZoomedImageTask::CreateDecoderL(TInt aDecoderType)");
-    delete iDecoder;
-    iDecoder = NULL;
-    iDecoder = CExtJpegDecoder::FileNewL(
-                    static_cast<CExtJpegDecoder::TDecoderType>(aDecoderType),
-                    iFileUtility.FsSession(), iInfo->FilePath());
-
-    if ( !(CExtJpegDecoder::ECapCropping & iDecoder->CapabilitiesL()) )
-        {
-        User::Leave(KErrNotSupported);
-        }
-    }
-
-//  End of File  
--- a/engine/collectionframework/thumbnailcreator/test/BMARM/ut_cglxtndeletethumbnailstasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
-	CreateTestSuiteL__Fv @ 1 NONAME R3UNUSED ; CreateTestSuiteL(void)
--- a/engine/collectionframework/thumbnailcreator/test/BMARM/ut_cglxtnfilteravailabletasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
-	CreateTestSuiteL__Fv @ 1 NONAME R3UNUSED ; CreateTestSuiteL(void)
--- a/engine/collectionframework/thumbnailcreator/test/BMARM/ut_cglxtngeneratethumbnailtasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
-	CreateTestSuiteL__Fv @ 1 NONAME R3UNUSED ; CreateTestSuiteL(void)
--- a/engine/collectionframework/thumbnailcreator/test/BMARM/ut_cglxtnquickthumbnailtasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
-	CreateTestSuiteL__Fv @ 1 NONAME R3UNUSED ; CreateTestSuiteL(void)
--- a/engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtndeletethumbnailstasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
-
--- a/engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtnfilteravailabletasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void)
-
--- a/engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtngeneratethumbnailtasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-EXPORTS
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * __cdecl CreateTestSuiteL(void)
-	??1CAdisDisplayChain@@UAE@XZ @ 2 NONAME ; CAdisDisplayChain::~CAdisDisplayChain(void)
-	?Cancel@CAdisDisplayChain@@QAEXXZ @ 3 NONAME ; void CAdisDisplayChain::Cancel(void)
-	?GetParL@CAdisDisplayChain@@QAEXPAXW4TADCPar@1@@Z @ 4 NONAME ; void CAdisDisplayChain::GetParL(void *, enum CAdisDisplayChain::TADCPar)
-	?IsSupported@CAdisDisplayChain@@QAEHW4TADCPar@1@@Z @ 5 NONAME ; int CAdisDisplayChain::IsSupported(enum CAdisDisplayChain::TADCPar)
-	?NewL@CAdisDisplayChain@@SAPAV1@H@Z @ 6 NONAME ; class CAdisDisplayChain * CAdisDisplayChain::NewL(int)
-	?NewL@CGlxtnSaveThumbnailTask@@SAPAV1@ABVTGlxMediaId@@PAVCGlxtnFileInfo@@ABVTSize@@PAVCFbsBitmap@@PAVMGlxtnThumbnailStorage@@@Z @ 7 NONAME ; class CGlxtnSaveThumbnailTask * CGlxtnSaveThumbnailTask::NewL(class TGlxMediaId const &, class CGlxtnFileInfo *, class TSize const &, class CFbsBitmap *, class MGlxtnThumbnailStorage *)
-	?NewLC@CAdisDisplayChain@@SAPAV1@H@Z @ 8 NONAME ; class CAdisDisplayChain * CAdisDisplayChain::NewLC(int)
-	?ParSetsAvailable@CAdisDisplayChain@@SAHXZ @ 9 NONAME ; int CAdisDisplayChain::ParSetsAvailable(void)
-	?ProcessL@CAdisDisplayChain@@QAEXAAVTRequestStatus@@PBVCFbsBitmap@@AAV3@@Z @ 10 NONAME ; void CAdisDisplayChain::ProcessL(class TRequestStatus &, class CFbsBitmap const *, class CFbsBitmap &)
-	?ProcessL@CAdisDisplayChain@@QAEXPBVCFbsBitmap@@AAV2@@Z @ 11 NONAME ; void CAdisDisplayChain::ProcessL(class CFbsBitmap const *, class CFbsBitmap &)
-	?SetParL@CAdisDisplayChain@@QAEXPBXW4TADCPar@1@@Z @ 12 NONAME ; void CAdisDisplayChain::SetParL(void const *, enum CAdisDisplayChain::TADCPar)
-
--- a/engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtnquickthumbnailtasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * __cdecl CreateTestSuiteL(void)
--- a/engine/collectionframework/thumbnailcreator/test/BWINS/ut_cglxtnzoomedimagetasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-EXPORTS
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * __cdecl CreateTestSuiteL(void)
--- a/engine/collectionframework/thumbnailcreator/test/data/corrupt.jpg	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-this is not a valid jpeg file
\ No newline at end of file
Binary file engine/collectionframework/thumbnailcreator/test/data/red_1x1.jpg has changed
Binary file engine/collectionframework/thumbnailcreator/test/data/tall.jpg has changed
Binary file engine/collectionframework/thumbnailcreator/test/data/wide.jpg has changed
--- a/engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtndeletethumbnailstasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z16CreateTestSuiteLv @ 1 NONAME
-
--- a/engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtnfilteravailabletasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z16CreateTestSuiteLv @ 1 NONAME
-
--- a/engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtngeneratethumbnailtasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-EXPORTS
-	_Z16CreateTestSuiteLv @ 1 NONAME
-	_ZN17CAdisDisplayChain11IsSupportedENS_7TADCParE @ 2 NONAME
-	_ZN17CAdisDisplayChain16ParSetsAvailableEv @ 3 NONAME
-	_ZN17CAdisDisplayChain4NewLEi @ 4 NONAME
-	_ZN17CAdisDisplayChain5NewLCEi @ 5 NONAME
-	_ZN17CAdisDisplayChain6CancelEv @ 6 NONAME
-	_ZN17CAdisDisplayChain7GetParLEPvNS_7TADCParE @ 7 NONAME
-	_ZN17CAdisDisplayChain7SetParLEPKvNS_7TADCParE @ 8 NONAME
-	_ZN17CAdisDisplayChain8ProcessLEPK10CFbsBitmapRS0_ @ 9 NONAME
-	_ZN17CAdisDisplayChain8ProcessLER14TRequestStatusPK10CFbsBitmapRS2_ @ 10 NONAME
-	_ZN17CAdisDisplayChainD0Ev @ 11 NONAME
-	_ZN17CAdisDisplayChainD1Ev @ 12 NONAME
-	_ZN17CAdisDisplayChainD2Ev @ 13 NONAME
-	_ZN23CGlxtnSaveThumbnailTask4NewLERK11TGlxMediaIdP14CGlxtnFileInfoRK5TSizeP10CFbsBitmapP22MGlxtnThumbnailStorage @ 14 NONAME
-	_ZTI17CAdisDisplayChain @ 15 NONAME ; #<TI>#
-	_ZTV17CAdisDisplayChain @ 16 NONAME ; #<VT>#
-
--- a/engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtnquickthumbnailtasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z16CreateTestSuiteLv @ 1 NONAME
-
--- a/engine/collectionframework/thumbnailcreator/test/eabi/ut_cglxtnzoomedimagetasku.def	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-EXPORTS
-	_Z16CreateTestSuiteLv @ 1 NONAME
-
--- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtndeletethumbnailstask.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-/*
-* Copyright (c) 2007 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:   Delete thumbnails task unit tests.
-*
-*/
-
-
-
-#include "../../../../../group/glxbuildcommon.mmh"
-
-TARGET          ut_cglxtndeletethumbnailstask.dll
-TARGETTYPE      dll
-UID             0x1000af5a 0x01700000
-
-CAPABILITY              ALL -TCB
-
-SOURCEPATH              ../ut_cglxtndeletethumbnailstask
-SOURCE                  ut_cglxtndeletethumbnailstaskdllmain.cpp
-SOURCE                  ut_cglxtndeletethumbnailstask.cpp
- 
-// Sources needed by the test
-SOURCEPATH              ../../src
-SOURCE                  glxtndeletethumbnailstask.cpp
-SOURCE                  glxtntask.cpp
-
-USERINCLUDE             ../inc
-USERINCLUDE             ../ut_cglxtndeletethumbnailstask
-// System includes from the source tree
-SYSTEMINCLUDE           ../../../../../inc
-SYSTEMINCLUDE           ../../inc
-// System includes from epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE           /epoc32/include/Digia/EUnit
-
-LIBRARY                 efsrv.lib
-LIBRARY                 EUnit.lib
-LIBRARY                 EUnitUtil.lib
-LIBRARY                 euser.lib
-SMPSAFE
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnfilteravailabletask.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Thumbnail availability filter task unit tests.
-*
-*/
-
-
-
-#include "../../../../../group/glxbuildcommon.mmh"
-
-TARGET          ut_cglxtnfilteravailabletask.dll
-TARGETTYPE      dll
-UID             0x1000af5a 0x01700000
-
-CAPABILITY              ALL -TCB
-
-SOURCEPATH              ../ut_cglxtnfilteravailabletask
-SOURCE                  ut_cglxtnfilteravailabletaskdllmain.cpp
-SOURCE                  ut_cglxtnfilteravailabletask.cpp
- 
-// Sources needed by the test
-SOURCEPATH              ../../src
-SOURCE                  glxtnfilteravailabletask.cpp
-SOURCE                  glxtntask.cpp
-
-USERINCLUDE             ../inc
-USERINCLUDE             ../ut_cglxtnfilteravailabletask
-// System includes from the source tree
-SYSTEMINCLUDE           ../../../../../inc
-SYSTEMINCLUDE           ../../inc
-// System includes from epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE           /epoc32/include/Digia/EUnit
-
-LIBRARY                 efsrv.lib
-LIBRARY                 EUnit.lib
-LIBRARY                 EUnitUtil.lib
-LIBRARY                 euser.lib
-
-SMPSAFE
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtngeneratethumbnailtask.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:   Thumbnail generation task unit tests.
-*
-*/
-
-
-
-MACRO ENABLE_VED
-#define ENABLE_VED
-
-#include "../../../../../group/glxbuildcommon.mmh"
-
-TARGET          ut_cglxtngeneratethumbnailtask.dll
-TARGETTYPE      dll
-UID             0x1000af5a 0x01700000
-
-CAPABILITY              ALL -TCB
-
-SOURCEPATH              ../ut_cglxtngeneratethumbnailtask
-SOURCE                  ut_cglxtngeneratethumbnailtaskdllmain.cpp
-SOURCE                  ut_cglxtngeneratethumbnailtask.cpp
-
-SOURCEPATH              ../stubs
-SOURCE                  glxadisstub.cpp
-SOURCE                  glxtnfileutilitystub.cpp
-
-// Sources needed by the test
-SOURCEPATH              ../../src
-SOURCE                  glxtnfileinfo.cpp
-SOURCE                  glxtngeneratethumbnailtask.cpp
-SOURCE                  glxtnimagedecoderfactory.cpp
-SOURCE                  glxtnimageutility.cpp
-SOURCE                  glxtnloadthumbnailtask.cpp
-SOURCE                  glxtntask.cpp
-SOURCE                  glxtnvideoutility.cpp
-
-USERINCLUDE             ../inc
-USERINCLUDE             ../ut_cglxtngeneratethumbnailtask
-// System includes from the source tree
-SYSTEMINCLUDE           ../../../../../inc
-SYSTEMINCLUDE           ../../inc
-// System includes from epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE           /epoc32/include/Digia/EUnit
-
-LIBRARY                 bitgdi.lib
-LIBRARY                 caf.lib
-LIBRARY                 efsrv.lib
-LIBRARY                 estor.lib
-LIBRARY                 EUnit.lib
-LIBRARY                 EUnitUtil.lib
-LIBRARY                 euser.lib
-LIBRARY                 fbscli.lib
-LIBRARY                 iclextjpegapi.lib
-LIBRARY                 imageconversion.lib
-LIBRARY                 ecom.lib
-#ifdef ENABLE_VED
-LIBRARY                 vedengine.lib
-#else
-LIBRARY                 tneengine.lib
-#endif
-SMPSAFE
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnquickthumbnailtask.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:   Quick thumbnail generation task unit tests.
-*
-*/
-
-
-
-MACRO ENABLE_VED
-#define ENABLE_VED
-
-#include "../../../../../group/glxbuildcommon.mmh"
-
-TARGET          ut_cglxtnquickthumbnailtask.dll
-TARGETTYPE      dll
-UID             0x1000af5a 0x01700000
-
-CAPABILITY              ALL -TCB
-
-SOURCEPATH              ../ut_cglxtnquickthumbnailtask
-SOURCE                  ut_cglxtnquickthumbnailtaskDllMain.cpp
-SOURCE                  UT_CGlxtnQuickThumbnailTask.cpp
-
-SOURCEPATH              ../stubs
-SOURCE                  glxtnfileutilitystub.cpp
-
-// Sources needed by the test
-SOURCEPATH              ../../src
-SOURCE                  glxtnfileinfo.cpp
-SOURCE                  glxtnimagedecoderfactory.cpp
-SOURCE                  glxtnloadthumbnailtask.cpp
-SOURCE                  glxtnquickthumbnailtask.cpp
-SOURCE                  glxtntask.cpp
-SOURCE                  glxtnvideoutility.cpp
-
-USERINCLUDE             ../inc
-USERINCLUDE             ../ut_cglxtnquickthumbnailtask
-// System includes from the source tree
-SYSTEMINCLUDE           ../../../../../inc
-SYSTEMINCLUDE           ../../inc
-// System includes from epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE           /epoc32/include/Digia/EUnit
-
-
-LIBRARY                 adis.lib
-LIBRARY                 bitgdi.lib
-LIBRARY                 caf.lib
-LIBRARY                 efsrv.lib
-LIBRARY                 EUnit.lib
-LIBRARY                 EUnitUtil.lib
-LIBRARY                 estor.lib
-LIBRARY                 euser.lib
-LIBRARY                 exiflib.lib
-LIBRARY                 fbscli.lib
-LIBRARY                 iclextjpegapi.lib
-LIBRARY                 imageconversion.lib
-LIBRARY                 ecom.lib
-#ifdef ENABLE_VED
-LIBRARY                 vedengine.lib
-#else
-LIBRARY                 tneengine.lib
-#endif
-SMPSAFE
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/group/ut_cglxtnzoomedimagetask.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:   Cropped thumbnail generation task unit tests.
-*
-*/
-
-
-
-#include "../../../../../group/glxbuildcommon.mmh"
-
-TARGET          ut_cglxtnzoomedimagetask.dll
-TARGETTYPE      dll
-UID             0x1000af5a 0x01700000
-
-CAPABILITY              ALL -TCB
-
-SOURCEPATH              ../ut_cglxtnzoomedimagetask
-SOURCE                  ut_cglxtnzoomedimagetaskdllmain.cpp
-SOURCE                  ut_cglxtnzoomedimagetask.cpp
-
-SOURCEPATH              ../stubs
-SOURCE                  glxtnfileutilitystub.cpp
-
-// Sources needed by the test
-SOURCEPATH              ../../src
-SOURCE                  glxtnfileinfo.cpp
-SOURCE                  glxtnimagedecoderfactory.cpp
-SOURCE                  glxtnimageutility.cpp
-SOURCE                  glxtnzoomedimagetask.cpp
-SOURCE                  glxtntask.cpp
-
-USERINCLUDE             ../inc
-USERINCLUDE             ../ut_cglxtnzoomedimagetask
-// System includes from the source tree
-SYSTEMINCLUDE           ../../../../../inc
-SYSTEMINCLUDE           ../../inc
-// System includes from epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE           /epoc32/include/Digia/EUnit
-
-LIBRARY                 adis.lib
-LIBRARY                 caf.lib
-LIBRARY                 efsrv.lib
-LIBRARY                 estor.lib
-LIBRARY                 EUnit.lib
-LIBRARY                 EUnitUtil.lib
-LIBRARY                 euser.lib
-LIBRARY                 fbscli.lib
-LIBRARY                 iclextjpegapi.lib
-LIBRARY                 imageconversion.lib
-LIBRARY                 ecom.lib
-
-LIBRARY		flogger.lib	// for logging to file
-SMPSAFE
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/inc/dummytaskmanager.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Thumbnail task unit tests.
-*
-*/
-
-
-
-#ifndef __DUMMYTASKMANAGER_H__
-#define __DUMMYTASKMANAGER_H__
-
-// HACK: Make CDummyTaskManager a friend of CGlxtnTask
-#define CDummyTaskManager CGlxtnTaskManager
-
-//  CLASS DEFINITION
-
-/**
-* Dummy task manager to run a single task within a unit test.
-*/
-NONSHARABLE_CLASS( CDummyTaskManager ) : public CActive
-    {
-public:
-    enum TExecutionOrder
-        {
-        ELastOut,	// Old tasks with the same priority get executed before the new task
-        EFirstOut	// New task gets executed before other tasks with the same priority
-        };
-
-    CDummyTaskManager(CGlxtnTask* aTask);
-    void StartTaskL();
-    void AddTaskL(CGlxtnTask* aTask, TExecutionOrder aExecutionOrder = ELastOut);
-
-private:    // From CActive
-    void RunL();
-    void DoCancel();
-    TInt RunError(TInt aError);
-
-private:
-    CGlxtnTask* iTask; // Not owned
-    };
-
-// ---------------------------------------------------------------------------
-
-CDummyTaskManager::CDummyTaskManager(CGlxtnTask* aTask)
-    : CActive(EPriorityStandard), iTask(aTask)
-    {
-    CActiveScheduler::Add(this);
-    }
-
-void CDummyTaskManager::StartTaskL()
-    {
-    iTask->StartL(iStatus);
-    if ( iTask->State() != CGlxtnTask::EComplete ) 
-        {
-        SetActive();
-        CActiveScheduler::Start();
-        }
-    }
-
-void CDummyTaskManager::AddTaskL(CGlxtnTask* /*aTask*/, TExecutionOrder /*aExecutionOrder*/)
-    {
-    User::Leave(KErrNotSupported);
-    }
-
-void CDummyTaskManager::RunL()
-    {
-    iTask->RunL(iStatus);
-    if ( iTask->State() == CGlxtnTask::EComplete ) 
-        {
-        CActiveScheduler::Stop();
-        }
-    else
-        {
-        SetActive();
-        }
-    }
-
-void CDummyTaskManager::DoCancel()
-    {
-    iTask->Cancel();
-    }
-
-TInt CDummyTaskManager::RunError(TInt aError)
-    {
-    EUNIT_PRINT(_L("CDummyTaskManager RunError(%d)"), aError);
-    iTask->RunError(aError);
-    if ( CGlxtnTask::ERunning == iTask->State() )
-        {
-        SetActive();
-        }
-    else
-        {
-        CActiveScheduler::Stop();
-        }
-    return KErrNone;
-    }
-
-#endif  // __DUMMYTASKMANAGER_H__
-
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/stubs/glxadisstub.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:   Stub for ADIS processing methods
-*
-*/
-
-
-
-#include <AdisDisplayChain.h>
-
-EXPORT_C TInt CAdisDisplayChain::ParSetsAvailable()
-    {
-    return 2;
-    }
-
-EXPORT_C CAdisDisplayChain* CAdisDisplayChain::NewL(
-    TInt aParSetIndex )
-    {
-    CAdisDisplayChain* self = NewLC(aParSetIndex);
-    CleanupStack::Pop(self);
-    return self;
-    }
-
-EXPORT_C CAdisDisplayChain* CAdisDisplayChain::NewLC(
-    TInt /*aParSetIndex*/ )
-    {
-    CAdisDisplayChain* self = new (ELeave) CAdisDisplayChain;
-    CleanupStack::PushL(self);
-    return self;
-    }
-
-CAdisDisplayChain::CAdisDisplayChain()
-    {
-    }
-
-EXPORT_C CAdisDisplayChain::~CAdisDisplayChain()
-    {
-    }
-
-EXPORT_C TBool CAdisDisplayChain::IsSupported( TADCPar /*aParID*/ )
-    {
-    return ETrue;
-    }
-
-EXPORT_C void CAdisDisplayChain::ProcessL( 
-    const CFbsBitmap* /*aScalerInputBitmap*/, 
-    CFbsBitmap&       /*aBitmap*/ )
-    {
-    // Do nothing
-    }
-
-EXPORT_C void CAdisDisplayChain::ProcessL( 
-    TRequestStatus&   aRequestStatus, 
-    const CFbsBitmap* aScalerInputBitmap, 
-    CFbsBitmap&       aBitmap )
-    {
-    aRequestStatus = KRequestPending;
-
-    ProcessL(aScalerInputBitmap, aBitmap);
-
-    TRequestStatus* status = &aRequestStatus;
-    User::RequestComplete(status, KErrNone);
-    }
-
-EXPORT_C void CAdisDisplayChain::Cancel()
-    {
-    // Do nothing
-    }
-
-EXPORT_C void CAdisDisplayChain::SetParL( const TAny* /*aPar*/, TADCPar /*aParID*/ )
-    {
-    // Do nothing
-    }
-
-EXPORT_C void CAdisDisplayChain::GetParL( TAny* /*aPar*/, TADCPar /*aParID*/ )
-    {
-    // Do nothing
-    }
-
-//  END OF FILE
--- a/engine/collectionframework/thumbnailcreator/test/stubs/glxtnfileutilitystub.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Utility for thumbnail tasks handling files
-*
-*/
-
-
-
-#include <glxtnfileutility.h>
-
-/*static*/ CGlxtnFileUtility* CGlxtnFileUtility::NewL()
-    {
-    CGlxtnFileUtility* self = new (ELeave) CGlxtnFileUtility;
-
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-CGlxtnFileUtility::~CGlxtnFileUtility()
-    {
-	iFs.Close();
-    }
-
-RFs& CGlxtnFileUtility::FsSession()
-    {
-    return iFs;
-    }
-
-void CGlxtnFileUtility::CheckBadFileListL(const TDesC& /*aFilename*/)
-    {
-    }
-
-void CGlxtnFileUtility::ClearBadFileMarker()
-    {
-    }
-
-TBool CGlxtnFileUtility::IsPersistentSize(const TSize& /*aSize*/)
-    {
-    return EFalse;
-    }
-
-CGlxtnFileUtility::CGlxtnFileUtility()
-    {
-    }
-
-void CGlxtnFileUtility::ConstructL()
-    {
-	User::LeaveIfError(iFs.Connect());
-    }
-
-//  END OF FILE
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtndeletethumbnailstask/ut_cglxtndeletethumbnailstask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/*
-* Copyright (c) 2007 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:   Delete thumbnails task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "ut_cglxtndeletethumbnailstask.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-#include <fbs.h>
-#include <Ecom\ECom.h>
-
-//  INTERNAL INCLUDES
-#include "glxtndeletethumbnailstask.h"
-#include "dummytaskmanager.h"
-
-const TUint KTestMediaId = 27;
-
-// ---------------------------------------------------------------------------
-
-// CONSTRUCTION
-UT_CGlxtnDeleteThumbnailsTask* UT_CGlxtnDeleteThumbnailsTask::NewL()
-    {
-    UT_CGlxtnDeleteThumbnailsTask* self = UT_CGlxtnDeleteThumbnailsTask::NewLC();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-UT_CGlxtnDeleteThumbnailsTask* UT_CGlxtnDeleteThumbnailsTask::NewLC()
-    {
-    UT_CGlxtnDeleteThumbnailsTask* self = new( ELeave ) UT_CGlxtnDeleteThumbnailsTask();
-    CleanupStack::PushL( self );
-
-    self->ConstructL();
-
-    return self;
-    }
-
-// Destructor (virtual by CBase)
-UT_CGlxtnDeleteThumbnailsTask::~UT_CGlxtnDeleteThumbnailsTask()
-    {
-    }
-
-// Default constructor
-UT_CGlxtnDeleteThumbnailsTask::UT_CGlxtnDeleteThumbnailsTask()
-    {
-    }
-
-// Second phase construct
-void UT_CGlxtnDeleteThumbnailsTask::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-    }
-
-//  METHODS
-
-void UT_CGlxtnDeleteThumbnailsTask::ThumbnailFetchComplete(
-    const TGlxMediaId& /*aItemId*/, TGlxThumbnailQuality /*aQuality*/, TInt /*aErrorCode*/)
-    {
-    EUNIT_FAIL_TEST("ThumbnailFetchComplete() called");
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::ThumbnailDeletionComplete(
-                                const TGlxMediaId& aItemId, TInt aErrorCode)
-    {
-    EUNIT_ASSERT_EQUALS( iIdDeleted, aItemId.Value() );
-    iError = aErrorCode;
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::FilterAvailableComplete(
-                const RArray<TGlxMediaId>& /*aIdArray*/, TInt /*aErrorCode*/ )
-    {
-    EUNIT_FAIL_TEST("FilterAvailableComplete() called");
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::FetchFileInfoL(CGlxtnFileInfo* /*aInfo*/,
-                        const TGlxMediaId& /*aItemId*/, TRequestStatus* aStatus)
-    {
-    *aStatus = KRequestPending;
-    User::RequestComplete(aStatus, KErrNone);
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::CancelFetchUri(const TGlxMediaId& /*aItemId*/)
-    {
-    }
-
-MGlxtnThumbnailStorage* UT_CGlxtnDeleteThumbnailsTask::ThumbnailStorage()
-    {
-    return this;
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::LoadThumbnailDataL(HBufC8*& /*aData*/, TGlxImageDataFormat& /*aFormat*/,
-            const TGlxMediaId& /*aId*/, const CGlxtnFileInfo& /*aFileInfo*/,
-            const TSize& /*aSize*/, TRequestStatus* /*aStatus*/)
-    {
-    EUNIT_FAIL_TEST("LoadThumbnailDataL() called");
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::SaveThumbnailDataL(const TDesC8& /*aData*/,
-            TGlxImageDataFormat /*aFormat*/, const TGlxMediaId& /*aId*/,
-            const CGlxtnFileInfo& /*aFileInfo*/, const TSize& /*aSize*/,
-            TRequestStatus* /*aStatus*/)
-    {
-    EUNIT_FAIL_TEST("SaveThumbnailDataL() called");
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::DeleteThumbnailsL(const TGlxMediaId& aId,
-            const CGlxtnFileInfo& /*aFileInfo*/, TRequestStatus* aStatus)
-    {
-    iIdDeleted = aId.Value();
-
-    *aStatus = KRequestPending;
-    User::RequestComplete(aStatus, KErrNone);
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::CleanupThumbnailsL(TRequestStatus* /*aStatus*/)
-    {
-    EUNIT_FAIL_TEST("CleanupThumbnailsL() called");
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::IsThumbnailAvailableL(const TGlxMediaId& /*aId*/,
-            const CGlxtnFileInfo& /*aFileInfo*/,
-            const TSize& /*aSize*/, TRequestStatus* /*aStatus*/)
-    {
-    EUNIT_FAIL_TEST("IsThumbnailAvailableL() called");
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::StorageCancel()
-    {
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::NotifyBackgroundError(
-            const TGlxMediaId& /*aId*/, TInt /*aError*/)
-    {
-    EUNIT_FAIL_TEST("NotifyBackgroundError() called");
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::SetupL()
-    {
-    TGlxMediaId id(KTestMediaId);
-    iDeleteThumbnailsTask = CGlxtnDeleteThumbnailsTask::NewL(id, *this);
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::Teardown()
-    {
-    delete iDeleteThumbnailsTask;
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::UT_CGlxtnDeleteThumbnailsTask_ConstructL()
-    {
-    // Check the task was correctly constructed
-    EUNIT_ASSERT( NULL != iDeleteThumbnailsTask );
-    EUNIT_ASSERT_EQUALS( iDeleteThumbnailsTask->Id().Value(), KGlxtnTaskIdDeleteThumbnails );
-    EUNIT_ASSERT_EQUALS( iDeleteThumbnailsTask->Storage(), this );
-    }
-
-void UT_CGlxtnDeleteThumbnailsTask::UT_CGlxtnDeleteThumbnailsTask_DeleteL()
-    {
-    iIdDeleted = KGlxInvalidIdValue;
-
-    CDummyTaskManager* tm = new (ELeave) CDummyTaskManager(iDeleteThumbnailsTask);
-    CleanupStack::PushL(tm);
-    tm->StartTaskL();
-    User::LeaveIfError(iError);
-    CleanupStack::PopAndDestroy(tm);
-
-    EUNIT_ASSERT_EQUALS( iIdDeleted, KTestMediaId );
-    }
-
-//  TEST TABLE
-
-EUNIT_BEGIN_TEST_TABLE(
-    UT_CGlxtnDeleteThumbnailsTask,
-    "Unit tests for CGlxtnDeleteThumbnailsTask.",
-    "UNIT" )
-
-EUNIT_TEST(
-    "Test construction of CGlxtnDeleteThumbnailsTask",
-    "CGlxtnDeleteThumbnailsTask",
-    "NewL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnDeleteThumbnailsTask_ConstructL, Teardown)
-
-EUNIT_TEST(
-    "Test deleting thumbnails",
-    "CGlxtnDeleteThumbnailsTask",
-    "StartL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnDeleteThumbnailsTask_DeleteL, Teardown)
-
-EUNIT_ALLOC_TEST(
-    "Test alloc failures",
-    "CGlxtnDeleteThumbnailsTask",
-    "StartL",
-    "ERRORHANDLING",
-    SetupL, UT_CGlxtnDeleteThumbnailsTask_DeleteL, Teardown)
-
-EUNIT_END_TEST_TABLE
-
-//  END OF FILE
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtndeletethumbnailstask/ut_cglxtndeletethumbnailstask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
-* Copyright (c) 2007 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:   Delete thumbnails task unit tests.
-*
-*/
-
-
-
-#ifndef __UT_CGLXTNDELETETHUMBNAILSTASK_H__
-#define __UT_CGLXTNDELETETHUMBNAILSTASK_H__
-
-//  EXTERNAL INCLUDES
-
-#include <CEUnitTestSuiteClass.h>
-#include <f32file.h>
-
-//  INTERNAL INCLUDES
-
-#include "mglxtnstorage.h"
-#include "mglxtnthumbnailcreatorclient.h"
-
-//  FORWARD DECLARATIONS
-
-class CGlxtnDeleteThumbnailsTask;
-
-#include <e32def.h>
-#ifndef NONSHARABLE_CLASS
-    #define NONSHARABLE_CLASS(x) class x
-#endif
-
-//  CLASS DEFINITION
-/**
- *
- * EUnitWizard generated test class. 
- *
- */
-NONSHARABLE_CLASS( UT_CGlxtnDeleteThumbnailsTask )
-     : public CEUnitTestSuiteClass, public MGlxtnThumbnailCreatorClient,
-        public MGlxtnThumbnailStorage
-    {
-    public:     // Constructors and destructors
-
-        /**
-         * Two phase construction
-         */
-        static UT_CGlxtnDeleteThumbnailsTask* NewL();
-        static UT_CGlxtnDeleteThumbnailsTask* NewLC();
-        /**
-         * Destructor
-         */
-        ~UT_CGlxtnDeleteThumbnailsTask();
-
-    private:    // Constructors and destructors
-
-        UT_CGlxtnDeleteThumbnailsTask();
-        void ConstructL();
-
-    private:    // From MGlxtnThumbnailCreatorClient
-        void ThumbnailFetchComplete(const TGlxMediaId& aItemId,
-                            TGlxThumbnailQuality aQuality, TInt aErrorCode);
-        void ThumbnailDeletionComplete(const TGlxMediaId& aItemId, TInt aErrorCode);
-        void FilterAvailableComplete( const RArray<TGlxMediaId>& aIdArray,
-                                        TInt aErrorCode );
-        void FetchFileInfoL(CGlxtnFileInfo* aInfo, const TGlxMediaId& aItemId,
-                        TRequestStatus* aStatus);
-        void CancelFetchUri(const TGlxMediaId& aItemId);
-        MGlxtnThumbnailStorage* ThumbnailStorage();
-
-    public: // Functions from MGlxtnThumbnailStorage
-        void LoadThumbnailDataL(HBufC8*& aData, TGlxImageDataFormat& aFormat,
-                    const TGlxMediaId& aId, const CGlxtnFileInfo& aFileInfo,
-                    const TSize& aSize, TRequestStatus* aStatus);
-        void SaveThumbnailDataL(const TDesC8& aData,
-                    TGlxImageDataFormat aFormat, const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo, const TSize& aSize,
-                    TRequestStatus* aStatus);
-        void DeleteThumbnailsL(const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo, TRequestStatus* aStatus);
-        void CleanupThumbnailsL(TRequestStatus* aStatus);
-        void IsThumbnailAvailableL(const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo,
-                    const TSize& aSize, TRequestStatus* aStatus);
-        void StorageCancel();
-        void NotifyBackgroundError(const TGlxMediaId& aId, TInt aError);
-
-    private:    // New methods
-
-        void SetupL();
-        void Teardown();
-
-        void UT_CGlxtnDeleteThumbnailsTask_ConstructL();
-        void UT_CGlxtnDeleteThumbnailsTask_DeleteL();
-
-    private:    // Data
-
-        CGlxtnDeleteThumbnailsTask* iDeleteThumbnailsTask;
-    	TUint iIdDeleted;
-    	TInt iError;
-
-        EUNIT_DECLARE_TEST_TABLE;
-    };
-
-#endif  //  __UT_CGLXTNDELETETHUMBNAILSTASK_H__
-
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtndeletethumbnailstask/ut_cglxtndeletethumbnailstaskdllmain.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2007 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:   Delete thumbnails task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "ut_cglxtndeletethumbnailstask.h"
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuite.h>
-
-/**
- * Test suite factory function.
- */
-EXPORT_C MEUnitTest* CreateTestSuiteL()
-    {
-    return UT_CGlxtnDeleteThumbnailsTask::NewL();
-    }
-
-//  END OF FILE
-
-
-
-
-
-
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnfilteravailabletask/ut_cglxtnfilteravailabletask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Thumbnail availability filter task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "ut_cglxtnfilteravailabletask.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-#include <fbs.h>
-#include <Ecom\ECom.h>
-
-//  INTERNAL INCLUDES
-#include "glxtnfilteravailabletask.h"
-#include "dummytaskmanager.h"
-
-const TUint KGlxMediaIdWithThumbnail = 1;
-const TUint KGlxMediaIdWithoutThumbnail = 2;
-const TInt KTestSizeWidth = 320;
-const TInt KTestSizeHeight = 240;
-
-// ---------------------------------------------------------------------------
-
-// CONSTRUCTION
-UT_CGlxtnFilterAvailableTask* UT_CGlxtnFilterAvailableTask::NewL()
-    {
-    UT_CGlxtnFilterAvailableTask* self = UT_CGlxtnFilterAvailableTask::NewLC();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-UT_CGlxtnFilterAvailableTask* UT_CGlxtnFilterAvailableTask::NewLC()
-    {
-    UT_CGlxtnFilterAvailableTask* self = new( ELeave ) UT_CGlxtnFilterAvailableTask();
-    CleanupStack::PushL( self );
-
-    self->ConstructL();
-
-    return self;
-    }
-
-// Destructor (virtual by CBase)
-UT_CGlxtnFilterAvailableTask::~UT_CGlxtnFilterAvailableTask()
-    {
-    }
-
-// Default constructor
-UT_CGlxtnFilterAvailableTask::UT_CGlxtnFilterAvailableTask()
-    {
-    }
-
-// Second phase construct
-void UT_CGlxtnFilterAvailableTask::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-    }
-
-//  METHODS
-
-void UT_CGlxtnFilterAvailableTask::ThumbnailFetchComplete(
-    const TGlxMediaId& /*aItemId*/, TGlxThumbnailQuality /*aQuality*/, TInt /*aErrorCode*/)
-    {
-    EUNIT_FAIL_TEST("ThumbnailFetchComplete() called");
-    }
-
-void UT_CGlxtnFilterAvailableTask::ThumbnailDeletionComplete(
-                                const TGlxMediaId& /*aItemId*/, TInt /*aErrorCode*/)
-    {
-    EUNIT_FAIL_TEST("ThumbnailDeletionComplete() called");
-    }
-
-void UT_CGlxtnFilterAvailableTask::FilterAvailableComplete(
-                        const RArray<TGlxMediaId>& aIdArray, TInt aErrorCode )
-    {
-    EUNIT_ASSERT( KErrNotFound == aIdArray.Find(
-                                    TGlxMediaId(KGlxMediaIdWithThumbnail)) );
-    EUNIT_ASSERT( KErrNotFound != aIdArray.Find(
-                                    TGlxMediaId(KGlxMediaIdWithoutThumbnail)) );
-    iError = aErrorCode;
-    }
-
-void UT_CGlxtnFilterAvailableTask::FetchFileInfoL(CGlxtnFileInfo* /*aInfo*/,
-                        const TGlxMediaId& /*aItemId*/, TRequestStatus* aStatus)
-    {
-    *aStatus = KRequestPending;
-    User::RequestComplete(aStatus, KErrNone);
-    }
-
-void UT_CGlxtnFilterAvailableTask::CancelFetchUri(const TGlxMediaId& /*aItemId*/)
-    {
-    }
-
-MGlxtnThumbnailStorage* UT_CGlxtnFilterAvailableTask::ThumbnailStorage()
-    {
-    return this;
-    }
-
-void UT_CGlxtnFilterAvailableTask::LoadThumbnailDataL(HBufC8*& /*aData*/, TGlxImageDataFormat& /*aFormat*/,
-            const TGlxMediaId& /*aId*/, const CGlxtnFileInfo& /*aFileInfo*/,
-            const TSize& /*aSize*/, TRequestStatus* /*aStatus*/)
-    {
-    EUNIT_FAIL_TEST("FilterAvailableComplete() called");
-    }
-
-void UT_CGlxtnFilterAvailableTask::SaveThumbnailDataL(const TDesC8& /*aData*/,
-            TGlxImageDataFormat /*aFormat*/, const TGlxMediaId& /*aId*/,
-            const CGlxtnFileInfo& /*aFileInfo*/, const TSize& /*aSize*/,
-            TRequestStatus* /*aStatus*/)
-    {
-    EUNIT_FAIL_TEST("FilterAvailableComplete() called");
-    }
-
-void UT_CGlxtnFilterAvailableTask::DeleteThumbnailsL(const TGlxMediaId& /*aId*/,
-            const CGlxtnFileInfo& /*aFileInfo*/, TRequestStatus* /*aStatus*/)
-    {
-    EUNIT_FAIL_TEST("FilterAvailableComplete() called");
-    }
-
-void UT_CGlxtnFilterAvailableTask::CleanupThumbnailsL(TRequestStatus* /*aStatus*/)
-    {
-    EUNIT_FAIL_TEST("FilterAvailableComplete() called");
-    }
-
-void UT_CGlxtnFilterAvailableTask::IsThumbnailAvailableL(const TGlxMediaId& aId,
-            const CGlxtnFileInfo& /*aFileInfo*/,
-            const TSize& aSize, TRequestStatus* aStatus)
-    {
-    TInt result = (KGlxMediaIdWithThumbnail == aId.Value())
-                    ? KGlxThumbnailAvailable : KGlxThumbnailNotAvailable;
-    EUNIT_ASSERT_EQUALS( aSize, iSize );
-    *aStatus = KRequestPending;
-    User::RequestComplete(aStatus, result);
-    }
-
-void UT_CGlxtnFilterAvailableTask::StorageCancel()
-    {
-    }
-
-void UT_CGlxtnFilterAvailableTask::NotifyBackgroundError(
-            const TGlxMediaId& /*aId*/, TInt /*aError*/)
-    {
-    EUNIT_FAIL_TEST("NotifyBackgroundError() called");
-    }
-
-void UT_CGlxtnFilterAvailableTask::SetupL()
-    {
-    iSize.SetSize(KTestSizeWidth, KTestSizeHeight);
-
-    RArray<TGlxMediaId> array;
-    CleanupClosePushL(array);
-    array.AppendL(TGlxMediaId(KGlxMediaIdWithThumbnail));
-    array.AppendL(TGlxMediaId(KGlxMediaIdWithoutThumbnail));
-    iFilterAvailableTask = CGlxtnFilterAvailableTask::NewL(array.Array(),
-                                                            iSize, *this);
-    CleanupStack::PopAndDestroy(&array);
-    }
-
-void UT_CGlxtnFilterAvailableTask::Teardown()
-    {
-    delete iFilterAvailableTask;
-    }
-
-void UT_CGlxtnFilterAvailableTask::UT_CGlxtnFilterAvailableTask_ConstructL()
-    {
-    // Check the task was correctly constructed
-    EUNIT_ASSERT( NULL != iFilterAvailableTask );
-    EUNIT_ASSERT_EQUALS( iFilterAvailableTask->Id().Value(), KGlxtnTaskIdFilterAvailable );
-    EUNIT_ASSERT_EQUALS( iFilterAvailableTask->Storage(), this );
-    }
-
-void UT_CGlxtnFilterAvailableTask::UT_CGlxtnFilterAvailableTask_FilterL()
-    {
-    CDummyTaskManager* tm = new (ELeave) CDummyTaskManager(iFilterAvailableTask);
-    CleanupStack::PushL(tm);
-    tm->StartTaskL();
-    User::LeaveIfError(iError);
-    CleanupStack::PopAndDestroy(tm);
-    }
-
-//  TEST TABLE
-
-EUNIT_BEGIN_TEST_TABLE(
-    UT_CGlxtnFilterAvailableTask,
-    "Unit tests for CGlxtnFilterAvailableTask.",
-    "UNIT" )
-
-EUNIT_TEST(
-    "Test construction of CGlxtnFilterAvailableTask",
-    "CGlxtnFilterAvailableTask",
-    "NewL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnFilterAvailableTask_ConstructL, Teardown)
-
-EUNIT_TEST(
-    "Test filtering of ID array",
-    "CGlxtnFilterAvailableTask",
-    "StartL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnFilterAvailableTask_FilterL, Teardown)
-
-EUNIT_ALLOC_TEST(
-    "Test alloc failures",
-    "CGlxtnFilterAvailableTask",
-    "StartL",
-    "ERRORHANDLING",
-    SetupL, UT_CGlxtnFilterAvailableTask_FilterL, Teardown)
-
-EUNIT_END_TEST_TABLE
-
-//  END OF FILE
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnfilteravailabletask/ut_cglxtnfilteravailabletask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Thumbnail availability filter task unit tests.
-*
-*/
-
-
-
-#ifndef __UT_CGLXTNFILTERAVAILABLETASK_H__
-#define __UT_CGLXTNFILTERAVAILABLETASK_H__
-
-//  EXTERNAL INCLUDES
-
-#include <CEUnitTestSuiteClass.h>
-#include <f32file.h>
-
-//  INTERNAL INCLUDES
-
-#include "mglxtnstorage.h"
-#include "mglxtnthumbnailcreatorclient.h"
-
-//  FORWARD DECLARATIONS
-
-class CGlxtnFilterAvailableTask;
-
-#include <e32def.h>
-#ifndef NONSHARABLE_CLASS
-    #define NONSHARABLE_CLASS(x) class x
-#endif
-
-//  CLASS DEFINITION
-/**
- *
- * EUnitWizard generated test class. 
- *
- */
-NONSHARABLE_CLASS( UT_CGlxtnFilterAvailableTask )
-     : public CEUnitTestSuiteClass, public MGlxtnThumbnailCreatorClient,
-        public MGlxtnThumbnailStorage
-    {
-    public:     // Constructors and destructors
-
-        /**
-         * Two phase construction
-         */
-        static UT_CGlxtnFilterAvailableTask* NewL();
-        static UT_CGlxtnFilterAvailableTask* NewLC();
-        /**
-         * Destructor
-         */
-        ~UT_CGlxtnFilterAvailableTask();
-
-    private:    // Constructors and destructors
-
-        UT_CGlxtnFilterAvailableTask();
-        void ConstructL();
-
-    private:    // From MGlxtnThumbnailCreatorClient
-        void ThumbnailFetchComplete(const TGlxMediaId& aItemId,
-                            TGlxThumbnailQuality aQuality, TInt aErrorCode);
-        void ThumbnailDeletionComplete(const TGlxMediaId& aItemId, TInt aErrorCode);
-        void FilterAvailableComplete( const RArray<TGlxMediaId>& aIdArray,
-                                        TInt aErrorCode );
-        void FetchFileInfoL(CGlxtnFileInfo* aInfo, const TGlxMediaId& aItemId,
-                        TRequestStatus* aStatus);
-        void CancelFetchUri(const TGlxMediaId& aItemId);
-        MGlxtnThumbnailStorage* ThumbnailStorage();
-
-    public: // Functions from MGlxtnThumbnailStorage
-        void LoadThumbnailDataL(HBufC8*& aData, TGlxImageDataFormat& aFormat,
-                    const TGlxMediaId& aId, const CGlxtnFileInfo& aFileInfo,
-                    const TSize& aSize, TRequestStatus* aStatus);
-        void SaveThumbnailDataL(const TDesC8& aData,
-                    TGlxImageDataFormat aFormat, const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo, const TSize& aSize,
-                    TRequestStatus* aStatus);
-        void DeleteThumbnailsL(const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo, TRequestStatus* aStatus);
-        void CleanupThumbnailsL(TRequestStatus* aStatus);
-        void IsThumbnailAvailableL(const TGlxMediaId& aId,
-                    const CGlxtnFileInfo& aFileInfo,
-                    const TSize& aSize, TRequestStatus* aStatus);
-        void StorageCancel();
-        void NotifyBackgroundError(const TGlxMediaId& aId, TInt aError);
-
-    private:    // New methods
-
-        void SetupL();
-        void Teardown();
-
-        void UT_CGlxtnFilterAvailableTask_ConstructL();
-        void UT_CGlxtnFilterAvailableTask_FilterL();
-
-    private:    // Data
-
-        CGlxtnFilterAvailableTask* iFilterAvailableTask;
-    	TSize iSize;
-    	TInt iError;
-
-        EUNIT_DECLARE_TEST_TABLE;
-    };
-
-#endif  //  __UT_CGLXTNFILTERAVAILABLETASK_H__
-
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnfilteravailabletask/ut_cglxtnfilteravailabletaskdllmain.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Thumbnail availability filter task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "ut_cglxtnfilteravailabletask.h"
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuite.h>
-
-/**
- * Test suite factory function.
- */
-EXPORT_C MEUnitTest* CreateTestSuiteL()
-    {
-    return UT_CGlxtnFilterAvailableTask::NewL();
-    }
-
-//  END OF FILE
-
-
-
-
-
-
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtngeneratethumbnailtask/ut_cglxtngeneratethumbnailtask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Thumbnail generation task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "UT_CGlxtnGenerateThumbnailTask.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-#include <fbs.h>
-#include <Ecom\ECom.h>
-
-//  INTERNAL INCLUDES
-#include "glxtngeneratethumbnailtask.h"
-#include "glxtnsavethumbnailtask.h"
-#include "dummytaskmanager.h"
-#include <glxtnfileinfo.h>
-#include <glxthumbnail.h>
-#include "glxtnfileutility.h"
-#include "glxtnthumbnailrequest.h"
-
-EUNIT_DECLARE_PRINTABLE_AS_TINT( TGlxThumbnailQuality )
-
-const TUint KTestMediaId = 1;
-const TInt KTestWidth = 320;
-const TInt KTestHeight = 240;
-const TDisplayMode KTestThumbDisplayMode = KGlxThumbnailDisplayMode;
-
-_LIT(KTestImageUri, "C:\\TncTest\\test.jpg");
-_LIT(KTallImageUri, "C:\\TncTest\\tall.jpg");
-_LIT(KWideImageUri, "C:\\TncTest\\wide.jpg");
-_LIT(KCorruptImageUri, "C:\\TncTest\\corrupt.jpg");
-_LIT(KMissingImageUri, "C:\\TncTest\\does_not_exist.jpg");
-
-// -----------------------------------------------------------------------------
-// CGlxtnSaveThumbnailTask::NewL
-// Dummy implementation.
-// -----------------------------------------------------------------------------
-//
-EXPORT_C CGlxtnSaveThumbnailTask* CGlxtnSaveThumbnailTask::NewL(
-                    const TGlxMediaId& /*aItemId*/,
-                    CGlxtnFileInfo* /*aFileInfo*/, const TSize& /*aSize*/,
-                    CFbsBitmap* /*aThumbnail*/, MGlxtnThumbnailStorage* /*aStorage*/)
-    {
-    User::Leave(KErrNotSupported);
-    return NULL;
-    }
-
-// ---------------------------------------------------------------------------
-
-// CONSTRUCTION
-UT_CGlxtnGenerateThumbnailTask* UT_CGlxtnGenerateThumbnailTask::NewL()
-    {
-    UT_CGlxtnGenerateThumbnailTask* self = UT_CGlxtnGenerateThumbnailTask::NewLC();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-UT_CGlxtnGenerateThumbnailTask* UT_CGlxtnGenerateThumbnailTask::NewLC()
-    {
-    UT_CGlxtnGenerateThumbnailTask* self = new( ELeave ) UT_CGlxtnGenerateThumbnailTask();
-    CleanupStack::PushL( self );
-
-    self->ConstructL();
-
-    return self;
-    }
-
-// Destructor (virtual by CBase)
-UT_CGlxtnGenerateThumbnailTask::~UT_CGlxtnGenerateThumbnailTask()
-    {
-    }
-
-// Default constructor
-UT_CGlxtnGenerateThumbnailTask::UT_CGlxtnGenerateThumbnailTask()
-    {
-    }
-
-// Second phase construct
-void UT_CGlxtnGenerateThumbnailTask::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-
-    // Need to free ecom resources before running tests
-    REComSession::FinalClose();
-    }
-
-//  METHODS
-
-void UT_CGlxtnGenerateThumbnailTask::ThumbnailFetchComplete(
-    const TGlxMediaId& aItemId, TGlxThumbnailQuality aQuality, TInt aErrorCode)
-    {
-	EUNIT_ASSERT_EQUALS( KTestMediaId, aItemId.Value() );
-	iQuality = aQuality;
-    iError = aErrorCode;
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::ThumbnailDeletionComplete(
-                                const TGlxMediaId& /*aItemId*/, TInt /*aErrorCode*/)
-    {
-    EUNIT_FAIL_TEST("ThumbnailDeletionComplete() called");
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::FilterAvailableComplete(
-                const RArray<TGlxMediaId>& /*aIdArray*/, TInt /*aErrorCode*/ )
-    {
-    EUNIT_FAIL_TEST("FilterAvailableComplete() called");
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::FetchFileInfoL(CGlxtnFileInfo* aInfo,
-                        const TGlxMediaId& aItemId, TRequestStatus* aStatus)
-    {
-    EUNIT_ASSERT( NULL != aInfo );
-	EUNIT_ASSERT_EQUALS( KTestMediaId, aItemId.Value() );
-    aInfo->SetFilePathL(iUri);
-
-    *aStatus = KRequestPending;
-    User::RequestComplete(aStatus, KErrNone);
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::CancelFetchUri(const TGlxMediaId& /*aItemId*/)
-    {
-    }
-
-MGlxtnThumbnailStorage* UT_CGlxtnGenerateThumbnailTask::ThumbnailStorage()
-    {
-    return NULL;
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::SetupL()
-    {
-    iFileUtility = CGlxtnFileUtility::NewL();
-    User::LeaveIfError(RFbsSession::Connect(iFileUtility->FsSession()));
-
-    TGlxMediaId id(KTestMediaId);
-
-    iSizeClass.SetSize(KTestWidth, KTestHeight);
-
-    iBitmap = new (ELeave) CFbsBitmap;
-    User::LeaveIfError(iBitmap->Create(TSize(), KTestThumbDisplayMode));
-
-    TGlxThumbnailRequest request(id, iSizeClass,
-                                TGlxThumbnailRequest::EPrioritizeQuality,
-                                iBitmap->Handle(), ETrue);
-    iGenerateTask = CGlxtnGenerateThumbnailTask::NewL(request,
-                                                    *iFileUtility, *this);
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::Teardown()
-    {
-    delete iGenerateTask;
-    iGenerateTask = NULL;
-    delete iBitmap;
-    iBitmap = NULL;
-    if ( RFbsSession::GetSession() )
-        {
-        RFbsSession::Disconnect();
-        }
-    delete iFileUtility;
-    REComSession::FinalClose();
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::UT_CGlxtnGenerateThumbnailTask_ConstructL()
-    {
-    // Check the task was correctly constructed
-    EUNIT_ASSERT( NULL != iGenerateTask );
-    EUNIT_ASSERT_EQUALS( iGenerateTask->Id().Value(), KGlxtnTaskIdGenerateThumbnail );
-    EUNIT_ASSERT_EQUALS( iGenerateTask->ItemId().Value(), KTestMediaId );
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::UT_CGlxtnGenerateThumbnailTask_GenerateL()
-    {
-    DoGenerateL(KTestImageUri);
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::UT_CGlxtnGenerateThumbnailTask_GenerateTallL()
-    {
-    DoGenerateL(KTallImageUri);
-
-    // Preserving aspect ratio should give TN narrower but same height as size class
-    EUNIT_ASSERT( iBitmap->SizeInPixels().iWidth < iSizeClass.iWidth );
-    EUNIT_ASSERT_EQUALS( iBitmap->SizeInPixels().iHeight, iSizeClass.iHeight );
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::UT_CGlxtnGenerateThumbnailTask_GenerateWideL()
-    {
-    DoGenerateL(KWideImageUri);
-
-    // Preserving aspect ratio should give TN less tall but same width as size class
-    EUNIT_ASSERT_EQUALS( iBitmap->SizeInPixels().iWidth, iSizeClass.iWidth );
-    EUNIT_ASSERT( iBitmap->SizeInPixels().iHeight < iSizeClass.iHeight );
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::UT_CGlxtnGenerateThumbnailTask_ErrorCorruptFileL()
-    {
-    EUNIT_ASSERT_LEAVE(DoGenerateL(KCorruptImageUri));
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::UT_CGlxtnGenerateThumbnailTask_ErrorFileNotFoundL()
-    {
-    EUNIT_ASSERT_SPECIFIC_LEAVE(DoGenerateL(KMissingImageUri), KErrNotFound);
-    }
-
-void UT_CGlxtnGenerateThumbnailTask::DoGenerateL(const TDesC& aUri)
-    {
-    iUri.Set(aUri);
-
-    CDummyTaskManager* tm = new (ELeave) CDummyTaskManager(iGenerateTask);
-    CleanupStack::PushL(tm);
-    tm->StartTaskL();
-    User::LeaveIfError(iError);
-    CleanupStack::PopAndDestroy(tm);
-
-    EUNIT_ASSERT_EQUALS( iQuality, EGlxThumbnailQualityHigh );
-    }
-
-//  TEST TABLE
-
-EUNIT_BEGIN_TEST_TABLE(
-    UT_CGlxtnGenerateThumbnailTask,
-    "Unit tests for CGlxtnGenerateThumbnailTask.",
-    "UNIT" )
-
-EUNIT_TEST(
-    "Test construction of CGlxtnGenerateThumbnailTask",
-    "CGlxtnGenerateThumbnailTask",
-    "NewL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnGenerateThumbnailTask_ConstructL, Teardown)
-
-EUNIT_TEST(
-    "Generate a thumbnail",
-    "CGlxtnGenerateThumbnailTask",
-    "HandleThumbnailTaskCompleteL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnGenerateThumbnailTask_GenerateL, Teardown)
-
-EUNIT_TEST(
-    "Generate thumbnail of a tall image",
-    "CGlxtnGenerateThumbnailTask",
-    "HandleThumbnailTaskCompleteL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnGenerateThumbnailTask_GenerateTallL, Teardown)
-
-EUNIT_TEST(
-    "Generate thumbnail of a wide image",
-    "CGlxtnGenerateThumbnailTask",
-    "HandleThumbnailTaskCompleteL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnGenerateThumbnailTask_GenerateWideL, Teardown)
-
-EUNIT_TEST(
-    "Attempting to thumbnail corrupt image",
-    "CGlxtnGenerateThumbnailTask",
-    "DoStartL",
-    "ERRORHANDLING",
-    SetupL, UT_CGlxtnGenerateThumbnailTask_ErrorCorruptFileL, Teardown)
-
-EUNIT_TEST(
-    "Attempting to thumbnail missing file",
-    "CGlxtnGenerateThumbnailTask",
-    "DoStartL",
-    "ERRORHANDLING",
-    SetupL, UT_CGlxtnGenerateThumbnailTask_ErrorFileNotFoundL, Teardown)
-
-EUNIT_ALLOC_TEST(
-    "Test alloc failures",
-    "CGlxtnGenerateThumbnailTask",
-    "HandleThumbnailTaskCompleteL",
-    "ERRORHANDLING",
-    SetupL, UT_CGlxtnGenerateThumbnailTask_GenerateL, Teardown)
-
-EUNIT_END_TEST_TABLE
-
-//  END OF FILE
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtngeneratethumbnailtask/ut_cglxtngeneratethumbnailtask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Thumbnail generation task unit tests.
-*
-*/
-
-
-
-#ifndef __UT_CGLXTNGENERATETHUMBNAILTASK_H__
-#define __UT_CGLXTNGENERATETHUMBNAILTASK_H__
-
-//  EXTERNAL INCLUDES
-
-#include <CEUnitTestSuiteClass.h>
-#include <f32file.h>
-
-//  INTERNAL INCLUDES
-
-#include "mglxtnthumbnailcreatorclient.h"
-
-//  FORWARD DECLARATIONS
-
-class CGlxtnFileUtility;
-class CGlxtnGenerateThumbnailTask;
-class CFbsBitmap;
-
-#include <e32def.h>
-#ifndef NONSHARABLE_CLASS
-    #define NONSHARABLE_CLASS(x) class x
-#endif
-
-//  CLASS DEFINITION
-/**
- *
- * EUnitWizard generated test class. 
- *
- */
-NONSHARABLE_CLASS( UT_CGlxtnGenerateThumbnailTask )
-     : public CEUnitTestSuiteClass, public MGlxtnThumbnailCreatorClient
-    {
-    public:     // Constructors and destructors
-
-        /**
-         * Two phase construction
-         */
-        static UT_CGlxtnGenerateThumbnailTask* NewL();
-        static UT_CGlxtnGenerateThumbnailTask* NewLC();
-        /**
-         * Destructor
-         */
-        ~UT_CGlxtnGenerateThumbnailTask();
-
-    private:    // Constructors and destructors
-
-        UT_CGlxtnGenerateThumbnailTask();
-        void ConstructL();
-
-    private:    // From MGlxtnThumbnailCreatorClient
-        void ThumbnailFetchComplete(const TGlxMediaId& aItemId,
-                            TGlxThumbnailQuality aQuality, TInt aErrorCode);
-        void ThumbnailDeletionComplete(const TGlxMediaId& aItemId, TInt aErrorCode);
-        void FilterAvailableComplete( const RArray<TGlxMediaId>& aIdArray,
-                                        TInt aErrorCode );
-        void FetchFileInfoL(CGlxtnFileInfo* aInfo, const TGlxMediaId& aItemId,
-                        TRequestStatus* aStatus);
-        void CancelFetchUri(const TGlxMediaId& aItemId);
-        MGlxtnThumbnailStorage* ThumbnailStorage();
-
-    private:    // New methods
-
-         void SetupL();
-        
-         void Teardown();
-        
-         void UT_CGlxtnGenerateThumbnailTask_ConstructL();
-         void UT_CGlxtnGenerateThumbnailTask_GenerateL();
-         void UT_CGlxtnGenerateThumbnailTask_GenerateTallL();
-         void UT_CGlxtnGenerateThumbnailTask_GenerateWideL();
-         void UT_CGlxtnGenerateThumbnailTask_ErrorCorruptFileL();
-         void UT_CGlxtnGenerateThumbnailTask_ErrorFileNotFoundL();
-
-        void DoGenerateL(const TDesC& aUri);
-
-    private:    // Data
-
-        CGlxtnFileUtility* iFileUtility;
-        CGlxtnGenerateThumbnailTask* iGenerateTask;
-        CFbsBitmap* iBitmap;
-        TPtrC iUri;
-    	TSize iSizeClass;
-    	TGlxThumbnailQuality iQuality;
-    	TInt iError;
-
-        EUNIT_DECLARE_TEST_TABLE; 
-
-    };
-
-#endif      //  __UT_CGLXTNGENERATETHUMBNAILTASK_H__
-
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtngeneratethumbnailtask/ut_cglxtngeneratethumbnailtaskdllmain.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Thumbnail generation task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "UT_CGlxtnGenerateThumbnailTask.h"
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuite.h>
-
-/**
- * Test suite factory function.
- */
-EXPORT_C MEUnitTest* CreateTestSuiteL()
-    {
-    return UT_CGlxtnGenerateThumbnailTask::NewL();
-    }
-
-//  END OF FILE
-
-
-
-
-
-
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnquickthumbnailtask/ut_cglxtnquickthumbnailtask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,253 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Quick thumbnail generation task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "UT_CGlxtnQuickThumbnailTask.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-#include <fbs.h>
-#include <Ecom\ECom.h>
-
-//  INTERNAL INCLUDES
-#include "glxtnquickthumbnailtask.h"
-#include "dummytaskmanager.h"
-#include <glxtnfileinfo.h>
-#include "glxtnfileutility.h"
-#include "glxtnthumbnailrequest.h"
-#include <glxthumbnail.h>
-
-const TUint KTestMediaId = 1;
-const TInt KTestWidth = 320;
-const TInt KTestHeight = 240;
-const TDisplayMode KTestThumbDisplayMode = KGlxThumbnailCreationMode;
-
-_LIT(KTestImageUri, "C:\\TncTest\\tall.jpg");
-_LIT(KNoExifImageUri, "C:\\TncTest\\no_exif.jpg");
-_LIT(KCorruptImageUri, "C:\\TncTest\\corrupt.jpg");
-_LIT(KMissingImageUri, "C:\\TncTest\\does_not_exist.jpg");
-
-// CONSTRUCTION
-UT_CGlxtnQuickThumbnailTask* UT_CGlxtnQuickThumbnailTask::NewL()
-    {
-    UT_CGlxtnQuickThumbnailTask* self = UT_CGlxtnQuickThumbnailTask::NewLC();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-UT_CGlxtnQuickThumbnailTask* UT_CGlxtnQuickThumbnailTask::NewLC()
-    {
-    UT_CGlxtnQuickThumbnailTask* self = new( ELeave ) UT_CGlxtnQuickThumbnailTask();
-    CleanupStack::PushL( self );
-
-    self->ConstructL();
-
-    return self;
-    }
-
-// Destructor (virtual by CBase)
-UT_CGlxtnQuickThumbnailTask::~UT_CGlxtnQuickThumbnailTask()
-    {
-    }
-
-// Default constructor
-UT_CGlxtnQuickThumbnailTask::UT_CGlxtnQuickThumbnailTask()
-    {
-    }
-
-// Second phase construct
-void UT_CGlxtnQuickThumbnailTask::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-
-    // Need to free ecom resources before running tests
-    REComSession::FinalClose();
-    }
-
-//  METHODS
-
-void UT_CGlxtnQuickThumbnailTask::ThumbnailFetchComplete(
-    const TGlxMediaId& aItemId, TGlxThumbnailQuality aQuality, TInt aErrorCode)
-    {
-	EUNIT_ASSERT_EQUALS( KTestMediaId, aItemId.Value() );
-	iQuality = aQuality;
-    iError = aErrorCode;
-    }
-
-void UT_CGlxtnQuickThumbnailTask::ThumbnailDeletionComplete(
-                                const TGlxMediaId& /*aItemId*/, TInt /*aErrorCode*/)
-    {
-    EUNIT_FAIL_TEST("ThumbnailDeletionComplete() called");
-    }
-
-void UT_CGlxtnQuickThumbnailTask::FilterAvailableComplete(
-                const RArray<TGlxMediaId>& /*aIdArray*/, TInt /*aErrorCode*/ )
-    {
-    EUNIT_FAIL_TEST("FilterAvailableComplete() called");
-    }
-
-void UT_CGlxtnQuickThumbnailTask::FetchFileInfoL(CGlxtnFileInfo* aInfo,
-                        const TGlxMediaId& aItemId, TRequestStatus* aStatus)
-    {
-    EUNIT_ASSERT( NULL != aInfo );
-	EUNIT_ASSERT_EQUALS( KTestMediaId, aItemId.Value() );
-    aInfo->SetFilePathL(iUri);
-
-    *aStatus = KRequestPending;
-    User::RequestComplete(aStatus, KErrNone);
-    }
-
-void UT_CGlxtnQuickThumbnailTask::CancelFetchUri(const TGlxMediaId& /*aItemId*/)
-    {
-    }
-
-MGlxtnThumbnailStorage* UT_CGlxtnQuickThumbnailTask::ThumbnailStorage()
-    {
-    return NULL;
-    }
-
-void UT_CGlxtnQuickThumbnailTask::SetupL()
-    {
-    iFileUtility = CGlxtnFileUtility::NewL();
-    User::LeaveIfError(RFbsSession::Connect(iFileUtility->FsSession()));
-
-    TGlxMediaId id(KTestMediaId);
-
-    iSizeClass.SetSize(KTestWidth, KTestHeight);
-    iBitmap = new (ELeave) CFbsBitmap;
-    User::LeaveIfError(iBitmap->Create(TSize(), KTestThumbDisplayMode));
-
-    TGlxThumbnailRequest request(id, iSizeClass,
-                                TGlxThumbnailRequest::EPrioritizeSpeed,
-                                iBitmap->Handle(), ETrue);
-    iQuickThumbnailTask = CGlxtnQuickThumbnailTask::NewL(request,
-                                                        *iFileUtility, *this);
-    }
-
-void UT_CGlxtnQuickThumbnailTask::Teardown()
-    {
-    delete iQuickThumbnailTask;
-    iQuickThumbnailTask = NULL;
-    delete iBitmap;
-    iBitmap = NULL;
-    if ( RFbsSession::GetSession() )
-        {
-        RFbsSession::Disconnect();
-        }
-    delete iFileUtility;
-    REComSession::FinalClose();
-    }
-
-void UT_CGlxtnQuickThumbnailTask::UT_CGlxtnQuickThumbnailTask_ConstructL()
-    {
-    // Check the task was correctly constructed
-    EUNIT_ASSERT( NULL != iQuickThumbnailTask );
-    EUNIT_ASSERT_EQUALS( iQuickThumbnailTask->Id().Value(), KGlxtnTaskIdQuickThumbnail );
-    EUNIT_ASSERT_EQUALS( iQuickThumbnailTask->ItemId().Value(), KTestMediaId );
-    }
-
-void UT_CGlxtnQuickThumbnailTask::UT_CGlxtnQuickThumbnailTask_GenerateL()
-    {
-    DoGenerateL(KTestImageUri);
-    }
-
-void UT_CGlxtnQuickThumbnailTask::UT_CGlxtnQuickThumbnailTask_GenerateNoExifL()
-    {
-    DoGenerateL(KNoExifImageUri);
-    }
-
-void UT_CGlxtnQuickThumbnailTask::UT_CGlxtnQuickThumbnailTask_ErrorCorruptFileL()
-    {
-    EUNIT_ASSERT_LEAVE(DoGenerateL(KCorruptImageUri));
-    }
-
-void UT_CGlxtnQuickThumbnailTask::UT_CGlxtnQuickThumbnailTask_ErrorFileNotFoundL()
-    {
-    EUNIT_ASSERT_SPECIFIC_LEAVE(DoGenerateL(KMissingImageUri), KErrNotFound);
-    }
-
-void UT_CGlxtnQuickThumbnailTask::DoGenerateL(const TDesC& aUri)
-    {
-    iUri.Set(aUri);
-
-    CDummyTaskManager* tm = new (ELeave) CDummyTaskManager(iQuickThumbnailTask);
-    CleanupStack::PushL(tm);
-    tm->StartTaskL();
-    User::LeaveIfError(iError);
-    CleanupStack::PopAndDestroy(tm);
-
-    EUNIT_ASSERT_EQUALS( iQuality, EGlxThumbnailQualityLow );
-    }
-
-//  TEST TABLE
-
-EUNIT_BEGIN_TEST_TABLE(
-    UT_CGlxtnQuickThumbnailTask,
-    "Add test suite description here.",
-    "UNIT" )
-
-EUNIT_TEST(
-    "NewL - test ",
-    "CGlxtnQuickThumbnailTask",
-    "NewL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnQuickThumbnailTask_ConstructL, Teardown)
-
-EUNIT_TEST(
-    "Generate a thumbnail",
-    "CGlxtnQuickThumbnailTask",
-    "HandleThumbnailTaskCompleteL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnQuickThumbnailTask_GenerateL, Teardown)
-
-EUNIT_TEST(
-    "Generate a thumbnail from image without EXIF data",
-    "CGlxtnQuickThumbnailTask",
-    "HandleThumbnailTaskCompleteL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnQuickThumbnailTask_GenerateNoExifL, Teardown)
-
-EUNIT_TEST(
-    "Attempting to thumbnail corrupt image",
-    "CGlxtnQuickThumbnailTask",
-    "DoStartL",
-    "ERRORHANDLING",
-    SetupL, UT_CGlxtnQuickThumbnailTask_ErrorCorruptFileL, Teardown)
-
-EUNIT_TEST(
-    "Attempting to thumbnail missing file",
-    "CGlxtnQuickThumbnailTask",
-    "DoStartL",
-    "ERRORHANDLING",
-    SetupL, UT_CGlxtnQuickThumbnailTask_ErrorFileNotFoundL, Teardown)
-
-EUNIT_ALLOC_TEST(
-    "Test alloc failures",
-    "CGlxtnQuickThumbnailTask",
-    "HandleThumbnailTaskCompleteL",
-    "ERRORHANDLING",
-    SetupL, UT_CGlxtnQuickThumbnailTask_GenerateL, Teardown)
-
-EUNIT_END_TEST_TABLE
-
-//  END OF FILE
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnquickthumbnailtask/ut_cglxtnquickthumbnailtask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Quick thumbnail generation task unit tests.
-*
-*/
-
-
-
-#ifndef __UT_CGLXTNQUICKTHUMBNAILTASK_H__
-#define __UT_CGLXTNQUICKTHUMBNAILTASK_H__
-
-//  EXTERNAL INCLUDES
-
-#include <CEUnitTestSuiteClass.h>
-#include <f32file.h>
-
-//  INTERNAL INCLUDES
-
-#include "mglxtnthumbnailcreatorclient.h"
-
-//  FORWARD DECLARATIONS
-
-class CGlxtnFileUtility;
-class CGlxtnQuickThumbnailTask;
-class CFbsBitmap;
-
-#include <e32def.h>
-#ifndef NONSHARABLE_CLASS
-    #define NONSHARABLE_CLASS(x) class x
-#endif
-
-//  CLASS DEFINITION
-/**
- *
- * EUnitWizard generated test class. 
- *
- */
-NONSHARABLE_CLASS( UT_CGlxtnQuickThumbnailTask )
-     : public CEUnitTestSuiteClass, public MGlxtnThumbnailCreatorClient
-    {
-    public:     // Constructors and destructors
-
-        /**
-         * Two phase construction
-         */
-        static UT_CGlxtnQuickThumbnailTask* NewL();
-        static UT_CGlxtnQuickThumbnailTask* NewLC();
-        /**
-         * Destructor
-         */
-        ~UT_CGlxtnQuickThumbnailTask();
-
-    private:    // Constructors and destructors
-
-        UT_CGlxtnQuickThumbnailTask();
-        void ConstructL();
-
-    private:    // From MGlxtnThumbnailCreatorClient
-        void ThumbnailFetchComplete(const TGlxMediaId& aItemId,
-                            TGlxThumbnailQuality aQuality, TInt aErrorCode);
-        void ThumbnailDeletionComplete(const TGlxMediaId& aItemId, TInt aErrorCode);
-        void FilterAvailableComplete( const RArray<TGlxMediaId>& aIdArray,
-                                        TInt aErrorCode );
-        void FetchFileInfoL(CGlxtnFileInfo* aInfo, const TGlxMediaId& aItemId,
-                        TRequestStatus* aStatus);
-        void CancelFetchUri(const TGlxMediaId& aItemId);
-        MGlxtnThumbnailStorage* ThumbnailStorage();
-
-    private:    // New methods
-
-         void SetupL();
-        
-         void Teardown();
-        
-        void UT_CGlxtnQuickThumbnailTask_ConstructL();
-        void UT_CGlxtnQuickThumbnailTask_GenerateL();
-        void UT_CGlxtnQuickThumbnailTask_GenerateNoExifL();
-        void UT_CGlxtnQuickThumbnailTask_ErrorCorruptFileL();
-        void UT_CGlxtnQuickThumbnailTask_ErrorFileNotFoundL();
-
-        void DoGenerateL(const TDesC& aUri);
-
-    private:    // Data
-
-        CGlxtnFileUtility* iFileUtility;
-        CGlxtnQuickThumbnailTask* iQuickThumbnailTask;
-        CFbsBitmap* iBitmap;
-        TPtrC iUri;
-    	TSize iSizeClass;
-    	TGlxThumbnailQuality iQuality;
-    	TInt iError;
-
-        EUNIT_DECLARE_TEST_TABLE; 
-
-    };
-
-#endif      //  __UT_CGLXTNQUICKTHUMBNAILTASK_H__
-
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnquickthumbnailtask/ut_cglxtnquickthumbnailtaskdllmain.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
-* Copyright (c) 2006-2006 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:   Quick thumbnail generation task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "UT_CGlxtnQuickThumbnailTask.h"
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuite.h>
-
-/**
- * Test suite factory function.
- */
-EXPORT_C MEUnitTest* CreateTestSuiteL()
-    {
-    return UT_CGlxtnQuickThumbnailTask::NewL();
-    }
-
-//  END OF FILE
-
-
-
-
-
-
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnzoomedimagetask/ut_cglxtnzoomedimagetask.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,215 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:   Cropped thumbnail generation task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "ut_cglxtnzoomedimagetask.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-#include <fbs.h>
-#include <Ecom\ECom.h>
-
-//  INTERNAL INCLUDES
-#include "glxtngeneratethumbnailtask.h"
-#include "dummytaskmanager.h"
-#include <glxtnfileinfo.h>
-#include "glxtnfileutility.h"
-#include "glxtnthumbnailrequest.h"
-#include "glxtnzoomedimagetask.h"
-#include <glxthumbnail.h>
-
-EUNIT_DECLARE_PRINTABLE_AS_TINT( TGlxThumbnailQuality )
-
-const TUint KTestMediaId = 1;
-const TInt KTestWidth = 320;
-const TInt KTestHeight = 240;
-const TDisplayMode KTestThumbDisplayMode = KGlxThumbnailDisplayMode;
-
-_LIT(KTestImageUri, "C:\\TncTest\\test.jpg");
-
-// ---------------------------------------------------------------------------
-
-// CONSTRUCTION
-UT_CGlxtnZoomedImageTask* UT_CGlxtnZoomedImageTask::NewL()
-    {
-    UT_CGlxtnZoomedImageTask* self = UT_CGlxtnZoomedImageTask::NewLC();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-UT_CGlxtnZoomedImageTask* UT_CGlxtnZoomedImageTask::NewLC()
-    {
-    UT_CGlxtnZoomedImageTask* self = new( ELeave ) UT_CGlxtnZoomedImageTask();
-    CleanupStack::PushL( self );
-
-    self->ConstructL();
-
-    return self;
-    }
-
-// Destructor (virtual by CBase)
-UT_CGlxtnZoomedImageTask::~UT_CGlxtnZoomedImageTask()
-    {
-    }
-
-// Default constructor
-UT_CGlxtnZoomedImageTask::UT_CGlxtnZoomedImageTask()
-    {
-    }
-
-// Second phase construct
-void UT_CGlxtnZoomedImageTask::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-
-    // Need to free ecom resources before running tests
-    REComSession::FinalClose();
-    }
-
-//  METHODS
-
-void UT_CGlxtnZoomedImageTask::ThumbnailFetchComplete(
-    const TGlxMediaId& aItemId, TGlxThumbnailQuality aQuality, TInt aErrorCode)
-    {
-	EUNIT_ASSERT_EQUALS( KTestMediaId, aItemId.Value() );
-	iQuality = aQuality;
-    iError = aErrorCode;
-    }
-
-void UT_CGlxtnZoomedImageTask::ThumbnailDeletionComplete(
-                                const TGlxMediaId& /*aItemId*/, TInt /*aErrorCode*/)
-    {
-    EUNIT_FAIL_TEST("ThumbnailDeletionComplete() called");
-    }
-
-void UT_CGlxtnZoomedImageTask::FilterAvailableComplete(
-                const RArray<TGlxMediaId>& /*aIdArray*/, TInt /*aErrorCode*/ )
-    {
-    EUNIT_FAIL_TEST("FilterAvailableComplete() called");
-    }
-
-void UT_CGlxtnZoomedImageTask::FetchFileInfoL(CGlxtnFileInfo* aInfo,
-                        const TGlxMediaId& aItemId, TRequestStatus* aStatus)
-    {
-    EUNIT_ASSERT( NULL != aInfo );
-	EUNIT_ASSERT_EQUALS( KTestMediaId, aItemId.Value() );
-    aInfo->SetFilePathL(iUri);
-
-    *aStatus = KRequestPending;
-    User::RequestComplete(aStatus, KErrNone);
-    }
-
-void UT_CGlxtnZoomedImageTask::CancelFetchUri(const TGlxMediaId& /*aItemId*/)
-    {
-    }
-
-MGlxtnThumbnailStorage* UT_CGlxtnZoomedImageTask::ThumbnailStorage()
-    {
-    return NULL;
-    }
-
-void UT_CGlxtnZoomedImageTask::SetupL()
-    {
-    iFileUtility = CGlxtnFileUtility::NewL();
-    User::LeaveIfError(RFbsSession::Connect(iFileUtility->FsSession()));
-
-    TGlxMediaId id(KTestMediaId);
-    TSize size(KTestWidth, KTestHeight);
-    TRect croppingRect(50, 50, 150, 150);
-
-    iBitmap = new (ELeave) CFbsBitmap;
-    User::LeaveIfError(iBitmap->Create(TSize(), KTestThumbDisplayMode));
-
-    TGlxThumbnailRequest request(id, size,
-                TGlxThumbnailRequest::EPrioritizeQuality, iBitmap->Handle(),
-                ETrue, croppingRect, EGlxThumbnailFilterNone);
-    iZoomedImageTask = CGlxtnZoomedImageTask::NewL(request,
-                                                    *iFileUtility, *this);
-    }
-
-void UT_CGlxtnZoomedImageTask::Teardown()
-    {
-    delete iZoomedImageTask;
-    iZoomedImageTask = NULL;
-    delete iBitmap;
-    iBitmap = NULL;
-    if ( RFbsSession::GetSession() )
-        {
-        RFbsSession::Disconnect();
-        }
-    delete iFileUtility;
-    REComSession::FinalClose();
-    }
-
-void UT_CGlxtnZoomedImageTask::UT_CGlxtnZoomedImageTask_ConstructL()
-    {
-    // Check the task was correctly constructed
-    EUNIT_ASSERT( NULL != iZoomedImageTask );
-    EUNIT_ASSERT_EQUALS( iZoomedImageTask->Id().Value(), KGlxtnTaskIdZoomedThumbnail );
-    EUNIT_ASSERT_EQUALS( iZoomedImageTask->ItemId().Value(), KTestMediaId );
-    }
-
-void UT_CGlxtnZoomedImageTask::UT_CGlxtnZoomedImageTask_GenerateL()
-    {
-    // NOTE: This test currently fails on the emulator, as the extended JPEG
-    // codec is not present in the environment
-    DoGenerateL(KTestImageUri);
-    }
-
-void UT_CGlxtnZoomedImageTask::DoGenerateL(const TDesC& aUri)
-    {
-    iUri.Set(aUri);
-
-    CDummyTaskManager* tm = new (ELeave) CDummyTaskManager(iZoomedImageTask);
-    CleanupStack::PushL(tm);
-    tm->StartTaskL();
-    User::LeaveIfError(iError);
-    CleanupStack::PopAndDestroy(tm);
-
-    EUNIT_ASSERT_EQUALS( iQuality, EGlxThumbnailQualityHigh );
-    }
-
-//  TEST TABLE
-
-EUNIT_BEGIN_TEST_TABLE(
-    UT_CGlxtnZoomedImageTask,
-    "Unit tests for CGlxtnZoomedImageTask.",
-    "UNIT" )
-
-EUNIT_TEST(
-    "Test construction of CGlxtnZoomedImageTask",
-    "CGlxtnZoomedImageTask",
-    "NewL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnZoomedImageTask_ConstructL, Teardown)
-
-EUNIT_TEST(
-    "Generate a cropped thumbnail",
-    "CGlxtnZoomedImageTask",
-    "HandleThumbnailTaskCompleteL",
-    "FUNCTIONALITY",
-    SetupL, UT_CGlxtnZoomedImageTask_GenerateL, Teardown)
-
-EUNIT_END_TEST_TABLE
-
-//  END OF FILE
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnzoomedimagetask/ut_cglxtnzoomedimagetask.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,105 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:   Cropped thumbnail generation task unit tests.
-*
-*/
-
-
-
-#ifndef __UT_CGLXTNZOOMEDIMAGETASK_H__
-#define __UT_CGLXTNZOOMEDIMAGETASK_H__
-
-//  EXTERNAL INCLUDES
-
-#include <CEUnitTestSuiteClass.h>
-#include <f32file.h>
-
-//  INTERNAL INCLUDES
-
-#include "mglxtnthumbnailcreatorclient.h"
-
-//  FORWARD DECLARATIONS
-
-class CGlxtnFileUtility;
-class CGlxtnZoomedImageTask;
-class CFbsBitmap;
-
-#include <e32def.h>
-#ifndef NONSHARABLE_CLASS
-    #define NONSHARABLE_CLASS(x) class x
-#endif
-
-//  CLASS DEFINITION
-/**
- *
- * EUnitWizard generated test class. 
- *
- */
-NONSHARABLE_CLASS( UT_CGlxtnZoomedImageTask )
-     : public CEUnitTestSuiteClass, public MGlxtnThumbnailCreatorClient
-    {
-    public:     // Constructors and destructors
-
-        /**
-         * Two phase construction
-         */
-        static UT_CGlxtnZoomedImageTask* NewL();
-        static UT_CGlxtnZoomedImageTask* NewLC();
-        /**
-         * Destructor
-         */
-        ~UT_CGlxtnZoomedImageTask();
-
-    private:    // Constructors and destructors
-
-        UT_CGlxtnZoomedImageTask();
-        void ConstructL();
-
-    private:    // From MGlxtnThumbnailCreatorClient
-        void ThumbnailFetchComplete(const TGlxMediaId& aItemId,
-                            TGlxThumbnailQuality aQuality, TInt aErrorCode);
-        void ThumbnailDeletionComplete(const TGlxMediaId& aItemId, TInt aErrorCode);
-        void FilterAvailableComplete( const RArray<TGlxMediaId>& aIdArray,
-                                        TInt aErrorCode );
-        void FetchFileInfoL(CGlxtnFileInfo* aInfo, const TGlxMediaId& aItemId,
-                        TRequestStatus* aStatus);
-        void CancelFetchUri(const TGlxMediaId& aItemId);
-        MGlxtnThumbnailStorage* ThumbnailStorage();
-
-    private:    // New methods
-
-        void SetupL();
-        void Teardown();
-
-        void UT_CGlxtnZoomedImageTask_ConstructL();
-        void UT_CGlxtnZoomedImageTask_GenerateL();
-
-        void DoGenerateL(const TDesC& aUri);
-
-    private:    // Data
-
-        CGlxtnFileUtility* iFileUtility;
-        CGlxtnZoomedImageTask* iZoomedImageTask;
-        CFbsBitmap* iBitmap;
-        TPtrC iUri;
-    	TGlxThumbnailQuality iQuality;
-    	TInt iError;
-
-        EUNIT_DECLARE_TEST_TABLE; 
-
-    };
-
-#endif  // __UT_CGLXTNZOOMEDIMAGETASK_H__
-
-// End of file
--- a/engine/collectionframework/thumbnailcreator/test/ut_cglxtnzoomedimagetask/ut_cglxtnzoomedimagetaskdllmain.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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:   Cropped thumbnail generation task unit tests.
-*
-*/
-
-
-
-//  CLASS HEADER
-#include "ut_cglxtnzoomedimagetask.h"
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuite.h>
-
-/**
- * Test suite factory function.
- */
-EXPORT_C MEUnitTest* CreateTestSuiteL()
-    {
-    return UT_CGlxtnZoomedImageTask::NewL();
-    }
-
-//  END OF FILE
--- a/engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/200071D4.rss	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
-* Copyright (c) 2006-2007 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 
-*
-*/
-
-
-
-/**
- * @internal reviewed 12/07/2007 by Simon Brooks
- */
-
-#include <registryinfo.rh>
-#include "glxthumbnailcomposerplugin.hrh"
-
-/**
- * @author David Holland
- */
-RESOURCE REGISTRY_INFO theInfo
-	{
-	// UID for the DLL
-	dll_uid = 0x200071D4;
-	// Declare array of interface info
-	interfaces = 
-		{
-		INTERFACE_INFO
-			{
-			// UID of interface that is implemented
-			interface_uid = 0x2000717E;
-			implementations = 
-				{
-				// Info for CGlxThumbnailComposerPlugin
-				IMPLEMENTATION_INFO
-					{
-					implementation_uid = KGlxThumbnailComposerImplementationId;
-					version_no = 1;
-					display_name = "Thumbnail Composer plugin";
-					default_data = "ThumbnailComposer";
-                              		// We for now use just extension - now way to convert MIME-type to file extensio
-//                              		opaque_data = "jpg,3gp";
-                              		opaque_data = "jpg";
-					}
-				};
-			}
-		};
-	}
-
--- a/engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,630 +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:   Thumbnail Composer plugin
-*
-*/
-
-
-
-/**
- * @internal reviewed 12/07/2007 by Simon Brooks
- */
-
-#include <e32base.h>
-
-#include <mdelogiccondition.h>
-#include <mdeconstants.h>
-
-#include <mpxcollectionutility.h>
-#include <mpxcollectionpath.h>
-#include <mpxcollectionmessage.h>
-#include <mpxmessagegeneraldefs.h>
-#include <mpxcollectionframeworkdefs.h>
-
-#include <glxassert.h>
-#include <glxcollectionpluginall.hrh>
-#include <glxthumbnailattributeinfo.h>
-#include <glxbackgroundtnmessagedefs.h>
-#include <glxmediaid.h>
-#include <glxthumbnailinfo.h>
-#include <glxfilterfactory.h>
-#include <glxcommandfactory.h>
-#include <glxtracer.h>
-
-#include "glxthumbnailcomposerplugin.h"
-
-// This can be any number other than zero
-const TUint KGlxBackgroundThumbnailAttributeId = 1;
-const TInt KGlxThumbnailComposerInactivityTimeout = 30; // seconds
-const TInt KGlxThumbnailComposerDelay = 10000; // microseconds
-const TInt KGlxThumbnailComposerHarvestDelay = 5000000; // microseconds
-const TInt KGlxThumbnailComposerLargeDelay = 30000000; // microseconds
-
-// ---------------------------------------------------------------------------
-// destructor
-// ---------------------------------------------------------------------------
-//
-CGlxThumbnailCompeserInactivityTimer::~CGlxThumbnailCompeserInactivityTimer()
-    {
-    // no implementation
-    }
-
-
-// ---------------------------------------------------------------------------
-// NewL
-// ---------------------------------------------------------------------------
-//
-CGlxThumbnailCompeserInactivityTimer* CGlxThumbnailCompeserInactivityTimer::NewL(TInt aPriority, CGlxThumbnailComposerPlugin& aCallback)
-    {
-	TRACER("CGlxThumbnailCompeserInactivityTimer::NewL");
-	CGlxThumbnailCompeserInactivityTimer* self = 
-	                              new (ELeave) CGlxThumbnailCompeserInactivityTimer(aPriority, aCallback);
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	CActiveScheduler::Add(self);
-	return self;
-    }
-
-// ---------------------------------------------------------------------------
-// After
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailCompeserInactivityTimer::After( TTimeIntervalMicroSeconds32 aInterval )
-    {
-    TRACER("CGlxThumbnailCompeserInactivityTimer::RunL");
-
-    // Fix for ELLZ-7DBBDZ and JPKN-7M2AYJ: to prevent a KERN EXEC 15 panic that occurs 
-    // if a timer request is made while one is already outstanding.
-    Cancel();
-    // Forward the call on to the base class.
-    CTimer::After( aInterval );
-    }
-
-// ---------------------------------------------------------------------------
-// constructor
-// ---------------------------------------------------------------------------
-//
-CGlxThumbnailCompeserInactivityTimer::CGlxThumbnailCompeserInactivityTimer(TInt aPriority, CGlxThumbnailComposerPlugin& aCallback)
-         : CTimer(aPriority), iCallback(aCallback)
-        {
-        // no implementation
-        }
-
-// ---------------------------------------------------------------------------
-// RunL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailCompeserInactivityTimer::RunL()
-    {
-	TRACER("CGlxThumbnailCompeserInactivityTimer::RunL");
-	switch (iCallback.iState)
-	    {
-    	case CGlxThumbnailComposerPlugin::EStateFirstOpening:
-    	case CGlxThumbnailComposerPlugin::EStateOpening:
-    	    {
-            iCallback.DoOpenCollectionL();
-            break;
-    	    }
-        case CGlxThumbnailComposerPlugin::EStateActiveSmall:
-        case CGlxThumbnailComposerPlugin::EStateActiveLarge:
-            {
-        	iCallback.DoRequestItemL();
-        	break;
-            }
-        case CGlxThumbnailComposerPlugin::EStateClosing:
-            {
-            iCallback.CloseCollection();
-            break;
-            }
-	    }
-    }
-
-// ---------------------------------------------------------------------------
-// DoCancel
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailCompeserInactivityTimer::DoCancel()
-    {
-    // no implementation
-    }
-
-// ---------------------------------------------------------------------------
-// RunError
-// ---------------------------------------------------------------------------
-//
-TInt CGlxThumbnailCompeserInactivityTimer::RunError(TInt /*aError*/)
-    {
-	TRACER("CGlxThumbnailCompeserInactivityTimer::RunError");
-    iCallback.ReturnToIdle();
-    return KErrNone;
-    }
-
-
-
-// ---------------------------------------------------------------------------
-// NewL
-// ---------------------------------------------------------------------------
-//
-CGlxThumbnailComposerPlugin* CGlxThumbnailComposerPlugin::NewL()
-	{
-	TRACER("CGlxThumbnailComposerPlugin::NewL");
-	CGlxThumbnailComposerPlugin* self = 
-	                              new (ELeave) CGlxThumbnailComposerPlugin();
-	CleanupStack::PushL(self);
-	self->ConstructL();
-	CleanupStack::Pop(self);
-	return self;
-	}
-
-// ---------------------------------------------------------------------------
-// ~CGlxThumbnailComposerPlugin
-// ---------------------------------------------------------------------------
-//
-CGlxThumbnailComposerPlugin::~CGlxThumbnailComposerPlugin()
-	{
-	delete iPath;
-	delete iCollectionUtility;
-	if ( iInactivityTimer )
-	    {
-    	iInactivityTimer->Cancel();
-	    }
-	delete iInactivityTimer;
-	}
-
-// ---------------------------------------------------------------------------
-// CGlxThumbnailComposerPlugin
-// ---------------------------------------------------------------------------
-//
-CGlxThumbnailComposerPlugin::CGlxThumbnailComposerPlugin() : iLastError(KErrNone)
-	{
-	}
-
-// ---------------------------------------------------------------------------
-// ConstructL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::ConstructL()
-	{
-	TRACER("CGlxThumbnailComposerPlugin::ConstructL");
-	iInactivityTimer = CGlxThumbnailCompeserInactivityTimer::NewL(CActive::EPriorityIdle, *this);
-	}
-
-// ---------------------------------------------------------------------------
-// SetObservers
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::SetObservers()
-	{
-	TRAPD(err, SetObserversL());
-    GLX_ASSERT_ALWAYS( KErrNone == err, Panic( EGlxPanicEnvironment ),
-                        "CGlxThumbnailComposerPlugin cannot set observers, reset Harvester server" );
-	}
-
-// ---------------------------------------------------------------------------
-// SetObserversL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::SetObserversL()
-	{
-	TRACER("CGlxThumbnailComposerPlugin::SetObserversL");
-	if ( iSession )
-		{
-		CMdELogicCondition* condition = 
-		            CMdELogicCondition::NewLC( ELogicConditionOperatorOr );
-
-#ifdef GLX_USE_MDS_2_0
-
-		CMdENamespaceDef* defaultNamespace = 
-		               iSession->GetDefaultNamespaceDefL();
-
-    	CMdEObjectDef* imageDef = defaultNamespace->GetObjectDefL(
-    	                                MdeConstants::Image::KImageObject );
-		condition->AddObjectConditionL( *imageDef );
-
-    	CMdEObjectDef* videoDef = defaultNamespace->GetObjectDefL(
-    	                                MdeConstants::Video::KVideoObject );
-		condition->AddObjectConditionL( *videoDef );
-
-#else
-
-		CMdENamespaceDef& defaultNamespace = 
-		               iSession->GetDefaultNamespaceDefL();
-
-    	CMdEObjectDef& imageDef = defaultNamespace.GetObjectDefL(
-    	                                MdeConstants::Image::KImageObject );
-		condition->AddObjectConditionL( imageDef );
-
-    	CMdEObjectDef& videoDef = defaultNamespace.GetObjectDefL(
-    	                                MdeConstants::Video::KVideoObject );
-		condition->AddObjectConditionL( videoDef );
-
-#endif
-
-		iSession->AddObjectObserverL( *this, condition );
-    	CleanupStack::Pop( condition );
-    	
-        if ( iState == EStateIdle )
-            {
-            iState = EStateFirstOpening;
-            iInactivityTimer->After(KGlxThumbnailComposerLargeDelay);
-            }
-		}
-	}
-
-// ---------------------------------------------------------------------------
-// RemoveObservers
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::RemoveObservers()
-	{
-	if ( iSession )
-		{
-#ifdef GLX_USE_MDS_2_0
-		iSession->RemoveObjectObserver( *this );
-#else
-		TRAP_IGNORE(iSession->RemoveObjectObserverL( *this ));
-#endif
-		}
-	}
-
-// ---------------------------------------------------------------------------
-// IsComposingComplete
-// ---------------------------------------------------------------------------
-//
-TBool CGlxThumbnailComposerPlugin::IsComposingComplete()
-	{
-	TRACER("CGlxThumbnailComposerPlugin::IsComposingComplete");
-    return ( iState == EStateIdle );
-	}
-
-#ifdef GLX_USE_MDS_2_0
-
-// ---------------------------------------------------------------------------
-// HandleObjectAdded
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::HandleObjectAdded(
-        CMdESession& /*aSession*/, const RArray<TItemId>& /*aObjectIdArray*/ )
-	{
-	TRACER("CGlxThumbnailComposerPlugin::HandleObjectAdded");
-    if ( ( iState == EStateIdle ) || ( iState == EStateFirstOpening ) || ( iState == EStateClosing ) )
-        {
-        iInactivityTimer->Cancel();
-        iState = EStateOpening;
-        iInactivityTimer->After(20000000);
-        }
-    else
-        {
-        iLastError = 1;
-        iState = EStateActiveLarge;
-        }
-	}
-
-// ---------------------------------------------------------------------------
-// HandleObjectModified
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::HandleObjectModified(
-                                    CMdESession& /*aSession*/, 
-                                    const RArray<TItemId>& /*aObjectIdArray*/)
-	{
-	//no implemention needed
-	}
-
-// ---------------------------------------------------------------------------
-// HandleObjectRemoved
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::HandleObjectRemoved(
-                                    CMdESession& /*aSession*/, 
-                                    const RArray<TItemId>& /*aObjectIdArray*/)
-	{
-	//no implemention needed
-	}
-
-#else
-
-void CGlxThumbnailComposerPlugin::HandleObjectNotification(CMdESession& /*aSession*/, 
-					TObserverNotificationType aType,
-					const RArray<TItemId>& /*aObjectIdArray*/)
-	{
-	
-	TRACER("CGlxThumbnailComposerPlugin::HandleObjectNotification");
-    if (aType == ENotifyAdd)
-    	{
-			if ( iState == EStateIdle )
-		        {
-		        iState = EStateOpening;
-		        iInactivityTimer->After(0);
-		        }
-		    else
-		        {
-		        iLastError = 1;
-		        iState = EStateActiveLarge;
-		        }
-    	}
-	}
-
-#endif
-
-// ---------------------------------------------------------------------------
-// HandleCollectionMediaL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::HandleCollectionMediaL(
-                                const CMPXMedia& /*aMedia*/, TInt aError )
-    {
-	TRACER("CGlxThumbnailComposerPlugin::HandleCollectionMediaL");
-    if ( iPath && KErrNone != aError )
-        {
-        //GLX_LOG_WARNING1( "Error %d getting media", aError );
-
-        // Error generating thumbnails, try the next item
-        iLastError = aError;
-        iCurrentIndex++;
-        RequestItemL();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// HandleCollectionMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::HandleCollectionMessage(
-                                        CMPXMessage* aMsg, TInt /*aErr*/ )
-    {
-	TRACER("CGlxThumbnailComposerPlugin::HandleCollectionMessage");
-    if ( iState != EStateIdle && aMsg )
-        {
-        TRAPD( err, DoHandleCollectionMessageL( *aMsg ) );
-        if ( KErrNone != err )
-            {
-            //GLX_LOG_WARNING1( "Error %d handling message", err );
-            ReturnToIdle();
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// HandleOpenL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::HandleOpenL( const CMPXMedia& /*aEntries*/,
-                          TInt /*aIndex*/, TBool /*aComplete*/, TInt aError )
-    {
-	TRACER("CGlxThumbnailComposerPlugin::HandleOpenL");
-    if ( KErrNone != aError )
-        {
-        //GLX_LOG_WARNING1( "Error %d opening collection", aError );
-        ReturnToIdle();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// HandleOpenL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::HandleOpenL(
-            const CMPXCollectionPlaylist& /*aPlaylist*/, TInt /*aError*/ )
-    {
-	// No implemention needed
-    }
-
-// ---------------------------------------------------------------------------
-// HandleCommandComplete
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::HandleCommandComplete(
-                        CMPXCommand* /*aCommandResult*/, TInt /*aError*/ )
-    {
-	TRACER("CGlxThumbnailComposerPlugin::HandleCommandComplete");
-    if( EStateCleanup == iState )
-        {
-        ReturnToIdle();
-        }
-    else
-        {
-        iInactivityTimer->After(0);
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// DoOpenCollectionL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::DoOpenCollectionL()
-    {
-	TRACER("CGlxThumbnailComposerPlugin::HandleCollectionMediaL");
-    if ( !iCollectionUtility )
-        {
-        // Open isolated collection utility
-        iCollectionUtility = MMPXCollectionUtility::NewL(
-                                                this, KMcModeIsolated );
-        }
-
-    CMPXFilter* filter = CMPXFilter::NewL();
-    CleanupStack::PushL(filter);
-    filter->SetTObjectValueL<TGlxFilterSortDirection>(KGlxFilterGeneralSortDirection, EGlxFilterSortDirectionDescending);        
-    iCollectionUtility->Collection().SetFilterL(filter);
-    CleanupStack::PopAndDestroy(filter);
-
-    CMPXCollectionPath* path = CMPXCollectionPath::NewL();
-    CleanupStack::PushL( path );
-    // argument  path  all collection id
-   	path->AppendL( KGlxCollectionPluginAllImplementationUid );
-
-	iCollectionUtility->Collection().OpenL( *path );
- 	CleanupStack::PopAndDestroy( path );
-
-    iState = EStateActiveSmall;                    
-    }
-
-// ---------------------------------------------------------------------------
-// DoHandleCollectionMessageL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::DoHandleCollectionMessageL(
-                                                 const CMPXMessage& aMsg )
-    {
-	TRACER("CGlxThumbnailComposerPlugin::DoHandleCollectionMessageL");
-    if ( aMsg.IsSupported( KMPXMessageGeneralId ) )
-        {
-        TInt messageId = aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralId );
-
-	    // Is it a background thumbnail message        
-	    if ( KGlxMessageIdBackgroundThumbnail == messageId )
-	        {
-	        // Is it the item expected
-	        TGlxMediaId id( ( TUint32 )
-	             aMsg.ValueTObjectL<TMPXItemId>( KGlxBackgroundThumbnailMediaId ) );
-	        if ( iPath && id.Value()
-	                        == ( TUint32 )iPath->IdOfIndex( iCurrentIndex ) )
-	            {
-	            TInt error = aMsg.ValueTObjectL<TInt>( KGlxBackgroundThumbnailError );
-	            if ( error == KErrCancel )
-	                {
-	                iState = EStateActiveLarge;
-    	            iLastError = error;
-	                }
-	            else if( KErrNone != error )
-	                {
-                    //GLX_LOG_WARNING1( "Error %d in command", error );
-                    error = KErrNone;
-	                }
-	            // Yes, then request the next item
-	            iCurrentIndex++;
-	            RequestItemL();
-	            }
-	        }
-        else if ( KMPXMessageGeneral == messageId
-                && aMsg.IsSupported( KMPXMessageGeneralEvent ) )
-            {
-            TInt messageEvent = aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralEvent );
-
-            // Is it a path changed event
-            if ( TMPXCollectionMessage::EPathChanged == messageEvent
-                && aMsg.IsSupported( KMPXMessageGeneralType ) )
-                {
-    	        TInt messageType = aMsg.ValueTObjectL<TInt>( KMPXMessageGeneralType );
-
-             	if ( EMcPathChangedByOpen == messageType
-             	    && iCollectionUtility && !iPath )
-            	    {
-         		    iPath = iCollectionUtility->Collection().PathL();
-
-                   	iCurrentIndex = 0;
-                    RequestItemL();
-            	    }
-               }
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// RequestItemL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::RequestItemL()
-    {
-	TRACER("CGlxThumbnailComposerPlugin::RequestItemL");
-    if ( iLastError == KErrCancel )
-        {
-        iInactivityTimer->Inactivity(KGlxThumbnailComposerInactivityTimeout);
-        }
-    else if ( iLastError == 1 )
-        {
-        iInactivityTimer->After(KGlxThumbnailComposerHarvestDelay);
-        }
-    else
-        {
-        iInactivityTimer->After(KGlxThumbnailComposerDelay);
-        }
-    iLastError = KErrNone;
-    }
-    
-// ---------------------------------------------------------------------------
-// DoRequestItemL
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::DoRequestItemL()
-    {
-	TRACER("CGlxThumbnailComposerPlugin::DoRequestItemL");
-
-    if ( iPath && iCurrentIndex < iPath->Count() )
-        {
-        GLX_ASSERT_ALWAYS( iCollectionUtility, Panic( EGlxPanicNullPointer ),
-                            "No collection utility" );
-        // request next item
-    	iPath->Set( iCurrentIndex );
-
-        RArray<TMPXAttribute> attrs;
-        CleanupClosePushL( attrs );
-        // Add thumbnail attribute
-        attrs.AppendL( TMPXAttribute(
-                KGlxMediaIdThumbnail, KGlxBackgroundThumbnailAttributeId ) );
-
-        // Don't add spec for bitmap handle, to request background thumbnail
-        CMPXAttributeSpecs* attrSpecs = NULL;
-        
-        // Start first task
-        iCollectionUtility->Collection().MediaL(
-                                    *iPath, attrs.Array(), attrSpecs );
-        CleanupStack::PopAndDestroy( &attrs );
-        }
-    else
-        {
-        delete iPath;
-        iPath = NULL;
-        
-        if ( iState == EStateActiveLarge )
-            {
-            // go on to do small thumbnails
-            DoOpenCollectionL();
-            }
-        else
-            {
-            CMPXCommand* command
-                            = TGlxCommandFactory::ThumbnailCleanupCommandLC();
-            iCollectionUtility->Collection().CommandL( *command );
-            CleanupStack::PopAndDestroy( command );
-
-            iState = EStateCleanup;
-            }
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// ReturnToIdle
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::ReturnToIdle()
-    {
-    iState = EStateClosing;
-    iInactivityTimer->After(KGlxThumbnailComposerLargeDelay);
-    }
-
-// ---------------------------------------------------------------------------
-// CloseCollection
-// ---------------------------------------------------------------------------
-//
-void CGlxThumbnailComposerPlugin::CloseCollection()
-    {
-    if ( ( EStateClosing == iState ) && iCollectionUtility )
-        {
-        iCollectionUtility->Close();
-        iCollectionUtility = NULL;
-        iState = EStateIdle;
-        }
-    }
--- a/engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.h	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +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:   Thumbnail Composer  plugin
-*
-*/
-
-
-
-/**
- * @internal reviewed 12/07/2007 by Simon Brooks
- */
-
-#ifndef __CTHUMBNAILCOMPOSERPLUGIN_H__
-#define __CTHUMBNAILCOMPOSERPLUGIN_H__
-
-#include <composerplugin.h>
-#include <mdeobject.h>
-#include <mpxcollectionobserver.h>
-class MMPXCollectionUtility;
-class CMPXCollectionPath;
-class CGlxThumbnailComposerPlugin;
-
-/**
- * Timer to allow inactivity delay if background generation task is cancelled
- */
-class CGlxThumbnailCompeserInactivityTimer : public CTimer
-    {
-    public:
-        ~CGlxThumbnailCompeserInactivityTimer();
-        static CGlxThumbnailCompeserInactivityTimer* NewL(TInt aPriority, CGlxThumbnailComposerPlugin& aCallback);
-        void After(TTimeIntervalMicroSeconds32 aInterval);
-    private:
-        CGlxThumbnailCompeserInactivityTimer(TInt aPriority, CGlxThumbnailComposerPlugin& aCallback);
-    private: // from CActive
-        void RunL();
-        void DoCancel();
-        TInt RunError(TInt aError);
-    private:
-        CGlxThumbnailComposerPlugin& iCallback;
-    };
-
-
-/**
- * Composer plugin to initiate background generation when new items are
- * harvested by the MDS harvester.
- *
- * @author David Holland
- */
-NONSHARABLE_CLASS( CGlxThumbnailComposerPlugin ) :
-                  public CComposerPlugin, MMPXCollectionObserver 
-    {
-    public:
-        /**
-        * Construction
-        */
-        static CGlxThumbnailComposerPlugin* NewL();
-
-        /**
-        * Destruction
-        */
-        ~CGlxThumbnailComposerPlugin();
-
-    private:    // From CComposerPlugin
-
-        TBool IsComposingComplete();
-        void SetObservers();
-        void RemoveObservers();
-
-    private:    // From MMdEObjectObserver
-
-#ifdef GLX_USE_MDS_2_0
-        void HandleObjectAdded(CMdESession& aSession,
-                                const RArray<TItemId>& aObjectIdArray);
-        void HandleObjectModified(CMdESession& aSession,
-                                const RArray<TItemId>& aObjectIdArray);
-        void HandleObjectRemoved(CMdESession& aSession,
-                                const RArray<TItemId>& aObjectIdArray);
-#else
-        /**
-         * See @ref MMdEObjectObserver::HandleObjectNotification
-         */
-        void HandleObjectNotification(CMdESession& aSession, 
-		    				TObserverNotificationType aType,
-				    		const RArray<TItemId>& aObjectIdArray);
-#endif
-
-    private:    // From MMPXCollectionObserver
-
-        void HandleCollectionMediaL( const CMPXMedia& aMedia, TInt aError );
-        void HandleCollectionMessage( CMPXMessage* aMsg, TInt aErr );
-        void HandleOpenL( const CMPXMedia& aEntries,
-                            TInt aIndex, TBool aComplete, TInt aError );
-        void HandleOpenL( const CMPXCollectionPlaylist& aPlaylist,
-                            TInt aError );
-        void HandleCommandComplete( CMPXCommand* aCommandResult,
-                                    TInt aError );
-
-    private:
-
-        /**
-        * Private constructor
-        */	
-        CGlxThumbnailComposerPlugin();
-
-        /**
-        * 2nd phase construction
-        */	
-        void ConstructL();
-
-        /**
-        * Add observers to MdE session.
-        */
-        void SetObserversL();
-
-        void DoHandleCollectionMessageL( const CMPXMessage& aMsg );
-
-        /**
-        * Send next media request to the collection.
-        */
-        void RequestItemL();
-
-    public:
-        /**
-        * Open "all" collection with thumbnail loadability filter.
-        */
-        void DoOpenCollectionL();
-
-        /**
-        * Send next media request to the collection.
-        */
-        void DoRequestItemL();
-
-        /**
-        * Free resources and go to idle state.
-        */
-        void ReturnToIdle();
-
-        /**
-        * Callback for iCollectionCloser
-        */
-        void CloseCollection();
-
-    public:
-        /**
-        * Enumeration of states for the plugin.
-        */
-        enum TComposerState
-            {
-            EStateIdle,
-            EStateFirstOpening,
-            EStateOpening,
-            EStateActiveLarge,
-            EStateActiveSmall,
-            EStateCleanup,
-            EStateClosing
-            };
-
-        /** Current state of the plugin */
-        TComposerState iState;
-
-    private:
-        /** Isolated collection utility (owned) */
-        MMPXCollectionUtility* iCollectionUtility;
-
-        /** Path from collection (owned) */
-        CMPXCollectionPath* iPath;
-
-        /** Index of item to thumbnail */
-        TInt iCurrentIndex;
-
-        /** Timer to restart Background Harvesting once inactive */
-        CGlxThumbnailCompeserInactivityTimer* iInactivityTimer;
-        
-        TInt iLastError;
-    };
-
-#endif // __CTHUMBNAILCOMPOSERPLUGIN_H__
--- a/engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.hrh	Mon Sep 27 15:13:20 2010 +0530
+++ /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:   Resource headers 
-*
-*/
-
-
-
-#ifndef GLXTHUMBNAILCOMPOSERPLUGIN_HRH
-#define GLXTHUMBNAILCOMPOSERPLUGIN_HRH
-
-// CONSTANTS
-
-#define KGlxThumbnailComposerImplementationId   0x200071D5
-
-#endif  // GLXTHUMBNAILCOMPOSERPLUGIN_HRH
--- a/engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerplugin.mmp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +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:   Thumbnail Composer plugin
-*
-*/
-
-
-
-#include     "../../../../group/glxbuildcommon.mmh"
-#include 	<platform_paths.hrh>   //APP_LAYER_SYSTEMINCLUDE
-
-CAPABILITY    CAP_ECOM_PLUGIN
-
-TARGET        glxthumbnailcomposerplugin.dll
-TARGETTYPE    PLUGIN
-
-// ECom Dll recognition UID followed by the unique UID for this dll
-UID           0x10009D8D 0x200071D4
-
-#ifndef WINSCW
-EPOCALLOWDLLDATA
-#endif 
-SOURCEPATH    .
-SOURCE        glxthumbnailcomposerplugin.cpp
-SOURCE        glxthumbnailcomposerpluginproxy.cpp
-
-USERINCLUDE   ..
-
-SYSTEMINCLUDE ../../../../inc
-SYSTEMINCLUDE ../../../../commonutilities/common/inc
-
-//System Includes for epoc32/include
-APP_LAYER_SYSTEMINCLUDE
-
-SYSTEMINCLUDE /epoc32/include/ecom
-
-start RESOURCE  ./200071D4.rss
-target          glxthumbnailcomposerplugin.rsc
-end
-
-LIBRARY       euser.lib
-LIBRARY       ECom.lib
-LIBRARY       mpxcollectionutility.lib
-LIBRARY       mpxcommon.lib
-LIBRARY       glxcommon.lib
-
-LIBRARY       ComposerPluginInterface.lib
-LIBRARY       MdEClient.lib
-LIBRARY         flogger.lib						// For Logging Tracer
-
-SMPSAFE
--- a/engine/collectionframework/thumbnailcreator/thumbnailcomposerplugin/glxthumbnailcomposerpluginproxy.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +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:   Thumbnail Composer plugin
-*
-*/
-
-
-
-/**
- * @internal reviewed 12/07/2007 by Simon Brooks
- */
-
-#include <e32std.h>
-#include <implementationproxy.h>
-#include "glxthumbnailcomposerplugin.h"
-#include "glxthumbnailcomposerplugin.hrh"
-
-// Map the interface UIDs to implementation factory functions
-const TImplementationProxy ImplementationTable[] = 
-    {
-    IMPLEMENTATION_PROXY_ENTRY( KGlxThumbnailComposerImplementationId,
-                                CGlxThumbnailComposerPlugin::NewL )
-    };
-
-// Exported proxy for instantiation method resolution
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-	{
-	aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
-	return ImplementationTable;
-	}
-
--- a/inc/glxlocalisationstrings.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/inc/glxlocalisationstrings.h	Wed Oct 06 14:49:39 2010 +0530
@@ -123,10 +123,12 @@
 //to show the total image count in grid view
 #define GLX_GRID_VIEW_COUNT_LABEL       "txt_photos_subhead_all_l2" 
 
+//to show the total album count in Album list view
+#define GLX_ALBUM_LIST_COUNT_LABEL      "txt_photos_subhead_albums_l2"
+
 //mark all label to be shown in marking mode view
 #define GLX_LABEL_MARK_ALL              hbTrId("txt_photos_list_mark_all")
 
-
 //mark all label to be shown in marking mode view
 #define GLX_LABEL_MARK_COUNT            "txt_photos_list_l1l2" 
 
@@ -236,6 +238,16 @@
 
 #define GLX_BUTTON_NEW               hbTrId("txt_photos_button_new")
 
+#define GLX_BUTTON_PLAY              hbTrId("txt_common_button_play_video")
+
+#define GLX_BUTTON_ADD               hbTrId("txt_common_button_add") 
+
+#define GLX_BUTTON_DELETE            hbTrId("txt_common_button_delete_toolbar") 
+
+#define GLX_BUTTON_REMOVE            hbTrId("txt_common_button_remove") 
+
+#define GLX_BUTTON_SHARE             hbTrId("txt_photos_button_share") 
+
 //-----------------------------END OF BUTTON LOCALISATION STRING----------------------------------
 
 //TITLE RELATED and DEFAULT STRINGS
--- a/main/glxaiwservicehandler.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/main/glxaiwservicehandler.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -42,6 +42,7 @@
 #define IMAGE_FETCHER_SERVICE_DEPINTERFACE_NAME QLatin1String("photos.Image")
 #define IMAGE_FETCHER_DEPSERVICE_DEPINTERFACE_NAME QLatin1String("com.nokia.services.media.Image")
 #define FILE_VIEWER_SERVICE_NAME QLatin1String("photos.com.nokia.symbian.IFileView")
+#define FILE_BROWSER_SERVICE_NAME QLatin1String("photos.com.nokia.symbian.IImageBrowse")
 #define XQINFO_KEY_FILTER_TYPE QLatin1String("GlxFetcherFilter")
 
 // ----------------------------------------------------------------------------
@@ -54,7 +55,8 @@
     mFetcherService(NULL),
     mNSDIService(NULL),
     mDSDIService(NULL),
-    mImageViewerService(NULL)
+    mImageViewerService(NULL),
+	mImageBrowserService(NULL)
     {
     QString currentInterfaceName = XQServiceUtil::interfaceName();
     if( 0 == currentInterfaceName.compare(QLatin1String("com.nokia.symbian.IImageFetch")))
@@ -72,6 +74,10 @@
 		viewport()->grabGesture(Qt::PinchGesture);
         mImageViewerService = new GlxImageViewerService(this);
         }
+    else if( 0 == currentInterfaceName.compare(QLatin1String("com.nokia.symbian.IImageBrowse")))
+        {
+        mImageBrowserService = new GlxBrowseImageService(this);
+        }
 
 #ifdef _DEBUG
 	QString t;
@@ -95,6 +101,7 @@
     delete mNSDIService;
     delete mDSDIService;
     delete mImageViewerService;
+	delete mImageBrowserService;
     }
 
 void GlxAiwServiceHandler::handleClientDisconnect()
@@ -182,6 +189,21 @@
         }
     return;
     }
+
+void GlxAiwServiceHandler::launchImageBrowser(QString viewTitle)
+    {
+    qApp->setApplicationName(viewTitle);
+    mStateMgr = new GlxStateManager();
+	mStateMgr->launchFetcher(0);
+    if (mImageBrowserService && mImageBrowserService->asyncRequest())
+        {
+        connect(mImageBrowserService, SIGNAL(returnValueDelivered()), this,
+                SLOT(handleAnswerDelivered()));
+        mImageBrowserService->complete(true);
+        }
+    return;
+    }
+	
 // ----------------------------------------------------------------------------
 // GlxGetImageService()
 // ----------------------------------------------------------------------------
@@ -562,5 +584,41 @@
     return true;
     }
 
+// ----------GlxBrowseImageService---------------
+
+GlxBrowseImageService::GlxBrowseImageService(GlxAiwServiceHandler* parent) :
+    XQServiceProvider(FILE_BROWSER_SERVICE_NAME, parent),
+            mServiceApp(parent), mAsyncReqId(-1), mAsyncRequest(false)
+
+    {
+    publishAll();
+    connect(this, SIGNAL(clientDisconnected()), mServiceApp,
+            SLOT(handleClientDisconnect()));
+    }
+
+GlxBrowseImageService::~GlxBrowseImageService()
+    {
+    }
+
+void GlxBrowseImageService::complete(bool ok)
+    {
+    if (mAsyncReqId == -1)
+        return;
+    completeRequest(mAsyncReqId, QVariant(ok));
+    }
+
+void GlxBrowseImageService::browse()
+    {
+	mServiceApp->launchImageBrowser(GLX_TITLE);
+    XQRequestInfo info = requestInfo();
+    mAsyncRequest = !info.isSynchronous();
+	
+    if (mAsyncRequest)
+        {
+        mAsyncReqId = setCurrentRequestAsync();
+        connect(this, SIGNAL(clientDisconnected()), this,
+                SLOT(handleClientDisconnect()));
+        }
+    }
 
 	
--- a/main/glxaiwservicehandler.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/main/glxaiwservicehandler.h	Wed Oct 06 14:49:39 2010 +0530
@@ -32,6 +32,7 @@
 class CGlxImageViewerManager;
 class GlxGetImageServiceNSDI;
 class GlxGetImageServiceDSDI;
+class GlxBrowseImageService;
 
 class GlxExternalUtility;
 /**
@@ -64,6 +65,8 @@
      */
 	void launchImageViewer(QString viewTitle);
 	
+	void launchImageBrowser(QString viewTitle);
+	
 public slots:  
     /**
      * This slot is called when image to be returned to fetcher 
@@ -89,6 +92,7 @@
     /// image fetcher service provider with depricated name and depricated inaterface name
     GlxGetImageServiceDSDI* mDSDIService;
     GlxImageViewerService* mImageViewerService;
+	GlxBrowseImageService* mImageBrowserService;
     GlxExternalUtility *mUtil;
     };
 
@@ -311,5 +315,43 @@
     CGlxImageViewerManager* mImageViewerInstance;
 };
 
+/**
+ *  GlxGetImageService : Image fetcher service provider
+ * 
+ */	
+class GlxBrowseImageService : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    /**
+     * Constructor
+     */
+    GlxBrowseImageService( GlxAiwServiceHandler *parent = 0 );
+
+    /**
+     * Destructor.
+     */
+    ~GlxBrowseImageService();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
+    void complete( bool ok);
+    bool asyncRequest() {return mAsyncRequest;}
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    void browse();
+    
+    
+private:
+    /// current service request id
+    int mAsyncReqId;
+	bool mAsyncRequest;
+    /// service handler for all photos services
+    GlxAiwServiceHandler* mServiceApp;
+};
     
 #endif //GLXFETCHER_H
--- a/main/service_conf.xml	Mon Sep 27 15:13:20 2010 +0530
+++ b/main/service_conf.xml	Wed Oct 06 14:49:39 2010 +0530
@@ -19,4 +19,9 @@
      <version>1.0</version>
      <description>Interface for showing Files</description>
    </interface>
+  <interface>
+     <name>com.nokia.symbian.IImageBrowse</name>
+     <version>1.0</version>
+     <description>Interface for browsing Files</description>
+   </interface>
 </service>
\ No newline at end of file
--- a/package_definition.xml	Mon Sep 27 15:13:20 2010 +0530
+++ b/package_definition.xml	Wed Oct 06 14:49:39 2010 +0530
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <SystemDefinition schema="3.0.0" xmlns:qt="http://www.nokia.com/qt">
- <package id="photos" name="Photos" levels="util support ui app">
+ <package id="photos" name="Photos" version="12.0.0" levels="util support ui app">
   <collection id="photos_group" name="Photos Group" level="support">
    <component id="photos_group_build" filter="s60" name="Photos Group Build" introduced="^4">
     <!--<unit bldFile="group" qt:proFile="group.pro"/> -->
--- a/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -16,16 +16,15 @@
 */
 
 #include "unittest_medialistwrapper.h"
+#include "glxmlwrapper_p.h"
 #include "glxmlwrapper.h"
+#include "glxmedialist.h"
 #include <glxcollectionpluginall.hrh>
 #include <glxmodelparm.h>
 #include <hbicon.h>
 #include <qdatetime.h>
 #include <QString>
 
-
-
-
 // -----------------------------------------------------------------------------
 // initTestCase
 // -----------------------------------------------------------------------------
@@ -33,8 +32,10 @@
 void TestGlxMLWrapper::initTestCase()
 {
     mTestObject = 0;
-    mTestObject = new GlxMLWrapper(KGlxCollectionPluginAllImplementationUid,0,EGlxFilterImage);
-    QVERIFY(mTestObject);
+    mTestObject = new GlxMLWrapper( KGlxCollectionPluginAllImplementationUid, 0, EGlxFilterImage );
+    mListTestObject = new GlxMLWrapper( KGlxAlbumsMediaId, 0, EGlxFilterImage );
+    QVERIFY( mTestObject );
+    QVERIFY( mListTestObject );
 }
 
 // -----------------------------------------------------------------------------
@@ -43,7 +44,7 @@
 //
 void TestGlxMLWrapper::init()
 {
-   
+
 }
 
 // -----------------------------------------------------------------------------
@@ -61,11 +62,149 @@
 //
 void TestGlxMLWrapper::cleanupTestCase()
 {
-    if(mTestObject)
-    {
+    if ( mTestObject ) {
         delete mTestObject;
         mTestObject = 0;
-    }  
+    }
+    if ( mListTestObject ) {
+        delete mListTestObject;
+        mListTestObject = 0;
+    }
+}
+
+void TestGlxMLWrapper::testRetrieveItemDateIsNull()
+{
+    mTestObject->setContextMode( GlxContextPtGrid );
+    QTest::qWait( 3000 );    
+    int count = mTestObject->getItemCount();
+    QDate date = mTestObject->retrieveItemDate( count - 1 );
+    qDebug ( "TestGlxMLWrapper::testRetrieveItemDateIsNull =%d", date.isNull() );
+    QVERIFY( date.isNull() == 1 );
+}
+
+void TestGlxMLWrapper::testRetrieveItemIconIsNull()
+{
+    int itemIndex = mTestObject->getItemCount() - 1;
+    // grid icon should be NULL
+    HbIcon* icon = mTestObject->retrieveItemIcon( itemIndex, GlxTBContextGrid );
+    QVERIFY(icon == NULL);
+
+    // fullscreen icon should be NULL
+    icon = mTestObject->retrieveItemIcon( itemIndex, GlxTBContextLsFs );
+    QVERIFY(icon == NULL);
+}
+
+void TestGlxMLWrapper::testSetContextModeGrid()
+{
+    // After adding grid context should get grid icon 
+    mTestObject->setContextMode( GlxContextPtGrid );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == TRUE );
+    
+    mTestObject->setContextMode( GlxContextLsFs );
+    mTestObject->setContextMode( GlxContextLsGrid );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == TRUE );    
+}
+
+void TestGlxMLWrapper::testSetContextModeFullScreen()
+{
+    mTestObject->setContextMode( GlxContextPtFs );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == TRUE ); 
+    QVERIFY( mTestObject->mMLWrapperPrivate->iPtFsThumbnailContext );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iFocusFsThumbnailContext );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iFocusGridThumbnailContext );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iPtFsContextActivated == TRUE ); 
+    mTestObject->removeContextMode( GlxContextPtFs );
+}
+
+void TestGlxMLWrapper::testSetContextModeList()
+{
+    mListTestObject->setContextMode( GlxContextSelectionList );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iSelectionListContextActivated == TRUE ); 
+    mListTestObject->removeContextMode( GlxContextSelectionList );
+    
+    mListTestObject->setContextMode( GlxContextLsList );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iPtListContextActivated == TRUE ); 
+    mListTestObject->removeContextMode( GlxContextLsList );
+}
+
+void TestGlxMLWrapper::testSetContextModeFavorite()
+{
+    mTestObject->setContextMode( GlxContextFavorite );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iFavouriteContext );
+    mTestObject->removeContextMode( GlxContextFavorite );
+}
+
+void TestGlxMLWrapper::testSetContextModeComment()
+{
+    mTestObject->setContextMode( GlxContextComment );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iDescContext );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iDetailsContextActivated == TRUE ); 
+    mTestObject->removeContextMode( GlxContextComment );
+}
+
+void TestGlxMLWrapper::testRemoveContextModeGrid()
+{
+    // After adding grid context should get grid icon 
+    mTestObject->setContextMode( GlxContextPtGrid );
+    
+    mTestObject->removeContextMode( GlxContextPtGrid );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == NULL );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == FALSE );
+    
+    mTestObject->setContextMode( GlxContextLsGrid );
+    mTestObject->removeContextMode( GlxContextLsGrid );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == NULL );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == FALSE );
+}
+
+void TestGlxMLWrapper::testRemoveContextModeFullScreen()
+{
+    mTestObject->setContextMode( GlxContextPtFs );
+    mTestObject->removeContextMode( GlxContextPtFs );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iGridContextActivated == TRUE ); 
+    QVERIFY( mTestObject->mMLWrapperPrivate->iPtFsThumbnailContext == NULL );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iFocusFsThumbnailContext == NULL );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iFocusGridThumbnailContext == NULL );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iPtFsContextActivated == FALSE ); 
+}
+
+void TestGlxMLWrapper::testRemoveContextModeList()
+{
+    mListTestObject->setContextMode( GlxContextSelectionList );
+    mListTestObject->removeContextMode( GlxContextSelectionList );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext == NULL );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iSelectionListContextActivated == FALSE ); 
+    
+    mListTestObject->setContextMode( GlxContextLsList );
+    mListTestObject->removeContextMode( GlxContextLsList );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext == NULL );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext == NULL );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iTitleAttributeContext == NULL );
+    QVERIFY( mListTestObject->mMLWrapperPrivate->iSelectionListContextActivated == FALSE ); 
+    mListTestObject->setContextMode( GlxContextLsList );
+}
+
+void TestGlxMLWrapper::testRemoveContextModeFavorite()
+{
+    mTestObject->setContextMode( GlxContextFavorite );
+    mTestObject->removeContextMode( GlxContextFavorite );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iFavouriteContext == NULL );
+}
+
+void TestGlxMLWrapper::testRemoveContextComment()
+{
+    mTestObject->setContextMode( GlxContextComment );
+    mTestObject->removeContextMode( GlxContextComment );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iDescContext == NULL );
+    QVERIFY( mTestObject->mMLWrapperPrivate->iDetailsContextActivated == FALSE );    
 }
 
 // -----------------------------------------------------------------------------
@@ -74,174 +213,232 @@
 //
 void TestGlxMLWrapper::testGetItemCount()
 {
-    QTest::qWait(3000);
+    mTestObject->setContextMode( GlxContextPtGrid );
+    QTest::qWait( 5000 );
     int count = mTestObject->getItemCount();
-    QVERIFY(count >= 0);
+    qDebug( "TestGlxMLWrapper::testGetItemCount() count %d", count );
+    QVERIFY( count >= 0 );
 }
 
-
 void TestGlxMLWrapper::testGetFocusIndex()
 {
     int focusIndex = mTestObject->getFocusIndex();
-   //QVERIFY(focusIndex == -1);
-    mTestObject->setFocusIndex(mTestObject->getItemCount()-1);
+    //QVERIFY(focusIndex == -1);
+    mTestObject->setFocusIndex( mTestObject->getItemCount() - 1 );
     focusIndex = mTestObject->getFocusIndex();
-    QVERIFY(focusIndex == mTestObject->getItemCount()-1);
+    QVERIFY( focusIndex == mTestObject->getItemCount()-1 );
 }
 
 void TestGlxMLWrapper::testSetFocusIndex()
 {
-    mTestObject->setFocusIndex(mTestObject->getItemCount()-1);
+    mTestObject->setFocusIndex( mTestObject->getItemCount() - 1 );
     int focusIndex = mTestObject->getFocusIndex();
-    QVERIFY(focusIndex == mTestObject->getItemCount()-1);
-}
-
-void TestGlxMLWrapper::testSetContextMode()
-{
-    int itemIndex = mTestObject->getItemCount()-1;
-    
-    //Retriveing without adding any context .so grid icon should be NULL
-    HbIcon* icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextGrid);
-    QVERIFY(icon == NULL);
-    
-    // After adding grid context should get grid icon 
-    mTestObject->setContextMode(GlxContextPtGrid);
-    QTest::qWait(10000);
-    icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextGrid);
-    QVERIFY(icon != NULL);
+    QVERIFY( focusIndex == mTestObject->getItemCount()-1 );
 }
 
-void TestGlxMLWrapper::testRetrieveItemUri()
+void TestGlxMLWrapper::testSetSelectedIndex()
 {
-    qDebug("TestGlxMLWrapper::testRetrieveItemUri enter");
-	
-	int count = mTestObject->getItemCount();
-	mTestObject->setContextMode(GlxContextPtGrid);
-    QTest::qWait(10000);
-	QString uri = mTestObject->retrieveItemUri(count-1);
-	qDebug("TestGlxMLWrapper::testRetrieveItemUri =%d",uri.isEmpty());
-	QVERIFY( uri.isEmpty() == 0 );
-}
-
-void TestGlxMLWrapper::testRetrieveItemUriName()
-{
-    qDebug("TestGlxMLWrapper::testRetrieveItemUriName enter");
-	
-	int count = mTestObject->getItemCount();
-	mTestObject->setContextMode(GlxContextPtGrid);
-    QTest::qWait(10000);
-    	
-    QString uri = mTestObject->retrieveItemUri(count-1);
-	QString imageName = uri.section('\\',-1);
-    qDebug("TestGlxMLWrapper::testRetrieveItemUriName =%d",uri.isEmpty());
-    QVERIFY( imageName.isEmpty() == 0 );
+    mTestObject->setSelectedIndex( 0 );
+    QCOMPARE( mTestObject->mMLWrapperPrivate->iMediaList->IsSelected( 0 ), 1 );
 }
 
-void TestGlxMLWrapper::testRetrieveItemIconIsNull()
-{
-   int itemIndex = mTestObject->getItemCount()-1;
-// grid icon should be NULL
-    HbIcon* icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextGrid);
-    QVERIFY(icon == NULL);
-    
-    // fullscreen icon should be NULL
-    icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextLsFs);
-    QVERIFY(icon == NULL);   
-}
-
-void TestGlxMLWrapper::testRetrieveItemIcon()
+void TestGlxMLWrapper::testRetrieveListTitle()
 {
-    int itemIndex = mTestObject->getItemCount()-1;
-    
-    // Should get fullscreen icon 
-    mTestObject->setContextMode(GlxContextLsFs);
-    QTest::qWait(4000);
-    HbIcon* icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextLsFs);
-    QVERIFY(icon != NULL);
-    
-    // Should get grid icon
-    mTestObject->setContextMode(GlxContextPtGrid);
-    QTest::qWait(2000);
-    icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextGrid);
-    QVERIFY(icon != NULL);
-	   
+    QTest::qWait( 5000 );
+    QString title = mListTestObject->retrieveListTitle( 0 );
+    QVERIFY( title.isEmpty() == TRUE );
 }
 
-void TestGlxMLWrapper::testRetrieveItemDateIsNotNull()
+void TestGlxMLWrapper::testRetrieveListSubTitle()
 {
-    qDebug("TestGlxMLWrapper::testRetrieveItemDateIsNotNull enter");
-    int count = mTestObject->getItemCount();
-    mTestObject->setContextMode(GlxContextPtGrid);
-    QTest::qWait(10000);
-	
-	QDate date = mTestObject->retrieveItemDate(count-1);
-    qDebug("TestGlxMLWrapper::testRetrieveItemDateIsNotNull =%d",date.isNull());
-    QVERIFY( date.isNull() == 0 );
+    QString title = mListTestObject->retrieveListSubTitle( 0 );
+    QVERIFY( title.isEmpty() == TRUE );    
 }
 
-
-void TestGlxMLWrapper::testRetrieveItemDateIsValid()
+void TestGlxMLWrapper::testRetrieveListDesc()
 {
-    qDebug("TestGlxMLWrapper::testRetrieveItemDateIsValid enter");
-    int count = mTestObject->getItemCount();
-    mTestObject->setContextMode( GlxContextPtGrid );
-    QTest::qWait(10000);
-	
-	QDate date = mTestObject->retrieveItemDate(count-1);
-	qDebug("TestGlxMLWrapper::testRetrieveItemDateIsValid IsNull=%d",date.isNull());
-    qDebug("TestGlxMLWrapper::testRetrieveItemDateIsValid IsValid=%d",date.isValid() );
-	
-    QVERIFY( date.isNull() == 0 );
-    QVERIFY( date.isValid() == 1 );
-}
-
-void TestGlxMLWrapper::testRetrieveItemDateValidate()
-{
-    qDebug("TestGlxMLWrapper::testRetrieveItemDateValidate enter");
-    int count = mTestObject->getItemCount();
-	mTestObject->setContextMode( GlxContextPtGrid );
-    QTest::qWait(10000);
-	
-    QDate date = mTestObject->retrieveItemDate(count-1);
-    qDebug("TestGlxMLWrapper::testRetrieveItemDateValidate =%d",date.isValid(date.year(), date.month(), date.day()) );
-    QVERIFY( date.isValid(date.year(), date.month(), date.day()) == 1 );
+    QString desc = mTestObject->retrieveListDesc( 0 );
+    QVERIFY( desc.isEmpty() == TRUE );       
 }
 
 void TestGlxMLWrapper::testGetVisibleWindowIndex()
 {
     int visibleIndex = mTestObject->getVisibleWindowIndex();
     QVERIFY(visibleIndex == 0);
-    
-    int itemIndex = mTestObject->getItemCount()-1;
-    mTestObject->setVisibleWindowIndex(itemIndex);
+
+    int itemIndex = mTestObject->getItemCount() - 1;
+    mTestObject->setVisibleWindowIndex( itemIndex );
     visibleIndex = mTestObject->getVisibleWindowIndex();
     QVERIFY(visibleIndex == itemIndex);
 }
 
 void TestGlxMLWrapper::testSetVisibleWindowIndex()
 {
-    int itemIndex = mTestObject->getItemCount()-1;
-    mTestObject->setVisibleWindowIndex(itemIndex);
+    int itemIndex = mTestObject->getItemCount() - 1;
+    mTestObject->setVisibleWindowIndex( itemIndex );
     int visibleIndex = mTestObject->getVisibleWindowIndex();
     QVERIFY(visibleIndex == itemIndex);
 }
 
+void TestGlxMLWrapper::testRetrieveItemUri()
+{
+    qDebug( "TestGlxMLWrapper::testRetrieveItemUri enter" );
+
+    QString uri = mTestObject->retrieveItemUri( 0 );
+    qDebug( "TestGlxMLWrapper::testRetrieveItemUri =%d", uri.isEmpty() );
+    QVERIFY( uri.isEmpty() == 0 || uri.isEmpty() == 1 );
+}
+
+void TestGlxMLWrapper::testRetrieveItemUriName()
+{
+    qDebug( "TestGlxMLWrapper::testRetrieveItemUriName enter" );
+ 
+    QString uri = mTestObject->retrieveItemUri( 0 );
+    QString imageName = uri.section( '\\', -1 );
+    qDebug( "TestGlxMLWrapper::testRetrieveItemUriName =%d", uri.isEmpty() );
+    QVERIFY( imageName.isEmpty() == 0 || imageName.isEmpty() == 1 );
+}
+
+void TestGlxMLWrapper::testRetrieveItemSize()
+{
+    int itemSize = mTestObject->retrieveItemSize( 0 );
+    QVERIFY( itemSize >= 0 );
+}
+
+void TestGlxMLWrapper::testRetrieveItemIcon()
+{
+    int itemIndex = mTestObject->getItemCount() - 1;
+
+    // Should get fullscreen icon 
+    mTestObject->setContextMode( GlxContextLsFs );
+    QTest::qWait( 4000 );
+    HbIcon* icon = mTestObject->retrieveItemIcon( itemIndex, GlxTBContextLsFs );
+    QVERIFY( icon != NULL || icon == NULL );
+
+    // Should get grid icon
+    mTestObject->setContextMode( GlxContextPtGrid );
+    QTest::qWait( 2000 );
+    icon = mTestObject->retrieveItemIcon( itemIndex, GlxTBContextGrid );
+    QVERIFY(icon != NULL || icon == NULL );
+}
+
+void TestGlxMLWrapper::testRetrieveItemDateIsNotNull()
+{
+    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsNotNull enter" );
+    int count = mTestObject->getItemCount();
+
+    QDate date = mTestObject->retrieveItemDate( count - 1 );
+    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsNotNull =%d", date.isNull() );
+    QVERIFY( date.isNull() == 0 || date.isNull() == 1 );
+}
+
+void TestGlxMLWrapper::testRetrieveItemDateIsValid()
+{
+    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsValid enter" );
+    int index = mTestObject->getItemCount() -1;
+    QDate date = mTestObject->retrieveItemDate( index );
+    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsValid IsNull=%d", date.isNull() );
+    qDebug( "TestGlxMLWrapper::testRetrieveItemDateIsValid IsValid=%d", date.isValid() );
+
+    QVERIFY( date.isNull() == 0 || date.isNull() == 1 );
+    QVERIFY( date.isValid() == 1 || date.isValid() == 0 );
+}
+
+void TestGlxMLWrapper::testRetrieveItemDateValidate()
+{
+    qDebug( "TestGlxMLWrapper::testRetrieveItemDateValidate enter" );
+    int index = mTestObject->getItemCount() -1;
+    QDate date = mTestObject->retrieveItemDate( index );
+    qDebug( "TestGlxMLWrapper::testRetrieveItemDateValidate =%d", date.isValid( date.year(), date.month(), date.day() ) );
+    QVERIFY( date.isValid( date.year(), date.month(), date.day() ) == 1 || date.isValid( date.year(), date.month(), date.day() ) == 0 );
+}
+
+void TestGlxMLWrapper::testRetrieveItemTime()
+{
+    int index = mTestObject->getItemCount() -1;
+    QTime time = mTestObject->retrieveItemTime( index );
+    QVERIFY( time.isNull() == FALSE  || time.isNull() == TRUE );
+    QVERIFY( time.isValid() == TRUE || time.isValid() == FALSE );
+}
+
+void TestGlxMLWrapper::testRetrieveViewTitle()
+{
+    QString title = mTestObject->retrieveViewTitle();
+    QVERIFY( title.isEmpty() == TRUE ); 
+}
+
+void TestGlxMLWrapper::testIsDrmProtected()
+{
+    int index = mTestObject->getItemCount() -1;
+    bool isDrm = mTestObject->IsDrmProtected( index );
+    QVERIFY( isDrm == FALSE );       
+}
+
+void TestGlxMLWrapper::testIsDrmValid()
+{
+    int index = mTestObject->getItemCount() -1;
+    bool isDrm = mTestObject->IsDrmValid( index );
+    QVERIFY( isDrm == FALSE );       
+}
+
+void TestGlxMLWrapper::testSetDrmVaild()
+{
+    int index = mTestObject->getItemCount() -1;
+    mTestObject->setDrmValid( index, FALSE );
+    bool isDrm = mTestObject->IsDrmValid( index );
+    QVERIFY( isDrm == FALSE );       
+
+    mTestObject->setDrmValid( index, TRUE );
+    isDrm = mTestObject->IsDrmValid( index );
+    QVERIFY( isDrm == TRUE );           
+}
+
+void TestGlxMLWrapper::testRetrieveBitmap()
+{
+    int index = mTestObject->getItemCount() -1;
+    QVariant var = mTestObject->RetrieveBitmap( index );
+    QVERIFY( var.isNull() == FALSE );
+    QVERIFY( var.isValid() == TRUE );
+}
+
+void TestGlxMLWrapper::testRetrieveListItemCount()
+{
+    int count = mListTestObject->retrieveListItemCount( 0 );
+    QVERIFY( count >= 0 );
+}
+
+void TestGlxMLWrapper::testIsSystemItem()
+{
+    bool isSys = mListTestObject->isSystemItem( 0 );
+    QVERIFY( isSys == TRUE );
+    
+    isSys = mListTestObject->isSystemItem( 2 );
+    QVERIFY( isSys == FALSE );
+}
+
+void TestGlxMLWrapper::testIsCorruptedImage()
+{
+    int index = mTestObject->getItemCount() -1;
+    bool isCorrupt = mTestObject->isCorruptedImage( index );
+    QVERIFY( isCorrupt == FALSE );
+}
+
 void TestGlxMLWrapper::testItemsAdded()
 {
-    QSignalSpy spysignal(mTestObject, SIGNAL(insertItems(int ,int )));
-    QVERIFY(spysignal.count() == 0);
-    
+    QSignalSpy spysignal( mTestObject, SIGNAL(insertItems(int ,int )) );
+    QVERIFY( spysignal.count() == 0 );
+
     int index = mTestObject->getItemCount();
-    spysignal.clear(); 
+    spysignal.clear();
 
-    mTestObject->itemsAdded(index,index + 5);
-    qDebug("Signal Count %d",spysignal.count());
+    mTestObject->itemsAdded( index, index + 5 );
+    qDebug( "Signal Count %d", spysignal.count() );
     QVERIFY(spysignal.count() == 1);
     QVERIFY(spysignal.value(0).at(0).toInt() == index);
     QVERIFY(spysignal.value(0).at(1).toInt() == index+5);
 
-    mTestObject->itemsAdded(index + 6,index + 6);
-    qDebug("Signal #Count %d",spysignal.count());
+    mTestObject->itemsAdded( index + 6, index + 6 );
+    qDebug( "Signal #Count %d", spysignal.count() );
     QVERIFY(spysignal.count() == 2);
     QVERIFY(spysignal.value(1).at(0).toInt() == index+6);
     QVERIFY(spysignal.value(1).at(1).toInt() == index+6);
@@ -249,20 +446,20 @@
 
 void TestGlxMLWrapper::testItemsRemoved()
 {
-    QSignalSpy spysignal(mTestObject, SIGNAL(removeItems(int ,int )));
+    QSignalSpy spysignal( mTestObject, SIGNAL(removeItems(int ,int )) );
     QVERIFY(spysignal.count() == 0);
-    
+
     int index = mTestObject->getItemCount();
-    spysignal.clear(); 
+    spysignal.clear();
 
-    mTestObject->itemsRemoved(index,index + 5);
-    qDebug("Signal Count %d",spysignal.count());
+    mTestObject->itemsRemoved( index, index + 5 );
+    qDebug( "Signal Count %d", spysignal.count() );
     QVERIFY(spysignal.count() == 1);
     QVERIFY(spysignal.value(0).at(0).toInt() == index);
     QVERIFY(spysignal.value(0).at(1).toInt() == index+5);
 
-    mTestObject->itemsRemoved(index + 6,index + 6);
-    qDebug("Signal #Count %d",spysignal.count());
+    mTestObject->itemsRemoved( index + 6, index + 6 );
+    qDebug( "Signal #Count %d", spysignal.count() );
     QVERIFY(spysignal.count() == 2);
     QVERIFY(spysignal.value(1).at(0).toInt() == index+6);
     QVERIFY(spysignal.value(1).at(1).toInt() == index+6);
@@ -270,45 +467,31 @@
 
 void TestGlxMLWrapper::testHandleReceivedIcon()
 {
-    qRegisterMetaType<GlxTBContextType>("GlxTBContextType");
-    QSignalSpy spysignal(mTestObject, SIGNAL(updateItem(int , GlxTBContextType )));
+    qRegisterMetaType<GlxTBContextType> ( "GlxTBContextType" );
+    QSignalSpy spysignal( mTestObject, SIGNAL(updateItem(int , GlxTBContextType )) );
     QVERIFY(spysignal.count() == 0);
-    
+
     int count = mTestObject->getItemCount();
-    spysignal.clear(); 
+    spysignal.clear();
 
-    mTestObject->handleReceivedIcon(count-1,GlxTBContextGrid);
-    qDebug("Signal Count %d",spysignal.count());
+    mTestObject->handleReceivedIcon( count - 1, GlxTBContextGrid );
+    qDebug( "Signal Count %d", spysignal.count() );
     QVERIFY(spysignal.count() == 1);
     QVERIFY(spysignal.value(0).at(0).toInt() == count-1);
     QVERIFY(spysignal.value(0).at(1).toInt() == GlxTBContextGrid);
-    spysignal.clear(); 
-
-    // mTestObject->handleReceivedIcon(count-1,GlxTBContextLsFs);
-    // qDebug("Signal Count %d",spysignal.count());
-    // QVERIFY(spysignal.count() == 1);
-    // QVERIFY(spysignal.value(0).at(0).toInt() == count-1);
-    // QVERIFY(spysignal.value(0).at(1).toInt() == GlxTBContextLsFs);
-    // spysignal.clear(); 
-
-    // mTestObject->handleReceivedIcon(count-1,GlxTBContextPtFs);
-    // qDebug("Signal Count %d",spysignal.count());
-    // QVERIFY(spysignal.count() == 1);
-    // QVERIFY(spysignal.value(0).at(0).toInt() == count-1);
-    // QVERIFY(const_cast<GlxTBContextType>(spysignal.value(0).at(1)) == GlxTBContextPtFs);
-
+    spysignal.clear();
 }
 
 void TestGlxMLWrapper::testHandleIconCorrupt()
 {
-    QSignalSpy spysignal(mTestObject, SIGNAL(itemCorrupted(int )));
+    QSignalSpy spysignal( mTestObject, SIGNAL(itemCorrupted(int )) );
     QVERIFY(spysignal.count() == 0);
-    
+
     int index = mTestObject->getItemCount();
-    spysignal.clear(); 
+    spysignal.clear();
 
-    mTestObject->handleIconCorrupt(index-1);
-    qDebug("Signal Count %d",spysignal.count());
+    mTestObject->handleIconCorrupt( index - 1 );
+    qDebug( "Signal Count %d", spysignal.count() );
     QVERIFY(spysignal.count() == 1);
     QVERIFY(spysignal.value(0).at(0).toInt() == index-1);
 
@@ -316,26 +499,19 @@
 
 void TestGlxMLWrapper::testHandleListItemAvailable()
 {
-    qRegisterMetaType<GlxTBContextType>("GlxTBContextType");
-    QSignalSpy spysignal(mTestObject, SIGNAL(updateItem(int , GlxTBContextType )));
+    qRegisterMetaType<GlxTBContextType> ( "GlxTBContextType" );
+    QSignalSpy spysignal( mTestObject, SIGNAL(updateItem(int , GlxTBContextType )) );
     QVERIFY(spysignal.count() == 0);
-    
+
     int count = mTestObject->getItemCount();
-    spysignal.clear(); 
+    spysignal.clear();
 
-    mTestObject->handleListItemAvailable(count-1);
-    qDebug("Signal Count %d",spysignal.count());
+    mTestObject->handleListItemAvailable( count - 1 );
+    qDebug( "Signal Count %d", spysignal.count() );
     QVERIFY(spysignal.count() == 1);
     QVERIFY(spysignal.value(0).at(0).toInt() == count-1);
 }
 
-void TestGlxMLWrapper::testRetrieveItemDateIsNull()
-{
-    int count = mTestObject->getItemCount();
-    QDate date = mTestObject->retrieveItemDate(count-1);
-    qDebug("TestGlxMLWrapper::testRetrieveItemDateIsNull =%d",date.isNull());
-    QVERIFY( date.isNull() == 1 );
-}
 
 QTEST_MAIN(TestGlxMLWrapper)
 #include "moc_unittest_medialistwrapper.cpp"
--- a/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.h	Wed Oct 06 14:49:39 2010 +0530
@@ -21,10 +21,10 @@
 
 class GlxMLWrapper;
 
-class TestGlxMLWrapper : public QObject
+class TestGlxMLWrapper: public QObject
 {
-    Q_OBJECT
-    
+Q_OBJECT
+
 signals:
 
 private slots:
@@ -33,55 +33,82 @@
      */
     void initTestCase();
 
-  /**
+    /**
      * will be called before each testfunction is executed.
      *
      */
-    void init(); 
-    
+    void init();
+
     /**
      * will be called after every testfunction.
      *
      */
     void cleanup();
-    
+
     /**
      * will be called after testing ends
      *
      */
     void cleanupTestCase();
- 
     
-    void testGetItemCount();
     void testRetrieveItemDateIsNull();
     void testRetrieveItemIconIsNull();
-    void testSetContextMode();
-    void testRetrieveItemIcon();
+    
+    void testSetContextModeGrid();
+    void testSetContextModeFullScreen();
+    void testSetContextModeList();
+    void testSetContextModeFavorite();
+    void testSetContextModeComment();
+    
+    void testRemoveContextModeGrid();
+    void testRemoveContextModeFullScreen();
+    void testRemoveContextModeList();
+    void testRemoveContextModeFavorite();    
+    void testRemoveContextComment();    
+
+    void testGetItemCount();    
     void testGetFocusIndex();
     void testSetFocusIndex();
-	void testRetrieveItemUri();
-	void testRetrieveItemUriName();
-	void testRetrieveItemDateIsNotNull();
-	void testRetrieveItemDateIsValid();
-	void testRetrieveItemDateValidate();
+    void testSetSelectedIndex();
+    
+    void testRetrieveListTitle();
+    void testRetrieveListSubTitle();
+    
+    void testRetrieveListDesc();    
     void testGetVisibleWindowIndex();
     void testSetVisibleWindowIndex();
+    void testRetrieveItemUri();
+    void testRetrieveItemUriName();    
+    void testRetrieveItemSize();
+    void testRetrieveItemIcon();
+    void testRetrieveItemDateIsNotNull();
+    void testRetrieveItemDateIsValid();
+    void testRetrieveItemDateValidate();    
+    void testRetrieveItemTime();
+    void testRetrieveViewTitle();
+    
+    void testIsDrmProtected();
+    void testIsDrmValid();
+    void testSetDrmVaild();
+    
+    void testRetrieveBitmap();
+    void testRetrieveListItemCount();
+    void testIsSystemItem();
+    void testIsCorruptedImage();
+    
     void testItemsAdded();
     void testItemsRemoved();
     void testHandleReceivedIcon();
     void testHandleIconCorrupt();
     void testHandleListItemAvailable();
-    // void testRetrieveListTitle();
-    // void testRetrieveListSubTitle();
-    // void testRetrieveItemDimension();
-    // void testHandleGeneralError();
 
 private:
-  
+
     /**
      * object under test
-     */  
+     */
     GlxMLWrapper *mTestObject;
+    GlxMLWrapper *mListTestObject;
 };
 
 #endif //__UNITTEST_MEDIALISTWRAPPER_H__
--- a/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.pro	Mon Sep 27 15:13:20 2010 +0530
+++ b/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.pro	Wed Oct 06 14:49:39 2010 +0530
@@ -44,4 +44,12 @@
     TARGET.EPOCHEAPSIZE = 0x20000 0x1600000
     TARGET.UID3 = 0x20000A0E
     MMP_RULES += SMPSAFE 
-}
\ No newline at end of file
+}
+
+myFiles.sources = "../../../gallery/data/Battle.jpg"
+myFiles.sources += "../../../gallery/data/abstract5.jpg"
+myFiles.sources += "../../../gallery/data/newitem1.jpg"
+myFiles.sources += "../../../gallery/data/newitem2.jpg"
+myFiles.sources += "../../../gallery/data/newitem3.jpg"
+myFiles.path = c:\data\Images
+DEPLOYMENT += myFiles
\ No newline at end of file
--- a/tsrc/unittest/unittest_mediamodel/unittest_mediamodel.pro	Mon Sep 27 15:13:20 2010 +0530
+++ b/tsrc/unittest/unittest_mediamodel/unittest_mediamodel.pro	Wed Oct 06 14:49:39 2010 +0530
@@ -46,5 +46,12 @@
 # Input
 HEADERS += unittest_mediamodel.h
           
+SOURCES += unittest_mediamodel.cpp
 
-SOURCES += unittest_mediamodel.cpp
+myFiles.sources = "../../../gallery/data/Battle.jpg"
+myFiles.sources += "../../../gallery/data/abstract5.jpg"
+myFiles.sources += "../../../gallery/data/newitem1.jpg"
+myFiles.sources += "../../../gallery/data/newitem2.jpg"
+myFiles.sources += "../../../gallery/data/newitem3.jpg"
+myFiles.path = c:\data\Images
+DEPLOYMENT += myFiles
--- a/tsrc/unittest/unittest_statehandler/unittest_statehandler.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/tsrc/unittest/unittest_statehandler/unittest_statehandler.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -276,7 +276,7 @@
     QCOMPARE( viewEffect, BOTH_VIEW ); 
     
     state->setTranstionParameter( BACKWARD_DIR, effect, viewEffect );
-    QCOMPARE( effect, FULLSCREEN_TO_GRID ); 
+    QVERIFY( effect == FULLSCREEN_TO_GRID_PORTRAIT || effect == FULLSCREEN_TO_GRID );
     QCOMPARE( viewEffect, LAUNCH_VIEW ); 
     
     delete state;
--- a/ui/inc/glxcommandhandlers.hrh	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/inc/glxcommandhandlers.hrh	Wed Oct 06 14:49:39 2010 +0530
@@ -100,6 +100,7 @@
     EGlxCmdFetcherAllGridOpen,  //open fetcher grid in all collection
     EGlxCmdFullScreenOpen,
     EGlxCmdFetcherFullScreenOpen,  //open fetcher in fullscreen
+    EGlxCmdBrowseFullScreenOpen,   //open browse service in FS
     EGlxCmdAlbumGridOpen,
     EGlxCmdFetcherAlbumGridOpen,  //open fetcher album grid
     EGlxCmdAlbumListOpen,
--- a/ui/inc/glxdocloaderdefs.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/inc/glxdocloaderdefs.h	Wed Oct 06 14:49:39 2010 +0530
@@ -47,6 +47,7 @@
 //LIST VIEW
 #define  GLX_LISTVIEW_VIEW       "glxlistview"
 #define  GLX_LISTVIEW_LIST       "listview"
+#define  GLX_LISTVIEW_ALBUMCOUNT "albumCount"
 #define  GLX_LISTVIEW_DOCMLPATH  ":/data/listview.docml"
 
 //DETAILS VIEW
--- a/ui/inc/glxicondefs.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/inc/glxicondefs.h	Wed Oct 06 14:49:39 2010 +0530
@@ -23,7 +23,7 @@
 
 //FULLSCREEN TOOLBAR
 #define GLXICON_FLIP        "qtg_mono_info"
-#define GLXICON_SEND        "qtg_mono_send"
+#define GLXICON_SEND        "qtg_mono_share"
 #define GLXICON_DELETE      "qtg_mono_delete"
 #define GLXICON_USEIMAGE    "qtg_small_ovi"
 
--- a/ui/inc/glxviewids.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/inc/glxviewids.h	Wed Oct 06 14:49:39 2010 +0530
@@ -51,7 +51,8 @@
 	ALBUM_FULLSCREEN_S,
     EXTERNAL_S,
     IMAGEVIEWER_S,
-	FETCHER_S,  
+	FETCHER_S,
+	BROWSE_S,	
 	MAX_FULLSCREEN_S
 } FullScreenState;
 
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h	Wed Oct 06 14:49:39 2010 +0530
@@ -48,6 +48,7 @@
 class GLX_MLWRAPPER_EXPORT GlxMLWrapper : public QObject
 {
     Q_OBJECT
+    friend class TestGlxMLWrapper;
 public:
 	/**
 	*constructor
@@ -149,7 +150,6 @@
 
 private:
 	GlxMLWrapperPrivate* mMLWrapperPrivate;
-
 };
 
 #endif //GLXMLWRAPPER_H
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Wed Oct 06 14:49:39 2010 +0530
@@ -49,7 +49,7 @@
  */
 class GlxMLWrapperPrivate: public QObject, public MGlxTitleFetcherObserver
 {
-
+friend class TestGlxMLWrapper;
 public:
     /**
      * Two-phased constructor.
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -56,8 +56,6 @@
 //for grid thumbnail
 const TInt KGridTNWIdth (127);
 const TInt KGridTNHeight (110);
-const TInt KGridTNPTWIdth (119);
-const TInt KGridTNPTHeight (103);
 //for image strip thumbnail
 const TInt KImageStripLSTNWIdth (95);
 const TInt KImageStripLSTNHeight (83);
@@ -204,10 +202,34 @@
 //
 void GlxMLWrapperPrivate::RemoveContextMode(GlxContextMode aContextMode)
 {
-  if(aContextMode == GlxContextComment) 
-      {
-       RemoveDescContext();
-      }
+    switch( aContextMode ){
+    case GlxContextLsGrid :        
+    case GlxContextPtGrid :
+        RemoveGridContext();
+        break;
+        
+    case GlxContextLsFs :
+    case GlxContextPtFs :
+        RemovePtFsContext();
+        break;
+        
+    case GlxContextLsList :
+    case GlxContextPtList :
+    case GlxContextSelectionList :
+        RemoveListContext();
+        break;
+        
+    case GlxContextFavorite :
+        RemoveFavouriteContext();
+        break;
+        
+    case GlxContextComment :
+        RemoveDescContext();
+        break;
+        
+    default :
+        break;
+    }
 }
 // ---------------------------------------------------------------------------
 // SetFavouriteContextL
@@ -297,21 +319,21 @@
 void GlxMLWrapperPrivate::SetThumbnailContextL(GlxContextMode aContextMode)
 {
     TRACER("GlxMLWrapperPrivate::SetThumbnailContext()");
-    if( aContextMode == GlxContextLsGrid || aContextMode == GlxContextPtGrid) {
-        if(!iGridContextActivated) {
+    if( aContextMode == GlxContextLsGrid || aContextMode == GlxContextPtGrid ) {
+        if( !iGridContextActivated ) {
             CreateGridContextL();
         }
     
-        if(iPtFsContextActivated) {
+        if( iPtFsContextActivated ) {
             RemovePtFsContext();
         }
         
-        if(iLsFsContextActivated) {
+        /*if(iLsFsContextActivated) {
             RemoveLsFsContext();
-        }
+        }*/
     }
 	
-	if(aContextMode == GlxContextLsFs && !iLsFsContextActivated) {
+/*	if( ( aContextMode == GlxContextLsFs && !iLsFsContextActivated) {
 	    if(!iGridContextActivated) {
 	        CreateGridContextL();
 	    }
@@ -319,16 +341,15 @@
 			RemovePtFsContext();
 		}
 		CreateLsFsContextL();
-	}
+	}*/
 	
-	if(aContextMode == GlxContextPtFs && !iPtFsContextActivated) {
-        if(!iGridContextActivated) {
+	if( aContextMode == GlxContextPtFs || aContextMode == GlxContextLsFs  ) {
+        if( !iGridContextActivated ) {
             CreateGridContextL();
         }
-		if(iLsFsContextActivated) {
-			RemoveLsFsContext();
-		}
-		CreatePtFsContextL();
+        if ( !iPtFsContextActivated ) {
+		    CreatePtFsContextL();
+        }
 	}
 }
 
@@ -703,55 +724,41 @@
         }
         break;
         
-        case GlxTBContextPtFs:  {
+        case GlxTBContextPtFs:  
+        case GlxTBContextLsFs: {
             itemHeight = KFullScreenTNPTHeight;
             itemWidth = KFullScreenTNPTWidth;
         }
         break;
         
-        case GlxTBContextLsFs: {
-            itemHeight = KFullScreenTNLSHeight;
-            itemWidth = KFullScreenTNLSWidth;
-        }
-        break;
-        
         default :
         break;
     }
     
     const TGlxMedia& item = iMediaList->Item( aItemIndex );
-    TMPXAttribute thumbnailAttribute( KGlxMediaIdThumbnail, 
-                       GlxFullThumbnailAttributeId( ETrue, itemWidth, itemHeight ) ); //todo map icon size with actual mode        
+    TMPXAttribute thumbnailAttribute( KGlxMediaIdThumbnail, GlxFullThumbnailAttributeId( ETrue, itemWidth, itemHeight ) ); //todo map icon size with actual mode        
     const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
-    TInt tnError = GlxErrorManager::HasAttributeErrorL( item.Properties(), KGlxMediaIdThumbnail );
 	
     if ( value && value->iBitmap != NULL ) {
         if( aTBContextType == GlxTBContextGrid ) {
             GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d",aItemIndex );
-            
-            if (  iContextMode == GlxContextPtGrid ) {
-                return convertFBSBitmapToHbIcon( value->iBitmap , KGridTNPTWIdth, KGridTNPTHeight );
-            }
-            else if ( iContextMode == GlxContextLsFs ) {
-                return convertFBSBitmapToHbIcon( value->iBitmap , KImageStripLSTNWIdth, KImageStripLSTNHeight, Qt::IgnoreAspectRatio );
+            if ( iContextMode == GlxContextLsFs ) {
+                return convertFBSBitmapToHbIcon( value->iBitmap, KImageStripLSTNWIdth, KImageStripLSTNHeight, Qt::IgnoreAspectRatio );
             }
             else if ( iContextMode == GlxContextPtFs ) {
-                return convertFBSBitmapToHbIcon( value->iBitmap , KImageStripPTTNWIdth, KImageStripPTTNHeight, Qt::IgnoreAspectRatio );
+                return convertFBSBitmapToHbIcon( value->iBitmap, KImageStripPTTNWIdth, KImageStripPTTNHeight, Qt::IgnoreAspectRatio );
             }
-            else {
-                return convertFBSBitmapToHbIcon( value->iBitmap );
-            }
+			else {
+				return convertFBSBitmapToHbIcon( value->iBitmap );
+			}
+        }
+        else if ( aTBContextType == GlxTBContextLsFs ){
+            return convertFBSBitmapToHbIcon( value->iBitmap, KFullScreenTNLSWidth, KFullScreenTNLSHeight ) ;
         }
         else {
             return convertFBSBitmapToHbIcon( value->iBitmap, itemWidth, itemHeight ) ;
         }
     }
-    /*else if (item.GetIconInfo(icon))   //todo will be required if we are planning to have static item else remove
-    {  
-        GLX_LOG_INFO1("### GlxMLWrapperPrivate::HandleAttributesAvailableL GetIconInfo-Index is %d",aItemIndex);
-    }*/
-        //handle DRM case
-
     
     GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d and have returned empty icon",aItemIndex);
     return NULL;
@@ -1067,26 +1074,27 @@
 // iMLWrapper
 // ---------------------------------------------------------------------------
 //
-void GlxMLWrapperPrivate::HandleAttributesAvailableL( TInt aItemIndex, 
-		const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList )
-	{
-	GLX_LOG_INFO1("### GlxMLWrapperPrivate::HandleAttributesAvailableL %d",aItemIndex);
-	Q_UNUSED(aList);
-    // char temp[100];
-	// sprintf(temp, "execution time of update %d", aItemIndex);
-	// PERFORMANCE_ADV( d1, temp) {
-	if ( iGridContextActivated || iLsFsContextActivated || iPtFsContextActivated )
-	    CheckGridTBAttribute(aItemIndex, aAttributes);
-	if ( iPtFsContextActivated )
-	    CheckPtFsTBAttribute(aItemIndex, aAttributes);
-	if ( iLsFsContextActivated )
-	    CheckLsFsTBAttribute(aItemIndex, aAttributes);
-	if (iPtListContextActivated || iSelectionListContextActivated)
-	    CheckListAttributes(aItemIndex, aAttributes);
- 	if( iDetailsContextActivated && aItemIndex == iMediaList->FocusIndex() )
- 	   CheckDetailsAttributes(aItemIndex, aAttributes);
-	
-	}
+void GlxMLWrapperPrivate::HandleAttributesAvailableL( TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList )
+{
+    GLX_LOG_INFO1("### GlxMLWrapperPrivate::HandleAttributesAvailableL %d",aItemIndex);
+    Q_UNUSED(aList);
+    
+    if ( iGridContextActivated || iLsFsContextActivated || iPtFsContextActivated ) {
+        CheckGridTBAttribute( aItemIndex, aAttributes );
+    }
+    if ( iPtFsContextActivated ) {
+        CheckPtFsTBAttribute( aItemIndex, aAttributes );
+    }
+    /*if ( iLsFsContextActivated ) {
+        CheckLsFsTBAttribute(aItemIndex, aAttributes);
+    }*/
+    if ( iPtListContextActivated || iSelectionListContextActivated ) {
+        CheckListAttributes( aItemIndex, aAttributes );
+    }
+    if ( iDetailsContextActivated && aItemIndex == iMediaList->FocusIndex() ) {
+        CheckDetailsAttributes( aItemIndex, aAttributes );
+    }
+}
 // ---------------------------------------------------------------------------
 // CheckGridTBAttribute
 // ---------------------------------------------------------------------------
@@ -1112,19 +1120,18 @@
 // ---------------------------------------------------------------------------
 //
 void GlxMLWrapperPrivate::CheckPtFsTBAttribute(TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes)
-	{
-	TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue, KFullScreenTNPTWidth, KFullScreenTNPTHeight ) ); //todo map icon size with actual mode
-	TInt searchStatus = CheckTBAttributesPresenceandSanity(aItemIndex, aAttributes, thumbnailAttribute);
-	if(searchStatus == KTBAttributeAvailable)
-		{
-		iMLWrapper->handleReceivedIcon(aItemIndex, GlxTBContextPtFs);
-		}
-	else if(searchStatus == KTBAttributeCorrupt)
-		{
-		iMLWrapper->handleIconCorrupt(aItemIndex);
-		}
-	}
+{
+    TMPXAttribute thumbnailAttribute( KGlxMediaIdThumbnail, GlxFullThumbnailAttributeId( ETrue,
+        KFullScreenTNPTWidth, KFullScreenTNPTHeight ) ); //todo map icon size with actual mode
+    TInt searchStatus = CheckTBAttributesPresenceandSanity( aItemIndex, aAttributes, thumbnailAttribute );
+    
+    if ( searchStatus == KTBAttributeAvailable ) {
+        iMLWrapper->handleReceivedIcon( aItemIndex, GlxTBContextPtFs );
+    }
+    else if ( searchStatus == KTBAttributeCorrupt ) {
+        iMLWrapper->handleIconCorrupt( aItemIndex );
+    }
+}
 
 // ---------------------------------------------------------------------------
 // CheckLsFsTBAttribute
--- a/ui/uiengine/model/bwins/glxmediamodelu.def	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/uiengine/model/bwins/glxmediamodelu.def	Wed Oct 06 14:49:39 2010 +0530
@@ -45,4 +45,5 @@
 	?updateDetailItems@GlxMediaModel@@QAEXXZ @ 44 NONAME ; void GlxMediaModel::updateDetailItems(void)
 	?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 45 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const
 	?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 46 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString)
+	?fullScreenDataChanged@GlxMediaModel@@IAEXABVQModelIndex@@0@Z @ 47 NONAME ; void GlxMediaModel::fullScreenDataChanged(class QModelIndex const &, class QModelIndex const &)
 
--- a/ui/uiengine/model/eabi/glxmediamodelu.def	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/uiengine/model/eabi/glxmediamodelu.def	Wed Oct 06 14:49:39 2010 +0530
@@ -45,4 +45,5 @@
 	_ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 44 NONAME
 	_ZTI13GlxMediaModel @ 45 NONAME
 	_ZTV13GlxMediaModel @ 46 NONAME
+	_ZN13GlxMediaModel21fullScreenDataChangedERK11QModelIndexS2_ @ 47 NONAME
 
--- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Wed Oct 06 14:49:39 2010 +0530
@@ -131,6 +131,13 @@
      * updateDetailsView() - emit the signal to update the details view
      */
     void updateDetailsView();
+    
+    /**
+     * fullScreenDataChanged() - emit the signal when fullscreen thumbnail is updated.
+     * @param - start index of updated data
+     * @param - end index of updated data
+     */    
+    void fullScreenDataChanged( const QModelIndex &topLeft, const QModelIndex &bottomRight );
 
 private:
     /**
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -402,20 +402,21 @@
     }    
 }
 
-void GlxMediaModel::itemUpdated( int mlIndex, GlxTBContextType tbContextType )
+void GlxMediaModel::itemUpdated( int itemIndex, GlxTBContextType tbContextType )
 {
-    qDebug( "GlxMediaModel::itemUpdated %d", mlIndex );
+    qDebug( "GlxMediaModel::itemUpdated %d", itemIndex );
     //clear the grid and FS cache if they have any icons with them for that index
     if ( tbContextType == GlxTBContextGrid ) {
         if ( !thumbnailPopulatedFlag ) {
-            thumbnailPopulatedCheck( mlIndex );
+            thumbnailPopulatedCheck( itemIndex );
         }
-        itemIconCache.remove( mlIndex );
+        itemIconCache.remove( itemIndex );
+        emit dataChanged( index( itemIndex, 0 ), index( itemIndex, 0 ) );
     }
     if ( tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs ) {
-        itemFsIconCache.remove( mlIndex );
+        itemFsIconCache.remove( itemIndex );
+        emit fullScreenDataChanged( index( itemIndex, 0 ), index( itemIndex, 0 ) );
     }
-    emit dataChanged( index( mlIndex, 0 ), index( mlIndex, 0 ) );
 }
 
 void GlxMediaModel::itemCorrupted( int itemIndex )
@@ -425,6 +426,7 @@
         thumbnailPopulatedCheck( itemIndex );
     }
     emit dataChanged( index( itemIndex, 0 ), index( itemIndex, 0 ) );
+    emit fullScreenDataChanged( index( itemIndex, 0 ), index( itemIndex, 0 ) );
 }
 
 void GlxMediaModel::modelpopulated()
--- a/ui/viewmanagement/bwins/glxstatehandleru.def	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/bwins/glxstatehandleru.def	Wed Oct 06 14:49:39 2010 +0530
@@ -26,21 +26,22 @@
 	?cleanupExternal@GlxStateManager@@QAEXXZ @ 25 NONAME ; void GlxStateManager::cleanupExternal(void)
 	?gridItemSelected@GlxStateManager@@IAEXABVQModelIndex@@AAVQAbstractItemModel@@@Z @ 26 NONAME ; void GlxStateManager::gridItemSelected(class QModelIndex const &, class QAbstractItemModel &)
 	?setFullScreenContext@GlxStateManager@@AAEXXZ @ 27 NONAME ; void GlxStateManager::setFullScreenContext(void)
-	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 28 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *)
-	?cleanAllModel@GlxStateManager@@QAEXXZ @ 29 NONAME ; void GlxStateManager::cleanAllModel(void)
-	?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 30 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int)
-	?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 31 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject
-	?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 32 NONAME ; void * GlxStateManager::qt_metacast(char const *)
-	?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 33 NONAME ; class QString GlxStateManager::tr(char const *, char const *)
-	?nextState@GlxStateManager@@QAEXHH@Z @ 34 NONAME ; void GlxStateManager::nextState(int, int)
-	?launchFromExternal@GlxStateManager@@QAEXXZ @ 35 NONAME ; void GlxStateManager::launchFromExternal(void)
-	?externalCommand@GlxStateManager@@IAEXH@Z @ 36 NONAME ; void GlxStateManager::externalCommand(int)
-	?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 37 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir)
-	?launchApplication@GlxStateManager@@QAEXXZ @ 38 NONAME ; void GlxStateManager::launchApplication(void)
-	?exitMarkingMode@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::exitMarkingMode(void)
-	?launchFetcher@GlxStateManager@@QAEXH@Z @ 40 NONAME ; void GlxStateManager::launchFetcher(int)
-	?removeCurrentModel@GlxStateManager@@QAEXXZ @ 41 NONAME ; void GlxStateManager::removeCurrentModel(void)
-	?launchProgressDialog@GlxStateManager@@AAEXXZ @ 42 NONAME ; void GlxStateManager::launchProgressDialog(void)
-	?launchActivity@GlxStateManager@@AAE_NXZ @ 43 NONAME ; bool GlxStateManager::launchActivity(void)
-	?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 44 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir)
+	?validateActivityData@GlxStateManager@@AAE_NXZ @ 28 NONAME ; bool GlxStateManager::validateActivityData(void)
+	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *)
+	?cleanAllModel@GlxStateManager@@QAEXXZ @ 30 NONAME ; void GlxStateManager::cleanAllModel(void)
+	?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int)
+	?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject
+	?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 33 NONAME ; void * GlxStateManager::qt_metacast(char const *)
+	?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 34 NONAME ; class QString GlxStateManager::tr(char const *, char const *)
+	?nextState@GlxStateManager@@QAEXHH@Z @ 35 NONAME ; void GlxStateManager::nextState(int, int)
+	?launchFromExternal@GlxStateManager@@QAEXXZ @ 36 NONAME ; void GlxStateManager::launchFromExternal(void)
+	?externalCommand@GlxStateManager@@IAEXH@Z @ 37 NONAME ; void GlxStateManager::externalCommand(int)
+	?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 38 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir)
+	?launchApplication@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::launchApplication(void)
+	?exitMarkingMode@GlxStateManager@@QAEXXZ @ 40 NONAME ; void GlxStateManager::exitMarkingMode(void)
+	?launchFetcher@GlxStateManager@@QAEXH@Z @ 41 NONAME ; void GlxStateManager::launchFetcher(int)
+	?removeCurrentModel@GlxStateManager@@QAEXXZ @ 42 NONAME ; void GlxStateManager::removeCurrentModel(void)
+	?launchProgressDialog@GlxStateManager@@AAEXXZ @ 43 NONAME ; void GlxStateManager::launchProgressDialog(void)
+	?launchActivity@GlxStateManager@@AAE_NXZ @ 44 NONAME ; bool GlxStateManager::launchActivity(void)
+	?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 45 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir)
 
--- a/ui/viewmanagement/bwins/glxviewmanageru.def	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/bwins/glxviewmanageru.def	Wed Oct 06 14:49:39 2010 +0530
@@ -9,44 +9,45 @@
 	??_EGlxViewManager@@UAE@I@Z @ 8 NONAME ; GlxViewManager::~GlxViewManager(unsigned int)
 	?addBackSoftKeyAction@GlxViewManager@@QAEXXZ @ 9 NONAME ; void GlxViewManager::addBackSoftKeyAction(void)
 	?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 10 NONAME ; class GlxView * GlxViewManager::findView(int)
-	?createActions@GlxViewManager@@AAEXXZ @ 11 NONAME ; void GlxViewManager::createActions(void)
-	?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 12 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
-	?handleAction@GlxViewManager@@QAEXXZ @ 13 NONAME ; void GlxViewManager::handleAction(void)
-	?handleUserAction@GlxViewManager@@QAEXHH@Z @ 14 NONAME ; void GlxViewManager::handleUserAction(int, int)
-	?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
-	?actionTriggered@GlxViewManager@@IAEXH@Z @ 16 NONAME ; void GlxViewManager::actionTriggered(int)
-	?getSubState@GlxViewManager@@AAEHXZ @ 17 NONAME ; int GlxViewManager::getSubState(void)
-	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 18 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
-	?handleMenuAction@GlxViewManager@@QAEXH@Z @ 19 NONAME ; void GlxViewManager::handleMenuAction(int)
-	?externalCommand@GlxViewManager@@IAEXH@Z @ 20 NONAME ; void GlxViewManager::externalCommand(int)
-	??0GlxViewManager@@QAE@XZ @ 21 NONAME ; GlxViewManager::GlxViewManager(void)
-	?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 22 NONAME ; void GlxViewManager::exitMarkingMode(int)
-	?cancelTimer@GlxViewManager@@QAEXXZ @ 23 NONAME ; void GlxViewManager::cancelTimer(void)
-	?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 24 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *)
-	?createToolBar@GlxViewManager@@AAEXXZ @ 25 NONAME ; void GlxViewManager::createToolBar(void)
-	?removeConnection@GlxViewManager@@AAEXXZ @ 26 NONAME ; void GlxViewManager::removeConnection(void)
-	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 27 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
-	?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 28 NONAME ; void GlxViewManager::createMarkingModeActions(void)
-	?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?deActivateView@GlxViewManager@@AAEXXZ @ 30 NONAME ; void GlxViewManager::deActivateView(void)
-	?destroyView@GlxViewManager@@QAEXH@Z @ 31 NONAME ; void GlxViewManager::destroyView(int)
-	?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 32 NONAME ; class GlxView * GlxViewManager::resolveView(int)
-	??1GlxViewManager@@UAE@XZ @ 33 NONAME ; GlxViewManager::~GlxViewManager(void)
-	?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 34 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
-	?addConnection@GlxViewManager@@AAEXXZ @ 35 NONAME ; void GlxViewManager::addConnection(void)
-	?hideProgressDialog@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::hideProgressDialog(void)
-	?handleReadyView@GlxViewManager@@QAEXXZ @ 37 NONAME ; void GlxViewManager::handleReadyView(void)
-	?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 38 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
-	?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 39 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
-	?checkMarked@GlxViewManager@@AAEXXZ @ 40 NONAME ; void GlxViewManager::checkMarked(void)
-	?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 41 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
-	?setupItems@GlxViewManager@@QAEXXZ @ 42 NONAME ; void GlxViewManager::setupItems(void)
-	?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 43 NONAME ; void GlxViewManager::enterMarkingMode(int)
-	?actionProcess@GlxViewManager@@QAEXH@Z @ 44 NONAME ; void GlxViewManager::actionProcess(int)
-	?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 45 NONAME ; void GlxViewManager::deactivateCurrentView(void)
-	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
-	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 47 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
-	?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 48 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
-	?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 49 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
-	?activateView@GlxViewManager@@AAEXXZ @ 50 NONAME ; void GlxViewManager::activateView(void)
+	?enterMarkingMode@GlxViewManager@@QAEXHH@Z @ 11 NONAME ; void GlxViewManager::enterMarkingMode(int, int)
+	?setMarkingToolBarAction@GlxViewManager@@AAEXH@Z @ 12 NONAME ; void GlxViewManager::setMarkingToolBarAction(int)
+	?createActions@GlxViewManager@@AAEXXZ @ 13 NONAME ; void GlxViewManager::createActions(void)
+	?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
+	?handleAction@GlxViewManager@@QAEXXZ @ 15 NONAME ; void GlxViewManager::handleAction(void)
+	?handleUserAction@GlxViewManager@@QAEXHH@Z @ 16 NONAME ; void GlxViewManager::handleUserAction(int, int)
+	?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
+	?actionTriggered@GlxViewManager@@IAEXH@Z @ 18 NONAME ; void GlxViewManager::actionTriggered(int)
+	?getSubState@GlxViewManager@@AAEHXZ @ 19 NONAME ; int GlxViewManager::getSubState(void)
+	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 20 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
+	?handleMenuAction@GlxViewManager@@QAEXH@Z @ 21 NONAME ; void GlxViewManager::handleMenuAction(int)
+	?externalCommand@GlxViewManager@@IAEXH@Z @ 22 NONAME ; void GlxViewManager::externalCommand(int)
+	??0GlxViewManager@@QAE@XZ @ 23 NONAME ; GlxViewManager::GlxViewManager(void)
+	?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 24 NONAME ; void GlxViewManager::exitMarkingMode(int)
+	?cancelTimer@GlxViewManager@@QAEXXZ @ 25 NONAME ; void GlxViewManager::cancelTimer(void)
+	?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 26 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *)
+	?createToolBar@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::createToolBar(void)
+	?removeConnection@GlxViewManager@@AAEXXZ @ 28 NONAME ; void GlxViewManager::removeConnection(void)
+	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 29 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
+	?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 30 NONAME ; void GlxViewManager::createMarkingModeActions(void)
+	?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 31 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?deActivateView@GlxViewManager@@AAEXXZ @ 32 NONAME ; void GlxViewManager::deActivateView(void)
+	?destroyView@GlxViewManager@@QAEXH@Z @ 33 NONAME ; void GlxViewManager::destroyView(int)
+	?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 34 NONAME ; class GlxView * GlxViewManager::resolveView(int)
+	??1GlxViewManager@@UAE@XZ @ 35 NONAME ; GlxViewManager::~GlxViewManager(void)
+	?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 36 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
+	?addConnection@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::addConnection(void)
+	?hideProgressDialog@GlxViewManager@@AAEXXZ @ 38 NONAME ; void GlxViewManager::hideProgressDialog(void)
+	?handleReadyView@GlxViewManager@@QAEXXZ @ 39 NONAME ; void GlxViewManager::handleReadyView(void)
+	?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 40 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
+	?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 41 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
+	?checkMarked@GlxViewManager@@AAEXXZ @ 42 NONAME ; void GlxViewManager::checkMarked(void)
+	?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 43 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
+	?setupItems@GlxViewManager@@QAEXXZ @ 44 NONAME ; void GlxViewManager::setupItems(void)
+	?actionProcess@GlxViewManager@@QAEXH@Z @ 45 NONAME ; void GlxViewManager::actionProcess(int)
+	?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 46 NONAME ; void GlxViewManager::deactivateCurrentView(void)
+	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
+	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 48 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
+	?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 49 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
+	?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 50 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
+	?activateView@GlxViewManager@@AAEXXZ @ 51 NONAME ; void GlxViewManager::activateView(void)
 
--- a/ui/viewmanagement/eabi/glxstatehandleru.def	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/eabi/glxstatehandleru.def	Wed Oct 06 14:49:39 2010 +0530
@@ -30,17 +30,18 @@
 	_ZN15GlxStateManager19getStaticMetaObjectEv @ 29 NONAME
 	_ZN15GlxStateManager20launchProgressDialogEv @ 30 NONAME
 	_ZN15GlxStateManager20setFullScreenContextEv @ 31 NONAME
-	_ZN15GlxStateManager20vanishProgressDialogEv @ 32 NONAME
-	_ZN15GlxStateManager6goBackEii @ 33 NONAME
-	_ZN15GlxStateManager8saveDataEv @ 34 NONAME
-	_ZN15GlxStateManager9nextStateEii @ 35 NONAME
-	_ZN15GlxStateManager9saveImageEv @ 36 NONAME
-	_ZN15GlxStateManagerC1Ev @ 37 NONAME
-	_ZN15GlxStateManagerC2Ev @ 38 NONAME
-	_ZN15GlxStateManagerD0Ev @ 39 NONAME
-	_ZN15GlxStateManagerD1Ev @ 40 NONAME
-	_ZN15GlxStateManagerD2Ev @ 41 NONAME
-	_ZNK15GlxStateManager10metaObjectEv @ 42 NONAME
-	_ZTI15GlxStateManager @ 43 NONAME
-	_ZTV15GlxStateManager @ 44 NONAME
+	_ZN15GlxStateManager20validateActivityDataEv @ 32 NONAME
+	_ZN15GlxStateManager20vanishProgressDialogEv @ 33 NONAME
+	_ZN15GlxStateManager6goBackEii @ 34 NONAME
+	_ZN15GlxStateManager8saveDataEv @ 35 NONAME
+	_ZN15GlxStateManager9nextStateEii @ 36 NONAME
+	_ZN15GlxStateManager9saveImageEv @ 37 NONAME
+	_ZN15GlxStateManagerC1Ev @ 38 NONAME
+	_ZN15GlxStateManagerC2Ev @ 39 NONAME
+	_ZN15GlxStateManagerD0Ev @ 40 NONAME
+	_ZN15GlxStateManagerD1Ev @ 41 NONAME
+	_ZN15GlxStateManagerD2Ev @ 42 NONAME
+	_ZNK15GlxStateManager10metaObjectEv @ 43 NONAME
+	_ZTI15GlxStateManager @ 44 NONAME
+	_ZTV15GlxStateManager @ 45 NONAME
 
--- a/ui/viewmanagement/eabi/glxviewmanageru.def	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/eabi/glxviewmanageru.def	Wed Oct 06 14:49:39 2010 +0530
@@ -21,7 +21,7 @@
 	_ZN14GlxViewManager15exitMarkingModeEi @ 20 NONAME
 	_ZN14GlxViewManager15externalCommandEi @ 21 NONAME
 	_ZN14GlxViewManager15handleReadyViewEv @ 22 NONAME
-	_ZN14GlxViewManager16enterMarkingModeEi @ 23 NONAME
+	_ZN14GlxViewManager16enterMarkingModeEii @ 23 NONAME
 	_ZN14GlxViewManager16handleMenuActionEi @ 24 NONAME
 	_ZN14GlxViewManager16handleUserActionEii @ 25 NONAME
 	_ZN14GlxViewManager16removeConnectionEv @ 26 NONAME
@@ -35,18 +35,19 @@
 	_ZN14GlxViewManager20launchProgressDialogEi @ 34 NONAME
 	_ZN14GlxViewManager20updateProgressDialogEi @ 35 NONAME
 	_ZN14GlxViewManager21deactivateCurrentViewEv @ 36 NONAME
-	_ZN14GlxViewManager24createMarkingModeActionsEv @ 37 NONAME
-	_ZN14GlxViewManager24createMarkingModeToolBarEv @ 38 NONAME
-	_ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 39 NONAME
-	_ZN14GlxViewManager8findViewEi @ 40 NONAME
-	_ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 41 NONAME
-	_ZN14GlxViewManagerC1Ev @ 42 NONAME
-	_ZN14GlxViewManagerC2Ev @ 43 NONAME
-	_ZN14GlxViewManagerD0Ev @ 44 NONAME
-	_ZN14GlxViewManagerD1Ev @ 45 NONAME
-	_ZN14GlxViewManagerD2Ev @ 46 NONAME
-	_ZNK14GlxViewManager10metaObjectEv @ 47 NONAME
-	_ZNK14GlxViewManager11orientationEv @ 48 NONAME
-	_ZTI14GlxViewManager @ 49 NONAME
-	_ZTV14GlxViewManager @ 50 NONAME
+	_ZN14GlxViewManager23setMarkingToolBarActionEi @ 37 NONAME
+	_ZN14GlxViewManager24createMarkingModeActionsEv @ 38 NONAME
+	_ZN14GlxViewManager24createMarkingModeToolBarEv @ 39 NONAME
+	_ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 40 NONAME
+	_ZN14GlxViewManager8findViewEi @ 41 NONAME
+	_ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 42 NONAME
+	_ZN14GlxViewManagerC1Ev @ 43 NONAME
+	_ZN14GlxViewManagerC2Ev @ 44 NONAME
+	_ZN14GlxViewManagerD0Ev @ 45 NONAME
+	_ZN14GlxViewManagerD1Ev @ 46 NONAME
+	_ZN14GlxViewManagerD2Ev @ 47 NONAME
+	_ZNK14GlxViewManager10metaObjectEv @ 48 NONAME
+	_ZNK14GlxViewManager11orientationEv @ 49 NONAME
+	_ZTI14GlxViewManager @ 50 NONAME
+	_ZTV14GlxViewManager @ 51 NONAME
 
--- a/ui/viewmanagement/statehandler/inc/glxbasestate.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxbasestate.h	Wed Oct 06 14:49:39 2010 +0530
@@ -31,54 +31,92 @@
     BACKWARD_DIR,    
 }NavigationDir;
 
-class GlxState : public QObject
+class GlxState: public QObject
 {
-    Q_OBJECT
+Q_OBJECT
 
-public :
- /*
-  * Constructor
-  * id = state id, state is and view id should be same
-  * preState = previous state pointer. It value will be null, if it is only one state in the stack
-  */
-	GlxState(qint32 id, GlxState *preState);
-	virtual ~GlxState();
-/*
- * It compare the states.
- * ToDo: It is not used any where so may be removed later
- */	
-	bool compare (qint32 id) const;
-/*
- * Return the state id of the function
- */ 
-	qint32 id() const { return mId; }
-/*
- * Retrun the pointer of the the previous state
- */ 
-	GlxState * previousState( ) const { return mPreState; }
-/*
- * Pure virtual function. It is default event handler of the state
- */	
-	virtual void eventHandler(qint32 &id)  = 0;
-/*
- * This funtion use for set the internal state of a state
- * default implementation
- */	
-	virtual void setState(int internalState) {Q_UNUSED( internalState )}
-/*
- * This funtion return the internal state of a state
- * default implementation
- */
-	virtual int state( ) const { return 0; }
-/*
- * This function set the view transtion effect parameter.
- * These values is use for run the animation for vies transtion
- * In the case of forward direction it should call with the next state and in the case of back ward direction
- * it should call with the current state
- * effect = View transtion id
- * viewEffect = to play the animation on which views
- */	
-	virtual void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect);
+public:
+    /**
+     * Constructor
+     * id = state id, state is and view id should be same
+     * preState = previous state pointer. It value will be null, if it is only one state in the stack
+     */
+    GlxState( qint32 id, GlxState *preState );
+    
+    /**
+     * Destructor
+     */
+    virtual ~GlxState();
+    
+    /**
+     * compare() - It wiil compare the states, is it same or different state.
+     * @param - Id of the state
+     * @return - return the true if the state is same else false
+     */
+    bool compare( qint32 id ) const;
+    
+    /**
+     * id() - Return the state id of the state
+     * @return - return the state id of the state
+     */
+    qint32 id() const
+    {
+        return mId;
+    }
+    
+    /**
+     * previousState() - Retrun the pointer of the the previous state
+     * @return - Retrun the pointer of the the previous state
+     */
+    GlxState * previousState() const
+    {
+        return mPreState;
+    }
+    
+    /**
+     * eventHandler() - Pure virtual function. It is default event handler of the state
+     * @param - command or event id
+     */
+    virtual void eventHandler( qint32 &id ) = 0;
+    
+    /** 
+     * setState() - This funtion use for set the internal state of a state
+     * default implementation
+     * @param - internal state of the state
+     */
+    virtual void setState( int internalState )
+    {
+        Q_UNUSED( internalState )
+    }
+
+    /**
+     * commandId() - it will return the current runing command id
+     * @reutn - command id
+     */
+    virtual qint32 commandId()
+    {
+        return -1;
+    }
+    
+    /**
+     * state() - This funtion return the internal state of a state
+     * default implementation
+     * @return - internal state
+     */
+    virtual int state() const
+    {
+        return 0;
+    }
+    
+    /**
+     * setTranstionParameter() - This function set the view transtion effect parameter.
+     * These values is use for run the animation for vies transtion
+     * In the case of forward direction it should call with the next state and in the case of back ward direction
+     * it should call with the current state
+     * @param View transtion id
+     * @param to play the animation on which views
+     */
+    virtual void setTranstionParameter( NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect );
 
 private:
     const qint32 mId;
--- a/ui/viewmanagement/statehandler/inc/glxgridstate.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxgridstate.h	Wed Oct 06 14:49:39 2010 +0530
@@ -27,11 +27,46 @@
 class GlxGridState : public GlxState
 {
 public :
-	GlxGridState(GlxStateManager *stateManager, GlxState *preState = NULL);
+    /**
+     * Constructor 
+     * @param pointor of state manager
+     * @param - previous state
+     */
+	GlxGridState( GlxStateManager *stateManager, GlxState *preState = NULL );
+	
+    /**
+     * state() - This funtion return the internal state of a state
+     * @return - internal state
+     */	
 	int state() const { return (int) mState; }
-	void setState(int internalState) { mState = (GridState) internalState; }
-	void eventHandler(qint32 &id);
-	void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect);
+	
+    /** 
+     * setState() - This funtion use for set the internal state of a state
+     * @param - internal state of the state
+     */	
+	void setState( int internalState ) { mState = (GridState) internalState; }
+	
+    /**
+     * eventHandler() - It is event handler of the grid state
+     * @param - command or event id
+     */	
+	void eventHandler( qint32 &id );
+	
+    /**
+     * setTranstionParameter() - This function set the view transtion effect parameter.
+     * These values is use to run the animation during view transition.
+     * In the case of forward direction it should call with the next state and in the case of back ward direction
+     * it should call with the current state
+     * @param View transtion id
+     * @param to play the animation on which views
+     */
+     void setTranstionParameter( NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect );
+
+    /**
+     * commandId() - it will return the current runing command id
+     * @reutn - command id
+     */
+     qint32 commandId( ) { return mCommandId; }
 	
 signals :    
 
@@ -42,16 +77,29 @@
 private slots:
 
 private:
+    /**
+     * defaultEventHandler() - It is a common event handler used for all the internal states.
+     * @param - command or event id
+     */
 	void defaultEventHandler ( qint32 &id );
+
+    /**
+     * allItemEventHandler() - It is a event handler used for All and fetcher internal states.
+     * @param - command or event id
+     */
 	void allItemEventHandler ( qint32 &id );
+
+    /**
+     * albumItemEventHandler() - It is a event handler used for album and fetcher album interanl states.
+     * @param - command or event id
+     */
 	void albumItemEventHandler ( qint32 &id );
 
-private:
-	//grid internal state
-	GridState mState; 	
-	GlxStateManager *mStateManager;
-	bool mIsMarkingMode;
-	qint32 mCommandId;  //commandID, save the command before entering into the marking mode for next user interaction
+private :
+	GridState mState; 	            // grid internal state
+	GlxStateManager *mStateManager; // state manager
+	bool mIsMarkingMode;            // marking mode status
+	qint32 mCommandId;              //commandID, save the command before entering into the marking mode for next user interaction
 };
 
 
--- a/ui/viewmanagement/statehandler/inc/glxstatemanager.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxstatemanager.h	Wed Oct 06 14:49:39 2010 +0530
@@ -34,6 +34,8 @@
 class QAbstractItemModel;
 class GlxActionHandler;
 class GlxTNObserver;
+class AfActivityStorage;
+class AfActivation;
 
 #ifdef BUILD_STATEMANAGER
 #define GLX_STATEMANAGER_EXPORT Q_DECL_EXPORT
@@ -259,6 +261,8 @@
       */
      void saveImage();
      
+     bool validateActivityData();
+     
 private:
     GlxViewManager      *mViewManager;
     /// for all grid
@@ -278,6 +282,8 @@
     bool                isProgressbarRunning;
     QMap<QString, qint32> mSaveActivity;
     GlxFetcherFilterType mFetcherFilterType;
+    AfActivityStorage   *mActivityStorage;
+    AfActivation        *mActivation;
 };
 
 
--- a/ui/viewmanagement/statehandler/src/glxgridstate.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxgridstate.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -66,13 +66,18 @@
        id = EGlxCmdHandled;
        mStateManager->nextState( GLX_FULLSCREENVIEW_ID, FETCHER_S );
        break;
+   case EGlxCmdBrowseFullScreenOpen:   
+       id = EGlxCmdHandled;
+       mStateManager->nextState( GLX_FULLSCREENVIEW_ID, BROWSE_S );
+       break;
+
    case EGlxCmdAddToAlbum :
    case EGlxCmdDelete :
    case EGlxCmdRemoveFrom :
-   case EGlxCmdSend :       
+   case EGlxCmdSend :
+       mCommandId = id;
        mStateManager->enterMarkingMode();
        mIsMarkingMode = TRUE;
-       mCommandId = id;
        id = EGlxCmdHandled;
        break;
        
--- a/ui/viewmanagement/statehandler/src/glxslideshowsettingsstate.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxslideshowsettingsstate.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -21,16 +21,18 @@
 #include <glxcommandhandlers.hrh>
 
 
-GlxSlideShowSettingsState::GlxSlideShowSettingsState(GlxStateManager *stateManager, GlxState *preState ) : GlxState(GLX_SLIDESHOWSETTINGSVIEW_ID, preState)
+GlxSlideShowSettingsState::GlxSlideShowSettingsState(GlxStateManager *stateManager, GlxState *preState ) : GlxState( GLX_SLIDESHOWSETTINGSVIEW_ID, preState )
 {
-     if ( preState)
-         qDebug("GlxSlideShowSettingsState::GlxSlideShowSettingsState() state id = %d", preState->id());
-     mStateManager = stateManager ;
+    mStateManager = stateManager;
 }
 
-void GlxSlideShowSettingsState::eventHandler(qint32 &id)
-{      
-    qDebug("GlxSlideShowSettingsState::eventHandler() action id = %d", id);
-		return;
+void GlxSlideShowSettingsState::eventHandler( qint32 &id )
+{
+    if ( id == EGlxCmdSelectSlideshow ) {
+        if ( previousState()->id() == GLX_SLIDESHOWVIEW_ID ) {
+            mStateManager->previousState() ;
+            id = EGlxCmdHandled;
+        }
+    }
 }
 
--- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -22,8 +22,10 @@
 #include <hbnotificationdialog.h>
 #include <QProcess>
 #include <hbinstance.h>
-#include <HbActivityManager.h>
 #include <hbapplication.h>
+#include <afactivitystorage.h>
+#include <afactivation.h>
+
 
 //user includes
 #include "glxstatemanager.h"
@@ -63,13 +65,17 @@
       mActionHandler( NULL ),
       mTNObserver ( NULL ),
       isProgressbarRunning ( false ),
-      mFetcherFilterType ( EGlxFetcherFilterNone )
+      mFetcherFilterType ( EGlxFetcherFilterNone ),
+      mActivityStorage (NULL),
+      mActivation (NULL)
 {
     qDebug("GlxStateManager::GlxStateManager");
     PERFORMANCE_ADV ( d1, "view manager creation time") {
         mViewManager = new GlxViewManager();
     }
     mTNObserver = new GlxTNObserver();
+    mActivityStorage = new AfActivityStorage();
+    mActivation = new AfActivation();
     
     connect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ), Qt::QueuedConnection );
     connect ( mViewManager, SIGNAL(actionTriggered( qint32 )), this, SLOT(actionTriggered( qint32 )), Qt::QueuedConnection );
@@ -80,7 +86,7 @@
 
 void GlxStateManager::enterMarkingMode()
 {
-    mViewManager->enterMarkingMode(mCurrentState->id());
+    mViewManager->enterMarkingMode( mCurrentState->id(), mCurrentState->commandId() );
 }
 
 void GlxStateManager::exitMarkingMode()
@@ -137,9 +143,10 @@
     qDebug("GlxStateManager::launchApplication");   
     bool activitySuccess = false;  
     //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S)
-    HbApplication* app = qobject_cast<HbApplication*>(qApp);
-    if(app->activateReason() == Hb::ActivationReasonActivity) {
+    
+    if( mActivation->reason() == Af::ActivationReasonActivity ) {
         activitySuccess = launchActivity();
+        qDebug("GlxStateManager::launchApplication as Activity");
     }
     
     if( !activitySuccess ) { 
@@ -158,8 +165,8 @@
         mTNObserver->startTNObserving() ; 
     }
     
-    HbActivityManager* activityManager = app->activityManager();
-    bool ok = activityManager->removeActivity("PhotosMainView");
+    
+    bool ok = mActivityStorage->removeActivity("PhotosMainView");
     if ( !ok )
     {
          qDebug("launchapplication::Remove activity failed" );
@@ -168,19 +175,17 @@
 
 bool GlxStateManager::launchActivity()
 {
-    HbApplication* app = qobject_cast<HbApplication*>(qApp);
-    bool ok = app->activityManager()->waitActivity();
-    if ( !ok )
-    {
-        qDebug("subscribing to activity manager failed" );
-    }
-    QVariant data = app->activityManager()->activityData( "PhotosMainView" );
+    QVariant data = mActivityStorage->activityData("PhotosMainView");
     QByteArray serializedModel = data.toByteArray();
     QDataStream stream(&serializedModel, QIODevice::ReadOnly);
     
     //Fetch the data from the activity Manager
     stream >> mSaveActivity;  
-    qint32 stateId = mSaveActivity.value("ID");
+    
+    if(!validateActivityData())
+        return false;
+    
+	qint32 stateId = mSaveActivity.value("ID");
     mCurrentState = createState(stateId);
     mCurrentState->setState( mSaveActivity.value("InternalState") );
     createModel( stateId);
@@ -193,6 +198,26 @@
     return true;
 }
 
+bool GlxStateManager::validateActivityData()
+{
+    
+    if( (mSaveActivity.value("ID") == GLX_GRIDVIEW_ID) || 
+         ( (mSaveActivity.value("ID") == GLX_LISTVIEW_ID) && (mSaveActivity.value("InternalState") == ALL_ITEM_S) ) ||
+             (mSaveActivity.value("VisibleIndex") >= 0 ) ) {
+        qDebug("GlxStateManager::validation passed");
+        return true;
+    }
+    
+    qDebug("GlxStateManager::Validation failed");
+    qDebug("VIEW : %u", mSaveActivity.value("ID"));
+    qDebug("SUB STATE: %u", mSaveActivity.value("InternalState"));
+    qDebug("Visible Index: %u", mSaveActivity.value("VisibleIndex"));
+    
+    return false;
+     
+}
+
+
 void GlxStateManager::launchFromExternal()
 {
     qDebug("GlxStateManager::launchFromExternal");
@@ -276,7 +301,7 @@
  			mSaveActivity.insert("VisibleIndex",0);
  		}
     
-        HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
+        
         QVariantHash metadata;
         HbMainWindow *window = hbInstance->allMainWindows().first();
         metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect()));
@@ -284,11 +309,11 @@
         QByteArray serializedModel;
         QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append);
         stream << mSaveActivity;
+        bool ok = mActivityStorage->saveActivity("PhotosMainView", serializedModel, metadata);
         
-        bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata);
         if ( !ok )
         {
-            qDebug("SaveData::Add activity failed" );
+            qDebug("SaveData::Save activity failed" );
         }
     }
 }
@@ -794,6 +819,8 @@
     cleanAllModel();
     mSaveActivity.clear();
     delete mActionHandler;
+    delete mActivation;
+    delete mActivityStorage;
     qDebug("GlxStateManager::~GlxStateManager delete Model");
     
     disconnect ( mViewManager, SIGNAL(actionTriggered(qint32 )), this, SLOT(actionTriggered(qint32 )) );
--- a/ui/viewmanagement/statehandler/statehandler.pro	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/statehandler/statehandler.pro	Wed Oct 06 14:49:39 2010 +0530
@@ -53,7 +53,8 @@
         -lglxcommoncommandhandlers.dll \
         -lglxlogging.dll \
         -lglxcommon.dll \
-	-lglximageviewermanager.dll
+	-lglximageviewermanager.dll \
+	-lafservice.dll
 
 
 # Input
--- a/ui/viewmanagement/viewmanager/inc/glxviewmanager.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/viewmanager/inc/glxviewmanager.h	Wed Oct 06 14:49:39 2010 +0530
@@ -79,7 +79,7 @@
      * @param id viewId
      * @param model model to be used for the view
      */
-    void launchApplication(qint32 id, QAbstractItemModel *model);
+    void launchApplication( qint32 id, QAbstractItemModel *model );
 
     /**
      * add back key action
@@ -101,27 +101,27 @@
      *  To update the tool bar enable and disable icon
      *  id = This should be selected toolbar tab id
      */    
-    void updateToolBarIcon(int id);
+    void updateToolBarIcon( int id );
 
     /**
      * Enable the marking mode of the view to select multiple item
      */    
-    void enterMarkingMode(qint32 viewId);
+    void enterMarkingMode( qint32 viewId, qint32 commandId );
 
     /**
      * Enable the normal mode of the view
      */    
-    void exitMarkingMode(qint32 viewId);
+    void exitMarkingMode( qint32 viewId );
 
     /**
      * Pass the user action to the view
      */    
-    void handleUserAction(qint32 viewId, qint32 commandId);
+    void handleUserAction( qint32 viewId, qint32 commandId );
 
     /**
      *  Return the selection model to the user
      */    
-    QItemSelectionModel * getSelectionModel(qint32 viewId);
+    QItemSelectionModel * getSelectionModel( qint32 viewId );
 
     /**
      * To set the model of current view
@@ -132,39 +132,39 @@
     /**
      *  emit the user action
      */
-    void actionTriggered(qint32 id);
-    void externalCommand(int cmdId);
+    void actionTriggered( qint32 id );
+    void externalCommand( int cmdId );
 
 public slots:
     /**
      *  This public slot is used to launch the view
      */
-    void launchView (qint32 id, QAbstractItemModel *model);
+    void launchView ( qint32 id, QAbstractItemModel *model );
 
     /**
      *  It is over load slot and used to run the animation for view transition and launch the view
      */    
-    void launchView (qint32 id, QAbstractItemModel *model, GlxEffect effect, GlxViewEffect viewEffect);
+    void launchView ( qint32 id, QAbstractItemModel *model, GlxEffect effect, GlxViewEffect viewEffect );
     
     void launchProgressDialog( int maxValue );
-    void updateProgressDialog( int currentValue);
+    void updateProgressDialog( int currentValue );
 
     /**
      *  It will removed and deleted the view.
      *  Currently It is not used so may be in future, It will be removed.
      */    
-    void destroyView (qint32 id);
+    void destroyView ( qint32 id );
 
     /**
      *  It will pass the user action to the state manager
      */    
-    void actionProcess(qint32 id);
+    void actionProcess( qint32 id );
 
     /**
      *  It will pass the user selected menu action to state manager 
      *  check for depricated with actionProcess api
      */    
-    void handleMenuAction(qint32 commandId);
+    void handleMenuAction( qint32 commandId );
 
     /**
      *  It will pass the user action ( tool bar + back ) to state manager
@@ -180,7 +180,7 @@
     /**
      *  This will open the item specifc Menu
      */    
-    void itemSpecificMenuTriggered(qint32,QPointF );
+    void itemSpecificMenuTriggered( qint32, QPointF );
     
     void handleReadyView();
 	
@@ -193,12 +193,12 @@
     /**
      * It will create and return the view
      */
-    GlxView * resolveView (qint32 id);
+    GlxView * resolveView ( qint32 id );
 
     /**
      *  It will find a view from the view list and return it
      */    
-    GlxView * findView (qint32 id);
+    GlxView * findView ( qint32 id );
 
     /**
      *  It will deativate the current view
@@ -229,6 +229,11 @@
      *  It will create the marking mode tool bar
      */    
     void createMarkingModeToolBar();
+    
+    /**
+     * setMarkingToolBarAction() - set the toolbar action text
+     */
+    void setMarkingToolBarAction( qint32 commandId );
 
     /**
      *  It will add all the view manager related connection
--- a/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -74,7 +74,7 @@
 void GlxMenuManager::addMenu(qint32 viewId, HbMenu* menu)
 {
     int curState = viewSubState();
-    if( curState == FETCHER_ITEM_S || curState == FETCHER_S || curState == FETCHER_ALBUM_S ||  curState == IMAGEVIEWER_S)
+    if( curState == FETCHER_ITEM_S || curState == BROWSE_S || curState == FETCHER_S || curState == FETCHER_ALBUM_S ||  curState == IMAGEVIEWER_S)
         return;
     
     switch(viewId) {
--- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -313,15 +313,17 @@
     }
 }
 
-void GlxViewManager::enterMarkingMode(qint32 viewId)
+void GlxViewManager::enterMarkingMode( qint32 viewId, qint32 commandId )
 {
     GlxView *view = findView ( viewId );
     qDebug("GlxViewManager::enterMarkingMode view ID %d", viewId);
     
-    if ( mMarkingToolBar == NULL) {
+    if ( !mMarkingToolBar ) {
         createMarkingModeToolBar(); //Marking mode tool bar is different from normal mode tool bar
     }
     
+    setMarkingToolBarAction( commandId );
+    
     if ( view ) { 
         view->enableMarking();
         view->takeToolBar();
@@ -336,7 +338,7 @@
     qDebug("GlxViewManager::enterMarkingMode view ID %d exit", viewId);
 }
 
-void GlxViewManager::exitMarkingMode(qint32 viewId)
+void GlxViewManager::exitMarkingMode( qint32 viewId )
 {
     GlxView *view = findView ( viewId );
     qDebug("GlxViewManager::exitMarkingMode view ID %d", viewId);
@@ -597,6 +599,31 @@
     createMarkingModeActions();
 }
 
+void GlxViewManager::setMarkingToolBarAction( qint32 commandId )
+{
+    switch( commandId ) {
+    case EGlxCmdAddToAlbum :
+        mMarkingActionList.at( 0 )->setText( GLX_BUTTON_ADD );
+        break;
+        
+    case EGlxCmdDelete :
+        mMarkingActionList.at( 0 )->setText( GLX_BUTTON_DELETE );
+        break;
+        
+    case EGlxCmdRemoveFrom :
+        mMarkingActionList.at( 0 )->setText( GLX_BUTTON_REMOVE );
+       break;
+       
+    case EGlxCmdSend :
+        mMarkingActionList.at( 0 )->setText( GLX_BUTTON_SHARE );
+        break;
+        
+    default :
+        mMarkingActionList.at( 0 )->setText( GLX_BUTTON_OK );
+        break;
+    }
+}
+
 void GlxViewManager::addConnection()
 {    
     if ( mMenuManager )
--- a/ui/views/detailsview/inc/glxdetailsviewitemprototype.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/detailsview/inc/glxdetailsviewitemprototype.h	Wed Oct 06 14:49:39 2010 +0530
@@ -111,6 +111,9 @@
     
     //Displays the size of the image 
     HbLabel *mSizeLabel;
+
+	//Displays the name of the image in imageviewer
+    HbLabel *mImgNameLabel;
     };
 
 #endif // GLXDETAILSVIEWITEMPROTOTYPE_H
--- a/ui/views/detailsview/src/glxdetailsview.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/detailsview/src/glxdetailsview.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -158,6 +158,9 @@
 
     //Set context mode to fetch descriptions
     mModel->setData(QModelIndex(), (int) GlxContextComment, GlxContextRole);
+    
+    //Set the Layout Correspondingly.
+    updateLayout(mWindow->orientation());
 
     OstTraceFunctionExit0( GLXDETAILSVIEW_ACTIVATE_EXIT );
 }
@@ -401,6 +404,7 @@
     mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, section, &loaded);
 
     showImage();
+    updateGeometry();
 
     GLX_LOG_INFO1("GlxDetailsView::updateLayout =%d\n",loaded);
 }
--- a/ui/views/detailsview/src/glxdetailsviewitemprototype.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/detailsview/src/glxdetailsviewitemprototype.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -38,7 +38,8 @@
       mDescriptionEditor( NULL ),
       mDateLabel( NULL ),
       mTimeLabel( NULL ),
-      mSizeLabel( NULL )
+      mSizeLabel( NULL ),
+      mImgNameLabel( NULL )
 {
 }
 
@@ -53,7 +54,7 @@
     case widgetNameIndex:
     {
         delete mImageNameEditor;
-        mImageNameEditor = NULL;
+        delete mImgNameLabel;
         break;
     }
 
@@ -109,10 +110,17 @@
 
     case widgetNameIndex:
     {
-        //create the editor
-        mImageNameEditor = new GlxDetailsTextEdit(this);        
-        mImageNameEditor->setMaxRows(1);
-        
+        int substate = modelIndex().data(GlxSubStateRole).toInt();
+        if(substate == IMAGEVIEWER_DETAIL_S)
+            {
+            mImgNameLabel = new HbLabel(this);
+            }
+        else
+            {
+            //create the editor
+            mImageNameEditor = new GlxDetailsTextEdit(this);        
+            mImageNameEditor->setMaxRows(1);
+            }
         //retrieve the name from the model
         QString nameString(GLX_DETAILS_NAME);
         QVariant nameData = modelIndex().data(GlxUriRole).toString();
@@ -121,16 +129,20 @@
                 nameString.append(nameData.toString());
             }
         }
-        mImageNameEditor->setItemText(nameString);
+        if(substate == IMAGEVIEWER_DETAIL_S)
+            {
+            mImgNameLabel->setPlainText(nameString);
+            mImgNameLabel->setMinimumHeight(size().height() + 50);
+            }
+        else
+            {
+            mImageNameEditor->setItemText(nameString);
+            }
 
         //Get the sub state of the details view
-        int substate = modelIndex().data(GlxSubStateRole).toInt();
         if (substate != IMAGEVIEWER_DETAIL_S) {
             connect(mImageNameEditor, SIGNAL(editorTapped()), this, SLOT(forwardSignalsToView()));
         }
-        else {
-            mImageNameEditor->setTextItemReadOnly(TRUE);
-        }
 
         //Connect the Signals
         const QAbstractItemModel *model = (modelIndex().model());
@@ -139,7 +151,14 @@
         //Add the Layout
         QGraphicsLinearLayout *widgetLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);
         widgetLayout->setContentsMargins(CONTENTMARGINS,CONTENTMARGINS,CONTENTMARGINS,CONTENTMARGINS);
-        widgetLayout->addItem(mImageNameEditor);
+        if(substate == IMAGEVIEWER_DETAIL_S)
+            {
+            widgetLayout->addItem(mImgNameLabel);
+            }
+        else
+            {
+            widgetLayout->addItem(mImageNameEditor);
+            }
         setLayout(widgetLayout);
         break;
     }
@@ -278,7 +297,8 @@
     int widgetIndex = modelIndex().row();
     if (widgetIndex == GlxDetailsViewItemProtoType::widgetNameIndex) {
 
-        QString nameString(GLX_DETAILS_NAME);
+		int substate = modelIndex().data(GlxSubStateRole).toInt();
+		QString nameString(GLX_DETAILS_NAME);
         QVariant nameData = modelIndex().data(GlxUriRole).toString();
 
         if (nameData.isValid()) {
@@ -286,7 +306,14 @@
                 nameString.append(nameData.toString());
             }
         }
-        mImageNameEditor->setItemText(nameString);
+        if (substate == IMAGEVIEWER_DETAIL_S)
+            {
+            mImgNameLabel->setPlainText(nameString);
+            }
+        else
+            {
+            mImageNameEditor->setItemText(nameString);
+            }
     }
     else {
         QString descString(GLX_DETAILS_DESCRIPTION);
--- a/ui/views/detailsview/src/glxdetailsviewmodelwrapper.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/detailsview/src/glxdetailsviewmodelwrapper.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -22,6 +22,7 @@
 #include <hbparameterlengthlimiter.h>
 
 //User Includes
+#include "glxviewids.h"
 #include "glxmodelroles.h"  //Contains the declaration of the roles used to retrieve the data from model
 #include "glxlocalisationstrings.h" //contains the localisation strings
 #include "glxdetailsviewmodelwrapper.h" //contains the declaration of this file/class
@@ -54,7 +55,17 @@
 int GlxDetailsViewModelWrapper::rowCount(const QModelIndex &parent) const
 {
     Q_UNUSED(parent);
-    return TOTAL_NO_FIELDS_LIST;
+    int substate = 0;
+
+    if (mModel) {
+        QVariant variant = mModel->data(mModel->index(0, 0), GlxSubStateRole);
+
+        if (variant.isValid() && variant.canConvert<int> ()) {
+            substate = variant.value<int> ();
+        }
+    }
+    //If photos app, then show the Description field, from imageviewer app - hide description field
+    return (substate != IMAGEVIEWER_DETAIL_S)?TOTAL_NO_FIELDS_LIST:(TOTAL_NO_FIELDS_LIST - 1);
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
--- a/ui/views/fullscreenview/inc/glxcoverflow.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/fullscreenview/inc/glxcoverflow.h	Wed Oct 06 14:49:39 2010 +0530
@@ -150,6 +150,13 @@
 	 */
 	void zoomFinished( int index );
 
+    /**
+     * setOrientChangeAnim() - To set the playing status of orientation change animation
+     * to coverflow.
+     *  @param - focus index.
+     */	
+	void setOrientChangeAnim( bool isPlaying ) { mIsOrientChangeAnim = isPlaying ; }
+
 signals :
     /**
      * coverFlowEvent() - To emit signal about coverflow event happen like panning, zomming ( For ui off ),
@@ -375,6 +382,7 @@
     int mTimerId;
     bool mIsInit;
     bool mIsAutoMoving;
+    bool mIsOrientChangeAnim;                 //To check status of orientation change animation.
 };
 
 #endif /* GLXCOVERFLOW_H_ */
--- a/ui/views/fullscreenview/src/glxcoverflow.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/fullscreenview/src/glxcoverflow.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -51,7 +51,8 @@
 	   mZoomOn( false ),
 	   mMultitouchFilter( NULL ),
        mTimerId( 0 ),
-       mIsInit( false )
+       mIsInit( false ),
+       mIsOrientChangeAnim( false )
 {
     qDebug( "GlxCoverFlow::GlxCoverFlow" );
     mIsAutoMoving = FALSE;
@@ -174,7 +175,11 @@
 {
     qDebug("GlxCoverFlow::panGesture deltaX= %d", (int)delta.x());  
    
-    if( !mIsInit || getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S || mIsAutoMoving == TRUE ) {
+    if( !mIsInit 
+            || !mModel 
+            || getSubState() == IMAGEVIEWER_S 
+            || getSubState() == FETCHER_S 
+            || mIsAutoMoving ) {
         return;
     }
     
@@ -186,7 +191,7 @@
         mMoveDir = LEFT_MOVE;
     }
     
-    if ( mUiOn == TRUE  ) {
+    if ( mUiOn ) {
         emit coverFlowEvent( PANNING_START_EVENT );
         mUiOn = FALSE;
     }
@@ -197,6 +202,10 @@
     Q_UNUSED(endIndex);
     qDebug("GlxCoverFlow::dataChanged startIndex = %d mSelIndex = %d ", startIndex.row(), mSelIndex  );
     
+    if ( mIsOrientChangeAnim ) {
+        return;
+    }
+    
     int index = 0;
     for (int i = 0; i < NBR_ICON_ITEM ; i++) {
         index = calculateIndex( mSelIndex + i - 2 );
@@ -481,7 +490,7 @@
 {
     qDebug("GlxCoverFlow::clearCurrentModel ");
     if ( mModel ) {
-        disconnect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( dataChanged( QModelIndex, QModelIndex ) ) );
+        disconnect( mModel, SIGNAL( fullScreenDataChanged( QModelIndex, QModelIndex ) ), this, SLOT( dataChanged( QModelIndex, QModelIndex ) ) );
         disconnect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( rowsInserted( QModelIndex, int, int ) ) );
         disconnect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int) ), this, SLOT( rowsRemoved( QModelIndex, int, int ) ) );
         disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
@@ -493,7 +502,7 @@
 {
     qDebug("GlxCoverFlow::initializeNewModel" );
     if ( mModel ) {
-        connect( mModel, SIGNAL( dataChanged( QModelIndex, QModelIndex ) ), this, SLOT( dataChanged( QModelIndex, QModelIndex ) ) );
+        connect( mModel, SIGNAL( fullScreenDataChanged( QModelIndex, QModelIndex ) ), this, SLOT( dataChanged( QModelIndex, QModelIndex ) ) );
         connect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( rowsInserted( QModelIndex, int, int ) ) );
         connect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int) ), this, SLOT( rowsRemoved( QModelIndex, int, int ) ) );
         connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -218,7 +218,8 @@
     cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view
     //Clean up the rest of the resources allocated
     cleanUp(); 
-        
+	//Hide ImageStrip while launching Details view
+	mImageStrip->hide();
     //Clear the 4 icons present in the Coverflow,so that the transition between the views are smooth
     mCoverFlow->partiallyClean();
     
@@ -316,13 +317,14 @@
         mUiOffTimer->start(KUiOffTime);
     }
     setModelContext();
-    loadViewSection();
-    setLayout();
+    loadViewSection();        
     
     if ( mZoomWidget->zValue() >= mCoverFlow->zValue() ) {
+        mZoomWidget->setWindowSize( screenSize() );
         playZoomOrientChangeAnim();
     }
     else {
+        mCoverFlow->setOrientChangeAnim( true );
         playOrientChangeAnim();
     }
     
@@ -344,7 +346,7 @@
 	if ( getSubState() != FETCHER_S ) {
 	    setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
 	}
-    if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S ) ) {
+    if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S && getSubState() != BROWSE_S) ) {
         HbEffect::start( mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" );
     }
 
@@ -544,13 +546,20 @@
     mIconItems[ 0 ]->resetTransform();   
     mIconItems[ 0 ]->setVisible( false );
     mBackGroundItem->setVisible( false );
+    QSize sz = screenSize();
+    mCoverFlow->setOrientChangeAnim( false );
+    mCoverFlow->setItemSize( sz );
     mCoverFlow->setVisible( true );
     mZoomWidget->setVisible( true );
+    mZoomWidget->setWindowSize( screenSize() );
 }
 
 void GlxFullScreenView::zoomOrientChangeAnimFinished( const HbEffect::EffectStatus status )
 {
-    mZoomWidget->resetTransform();
+    Q_UNUSED( status )
+    mZoomWidget->resetTransform();	
+	QSize sz = screenSize();
+	mCoverFlow->setItemSize( sz );
 }
 
 void GlxFullScreenView::handleToolBarAction()
@@ -647,10 +656,10 @@
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY );
     
-    if ( mUiOff && getSubState() != FETCHER_S ){      
-        if( !mFullScreenToolBar ) {
-            loadFullScreenToolBar();
-        }
+    if ( mUiOff && (!(getSubState() == FETCHER_S || getSubState() == BROWSE_S)) ){  
+			if( !mFullScreenToolBar ) {
+				loadFullScreenToolBar();
+			}
         mUiOff = FALSE;
         
         QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
@@ -672,6 +681,12 @@
         mFullScreenToolBar->setOpacity( 1 );
         mFullScreenToolBar->show();
     }
+	else if( mUiOff && getSubState() == BROWSE_S){
+		mUiOff = FALSE;
+        setItemVisible( Hb::AllItems, TRUE );
+        setViewFlags( viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden );
+		mUiOffTimer->start(KUiOffTime);
+	}
     else {
         hideUi();
     }
--- a/ui/views/gridview/src/glxgridview.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/gridview/src/glxgridview.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -341,10 +341,10 @@
             
             if( isItemVisible( Hb::TitleBarItem ) ) {
                 QString text;
-                if(XQServiceUtil::isService()) {
-                    showAlbumTitle(GLX_SELECT_IMAGE);
-                }
-                else if ( getSubState() == ALL_ITEM_S ) {
+				if(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch")))) {
+					showAlbumTitle(GLX_SELECT_IMAGE);
+				}
+                else if ( getSubState() == ALL_ITEM_S || ( getSubState() == FETCHER_ITEM_S)) {
 					if (mAlbumNameHeading) {
                     	mAlbumNameHeading->hide();
 					}
@@ -354,7 +354,7 @@
                     mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
                     mTotalImagesCount->show();
                 }
-                else if ( getSubState() == ALBUM_ITEM_S ) {
+                else if ( getSubState() == ALBUM_ITEM_S || (getSubState() ==  FETCHER_ALBUM_ITEM_S)) {
                     mTotalImagesCount->hide();
                     QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
                     if (variant.toString() != NULL) {
@@ -707,12 +707,18 @@
     if ( mModel ) {
         mModel->setData( index, index.row(), GlxFocusIndexRole );
     }
-    if(XQServiceUtil::isService()){
-        qDebug("GlxGridView::itemSelected actionTriggered( EGlxCmdFetcherSelect )" );
-        emit actionTriggered( EGlxCmdFetcherSelect );
-        return;
+    if(XQServiceUtil::isService() ){
+		if(0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))){
+	        qDebug("GlxGridView::itemSelected actionTriggered( EGlxCmdFetcherSelect )" );
+	        emit actionTriggered( EGlxCmdFetcherSelect );
+		}
+		else{
+			emit actionTriggered( EGlxCmdBrowseFullScreenOpen);
+		}
     }
-    emit actionTriggered( EGlxCmdFullScreenOpen );
+	else{
+		emit actionTriggered( EGlxCmdFullScreenOpen );
+	}
     OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START );
 }
 
@@ -755,7 +761,6 @@
             return;
         }
         mModel->setData( index, index.row(), GlxVisualWindowIndex );
-        mModel->setData( index, index.row(), GlxFocusIndexRole );
     }
 }
 
--- a/ui/views/listview/inc/glxlistview.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/listview/inc/glxlistview.h	Wed Oct 06 14:49:39 2010 +0530
@@ -26,6 +26,7 @@
 class HbMainWindow;
 class HbAbstractViewItem;
 class HbDocumentLoader;
+class HbGroupBox;
 
 class GlxListView : public GlxView
 {
@@ -44,6 +45,7 @@
 public slots:
     void itemSelected(const QModelIndex &  index);
     void populated();
+    void showAlbumCount();
     
 private slots:
 	void indicateLongPress( HbAbstractViewItem *item, QPointF coords );
@@ -62,6 +64,7 @@
 private:
 	HbListView         *mListView;
 	HbView             *mView;
+	HbGroupBox         *mAlbumCount;
 	HbMainWindow       *mWindow;  //no ownership
 	QAbstractItemModel *mModel ;
 	HbDocumentLoader   *mDocLoader; //Docml loader to load the widgets from docml
--- a/ui/views/listview/src/glxlistview.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/listview/src/glxlistview.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -25,18 +25,22 @@
 #include <hbdocumentloader.h>
 #include <hbabstractviewitem.h>
 #include <hblistviewitem.h>
+#include <hbgroupbox.h>
+#include <hbparameterlengthlimiter.h>
+
 //User Includes
 #include "glxviewids.h"
 #include "glxlistview.h"
 #include "glxmodelparm.h"
 #include "glxdocloaderdefs.h"
 #include "glxcommandhandlers.hrh"
-
+#include "glxlocalisationstrings.h"
 
 GlxListView::GlxListView(HbMainWindow *window) 
     : GlxView ( GLX_LISTVIEW_ID ), 
       mListView(NULL), 
       mView(NULL), 
+      mAlbumCount(NULL),
       mWindow(window), 
       mModel ( NULL),
       mIsLongPress( false )
@@ -64,10 +68,15 @@
     qDebug("GlxListView::setModel()");
     if ( mModel ) {
         disconnect(mModel, SIGNAL(listPopulated()), this, SLOT( populated()));
+        disconnect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( showAlbumCount() ) );
+        disconnect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int ) ), this, SLOT( showAlbumCount() ) );
     }
     mModel =  model ;
     mListView->setModel(mModel);
     connect(mModel, SIGNAL(listPopulated()), this, SLOT( populated()));
+    connect( mModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( showAlbumCount() ) );
+    connect( mModel, SIGNAL( rowsRemoved( QModelIndex, int, int ) ), this, SLOT( showAlbumCount() ) );
+    showAlbumCount();
 }
 
 void GlxListView::addToolBar( HbToolBar *toolBar ) 
@@ -139,6 +148,7 @@
             //retrieve the widgets
             mView = static_cast<HbView*>(mDocLoader->findWidget(QString(GLX_LISTVIEW_VIEW)));
             mListView = static_cast<HbListView*>(mDocLoader->findWidget(QString(GLX_LISTVIEW_LIST)));
+            mAlbumCount = static_cast<HbGroupBox*>(mDocLoader->findWidget(QString(GLX_LISTVIEW_ALBUMCOUNT)));
 
             if( mListView ) { 
                 //sets the widget
@@ -168,6 +178,11 @@
 
     removeViewConnection();
 
+    if(mAlbumCount) {
+        delete mAlbumCount ;
+        mAlbumCount = NULL;
+    }
+
     if(mListView) {
         delete mListView;
         mListView = NULL;
@@ -231,3 +246,9 @@
     emit itemSpecificMenuTriggered(viewId(),coords);
 }
 
+void GlxListView::showAlbumCount()
+{
+    int albumCnt = mModel->rowCount();
+    QString text = HbParameterLengthLimiter(GLX_ALBUM_LIST_COUNT_LABEL, albumCnt);
+    mAlbumCount->setHeading(text);
+}
--- a/ui/views/slideshowsettingsview/inc/glxslideshowsettingsview.h	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/slideshowsettingsview/inc/glxslideshowsettingsview.h	Wed Oct 06 14:49:39 2010 +0530
@@ -17,46 +17,47 @@
 *
 */
 
-
 #ifndef GLXSLIDESHOWSETTINGSVIEW_H
 #define GLXSLIDESHOWSETTINGSVIEW_H
 
 #include "glxview.h"
 
-
 //Qt/Orbit forward declarations
 class HbLabel;
 class HbView;
 class HbMainWindow;
 class HbComboBox;
+class HbPushButton;
 class QAbstractItemModel;
 class GlxSettingInterface;
 
-class GlxSlideShowSettingsView : public GlxView
+class GlxSlideShowSettingsView: public GlxView
 {
-    Q_OBJECT
+Q_OBJECT
 
-public :
-    GlxSlideShowSettingsView(HbMainWindow *window);
+public:
+    GlxSlideShowSettingsView( HbMainWindow *window );
     ~GlxSlideShowSettingsView();
-    void activate() ;		
+    void activate();
     void deActivate();
-    void setModel (QAbstractItemModel *model);
+    void setModel( QAbstractItemModel *model );
 
 private slots:
-    void orientationChanged(Qt::Orientation); 
-	
+    void orientationChanged( Qt::Orientation );
+    void playSlideShow( );
+
 private:
     void setLayout();
-  
+
 private:
-	HbComboBox          *mEffect;    //Drop down box to display transition effect
-	HbComboBox          *mDelay; 	 //Drop down box to display transition delay
-	HbMainWindow        *mWindow;    //no ownership
-	HbLabel *mContextlabel;				 //Display SlideShow label
-	HbLabel *mEffectlabel;				 //Display "Transition Effect: "
-	HbLabel *mDelaylabel;				 //Display "Transition delay: "
-	GlxSettingInterface *mSettings;      //no ownership
+    HbComboBox *mEffect;              //Drop down box to display transition effect
+    HbComboBox *mDelay;               //Drop down box to display transition delay
+    HbMainWindow *mWindow;            //no ownership
+    HbLabel *mContextlabel;           //Display SlideShow label
+    HbLabel *mEffectlabel;            //Display "Transition Effect: "
+    HbLabel *mDelaylabel;             //Display "Transition delay: "
+    HbPushButton *mPlaySlideShow;     //For playing slide show
+    GlxSettingInterface *mSettings;   //no ownership
 };
 
 #endif /* GLXGRIDVIEW_H_ */
--- a/ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -15,12 +15,12 @@
 *
 */
 
-
-
 //Includes
 #include <hbcombobox.h>
 #include <hbmainwindow.h>
 #include <hblabel.h>
+#include <hbicon.h>
+#include <hbpushbutton.h>
 #include <QSize>
 
 //User Includes
@@ -29,20 +29,21 @@
 #include "glxslideshowsettingsview.h"
 #include "glxsettinginterface.h"
 #include "glxlocalisationstrings.h"
-
+#include "glxcommandhandlers.hrh"
 
-GlxSlideShowSettingsView::GlxSlideShowSettingsView(HbMainWindow *window) 
-    : GlxView ( GLX_SLIDESHOWSETTINGSVIEW_ID ), 
-      mEffect(NULL),
-      mDelay(NULL),
-      mWindow(window), 
-      mContextlabel (NULL),
-      mEffectlabel (NULL),
-      mDelaylabel (NULL),
+GlxSlideShowSettingsView::GlxSlideShowSettingsView( HbMainWindow *window ) 
+    : GlxView( GLX_SLIDESHOWSETTINGSVIEW_ID ), 
+      mEffect( NULL ), 
+      mDelay( NULL ), 
+      mWindow( window ),
+      mContextlabel( NULL ), 
+      mEffectlabel( NULL ), 
+      mDelaylabel( NULL ), 
+      mPlaySlideShow( NULL ),
       mSettings( NULL )
 {
-    mSettings = GlxSettingInterface::instance() ;
-  	setContentFullScreen( true );
+    mSettings = GlxSettingInterface::instance();
+    setContentFullScreen( true );
 }
 
 GlxSlideShowSettingsView::~GlxSlideShowSettingsView()
@@ -52,54 +53,66 @@
     delete mDelaylabel;
     delete mEffect;
     delete mDelay;
+    delete mPlaySlideShow;
 }
 
-void GlxSlideShowSettingsView::setModel(QAbstractItemModel *model)
+void GlxSlideShowSettingsView::setModel( QAbstractItemModel *model )
 {
     Q_UNUSED( model )
     return;
 }
 
-void GlxSlideShowSettingsView::orientationChanged(Qt::Orientation)
+void GlxSlideShowSettingsView::orientationChanged( Qt::Orientation )
 {
     setLayout();
 }
 
+void GlxSlideShowSettingsView::playSlideShow()
+{
+    emit actionTriggered( EGlxCmdSelectSlideshow );
+}
+
 void GlxSlideShowSettingsView::activate()
 {
-    connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
+    connect( mWindow, SIGNAL( orientationChanged( Qt::Orientation ) ), this, SLOT( orientationChanged( Qt::Orientation ) ) );
     
     if ( mContextlabel == NULL ) {
         mContextlabel = new HbLabel( GLX_MENU_SLIDESHOW, this );
         mContextlabel->setObjectName( "SlideShow" );
     }
-    
+
     if ( mEffectlabel == NULL ) {
         mEffectlabel = new HbLabel( GLX_LABEL_TRANSITION_EFFECT, this );
         mEffectlabel->setObjectName( "Effect" );
     }
-    
+
     if ( mEffect == NULL ) {
-        mEffect = new HbComboBox(this);
+        mEffect = new HbComboBox( this );
         QStringList effectList = mSettings->slideShowEffectList();
-        mEffect->addItems( effectList ); 
+        mEffect->addItems( effectList );
         mEffect->setObjectName( "Effect List" );
     }
-    
+
     if ( mDelaylabel == NULL ) {
         mDelaylabel = new HbLabel( GLX_LABEL_TRANSITION_DELAY, this );
         mDelaylabel->setObjectName( "Delay" );
     }
-    
+
     if ( mDelay == NULL ) {
-        mDelay = new HbComboBox(this);
+        mDelay = new HbComboBox( this );
         mDelay->setObjectName( "Delay List" );
         QStringList delayList;
-        delayList <<  GLX_VAL_SLOW << GLX_VAL_MEDIUM << GLX_VAL_FAST ;
+        delayList << GLX_VAL_SLOW << GLX_VAL_MEDIUM << GLX_VAL_FAST;
         mDelay->addItems( delayList );
     }
-   
-   // Read the values from the cenrep    
+    
+    if ( mPlaySlideShow == NULL ) {
+        mPlaySlideShow = new HbPushButton( this );
+        mPlaySlideShow->setText( GLX_BUTTON_PLAY ) ; 
+        connect( mPlaySlideShow, SIGNAL( clicked( bool ) ), this, SLOT( playSlideShow() ) );
+    }
+
+    // Read the values from the cenrep    
     mEffect->setCurrentIndex( mSettings->slideShowEffectIndex() );
     mDelay->setCurrentIndex( mSettings->slideShowDelayIndex() );
     setLayout();
@@ -108,19 +121,25 @@
 void GlxSlideShowSettingsView::setLayout()
 {
     QSize sz = screenSize();
-    
-    mContextlabel->setGeometry( 5, 25, sz.width() - 50, 100);
-    mEffectlabel->setGeometry(5, 75, sz.width() - 50, 100 );
-    mEffect->setGeometry(15, 150, sz.width() - 50, 100 );
-    mDelaylabel->setGeometry(5, 180, sz.width() - 50, 100 );
-    mDelay->setGeometry(15, 255, sz.width() - 50, 100 );
+
+    mContextlabel->setGeometry( 5, 25, sz.width() - 50, 100 );
+    mEffectlabel->setGeometry( 5, 60, sz.width() - 50, 100 );
+    mEffect->setGeometry( 15, 130, sz.width() - 50, 100 );
+    mDelaylabel->setGeometry( 5, 160, sz.width() - 50, 100 );
+    mDelay->setGeometry( 15, 230, sz.width() - 50, 100 );
+    if( mWindow->orientation() == Qt::Vertical ) {
+        mPlaySlideShow->setGeometry( 120, 300, 120, 60 );
+    }
+    else {
+        mPlaySlideShow->setGeometry( 260, 300, 120, 60 );
+    }
 }
 
 void GlxSlideShowSettingsView::deActivate()
 {
-	 //Store the current effect and delay before going back to the previous view
-	mSettings->setslideShowEffectIndex( mEffect->currentIndex() );
-	mSettings->setSlideShowDelayIndex( mDelay->currentIndex() ); 
+    //Store the current effect and delay before going back to the previous view
+    mSettings->setslideShowEffectIndex( mEffect->currentIndex() );
+    mSettings->setSlideShowDelayIndex( mDelay->currentIndex() );
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
 }
 
--- a/ui/views/slideshowview/src/glxslideshowwidget.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -424,7 +424,7 @@
 {
     TRACER ( "GlxSlideShowWidget::clearCurrentModel( ) ");
     if ( mModel ) {
-        disconnect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
+        disconnect( mModel, SIGNAL( fullScreenDataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
         disconnect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int)));
         disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
         disconnect(mModel, SIGNAL(destroyed()), this, SLOT( modelDestroyed()));
@@ -436,7 +436,7 @@
 {
     TRACER("GlxSlideShowWidget::initializeNewModel" );
     if ( mModel ) {
-        connect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
+        connect( mModel, SIGNAL( fullScreenDataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
         connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(rowsInserted(QModelIndex,int,int)));
         connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
         connect(mModel, SIGNAL(destroyed()), this, SLOT( modelDestroyed()));
--- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Mon Sep 27 15:13:20 2010 +0530
+++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Wed Oct 06 14:49:39 2010 +0530
@@ -95,7 +95,7 @@
     {
         mModel = model;
         retreiveFocusedImage(); //Update mZoomItem with focused Image
-        connect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
+        connect( mModel, SIGNAL( fullScreenDataChanged( QModelIndex, QModelIndex ) ), this, SLOT( dataChanged( QModelIndex, QModelIndex ) ) );
         connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
     }
 }
@@ -139,7 +139,7 @@
 {
     disconnect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ) );
     if(mModel) {
-        disconnect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
+        disconnect( mModel, SIGNAL( fullScreenDataChanged( QModelIndex, QModelIndex ) ), this, SLOT( dataChanged( QModelIndex, QModelIndex ) ) );
         disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
         mModel = NULL;
     }