Revision: 201017
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Fri, 14 May 2010 15:52:22 +0300
changeset 29 2c833fc9e98f
parent 26 c499df2dbb33
child 31 e7ef9a1d6228
child 33 1ee2af37811f
Revision: 201017 Kit: 201019
commonutilities/common/cenrep/20007194.txt
commonutilities/common/group/bld.inf
conf/slideshowsettings.confml
conf/slideshowsettings_20007194.crml
data/fullscreen.docml
data/grid.docml
data/listview.docml
data/slideshow.docml
engine/collectionframework/plugins/glxcollectionpluginalbums/inc/glxcollectionpluginalbums.hrh
gallery/sis/glxgallery.pkg
gallery/sis/photosqt_stub.pkg
main/glxaiwservicehandler.cpp
main/glxaiwservicehandler.h
main/service_conf.xml
rom/photos.iby
tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.cpp
tvout/tvoutengine/inc/glxhdmicontroller.h
tvout/tvoutengine/inc/glxtvconnectionmonitor.h
tvout/tvoutengine/src/glxhdmicontroller.cpp
tvout/tvoutengine/src/glxtvconnectionmonitor.cpp
tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h
tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp
ui/commandhandlers/bwins/glxcommandhandlerbaseu.def
ui/commandhandlers/bwins/glxcommoncommandhandlersu.def
ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro
ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h
ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h
ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h
ui/commandhandlers/commoncommandhandlers/inc/glxcommondialogs.h
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp
ui/commandhandlers/eabi/glxcommandhandlerbaseu.def
ui/commandhandlers/eabi/glxcommoncommandhandlersu.def
ui/inc/glxcommandhandlers.hrh
ui/inc/glxdocloaderdefs.h
ui/inc/glxicondefs.h
ui/inc/glxmodelparm.h
ui/inc/glxuistd.h
ui/uiengine/bwins/glxmedialistwrapperu.def
ui/uiengine/eabi/glxmedialistwrapperu.def
ui/uiengine/medialists/bwins/glxmedialistsu.def
ui/uiengine/medialists/eabi/glxmedialistsu.def
ui/uiengine/medialists/group/glxmedialists.mmp
ui/uiengine/medialists/inc/glxmedialist.h
ui/uiengine/medialists/inc/glxmedialistiterator.h
ui/uiengine/medialists/inc/glxthumbnailcontext.h
ui/uiengine/medialists/inc/mglxmedialist.h
ui/uiengine/medialists/src/glxcachemanager.cpp
ui/uiengine/medialists/src/glxlistutils.cpp
ui/uiengine/medialists/src/glxmedialist.cpp
ui/uiengine/medialists/src/glxmedialistiterator.cpp
ui/uiengine/medialists/src/glxthumbnailcontext.cpp
ui/uiengine/medialistwrapper/inc/glxmlwrapper.h
ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h
ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp
ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp
ui/uiengine/model/bwins/glxfavmediamodelu.def
ui/uiengine/model/bwins/glxmodelwrapperu.def
ui/uiengine/model/eabi/glxfavmediamodelu.def
ui/uiengine/model/eabi/glxmodelwrapperu.def
ui/uiengine/model/favmediamodel/favmediamodel.pro
ui/uiengine/model/favmediamodel/inc/glxfavmediamodel.h
ui/uiengine/model/favmediamodel/src/glxfavmediamodel.cpp
ui/uiengine/model/listmodel/inc/glxalbummodel.h
ui/uiengine/model/listmodel/src/glxalbummodel.cpp
ui/uiengine/model/mediamodel/inc/glxmediamodel.h
ui/uiengine/model/mediamodel/src/glxmediamodel.cpp
ui/uiengine/model/model.pro
ui/uiengine/model/modelwrapper/inc/glxmodelwrapper.h
ui/uiengine/model/modelwrapper/modelwrapper.pro
ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp
ui/viewmanagement/statehandler/src/glxactionhandler.cpp
ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp
ui/viewmanagement/statehandler/src/glxstatemanager.cpp
ui/viewmanagement/viewmanager/src/glxmenumanager.cpp
ui/views/detailsview/inc/glxdetailscustomicon.h
ui/views/detailsview/inc/glxdetailsview.h
ui/views/detailsview/src/glxdetailscustomicon.cpp
ui/views/detailsview/src/glxdetailscustomwidgets.cpp
ui/views/detailsview/src/glxdetailsview.cpp
ui/views/effectengine/inc/glxeffectengine.h
ui/views/effectengine/src/glxeffectengine.cpp
ui/views/fullscreenview/inc/glxcoverflow.h
ui/views/fullscreenview/inc/glxfullscreenview.h
ui/views/fullscreenview/src/glxcoverflow.cpp
ui/views/fullscreenview/src/glxfullscreenview.cpp
ui/views/gridview/inc/glxgridview.h
ui/views/gridview/src/glxgridview.cpp
ui/views/slideshowsettingsview/inc/glxslideshowsettingsview.h
ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp
ui/views/slideshowview/inc/glxslideshowview.h
ui/views/slideshowview/inc/glxslideshowwidget.h
ui/views/slideshowview/src/glxslideshowview.cpp
ui/views/slideshowview/src/glxslideshowwidget.cpp
ui/views/views.pro
Binary file commonutilities/common/cenrep/20007194.txt has changed
--- a/commonutilities/common/group/bld.inf	Mon May 03 12:31:32 2010 +0300
+++ b/commonutilities/common/group/bld.inf	Fri May 14 15:52:22 2010 +0300
@@ -45,12 +45,19 @@
 	../cenrep/200009EE_orientation_portrait_landscape.txt   /epoc32/data/z/private/10202be9/200009EE.txt
 	// for emulator
 	../cenrep/200009EE_orientation_portrait_landscape.txt   /epoc32/release/winscw/udeb/z/private/10202be9/200009EE.txt
+	//slideshow settings cenrep initialisation file
+	../cenrep/20007194.txt   /epoc32/data/z/private/10202be9/20007194.txt
+	../cenrep/20007194.txt   /epoc32/release/winscw/udeb/z/private/10202be9/20007194.txt
+	../cenrep/20007194.txt   /epoc32/release/winscw/urel/z/private/10202be9/20007194.txt	
+	
 #endif
 
 // Generic configuration interface for component cenrep settings  
 ../../../conf/gallery.confml                        CONFML_EXPORT_PATH(gallery.confml,customsw)
 ../../../conf/gallery_200009EE.crml	        CRML_EXPORT_PATH(gallery_200009EE.crml,customsw)
 
+../../../conf/slideshowsettings.confml                        CONFML_EXPORT_PATH(slideshowsettings.confml,customsw)
+../../../conf/slideshowsettings_20007194.crml	        CRML_EXPORT_PATH(slideshowsettings_20007194.crml,customsw)
 PRJ_MMPFILES
 glxcommon.mmp
 
Binary file conf/slideshowsettings.confml has changed
Binary file conf/slideshowsettings_20007194.crml has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/fullscreen.docml	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="1.0">
+    <widget name="mGlxFullscreenView" type="HbView">
+        <widget name="mcontent" role="HbView:widget" type="HbWidget">
+            <widget name="mCoverFlow" type="HbWidget">
+                <enums name="alignment" value="AlignLeft|AlignTop|AlignLeading"/>
+                <enums name="scrollDirections" value="Horizontal"/>
+                <real name="z" value="5"/>
+                <bool name="frictionEnabled" value="TRUE"/>
+            </widget>
+            <widget name="mImageStrip" type="HbGridView">
+                <bool name="itemRecycling" value="TRUE"/>
+                <bool name="textVisible" value="FALSE"/>
+                <bool name="uniformItemSizes" value="TRUE"/>
+                <enums name="scrollDirections" value="Horizontal"/>
+                <real name="z" value="7"/>
+                <integer name="columnCount" value="1"/>
+                <sizehint height="44.77612un" type="PREFERRED" width="44.77612un"/>
+                <bool name="frictionEnabled" value="TRUE"/>
+                <integer name="rowCount" value="1"/>
+            </widget>
+            <widget name="toolBar" type="HbToolBar">
+                <enums name="layoutDirection" value="LeftToRight"/>
+                <real name="z" value="7"/>
+                <sizehint height="60.44776un" type="PREFERRED" width="9.40299un"/>
+                <enums name="orientation" value="Vertical"/>
+            </widget>
+            <string name="toolTipText" value=""/>
+            <bool name="visible" value="TRUE"/>
+            <layout type="anchor">
+                <anchoritem dst="mCoverFlow" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="mCoverFlow" dstEdge="TOP" spacing="var(hb-param-margin-view-top)" src="" srcEdge="TOP"/>
+                <anchoritem dst="mCoverFlow" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="mCoverFlow" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="mImageStrip" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="85.51999un" src="" srcEdge="TOP"/>
+                <anchoritem dst="mImageStrip" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="mImageStrip" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="toolBar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="toolBar" dstEdge="TOP" spacing="17.46269un" src="" srcEdge="TOP"/>
+            </layout>
+        </widget>
+        <string name="title" value="Photos"/>
+        <bool name="contentFullScreen" value="TRUE"/>
+    </widget>
+    <section name="portrait">
+        <widget name="mImageStrip" type="HbGridView">
+            <integer name="columnCount" value="4"/>
+            <integer name="rowCount" value="1"/>
+        </widget>
+        <widget name="mcontent" role="HbView:widget" type="HbWidget">
+            <layout type="anchor">
+                <anchoritem dst="mCoverFlow" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="mCoverFlow" dstEdge="TOP" spacing="var(hb-param-margin-view-top)" src="" srcEdge="TOP"/>
+                <anchoritem dst="mCoverFlow" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="mCoverFlow" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="mImageStrip" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="83.59454un" src="" srcEdge="TOP"/>
+                <anchoritem dst="mImageStrip" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="mImageStrip" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="toolBar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="toolBar" dstEdge="TOP" spacing="18.13433un" src="" srcEdge="TOP"/>
+            </layout>
+        </widget>
+        <widget name="toolBar" type="HbToolBar">
+            <sizehint height="58.50746un" type="PREFERRED" width="9.40299un"/>
+        </widget>
+    </section>
+    <section name="landscape">
+        <widget name="mGlxFullscreenView" type="HbView">
+            <real name="z" value="0"/>
+            <string name="HbVkbHost" value=""/>
+        </widget>
+        <widget name="mImageStrip" type="HbGridView">
+            <integer name="columnCount" value="6"/>
+            <integer name="rowCount" value="1"/>
+        </widget>
+        <widget name="mcontent" role="HbView:widget" type="HbWidget">
+            <layout type="anchor">
+                <anchoritem dst="mCoverFlow" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="mCoverFlow" dstEdge="TOP" spacing="var(hb-param-margin-view-top)" src="" srcEdge="TOP"/>
+                <anchoritem dst="mCoverFlow" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="mCoverFlow" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="mImageStrip" dstEdge="LEFT" spacing="9.55223un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="41.2897un" src="" srcEdge="TOP"/>
+                <anchoritem dst="mImageStrip" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="mImageStrip" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="toolBar" dstEdge="TOP" spacing="9.7015un" src="" srcEdge="TOP"/>
+                <anchoritem dst="toolBar" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="toolBar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="toolBar" dstEdge="RIGHT" spacing="0un" src="mImageStrip" srcEdge="LEFT"/>
+            </layout>
+        </widget>
+        <widget name="toolBar" type="HbToolBar">
+            <sizehint height="46.71642un" type="PREFERRED" width="9.4427un"/>
+        </widget>
+    </section>
+    <metadata activeUIState="portrait" display="NHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+        <uistate name="portrait" sections="#common portrait"/>
+        <uistate name="landscape" sections="#common landscape"/>
+        <dummydata objectName="mImageStrip" section="#common" value="app_grid_template2"/>
+    </metadata>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/grid.docml	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.9">
+    <widget name="glxgridview" type="HbView">
+        <widget name="content" role="HbView:widget" type="HbWidget">
+            <widget name="hbgridview" type="HbGridView">
+                <real name="z" value="1"/>
+                <sizehint height="88.65672un" type="PREFERRED" width="53.28358un"/>
+            </widget>
+            <layout type="anchor">
+                <anchoritem dst="hbgridview" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="hbgridview" dstEdge="TOP" spacing="9un" src="" srcEdge="TOP"/>
+                <anchoritem dst="hbgridview" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="hbgridview" dstEdge="BOTTOM" spacing="-9un" src="" srcEdge="BOTTOM"/>
+            </layout>
+        </widget>
+        <string name="title" value="Photos"/>
+        <bool name="contentFullScreen" value="TRUE"/>
+    </widget>
+    <section name="portrait">
+        <widget name="glxgridview" type="HbView">
+            <real name="z" value="0"/>
+            <string name="HbVkbHost" value=""/>
+        </widget>
+        <widget name="hbgridview" type="HbGridView">
+            <bool name="itemRecycling" value="TRUE"/>
+            <bool name="textVisible" value="FALSE"/>
+            <enums name="verticalScrollBarPolicy" value="ScrollBarAutoHide"/>
+            <enums name="scrollDirections" value="Vertical"/>
+            <bool name="uniformItemSizes" value="TRUE"/>
+            <enums name="horizontalScrollBarPolicy" value="ScrollBarAutoHide"/>
+            <real name="z" value="5"/>
+            <sizehint height="77.52239un" type="PREFERRED" width="53.28358un"/>
+            <integer name="columnCount" value="3"/>
+            <bool name="frictionEnabled" value="TRUE"/>
+            <integer name="rowCount" value="5"/>
+        </widget>
+        <widget name="content" role="HbView:widget" type="HbWidget">
+            <layout type="anchor">
+                <anchoritem dst="hbgridview" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="hbgridview" dstEdge="TOP" spacing="9un" src="" srcEdge="TOP"/>
+                <anchoritem dst="hbgridview" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="hbgridview" dstEdge="BOTTOM" spacing="-9un" src="" srcEdge="BOTTOM"/>
+            </layout>
+        </widget>
+    </section>
+    <section name="landscape">
+        <widget name="hbgridview" type="HbGridView">
+            <bool name="itemRecycling" value="TRUE"/>
+            <bool name="textVisible" value="FALSE"/>
+            <enums name="verticalScrollBarPolicy" value="ScrollBarAutoHide"/>
+            <bool name="uniformItemSizes" value="TRUE"/>
+            <enums name="horizontalScrollBarPolicy" value="ScrollBarAutoHide"/>
+            <enums name="scrollDirections" value="Horizontal"/>
+            <integer name="columnCount" value="5"/>
+            <sizehint height="33.1343un" type="PREFERRED" width="95.52239un"/>
+            <bool name="frictionEnabled" value="TRUE"/>
+            <integer name="rowCount" value="2"/>
+        </widget>
+        <widget name="content" role="HbView:widget" type="HbWidget">
+            <layout type="anchor">
+                <anchoritem dst="hbgridview" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="hbgridview" dstEdge="TOP" spacing="10.4478un" src="" srcEdge="TOP"/>
+                <anchoritem dst="hbgridview" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="hbgridview" dstEdge="BOTTOM" spacing="-9.7015un" src="" srcEdge="BOTTOM"/>
+            </layout>
+        </widget>
+    </section>
+    <metadata activeUIState="portrait" display="NHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+        <uistate name="landscape" sections="#common landscape"/>
+        <uistate name="portrait" sections="#common portrait"/>
+    </metadata>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/listview.docml	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.9">
+    <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">
+                    <enums name="graphicsSize" value="Thumbnail"/>
+                    <string name="state" value="normal"/>
+                </widget>
+                <bool name="itemRecycling" value="FALSE"/>
+                <bool name="uniformItemSizes" value="TRUE"/>
+                <bool name="arrangeMode" value="FALSE"/>
+                <real name="z" value="1"/>
+                <sizehint height="47.7612un" type="PREFERRED" width="35.8209un"/>
+                <bool name="frictionEnabled" value="TRUE"/>
+                <enums name="clampingStyle" value="BounceBackClamping"/>
+            </widget>
+            <layout type="anchor">
+                <anchoritem dst="listview" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="listview" dstEdge="TOP" spacing="9un" src="" srcEdge="TOP"/>
+                <anchoritem dst="listview" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="listview" dstEdge="BOTTOM" spacing="-9un" src="" srcEdge="BOTTOM"/>
+            </layout>
+        </widget>
+        <string name="title" value="Photos"/>
+        <bool name="contentFullScreen" value="TRUE"/>
+    </widget>
+    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+        <dummydata objectName="listview" section="#common" value="0"/>
+    </metadata>
+</hbdocument>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/slideshow.docml	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<hbdocument version="0.9">
+    <widget name="mglxslideshow" type="HbView">
+        <widget name="content" role="HbView:widget" type="HbWidget">
+            <widget name="mslideshowwidget" type="HbWidget">
+                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                <enums name="scrollDirections" value="Horizontal"/>
+                <real name="z" value="14"/>
+                <sizehint height="95.52239un" type="PREFERRED" width="53.73134un"/>
+            </widget>
+            <widget name="mContinueButton" type="HbPushButton">
+                <real name="z" value="10"/>
+                <real name="opacity" value="0.5"/>
+                <sizehint height="expr(var(hb-param-margin-gene-top)+var(hb-param-margin-gene-bottom)+var(hb-param-graphic-size-function))" type="PREFERRED" width="expr(var(hb-param-margin-gene-top)+var(hb-param-margin-gene-bottom)+var(hb-param-graphic-size-function))"/>
+                <string name="text" value=""/>
+                <bool name="visible" value="FALSE"/>
+                <string name="state" value="normal"/>
+            </widget>
+            <real name="z" value="12"/>
+            <layout type="anchor">
+                <anchoritem dst="mslideshowwidget" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="mslideshowwidget" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
+                <anchoritem dst="mslideshowwidget" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="mslideshowwidget" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
+                <anchoritem dst="mContinueButton" dstEdge="CENTERV" spacing="0un" src="" srcEdge="CENTERV"/>
+                <anchoritem dst="mContinueButton" dstEdge="CENTERH" spacing="0un" src="" srcEdge="CENTERH"/>
+            </layout>
+        </widget>
+        <string name="title" value="Photos"/>
+        <bool name="contentFullScreen" value="TRUE"/>
+        <real name="z" value="10"/>
+    </widget>
+    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
+        <uistate name="Common ui state" sections="#common"/>
+    </metadata>
+</hbdocument>
--- a/engine/collectionframework/plugins/glxcollectionpluginalbums/inc/glxcollectionpluginalbums.hrh	Mon May 03 12:31:32 2010 +0300
+++ b/engine/collectionframework/plugins/glxcollectionpluginalbums/inc/glxcollectionpluginalbums.hrh	Fri May 14 15:52:22 2010 +0300
@@ -28,6 +28,10 @@
 
 #define KGlxCollectionPluginAlbumsDllUid        		0x20007196
 #define KGlxCollectionPluginAlbumsImplementationUid 0x20007197
+#define KGlxCollectionPluginFavoritesAlbumId        0x2000A77C    
+//This is Used to set the Leavel in the alibum list 
+//as favorites is first in album list
+#define KGlxCollectionFavoritesId                    1
 
 #endif  // GLXCOLLECTIONPLUGINALBUMS_HRH
 
--- a/gallery/sis/glxgallery.pkg	Mon May 03 12:31:32 2010 +0300
+++ b/gallery/sis/glxgallery.pkg	Fri May 14 15:52:22 2010 +0300
@@ -87,6 +87,7 @@
 ;qt dlls
 "\epoc32\release\armv5\urel\glxtvoutwrapper.dll"            -"!:\sys\bin\glxtvoutwrapper.dll"
 "\epoc32\release\armv5\urel\glxmedialistwrapper.dll"            -"!:\sys\bin\glxmedialistwrapper.dll"
+"\epoc32\release\armv5\urel\glxmodelwrapper.dll"            -"!:\sys\bin\glxmodelwrapper.dll"
 "\epoc32\release\armv5\urel\glxexternalutility.dll"        -"!:\sys\bin\glxexternalutility.dll"
 "\epoc32\release\armv5\urel\glxmediamodel.dll"        -"!:\sys\bin\glxmediamodel.dll"
 "\epoc32\release\armv5\urel\glxlistmodel.dll"        -"!:\sys\bin\glxlistmodel.dll"
--- a/gallery/sis/photosqt_stub.pkg	Mon May 03 12:31:32 2010 +0300
+++ b/gallery/sis/photosqt_stub.pkg	Fri May 14 15:52:22 2010 +0300
@@ -78,6 +78,7 @@
 ;qt dlls
 ""-"z:\sys\bin\glxtvoutwrapper.dll"
 ""-"z:\sys\bin\glxmedialistwrapper.dll"
+""-"z:\sys\bin\glxmodelwrapper.dll"
 ""-"z:\sys\bin\glxexternalutility.dll"
 ""-"z:\sys\bin\glxmediamodel.dll"
 ""-"z:\sys\bin\glxlistmodel.dll"
--- a/main/glxaiwservicehandler.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/main/glxaiwservicehandler.cpp	Fri May 14 15:52:22 2010 +0300
@@ -24,8 +24,8 @@
 
 #include <QtDebug>
 #include <Qt>
-#include <qstringlist.h>
-#include <qmessagebox.h>
+#include <QDir>
+#include <QStringList>
 
 #include <glxmediamodel.h>
 #include <glxviewsfactory.h>
@@ -41,16 +41,34 @@
 #include <glximageviewermanager.h>
 #include <glxexternalutility.h>
 #include "glxlocalisationstrings.h"
+#include <xqaiwdeclplat.h>
+
+#define IMAGE_FETCHER_SERVICE_NAME QLatin1String("photos.com.nokia.symbian.IImageFetch")
+#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")
+
 
 // ----------------------------------------------------------------------------
 // GlxAiwServiceHandler()
 // ----------------------------------------------------------------------------
 //
 GlxAiwServiceHandler::GlxAiwServiceHandler() :
-    HbMainWindow(), mModel(NULL), mView(NULL), mService(NULL),
-            mStateMgr(NULL),mFSView(NULL),mFetcherContextMenu(NULL)
+    HbMainWindow(), 
+    mModel(NULL),
+    mView(NULL),
+    mStateMgr(NULL),
+    mFSView(NULL),
+    mFetcherContextMenu(NULL),
+    mFetcherService(NULL),
+    mNSDIService(NULL),
+    mDSDIService(NULL),
+    mImageViewerService(NULL)
     {
-    mService = new GlxGetImageService(this);
+    mFetcherService = new GlxGetImageService(this);
+    mNSDIService = new GlxGetImageServiceNSDI(this);
+    mDSDIService = new GlxGetImageServiceDSDI(this);
+    
     mImageViewerService = new GlxImageViewerService(this);
 
 #ifdef _DEBUG
@@ -75,10 +93,14 @@
         {
         removeView(mView);
         }
+    delete mStateMgr;
     delete mView;
 	delete mFSView;
     delete mModel;
-    delete mService;
+    delete mFetcherService;
+    delete mNSDIService;
+    delete mDSDIService;
+    delete mImageViewerService;
     }
 
 void GlxAiwServiceHandler::handleClientDisconnect()
@@ -94,16 +116,40 @@
 void GlxAiwServiceHandler::itemSelected(const QModelIndex & index)
     {
     qDebug() << "GlxFetcher::itemSelected";
-    if (mService->isActive())
+    
+    if (mFetcherService->isActive())
         {
-        qDebug() << "GlxFetcher::itemSelected :: SERVICE ACTIVE";
+        qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()";
         QVariant variant = mModel->data(index, GlxUriRole);
         if (variant.isValid())
             {
             QString itemPath = variant.value<QString> ();
-            qDebug() << "GlxFetcher::itemSelected :: VALID URI -->" << itemPath;
+            QStringList list = (QStringList() << itemPath);
+            mFetcherService->complete(list);
+            }
+        }
+    
+    if (mNSDIService->isActive())
+        {
+    qDebug() << "GlxFetcher::itemSelected mNSDIService->isActive()";
+        QVariant variant = mModel->data(index, GlxUriRole);
+        if (variant.isValid())
+            {
+            QString itemPath = variant.value<QString> ();
             QStringList list = (QStringList() << itemPath);
-            mService->complete(list);
+            mNSDIService->complete(list);
+            }
+        }
+    
+    if (mDSDIService->isActive())
+        {
+    qDebug() << "GlxFetcher::itemSelected mDSDIService->isActive()";
+        QVariant variant = mModel->data(index, GlxUriRole);
+        if (variant.isValid())
+            {
+            QString itemPath = variant.value<QString> ();
+            QStringList list = (QStringList() << itemPath);
+            mDSDIService->complete(list);
             }
         }
     }	
@@ -112,6 +158,7 @@
 
 void GlxAiwServiceHandler::launchFetcher()
     {
+    qDebug() << "GlxAiwServiceHandler::launchFetcher START";
     HbStyleLoader::registerFilePath(":/data/photos.css");
     GlxModelParm modelParm(KGlxCollectionPluginAllImplementationUid, 0);
     mModel = new GlxMediaModel(modelParm);
@@ -133,6 +180,7 @@
 	connect ( mView, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ),
 			this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ),
 			Qt::QueuedConnection );
+	qDebug() << "GlxAiwServiceHandler::launchFetcher END";
     }
 
 void GlxAiwServiceHandler::itemSpecificMenuTriggered(qint32 viewId,QPointF pos)
@@ -202,8 +250,7 @@
 // ----------------------------------------------------------------------------
 //
 GlxGetImageService::GlxGetImageService(GlxAiwServiceHandler* parent) :
-            XQServiceProvider(
-                    QLatin1String("com.nokia.services.media.Image"), parent),
+            XQServiceProvider(IMAGE_FETCHER_SERVICE_NAME, parent),
             mServiceApp(parent)
     {
     mImageRequestIndex = -1;
@@ -267,7 +314,173 @@
 // fetch()
 // ----------------------------------------------------------------------------
 //
-void GlxGetImageService::fetch(QVariantMap filter, QVariant flag)
+void GlxGetImageService::fetch()
+    {
+    mImageRequestIndex = setCurrentRequestAsync();
+    mServiceApp->launchFetcher();
+    }
+
+// ----------------------------------------------------------------------------
+// GlxGetImageService()
+// ----------------------------------------------------------------------------
+//
+GlxGetImageServiceNSDI::GlxGetImageServiceNSDI(GlxAiwServiceHandler* parent) :
+            XQServiceProvider(IMAGE_FETCHER_SERVICE_DEPINTERFACE_NAME, parent),
+            mServiceApp(parent)
+    {
+    mImageRequestIndex = -1;
+    publishAll();
+    connect(this, SIGNAL(clientDisconnected()), mServiceApp,
+            SLOT(handleClientDisconnect()));
+    }
+
+// ----------------------------------------------------------------------------
+// ~GlxGetImageService()
+// ----------------------------------------------------------------------------
+//
+GlxGetImageServiceNSDI::~GlxGetImageServiceNSDI()
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// fetchFailed()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceNSDI::fetchFailed(int errorCode)
+    {
+    QStringList filesList;
+    filesList.insert(0, QString::number(errorCode));//result
+    doComplete(filesList);
+    }
+
+// ----------------------------------------------------------------------------
+// complete()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceNSDI::complete(QStringList filesList)
+    {
+    doComplete(filesList);
+    }
+
+// ----------------------------------------------------------------------------
+// doComplete()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceNSDI::doComplete(QStringList filesList)
+    {
+    if (isActive())
+        {
+        completeRequest(mImageRequestIndex, filesList);
+        mImageRequestIndex = -1;
+        connect(this, SIGNAL(returnValueDelivered()), qApp, SLOT(quit()));
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// isActive()
+// ----------------------------------------------------------------------------
+//
+bool GlxGetImageServiceNSDI::isActive()
+    {
+    return mImageRequestIndex > -1;
+    }
+
+// ----------------------------------------------------------------------------
+// fetch()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceNSDI::fetch(QVariantMap filter, QVariant flag)
+    {
+    qDebug() << "GlxGetImageServiceNSDI::fetch WITH PARAMETER START";
+    Q_UNUSED(filter)
+    Q_UNUSED(flag)
+    fetch();
+    qDebug() << "GlxGetImageServiceNSDI::fetch WITH PARAMETER END";
+    }
+
+// ----------------------------------------------------------------------------
+// fetch()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceNSDI::fetch()
+    {
+    qDebug() << "GlxGetImageServiceNSDI::fetch START";
+    mImageRequestIndex = setCurrentRequestAsync();
+    mServiceApp->launchFetcher();
+    qDebug() << "GlxGetImageServiceNSDI::fetch END";
+    }
+
+//==============================================================================//
+// ----------------------------------------------------------------------------
+// GlxGetImageService()
+// ----------------------------------------------------------------------------
+//
+GlxGetImageServiceDSDI::GlxGetImageServiceDSDI(GlxAiwServiceHandler* parent) :
+            XQServiceProvider(IMAGE_FETCHER_DEPSERVICE_DEPINTERFACE_NAME, parent),
+            mServiceApp(parent)
+    {
+    mImageRequestIndex = -1;
+    publishAll();
+    connect(this, SIGNAL(clientDisconnected()), mServiceApp,
+            SLOT(handleClientDisconnect()));
+    }
+
+// ----------------------------------------------------------------------------
+// ~GlxGetImageService()
+// ----------------------------------------------------------------------------
+//
+GlxGetImageServiceDSDI::~GlxGetImageServiceDSDI()
+    {
+    }
+
+// ----------------------------------------------------------------------------
+// fetchFailed()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceDSDI::fetchFailed(int errorCode)
+    {
+    QStringList filesList;
+    filesList.insert(0, QString::number(errorCode));//result
+    doComplete(filesList);
+    }
+
+// ----------------------------------------------------------------------------
+// complete()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceDSDI::complete(QStringList filesList)
+    {
+    doComplete(filesList);
+    }
+
+// ----------------------------------------------------------------------------
+// doComplete()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceDSDI::doComplete(QStringList filesList)
+    {
+    if (isActive())
+        {
+        completeRequest(mImageRequestIndex, filesList);
+        mImageRequestIndex = -1;
+        connect(this, SIGNAL(returnValueDelivered()), qApp, SLOT(quit()));
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// isActive()
+// ----------------------------------------------------------------------------
+//
+bool GlxGetImageServiceDSDI::isActive()
+    {
+    return mImageRequestIndex > -1;
+    }
+
+// ----------------------------------------------------------------------------
+// fetch()
+// ----------------------------------------------------------------------------
+//
+void GlxGetImageServiceDSDI::fetch(QVariantMap filter, QVariant flag)
     {
     Q_UNUSED(filter)
     Q_UNUSED(flag)
@@ -278,8 +491,7 @@
 // ----------GlxImageViewerService---------------
 
 GlxImageViewerService::GlxImageViewerService(GlxAiwServiceHandler* parent) :
-    XQServiceProvider(QLatin1String(
-            "com.nokia.services.media.com.nokia.symbian.IFileView"), parent),
+    XQServiceProvider(FILE_VIEWER_SERVICE_NAME, parent),
             mServiceApp(parent), mAsyncReqId(-1), mAsyncRequest(false),
             mImageViewerInstance(NULL)
 
@@ -312,8 +524,8 @@
         {
         mImageViewerInstance = CGlxImageViewerManager::InstanceL();
         }
-    file.replace(QString("/"), QString("\\"));
-    TPtrC16 str(reinterpret_cast<const TUint16*> (file.utf16()));
+    QString filepath(QDir::toNativeSeparators(file.at(0)));
+    TPtrC16 str(reinterpret_cast<const TUint16*> (filepath.utf16()));
     HBufC* uri = str.Alloc();
 
     mImageViewerInstance->SetImageUriL(*uri);
--- a/main/glxaiwservicehandler.h	Mon May 03 12:31:32 2010 +0300
+++ b/main/glxaiwservicehandler.h	Fri May 14 15:52:22 2010 +0300
@@ -34,6 +34,9 @@
 class GlxImageViewerService;
 class GlxStateManager;
 class CGlxImageViewerManager;
+class GlxGetImageServiceNSDI;
+class GlxGetImageServiceDSDI;
+
 /**
  *  GlxAiwServiceHandler
  * 
@@ -64,11 +67,14 @@
 private:
     GlxMediaModel *mModel;
     GlxView* mView;
-    GlxGetImageService* mService;
-	GlxImageViewerService* mImageViewerService;
 	GlxStateManager *mStateMgr;
 	GlxView* mFSView;
     HbMenu *mFetcherContextMenu;
+
+    GlxGetImageService* mFetcherService;
+    GlxGetImageServiceNSDI* mNSDIService;
+    GlxGetImageServiceDSDI* mDSDIService;
+    GlxImageViewerService* mImageViewerService;
     };
 
 /**
@@ -85,6 +91,61 @@
     void complete( QStringList filesList);
     
 public slots://for QTHighway to notify provider about request
+    void fetch();
+    
+public slots://for provider to notify client
+    void fetchFailed( int errorCode );
+    
+private:
+    void doComplete( QStringList filesList);
+    
+private:
+    int mImageRequestIndex;
+    GlxAiwServiceHandler* mServiceApp;
+};
+
+/**
+ *  GlxGetImageServiceDSDI
+ *  Service provide for new service and depricated interface
+ */ 
+class GlxGetImageServiceNSDI : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    GlxGetImageServiceNSDI( GlxAiwServiceHandler *parent = 0 );
+    ~GlxGetImageServiceNSDI();
+    bool isActive();
+    void complete( QStringList filesList);
+    
+public slots://for QTHighway to notify provider about request
+    void fetch( QVariantMap filter , QVariant flag );
+    void fetch();
+    
+public slots://for provider to notify client
+    void fetchFailed( int errorCode );
+    
+private:
+    void doComplete( QStringList filesList);
+    
+private:
+    int mImageRequestIndex;
+    GlxAiwServiceHandler* mServiceApp;
+};
+
+/**
+ *  GlxGetImageServiceDSDI
+ *  Service provide for depricated service and depricated interface
+ */ 
+class GlxGetImageServiceDSDI : public XQServiceProvider
+{
+    Q_OBJECT
+public:
+    GlxGetImageServiceDSDI( GlxAiwServiceHandler *parent = 0 );
+    ~GlxGetImageServiceDSDI();
+    bool isActive();
+    void complete( QStringList filesList);
+    
+public slots://for QTHighway to notify provider about request
     void fetch( QVariantMap filter, QVariant flag);
     
 public slots://for provider to notify client
--- a/main/service_conf.xml	Mon May 03 12:31:32 2010 +0300
+++ b/main/service_conf.xml	Fri May 14 15:52:22 2010 +0300
@@ -1,13 +1,18 @@
 <?xml version="1.0" encoding="utf-8" ?>
 <service>
-  <name>com.nokia.services.media</name>
+  <name>photos</name>
   <filepath>No path</filepath>
   <description>Image Fetcher</description>
   <interface>
      <name>Image</name>
      <version>1.0</version>
      <description>Interface which may do something</description>
-     <customproperty key="txt_aiw_action_text">Fetch</customproperty>
+     <customproperty key="deprecatedsn">com.nokia.services.media</customproperty>
+   </interface>
+  <interface>
+     <name>com.nokia.symbian.IImageFetch</name>
+     <version>1.0</version>
+     <description>Interface which may do something</description>
    </interface>
   <interface>
      <name>com.nokia.symbian.IFileView</name>
--- a/rom/photos.iby	Mon May 03 12:31:32 2010 +0300
+++ b/rom/photos.iby	Fri May 14 15:52:22 2010 +0300
@@ -63,6 +63,8 @@
 file=ABI_DIR/BUILD_DIR/glxmedialistwrapper.dll              SHARED_LIB_DIR/glxmedialistwrapper.dll
 file=ABI_DIR/BUILD_DIR/glxmediamodel.dll              SHARED_LIB_DIR/glxmediamodel.dll
 file=ABI_DIR/BUILD_DIR/glxlistmodel.dll              SHARED_LIB_DIR/glxlistmodel.dll
+file=ABI_DIR/BUILD_DIR/glxmodelwrapper.dll              SHARED_LIB_DIR/glxmodelwrapper.dll
+file=ABI_DIR/BUILD_DIR/glxfavmediamodel.dll          SHARED_LIB_DIR/glxfavmediamodel.dll
 
 file=ABI_DIR/BUILD_DIR/glxstatehandler.dll              SHARED_LIB_DIR/glxstatehandler.dll
 file=ABI_DIR/BUILD_DIR/glxviewmanager.dll              SHARED_LIB_DIR/glxviewmanager.dll
@@ -73,7 +75,7 @@
 S60_APP_EXE(photos)
 data=/epoc32/data/z/private/10003a3f/import/apps/photos_reg.rsc         private/10003a3f/import/apps/photos_reg.rsc
 data=DATAZ_/APP_RESOURCE_DIR/0xE2C223D9.mif                     APP_RESOURCE_DIR/0xE2C223D9.mif  
-
+data=/epoc32/data/Z/private/10202BE9/20007194.txt		private/10202BE9/20007194.txt
 //data=/epoc32/data/z/system/install/photos_stub.sis        /system/install/photos_stub.sis
 
 #endif //__PHOTOS_IBY__
\ No newline at end of file
--- a/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/tsrc/unittest/unittest_medialistwrapper/unittest_medialistwrapper.cpp	Fri May 14 15:52:22 2010 +0300
@@ -106,7 +106,7 @@
     
     // After adding grid context should get grid icon 
     mTestObject->setContextMode(GlxContextPtGrid);
-    QTest::qWait(2000);
+    QTest::qWait(10000);
     icon = mTestObject->retrieveItemIcon(itemIndex,GlxTBContextGrid);
     QVERIFY(icon != NULL);
 }
--- a/tvout/tvoutengine/inc/glxhdmicontroller.h	Mon May 03 12:31:32 2010 +0300
+++ b/tvout/tvoutengine/inc/glxhdmicontroller.h	Fri May 14 15:52:22 2010 +0300
@@ -20,7 +20,6 @@
 
 // Internal includes
 #include <mglxtvobserver.h>     // for inteface MGlxTvObserver
-#include <fbs.h>
 
 class CGlxHdmiContainer;
 class CGlxHdmiSurfaceUpdater;
@@ -128,7 +127,8 @@
     CGlxHdmiContainer*      iHdmiContainer;
     CGlxHdmiSurfaceUpdater* iSurfaceUpdater;
     CGlxTv*  iGlxTvOut;
-    TBool iIsImageSupported;
+    TBool   iIsImageSupported;          // Flag to see if Image is supported
+    TBool   iIsPostingMode;             // Flag for determining if the image needs to be in posting mode
     };
 
 #endif /* GLXHDMICONTROLLER_H_ */
--- a/tvout/tvoutengine/inc/glxtvconnectionmonitor.h	Mon May 03 12:31:32 2010 +0300
+++ b/tvout/tvoutengine/inc/glxtvconnectionmonitor.h	Fri May 14 15:52:22 2010 +0300
@@ -114,6 +114,7 @@
      */      
     void IssueNotificationL();
     
+    void UpdateConnectionStatusL();
 
 private: // class member data
     
--- a/tvout/tvoutengine/src/glxhdmicontroller.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/tvout/tvoutengine/src/glxhdmicontroller.cpp	Fri May 14 15:52:22 2010 +0300
@@ -73,6 +73,7 @@
         }
     if (iGlxTvOut->IsHDMIConnected())
         {
+        iIsPostingMode = ETrue;         // the image should be in posting mode
         GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 2");
         // do not close the surface , use the same surface instead.
         // Call a function to pass imagefile
@@ -139,8 +140,10 @@
 EXPORT_C void CGlxHdmiController::ShiftToCloningMode()
     {
     TRACER("CGlxHdmiController::ShiftToCloningMode()");
+    // Shift to cloning only if HDMI is connected and surfaceupdater available.
     if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater)
         {
+        iIsPostingMode = EFalse;
         iSurfaceUpdater->ShiftToCloningMode();
         }
     }
@@ -151,14 +154,27 @@
 EXPORT_C void CGlxHdmiController::ShiftToPostingMode()
     {
     TRACER("CGlxHdmiController::ShiftToPostingMode()");
-    if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater)
+    if (iGlxTvOut->IsHDMIConnected())
         {
-        iSurfaceUpdater->ShiftToPostingMode();
+        if (!iSurfaceUpdater)
+            {
+            GLX_LOG_INFO("CGlxHdmiController::ShiftToPostingMode() - 1");
+            // This case would come when HDMI connected, TvOut /headphones being connected
+            // and then it shows a popup of "microphone connected" 
+            // thus Background - Foreground when headphones connected during HDMI connected
+            SetImageL(iStoredImagePath->Des(), iFsBitmap, EFalse);
+            }
+        else
+            {
+            GLX_LOG_INFO("CGlxHdmiController::ShiftToPostingMode() - 2");
+            iSurfaceUpdater->ShiftToPostingMode();
+            }
+        iIsPostingMode = ETrue;
         }
     }
 
 // -----------------------------------------------------------------------------
-// HandleTvStatusChangedL 
+// IsHDMIConnected 
 // -----------------------------------------------------------------------------
 EXPORT_C TBool CGlxHdmiController::IsHDMIConnected()
     {
@@ -171,7 +187,8 @@
 // Constructor
 // -----------------------------------------------------------------------------
 CGlxHdmiController::CGlxHdmiController():
-            iFsBitmap(NULL)
+            iFsBitmap(NULL),
+            iIsPostingMode(EFalse)
     {
     TRACER("CGlxHdmiController::CGlxHdmiController()");
     // Implement nothing here
@@ -211,6 +228,7 @@
         delete iSurfaceUpdater;
         iSurfaceUpdater = NULL;
         }    
+    iIsPostingMode = EFalse;
     }
 
 // -----------------------------------------------------------------------------
@@ -264,7 +282,14 @@
     TRACER("CGlxHdmiController::HandleTvStatusChangedL()");
     if ( aChangeType == ETvConnectionChanged )          
         {
-        if ( iGlxTvOut->IsHDMIConnected() && iIsImageSupported )
+        if ( iGlxTvOut->IsHDMIConnected() && iGlxTvOut->IsConnected() && iSurfaceUpdater)
+            {
+            GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI and TV Connected");
+            // Do nothing , as this means HDMI is already connected and headset/tv cable connected
+            // meaning we shouldnt destroy HDMI and neither have to create surface updater.
+            return;
+            }
+        else if ( iGlxTvOut->IsHDMIConnected() && iIsImageSupported && iIsPostingMode)
             {
             GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Connected");
             // Calling SetImageL() with appropriate parameters
@@ -272,8 +297,8 @@
             }
         else
             {
-            GLX_LOG_INFO2("CGlxHdmiController::HandleTvStatusChangedL() iIsImageSupported=%d, iGlxTvOut->IsHDMIConnected()=%d", 
-                    iIsImageSupported,iGlxTvOut->IsHDMIConnected());
+            GLX_LOG_INFO3("CGlxHdmiController::HandleTvStatusChangedL() iIsImageSupported=%d, iGlxTvOut->IsHDMIConnected()=%d, iIsPostingMode=%d", 
+                    iIsImageSupported,iGlxTvOut->IsHDMIConnected(),iIsPostingMode);
             // if it gets disconnected, destroy the surface 
             GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Not Connected");
             DestroySurfaceUpdater();
--- a/tvout/tvoutengine/src/glxtvconnectionmonitor.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/tvout/tvoutengine/src/glxtvconnectionmonitor.cpp	Fri May 14 15:52:22 2010 +0300
@@ -29,6 +29,8 @@
 //  INTERNAL INCLUDES
 
 #include <glxlog.h>
+#include <glxtracer.h>
+
 #include <glxpanic.h>
 #include "glxtv.h"
 #include <AccPolGenericIdDefinitions.h>
@@ -40,7 +42,7 @@
 CGlxTvConnectionMonitor* CGlxTvConnectionMonitor::NewL(
                                MGlxTvConnectionObserver& aConnectionObserver ) 
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor::NewL");
+    TRACER("CGlxTvConnectionMonitor::NewL");
     CGlxTvConnectionMonitor* self = new (ELeave) 
                 CGlxTvConnectionMonitor( aConnectionObserver );
     CleanupStack::PushL( self );
@@ -56,7 +58,7 @@
 //
 CGlxTvConnectionMonitor::~CGlxTvConnectionMonitor()
     {
-    GLX_LOG_INFO("~CGlxTvConnectionMonitor");
+    TRACER("~CGlxTvConnectionMonitor");
     Cancel();
     iTvAccCon.CloseSubSession();
     iTvAccServer.Disconnect();
@@ -70,9 +72,12 @@
 CGlxTvConnectionMonitor::CGlxTvConnectionMonitor
                            ( MGlxTvConnectionObserver& aConnectionObserver ) 
                             :CActive(EPriorityStandard), 
-                             iConnectionObserver ( aConnectionObserver )
+                             iConnectionObserver ( aConnectionObserver ),
+                             iTvOutConnectionState(EFalse),
+                             iHDMIConnectionState(EFalse)
+
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor");
+    TRACER("CGlxTvConnectionMonitor");
     CActiveScheduler::Add( this );
     }
 
@@ -83,20 +88,12 @@
 //
 void CGlxTvConnectionMonitor::ConstructL()
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor::ConstructL");
+    TRACER("CGlxTvConnectionMonitor::ConstructL");
     User::LeaveIfError(iTvAccServer.Connect());
 	User::LeaveIfError(iTvAccCon.CreateSubSession(iTvAccServer));
-	User::LeaveIfError(iTvAccCon.GetAccessoryConnectionStatus(iCurrentAccArray));
-	for (int i = 0; i < iCurrentAccArray.Count(); i++)
-		{
-		iTvOutConnectionState
-				= (iCurrentAccArray.GetGenericIDL(i).PhysicalConnectionCaps()
-						== KPCWired);
-		iHDMIConnectionState
-				= (iCurrentAccArray.GetGenericIDL(i).PhysicalConnectionCaps()
-						== KPCHDMI);
-		}
-    IssueRequest();  
+
+	UpdateConnectionStatusL();
+	IssueRequest();  
     }
 
 //-----------------------------------------------------------------------------
@@ -106,7 +103,7 @@
 //
 void CGlxTvConnectionMonitor::RunL()
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor::RunL");
+    TRACER("CGlxTvConnectionMonitor::RunL");
     // Check for errors
     User::LeaveIfError( iStatus.Int() );
     // Notify observers
@@ -123,7 +120,7 @@
 //
 void CGlxTvConnectionMonitor::DoCancel()
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor::DoCancel");
+    TRACER("CGlxTvConnectionMonitor::DoCancel");
     iTvAccCon.CancelGetAccessoryConnectionStatus();
     iTvAccCon.CancelNotifyAccessoryConnectionStatusChanged();
     }
@@ -148,7 +145,7 @@
 //
 TBool CGlxTvConnectionMonitor::IsConnected() const
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor::IsConnected");
+    TRACER("CGlxTvConnectionMonitor::IsConnected");
     GLX_LOG_INFO1("CGlxTvConnectionMonitor::IsConnected iTvOutConnectionState=%d",iTvOutConnectionState);
     return iTvOutConnectionState;
     }
@@ -160,7 +157,7 @@
 //
 TBool CGlxTvConnectionMonitor::IsHDMIConnected() const
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor::IsHDMIConnected");
+    TRACER("CGlxTvConnectionMonitor::IsHDMIConnected");
     GLX_LOG_INFO1("CGlxTvConnectionMonitor::IsHDMIConnected iHDMIConnectionState=%d",iHDMIConnectionState);
     return iHDMIConnectionState;
     }
@@ -171,7 +168,7 @@
 //
 void CGlxTvConnectionMonitor::IssueRequest()
     {
-    GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueRequest");
+    TRACER("CGlxTvConnectionMonitor::IssueRequest");
     if (!IsActive()) // required for testing
         {
         iTvAccCon.NotifyAccessoryConnectionStatusChanged(iStatus,iCurrentAccArray);
@@ -179,74 +176,78 @@
         }
     }
 
-
 //-----------------------------------------------------------------------------
 // Sends notification to observers if TV Out is connected
 //-----------------------------------------------------------------------------
 //
 void CGlxTvConnectionMonitor::IssueNotificationL()
     {
-	GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL");
+    TRACER("CGlxTvConnectionMonitor::IssueNotificationL");
 	TBool previousTvState = iTvOutConnectionState;
 	TBool previousHDMIState = iHDMIConnectionState;
-	GLX_LOG_INFO2("previousTvState = %d , previousHDMIState = %d",
-			previousTvState,previousHDMIState);
+	
+	// Update the connection status
+	UpdateConnectionStatusL();
+    
+	// trigger tvstatus change only when there is actually a change the in the connection and not 
+	// for spurious events
+	if (previousTvState !=iTvOutConnectionState || previousHDMIState != iHDMIConnectionState)
+	    {
+	    GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL - Connection Altered");
+	    iConnectionObserver.HandleTvConnectionStatusChangedL();
+	    }
+	}
 
-	//gets the TV status in to the iCurrentAccArray and haves the Latest Accesory in 0-index
-	User::LeaveIfError(iTvAccCon.GetAccessoryConnectionStatus(iCurrentAccArray));
+//-----------------------------------------------------------------------------
+// UpdateConnectionStatusL()
+//-----------------------------------------------------------------------------
+//
+void CGlxTvConnectionMonitor::UpdateConnectionStatusL()
+    {
+    TRACER("CGlxTvConnectionMonitor::UpdateConnectionStatusL()");
 
-	CAccPolSubblockNameArray* nameArray = CAccPolSubblockNameArray::NewL();
-	CleanupStack::PushL(nameArray);
+    GLX_LOG_INFO2("CGlxTvConnectionMonitor::UpdateConnectionStatusL previousTvState = %d , previousHDMIState = %d",
+            iTvOutConnectionState,iHDMIConnectionState);
+
+    //gets the TV status in to the iCurrentAccArray and haves the Latest Accesory in 0-index
+    User::LeaveIfError(iTvAccCon.GetAccessoryConnectionStatus(iCurrentAccArray));
 
-	//
-	//  Get the number of currently connected accessories
-	//  Loop through each connected accessory looking for
-	//  the desired capabilities
-	//
-	iTvOutConnectionState = EFalse;
-	iHDMIConnectionState = EFalse;
-	const TInt count = iCurrentAccArray.Count();
-	for (TInt index = 0; index < count; index++)
-		{
-		TAccPolGenericID genId = iCurrentAccArray.GetGenericIDL(index);
-		//  Get all supported capabilities for this connected accessory.
-		iTvAccCon.GetSubblockNameArrayL(genId, *nameArray);
-		//  Check if this connected accessory supports TV-Out capabality.
-		if (nameArray->HasName(KAccVideoOut))
-			{
-			GLX_LOG_INFO("TV-Out Capabilities Exist");
-			TAccPolNameRecord nameRecord;
-			nameRecord.SetNameL(KAccVideoOut);
-			TAccValueTypeTInt value;
-			iTvAccCon.GetValueL(genId, nameRecord, value);
-			if (value.iValue == EAccVideoOutEHDMI)
-				{
-				GLX_LOG_INFO("HDMI is connected Capabilities Exist");
-				iHDMIConnectionState = ETrue;
-				break;
-				}
-			else if (value.iValue == EAccVideoOutCVideo)
-				{
-				GLX_LOG_INFO("TV is connected Capabilities Exist");
-				iTvOutConnectionState = ETrue;
-				break;
-				}
-			}
+    CAccPolSubblockNameArray* nameArray = CAccPolSubblockNameArray::NewL();
+    CleanupStack::PushL(nameArray);
+    //  Get the number of currently connected accessories
+    //  Loop through each connected accessory looking for
+    //  the desired capabilities
+    //
+    const TInt count = iCurrentAccArray.Count();
+    GLX_LOG_INFO1("CGlxTvConnectionMonitor::UpdateConnectionStatusL current count value is %d",count);
+    for (TInt index = 0; index <count; index++)
+        {
+        TAccPolGenericID genId = iCurrentAccArray.GetGenericIDL(index);
+        //  Get all supported capabilities for this connected accessory.
+        iTvAccCon.GetSubblockNameArrayL(genId, *nameArray);
+        //  Check if this connected accessory supports TV-Out capabality.
+        GLX_LOG_INFO1("CGlxTvConnectionMonitor::UpdateConnectionStatusL current index value is %d",index);
+        if (nameArray->HasName(KAccVideoOut))
+            {
+            GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL Video Accessory Supported");
+            TAccPolNameRecord nameRecord;
+            nameRecord.SetNameL(KAccVideoOut);
+            TAccValueTypeTInt value;
+            iTvAccCon.GetValueL(genId, nameRecord, value);
+            if (value.iValue == EAccVideoOutEHDMI)
+                {
+                GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL HDMI is connected");
+                iHDMIConnectionState = ETrue;
+                }
+            else if (value.iValue == EAccVideoOutCVideo)
+                {
+                GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL TV is connected");
+                iTvOutConnectionState = ETrue;
+                }
+            }
+        }
+    CleanupStack::PopAndDestroy(nameArray);
 
-		}
-	CleanupStack::PopAndDestroy(nameArray);
-
-	if (previousTvState != iTvOutConnectionState || previousHDMIState
-			!= iHDMIConnectionState)
-        {
-        GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL -"
-                " TvConnectionStatusChanged");
-        GLX_LOG_INFO2("CurrentTvState = %d , CurrentHDMIState = %d",
-                iTvOutConnectionState,iHDMIConnectionState);
-        iConnectionObserver.HandleTvConnectionStatusChangedL();
-        }
+    GLX_LOG_INFO2("CGlxTvConnectionMonitor::UpdateConnectionStatusL CurrentTvState = %d , CurrentHDMIState = %d",
+            iTvOutConnectionState,iHDMIConnectionState);
     }
-
-
-
-
--- a/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h	Mon May 03 12:31:32 2010 +0300
+++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h	Fri May 14 15:52:22 2010 +0300
@@ -99,6 +99,11 @@
      * and pass it to HDMI controller
      */
     void SetNewImage();
+    
+    /*
+     * getsubstate
+     */
+    int getSubState();
 private:
     GlxTvOutWrapper*            iTvOutWrapper;          // Instance of the Tv Wrapper
     QAbstractItemModel*         iModel;                 // Instance of the model
--- a/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Fri May 14 15:52:22 2010 +0300
@@ -20,6 +20,7 @@
 #include "glxtvconnectionobserver.h"
 #include "glxhdmicontroller.h"
 #include "glxmodelparm.h"
+#include "glxviewids.h"
 
 // -----------------------------------------------------------------------------
 // Static method to create the private wrapper instance 
@@ -89,7 +90,7 @@
     iHdmiConnected = aConnected;
     // if Connection state positive and uri/bmp are not passed to HDMI already
     // then it is a new image - Set it.
-    if (!isImageSetToHdmi && iHdmiConnected)
+    if (!isImageSetToHdmi && iHdmiConnected && getSubState() !=IMAGEVIEWER_S)
         {
         SetNewImage();
         }
@@ -123,7 +124,14 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetNewImage()
     {
-    int focusIndex = (iModel->data(iModel->index(0,0),GlxFocusIndexRole).value<int>());
+    QVariant focusVariant =(iModel->data(iModel->index(0,0),GlxFocusIndexRole)); 
+    int focusIndex;
+    if (focusVariant.isValid() && focusVariant.canConvert<int>()) {
+        focusIndex = (focusVariant.value<int>());
+	}
+	else{
+		return ;
+	}
     
     // Get the image uri
     QString imagePath = (iModel->data(iModel->index(focusIndex,0),GlxUriRole)).value<QString>();
@@ -188,4 +196,17 @@
     }
     }
 
+// -----------------------------------------------------------------------------
+// getSubState 
+// -----------------------------------------------------------------------------
+int GlxTvOutWrapperPrivate::getSubState()
+{
+    int substate = NO_FULLSCREEN_S;
+    QVariant variant = iModel->data( iModel->index(0,0), GlxSubStateRole );    
+    if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
+        substate = variant.value<int>();
+    }
+    return substate;
+}
+
 // End of file
--- a/ui/commandhandlers/bwins/glxcommandhandlerbaseu.def	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/bwins/glxcommandhandlerbaseu.def	Fri May 14 15:52:22 2010 +0300
@@ -1,38 +1,49 @@
 EXPORTS
 	?HandleItemSelectedL@GlxMpxCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 1 NONAME ; void GlxMpxCommandHandler::HandleItemSelectedL(int, int, class MGlxMediaList *)
 	?CreateMediaListAlbumItemL@GlxMpxCommandHandler@@AAEXHHW4TGlxFilterItemType@@@Z @ 2 NONAME ; void GlxMpxCommandHandler::CreateMediaListAlbumItemL(int, int, enum TGlxFilterItemType)
-	??_EGlxCommandHandler@@UAE@I@Z @ 3 NONAME ; GlxCommandHandler::~GlxCommandHandler(unsigned int)
-	??1GlxCommandHandler@@UAE@XZ @ 4 NONAME ; GlxCommandHandler::~GlxCommandHandler(void)
-	?ConfirmationNoteL@GlxMpxCommandHandler@@ABE_NAAVMGlxMediaList@@@Z @ 5 NONAME ; bool GlxMpxCommandHandler::ConfirmationNoteL(class MGlxMediaList &) const
+	?ConfirmationNoteL@GlxMpxCommandHandler@@AAEXAAVMGlxMediaList@@@Z @ 3 NONAME ; void GlxMpxCommandHandler::ConfirmationNoteL(class MGlxMediaList &)
+	??_EGlxCommandHandler@@UAE@I@Z @ 4 NONAME ; GlxCommandHandler::~GlxCommandHandler(unsigned int)
+	??1GlxCommandHandler@@UAE@XZ @ 5 NONAME ; GlxCommandHandler::~GlxCommandHandler(void)
 	?executeCommand@GlxModelCommandHandler@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 6 NONAME ; void GlxModelCommandHandler::executeCommand(int, int, class QList<class QModelIndex>)
-	?CompletionNoteL@GlxMpxCommandHandler@@ABEXXZ @ 7 NONAME ; void GlxMpxCommandHandler::CompletionNoteL(void) const
-	?ProgressTextL@GlxMpxCommandHandler@@MBE?AVQString@@XZ @ 8 NONAME ; class QString GlxMpxCommandHandler::ProgressTextL(void) const
-	?HandleCommandCompleteL@GlxMpxCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 9 NONAME ; void GlxMpxCommandHandler::HandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
-	?TryExitL@GlxMpxCommandHandler@@AAEXH@Z @ 10 NONAME ; void GlxMpxCommandHandler::TryExitL(int)
-	?HandleMediaL@GlxMpxCommandHandler@@MAEXHPAVMGlxMediaList@@@Z @ 11 NONAME ; void GlxMpxCommandHandler::HandleMediaL(int, class MGlxMediaList *)
-	?HandleErrorL@GlxMpxCommandHandler@@MAEXH@Z @ 12 NONAME ; void GlxMpxCommandHandler::HandleErrorL(int)
-	??0GlxModelCommandHandler@@QAE@XZ @ 13 NONAME ; GlxModelCommandHandler::GlxModelCommandHandler(void)
-	?ConfirmationNoteMultipleL@GlxMpxCommandHandler@@ABE_NAAVMGlxMediaList@@@Z @ 14 NONAME ; bool GlxMpxCommandHandler::ConfirmationNoteMultipleL(class MGlxMediaList &) const
-	?CreateMediaListL@GlxMpxCommandHandler@@AAEXHHW4TGlxFilterItemType@@@Z @ 15 NONAME ; void GlxMpxCommandHandler::CreateMediaListL(int, int, enum TGlxFilterItemType)
-	?ConfirmationNoteSingleL@GlxMpxCommandHandler@@ABE_NAAVMGlxMediaList@@@Z @ 16 NONAME ; bool GlxMpxCommandHandler::ConfirmationNoteSingleL(class MGlxMediaList &) const
-	?CompletionTextL@GlxMpxCommandHandler@@MBE?AVQString@@XZ @ 17 NONAME ; class QString GlxMpxCommandHandler::CompletionTextL(void) const
-	?HandleFocusChangedL@GlxMpxCommandHandler@@MAEXW4TFocusChangeType@NGlxListDefs@@HHPAVMGlxMediaList@@@Z @ 18 NONAME ; void GlxMpxCommandHandler::HandleFocusChangedL(enum NGlxListDefs::TFocusChangeType, int, int, class MGlxMediaList *)
-	?HandleAttributesAvailableL@GlxMpxCommandHandler@@MAEXHABV?$RArray@VTMPXAttribute@@@@PAVMGlxMediaList@@@Z @ 19 NONAME ; void GlxMpxCommandHandler::HandleAttributesAvailableL(int, class RArray<class TMPXAttribute> const &, class MGlxMediaList *)
-	?HandleItemRemovedL@GlxMpxCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 20 NONAME ; void GlxMpxCommandHandler::HandleItemRemovedL(int, int, class MGlxMediaList *)
-	?HandleMessageL@GlxMpxCommandHandler@@MAEXABVCMPXMedia@@PAVMGlxMediaList@@@Z @ 21 NONAME ; void GlxMpxCommandHandler::HandleMessageL(class CMPXMedia const &, class MGlxMediaList *)
-	?ProgressNoteL@GlxMpxCommandHandler@@AAEXH@Z @ 22 NONAME ; void GlxMpxCommandHandler::ProgressNoteL(int)
-	?HandleError@GlxMpxCommandHandler@@MAEXH@Z @ 23 NONAME ; void GlxMpxCommandHandler::HandleError(int)
-	??1GlxMpxCommandHandler@@UAE@XZ @ 24 NONAME ; GlxMpxCommandHandler::~GlxMpxCommandHandler(void)
-	??1GlxModelCommandHandler@@UAE@XZ @ 25 NONAME ; GlxModelCommandHandler::~GlxModelCommandHandler(void)
-	?DismissProgressNoteL@GlxMpxCommandHandler@@AAEXXZ @ 26 NONAME ; void GlxMpxCommandHandler::DismissProgressNoteL(void)
-	?HandleItemAddedL@GlxMpxCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 27 NONAME ; void GlxMpxCommandHandler::HandleItemAddedL(int, int, class MGlxMediaList *)
-	?executeCommand@GlxMpxCommandHandler@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 28 NONAME ; void GlxMpxCommandHandler::executeCommand(int, int, class QList<class QModelIndex>)
-	?DoExecuteCommandL@GlxMpxCommandHandler@@MAEXHAAVMGlxMediaList@@AAH@Z @ 29 NONAME ; void GlxMpxCommandHandler::DoExecuteCommandL(int, class MGlxMediaList &, int &)
-	??0GlxCommandHandler@@QAE@XZ @ 30 NONAME ; GlxCommandHandler::GlxCommandHandler(void)
-	?ConfirmationTextL@GlxMpxCommandHandler@@MBE?AVQString@@_N@Z @ 31 NONAME ; class QString GlxMpxCommandHandler::ConfirmationTextL(bool) const
-	??0GlxMpxCommandHandler@@QAE@XZ @ 32 NONAME ; GlxMpxCommandHandler::GlxMpxCommandHandler(void)
-	??_EGlxMpxCommandHandler@@UAE@I@Z @ 33 NONAME ; GlxMpxCommandHandler::~GlxMpxCommandHandler(unsigned int)
-	?HandleItemModifiedL@GlxMpxCommandHandler@@MAEXABV?$RArray@H@@PAVMGlxMediaList@@@Z @ 34 NONAME ; void GlxMpxCommandHandler::HandleItemModifiedL(class RArray<int> const &, class MGlxMediaList *)
-	??_EGlxModelCommandHandler@@UAE@I@Z @ 35 NONAME ; GlxModelCommandHandler::~GlxModelCommandHandler(unsigned int)
-	?DoHandleCommandCompleteL@GlxMpxCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 36 NONAME ; void GlxMpxCommandHandler::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
+	?ConfirmationNoteMultipleL@GlxMpxCommandHandler@@AAEXAAVMGlxMediaList@@@Z @ 7 NONAME ; void GlxMpxCommandHandler::ConfirmationNoteMultipleL(class MGlxMediaList &)
+	?CompletionNoteL@GlxMpxCommandHandler@@ABEXXZ @ 8 NONAME ; void GlxMpxCommandHandler::CompletionNoteL(void) const
+	?trUtf8@GlxMpxCommandHandler@@SA?AVQString@@PBD0@Z @ 9 NONAME ; class QString GlxMpxCommandHandler::trUtf8(char const *, char const *)
+	?tr@GlxMpxCommandHandler@@SA?AVQString@@PBD0@Z @ 10 NONAME ; class QString GlxMpxCommandHandler::tr(char const *, char const *)
+	?getStaticMetaObject@GlxMpxCommandHandler@@SAABUQMetaObject@@XZ @ 11 NONAME ; struct QMetaObject const & GlxMpxCommandHandler::getStaticMetaObject(void)
+	?ProgressTextL@GlxMpxCommandHandler@@MBE?AVQString@@XZ @ 12 NONAME ; class QString GlxMpxCommandHandler::ProgressTextL(void) const
+	?HandleCommandCompleteL@GlxMpxCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 13 NONAME ; void GlxMpxCommandHandler::HandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
+	?metaObject@GlxMpxCommandHandler@@UBEPBUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const * GlxMpxCommandHandler::metaObject(void) const
+	?TryExitL@GlxMpxCommandHandler@@AAEXH@Z @ 15 NONAME ; void GlxMpxCommandHandler::TryExitL(int)
+	?HandleMediaL@GlxMpxCommandHandler@@MAEXHPAVMGlxMediaList@@@Z @ 16 NONAME ; void GlxMpxCommandHandler::HandleMediaL(int, class MGlxMediaList *)
+	?HandleErrorL@GlxMpxCommandHandler@@MAEXH@Z @ 17 NONAME ; void GlxMpxCommandHandler::HandleErrorL(int)
+	??0GlxModelCommandHandler@@QAE@XZ @ 18 NONAME ; GlxModelCommandHandler::GlxModelCommandHandler(void)
+	?CreateMediaListL@GlxMpxCommandHandler@@AAEXHHW4TGlxFilterItemType@@@Z @ 19 NONAME ; void GlxMpxCommandHandler::CreateMediaListL(int, int, enum TGlxFilterItemType)
+	?executeMpxCommand@GlxMpxCommandHandler@@AAEX_N@Z @ 20 NONAME ; void GlxMpxCommandHandler::executeMpxCommand(bool)
+	?ConfirmationNoteSingleL@GlxMpxCommandHandler@@AAEXAAVMGlxMediaList@@@Z @ 21 NONAME ; void GlxMpxCommandHandler::ConfirmationNoteSingleL(class MGlxMediaList &)
+	?CompletionTextL@GlxMpxCommandHandler@@MBE?AVQString@@XZ @ 22 NONAME ; class QString GlxMpxCommandHandler::CompletionTextL(void) const
+	?HandleFocusChangedL@GlxMpxCommandHandler@@MAEXW4TFocusChangeType@NGlxListDefs@@HHPAVMGlxMediaList@@@Z @ 23 NONAME ; void GlxMpxCommandHandler::HandleFocusChangedL(enum NGlxListDefs::TFocusChangeType, int, int, class MGlxMediaList *)
+	?tr@GlxMpxCommandHandler@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString GlxMpxCommandHandler::tr(char const *, char const *, int)
+	?HandleAttributesAvailableL@GlxMpxCommandHandler@@MAEXHABV?$RArray@VTMPXAttribute@@@@PAVMGlxMediaList@@@Z @ 25 NONAME ; void GlxMpxCommandHandler::HandleAttributesAvailableL(int, class RArray<class TMPXAttribute> const &, class MGlxMediaList *)
+	?messageDialogClose@GlxMpxCommandHandler@@QAEXPAVHbAction@@@Z @ 26 NONAME ; void GlxMpxCommandHandler::messageDialogClose(class HbAction *)
+	?HandleItemRemovedL@GlxMpxCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 27 NONAME ; void GlxMpxCommandHandler::HandleItemRemovedL(int, int, class MGlxMediaList *)
+	?HandleMessageL@GlxMpxCommandHandler@@MAEXABVCMPXMedia@@PAVMGlxMediaList@@@Z @ 28 NONAME ; void GlxMpxCommandHandler::HandleMessageL(class CMPXMedia const &, class MGlxMediaList *)
+	?qt_metacall@GlxMpxCommandHandler@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int GlxMpxCommandHandler::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?ProgressNoteL@GlxMpxCommandHandler@@AAEXH@Z @ 30 NONAME ; void GlxMpxCommandHandler::ProgressNoteL(int)
+	?trUtf8@GlxMpxCommandHandler@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxMpxCommandHandler::trUtf8(char const *, char const *, int)
+	?HandleError@GlxMpxCommandHandler@@MAEXH@Z @ 32 NONAME ; void GlxMpxCommandHandler::HandleError(int)
+	??1GlxMpxCommandHandler@@UAE@XZ @ 33 NONAME ; GlxMpxCommandHandler::~GlxMpxCommandHandler(void)
+	??1GlxModelCommandHandler@@UAE@XZ @ 34 NONAME ; GlxModelCommandHandler::~GlxModelCommandHandler(void)
+	?DismissProgressNoteL@GlxMpxCommandHandler@@AAEXXZ @ 35 NONAME ; void GlxMpxCommandHandler::DismissProgressNoteL(void)
+	?HandleItemAddedL@GlxMpxCommandHandler@@MAEXHHPAVMGlxMediaList@@@Z @ 36 NONAME ; void GlxMpxCommandHandler::HandleItemAddedL(int, int, class MGlxMediaList *)
+	?executeCommand@GlxMpxCommandHandler@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 37 NONAME ; void GlxMpxCommandHandler::executeCommand(int, int, class QList<class QModelIndex>)
+	?staticMetaObject@GlxMpxCommandHandler@@2UQMetaObject@@B @ 38 NONAME ; struct QMetaObject const GlxMpxCommandHandler::staticMetaObject
+	?DoExecuteCommandL@GlxMpxCommandHandler@@MAEXHAAVMGlxMediaList@@AAH@Z @ 39 NONAME ; void GlxMpxCommandHandler::DoExecuteCommandL(int, class MGlxMediaList &, int &)
+	??0GlxCommandHandler@@QAE@XZ @ 40 NONAME ; GlxCommandHandler::GlxCommandHandler(void)
+	?qt_metacast@GlxMpxCommandHandler@@UAEPAXPBD@Z @ 41 NONAME ; void * GlxMpxCommandHandler::qt_metacast(char const *)
+	?ConfirmationTextL@GlxMpxCommandHandler@@MBE?AVQString@@_N@Z @ 42 NONAME ; class QString GlxMpxCommandHandler::ConfirmationTextL(bool) const
+	??0GlxMpxCommandHandler@@QAE@XZ @ 43 NONAME ; GlxMpxCommandHandler::GlxMpxCommandHandler(void)
+	??_EGlxMpxCommandHandler@@UAE@I@Z @ 44 NONAME ; GlxMpxCommandHandler::~GlxMpxCommandHandler(unsigned int)
+	?HandleItemModifiedL@GlxMpxCommandHandler@@MAEXABV?$RArray@H@@PAVMGlxMediaList@@@Z @ 45 NONAME ; void GlxMpxCommandHandler::HandleItemModifiedL(class RArray<int> const &, class MGlxMediaList *)
+	??_EGlxModelCommandHandler@@UAE@I@Z @ 46 NONAME ; GlxModelCommandHandler::~GlxModelCommandHandler(unsigned int)
+	?DoHandleCommandCompleteL@GlxMpxCommandHandler@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 47 NONAME ; void GlxMpxCommandHandler::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
 
--- a/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def	Fri May 14 15:52:22 2010 +0300
@@ -4,73 +4,63 @@
 	?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 3 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>)
 	?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 4 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 5 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const
-	??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 6 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void)
-	?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void)
-	?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 8 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short)
-	?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 9 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const
-	??_EGlxCommandHandlerSend@@UAE@I@Z @ 10 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int)
-	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *)
-	?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 12 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int)
-	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int)
-	?trUtf8@GlxCommandHandlerAddToContainer@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxCommandHandlerAddToContainer::trUtf8(char const *, char const *)
-	?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 15 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &)
-	?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const
-	?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 17 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 18 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 19 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const
-	?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 20 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
-	?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 21 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const
-	??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 22 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void)
-	?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 23 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *)
-	?qt_metacall@GlxCommandHandlerAddToContainer@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 24 NONAME ; int GlxCommandHandlerAddToContainer::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0GlxCommandHandlerRename@@QAE@XZ @ 6 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void)
+	??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 7 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void)
+	?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void)
+	?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 9 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short)
+	?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 10 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const
+	??_EGlxCommandHandlerSend@@UAE@I@Z @ 11 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int)
+	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *)
+	?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 13 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int)
+	?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 14 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const
+	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int)
+	?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 16 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &)
+	?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const
+	?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 18 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 19 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 20 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const
+	?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 21 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
+	?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 22 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const
+	??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 23 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void)
+	?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 24 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *)
 	??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 25 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void)
 	?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 26 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *)
-	?tr@GlxCommandHandlerAddToContainer@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString GlxCommandHandlerAddToContainer::tr(char const *, char const *)
-	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 28 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *)
-	?metaObject@GlxCommandHandlerAddToContainer@@UBEPBUQMetaObject@@XZ @ 29 NONAME ; struct QMetaObject const * GlxCommandHandlerAddToContainer::metaObject(void) const
-	?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 30 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void)
-	??1GlxCommandHandlerRotate@@UAE@XZ @ 31 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void)
+	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *)
+	?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 28 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const
+	?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 29 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void)
+	??1GlxCommandHandlerRotate@@UAE@XZ @ 30 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void)
+	?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 31 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const
 	??1GlxCommandHandlerNewMedia@@UAE@XZ @ 32 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void)
 	??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 33 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int)
 	?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 34 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const
 	??_EGlxCommandHandlerDelete@@UAE@I@Z @ 35 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int)
 	?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 36 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const
-	?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 37 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject
-	??0GlxCommandHandlerDelete@@QAE@XZ @ 38 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void)
+	?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 37 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const
+	?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 38 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject
 	?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 39 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void)
-	??0GlxCommandHandlerSend@@QAE@XZ @ 40 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void)
-	?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 41 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int)
-	??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 42 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void)
-	?getStaticMetaObject@GlxCommandHandlerAddToContainer@@SAABUQMetaObject@@XZ @ 43 NONAME ; struct QMetaObject const & GlxCommandHandlerAddToContainer::getStaticMetaObject(void)
-	??_EGlxCommandHandlerRotate@@UAE@I@Z @ 44 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int)
-	?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 45 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const
-	??1GlxCommandHandlerSend@@UAE@XZ @ 46 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void)
-	?tr@GlxCommandHandlerAddToContainer@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxCommandHandlerAddToContainer::tr(char const *, char const *, int)
-	?GetSelectionList@GlxCommandHandlerAddToContainer@@QBE?AV?$QList@VQModelIndex@@@@PAVGlxAlbumModel@@PA_N@Z @ 48 NONAME ; class QList<class QModelIndex> GlxCommandHandlerAddToContainer::GetSelectionList(class GlxAlbumModel *, bool *) const
-	?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 49 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const
-	??0GlxCommandHandlerNewMedia@@QAE@XZ @ 50 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void)
-	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 51 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int)
-	?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 52 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
-	??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 53 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int)
-	?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 54 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const
-	?staticMetaObject@GlxCommandHandlerAddToContainer@@2UQMetaObject@@B @ 55 NONAME ; struct QMetaObject const GlxCommandHandlerAddToContainer::staticMetaObject
+	??0GlxCommandHandlerDelete@@QAE@XZ @ 40 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void)
+	??1GlxCommandHandlerRename@@UAE@XZ @ 41 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void)
+	??0GlxCommandHandlerSend@@QAE@XZ @ 42 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void)
+	?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 43 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int)
+	??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 44 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void)
+	??_EGlxCommandHandlerRename@@UAE@I@Z @ 45 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int)
+	?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 46 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int)
+	??_EGlxCommandHandlerRotate@@UAE@I@Z @ 47 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int)
+	?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 48 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const
+	??1GlxCommandHandlerSend@@UAE@XZ @ 49 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void)
+	?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 50 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const
+	??0GlxCommandHandlerNewMedia@@QAE@XZ @ 51 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void)
+	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 52 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int)
+	?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 53 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
+	??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 54 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int)
+	?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 55 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const
 	?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 56 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &)
-	?createNewMedia@GlxCommandHandlerAddToContainer@@AAEXXZ @ 57 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void)
-	?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 58 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?trUtf8@GlxCommandHandlerAddToContainer@@SA?AVQString@@PBD0H@Z @ 59 NONAME ; class QString GlxCommandHandlerAddToContainer::trUtf8(char const *, char const *, int)
-	?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 60 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const
-	?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 61 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 62 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short)
-	?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 63 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>)
-	?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 64 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const
-	??1GlxCommandHandlerDelete@@UAE@XZ @ 65 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void)
-	??0GlxCommandHandlerRotate@@QAE@XZ @ 66 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void)
-	?qt_metacast@GlxCommandHandlerAddToContainer@@UAEPAXPBD@Z @ 67 NONAME ; void * GlxCommandHandlerAddToContainer::qt_metacast(char const *)
-	??0GlxCommandHandlerRename@@QAE@XZ @ 68 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void)
-	?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 69 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const
-	?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 70 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 71 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const
-	??1GlxCommandHandlerRename@@UAE@XZ @ 72 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void)
-	??_EGlxCommandHandlerRename@@UAE@I@Z @ 73 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int)
-	?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 74 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int)
+	?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 57 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 58 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const
+	?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 59 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 60 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short)
+	?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 61 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>)
+	?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 62 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const
+	??1GlxCommandHandlerDelete@@UAE@XZ @ 63 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void)
+	??0GlxCommandHandlerRotate@@QAE@XZ @ 64 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void)
 
--- a/ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/commandhandlerbase.pro	Fri May 14 15:52:22 2010 +0300
@@ -48,7 +48,12 @@
 }
 
 # Input
-HEADERS += inc/glxcommandhandler.h  inc/glxmpxcommandhandler.h inc/glxmodelcommandhandler.h
-SOURCES += src/glxcommandhandler.cpp src/glxmpxcommandhandler.cpp src/glxmodelcommandhandler.cpp
+HEADERS += inc/glxcommandhandler.h
+HEADERS += inc/glxmpxcommandhandler.h
+HEADERS += inc/glxmodelcommandhandler.h
+
+SOURCES += src/glxcommandhandler.cpp
+SOURCES += src/glxmpxcommandhandler.cpp
+SOURCES += src/glxmodelcommandhandler.cpp
 
 DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
--- a/ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h	Fri May 14 15:52:22 2010 +0300
@@ -35,4 +35,4 @@
     virtual void executeCommand(int commandId,int collectionId ,QList<QModelIndex> indexList = QList<QModelIndex>() ) = 0;
     
 };
-#endif //GLXCOMMANDHANDLER_H
\ No newline at end of file
+#endif //GLXCOMMANDHANDLER_H
--- a/ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h	Fri May 14 15:52:22 2010 +0300
@@ -30,14 +30,19 @@
 #endif
 class MGlxMediaList;
 class HbProgressDialog;
+class HbAction;
 
 class GLX_COMMANDHANDLERBASE_EXPORT GlxMpxCommandHandler : public GlxCommandHandler, public MGlxMediaListObserver
 {
+Q_OBJECT    
 public:
     GlxMpxCommandHandler();
     virtual ~GlxMpxCommandHandler();
     virtual void executeCommand(int commandId,int collectionId,QList<QModelIndex> indexList = QList<QModelIndex>() );
 
+public slots:
+    void messageDialogClose(HbAction* action);
+
 protected: // From MGlxMediaListObserver    
     /// See @ref MGlxMediaListObserver::HandleItemAddedL
     void HandleItemAddedL(TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList);
@@ -81,19 +86,21 @@
 	virtual QString ProgressTextL() const;        
     virtual QString ConfirmationTextL(bool multiSelection = false) const; 
 private: 
-    bool ConfirmationNoteL(MGlxMediaList& aMediaList) const;
-    bool ConfirmationNoteSingleL(MGlxMediaList& aMediaList) const;
-    bool ConfirmationNoteMultipleL(MGlxMediaList& aMediaList) const;
+    void ConfirmationNoteL(MGlxMediaList& aMediaList);
+    void ConfirmationNoteSingleL(MGlxMediaList& aMediaList) ;
+    void ConfirmationNoteMultipleL(MGlxMediaList& aMediaList) ;
 	void ProgressNoteL(TInt aCommandId);
 	void DismissProgressNoteL();
 	void CompletionNoteL() const;
     void TryExitL(TInt aErrorCode);
     void CreateMediaListL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType) ;
     void CreateMediaListAlbumItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType);
+    void executeMpxCommand(bool execute);
 private:
     // Instance of Media List
     MGlxMediaList* iMediaList;
 	TBool iProgressComplete;
 	HbProgressDialog* mProgressDialog;
+	int mCommandId;
 };
-#endif //GLXMPXCOMMANDHANDLER_H
\ No newline at end of file
+#endif //GLXMPXCOMMANDHANDLER_H
--- a/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp	Fri May 14 15:52:22 2010 +0300
@@ -22,7 +22,6 @@
 #include <glxfilterfactory.h>
 #include <glxcollectionpluginall.hrh>
 #include <mglxmedialist.h>
-#include <glxcommandfactory.h>
 #include <glxmpxcommandhandler.h>
 #include <glxfetchcontextremover.h>
 #include <glxmedialistiterator.h>
@@ -40,6 +39,8 @@
 #include "glxmpxcommandhandlerTraces.h"
 #endif
 
+#include <hbaction.h>
+
 GlxMpxCommandHandler::GlxMpxCommandHandler() :
     iProgressComplete(EFalse)
     {
@@ -66,7 +67,6 @@
     int aHierarchyId = 0;
     TGlxFilterItemType aFilterType = EGlxFilterImage;
 
-    //CreateMediaListL(aCollectionId, aHierarchyId,aFilterType);
     if (collectionId != KGlxAlbumsMediaId)
         {
         OstTrace0( TRACE_NORMAL, DUP2_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListL" );
@@ -81,27 +81,38 @@
 
     TBool consume = ETrue;
     iProgressComplete = EFalse;
+    mProgressDialog = NULL;
     //Execute Command 
     DoExecuteCommandL(commandId, *iMediaList, consume);
-    //Create MPX command if any
-    consume = ConfirmationNoteL(*iMediaList);
-    if(consume)
+    mCommandId = commandId;
+    ConfirmationNoteL(*iMediaList);
+    OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_EXECUTECOMMAND_EXIT );
+    }
+
+void GlxMpxCommandHandler::executeMpxCommand(bool execute)
+    {
+    if(execute && !iMediaList->IsCommandActive())            
         {
-        CMPXCommand* command = CreateCommandL(commandId, *iMediaList, consume);
+        TBool consume = ETrue;
+        CMPXCommand* command = CreateCommandL(mCommandId, *iMediaList, consume);
         if (command)
             {
             command->SetTObjectValueL<TAny*> (KMPXCommandGeneralSessionId,
                     static_cast<TAny*> (this));
             iMediaList->AddMediaListObserverL(this);
             iMediaList->CommandL(*command);
-            ProgressNoteL(commandId);
+            
+            if(iMediaList->SelectionCount() > 1)
+                {
+                 ProgressNoteL(mCommandId);
+                }
             }
         }
     else //command cancelled,so unmark all items
         {
         MGlxMediaList::UnmarkAllL(*iMediaList);
         }
-    OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_EXECUTECOMMAND_EXIT );
+    
     }
 
 // ---------------------------------------------------------------------------
@@ -347,6 +358,7 @@
         DismissProgressNoteL();
         iMediaList->RemoveMediaListObserver(this);
         CompletionNoteL();
+        iProgressComplete = EFalse;
         }
     OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_TRYEXITL_EXIT );
     }
@@ -394,18 +406,20 @@
     {
     mProgressDialog = new HbProgressDialog(HbProgressDialog::WaitDialog);
     mProgressDialog->setText(ProgressTextL());
-    mProgressDialog->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
     mProgressDialog->show();
     }
 
 void GlxMpxCommandHandler::DismissProgressNoteL()
     {
-    mProgressDialog->close();
-    delete mProgressDialog;
-    mProgressDialog = NULL;
+    if(mProgressDialog)
+        {
+        mProgressDialog->close();
+        delete mProgressDialog;
+        mProgressDialog = NULL;
+        }
     }
 
-bool GlxMpxCommandHandler::ConfirmationNoteL(MGlxMediaList& aMediaList) const
+void GlxMpxCommandHandler::ConfirmationNoteL(MGlxMediaList& aMediaList)
     {
 	TInt selectionCount = aMediaList.SelectionCount();
 
@@ -418,23 +432,18 @@
 		}
 	
     // Show confirmation note
-	bool confirmed = true;
 	if ( selectionCount == 1 )
 	    {
-		confirmed = ConfirmationNoteSingleL(aMediaList);
+		ConfirmationNoteSingleL(aMediaList);
 	    }
 	else
 	    {
-		confirmed = ConfirmationNoteMultipleL(aMediaList);
+		ConfirmationNoteMultipleL(aMediaList);
 	    }
-		
-	return confirmed;
     }
 
-bool GlxMpxCommandHandler::ConfirmationNoteSingleL(MGlxMediaList& aMediaList) const
+void GlxMpxCommandHandler::ConfirmationNoteSingleL(MGlxMediaList& aMediaList)
     {
-    bool confirmAction = true;
-
     QString qtText = ConfirmationTextL();
     
     if(!qtText.isEmpty ())
@@ -472,46 +481,41 @@
             qtText.append(QString("%1").arg(qtItemName));
             }
             // (else) If error, assume confirmed anyway
-            	
-            CleanupStack::PopAndDestroy(attributeContext);
-        
-        HbMessageBox box(HbMessageBox::MessageTypeQuestion);
-        box.setDismissPolicy(HbDialog::NoDismiss);
+        CleanupStack::PopAndDestroy(attributeContext);
+        HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*)));  
+        }
+    else{
+        executeMpxCommand(true);
+        }
+    }
 
-        // Set timeout to zero to wait user to either click Ok or Cancel
-        box.setTimeout(HbDialog::NoTimeout);
-        
-        box.setText(qtText);
-        HbAction *action = box.exec();
-        if(action != box.primaryAction())
-            {
-            confirmAction = false;
-            }
-        }    
-    return confirmAction;
-    }
-    
-bool GlxMpxCommandHandler::ConfirmationNoteMultipleL(MGlxMediaList& /*aMediaList*/) const
+void GlxMpxCommandHandler::ConfirmationNoteMultipleL(MGlxMediaList& /*aMediaList*/)
     {
-    bool confirmAction = true;
-
     QString qtText = ConfirmationTextL(true);
     if(!qtText.isEmpty ())
         {
-        HbMessageBox box(HbMessageBox::MessageTypeQuestion);
-        box.setDismissPolicy(HbDialog::NoDismiss);
-        // Set timeout to zero to wait user to either click Ok or Cancel
-        box.setTimeout(HbDialog::NoTimeout);
-        box.setText(qtText);
-        HbAction *action = box.exec();
-        if(action != box.primaryAction())
-            {
-            confirmAction = false;
-            }
+        HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*)));
         }    
-    return confirmAction;
+    else{
+        executeMpxCommand(true);
+        }
     }
-    
+
+void GlxMpxCommandHandler::messageDialogClose(HbAction* action)
+    {
+    HbMessageBox *dlg = static_cast<HbMessageBox*>(sender());
+    if(action == dlg->actions().at(0)) 
+        {
+        executeMpxCommand(true);
+        }
+    else
+        {
+        // Cancellation is done.
+        executeMpxCommand(false);
+        }
+    }
+
+
 QString GlxMpxCommandHandler::ConfirmationTextL(bool /*multiSelection */) const
     {
     return QString();
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Fri May 14 15:52:22 2010 +0300
@@ -33,38 +33,47 @@
 class QGraphicsGridLayout;
 class GlxAlbumModel;
 class QGraphicsItem;
+class HbDialog;
+class QItemSelectionModel;
+class QEventLoop;
 
 class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerAddToContainer : public GlxMpxCommandHandler
-	{
-	Q_OBJECT    
+{
+  
 public:
     GlxCommandHandlerAddToContainer();
     ~GlxCommandHandlerAddToContainer();
     CMPXCommand* CreateCommandL(TInt aCommandId, MGlxMediaList& aMediaList, TBool& aConsume) const ;
-    QModelIndexList GetSelectionList(GlxAlbumModel *model,bool *ok = 0) const;
 
 private:
     QString CompletionTextL() const;
     QString ProgressTextL() const; 
+    void createNewMedia() const;
+
 private:
     static TInt iSelectionCount;
     mutable bool mNewMediaAdded ;
     mutable CMPXCollectionPath* mTargetContainers ;
+};
 
-private slots:    
-	void createNewMedia();
-	};
-
-class GlxQueryContentWidget :public QGraphicsWidget
+class GlxAlbumSelectionPopup: public QObject
 {
-	Q_OBJECT
+    Q_OBJECT
+
 public:
-    HbPushButton* mButton;
-    HbListView* mListView;
-    QGraphicsGridLayout *mGrid;
-    GlxQueryContentWidget(QGraphicsItem* parent = 0);
-    ~GlxQueryContentWidget();
+    GlxAlbumSelectionPopup();
+    ~GlxAlbumSelectionPopup();
+    QModelIndexList GetSelectionList(GlxAlbumModel *model,bool *ok = 0) ;
+    
+private slots:
+    void changeButtonText();
+    void dialogClosed( HbAction *action ) ;
+    
+private :
+    HbDialog* mPopupDlg;
+    QItemSelectionModel * mSelectionModel; //no owner ship
+    QEventLoop *mEventLoop;
+    bool mResult;        
 };
     
-    
 #endif // GLXCOMMANDHANDLERADDTOCONTAINER_H
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommondialogs.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommondialogs.h	Fri May 14 15:52:22 2010 +0300
@@ -19,8 +19,9 @@
 #define GLXCOMMONDIALOGS_H
 
 #include <QObject>
+#include <hbinputdialog.h>
 
-#include <hbinputdialog.h>
+class QEventLoop;
 
 class GlxTextInputDialog : public QObject
 {
@@ -32,9 +33,12 @@
 
 public slots:
     void textChanged(const QString &text);
+    void dialogClosed(HbAction *action);
 
 private:
     HbInputDialog* mDialog;
+    QEventLoop *mEventLoop;
+    bool mResult;
 };
 
 #endif // GLXCOMMONDIALOGS_H
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Fri May 14 15:52:22 2010 +0300
@@ -29,6 +29,7 @@
 #include <glxcollectionpluginalbums.hrh>
 #include <glxmodelparm.h>
 #include <glxfilterfactory.h>
+#include <QEventLoop>
 
 #include <hblistwidget.h>
 #include <hbview.h>
@@ -37,6 +38,7 @@
 #include <hbdialog.h>
 #include <hbmessagebox.h>
 
+#include <glxcommandhandlers.hrh>
 #include "glxlocalisationstrings.h"
 
 #include "OstTraceDefinitions.h"
@@ -50,32 +52,88 @@
 const TInt KSelectionPopupListHierarchy = 5;
 const TInt KListPrefferedHeight = 400;
 
-GlxQueryContentWidget::GlxQueryContentWidget(QGraphicsItem* parent) :
-    QGraphicsWidget(parent), mButton(0), mListView(0), mGrid(0)
-    {
-    OstTraceFunctionEntry0( DUP1_GLXQUERYCONTENTWIDGET_GLXQUERYCONTENTWIDGET_ENTRY );
-    mGrid = new QGraphicsGridLayout;
-    mGrid->setContentsMargins(0, 0, 0, 0);
+GlxAlbumSelectionPopup::GlxAlbumSelectionPopup() 
+    : mPopupDlg( 0 ), 
+      mSelectionModel( 0 ),
+      mEventLoop( 0 ),
+      mResult( false )
+{
+}
+
+GlxAlbumSelectionPopup::~GlxAlbumSelectionPopup()
+{
+}
 
-    mButton = new HbPushButton("New Item");
-    mListView = new HbListView(this);
-    mListView->setSelectionMode(HbAbstractItemView::MultiSelection);
-    mListView->setPreferredHeight(KListPrefferedHeight);
+QModelIndexList GlxAlbumSelectionPopup::GetSelectionList(GlxAlbumModel *model, bool *ok) 
+{
+    // Create a popup
+    HbDialog popup;
+    QEventLoop eventLoop;
+    mEventLoop = &eventLoop;
+    
+    popup.setPreferredHeight( KListPrefferedHeight );
+    // Set dismiss policy that determines what tap events will cause the popup
+    // to be dismissed
+    popup.setDismissPolicy(HbDialog::NoDismiss);
+
+    // Set timeout to zero to wait user to either click Ok or Cancel
+    popup.setTimeout(HbDialog::NoTimeout);
+    popup.setHeadingWidget( new HbLabel("Select Album") );      
+    
+    mPopupDlg = &popup;
+    HbListView *listview = new HbListView();
+    listview->setSelectionMode(HbAbstractItemView::MultiSelection);
+    listview->setModel(model);
+    mSelectionModel = listview->selectionModel() ;
+    connect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) );
+    
+    HbAction *primary = new HbAction( "New" );
+    popup.addAction( primary ) ;
 
-    mGrid->addItem(mButton, 0, 0);
-    mGrid->addItem(mListView, 1, 0);
-    setLayout(mGrid); //ownership transfered
+    HbAction *secondary = new HbAction( GLX_BUTTON_CANCEL );
+    popup.addAction( secondary );
+    
+    popup.setContentWidget( listview ); //ownership transfer
+    listview->show();
+    
+    popup.open( this, SLOT( dialogClosed( HbAction* ) ) ); 
+    eventLoop.exec( );
+    mEventLoop = 0 ;
+    if ( ok ) {
+        *ok = mResult ;
+    }
+    QModelIndexList selectedIndexes = mSelectionModel->selectedIndexes();       
+    disconnect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) );
+    delete primary;
+    delete secondary;
 
-    OstTraceFunctionExit0( DUP1_GLXQUERYCONTENTWIDGET_GLXQUERYCONTENTWIDGET_EXIT );
-    }
+    return selectedIndexes;
+}
 
-GlxQueryContentWidget::~GlxQueryContentWidget()
-    {
-    OstTraceFunctionEntry0( GLXQUERYCONTENTWIDGET_GLXQUERYCONTENTWIDGET_ENTRY );
-    delete mListView;
-    delete mButton;
-    OstTraceFunctionExit0( GLXQUERYCONTENTWIDGET_GLXQUERYCONTENTWIDGET_EXIT );
+void GlxAlbumSelectionPopup::changeButtonText()
+{
+    if ( mSelectionModel->selectedIndexes().count() ) {
+        mPopupDlg->actions().first()->setText( GLX_BUTTON_OK );
     }
+    else {
+        mPopupDlg->actions().first()->setText("New");
+    }    
+}
+
+
+void GlxAlbumSelectionPopup::dialogClosed(HbAction *action)
+{
+    HbDialog *dlg = static_cast<HbDialog*>(sender());
+    if( action == dlg->actions().first() ) {
+        mResult = true ;
+    }
+    else {
+        mResult = false ;
+    }
+    if ( mEventLoop && mEventLoop->isRunning( ) ) {
+        mEventLoop->exit( 0 );
+    }
+}
 
 GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer() :
     mNewMediaAdded(false)
@@ -92,147 +150,111 @@
     OstTraceFunctionExit0( DUP1_GLXCOMMANDHANDLERADDTOCONTAINER_GLXCOMMANDHANDLERADDTOCONTAINER_EXIT );
     }
 
-CMPXCommand* GlxCommandHandlerAddToContainer::CreateCommandL(TInt /*aCommandId*/,
+CMPXCommand* GlxCommandHandlerAddToContainer::CreateCommandL(TInt aCommandId,
         MGlxMediaList& aMediaList, TBool& /*aConsume*/) const
     {
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL_ENTRY );
     iSelectionCount = 0;
-
-    CMPXCollectionPath* sourceItems = aMediaList.PathLC(
-            NGlxListDefs::EPathFocusOrSelection);
-    bool ok = false;
-
-    //create target medialist
-    CMPXCollectionPath* path = CMPXCollectionPath::NewL();
-    CleanupStack::PushL(path);
-    path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
-
-    CMPXFilter* filter =
-            TGlxFilterFactory::CreateCameraAlbumExclusionFilterL();
-    CleanupStack::PushL(filter);
-
-    // Create the media list
-    MGlxMediaList* targetMediaList = MGlxMediaList::InstanceL(*path,
-            TGlxHierarchyId(KSelectionPopupListHierarchy), filter); //todo take actual hierarchy 
-    CleanupStack::PopAndDestroy(filter);
-    CleanupStack::PopAndDestroy(path);
-
-    //create target model
-    GlxModelParm modelParm(KGlxCollectionPluginAlbumsImplementationUid,
-            KSelectionPopupListHierarchy, EGlxFilterExcludeCamera);
-    GlxAlbumModel *albumMediaModel = new GlxAlbumModel(modelParm);
-    albumMediaModel->setData(QModelIndex(), (int) GlxContextSelectionList,
-            GlxContextRole);
+    CMPXCommand* command = NULL;
 
-    QModelIndexList modelList = GetSelectionList(albumMediaModel, &ok);
-
-    CMPXCommand* command = NULL;
-    OstTraceExt2( TRACE_NORMAL, GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL, "GlxCommandHandlerAddToContainer::CreateCommandL;ok=%d;newMedia=%d", ok, mNewMediaAdded );
-
-    if (ok || mNewMediaAdded)
+    if(aCommandId == EGlxCmdAddToFav)
         {
-        int count = modelList.count();
-
-        for (int i = 0; i < count; i++)
-            {
-            albumMediaModel->setData(modelList[i], modelList[i].row(),
-                    GlxSelectedIndexRole);
-            }
-
-        if (!mNewMediaAdded)
-            {
-            CMPXCollectionPath* targetContainers = targetMediaList->PathLC(
-                    NGlxListDefs::EPathFocusOrSelection);
-            CleanupStack::Pop(targetContainers);
-            delete mTargetContainers;
-            mTargetContainers = NULL;
-            mTargetContainers = targetContainers;
-            }
-
-        command = TGlxCommandFactory::AddToContainerCommandLC(*sourceItems,
-                *mTargetContainers);
-        CleanupStack::Pop(command);
-        mNewMediaAdded = false;
+           CMPXCollectionPath* targetCollection = CMPXCollectionPath::NewL();
+           CleanupStack::PushL(targetCollection);
+           // The target collection has to be appeneded with the albums plugin id
+           targetCollection->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
+           // The target collection has also to be appeneded with the the relation id.
+           // appending another level into the albums to get favourites and 1 is the relation id of albums
+           targetCollection->AppendL( TMPXItemId(KGlxCollectionFavoritesId) );
+           targetCollection->Set( 0 );
+    
+           CMPXCollectionPath* sourceItems = aMediaList.PathLC( NGlxListDefs::EPathFocusOrSelection );
+      
+           command = TGlxCommandFactory::AddToContainerCommandLC(
+               *sourceItems, *targetCollection);
+           CleanupStack::Pop(command); 
+           
+           CleanupStack::PopAndDestroy(sourceItems);
+           CleanupStack::PopAndDestroy(targetCollection);
         }
     else
         {
-        MGlxMediaList::UnmarkAllL(aMediaList);
+
+            CMPXCollectionPath* sourceItems = aMediaList.PathLC(
+            NGlxListDefs::EPathFocusOrSelection);
+            bool ok = false;
+        
+            //create target medialist
+            CMPXCollectionPath* path = CMPXCollectionPath::NewL();
+            CleanupStack::PushL(path);
+            path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
+        
+            CMPXFilter* filter =
+            TGlxFilterFactory::CreateCameraAlbumExclusionFilterL();
+            CleanupStack::PushL(filter);
+    
+            // Create the media list
+            MGlxMediaList* targetMediaList = MGlxMediaList::InstanceL(*path,
+                    TGlxHierarchyId(KSelectionPopupListHierarchy), filter); //todo take actual hierarchy 
+            CleanupStack::PopAndDestroy(filter);
+            CleanupStack::PopAndDestroy(path);
+    
+            //create target model
+            GlxModelParm modelParm(KGlxCollectionPluginAlbumsImplementationUid,
+                    KSelectionPopupListHierarchy, EGlxFilterExcludeCamera);
+            GlxAlbumModel *albumMediaModel = new GlxAlbumModel(modelParm);
+            albumMediaModel->setData(QModelIndex(), (int) GlxContextSelectionList,
+                    GlxContextRole);
+    
+            GlxAlbumSelectionPopup popupWidget;
+            QModelIndexList modelList = popupWidget.GetSelectionList(albumMediaModel, &ok);
+            if(ok && modelList.count() == 0)
+            {
+                createNewMedia();
+                ok = false;        
+            }    
+            OstTraceExt2( TRACE_NORMAL, GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL, "GlxCommandHandlerAddToContainer::CreateCommandL;ok=%d;newMedia=%d", ok, mNewMediaAdded );
+    
+            if (ok || mNewMediaAdded)
+                {
+                int count = modelList.count();
+    
+                for (int i = 0; i < count; i++)
+                    {
+                    albumMediaModel->setData(modelList[i], modelList[i].row(),
+                            GlxSelectedIndexRole);
+                    }
+    
+                if (!mNewMediaAdded)
+                    {
+                    CMPXCollectionPath* targetContainers = targetMediaList->PathLC(
+                            NGlxListDefs::EPathFocusOrSelection);
+                    CleanupStack::Pop(targetContainers);
+                    delete mTargetContainers;
+                    mTargetContainers = NULL;
+                    mTargetContainers = targetContainers;
+                    }
+    
+                command = TGlxCommandFactory::AddToContainerCommandLC(*sourceItems,
+                        *mTargetContainers);
+                CleanupStack::Pop(command);
+                mNewMediaAdded = false;
+                }
+            else
+                {
+                MGlxMediaList::UnmarkAllL(aMediaList);
+                }
+    
+            MGlxMediaList::UnmarkAllL(*targetMediaList);
+            targetMediaList->Close();
+            CleanupStack::PopAndDestroy(sourceItems);
+            delete albumMediaModel;
         }
-
-    MGlxMediaList::UnmarkAllL(*targetMediaList);
-    targetMediaList->Close();
-    CleanupStack::PopAndDestroy(sourceItems);
-    delete albumMediaModel;
     OstTraceFunctionExit0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL_EXIT );
     return command;
     }
-
-QModelIndexList GlxCommandHandlerAddToContainer::GetSelectionList(
-        GlxAlbumModel *model, bool *ok) const
-    {
-    OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_GETSELECTIONLIST_ENTRY );
-    // Create a popup
-    HbDialog popup;
-    popup.setPreferredHeight(400);
-    // Set dismiss policy that determines what tap events will cause the popup
-    // to be dismissed
-    popup.setDismissPolicy(HbDialog::NoDismiss);
-
-    // Set timeout to zero to wait user to either click Ok or Cancel
-    popup.setTimeout(HbDialog::NoTimeout);
-    popup.setHeadingWidget(new HbLabel("Selection List"));
-
-    GlxQueryContentWidget* view = new GlxQueryContentWidget();
-    view->mListView->setModel(model);
-
-    connect(view->mButton, SIGNAL(released ()), &popup, SLOT(close()));
-    connect(view->mButton, SIGNAL(released ()), this, SLOT(createNewMedia()));
-
-
-    HbAction *primary = new HbAction(GLX_BUTTON_OK);
-    popup.setPrimaryAction(primary);
-
-    HbAction *secondary = new HbAction(GLX_BUTTON_CANCEL);
-    popup.setSecondaryAction(secondary);
-    
-    popup.setContentWidget(view); //ownership transfer
-    view->mListView->show();
-    
-    QModelIndexList selectedIndexes;
-
-    do
-        {
-        HbAction* action = popup.exec();
-        if (action == popup.primaryAction())
-            {
-            *ok = true;
-            }
-        else
-            {
-            *ok = false;
-            }
-        OstTrace1( TRACE_NORMAL, GLXCOMMANDHANDLERADDTOCONTAINER_GETSELECTIONLIST, "GlxCommandHandlerAddToContainer::GetSelectionList;ok=%d", *ok );
-
-
-        if (*ok)
-            {
-            GlxQueryContentWidget* cWidget = qobject_cast<
-                    GlxQueryContentWidget*> (popup.contentWidget());
-            QItemSelectionModel* selModel =
-                    cWidget->mListView->selectionModel();
-            selectedIndexes = selModel->selectedIndexes();
-            }
-        }
-    while (*ok && selectedIndexes.count() == 0); //continue until user select one album list or new item
-
-    delete primary;
-    delete secondary;
-
-    OstTraceFunctionExit0( GLXCOMMANDHANDLERADDTOCONTAINER_GETSELECTIONLIST_EXIT );
-    return selectedIndexes;
-    }
-
-void GlxCommandHandlerAddToContainer::createNewMedia()
+  
+void GlxCommandHandlerAddToContainer::createNewMedia() const
     {
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATENEWMEDIA_ENTRY );
     GlxCommandHandlerNewMedia* commandHandlerNewMedia =
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Fri May 14 15:52:22 2010 +0300
@@ -61,17 +61,6 @@
     CMPXCollectionPath* path = aMediaList.PathLC(NGlxListDefs::EPathParent);
     CMPXCommand* command = NULL;
    
-
-    _LIT(KName, "TEST");
-    HBufC* newMediaItemTitle = HBufC::NewL(40);
-    TPtr newMediaItemTitleDes = newMediaItemTitle->Des();
-    newMediaItemTitleDes.Append(KName);
-
-
-    delete iNewMediaItemTitle;
-    iNewMediaItemTitle = NULL;
-    iNewMediaItemTitle = newMediaItemTitle;
-
     QString title("NEW MEDIA");
     QString mainPane = GenerateNewMediaItemTitleL("Album",aMediaList);
     bool ok = false;
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp	Fri May 14 15:52:22 2010 +0300
@@ -19,6 +19,8 @@
 #include <mglxmedialist.h>
 #include <glxcommandfactory.h>
 #include <glxcommandhandlerremovefrom.h>
+#include <glxcollectionpluginalbums.hrh>
+#include <glxcommandhandlers.hrh>
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "glxcommandhandlerremovefromTraces.h"
@@ -43,11 +45,22 @@
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERREMOVEFROM_CREATECOMMANDL_ENTRY );
     Q_UNUSED(aCommandId);
     Q_UNUSED(aConsume);
-    CMPXCollectionPath* path = aMediaList.PathLC(
-            NGlxListDefs::EPathFocusOrSelection);
 
-    CMPXCommand* command = TGlxCommandFactory::RemoveFromContainerCommandLC(
-            *path);
+    CMPXCommand* command = NULL;
+    CMPXCollectionPath* path = aMediaList.PathLC(
+             NGlxListDefs::EPathFocusOrSelection);
+           
+    if(aCommandId == EGlxCmdRemoveFromFav)
+        {
+          // adding to the favourites
+          TGlxMediaId favId(KGlxCollectionFavoritesId);     
+          command = TGlxCommandFactory::RemoveFromContainerCommandLC(favId, *path);
+        }
+    else
+        {
+          command = TGlxCommandFactory::RemoveFromContainerCommandLC(*path);
+        }
+
     CleanupStack::Pop(command);
     CleanupStack::PopAndDestroy(path);
     OstTraceFunctionExit0( GLXCOMMANDHANDLERREMOVEFROM_CREATECOMMANDL_EXIT );
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp	Fri May 14 15:52:22 2010 +0300
@@ -17,7 +17,7 @@
 
 #include "glxcommandhandlersend.h"
 #include <QModelIndex>
-#include <shareuidialog.h>
+#include <shareui.h>
 #include <glxmodelparm.h>
 #include <glxmediamodel.h>
 #include <QAbstractItemModel>
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp	Fri May 14 15:52:22 2010 +0300
@@ -18,56 +18,71 @@
 #include <glxcommondialogs.h>
 
 #include <hbaction.h>
+#include <QEventLoop>
 
-GlxTextInputDialog::GlxTextInputDialog()
-    {
-    }
+GlxTextInputDialog::GlxTextInputDialog() 
+    : mDialog ( NULL ),
+      mEventLoop ( 0 ),
+      mResult ( false )
+{
+}
 
 GlxTextInputDialog::~GlxTextInputDialog()
-    {
-    }
+{
+}
 
 QString GlxTextInputDialog::getText(const QString &label,
         const QString &text, bool *ok)
-    {
+{
+    QEventLoop eventLoop;
+    mEventLoop = &eventLoop;
+    
     mDialog = new HbInputDialog();
     mDialog->setPromptText(label);
     mDialog->setInputMode(HbInputDialog::TextInput);
     mDialog->setValue(text);
     connect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
             this, SLOT( textChanged (const QString &)));
-    HbAction* action = mDialog->exec();
+    
+    mDialog->open( this, SLOT( dialogClosed( HbAction* ) ) ); 
+    eventLoop.exec( );
+    mEventLoop = 0 ;
+    
+    if ( ok ) {
+        *ok = mResult ;
+    }
     QString retText = NULL;
-    if (action == mDialog->secondaryAction())
-        { //Cancel was pressed
-        if (ok)
-            {
-            *ok = false;
-            }
-        }
-    else
-        { //OK was pressed
-        if (ok)
-            {
-            *ok = true;
-            }
+    if ( mResult ) {
         retText = mDialog->value().toString().trimmed();
-        }
+    }
+    
     disconnect(mDialog->lineEdit(0), SIGNAL( textChanged (const QString &) ),
-            this, SLOT( textChanged (const QString &)));
+                this, SLOT( textChanged (const QString &)));
     delete mDialog;
     mDialog = NULL;
     return retText;
-    }
+}
 
 void GlxTextInputDialog::textChanged(const QString &text)
-    {
-    if (text.trimmed().isEmpty())
-        {
-        mDialog->primaryAction()->setEnabled(false);
-        }
-    else
-        {
-        mDialog->primaryAction()->setEnabled(true);
-        }
+{
+    if (text.trimmed().isEmpty()) {
+        mDialog->actions().first()->setEnabled(false);
+    }
+    else {
+        mDialog->actions().first()->setEnabled(true);
     }
+}
+
+void GlxTextInputDialog::dialogClosed(HbAction *action)
+{
+    HbInputDialog *dlg = static_cast<HbInputDialog*>(sender());
+    if( action == dlg->actions().first() ) {
+        mResult = true ;
+    }
+    else {
+        mResult = false ;
+    }
+    if ( mEventLoop && mEventLoop->isRunning( ) ) {
+        mEventLoop->exit( 0 );
+    }
+}
--- a/ui/commandhandlers/eabi/glxcommandhandlerbaseu.def	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/eabi/glxcommandhandlerbaseu.def	Fri May 14 15:52:22 2010 +0300
@@ -4,54 +4,61 @@
 	_ZN17GlxCommandHandlerD1Ev @ 3 NONAME
 	_ZN17GlxCommandHandlerD2Ev @ 4 NONAME
 	_ZN20GlxMpxCommandHandler11HandleErrorEi @ 5 NONAME
-	_ZN20GlxMpxCommandHandler12HandleErrorLEi @ 6 NONAME
-	_ZN20GlxMpxCommandHandler12HandleMediaLEiP13MGlxMediaList @ 7 NONAME
-	_ZN20GlxMpxCommandHandler13ProgressNoteLEi @ 8 NONAME
-	_ZN20GlxMpxCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 9 NONAME
-	_ZN20GlxMpxCommandHandler14executeCommandEii5QListI11QModelIndexE @ 10 NONAME
-	_ZN20GlxMpxCommandHandler16CreateMediaListLEii18TGlxFilterItemType @ 11 NONAME
-	_ZN20GlxMpxCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 12 NONAME
-	_ZN20GlxMpxCommandHandler17DoExecuteCommandLEiR13MGlxMediaListRi @ 13 NONAME
-	_ZN20GlxMpxCommandHandler18HandleItemRemovedLEiiP13MGlxMediaList @ 14 NONAME
-	_ZN20GlxMpxCommandHandler19HandleFocusChangedLEN12NGlxListDefs16TFocusChangeTypeEiiP13MGlxMediaList @ 15 NONAME
-	_ZN20GlxMpxCommandHandler19HandleItemModifiedLERK6RArrayIiEP13MGlxMediaList @ 16 NONAME
-	_ZN20GlxMpxCommandHandler19HandleItemSelectedLEiiP13MGlxMediaList @ 17 NONAME
-	_ZN20GlxMpxCommandHandler20DismissProgressNoteLEv @ 18 NONAME
-	_ZN20GlxMpxCommandHandler22HandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 19 NONAME
-	_ZN20GlxMpxCommandHandler24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 20 NONAME
-	_ZN20GlxMpxCommandHandler25CreateMediaListAlbumItemLEii18TGlxFilterItemType @ 21 NONAME
-	_ZN20GlxMpxCommandHandler26HandleAttributesAvailableLEiRK6RArrayI13TMPXAttributeEP13MGlxMediaList @ 22 NONAME
-	_ZN20GlxMpxCommandHandler8TryExitLEi @ 23 NONAME
-	_ZN20GlxMpxCommandHandlerC2Ev @ 24 NONAME
-	_ZN20GlxMpxCommandHandlerD0Ev @ 25 NONAME
-	_ZN20GlxMpxCommandHandlerD1Ev @ 26 NONAME
-	_ZN20GlxMpxCommandHandlerD2Ev @ 27 NONAME
-	_ZN22GlxModelCommandHandler14executeCommandEii5QListI11QModelIndexE @ 28 NONAME
-	_ZN22GlxModelCommandHandlerC2Ev @ 29 NONAME
-	_ZN22GlxModelCommandHandlerD0Ev @ 30 NONAME
-	_ZN22GlxModelCommandHandlerD1Ev @ 31 NONAME
-	_ZN22GlxModelCommandHandlerD2Ev @ 32 NONAME
-	_ZNK20GlxMpxCommandHandler13ProgressTextLEv @ 33 NONAME
-	_ZNK20GlxMpxCommandHandler15CompletionNoteLEv @ 34 NONAME
-	_ZNK20GlxMpxCommandHandler15CompletionTextLEv @ 35 NONAME
-	_ZNK20GlxMpxCommandHandler17ConfirmationNoteLER13MGlxMediaList @ 36 NONAME
-	_ZNK20GlxMpxCommandHandler17ConfirmationTextLEb @ 37 NONAME
-	_ZNK20GlxMpxCommandHandler23ConfirmationNoteSingleLER13MGlxMediaList @ 38 NONAME
-	_ZNK20GlxMpxCommandHandler25ConfirmationNoteMultipleLER13MGlxMediaList @ 39 NONAME
-	_ZTI17GlxCommandHandler @ 40 NONAME
-	_ZTI20GlxMpxCommandHandler @ 41 NONAME
-	_ZTI22GlxModelCommandHandler @ 42 NONAME
-	_ZTV17GlxCommandHandler @ 43 NONAME
-	_ZTV20GlxMpxCommandHandler @ 44 NONAME
-	_ZTV22GlxModelCommandHandler @ 45 NONAME
-	_ZThn8_N20GlxMpxCommandHandler11HandleErrorEi @ 46 NONAME
-	_ZThn8_N20GlxMpxCommandHandler12HandleMediaLEiP13MGlxMediaList @ 47 NONAME
-	_ZThn8_N20GlxMpxCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 48 NONAME
-	_ZThn8_N20GlxMpxCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 49 NONAME
-	_ZThn8_N20GlxMpxCommandHandler18HandleItemRemovedLEiiP13MGlxMediaList @ 50 NONAME
-	_ZThn8_N20GlxMpxCommandHandler19HandleFocusChangedLEN12NGlxListDefs16TFocusChangeTypeEiiP13MGlxMediaList @ 51 NONAME
-	_ZThn8_N20GlxMpxCommandHandler19HandleItemModifiedLERK6RArrayIiEP13MGlxMediaList @ 52 NONAME
-	_ZThn8_N20GlxMpxCommandHandler19HandleItemSelectedLEiiP13MGlxMediaList @ 53 NONAME
-	_ZThn8_N20GlxMpxCommandHandler22HandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 54 NONAME
-	_ZThn8_N20GlxMpxCommandHandler26HandleAttributesAvailableLEiRK6RArrayI13TMPXAttributeEP13MGlxMediaList @ 55 NONAME
+	_ZN20GlxMpxCommandHandler11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME
+	_ZN20GlxMpxCommandHandler11qt_metacastEPKc @ 7 NONAME
+	_ZN20GlxMpxCommandHandler12HandleErrorLEi @ 8 NONAME
+	_ZN20GlxMpxCommandHandler12HandleMediaLEiP13MGlxMediaList @ 9 NONAME
+	_ZN20GlxMpxCommandHandler13ProgressNoteLEi @ 10 NONAME
+	_ZN20GlxMpxCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 11 NONAME
+	_ZN20GlxMpxCommandHandler14executeCommandEii5QListI11QModelIndexE @ 12 NONAME
+	_ZN20GlxMpxCommandHandler16CreateMediaListLEii18TGlxFilterItemType @ 13 NONAME
+	_ZN20GlxMpxCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 14 NONAME
+	_ZN20GlxMpxCommandHandler16staticMetaObjectE @ 15 NONAME DATA 16
+	_ZN20GlxMpxCommandHandler17ConfirmationNoteLER13MGlxMediaList @ 16 NONAME
+	_ZN20GlxMpxCommandHandler17DoExecuteCommandLEiR13MGlxMediaListRi @ 17 NONAME
+	_ZN20GlxMpxCommandHandler17executeMpxCommandEb @ 18 NONAME
+	_ZN20GlxMpxCommandHandler18HandleItemRemovedLEiiP13MGlxMediaList @ 19 NONAME
+	_ZN20GlxMpxCommandHandler18messageDialogCloseEP8HbAction @ 20 NONAME
+	_ZN20GlxMpxCommandHandler19HandleFocusChangedLEN12NGlxListDefs16TFocusChangeTypeEiiP13MGlxMediaList @ 21 NONAME
+	_ZN20GlxMpxCommandHandler19HandleItemModifiedLERK6RArrayIiEP13MGlxMediaList @ 22 NONAME
+	_ZN20GlxMpxCommandHandler19HandleItemSelectedLEiiP13MGlxMediaList @ 23 NONAME
+	_ZN20GlxMpxCommandHandler19getStaticMetaObjectEv @ 24 NONAME
+	_ZN20GlxMpxCommandHandler20DismissProgressNoteLEv @ 25 NONAME
+	_ZN20GlxMpxCommandHandler22HandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 26 NONAME
+	_ZN20GlxMpxCommandHandler23ConfirmationNoteSingleLER13MGlxMediaList @ 27 NONAME
+	_ZN20GlxMpxCommandHandler24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 28 NONAME
+	_ZN20GlxMpxCommandHandler25ConfirmationNoteMultipleLER13MGlxMediaList @ 29 NONAME
+	_ZN20GlxMpxCommandHandler25CreateMediaListAlbumItemLEii18TGlxFilterItemType @ 30 NONAME
+	_ZN20GlxMpxCommandHandler26HandleAttributesAvailableLEiRK6RArrayI13TMPXAttributeEP13MGlxMediaList @ 31 NONAME
+	_ZN20GlxMpxCommandHandler8TryExitLEi @ 32 NONAME
+	_ZN20GlxMpxCommandHandlerC2Ev @ 33 NONAME
+	_ZN20GlxMpxCommandHandlerD0Ev @ 34 NONAME
+	_ZN20GlxMpxCommandHandlerD1Ev @ 35 NONAME
+	_ZN20GlxMpxCommandHandlerD2Ev @ 36 NONAME
+	_ZN22GlxModelCommandHandler14executeCommandEii5QListI11QModelIndexE @ 37 NONAME
+	_ZN22GlxModelCommandHandlerC2Ev @ 38 NONAME
+	_ZN22GlxModelCommandHandlerD0Ev @ 39 NONAME
+	_ZN22GlxModelCommandHandlerD1Ev @ 40 NONAME
+	_ZN22GlxModelCommandHandlerD2Ev @ 41 NONAME
+	_ZNK20GlxMpxCommandHandler10metaObjectEv @ 42 NONAME
+	_ZNK20GlxMpxCommandHandler13ProgressTextLEv @ 43 NONAME
+	_ZNK20GlxMpxCommandHandler15CompletionNoteLEv @ 44 NONAME
+	_ZNK20GlxMpxCommandHandler15CompletionTextLEv @ 45 NONAME
+	_ZNK20GlxMpxCommandHandler17ConfirmationTextLEb @ 46 NONAME
+	_ZTI17GlxCommandHandler @ 47 NONAME
+	_ZTI20GlxMpxCommandHandler @ 48 NONAME
+	_ZTI22GlxModelCommandHandler @ 49 NONAME
+	_ZTV17GlxCommandHandler @ 50 NONAME
+	_ZTV20GlxMpxCommandHandler @ 51 NONAME
+	_ZTV22GlxModelCommandHandler @ 52 NONAME
+	_ZThn8_N20GlxMpxCommandHandler11HandleErrorEi @ 53 NONAME
+	_ZThn8_N20GlxMpxCommandHandler12HandleMediaLEiP13MGlxMediaList @ 54 NONAME
+	_ZThn8_N20GlxMpxCommandHandler14HandleMessageLERK9CMPXMediaP13MGlxMediaList @ 55 NONAME
+	_ZThn8_N20GlxMpxCommandHandler16HandleItemAddedLEiiP13MGlxMediaList @ 56 NONAME
+	_ZThn8_N20GlxMpxCommandHandler18HandleItemRemovedLEiiP13MGlxMediaList @ 57 NONAME
+	_ZThn8_N20GlxMpxCommandHandler19HandleFocusChangedLEN12NGlxListDefs16TFocusChangeTypeEiiP13MGlxMediaList @ 58 NONAME
+	_ZThn8_N20GlxMpxCommandHandler19HandleItemModifiedLERK6RArrayIiEP13MGlxMediaList @ 59 NONAME
+	_ZThn8_N20GlxMpxCommandHandler19HandleItemSelectedLEiiP13MGlxMediaList @ 60 NONAME
+	_ZThn8_N20GlxMpxCommandHandler22HandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 61 NONAME
+	_ZThn8_N20GlxMpxCommandHandler26HandleAttributesAvailableLEiRK6RArrayI13TMPXAttributeEP13MGlxMediaList @ 62 NONAME
 
--- a/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def	Mon May 03 12:31:32 2010 +0300
+++ b/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def	Fri May 14 15:52:22 2010 +0300
@@ -9,90 +9,84 @@
 	_ZN23GlxCommandHandlerDeleteD0Ev @ 8 NONAME
 	_ZN23GlxCommandHandlerDeleteD1Ev @ 9 NONAME
 	_ZN23GlxCommandHandlerDeleteD2Ev @ 10 NONAME
-	_ZN23GlxCommandHandlerRotate12RotateImageLE4TBufILi256EE @ 11 NONAME
-	_ZN23GlxCommandHandlerRotate17DestroyExifWriterEv @ 12 NONAME
-	_ZN23GlxCommandHandlerRotate17DoExecuteCommandLEiR13MGlxMediaListRi @ 13 NONAME
-	_ZN23GlxCommandHandlerRotate20SetImageOrientationLEt @ 14 NONAME
-	_ZN23GlxCommandHandlerRotate21InitializeExifWriterLE4TBufILi256EE @ 15 NONAME
-	_ZN23GlxCommandHandlerRotate21ReadImageOrientationLEv @ 16 NONAME
-	_ZN23GlxCommandHandlerRotate26CalculateFinalOrientationLEt @ 17 NONAME
-	_ZN23GlxCommandHandlerRotateC1Ev @ 18 NONAME
-	_ZN23GlxCommandHandlerRotateC2Ev @ 19 NONAME
-	_ZN23GlxCommandHandlerRotateD0Ev @ 20 NONAME
-	_ZN23GlxCommandHandlerRotateD1Ev @ 21 NONAME
-	_ZN23GlxCommandHandlerRotateD2Ev @ 22 NONAME
-	_ZN25GlxCommandHandlerNewMedia11HandleErrorEi @ 23 NONAME
-	_ZN25GlxCommandHandlerNewMedia11qt_metacallEN11QMetaObject4CallEiPPv @ 24 NONAME
-	_ZN25GlxCommandHandlerNewMedia11qt_metacastEPKc @ 25 NONAME
-	_ZN25GlxCommandHandlerNewMedia12HandleErrorLEi @ 26 NONAME
-	_ZN25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 27 NONAME
-	_ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 28 NONAME DATA 16
-	_ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 29 NONAME
-	_ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 30 NONAME
-	_ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 31 NONAME
-	_ZN25GlxCommandHandlerNewMediaC1Ev @ 32 NONAME
-	_ZN25GlxCommandHandlerNewMediaC2Ev @ 33 NONAME
-	_ZN25GlxCommandHandlerNewMediaD0Ev @ 34 NONAME
-	_ZN25GlxCommandHandlerNewMediaD1Ev @ 35 NONAME
-	_ZN25GlxCommandHandlerNewMediaD2Ev @ 36 NONAME
-	_ZN27GlxCommandHandlerRemoveFromC1Ev @ 37 NONAME
-	_ZN27GlxCommandHandlerRemoveFromC2Ev @ 38 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD0Ev @ 39 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD1Ev @ 40 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD2Ev @ 41 NONAME
-	_ZN31GlxCommandHandlerAddToContainer11qt_metacallEN11QMetaObject4CallEiPPv @ 42 NONAME
-	_ZN31GlxCommandHandlerAddToContainer11qt_metacastEPKc @ 43 NONAME
-	_ZN31GlxCommandHandlerAddToContainer14createNewMediaEv @ 44 NONAME
-	_ZN31GlxCommandHandlerAddToContainer15iSelectionCountE @ 45 NONAME DATA 4
-	_ZN31GlxCommandHandlerAddToContainer16staticMetaObjectE @ 46 NONAME DATA 16
-	_ZN31GlxCommandHandlerAddToContainer19getStaticMetaObjectEv @ 47 NONAME
-	_ZN31GlxCommandHandlerAddToContainerC1Ev @ 48 NONAME
-	_ZN31GlxCommandHandlerAddToContainerC2Ev @ 49 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD0Ev @ 50 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD1Ev @ 51 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD2Ev @ 52 NONAME
-	_ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 53 NONAME
-	_ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 54 NONAME
-	_ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 55 NONAME
-	_ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 56 NONAME
-	_ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 57 NONAME
-	_ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 58 NONAME
-	_ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 59 NONAME
-	_ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 60 NONAME
-	_ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 61 NONAME
-	_ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 62 NONAME
-	_ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 63 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 64 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 65 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 66 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer10metaObjectEv @ 67 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 68 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 69 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 70 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer16GetSelectionListEP13GlxAlbumModelPb @ 71 NONAME
-	_ZTI21GlxCommandHandlerSend @ 72 NONAME
-	_ZTI23GlxCommandHandlerDelete @ 73 NONAME
-	_ZTI23GlxCommandHandlerRotate @ 74 NONAME
-	_ZTI25GlxCommandHandlerNewMedia @ 75 NONAME
-	_ZTI27GlxCommandHandlerRemoveFrom @ 76 NONAME
-	_ZTI31GlxCommandHandlerAddToContainer @ 77 NONAME
-	_ZTV21GlxCommandHandlerSend @ 78 NONAME
-	_ZTV23GlxCommandHandlerDelete @ 79 NONAME
-	_ZTV23GlxCommandHandlerRotate @ 80 NONAME
-	_ZTV25GlxCommandHandlerNewMedia @ 81 NONAME
-	_ZTV27GlxCommandHandlerRemoveFrom @ 82 NONAME
-	_ZTV31GlxCommandHandlerAddToContainer @ 83 NONAME
-	_ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 84 NONAME
-	_ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 85 NONAME
-	_ZN23GlxCommandHandlerRenameC1Ev @ 86 NONAME
-	_ZN23GlxCommandHandlerRenameC2Ev @ 87 NONAME
-	_ZN23GlxCommandHandlerRenameD0Ev @ 88 NONAME
-	_ZN23GlxCommandHandlerRenameD1Ev @ 89 NONAME
-	_ZN23GlxCommandHandlerRenameD2Ev @ 90 NONAME
-	_ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 91 NONAME
-	_ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 92 NONAME
-	_ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 93 NONAME
-	_ZTI23GlxCommandHandlerRename @ 94 NONAME
-	_ZTV23GlxCommandHandlerRename @ 95 NONAME
-	_ZN23GlxCommandHandlerRename12HandleErrorLEi @ 96 NONAME
+	_ZN23GlxCommandHandlerRename12HandleErrorLEi @ 11 NONAME
+	_ZN23GlxCommandHandlerRenameC1Ev @ 12 NONAME
+	_ZN23GlxCommandHandlerRenameC2Ev @ 13 NONAME
+	_ZN23GlxCommandHandlerRenameD0Ev @ 14 NONAME
+	_ZN23GlxCommandHandlerRenameD1Ev @ 15 NONAME
+	_ZN23GlxCommandHandlerRenameD2Ev @ 16 NONAME
+	_ZN23GlxCommandHandlerRotate12RotateImageLE4TBufILi256EE @ 17 NONAME
+	_ZN23GlxCommandHandlerRotate17DestroyExifWriterEv @ 18 NONAME
+	_ZN23GlxCommandHandlerRotate17DoExecuteCommandLEiR13MGlxMediaListRi @ 19 NONAME
+	_ZN23GlxCommandHandlerRotate20SetImageOrientationLEt @ 20 NONAME
+	_ZN23GlxCommandHandlerRotate21InitializeExifWriterLE4TBufILi256EE @ 21 NONAME
+	_ZN23GlxCommandHandlerRotate21ReadImageOrientationLEv @ 22 NONAME
+	_ZN23GlxCommandHandlerRotate26CalculateFinalOrientationLEt @ 23 NONAME
+	_ZN23GlxCommandHandlerRotateC1Ev @ 24 NONAME
+	_ZN23GlxCommandHandlerRotateC2Ev @ 25 NONAME
+	_ZN23GlxCommandHandlerRotateD0Ev @ 26 NONAME
+	_ZN23GlxCommandHandlerRotateD1Ev @ 27 NONAME
+	_ZN23GlxCommandHandlerRotateD2Ev @ 28 NONAME
+	_ZN25GlxCommandHandlerNewMedia11HandleErrorEi @ 29 NONAME
+	_ZN25GlxCommandHandlerNewMedia11qt_metacallEN11QMetaObject4CallEiPPv @ 30 NONAME
+	_ZN25GlxCommandHandlerNewMedia11qt_metacastEPKc @ 31 NONAME
+	_ZN25GlxCommandHandlerNewMedia12HandleErrorLEi @ 32 NONAME
+	_ZN25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 33 NONAME
+	_ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 34 NONAME DATA 16
+	_ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 35 NONAME
+	_ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 36 NONAME
+	_ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 37 NONAME
+	_ZN25GlxCommandHandlerNewMediaC1Ev @ 38 NONAME
+	_ZN25GlxCommandHandlerNewMediaC2Ev @ 39 NONAME
+	_ZN25GlxCommandHandlerNewMediaD0Ev @ 40 NONAME
+	_ZN25GlxCommandHandlerNewMediaD1Ev @ 41 NONAME
+	_ZN25GlxCommandHandlerNewMediaD2Ev @ 42 NONAME
+	_ZN27GlxCommandHandlerRemoveFromC1Ev @ 43 NONAME
+	_ZN27GlxCommandHandlerRemoveFromC2Ev @ 44 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD0Ev @ 45 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD1Ev @ 46 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD2Ev @ 47 NONAME
+	_ZN31GlxCommandHandlerAddToContainer15iSelectionCountE @ 48 NONAME DATA 4
+	_ZN31GlxCommandHandlerAddToContainerC1Ev @ 49 NONAME
+	_ZN31GlxCommandHandlerAddToContainerC2Ev @ 50 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD0Ev @ 51 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD1Ev @ 52 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD2Ev @ 53 NONAME
+	_ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 54 NONAME
+	_ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 55 NONAME
+	_ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 56 NONAME
+	_ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 57 NONAME
+	_ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 58 NONAME
+	_ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 59 NONAME
+	_ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 60 NONAME
+	_ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 61 NONAME
+	_ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 62 NONAME
+	_ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 63 NONAME
+	_ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 64 NONAME
+	_ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 65 NONAME
+	_ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 66 NONAME
+	_ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 67 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 68 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 69 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 70 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 71 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 72 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 73 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 74 NONAME
+	_ZTI21GlxCommandHandlerSend @ 75 NONAME
+	_ZTI23GlxCommandHandlerDelete @ 76 NONAME
+	_ZTI23GlxCommandHandlerRename @ 77 NONAME
+	_ZTI23GlxCommandHandlerRotate @ 78 NONAME
+	_ZTI25GlxCommandHandlerNewMedia @ 79 NONAME
+	_ZTI27GlxCommandHandlerRemoveFrom @ 80 NONAME
+	_ZTI31GlxCommandHandlerAddToContainer @ 81 NONAME
+	_ZTV21GlxCommandHandlerSend @ 82 NONAME
+	_ZTV23GlxCommandHandlerDelete @ 83 NONAME
+	_ZTV23GlxCommandHandlerRename @ 84 NONAME
+	_ZTV23GlxCommandHandlerRotate @ 85 NONAME
+	_ZTV25GlxCommandHandlerNewMedia @ 86 NONAME
+	_ZTV27GlxCommandHandlerRemoveFrom @ 87 NONAME
+	_ZTV31GlxCommandHandlerAddToContainer @ 88 NONAME
+	_ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 89 NONAME
+	_ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 90 NONAME
 
--- a/ui/inc/glxcommandhandlers.hrh	Mon May 03 12:31:32 2010 +0300
+++ b/ui/inc/glxcommandhandlers.hrh	Fri May 14 15:52:22 2010 +0300
@@ -59,6 +59,8 @@
     EGlxCmdSelectSlideshow,  //play the slide show with selected item
     EGlxCmdAlbumSlideShow,   //play the slide show for a album
     EGlxCmdRename,
+    EGlxCmdAddToFav,
+    EGlxCmdRemoveFromFav,
     EGlxCmdPlay,
     EGlxCmdDRMOpen,
     EGlxCmdShowOnlineInfo,
@@ -106,6 +108,7 @@
     EGlxCmdCancel,
     EGlxCmdMarkAll,
     EGlxCmdUnMarkAll,
+    EGlxCmdContextRemoveFrom,
     EGlxCmdContextAddToAlbum,
     EGlxCmdContextDelete,
     EGlxCmdContextAlbumDelete,
--- a/ui/inc/glxdocloaderdefs.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/inc/glxdocloaderdefs.h	Fri May 14 15:52:22 2010 +0300
@@ -31,7 +31,7 @@
 
 //SLIDE SHOW
 #define GLXSLIDESHOW_VIEW         "mglxslideshow"
-#define GLXSLIDESHOW_WIDGET       "mscrollArea"
+#define GLXSLIDESHOW_WIDGET       "mslideshowwidget"
 #define GLXSLIDESHOW_PATH         ":/data/slideshow.docml"
 #define GLXSLIDESHOW_PB           "mContinueButton"
 
--- a/ui/inc/glxicondefs.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/inc/glxicondefs.h	Fri May 14 15:52:22 2010 +0300
@@ -42,4 +42,7 @@
 //DEFAULT ICON
 #define GLXICON_DEFAULT "qtg_mono_camera"
 
+#define GLXICON_ADD_TO_FAV  "qtg_graf_ratingslider_rated"
+#define GLXICON_REMOVE_FAV  "qtg_graf_ratingslider_unrated"
+
 #endif /* GLXICONDEFS_H */
--- a/ui/inc/glxmodelparm.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/inc/glxmodelparm.h	Fri May 14 15:52:22 2010 +0300
@@ -25,7 +25,8 @@
 
 enum
 {
-    GlxFsImageRole = Qt::UserRole + 1,  //to get the fullscreen image
+    GlxHgVisibilityRole = Qt::UserRole + 1, // VisibilityRole For MediaWall ,  Dont Change This Value - Depedency To HgWidget
+    GlxFsImageRole,                         //to get the fullscreen image
     GlxContextRole,                     //to get and set the context   
     GlxFocusIndexRole,                  //to get and set the selected item index
     GlxVisualWindowIndex,               //to set the visual window index in media list
@@ -36,17 +37,24 @@
     GlxFrameCount,                      //to get the number of frame in an image
     GlxSubStateRole,                    //to publish the sub state of a SM states
     GlxHdmiBitmap,                      //to get the pre decoded thumbnail for HDMI
+	GlxListItemCount,                   //to get the number of item in the album list
+	GlxSystemItemRole,                   //to get the item is system item or not
+    GlxFavorites,                       //to get the image is in favorites folder or not
+    GlxQImageSmall,                     //To Get Grid Thumbnail as QImage
+    GlxQImageLarge,                     //To Get FullScreen Thumbnail as QImage
+    GlxDefaultImage                     //To Get Default Thumbnail 
 };
 
 
 class GlxModelParm
 {
 public:
-	GlxModelParm (qint32 collectionId = 0, qint32 depth = 0 , TGlxFilterItemType filterType = EGlxFilterItemAll , GlxContextMode contextMode = GlxContextPtGrid ) 
+	GlxModelParm (qint32 collectionId = 0, qint32 depth = 0 , TGlxFilterItemType filterType = EGlxFilterItemAll , GlxContextMode contextMode = GlxContextPtGrid ,QString uri = NULL) 
 	    : mCollectionId(collectionId) ,
 	      mDepth(depth) , 
 	      mFilterType( filterType ),
-	      mContextMode( contextMode )
+	      mContextMode( contextMode ),
+          mUri(uri)
 	{
 	
 	}
@@ -55,6 +63,8 @@
 	qint32 collection() { return mCollectionId; }
 	void setDepth (qint32 depth = 0) { mDepth = depth ; }
 	qint32 depth() { return mDepth; }
+	QString path() { return mUri; }
+	void setPath(QString uri = NULL) {  mUri=uri; }
 	TGlxFilterItemType filterType() { return mFilterType; }
 	void setContextMode( GlxContextMode contextMode ) { mContextMode = contextMode ; }
 	GlxContextMode contextMode() { return mContextMode ; }
@@ -64,6 +74,7 @@
 	qint32 mDepth;
 	TGlxFilterItemType mFilterType;
 	GlxContextMode mContextMode;
+	QString mUri;
 };
 
 
--- a/ui/inc/glxuistd.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/inc/glxuistd.h	Fri May 14 15:52:22 2010 +0300
@@ -40,7 +40,8 @@
 	GlxContextPtFs,  //TB context check would be applied here . Please do not add any context between GlxContextLsFs and GlxContextPtFs
 	GlxContextLsList,
 	GlxContextPtList,
-    GlxContextSelectionList
+    GlxContextSelectionList,
+    GlxContextFavorite
 };
 
 enum GlxTBContextType
@@ -55,6 +56,9 @@
 typedef enum
 {
     NO_EFFECT,
+    WAVE_EFFECT,
+    SMOOTH_FADE,
+    ZOOM_TO_FACE,
     TRANSITION_EFFECT,
     FADE_EFFECT,
     GRID_TO_FULLSCREEN,
@@ -67,6 +71,12 @@
 
 typedef enum
 {
+ SLOW,
+ MEDIUM,
+ FAST
+}GlxSlideShowDelay;
+typedef enum
+{
     NO_VIEW,
     CURRENT_VIEW,
     LAUNCH_VIEW,
--- a/ui/uiengine/bwins/glxmedialistwrapperu.def	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/bwins/glxmedialistwrapperu.def	Fri May 14 15:52:22 2010 +0300
@@ -12,29 +12,32 @@
 	?qt_metacall@GlxMLWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11 NONAME ; int GlxMLWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
 	?retrieveItemFrameCount@GlxMLWrapper@@QAEHH@Z @ 12 NONAME ; int GlxMLWrapper::retrieveItemFrameCount(int)
 	?retrieveListTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 13 NONAME ; class QString GlxMLWrapper::retrieveListTitle(int)
-	?tr@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *)
-	?setVisibleWindowIndex@GlxMLWrapper@@QAEXH@Z @ 15 NONAME ; void GlxMLWrapper::setVisibleWindowIndex(int)
-	?getStaticMetaObject@GlxMLWrapper@@SAABUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const & GlxMLWrapper::getStaticMetaObject(void)
-	?retrieveListSubTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 17 NONAME ; class QString GlxMLWrapper::retrieveListSubTitle(int)
-	?staticMetaObject@GlxMLWrapper@@2UQMetaObject@@B @ 18 NONAME ; struct QMetaObject const GlxMLWrapper::staticMetaObject
-	?handleListItemAvailable@GlxMLWrapper@@QAEXH@Z @ 19 NONAME ; void GlxMLWrapper::handleListItemAvailable(int)
-	?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *)
-	?itemsRemoved@GlxMLWrapper@@QAEXHH@Z @ 21 NONAME ; void GlxMLWrapper::itemsRemoved(int, int)
-	?metaObject@GlxMLWrapper@@UBEPBUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const * GlxMLWrapper::metaObject(void) const
-	?insertItems@GlxMLWrapper@@IAEXHH@Z @ 23 NONAME ; void GlxMLWrapper::insertItems(int, int)
-	?getFocusIndex@GlxMLWrapper@@QBEHXZ @ 24 NONAME ; int GlxMLWrapper::getFocusIndex(void) const
-	?handleIconCorrupt@GlxMLWrapper@@QAEXH@Z @ 25 NONAME ; void GlxMLWrapper::handleIconCorrupt(int)
-	?retrieveItemDimension@GlxMLWrapper@@QAE?AVQSize@@H@Z @ 26 NONAME ; class QSize GlxMLWrapper::retrieveItemDimension(int)
-	?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 27 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int)
-	?handleReceivedIcon@GlxMLWrapper@@QAEXHW4GlxTBContextType@@@Z @ 28 NONAME ; void GlxMLWrapper::handleReceivedIcon(int, enum GlxTBContextType)
-	?tr@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *, int)
-	??_EGlxMLWrapper@@UAE@I@Z @ 30 NONAME ; GlxMLWrapper::~GlxMLWrapper(unsigned int)
-	??0GlxMLWrapper@@QAE@HHW4TGlxFilterItemType@@@Z @ 31 NONAME ; GlxMLWrapper::GlxMLWrapper(int, int, enum TGlxFilterItemType)
-	?setContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 32 NONAME ; void GlxMLWrapper::setContextMode(enum GlxContextMode)
-	??1GlxMLWrapper@@UAE@XZ @ 33 NONAME ; GlxMLWrapper::~GlxMLWrapper(void)
-	?RetrieveBitmap@GlxMLWrapper@@QAE?AVQVariant@@H@Z @ 34 NONAME ; class QVariant GlxMLWrapper::RetrieveBitmap(int)
-	?qt_metacast@GlxMLWrapper@@UAEPAXPBD@Z @ 35 NONAME ; void * GlxMLWrapper::qt_metacast(char const *)
-	?setSelectedIndex@GlxMLWrapper@@QAEXH@Z @ 36 NONAME ; void GlxMLWrapper::setSelectedIndex(int)
-	?itemsAdded@GlxMLWrapper@@QAEXHH@Z @ 37 NONAME ; void GlxMLWrapper::itemsAdded(int, int)
-	?retrieveItemIcon@GlxMLWrapper@@QAEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 38 NONAME ; class HbIcon * GlxMLWrapper::retrieveItemIcon(int, enum GlxTBContextType)
+	?retrieveListItemCount@GlxMLWrapper@@QAEHH@Z @ 14 NONAME ; int GlxMLWrapper::retrieveListItemCount(int)
+	?tr@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 15 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *)
+	?setVisibleWindowIndex@GlxMLWrapper@@QAEXH@Z @ 16 NONAME ; void GlxMLWrapper::setVisibleWindowIndex(int)
+	?getStaticMetaObject@GlxMLWrapper@@SAABUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const & GlxMLWrapper::getStaticMetaObject(void)
+	?retrieveListSubTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 18 NONAME ; class QString GlxMLWrapper::retrieveListSubTitle(int)
+	?staticMetaObject@GlxMLWrapper@@2UQMetaObject@@B @ 19 NONAME ; struct QMetaObject const GlxMLWrapper::staticMetaObject
+	?handleListItemAvailable@GlxMLWrapper@@QAEXH@Z @ 20 NONAME ; void GlxMLWrapper::handleListItemAvailable(int)
+	?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 21 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *)
+	?itemsRemoved@GlxMLWrapper@@QAEXHH@Z @ 22 NONAME ; void GlxMLWrapper::itemsRemoved(int, int)
+	?metaObject@GlxMLWrapper@@UBEPBUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const * GlxMLWrapper::metaObject(void) const
+	?insertItems@GlxMLWrapper@@IAEXHH@Z @ 24 NONAME ; void GlxMLWrapper::insertItems(int, int)
+	?isSystemItem@GlxMLWrapper@@QAE_NH@Z @ 25 NONAME ; bool GlxMLWrapper::isSystemItem(int)
+	?getFocusIndex@GlxMLWrapper@@QBEHXZ @ 26 NONAME ; int GlxMLWrapper::getFocusIndex(void) const
+	?handleIconCorrupt@GlxMLWrapper@@QAEXH@Z @ 27 NONAME ; void GlxMLWrapper::handleIconCorrupt(int)
+	?retrieveItemDimension@GlxMLWrapper@@QAE?AVQSize@@H@Z @ 28 NONAME ; class QSize GlxMLWrapper::retrieveItemDimension(int)
+	?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 29 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int)
+	?handleReceivedIcon@GlxMLWrapper@@QAEXHW4GlxTBContextType@@@Z @ 30 NONAME ; void GlxMLWrapper::handleReceivedIcon(int, enum GlxTBContextType)
+	?tr@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *, int)
+	??_EGlxMLWrapper@@UAE@I@Z @ 32 NONAME ; GlxMLWrapper::~GlxMLWrapper(unsigned int)
+	?setContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 33 NONAME ; void GlxMLWrapper::setContextMode(enum GlxContextMode)
+	??1GlxMLWrapper@@UAE@XZ @ 34 NONAME ; GlxMLWrapper::~GlxMLWrapper(void)
+	?RetrieveBitmap@GlxMLWrapper@@QAE?AVQVariant@@H@Z @ 35 NONAME ; class QVariant GlxMLWrapper::RetrieveBitmap(int)
+	?qt_metacast@GlxMLWrapper@@UAEPAXPBD@Z @ 36 NONAME ; void * GlxMLWrapper::qt_metacast(char const *)
+	?retrieveItemImage@GlxMLWrapper@@QAE?AVQImage@@HW4GlxTBContextType@@@Z @ 37 NONAME ; class QImage GlxMLWrapper::retrieveItemImage(int, enum GlxTBContextType)
+	??0GlxMLWrapper@@QAE@HHW4TGlxFilterItemType@@VQString@@@Z @ 38 NONAME ; GlxMLWrapper::GlxMLWrapper(int, int, enum TGlxFilterItemType, class QString)
+	?setSelectedIndex@GlxMLWrapper@@QAEXH@Z @ 39 NONAME ; void GlxMLWrapper::setSelectedIndex(int)
+	?itemsAdded@GlxMLWrapper@@QAEXHH@Z @ 40 NONAME ; void GlxMLWrapper::itemsAdded(int, int)
+	?retrieveItemIcon@GlxMLWrapper@@QAEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 41 NONAME ; class HbIcon * GlxMLWrapper::retrieveItemIcon(int, enum GlxTBContextType)
 
--- a/ui/uiengine/eabi/glxmedialistwrapperu.def	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/eabi/glxmedialistwrapperu.def	Fri May 14 15:52:22 2010 +0300
@@ -6,34 +6,37 @@
 	_ZN12GlxMLWrapper11qt_metacastEPKc @ 5 NONAME
 	_ZN12GlxMLWrapper11removeItemsEii @ 6 NONAME
 	_ZN12GlxMLWrapper12getItemCountEv @ 7 NONAME
-	_ZN12GlxMLWrapper12itemsRemovedEii @ 8 NONAME
-	_ZN12GlxMLWrapper13itemCorruptedEi @ 9 NONAME
-	_ZN12GlxMLWrapper13setFocusIndexEi @ 10 NONAME
-	_ZN12GlxMLWrapper14RetrieveBitmapEi @ 11 NONAME
-	_ZN12GlxMLWrapper14setContextModeE14GlxContextMode @ 12 NONAME
-	_ZN12GlxMLWrapper15retrieveItemUriEi @ 13 NONAME
-	_ZN12GlxMLWrapper16retrieveItemDateEi @ 14 NONAME
-	_ZN12GlxMLWrapper16retrieveItemIconEi16GlxTBContextType @ 15 NONAME
-	_ZN12GlxMLWrapper16setSelectedIndexEi @ 16 NONAME
-	_ZN12GlxMLWrapper16staticMetaObjectE @ 17 NONAME DATA 16
-	_ZN12GlxMLWrapper17handleIconCorruptEi @ 18 NONAME
-	_ZN12GlxMLWrapper17retrieveListTitleEi @ 19 NONAME
-	_ZN12GlxMLWrapper18handleGeneralErrorEi @ 20 NONAME
-	_ZN12GlxMLWrapper18handleReceivedIconEi16GlxTBContextType @ 21 NONAME
-	_ZN12GlxMLWrapper19getStaticMetaObjectEv @ 22 NONAME
-	_ZN12GlxMLWrapper20retrieveListSubTitleEi @ 23 NONAME
-	_ZN12GlxMLWrapper21getVisibleWindowIndexEv @ 24 NONAME
-	_ZN12GlxMLWrapper21retrieveItemDimensionEi @ 25 NONAME
-	_ZN12GlxMLWrapper21setVisibleWindowIndexEi @ 26 NONAME
-	_ZN12GlxMLWrapper22retrieveItemFrameCountEi @ 27 NONAME
-	_ZN12GlxMLWrapper23handleListItemAvailableEi @ 28 NONAME
-	_ZN12GlxMLWrapperC1Eii18TGlxFilterItemType @ 29 NONAME
-	_ZN12GlxMLWrapperC2Eii18TGlxFilterItemType @ 30 NONAME
-	_ZN12GlxMLWrapperD0Ev @ 31 NONAME
-	_ZN12GlxMLWrapperD1Ev @ 32 NONAME
-	_ZN12GlxMLWrapperD2Ev @ 33 NONAME
-	_ZNK12GlxMLWrapper10metaObjectEv @ 34 NONAME
-	_ZNK12GlxMLWrapper13getFocusIndexEv @ 35 NONAME
-	_ZTI12GlxMLWrapper @ 36 NONAME
-	_ZTV12GlxMLWrapper @ 37 NONAME
+	_ZN12GlxMLWrapper12isSystemItemEi @ 8 NONAME
+	_ZN12GlxMLWrapper12itemsRemovedEii @ 9 NONAME
+	_ZN12GlxMLWrapper13itemCorruptedEi @ 10 NONAME
+	_ZN12GlxMLWrapper13setFocusIndexEi @ 11 NONAME
+	_ZN12GlxMLWrapper14RetrieveBitmapEi @ 12 NONAME
+	_ZN12GlxMLWrapper14setContextModeE14GlxContextMode @ 13 NONAME
+	_ZN12GlxMLWrapper15retrieveItemUriEi @ 14 NONAME
+	_ZN12GlxMLWrapper16retrieveItemDateEi @ 15 NONAME
+	_ZN12GlxMLWrapper16retrieveItemIconEi16GlxTBContextType @ 16 NONAME
+	_ZN12GlxMLWrapper16setSelectedIndexEi @ 17 NONAME
+	_ZN12GlxMLWrapper16staticMetaObjectE @ 18 NONAME DATA 16
+	_ZN12GlxMLWrapper17handleIconCorruptEi @ 19 NONAME
+	_ZN12GlxMLWrapper17retrieveItemImageEi16GlxTBContextType @ 20 NONAME
+	_ZN12GlxMLWrapper17retrieveListTitleEi @ 21 NONAME
+	_ZN12GlxMLWrapper18handleGeneralErrorEi @ 22 NONAME
+	_ZN12GlxMLWrapper18handleReceivedIconEi16GlxTBContextType @ 23 NONAME
+	_ZN12GlxMLWrapper19getStaticMetaObjectEv @ 24 NONAME
+	_ZN12GlxMLWrapper20retrieveListSubTitleEi @ 25 NONAME
+	_ZN12GlxMLWrapper21getVisibleWindowIndexEv @ 26 NONAME
+	_ZN12GlxMLWrapper21retrieveItemDimensionEi @ 27 NONAME
+	_ZN12GlxMLWrapper21retrieveListItemCountEi @ 28 NONAME
+	_ZN12GlxMLWrapper21setVisibleWindowIndexEi @ 29 NONAME
+	_ZN12GlxMLWrapper22retrieveItemFrameCountEi @ 30 NONAME
+	_ZN12GlxMLWrapper23handleListItemAvailableEi @ 31 NONAME
+	_ZN12GlxMLWrapperC1Eii18TGlxFilterItemType7QString @ 32 NONAME
+	_ZN12GlxMLWrapperC2Eii18TGlxFilterItemType7QString @ 33 NONAME
+	_ZN12GlxMLWrapperD0Ev @ 34 NONAME
+	_ZN12GlxMLWrapperD1Ev @ 35 NONAME
+	_ZN12GlxMLWrapperD2Ev @ 36 NONAME
+	_ZNK12GlxMLWrapper10metaObjectEv @ 37 NONAME
+	_ZNK12GlxMLWrapper13getFocusIndexEv @ 38 NONAME
+	_ZTI12GlxMLWrapper @ 39 NONAME
+	_ZTV12GlxMLWrapper @ 40 NONAME
 
--- a/ui/uiengine/medialists/bwins/glxmedialistsu.def	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/bwins/glxmedialistsu.def	Fri May 14 15:52:22 2010 +0300
@@ -40,88 +40,91 @@
 	?SetRange@TGlxSequentialIterator@@QAEXH@Z @ 39 NONAME ; void TGlxSequentialIterator::SetRange(int)
 	??1TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 40 NONAME ; TGlxFromVisibleIndexOutwardListIterator::~TGlxFromVisibleIndexOutwardListIterator(void)
 	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 41 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	?SetRangeOffsets@TGlxFromManualIndexBlockyIterator@@QAEXHH@Z @ 42 NONAME ; void TGlxFromManualIndexBlockyIterator::SetRangeOffsets(int, int)
-	?SetIndex@TGlxFromManualIndexOutwardBlockyIterator@@QAEXH@Z @ 43 NONAME ; void TGlxFromManualIndexOutwardBlockyIterator::SetIndex(int)
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 44 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 45 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 46 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?SetRange@TGlxSelectionIterator@@QAEXH@Z @ 47 NONAME ; void TGlxSelectionIterator::SetRange(int)
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 48 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 49 NONAME ; int TGlxMedia::GetDate(class TTime &) const
-	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 50 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
-	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 51 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
-	?SetDefaultSpec@CGlxAttributeContext@@QAEXHH@Z @ 52 NONAME ; void CGlxAttributeContext::SetDefaultSpec(int, int)
-	?IsStatic@TGlxMedia@@QBEHXZ @ 53 NONAME ; int TGlxMedia::IsStatic(void) const
-	??0CGlxListWindow@@QAE@AAVMGlxWindowObjectFactory@@@Z @ 54 NONAME ; CGlxListWindow::CGlxListWindow(class MGlxWindowObjectFactory &)
-	?AddSpecForItemL@CGlxThumbnailContext@@QAEXHHH@Z @ 55 NONAME ; void CGlxThumbnailContext::AddSpecForItemL(int, int, int)
-	??1CGlxDefaultAttributeContext@@UAE@XZ @ 56 NONAME ; CGlxDefaultAttributeContext::~CGlxDefaultAttributeContext(void)
-	?ThumbnailAttribute@TGlxMedia@@QBEPBVCGlxThumbnailAttribute@@AAVTMPXAttribute@@@Z @ 57 NONAME ; class CGlxThumbnailAttribute const * TGlxMedia::ThumbnailAttribute(class TMPXAttribute &) const
-	??1TGlxFirstThenLastIterator@@QAE@XZ @ 58 NONAME ; TGlxFirstThenLastIterator::~TGlxFirstThenLastIterator(void)
-	?Title@TGlxMedia@@QBEABVTDesC16@@XZ @ 59 NONAME ; class TDesC16 const & TGlxMedia::Title(void) const
-	??ETGlxSelectionIterator@@UAEHH@Z @ 60 NONAME ; int TGlxSelectionIterator::operator++(int)
-	?AddAttributeL@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 61 NONAME ; void CGlxAttributeContext::AddAttributeL(class TMPXAttribute const &)
-	?SetRangeOffsets@CGlxDefaultThumbnailContext@@QAEXHH@Z @ 62 NONAME ; void CGlxDefaultThumbnailContext::SetRangeOffsets(int, int)
-	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 63 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
-	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 64 NONAME ; int TGlxMedia::GetDuration(float &) const
-	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 65 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?InstanceL@MGlxMediaList@@SAPAV1@ABVCMPXCollectionPath@@ABV?$TGlxId@VTGlxIdHierarchyBase@@@@PAVCMPXMedia@@@Z @ 66 NONAME ; class MGlxMediaList * MGlxMediaList::InstanceL(class CMPXCollectionPath const &, class TGlxId<class TGlxIdHierarchyBase> const &, class CMPXMedia *)
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 67 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	?RemoveObjects@CGlxListWindow@@QAEXHHHH@Z @ 68 NONAME ; void CGlxListWindow::RemoveObjects(int, int, int, int)
-	?Iterator@CGlxListWindow@@QBE?AVTGlxWindowIterator@@XZ @ 69 NONAME ; class TGlxWindowIterator CGlxListWindow::Iterator(void) const
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 70 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	??0CGlxAttributeContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 71 NONAME ; CGlxAttributeContext::CGlxAttributeContext(class MGlxMediaListIterator *)
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 72 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 73 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
-	?AddObjects@CGlxListWindow@@QAEXHH@Z @ 74 NONAME ; void CGlxListWindow::AddObjects(int, int)
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 75 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 76 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
-	??0TGlxSequentialIterator@@QAE@XZ @ 77 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
-	?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 78 NONAME ; int CGlxAttributeContext::AttributeCount(void)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 79 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 80 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
-	?SetFocusIndex@CGlxListWindow@@QAEXHH@Z @ 81 NONAME ; void CGlxListWindow::SetFocusIndex(int, int)
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 82 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 83 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 84 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 85 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 86 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	??1CGlxMedia@@UAE@XZ @ 87 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 88 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 89 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	??1CGlxThumbnailContext@@UAE@XZ @ 90 NONAME ; CGlxThumbnailContext::~CGlxThumbnailContext(void)
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 91 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 92 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?RemoveObjects@CGlxListWindow@@QAEXHH@Z @ 93 NONAME ; void CGlxListWindow::RemoveObjects(int, int)
-	?Close@TGlxFetchContextRemover@@QAEXXZ @ 94 NONAME ; void TGlxFetchContextRemover::Close(void)
-	?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 95 NONAME ; class CBase const * CGlxListWindow::At(int) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 96 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
-	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 97 NONAME ; class CBase * CGlxListWindow::At(int)
-	??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 98 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void)
-	?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 99 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &)
-	??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void)
-	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 101 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
-	??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 102 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void)
-	?Cleanup@CGlxListWindow@@QAEXXZ @ 103 NONAME ; void CGlxListWindow::Cleanup(void)
-	??1TGlxExclusionIterator@@QAE@XZ @ 104 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
-	??1CGlxDefaultListAttributeContext@@UAE@XZ @ 105 NONAME ; CGlxDefaultListAttributeContext::~CGlxDefaultListAttributeContext(void)
-	??1TGlxFetchContextRemover@@QAE@XZ @ 106 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
-	?SetRangeOffsets@TGlxFromVisibleIndexOutwardListIterator@@QAEXHH@Z @ 107 NONAME ; void TGlxFromVisibleIndexOutwardListIterator::SetRangeOffsets(int, int)
-	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 108 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
-	??0TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 109 NONAME ; TGlxFromVisibleIndexOutwardListIterator::TGlxFromVisibleIndexOutwardListIterator(void)
-	??0TGlxSpecificIdIterator@@QAE@ABV?$TGlxId@VTGlxIdSpaceIdBase@@@@VTGlxMediaId@@@Z @ 110 NONAME ; TGlxSpecificIdIterator::TGlxSpecificIdIterator(class TGlxId<class TGlxIdSpaceIdBase> const &, class TGlxMediaId)
-	?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 111 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const
-	?MatchById@TGlxMedia@@SAHABV1@0@Z @ 112 NONAME ; int TGlxMedia::MatchById(class TGlxMedia const &, class TGlxMedia const &)
-	?SetRangeOffsetsL@CGlxListWindow@@QAEXHH@Z @ 113 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int)
-	?SetRangeOffsets@CGlxDefaultListAttributeContext@@QAEXHH@Z @ 114 NONAME ; void CGlxDefaultListAttributeContext::SetRangeOffsets(int, int)
-	?MimeType@TGlxMedia@@QBEABVTDesC16@@XZ @ 115 NONAME ; class TDesC16 const & TGlxMedia::MimeType(void) const
-	?Uri@TGlxMedia@@QBEABVTDesC16@@XZ @ 116 NONAME ; class TDesC16 const & TGlxMedia::Uri(void) const
-	??0TGlxFirstThenLastIterator@@QAE@XZ @ 117 NONAME ; TGlxFirstThenLastIterator::TGlxFirstThenLastIterator(void)
-	??1CGlxAttributeContext@@UAE@XZ @ 118 NONAME ; CGlxAttributeContext::~CGlxAttributeContext(void)
-	?SetRangeOffsets@CGlxDefaultAttributeContext@@QAEXHH@Z @ 119 NONAME ; void CGlxDefaultAttributeContext::SetRangeOffsets(int, int)
-	?ValueCObject@CGlxMedia@@QBEPBVCBase@@ABVTMPXAttribute@@@Z @ 120 NONAME ; class CBase const * CGlxMedia::ValueCObject(class TMPXAttribute const &) const
-	?GetCoordinate@TGlxMedia@@QBEHAAVTCoordinate@@@Z @ 121 NONAME ; int TGlxMedia::GetCoordinate(class TCoordinate &) const
-	?NewL@CGlxDefaultThumbnailContext@@SAPAV1@XZ @ 122 NONAME ; class CGlxDefaultThumbnailContext * CGlxDefaultThumbnailContext::NewL(void)
-	?IsSlideShowPlayableContent@TGlxMedia@@QBEHXZ @ 123 NONAME ; int TGlxMedia::IsSlideShowPlayableContent(void) const
-	??1TGlxFromFocusOutwardIterator@@QAE@XZ @ 124 NONAME ; TGlxFromFocusOutwardIterator::~TGlxFromFocusOutwardIterator(void)
-	?InRange@TGlxSelectionIterator@@UBEHH@Z @ 125 NONAME ; int TGlxSelectionIterator::InRange(int) const
+	??0TGlxScrollingDirectionIterator@@QAE@XZ @ 42 NONAME ; TGlxScrollingDirectionIterator::TGlxScrollingDirectionIterator(void)
+	?SetRangeOffsets@TGlxFromManualIndexBlockyIterator@@QAEXHH@Z @ 43 NONAME ; void TGlxFromManualIndexBlockyIterator::SetRangeOffsets(int, int)
+	?SetIndex@TGlxFromManualIndexOutwardBlockyIterator@@QAEXH@Z @ 44 NONAME ; void TGlxFromManualIndexOutwardBlockyIterator::SetIndex(int)
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 45 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 46 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 47 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?SetRange@TGlxSelectionIterator@@QAEXH@Z @ 48 NONAME ; void TGlxSelectionIterator::SetRange(int)
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 49 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 50 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 51 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
+	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 52 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
+	?SetDefaultSpec@CGlxAttributeContext@@QAEXHH@Z @ 53 NONAME ; void CGlxAttributeContext::SetDefaultSpec(int, int)
+	?IsStatic@TGlxMedia@@QBEHXZ @ 54 NONAME ; int TGlxMedia::IsStatic(void) const
+	??0CGlxListWindow@@QAE@AAVMGlxWindowObjectFactory@@@Z @ 55 NONAME ; CGlxListWindow::CGlxListWindow(class MGlxWindowObjectFactory &)
+	?AddSpecForItemL@CGlxThumbnailContext@@QAEXHHH@Z @ 56 NONAME ; void CGlxThumbnailContext::AddSpecForItemL(int, int, int)
+	??1CGlxDefaultAttributeContext@@UAE@XZ @ 57 NONAME ; CGlxDefaultAttributeContext::~CGlxDefaultAttributeContext(void)
+	?ThumbnailAttribute@TGlxMedia@@QBEPBVCGlxThumbnailAttribute@@AAVTMPXAttribute@@@Z @ 58 NONAME ; class CGlxThumbnailAttribute const * TGlxMedia::ThumbnailAttribute(class TMPXAttribute &) const
+	??1TGlxFirstThenLastIterator@@QAE@XZ @ 59 NONAME ; TGlxFirstThenLastIterator::~TGlxFirstThenLastIterator(void)
+	?Title@TGlxMedia@@QBEABVTDesC16@@XZ @ 60 NONAME ; class TDesC16 const & TGlxMedia::Title(void) const
+	??ETGlxSelectionIterator@@UAEHH@Z @ 61 NONAME ; int TGlxSelectionIterator::operator++(int)
+	?AddAttributeL@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 62 NONAME ; void CGlxAttributeContext::AddAttributeL(class TMPXAttribute const &)
+	?SetRangeOffsets@CGlxDefaultThumbnailContext@@QAEXHH@Z @ 63 NONAME ; void CGlxDefaultThumbnailContext::SetRangeOffsets(int, int)
+	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 64 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
+	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 65 NONAME ; int TGlxMedia::GetDuration(float &) const
+	?SetRangeOffsets@TGlxScrollingDirectionIterator@@QAEXHH@Z @ 66 NONAME ; void TGlxScrollingDirectionIterator::SetRangeOffsets(int, int)
+	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 67 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
+	?InstanceL@MGlxMediaList@@SAPAV1@ABVCMPXCollectionPath@@ABV?$TGlxId@VTGlxIdHierarchyBase@@@@PAVCMPXMedia@@@Z @ 68 NONAME ; class MGlxMediaList * MGlxMediaList::InstanceL(class CMPXCollectionPath const &, class TGlxId<class TGlxIdHierarchyBase> const &, class CMPXMedia *)
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 69 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	?RemoveObjects@CGlxListWindow@@QAEXHHHH@Z @ 70 NONAME ; void CGlxListWindow::RemoveObjects(int, int, int, int)
+	?Iterator@CGlxListWindow@@QBE?AVTGlxWindowIterator@@XZ @ 71 NONAME ; class TGlxWindowIterator CGlxListWindow::Iterator(void) const
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 72 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	??0CGlxAttributeContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 73 NONAME ; CGlxAttributeContext::CGlxAttributeContext(class MGlxMediaListIterator *)
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 74 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 75 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
+	?AddObjects@CGlxListWindow@@QAEXHH@Z @ 76 NONAME ; void CGlxListWindow::AddObjects(int, int)
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 77 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 78 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
+	??0TGlxSequentialIterator@@QAE@XZ @ 79 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
+	?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 80 NONAME ; int CGlxAttributeContext::AttributeCount(void)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 81 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 82 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
+	?SetFocusIndex@CGlxListWindow@@QAEXHH@Z @ 83 NONAME ; void CGlxListWindow::SetFocusIndex(int, int)
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 84 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 85 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 86 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 87 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 88 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	??1CGlxMedia@@UAE@XZ @ 89 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 90 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 91 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	??1CGlxThumbnailContext@@UAE@XZ @ 92 NONAME ; CGlxThumbnailContext::~CGlxThumbnailContext(void)
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 93 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 94 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	?RemoveObjects@CGlxListWindow@@QAEXHH@Z @ 95 NONAME ; void CGlxListWindow::RemoveObjects(int, int)
+	?Close@TGlxFetchContextRemover@@QAEXXZ @ 96 NONAME ; void TGlxFetchContextRemover::Close(void)
+	?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 97 NONAME ; class CBase const * CGlxListWindow::At(int) const
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 98 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
+	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 99 NONAME ; class CBase * CGlxListWindow::At(int)
+	??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void)
+	?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 101 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &)
+	??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 102 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void)
+	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 103 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
+	??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 104 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void)
+	?Cleanup@CGlxListWindow@@QAEXXZ @ 105 NONAME ; void CGlxListWindow::Cleanup(void)
+	??1TGlxScrollingDirectionIterator@@QAE@XZ @ 106 NONAME ; TGlxScrollingDirectionIterator::~TGlxScrollingDirectionIterator(void)
+	??1TGlxExclusionIterator@@QAE@XZ @ 107 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
+	??1CGlxDefaultListAttributeContext@@UAE@XZ @ 108 NONAME ; CGlxDefaultListAttributeContext::~CGlxDefaultListAttributeContext(void)
+	??1TGlxFetchContextRemover@@QAE@XZ @ 109 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
+	?SetRangeOffsets@TGlxFromVisibleIndexOutwardListIterator@@QAEXHH@Z @ 110 NONAME ; void TGlxFromVisibleIndexOutwardListIterator::SetRangeOffsets(int, int)
+	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 111 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
+	??0TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 112 NONAME ; TGlxFromVisibleIndexOutwardListIterator::TGlxFromVisibleIndexOutwardListIterator(void)
+	??0TGlxSpecificIdIterator@@QAE@ABV?$TGlxId@VTGlxIdSpaceIdBase@@@@VTGlxMediaId@@@Z @ 113 NONAME ; TGlxSpecificIdIterator::TGlxSpecificIdIterator(class TGlxId<class TGlxIdSpaceIdBase> const &, class TGlxMediaId)
+	?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 114 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const
+	?MatchById@TGlxMedia@@SAHABV1@0@Z @ 115 NONAME ; int TGlxMedia::MatchById(class TGlxMedia const &, class TGlxMedia const &)
+	?SetRangeOffsetsL@CGlxListWindow@@QAEXHH@Z @ 116 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int)
+	?SetRangeOffsets@CGlxDefaultListAttributeContext@@QAEXHH@Z @ 117 NONAME ; void CGlxDefaultListAttributeContext::SetRangeOffsets(int, int)
+	?MimeType@TGlxMedia@@QBEABVTDesC16@@XZ @ 118 NONAME ; class TDesC16 const & TGlxMedia::MimeType(void) const
+	?Uri@TGlxMedia@@QBEABVTDesC16@@XZ @ 119 NONAME ; class TDesC16 const & TGlxMedia::Uri(void) const
+	??0TGlxFirstThenLastIterator@@QAE@XZ @ 120 NONAME ; TGlxFirstThenLastIterator::TGlxFirstThenLastIterator(void)
+	??1CGlxAttributeContext@@UAE@XZ @ 121 NONAME ; CGlxAttributeContext::~CGlxAttributeContext(void)
+	?SetRangeOffsets@CGlxDefaultAttributeContext@@QAEXHH@Z @ 122 NONAME ; void CGlxDefaultAttributeContext::SetRangeOffsets(int, int)
+	?ValueCObject@CGlxMedia@@QBEPBVCBase@@ABVTMPXAttribute@@@Z @ 123 NONAME ; class CBase const * CGlxMedia::ValueCObject(class TMPXAttribute const &) const
+	?GetCoordinate@TGlxMedia@@QBEHAAVTCoordinate@@@Z @ 124 NONAME ; int TGlxMedia::GetCoordinate(class TCoordinate &) const
+	?NewL@CGlxDefaultThumbnailContext@@SAPAV1@XZ @ 125 NONAME ; class CGlxDefaultThumbnailContext * CGlxDefaultThumbnailContext::NewL(void)
+	?IsSlideShowPlayableContent@TGlxMedia@@QBEHXZ @ 126 NONAME ; int TGlxMedia::IsSlideShowPlayableContent(void) const
+	??1TGlxFromFocusOutwardIterator@@QAE@XZ @ 127 NONAME ; TGlxFromFocusOutwardIterator::~TGlxFromFocusOutwardIterator(void)
+	?InRange@TGlxSelectionIterator@@UBEHH@Z @ 128 NONAME ; int TGlxSelectionIterator::InRange(int) const
 
--- a/ui/uiengine/medialists/eabi/glxmedialistsu.def	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/eabi/glxmedialistsu.def	Fri May 14 15:52:22 2010 +0300
@@ -85,121 +85,128 @@
 	_ZN28TGlxFromFocusOutwardIteratorC2Ev @ 84 NONAME
 	_ZN28TGlxFromFocusOutwardIteratorD1Ev @ 85 NONAME
 	_ZN28TGlxFromFocusOutwardIteratorD2Ev @ 86 NONAME
-	_ZN31CGlxDefaultListAttributeContext15SetRangeOffsetsEii @ 87 NONAME
-	_ZN31CGlxDefaultListAttributeContext4NewLEv @ 88 NONAME
-	_ZN31CGlxDefaultListAttributeContextD0Ev @ 89 NONAME
-	_ZN31CGlxDefaultListAttributeContextD1Ev @ 90 NONAME
-	_ZN31CGlxDefaultListAttributeContextD2Ev @ 91 NONAME
-	_ZN33TGlxFromManualIndexBlockyIterator15SetRangeOffsetsEii @ 92 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorC1Ev @ 93 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorC2Ev @ 94 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorD1Ev @ 95 NONAME
-	_ZN33TGlxFromManualIndexBlockyIteratorD2Ev @ 96 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorC1Ev @ 97 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorC2Ev @ 98 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorD1Ev @ 99 NONAME
-	_ZN34TGlxFromFocusOutwardBlockyIteratorD2Ev @ 100 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIterator15SetRangeOffsetsEii @ 101 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorC1ERKNS_9MGlxIndexE @ 102 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorC2ERKNS_9MGlxIndexE @ 103 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorD1Ev @ 104 NONAME
-	_ZN34TGlxFromIndexOutwardBlockyIteratorD2Ev @ 105 NONAME
-	_ZN39TGlxFromVisibleIndexOutwardListIterator15SetRangeOffsetsEii @ 106 NONAME
-	_ZN39TGlxFromVisibleIndexOutwardListIteratorC1Ev @ 107 NONAME
-	_ZN39TGlxFromVisibleIndexOutwardListIteratorC2Ev @ 108 NONAME
-	_ZN39TGlxFromVisibleIndexOutwardListIteratorD1Ev @ 109 NONAME
-	_ZN39TGlxFromVisibleIndexOutwardListIteratorD2Ev @ 110 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIterator8SetIndexEi @ 111 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC1Ev @ 112 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC2Ev @ 113 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD1Ev @ 114 NONAME
-	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD2Ev @ 115 NONAME
-	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 116 NONAME
-	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 117 NONAME
-	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 118 NONAME
-	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 119 NONAME
-	_ZN9CGlxMedia5ResetEv @ 120 NONAME
-	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 121 NONAME
-	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 122 NONAME
-	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 123 NONAME
-	_ZN9CGlxMediaD0Ev @ 124 NONAME
-	_ZN9CGlxMediaD1Ev @ 125 NONAME
-	_ZN9CGlxMediaD2Ev @ 126 NONAME
-	_ZN9MGlxCache9InstanceLEv @ 127 NONAME
-	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 128 NONAME
-	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 129 NONAME
-	_ZNK14CGlxListWindow2AtEi @ 130 NONAME
-	_ZNK14CGlxListWindow8IteratorEv @ 131 NONAME
-	_ZNK21TGlxSelectionIterator7InRangeEi @ 132 NONAME
-	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 133 NONAME
-	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 134 NONAME
-	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 135 NONAME
-	_ZNK9TGlxMedia11GetDurationERf @ 136 NONAME
-	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 137 NONAME
-	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 138 NONAME
-	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 139 NONAME
-	_ZNK9TGlxMedia13GetFrameCountERi @ 140 NONAME
-	_ZNK9TGlxMedia13GetSystemItemERi @ 141 NONAME
-	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 142 NONAME
-	_ZNK9TGlxMedia14IsDrmProtectedEv @ 143 NONAME
-	_ZNK9TGlxMedia15GetDrmProtectedERi @ 144 NONAME
-	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 145 NONAME
-	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 146 NONAME
-	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 147 NONAME
-	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 148 NONAME
-	_ZNK9TGlxMedia21GetContainedItemCountERi @ 149 NONAME
-	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 150 NONAME
-	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 151 NONAME
-	_ZNK9TGlxMedia3UriEv @ 152 NONAME
-	_ZNK9TGlxMedia5TitleEv @ 153 NONAME
-	_ZNK9TGlxMedia7CommentEv @ 154 NONAME
-	_ZNK9TGlxMedia7GetDateER5TTime @ 155 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 156 NONAME
-	_ZNK9TGlxMedia8CategoryEv @ 157 NONAME
-	_ZNK9TGlxMedia8IsStaticEv @ 158 NONAME
-	_ZNK9TGlxMedia8MimeTypeEv @ 159 NONAME
-	_ZNK9TGlxMedia8SubTitleEv @ 160 NONAME
-	_ZNK9TGlxMedia9IdSpaceIdEv @ 161 NONAME
-	_ZTI13CGlxMediaList @ 162 NONAME
-	_ZTI14CGlxListWindow @ 163 NONAME
-	_ZTI15CGlxImageReader @ 164 NONAME
-	_ZTI16CGlxCacheManager @ 165 NONAME
-	_ZTI20CGlxAttributeContext @ 166 NONAME
-	_ZTI20CGlxGarbageCollector @ 167 NONAME
-	_ZTI20CGlxThumbnailContext @ 168 NONAME
-	_ZTI21TGlxExclusionIterator @ 169 NONAME
-	_ZTI21TGlxSelectionIterator @ 170 NONAME
-	_ZTI22TGlxSequentialIterator @ 171 NONAME
-	_ZTI22TGlxSpecificIdIterator @ 172 NONAME
-	_ZTI25TGlxFirstThenLastIterator @ 173 NONAME
-	_ZTI27CGlxDefaultAttributeContext @ 174 NONAME
-	_ZTI27CGlxDefaultThumbnailContext @ 175 NONAME
-	_ZTI28TGlxFromFocusOutwardIterator @ 176 NONAME
-	_ZTI31CGlxDefaultListAttributeContext @ 177 NONAME
-	_ZTI33TGlxFromManualIndexBlockyIterator @ 178 NONAME
-	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 179 NONAME
-	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 180 NONAME
-	_ZTI39TGlxFromVisibleIndexOutwardListIterator @ 181 NONAME
-	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 182 NONAME
-	_ZTV13CGlxMediaList @ 183 NONAME
-	_ZTV14CGlxListWindow @ 184 NONAME
-	_ZTV15CGlxImageReader @ 185 NONAME
-	_ZTV16CGlxCacheManager @ 186 NONAME
-	_ZTV20CGlxAttributeContext @ 187 NONAME
-	_ZTV20CGlxGarbageCollector @ 188 NONAME
-	_ZTV20CGlxThumbnailContext @ 189 NONAME
-	_ZTV21TGlxExclusionIterator @ 190 NONAME
-	_ZTV21TGlxSelectionIterator @ 191 NONAME
-	_ZTV22TGlxSequentialIterator @ 192 NONAME
-	_ZTV22TGlxSpecificIdIterator @ 193 NONAME
-	_ZTV25TGlxFirstThenLastIterator @ 194 NONAME
-	_ZTV27CGlxDefaultAttributeContext @ 195 NONAME
-	_ZTV27CGlxDefaultThumbnailContext @ 196 NONAME
-	_ZTV28TGlxFromFocusOutwardIterator @ 197 NONAME
-	_ZTV31CGlxDefaultListAttributeContext @ 198 NONAME
-	_ZTV33TGlxFromManualIndexBlockyIterator @ 199 NONAME
-	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 200 NONAME
-	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 201 NONAME
-	_ZTV39TGlxFromVisibleIndexOutwardListIterator @ 202 NONAME
-	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 203 NONAME
+	_ZN30TGlxScrollingDirectionIterator15SetRangeOffsetsEii @ 87 NONAME
+	_ZN30TGlxScrollingDirectionIteratorC1Ev @ 88 NONAME
+	_ZN30TGlxScrollingDirectionIteratorC2Ev @ 89 NONAME
+	_ZN30TGlxScrollingDirectionIteratorD1Ev @ 90 NONAME
+	_ZN30TGlxScrollingDirectionIteratorD2Ev @ 91 NONAME
+	_ZN31CGlxDefaultListAttributeContext15SetRangeOffsetsEii @ 92 NONAME
+	_ZN31CGlxDefaultListAttributeContext4NewLEv @ 93 NONAME
+	_ZN31CGlxDefaultListAttributeContextD0Ev @ 94 NONAME
+	_ZN31CGlxDefaultListAttributeContextD1Ev @ 95 NONAME
+	_ZN31CGlxDefaultListAttributeContextD2Ev @ 96 NONAME
+	_ZN33TGlxFromManualIndexBlockyIterator15SetRangeOffsetsEii @ 97 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorC1Ev @ 98 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorC2Ev @ 99 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorD1Ev @ 100 NONAME
+	_ZN33TGlxFromManualIndexBlockyIteratorD2Ev @ 101 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorC1Ev @ 102 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorC2Ev @ 103 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorD1Ev @ 104 NONAME
+	_ZN34TGlxFromFocusOutwardBlockyIteratorD2Ev @ 105 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIterator15SetRangeOffsetsEii @ 106 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorC1ERKNS_9MGlxIndexE @ 107 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorC2ERKNS_9MGlxIndexE @ 108 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorD1Ev @ 109 NONAME
+	_ZN34TGlxFromIndexOutwardBlockyIteratorD2Ev @ 110 NONAME
+	_ZN39TGlxFromVisibleIndexOutwardListIterator15SetRangeOffsetsEii @ 111 NONAME
+	_ZN39TGlxFromVisibleIndexOutwardListIteratorC1Ev @ 112 NONAME
+	_ZN39TGlxFromVisibleIndexOutwardListIteratorC2Ev @ 113 NONAME
+	_ZN39TGlxFromVisibleIndexOutwardListIteratorD1Ev @ 114 NONAME
+	_ZN39TGlxFromVisibleIndexOutwardListIteratorD2Ev @ 115 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIterator8SetIndexEi @ 116 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC1Ev @ 117 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorC2Ev @ 118 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD1Ev @ 119 NONAME
+	_ZN40TGlxFromManualIndexOutwardBlockyIteratorD2Ev @ 120 NONAME
+	_ZN9CGlxMedia13SetTextValueLERK13TMPXAttributeRK7TDesC16 @ 121 NONAME
+	_ZN9CGlxMedia14HandleModifiedERK6RArrayI13TMPXAttributeE @ 122 NONAME
+	_ZN9CGlxMedia15DeleteAttributeERK13TMPXAttribute @ 123 NONAME
+	_ZN9CGlxMedia16SetCObjectValueLERK13TMPXAttributeP5CBase @ 124 NONAME
+	_ZN9CGlxMedia5ResetEv @ 125 NONAME
+	_ZN9CGlxMedia9SetValueLERK13TMPXAttributePv17TMPXAttributeType @ 126 NONAME
+	_ZN9CGlxMediaC1ERK11TGlxMediaId @ 127 NONAME
+	_ZN9CGlxMediaC2ERK11TGlxMediaId @ 128 NONAME
+	_ZN9CGlxMediaD0Ev @ 129 NONAME
+	_ZN9CGlxMediaD1Ev @ 130 NONAME
+	_ZN9CGlxMediaD2Ev @ 131 NONAME
+	_ZN9MGlxCache9InstanceLEv @ 132 NONAME
+	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 133 NONAME
+	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 134 NONAME
+	_ZNK14CGlxListWindow2AtEi @ 135 NONAME
+	_ZNK14CGlxListWindow8IteratorEv @ 136 NONAME
+	_ZNK21TGlxSelectionIterator7InRangeEi @ 137 NONAME
+	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 138 NONAME
+	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 139 NONAME
+	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 140 NONAME
+	_ZNK9TGlxMedia11GetDurationERf @ 141 NONAME
+	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 142 NONAME
+	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 143 NONAME
+	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 144 NONAME
+	_ZNK9TGlxMedia13GetFrameCountERi @ 145 NONAME
+	_ZNK9TGlxMedia13GetSystemItemERi @ 146 NONAME
+	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 147 NONAME
+	_ZNK9TGlxMedia14IsDrmProtectedEv @ 148 NONAME
+	_ZNK9TGlxMedia15GetDrmProtectedERi @ 149 NONAME
+	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 150 NONAME
+	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 151 NONAME
+	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 152 NONAME
+	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 153 NONAME
+	_ZNK9TGlxMedia21GetContainedItemCountERi @ 154 NONAME
+	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 155 NONAME
+	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 156 NONAME
+	_ZNK9TGlxMedia3UriEv @ 157 NONAME
+	_ZNK9TGlxMedia5TitleEv @ 158 NONAME
+	_ZNK9TGlxMedia7CommentEv @ 159 NONAME
+	_ZNK9TGlxMedia7GetDateER5TTime @ 160 NONAME
+	_ZNK9TGlxMedia7GetSizeERi @ 161 NONAME
+	_ZNK9TGlxMedia8CategoryEv @ 162 NONAME
+	_ZNK9TGlxMedia8IsStaticEv @ 163 NONAME
+	_ZNK9TGlxMedia8MimeTypeEv @ 164 NONAME
+	_ZNK9TGlxMedia8SubTitleEv @ 165 NONAME
+	_ZNK9TGlxMedia9IdSpaceIdEv @ 166 NONAME
+	_ZTI13CGlxMediaList @ 167 NONAME
+	_ZTI14CGlxListWindow @ 168 NONAME
+	_ZTI15CGlxImageReader @ 169 NONAME
+	_ZTI16CGlxCacheManager @ 170 NONAME
+	_ZTI20CGlxAttributeContext @ 171 NONAME
+	_ZTI20CGlxGarbageCollector @ 172 NONAME
+	_ZTI20CGlxThumbnailContext @ 173 NONAME
+	_ZTI21TGlxExclusionIterator @ 174 NONAME
+	_ZTI21TGlxSelectionIterator @ 175 NONAME
+	_ZTI22TGlxSequentialIterator @ 176 NONAME
+	_ZTI22TGlxSpecificIdIterator @ 177 NONAME
+	_ZTI25TGlxFirstThenLastIterator @ 178 NONAME
+	_ZTI27CGlxDefaultAttributeContext @ 179 NONAME
+	_ZTI27CGlxDefaultThumbnailContext @ 180 NONAME
+	_ZTI28TGlxFromFocusOutwardIterator @ 181 NONAME
+	_ZTI30TGlxScrollingDirectionIterator @ 182 NONAME
+	_ZTI31CGlxDefaultListAttributeContext @ 183 NONAME
+	_ZTI33TGlxFromManualIndexBlockyIterator @ 184 NONAME
+	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 185 NONAME
+	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 186 NONAME
+	_ZTI39TGlxFromVisibleIndexOutwardListIterator @ 187 NONAME
+	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 188 NONAME
+	_ZTV13CGlxMediaList @ 189 NONAME
+	_ZTV14CGlxListWindow @ 190 NONAME
+	_ZTV15CGlxImageReader @ 191 NONAME
+	_ZTV16CGlxCacheManager @ 192 NONAME
+	_ZTV20CGlxAttributeContext @ 193 NONAME
+	_ZTV20CGlxGarbageCollector @ 194 NONAME
+	_ZTV20CGlxThumbnailContext @ 195 NONAME
+	_ZTV21TGlxExclusionIterator @ 196 NONAME
+	_ZTV21TGlxSelectionIterator @ 197 NONAME
+	_ZTV22TGlxSequentialIterator @ 198 NONAME
+	_ZTV22TGlxSpecificIdIterator @ 199 NONAME
+	_ZTV25TGlxFirstThenLastIterator @ 200 NONAME
+	_ZTV27CGlxDefaultAttributeContext @ 201 NONAME
+	_ZTV27CGlxDefaultThumbnailContext @ 202 NONAME
+	_ZTV28TGlxFromFocusOutwardIterator @ 203 NONAME
+	_ZTV30TGlxScrollingDirectionIterator @ 204 NONAME
+	_ZTV31CGlxDefaultListAttributeContext @ 205 NONAME
+	_ZTV33TGlxFromManualIndexBlockyIterator @ 206 NONAME
+	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 207 NONAME
+	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 208 NONAME
+	_ZTV39TGlxFromVisibleIndexOutwardListIterator @ 209 NONAME
+	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 210 NONAME
 
--- a/ui/uiengine/medialists/group/glxmedialists.mmp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/group/glxmedialists.mmp	Fri May 14 15:52:22 2010 +0300
@@ -70,7 +70,7 @@
 
 // if you comment the lines below out, Photos dB will be used for thumbnail fetching
 MACRO USE_S60_TNM
-MACRO MEDIA_ID_BASED_TN_FETCH_ENABLED
+// MACRO MEDIA_ID_BASED_TN_FETCH_ENABLED
 #define USE_S60_TNM
 
 LIBRARY                 avkon.lib					// CAknView
--- a/ui/uiengine/medialists/inc/glxmedialist.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/inc/glxmedialist.h	Fri May 14 15:52:22 2010 +0300
@@ -180,6 +180,9 @@
 
     /// See @ref MGlxMediaList::CancelCommand
     void CancelCommand();
+    
+    /// See @ref MGlxMediaList::IsCommandActive
+    TBool IsCommandActive();
 
     /// See @ref MGlxMediaList::SetFilterL
     void SetFilterL(CMPXFilter* aFilter);
--- a/ui/uiengine/medialists/inc/glxmedialistiterator.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/inc/glxmedialistiterator.h	Fri May 14 15:52:22 2010 +0300
@@ -554,5 +554,64 @@
 	const MGlxMediaList* iList;
 	};
 	
+/**
+ * TGlxScrollingDirectionIterator
+ * 
+ * Ordered that returns the index of the visible window item based on ScrollDirection
+ */	
+class TGlxScrollingDirectionIterator : public MGlxMediaListIterator
+	{
+	
+public:
+    
+	 IMPORT_C ~TGlxScrollingDirectionIterator( );
+	 IMPORT_C TGlxScrollingDirectionIterator( );
+	
+	/**
+	 * Set the range offsets
+	 */
+     IMPORT_C void SetRangeOffsets(TInt aRearOffset, TInt aFrontOffset);
+    
+    // From MGlxMediaListIterator
+	virtual void SetToFirst(const MGlxMediaList* aList);
+	virtual TInt operator++(TInt);
+	virtual TBool InRange(TInt aIndex) const;
+
+private:
+    
+    enum TMovingDirection
+        {
+        EForward,
+        EBackward,
+        EIdle
+        };
+    
+	/**	
+	 * The count or ordinal of the item that is currently "selected"
+	 * This translates to how many times ++ has been called
+	 */
+	TInt iCurrentItem;
+
+	/**
+	 * Number of items within range after visible index
+	 */
+	TInt iFrontOffset;
+
+	/**
+	 * Number of items within range before visible index
+	 */
+	TInt iRearOffset;
+    
+	TInt iDefaultVisItems;
+	TMovingDirection iMovingDirection;
+	TInt iExVisindex;
+	
+protected:	
+	/**
+	 * List being traversed
+	 */
+	const MGlxMediaList* iList;
+	};
+	
 #endif // __C_GLXMEDIALISTITERATOR_H__
 
--- a/ui/uiengine/medialists/inc/glxthumbnailcontext.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/inc/glxthumbnailcontext.h	Fri May 14 15:52:22 2010 +0300
@@ -31,7 +31,7 @@
 class CGlxAttributeContext;
 class CGlxDRMUtility;
 class CGlxResolutionUtility;
-class MGlxCache;
+//class MGlxCache;
 class MGlxMediaList;
 class TGlxMedia;
 
@@ -207,7 +207,7 @@
     MGlxMediaListIterator* iIterator;	
 
     /** Cache manager interface (owned) */
-    MGlxCache* iCache;
+    //MGlxCache* iCache;
 
     /** Utility to translate between pixels and poss units */
     CGlxResolutionUtility* iResolutionUtility;
--- a/ui/uiengine/medialists/inc/mglxmedialist.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/inc/mglxmedialist.h	Fri May 14 15:52:22 2010 +0300
@@ -223,6 +223,11 @@
      * Cancels a command on the collection
      */
     virtual void CancelCommand() = 0;
+	
+	/**
+     * Checks if  a command is active or not
+     */
+	virtual TBool IsCommandActive()= 0;
 
     /**
      * Sets a filter on the collection.  The filter will replace any existing
--- a/ui/uiengine/medialists/src/glxcachemanager.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/src/glxcachemanager.cpp	Fri May 14 15:52:22 2010 +0300
@@ -620,7 +620,8 @@
 						        }
 						    else
 						        {
-						        iTnEngine->SetQualityPreferenceL(CThumbnailManager::EOptimizeForQualityWithPreview);
+						        //iTnEngine->SetQualityPreferenceL(CThumbnailManager::EOptimizeForQualityWithPreview);
+						        iTnEngine->SetQualityPreferenceL(CThumbnailManager::EOptimizeForPerformance);
                                 GLX_DEBUG1("MaintainCacheL() - Fetch TN attrib - EOptimizeForQualityWithPreview");                                
                                 }
                             
@@ -707,7 +708,9 @@
                         {
                         CGlxImageViewerManager *imageVwrMgr = CGlxImageViewerManager::InstanceL();
 						CleanupClosePushL(*imageVwrMgr);
+#ifdef _DEBUG
                         TInt mediaCnt = list->Count();
+#endif                        
                         TInt errInImage = KErrNone;
  
                         
--- a/ui/uiengine/medialists/src/glxlistutils.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/src/glxlistutils.cpp	Fri May 14 15:52:22 2010 +0300
@@ -61,7 +61,8 @@
     //Need to replace with KGlxDefaultVisibleItemsGranularity after
     //getting the feature flag.
     TInt ret = KGlxVGAVisibleItemsGranularity;
-    FeatureManager::InitializeLibL();
+//  for 10.1 we need it to be 21,
+    /*FeatureManager::InitializeLibL();
     
     if (FeatureManager::FeatureSupported( KFeatureIdLayout640_360_Touch ) || 
         FeatureManager::FeatureSupported( KFeatureIdLayout360_640_Touch ))
@@ -75,6 +76,6 @@
       {
       ret = KGlxVGAVisibleItemsGranularity;
       }
-    FeatureManager::UnInitializeLib(); 
+    FeatureManager::UnInitializeLib(); */
     return ret;
     }
--- a/ui/uiengine/medialists/src/glxmedialist.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/src/glxmedialist.cpp	Fri May 14 15:52:22 2010 +0300
@@ -866,6 +866,24 @@
     }
 
 // -----------------------------------------------------------------------------
+// Checks if a command is active or not
+// -----------------------------------------------------------------------------
+TBool CGlxMediaList::IsCommandActive()
+    {
+    TRACER("CGlxMediaList::IsCommandActive");
+
+    if(iCommandPending)
+        {
+         return ETrue;  
+        }
+    else
+        {
+         return EFalse;
+        }
+    }
+
+
+// -----------------------------------------------------------------------------
 // Cancels a command on the collection
 // -----------------------------------------------------------------------------
 void CGlxMediaList::CancelCommand()
--- a/ui/uiengine/medialists/src/glxmedialistiterator.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/src/glxmedialistiterator.cpp	Fri May 14 15:52:22 2010 +0300
@@ -1212,3 +1212,152 @@
         return aIndex <= lastInRange || aIndex >= firstInRange;
         }
     }
+
+// -----------------------------------------------------------------------------
+// Constructor
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TGlxScrollingDirectionIterator::TGlxScrollingDirectionIterator( )
+    {
+    TRACER("TGlxScrollingDirectionIterator::TGlxScrollingDirectionIterator");
+    iMovingDirection = EForward;
+    iExVisindex = 0;
+    iDefaultVisItems = GlxListUtils::VisibleItemsGranularityL();       
+    iCurrentItem = 0;
+    iFrontOffset = 4 * iDefaultVisItems;
+    iRearOffset = 2 * iDefaultVisItems;  // Rear Is Not Handled Yet, We Need To ?
+    iList = NULL;
+  }
+    
+// -----------------------------------------------------------------------------
+// Destructor
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TGlxScrollingDirectionIterator::~TGlxScrollingDirectionIterator()
+    {
+    TRACER("TGlxScrollingDirectionIterator::~TGlxScrollingDirectionIterator");
+    
+    } 
+
+// ----------------------------------------------------------------------------
+// Set range offsets
+// ----------------------------------------------------------------------------
+//
+EXPORT_C void TGlxScrollingDirectionIterator::SetRangeOffsets(TInt aRearOffset,
+    TInt aFrontOffset)
+    { 
+    TRACER("TGlxScrollingDirectionIterator::SetRangeOffsets");
+    
+    __ASSERT_DEBUG(aRearOffset >= 0 && aFrontOffset >= 0, Panic(EGlxPanicIllegalArgument)); 
+    iFrontOffset = Max(aFrontOffset, iDefaultVisItems );
+    iRearOffset = Max(aRearOffset, iDefaultVisItems );
+    }
+
+// -----------------------------------------------------------------------------
+// Set to first item
+// -----------------------------------------------------------------------------
+//
+void TGlxScrollingDirectionIterator::SetToFirst(const MGlxMediaList* aList) 
+    {
+    TRACER("TGlxScrollingDirectionIterator::SetToFirst");
+    __ASSERT_DEBUG(aList != NULL, Panic(EGlxPanicNullPointer));
+
+    iList = aList;
+    iCurrentItem = 0;
+    }
+
+// -----------------------------------------------------------------------------
+// Return the item index or KErrNotFound, and goes to next
+// -----------------------------------------------------------------------------
+//
+TInt TGlxScrollingDirectionIterator::operator++(TInt) 
+    {
+    TRACER("TGlxScrollingDirectionIterator::operator++");
+    __ASSERT_DEBUG(iList != NULL, Panic(EGlxPanicNullPointer));
+
+    TInt listCount = iList->Count();
+    TInt index = iList->VisibleWindowIndex();
+    __ASSERT_ALWAYS( index >= 0 && index <= listCount, Panic( EGlxPanicIllegalState ) );
+    
+    if (listCount <= 0 || iFrontOffset + iRearOffset < iCurrentItem || listCount <= iCurrentItem)
+        {
+        return KErrNotFound;
+        }
+  
+    if(iExVisindex < index)
+        {
+        iMovingDirection = EForward;
+        iExVisindex = index;
+        }
+    else if(iExVisindex > index)
+        {
+        iMovingDirection = EBackward;
+        iExVisindex = index;
+        }
+    
+    if(EForward == iMovingDirection)
+        {
+        if ((index + iCurrentItem  < index + iFrontOffset) && (index + iCurrentItem  < listCount))
+            {
+            index += iCurrentItem;
+            }
+        else
+            {
+            return KErrNotFound;
+            }
+        }
+    else
+        {
+        if((index + iDefaultVisItems - iCurrentItem > index + iDefaultVisItems - iFrontOffset) && (index + iDefaultVisItems - iCurrentItem < listCount))
+            {
+            index += iDefaultVisItems - iCurrentItem;
+            }
+        else
+            {
+            return KErrNotFound;
+            }
+        }
+
+      iCurrentItem++;
+    
+      // The index may be below 0 or above count. Normalise back to list indexes.
+      return GlxListUtils::NormalizedIndex(index, listCount); 
+      } 
+  
+// -----------------------------------------------------------------------------
+// Return ETrue if index is within range, EFalse otherwise,
+// -----------------------------------------------------------------------------
+//
+TBool TGlxScrollingDirectionIterator::InRange(TInt aIndex) const
+    {
+    TRACER("TGlxScrollingDirectionIterator::InRange");
+    
+    // Rear Window is Not Handled yet , Still We include Rear window in Consideration for Garbage Collection
+    // Need to Re-Visit
+    TInt count = iList->Count();
+  
+    // Handle the case where range is longer than count separately, because looping will
+    // confuse otherwise
+    if (count <= iRearOffset + iFrontOffset) 
+        {
+        // Range is longer than count, must be in range
+        return ETrue;
+        }
+  
+    TInt index = iList->VisibleWindowIndex();
+    __ASSERT_ALWAYS( index >= 0 && index < iList->Count(), Panic( EGlxPanicIllegalState ) );
+    
+    TInt firstInRange = GlxListUtils::NormalizedIndex(index - iRearOffset, count);
+    TInt lastInRange = GlxListUtils::NormalizedIndex(index + iFrontOffset, count);
+  
+    if (firstInRange <= lastInRange)
+        {
+        // Normal case:  |    F-------L   |
+        return aIndex >= firstInRange && aIndex <= lastInRange;
+        }
+    else 
+        {
+        // Looping case: |----L      F----|
+        return aIndex <= lastInRange || aIndex >= firstInRange;
+        }
+    }
--- a/ui/uiengine/medialists/src/glxthumbnailcontext.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialists/src/glxthumbnailcontext.cpp	Fri May 14 15:52:22 2010 +0300
@@ -32,7 +32,7 @@
 #include "glxmedialist.h"
 #include "glxerrormanager.h"
 #include "glxthumbnailutility.h"
-#include "mglxcache.h"
+//#include "mglxcache.h"
 #include "glxlistutils.h"
 
 /**
@@ -81,7 +81,7 @@
     {
     TRACER( "CGlxThumbnailContext::ConstructL");
     
-    iCache = MGlxCache::InstanceL();
+    //iCache = MGlxCache::InstanceL();
     iResolutionUtility = CGlxResolutionUtility::InstanceL();
   //  iResolutionUtility->AddObserverL( *this );
 
@@ -136,10 +136,10 @@
         iResolutionUtility->Close();
         }
 
-    if ( iCache )
+    /*if ( iCache )
         {
         iCache->Close();
-        }
+        }*/
     }
 
 // -----------------------------------------------------------------------------
@@ -224,10 +224,11 @@
     TBool drmValid = EFalse;
     TSize size = iDefaultSpecSize;
     const TGlxMedia& item( aList->Item( aListIndex ) );
-	if( item.GetDrmProtected(drmValid) && drmValid)
+    // DRM is Not Valid yet, can use it if its valid
+	/*if( item.GetDrmProtected(drmValid) && drmValid)
         {
         drmValid = CheckDRMStatusL( aListIndex, aList, size );	
-        }
+        }*/
 
     TLinearOrder<TMPXAttribute> orderer (&CGlxMediaList::AttributeOrder);
     // Always want high quality thumbnail
@@ -286,12 +287,12 @@
         GLX_DEBUG2("CGlxThumbnailContext::AttributeRequestL() listIndex=%d", listIndex);
         const TGlxMedia& item = aList->Item( listIndex );
         TSize size = iDefaultSpecSize;
-
-        TBool drmValid = EFalse;
+        // DRM is Not Valid yet, can use it if its valid
+        /*TBool drmValid = EFalse;
         if( item.GetDrmProtected(drmValid) && drmValid)
 	        {
 	        CheckDRMStatusL( listIndex, aList, size );	
-	        }
+	        }*/
 
         // Request high quality thumbnail if already have any thumbnail
         TBool quality = iHighQualityOnly
@@ -440,12 +441,12 @@
     if ( properties )
         {
         TSize size = iDefaultSpecSize;
-
-        TBool drmValid = EFalse;
+        // DRM is Not Valid yet, can use it if its valid
+        /*TBool drmValid = EFalse;
         if( item.GetDrmProtected(drmValid) && drmValid)
 	        {
 	        CheckDRMStatusL( aListIndex, aList, size );	
-	        }
+	        }*/
 
         // Want high quality thumbnail if already have any thumbnail
         TBool quality = iHighQualityOnly || thumbnail;
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h	Fri May 14 15:52:22 2010 +0300
@@ -33,6 +33,7 @@
 class GlxMLWrapperPrivate;
 class HbIcon;
 class CFbsBitmap;
+class QImage;
 //constant declarations
 
 
@@ -42,7 +43,7 @@
 #define GLX_MLWRAPPER_EXPORT Q_DECL_IMPORT
 #endif
 
-Q_DECLARE_METATYPE(CFbsBitmap*);
+Q_DECLARE_METATYPE(CFbsBitmap*)
 
 class GLX_MLWRAPPER_EXPORT GlxMLWrapper : public QObject
 {
@@ -51,7 +52,7 @@
 	/**
 	*constructor
 	*/
-    GlxMLWrapper(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType);
+    GlxMLWrapper(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri = NULL);
 	/**
 	*destructor
 	**/
@@ -68,6 +69,7 @@
 	* retrieveItemIcon()
 	*/
 	HbIcon* retrieveItemIcon(int index, GlxTBContextType aTBContextType);
+	QImage retrieveItemImage(int index, GlxTBContextType aTBContextType);
     void itemsAdded(int startIndex,int endIndex);
     void itemsRemoved(int startIndex,int endIndex);
     void handleReceivedIcon(int itemIndex, GlxTBContextType tbContextType);
@@ -93,6 +95,16 @@
 	 * @param1 index 
 	 */
 	QVariant RetrieveBitmap(int index);
+    /*
+     * retrieveListItemCount helps to retrive the number of images in the album
+     * @param1 index 
+     */
+	int  retrieveListItemCount(int index);
+    /*
+     * isSystemItem helps to get the system item information
+     * @param1 index 
+     */
+	bool isSystemItem( int aItemIndex );
 	
 signals:
      void updateItem(int index, GlxTBContextType tbContextType);
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Fri May 14 15:52:22 2010 +0300
@@ -31,6 +31,7 @@
 class CGlxMLGenericObserver;
 class CGlxThumbnailContext;
 class HbIcon;
+class QImage;
 class CGlxDefaultAttributeContext;
 class CGlxDefaultThumbnailContext;
 class CGlxDefaultListAttributeContext;
@@ -46,7 +47,7 @@
      *
      * @return Pointer to newly created object. NULL if creation fails. Avoiding Leave as would be called by a QT wrapper Class
      */
-    static GlxMLWrapperPrivate* Instance(GlxMLWrapper* aMLWrapper, int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType);								
+    static GlxMLWrapperPrivate* Instance(GlxMLWrapper* aMLWrapper, int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri);								
     /**
      * Destructor.
      */
@@ -100,6 +101,7 @@
 	* RetrieveItemIcon()
 	*/
 	HbIcon* RetrieveItemIcon(int index, GlxTBContextType aTBContextType);
+	QImage  RetrieveItemImage(int index, GlxTBContextType aTBContextType);
 	QString RetrieveListTitle(int index);
 	QString RetrieveListSubTitle(int index);
 	QString RetrieveItemUri(int index);
@@ -107,6 +109,8 @@
 	QDate   RetrieveItemDate(int index);
 	int     RetrieveItemFrameCount(int aItemIndex);
 	CFbsBitmap* RetrieveBitmap(int aItemIndex);
+	int     RetrieveListItemCount( int aItemIndex );
+	bool    isSystemItem( int aItemIndex );
 		
 private:
 
@@ -118,7 +122,7 @@
     /**
      * By default Symbian 2nd phase constructor is private.
      */
-    void ConstructL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType);
+    void ConstructL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri=NULL);
 	/**
      * Create an instance of Media List.
      *
@@ -126,8 +130,10 @@
      */
 	void CreateMediaListL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType);
 	void CreateMediaListAlbumItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType);
+	void CreateMediaListFavoritesItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri);
 	void SetThumbnailContextL(GlxContextMode aContextMode);
 	void SetListContextL(GlxContextMode aContextMode);
+	void SetFavouriteContextL();
 	void CreateGridContextL();
 	void CreateLsFsContextL();
 	void CreatePtFsContextL();
@@ -135,6 +141,7 @@
 	void RemoveLsFsContext();
 	void RemovePtFsContext();
 	void RemoveListContext();
+	void RemoveFavouriteContext();
 	//for the attribute filtering
 	TInt CheckTBAttributesPresenceandSanity(TInt aItemIndex,
 		const RArray<TMPXAttribute>& aAttributes, TMPXAttribute aThumbnailAttribute );
@@ -167,7 +174,8 @@
 	CGlxDefaultThumbnailContext* iPtFsThumbnailContext;
 	CGlxDefaultThumbnailContext* iLsFsThumbnailContext; 
 	CGlxDefaultThumbnailContext* iFocusFsThumbnailContext;
-    CGlxThumbnailContext* iFocusGridThumbnailContext;
+	CGlxDefaultThumbnailContext* iFocusGridThumbnailContext;
+	CGlxThumbnailContext* iFilmStripThumbnailContext;
 
 	//List related contexts
 	// Fetch context for retrieving title attribute
@@ -175,14 +183,17 @@
 
     // Fetch context for retrieving subtitle
     CGlxDefaultListAttributeContext* iSubtitleAttributeContext;
+
+    //to find if the image is in favorites or not
+   	CGlxDefaultAttributeContext *iFavouriteContext;	
 	
     CGlxThumbnailContext* iListThumbnailContext;
     // for thumbnail context
     TGlxFromVisibleIndexOutwardListIterator iThumbnailIterator;
 
 	// Iterators for Grid and FS
-    TGlxFromManualIndexBlockyIterator iBlockyIterator;
-    TGlxFromManualIndexBlockyIterator iBlockyIteratorForFocus;
+    TGlxScrollingDirectionIterator iBlockyIterator;
+    TGlxFromManualIndexBlockyIterator iBlockyIteratorForFilmStrip;
 
 	//Variables for checking the active contexts
 	//todo merge all these variables into 1 and have bitwise operation on them
@@ -192,5 +203,6 @@
 	TBool iLsListContextActivated; //currently not used as we have not implemented the logic for 3 thumbnails
 	TBool iPtListContextActivated; 
 	TBool iSelectionListContextActivated;
+
 };
 #endif //GLXMLWRAPPER_P_H 
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp	Fri May 14 15:52:22 2010 +0300
@@ -20,6 +20,7 @@
 //internal includes 
 #include "glxmlwrapper.h"
 #include "glxmlwrapper_p.h"
+#include <qimage.h>
 
 // ======== MEMBER FUNCTIONS ========
 
@@ -27,9 +28,9 @@
 // constructor.
 // ---------------------------------------------------------------------------
 //
-GlxMLWrapper::GlxMLWrapper(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType)
+GlxMLWrapper::GlxMLWrapper(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri)
 {
-    mMLWrapperPrivate = GlxMLWrapperPrivate::Instance(this, aCollectionId, aHierarchyId, aFilterType);
+    mMLWrapperPrivate = GlxMLWrapperPrivate::Instance(this, aCollectionId, aHierarchyId, aFilterType,uri);
 }
 
 // ---------------------------------------------------------------------------
@@ -69,6 +70,11 @@
 
 }
 
+QImage GlxMLWrapper::retrieveItemImage(int index, GlxTBContextType aTBContextType)
+{
+    return (mMLWrapperPrivate->RetrieveItemImage(index,aTBContextType));
+}
+
 // ---------------------------------------------------------------------------
 // retrieveItemIcon.
 // ---------------------------------------------------------------------------
@@ -120,6 +126,16 @@
     return var;
 }
 
+int GlxMLWrapper::retrieveListItemCount(int index)
+{
+    return mMLWrapperPrivate->RetrieveListItemCount( index ) ;
+}
+
+bool GlxMLWrapper::isSystemItem( int aItemIndex )
+{
+    return mMLWrapperPrivate->isSystemItem( aItemIndex );   
+}
+
 // ---------------------------------------------------------------------------
 // getFocusIndex.
 // ---------------------------------------------------------------------------
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Fri May 14 15:52:22 2010 +0300
@@ -68,13 +68,13 @@
 // ---------------------------------------------------------------------------
 //
 GlxMLWrapperPrivate* GlxMLWrapperPrivate::Instance(GlxMLWrapper* aMLWrapper,
-    int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType)
+    int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri)
     {
     TRACER("GlxMLWrapperPrivate::NewLC()");
 
     GlxMLWrapperPrivate* self = new GlxMLWrapperPrivate(aMLWrapper);
    if(self){
-	   TRAPD(err,self->ConstructL(aCollectionId, aHierarchyId, aFilterType));
+	   TRAPD(err,self->ConstructL(aCollectionId, aHierarchyId, aFilterType,uri));
 	   if(err != KErrNone){
 		   delete self;
 		   self = NULL;
@@ -102,16 +102,22 @@
     iListThumbnailContext = NULL;
     iFocusGridThumbnailContext = NULL;
     iFocusFsThumbnailContext = NULL;
+    iFilmStripThumbnailContext = NULL;
+    iFavouriteContext = NULL;    
     }
 
 // ---------------------------------------------------------------------------
 // Symbian 2nd phase constructor can leave.
 // ---------------------------------------------------------------------------
 //  
-void GlxMLWrapperPrivate::ConstructL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType)
+void GlxMLWrapperPrivate::ConstructL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri)
     {
     TRACER("GlxMLWrapperPrivate::ConstructL");
-	if(aCollectionId != KGlxAlbumsMediaId)
+     if(aCollectionId == KGlxCollectionPluginFavoritesAlbumId)
+         {
+         CreateMediaListFavoritesItemL(aCollectionId, aHierarchyId,aFilterType,uri);
+         }
+     else if(aCollectionId != KGlxAlbumsMediaId)
 		{
 		CreateMediaListL(aCollectionId, aHierarchyId,aFilterType);
 		}
@@ -121,7 +127,7 @@
 		CreateMediaListAlbumItemL(aCollectionId, aHierarchyId,aFilterType);
 		}
 	iMLGenericObserver = CGlxMLGenericObserver::NewL(*iMediaList,this);
-	iBlockyIteratorForFocus.SetRangeOffsets(0,0);
+	iBlockyIteratorForFilmStrip.SetRangeOffsets(0,0);
     }
 
 // ---------------------------------------------------------------------------
@@ -135,6 +141,7 @@
 	RemovePtFsContext();
 	RemoveLsFsContext();
 	RemoveListContext();
+	RemoveFavouriteContext();
 	delete iMLGenericObserver;
 	iMLGenericObserver = NULL;
 	if (iMediaList)
@@ -154,15 +161,45 @@
 		{  
 		TRAP(err, SetThumbnailContextL(aContextMode) ); //todo add a trap here
 		}
-	else 
+	else if(aContextMode == GlxContextFavorite)
+	    {
+	    TRAP(err,SetFavouriteContextL());
+	    }
+	else
 		{
 		TRAP(err, SetListContextL(aContextMode) );
 		}
+	
 	GLX_LOG_INFO1("GlxMLWrapperPrivate::SetContextMode error %d", err);
 	iContextMode = aContextMode;
 	}
 
 // ---------------------------------------------------------------------------
+// SetFavouriteContextL
+// ---------------------------------------------------------------------------
+//
+void GlxMLWrapperPrivate::SetFavouriteContextL()
+    {
+    iFavouriteContext = CGlxDefaultAttributeContext::NewL();
+    iFavouriteContext->AddAttributeL( KMPXMediaGeneralCount );
+    iMediaList->AddContextL( iFavouriteContext, KGlxFetchContextPriorityLow );
+    }
+	
+// ---------------------------------------------------------------------------
+// RemoveFavouriteContext
+// ---------------------------------------------------------------------------
+//
+void GlxMLWrapperPrivate::RemoveFavouriteContext()
+    {
+    if(iFavouriteContext )
+        {
+        iMediaList->RemoveContext(iFavouriteContext);
+        delete iFavouriteContext;
+        iFavouriteContext = NULL;        
+        }
+	}
+
+// ---------------------------------------------------------------------------
 // SetListContextL
 // ---------------------------------------------------------------------------
 //
@@ -178,7 +215,9 @@
 			    iTitleAttributeContext->SetRangeOffsets( KListDataWindowSize, 
 						KListDataWindowSize );
 			    iTitleAttributeContext->AddAttributeL( KMPXMediaGeneralTitle );
-				iMediaList->AddContextL( iTitleAttributeContext, KMaxTInt );
+			    iTitleAttributeContext->AddAttributeL( KGlxMediaGeneralSlideshowableContent );
+			    iTitleAttributeContext->AddAttributeL( KGlxMediaGeneralSystemItem );
+				iMediaList->AddContextL( iTitleAttributeContext, KGlxFetchContextPriorityNormal );
 				}
 			if(NULL == iSubtitleAttributeContext)
 				{
@@ -187,7 +226,7 @@
 						 KListDataWindowSize );
 				iSubtitleAttributeContext->AddAttributeL( 
 								 KGlxMediaCollectionPluginSpecificSubTitle );
-				iMediaList->AddContextL( iSubtitleAttributeContext, KMaxTInt );
+				iMediaList->AddContextL( iSubtitleAttributeContext, KGlxFetchContextPriorityNormal );
 
 				}
             if(NULL == iListThumbnailContext)
@@ -207,7 +246,9 @@
                 iTitleAttributeContext = CGlxDefaultListAttributeContext::NewL();
                 iTitleAttributeContext->SetRangeOffsets( KListDataWindowSize, KListDataWindowSize );
                 iTitleAttributeContext->AddAttributeL( KMPXMediaGeneralTitle );
-                iMediaList->AddContextL( iTitleAttributeContext, KMaxTInt );
+                iTitleAttributeContext->AddAttributeL( KGlxMediaGeneralSlideshowableContent );
+                iTitleAttributeContext->AddAttributeL( KGlxMediaGeneralSystemItem );
+                iMediaList->AddContextL( iTitleAttributeContext, KGlxFetchContextPriorityNormal );
             }
         iSelectionListContextActivated = ETrue;
         }
@@ -236,8 +277,8 @@
     }
 	
 	if(aContextMode == GlxContextLsFs && !iLsFsContextActivated) {
-		if(!iGridContextActivated) {
-			CreateGridContextL();
+		if(iGridContextActivated) {
+            RemoveGridContext();
 		}
 		if(iPtFsContextActivated) {
 			RemovePtFsContext();
@@ -246,8 +287,8 @@
 	}
 	
 	if(aContextMode == GlxContextPtFs && !iPtFsContextActivated) {
-		if(!iGridContextActivated) {
-			CreateGridContextL();
+		if(iGridContextActivated) {
+            RemoveGridContext();
 		}
 		if(iLsFsContextActivated) {
 			RemoveLsFsContext();
@@ -306,14 +347,22 @@
             }
         if(!iFocusGridThumbnailContext)
             {
-            iFocusGridThumbnailContext = CGlxThumbnailContext::NewL( &iBlockyIteratorForFocus ); // set the thumbnail context for Focus Grid
+            iFocusGridThumbnailContext = CGlxDefaultThumbnailContext::NewL(); // set the thumbnail context for Focus Grid
+            iFocusGridThumbnailContext->SetRangeOffsets(0,0);
             iFocusGridThumbnailContext->SetDefaultSpec( KGridTNWIdth, KGridTNHeight );  //todo get these image sizes from  the layout.
             }
 
+        if(!iFilmStripThumbnailContext)
+            {
+            iFilmStripThumbnailContext = CGlxThumbnailContext::NewL( &iBlockyIteratorForFilmStrip ); // set the thumbnail context for Focus Grid
+            iFilmStripThumbnailContext->SetDefaultSpec( KGridTNWIdth, KGridTNHeight );  //todo get these image sizes from  the layout.
+            }
+
         // show static items if required
         iMediaList->SetStaticItemsEnabled(EFalse);
-        iMediaList->AddContextL(iFocusFsThumbnailContext, 7 );      // Temp will change this number  
-        iMediaList->AddContextL(iFocusGridThumbnailContext, 8 );    // Temp will change this number  
+        iMediaList->AddContextL(iFocusFsThumbnailContext, 8 );      // Temp will change this number  
+        iMediaList->AddContextL(iFocusGridThumbnailContext, 9 );    // Temp will change this number
+        iMediaList->AddContextL(iFilmStripThumbnailContext, 7 );    // Temp will change this number 
         iMediaList->AddContextL(iLsFsThumbnailContext, KGlxFetchContextPriorityGridViewFullscreenVisibleThumbnail );
         iLsFsContextActivated = ETrue;
         }
@@ -341,18 +390,26 @@
             {
             iFocusFsThumbnailContext = CGlxDefaultThumbnailContext::NewL(); 
             iFocusFsThumbnailContext->SetRangeOffsets(0,0);
-            iFocusFsThumbnailContext->SetDefaultSpec( KFullScreenTNLSWidth, KFullScreenTNLSHeight );  //todo get these image sizes from  the layout.
+            iFocusFsThumbnailContext->SetDefaultSpec( KFullScreenTNPTWidth, KFullScreenTNPTHeight );  //todo get these image sizes from  the layout.
             }
         if(!iFocusGridThumbnailContext)
             {
-            iFocusGridThumbnailContext = CGlxThumbnailContext::NewL( &iBlockyIteratorForFocus ); // set the thumbnail context for Focus Grid
+            iFocusGridThumbnailContext = CGlxDefaultThumbnailContext::NewL(); // set the thumbnail context for Focus Grid
+            iFocusGridThumbnailContext->SetRangeOffsets(0,0);
             iFocusGridThumbnailContext->SetDefaultSpec( KGridTNWIdth, KGridTNHeight );  //todo get these image sizes from  the layout.
             }
 
+        if(!iFilmStripThumbnailContext)
+            {
+            iFilmStripThumbnailContext = CGlxThumbnailContext::NewL( &iBlockyIteratorForFilmStrip ); // set the thumbnail context for Focus Grid
+            iFilmStripThumbnailContext->SetDefaultSpec( KGridTNPTWIdth, KGridTNPTHeight );  //todo get these image sizes from  the layout.
+            }
+
         // show static items if required
         iMediaList->SetStaticItemsEnabled(EFalse);
-        iMediaList->AddContextL(iFocusFsThumbnailContext, 7 );      // Temp will change this number  
-        iMediaList->AddContextL(iFocusGridThumbnailContext, 8 );    // Temp will change this number  
+        iMediaList->AddContextL(iFocusFsThumbnailContext, 8 );      // Temp will change this number  
+        iMediaList->AddContextL(iFocusGridThumbnailContext, 9 );    // Temp will change this number  
+        iMediaList->AddContextL(iFilmStripThumbnailContext, 7 );    // Temp will change this number 
         iMediaList->AddContextL(iPtFsThumbnailContext, KGlxFetchContextPriorityGridViewFullscreenVisibleThumbnail );
         iPtFsContextActivated = ETrue;
         }
@@ -398,6 +455,12 @@
             delete iFocusGridThumbnailContext;
             iFocusGridThumbnailContext = NULL;
 		    }
+		if(iFilmStripThumbnailContext)
+		    {
+		    iMediaList->RemoveContext(iFilmStripThumbnailContext);
+		    delete iFilmStripThumbnailContext;
+		    iFilmStripThumbnailContext = NULL;
+		    }		    
 	    
 		iLsFsContextActivated = EFalse;
 		}
@@ -428,6 +491,12 @@
             delete iFocusGridThumbnailContext;
             iFocusGridThumbnailContext = NULL;
             }
+        if(iFilmStripThumbnailContext)
+            {
+            iMediaList->RemoveContext(iFilmStripThumbnailContext);
+            delete iFilmStripThumbnailContext;
+            iFilmStripThumbnailContext = NULL;
+            }
 	        
 		iPtFsContextActivated = EFalse;
 		}
@@ -535,10 +604,35 @@
 	
 	GLX_LOG_INFO1("GlxMLWrapperPrivate::MediaListL  - Path level = %d",
 	                                                     path->Levels());
-	
-	CleanupStack::PopAndDestroy(path);
+		CleanupStack::PopAndDestroy(path);    
 	}
 
+// ---------------------------------------------------------------------------
+// CreateMediaListL() for Favorites Album 
+// Creates a collection path
+// Create a filter as requested filtertype
+// Creates the medialist
+// ---------------------------------------------------------------------------
+void GlxMLWrapperPrivate::CreateMediaListFavoritesItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri) 
+    {
+    TRACER("GlxMLWrapperPrivate::CreateMediaListFavoritesItemL");
+    Q_UNUSED(aHierarchyId); 
+    // Create path to the list of images and videos
+    CMPXCollectionPath* path = CMPXCollectionPath::NewL();
+    CleanupStack::PushL( path );
+    path->AppendL(KGlxCollectionPluginAlbumsImplementationUid);
+    path->AppendL( TMPXItemId(KGlxCollectionFavoritesId) );
+    path->Set( 0 );
+    TPtrC16 str(reinterpret_cast<const TUint16*>(uri.utf16()));
+    HBufC *ptr = str.Alloc();
+    CMPXFilter* filter = TGlxFilterFactory::CreateURIFilterL(*ptr);  
+    CleanupStack::PushL(filter);
+    iMediaList =  MGlxMediaList::InstanceL( *path, 
+            TGlxHierarchyId(KGlxCollectionPluginAlbumsDllUid), filter );
+    CleanupStack::PopAndDestroy( filter );
+    CleanupStack::PopAndDestroy( path );       
+    }
+
 /*
  * retrieveItemIcon
  */
@@ -604,6 +698,62 @@
     GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d and have returned empty icon",aItemIndex);
     return NULL;
 }
+
+QImage GlxMLWrapperPrivate::RetrieveItemImage(int aItemIndex, GlxTBContextType aTBContextType)
+    {
+    TInt itemHeight = 0;
+    TInt itemWidth = 0;
+    switch (aTBContextType)
+        {
+        case GlxTBContextGrid: 
+            {
+            itemHeight = KGridTNHeight;
+            itemWidth = KGridTNWIdth;
+            }
+            break;
+        case GlxTBContextPtFs: 
+            {
+            itemHeight = KFullScreenTNPTHeight;
+            itemWidth = KFullScreenTNPTWidth;
+            }
+            break;
+        case GlxTBContextLsFs: 
+            {
+            itemHeight = KFullScreenTNLSHeight;
+            itemWidth = KFullScreenTNLSWidth;
+            }
+            break;
+        }
+    const TGlxMedia& item = iMediaList->Item( aItemIndex );
+    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
+            GlxFullThumbnailAttributeId( ETrue,itemWidth,itemHeight ) );      
+    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute(
+            thumbnailAttribute );
+    TInt tnError = GlxErrorManager::HasAttributeErrorL(
+                      item.Properties(), KGlxMediaIdThumbnail );
+    TSize iconSize(itemWidth, itemHeight);
+
+    if (value && value->iBitmap != NULL)
+        {
+        value->iBitmap->LockHeap();
+        TUint32 *tempData = value->iBitmap->DataAddress();
+        uchar *data = (uchar *)(tempData);  
+        int bytesPerLine = value->iBitmap->ScanLineLength(value->iBitmap->SizeInPixels().iWidth , value->iBitmap->DisplayMode());
+        QImage image = QImage(data, value->iBitmap->SizeInPixels().iWidth, value->iBitmap->SizeInPixels().iHeight, bytesPerLine, QImage::Format_RGB16).convertToFormat(QImage::Format_ARGB32_Premultiplied);
+        value->iBitmap->UnlockHeap();
+        return image;
+         }
+    else if( tnError == KErrCANoRights) 
+        {
+        //handle DRM case
+        }
+    else if( tnError ) 
+        {
+        return QImage(GLXICON_CORRUPT);
+        }
+
+     return QImage();
+    }
 // ---------------------------------------------------------------------------
 //  RetrieveListTitle
 // ---------------------------------------------------------------------------
@@ -629,6 +779,33 @@
 }
 
 // ---------------------------------------------------------------------------
+//  Retrieve number of image contained by album list
+// ---------------------------------------------------------------------------
+//
+int GlxMLWrapperPrivate::RetrieveListItemCount(int aItemIndex)
+{
+    const TGlxMedia& item = iMediaList->Item( aItemIndex );
+    int count = 0;
+    TBool ret = item.GetSlideshowPlayableContainedItemCount(count);
+    if(ret)
+        return count;
+    else 
+        return 0;
+}
+
+// ---------------------------------------------------------------------------
+//  Retrieve the item is system item or not
+// ---------------------------------------------------------------------------
+//
+bool GlxMLWrapperPrivate::isSystemItem( int aItemIndex )
+{
+    const TGlxMedia& item = iMediaList->Item( aItemIndex );
+    TBool systemItem = false;
+    item.GetSystemItem( systemItem );
+    return systemItem ;
+}
+
+// ---------------------------------------------------------------------------
 //  RetrieveItemUri
 // ---------------------------------------------------------------------------
 //
@@ -1015,7 +1192,7 @@
     QImage image(data, aBitmap->SizeInPixels().iWidth, aBitmap->SizeInPixels().iHeight, bytesPerLine, QImage::Format_RGB16);
         
     QPixmap pixmap = QPixmap::fromImage(image);
-    if ( aBitmap->SizeInPixels().iWidth > itemWidth || aBitmap->SizeInPixels().iHeight ) {
+    if ( aBitmap->SizeInPixels().iWidth > itemWidth || aBitmap->SizeInPixels().iHeight > itemHeight ) {
         pixmap = pixmap.scaled( itemWidth, itemHeight, Qt::KeepAspectRatio );
     }
     
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/bwins/glxfavmediamodelu.def	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,21 @@
+EXPORTS
+	?staticMetaObject@GlxFavMediaModel@@2UQMetaObject@@B @ 1 NONAME ; struct QMetaObject const GlxFavMediaModel::staticMetaObject
+	?parent@GlxFavMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 2 NONAME ; class QModelIndex GlxFavMediaModel::parent(class QModelIndex const &) const
+	?trUtf8@GlxFavMediaModel@@SA?AVQString@@PBD0H@Z @ 3 NONAME ; class QString GlxFavMediaModel::trUtf8(char const *, char const *, int)
+	?data@GlxFavMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 4 NONAME ; class QVariant GlxFavMediaModel::data(class QModelIndex const &, int) const
+	?metaObject@GlxFavMediaModel@@UBEPBUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const * GlxFavMediaModel::metaObject(void) const
+	?tr@GlxFavMediaModel@@SA?AVQString@@PBD0@Z @ 6 NONAME ; class QString GlxFavMediaModel::tr(char const *, char const *)
+	?getStaticMetaObject@GlxFavMediaModel@@SAABUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const & GlxFavMediaModel::getStaticMetaObject(void)
+	?trUtf8@GlxFavMediaModel@@SA?AVQString@@PBD0@Z @ 8 NONAME ; class QString GlxFavMediaModel::trUtf8(char const *, char const *)
+	??0GlxFavMediaModel@@QAE@AAVGlxModelParm@@@Z @ 9 NONAME ; GlxFavMediaModel::GlxFavMediaModel(class GlxModelParm &)
+	?qt_metacall@GlxFavMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 10 NONAME ; int GlxFavMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??_EGlxFavMediaModel@@UAE@I@Z @ 11 NONAME ; GlxFavMediaModel::~GlxFavMediaModel(unsigned int)
+	?itemsAdded@GlxFavMediaModel@@QAEXHH@Z @ 12 NONAME ; void GlxFavMediaModel::itemsAdded(int, int)
+	?qt_metacast@GlxFavMediaModel@@UAEPAXPBD@Z @ 13 NONAME ; void * GlxFavMediaModel::qt_metacast(char const *)
+	??1GlxFavMediaModel@@UAE@XZ @ 14 NONAME ; GlxFavMediaModel::~GlxFavMediaModel(void)
+	?rowCount@GlxFavMediaModel@@UBEHABVQModelIndex@@@Z @ 15 NONAME ; int GlxFavMediaModel::rowCount(class QModelIndex const &) const
+	?tr@GlxFavMediaModel@@SA?AVQString@@PBD0H@Z @ 16 NONAME ; class QString GlxFavMediaModel::tr(char const *, char const *, int)
+	?itemsRemoved@GlxFavMediaModel@@QAEXHH@Z @ 17 NONAME ; void GlxFavMediaModel::itemsRemoved(int, int)
+	?columnCount@GlxFavMediaModel@@UBEHABVQModelIndex@@@Z @ 18 NONAME ; int GlxFavMediaModel::columnCount(class QModelIndex const &) const
+	?index@GlxFavMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 19 NONAME ; class QModelIndex GlxFavMediaModel::index(int, int, class QModelIndex const &) const
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/bwins/glxmodelwrapperu.def	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,34 @@
+EXPORTS
+	??_EGlxModelWrapper@@UAE@I@Z @ 1 NONAME ; GlxModelWrapper::~GlxModelWrapper(unsigned int)
+	?setData@GlxModelWrapper@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 2 NONAME ; bool GlxModelWrapper::setData(class QModelIndex const &, class QVariant const &, int)
+	?rowsAboutToBeRemoved@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 3 NONAME ; void GlxModelWrapper::rowsAboutToBeRemoved(class QModelIndex const &, int, int)
+	?rowCount@GlxModelWrapper@@UBEHABVQModelIndex@@@Z @ 4 NONAME ; int GlxModelWrapper::rowCount(class QModelIndex const &) const
+	??0GlxModelWrapper@@QAE@XZ @ 5 NONAME ; GlxModelWrapper::GlxModelWrapper(void)
+	?trUtf8@GlxModelWrapper@@SA?AVQString@@PBD0@Z @ 6 NONAME ; class QString GlxModelWrapper::trUtf8(char const *, char const *)
+	?modelDestroyed@GlxModelWrapper@@IAEXXZ @ 7 NONAME ; void GlxModelWrapper::modelDestroyed(void)
+	?dataChangedinModel@GlxModelWrapper@@IAEXVQModelIndex@@0@Z @ 8 NONAME ; void GlxModelWrapper::dataChangedinModel(class QModelIndex, class QModelIndex)
+	?tr@GlxModelWrapper@@SA?AVQString@@PBD0@Z @ 9 NONAME ; class QString GlxModelWrapper::tr(char const *, char const *)
+	?getStaticMetaObject@GlxModelWrapper@@SAABUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const & GlxModelWrapper::getStaticMetaObject(void)
+	?index@GlxModelWrapper@@UBE?AVQModelIndex@@HHABV2@@Z @ 11 NONAME ; class QModelIndex GlxModelWrapper::index(int, int, class QModelIndex const &) const
+	?rowsAboutToBeInserted@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 12 NONAME ; void GlxModelWrapper::rowsAboutToBeInserted(class QModelIndex const &, int, int)
+	?data@GlxModelWrapper@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 13 NONAME ; class QVariant GlxModelWrapper::data(class QModelIndex const &, int) const
+	?staticMetaObject@GlxModelWrapper@@2UQMetaObject@@B @ 14 NONAME ; struct QMetaObject const GlxModelWrapper::staticMetaObject
+	?scrollingEnded@GlxModelWrapper@@QAEXXZ @ 15 NONAME ; void GlxModelWrapper::scrollingEnded(void)
+	?rowsRemoved@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 16 NONAME ; void GlxModelWrapper::rowsRemoved(class QModelIndex const &, int, int)
+	?basemodelindex@GlxModelWrapper@@QBE?AVQModelIndex@@HHABV2@@Z @ 17 NONAME ; class QModelIndex GlxModelWrapper::basemodelindex(int, int, class QModelIndex const &) const
+	?columnCount@GlxModelWrapper@@UBEHABVQModelIndex@@@Z @ 18 NONAME ; int GlxModelWrapper::columnCount(class QModelIndex const &) const
+	?parent@GlxModelWrapper@@UBE?AVQModelIndex@@ABV2@@Z @ 19 NONAME ; class QModelIndex GlxModelWrapper::parent(class QModelIndex const &) const
+	?rowsInserted@GlxModelWrapper@@IAEXABVQModelIndex@@HH@Z @ 20 NONAME ; void GlxModelWrapper::rowsInserted(class QModelIndex const &, int, int)
+	?disConnectFromModel@GlxModelWrapper@@AAEXXZ @ 21 NONAME ; void GlxModelWrapper::disConnectFromModel(void)
+	?metaObject@GlxModelWrapper@@UBEPBUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const * GlxModelWrapper::metaObject(void) const
+	??1GlxModelWrapper@@UAE@XZ @ 23 NONAME ; GlxModelWrapper::~GlxModelWrapper(void)
+	?connectToModel@GlxModelWrapper@@AAEXXZ @ 24 NONAME ; void GlxModelWrapper::connectToModel(void)
+	?setModel@GlxModelWrapper@@QAEXPAVQAbstractItemModel@@@Z @ 25 NONAME ; void GlxModelWrapper::setModel(class QAbstractItemModel *)
+	?tr@GlxModelWrapper@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString GlxModelWrapper::tr(char const *, char const *, int)
+	?qt_metacall@GlxModelWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 27 NONAME ; int GlxModelWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?setRoles@GlxModelWrapper@@QAEXHH@Z @ 28 NONAME ; void GlxModelWrapper::setRoles(int, int)
+	?scrollingStarted@GlxModelWrapper@@QAEXXZ @ 29 NONAME ; void GlxModelWrapper::scrollingStarted(void)
+	?trUtf8@GlxModelWrapper@@SA?AVQString@@PBD0H@Z @ 30 NONAME ; class QString GlxModelWrapper::trUtf8(char const *, char const *, int)
+	?qt_metacast@GlxModelWrapper@@UAEPAXPBD@Z @ 31 NONAME ; void * GlxModelWrapper::qt_metacast(char const *)
+	?resetTheModel@GlxModelWrapper@@AAEXXZ @ 32 NONAME ; void GlxModelWrapper::resetTheModel(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/eabi/glxfavmediamodelu.def	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,21 @@
+EXPORTS
+	_ZN16GlxFavMediaModel10itemsAddedEii @ 1 NONAME
+	_ZN16GlxFavMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
+	_ZN16GlxFavMediaModel11qt_metacastEPKc @ 3 NONAME
+	_ZN16GlxFavMediaModel12itemsRemovedEii @ 4 NONAME
+	_ZN16GlxFavMediaModel16staticMetaObjectE @ 5 NONAME DATA 16
+	_ZN16GlxFavMediaModel19getStaticMetaObjectEv @ 6 NONAME
+	_ZN16GlxFavMediaModelC1ER12GlxModelParm @ 7 NONAME
+	_ZN16GlxFavMediaModelC2ER12GlxModelParm @ 8 NONAME
+	_ZN16GlxFavMediaModelD0Ev @ 9 NONAME
+	_ZN16GlxFavMediaModelD1Ev @ 10 NONAME
+	_ZN16GlxFavMediaModelD2Ev @ 11 NONAME
+	_ZNK16GlxFavMediaModel10metaObjectEv @ 12 NONAME
+	_ZNK16GlxFavMediaModel11columnCountERK11QModelIndex @ 13 NONAME
+	_ZNK16GlxFavMediaModel4dataERK11QModelIndexi @ 14 NONAME
+	_ZNK16GlxFavMediaModel5indexEiiRK11QModelIndex @ 15 NONAME
+	_ZNK16GlxFavMediaModel6parentERK11QModelIndex @ 16 NONAME
+	_ZNK16GlxFavMediaModel8rowCountERK11QModelIndex @ 17 NONAME
+	_ZTI16GlxFavMediaModel @ 18 NONAME
+	_ZTV16GlxFavMediaModel @ 19 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/eabi/glxmodelwrapperu.def	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,34 @@
+EXPORTS
+	_ZN15GlxModelWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
+	_ZN15GlxModelWrapper11qt_metacastEPKc @ 2 NONAME
+	_ZN15GlxModelWrapper11rowsRemovedERK11QModelIndexii @ 3 NONAME
+	_ZN15GlxModelWrapper12rowsInsertedERK11QModelIndexii @ 4 NONAME
+	_ZN15GlxModelWrapper14connectToModelEv @ 5 NONAME
+	_ZN15GlxModelWrapper14modelDestroyedEv @ 6 NONAME
+	_ZN15GlxModelWrapper14scrollingEndedEv @ 7 NONAME
+	_ZN15GlxModelWrapper16scrollingStartedEv @ 8 NONAME
+	_ZN15GlxModelWrapper16staticMetaObjectE @ 9 NONAME DATA 16
+	_ZN15GlxModelWrapper18dataChangedinModelE11QModelIndexS0_ @ 10 NONAME
+	_ZN15GlxModelWrapper19disConnectFromModelEv @ 11 NONAME
+	_ZN15GlxModelWrapper19getStaticMetaObjectEv @ 12 NONAME
+	_ZN15GlxModelWrapper20rowsAboutToBeRemovedERK11QModelIndexii @ 13 NONAME
+	_ZN15GlxModelWrapper21rowsAboutToBeInsertedERK11QModelIndexii @ 14 NONAME
+	_ZN15GlxModelWrapper7setDataERK11QModelIndexRK8QVarianti @ 15 NONAME
+	_ZN15GlxModelWrapper8setModelEP18QAbstractItemModel @ 16 NONAME
+	_ZN15GlxModelWrapper8setRolesEii @ 17 NONAME
+	_ZN15GlxModelWrapperC1Ev @ 18 NONAME
+	_ZN15GlxModelWrapperC2Ev @ 19 NONAME
+	_ZN15GlxModelWrapperD0Ev @ 20 NONAME
+	_ZN15GlxModelWrapperD1Ev @ 21 NONAME
+	_ZN15GlxModelWrapperD2Ev @ 22 NONAME
+	_ZNK15GlxModelWrapper10metaObjectEv @ 23 NONAME
+	_ZNK15GlxModelWrapper11columnCountERK11QModelIndex @ 24 NONAME
+	_ZNK15GlxModelWrapper14basemodelindexEiiRK11QModelIndex @ 25 NONAME
+	_ZNK15GlxModelWrapper4dataERK11QModelIndexi @ 26 NONAME
+	_ZNK15GlxModelWrapper5indexEiiRK11QModelIndex @ 27 NONAME
+	_ZNK15GlxModelWrapper6parentERK11QModelIndex @ 28 NONAME
+	_ZNK15GlxModelWrapper8rowCountERK11QModelIndex @ 29 NONAME
+	_ZTI15GlxModelWrapper @ 30 NONAME
+	_ZTV15GlxModelWrapper @ 31 NONAME
+	_ZN15GlxModelWrapper13resetTheModelEv @ 32 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/favmediamodel/favmediamodel.pro	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,45 @@
+#/* 
+#* 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:
+#*
+#*/ 
+TEMPLATE = lib
+TARGET = glxfavmediamodel
+DEPENDPATH += . inc src
+INCLUDEPATH += . ../../../inc \
+		 ../../../../inc \
+             ../../../../loggers\loggerqt\inc \
+		 ../../medialistwrapper/inc 
+
+CONFIG += hb
+
+LIBS += -lglxmedialistwrapper.dll \
+        -lglxloggerqt.dll      
+
+
+DEFINES += BUILD_FAVMEDIAMODEL
+
+symbian: { 
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+TARGET.UID3 = 0x20000A06
+TARGET.CAPABILITY = ALL -TCB 
+TARGET.EPOCALLOWDLLDATA = 1
+}
+# Input
+HEADERS += inc/glxfavmediamodel.h 
+
+
+SOURCES += src/glxfavmediamodel.cpp 
+
+DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/favmediamodel/inc/glxfavmediamodel.h	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* 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:   ?Description
+*
+*/
+
+
+
+#ifndef GLXFAVMEDIAMODEL_H 
+#define GLXFAVMEDIAMODEL_H 
+
+#include <QAbstractItemModel>
+#include <glxmlwrapper.h>
+#include <glxuistd.h>
+
+
+
+#ifdef BUILD_FAVMEDIAMODEL
+#define GLX_MEDIAMODEL_EXPORT Q_DECL_EXPORT
+#else
+#define GLX_MEDIAMODEL_EXPORT Q_DECL_IMPORT
+#endif
+
+//forward declarations
+class GlxModelParm;
+
+
+class GLX_MEDIAMODEL_EXPORT GlxFavMediaModel : public QAbstractItemModel
+{
+Q_OBJECT
+public :	
+	
+    GlxFavMediaModel(GlxModelParm & modelParm);
+    ~GlxFavMediaModel();
+    int rowCount(const QModelIndex &parent = QModelIndex()) const;
+    int columnCount(const QModelIndex &parent = QModelIndex()) const;
+    QModelIndex parent(const QModelIndex &child) const;
+    QVariant data(const QModelIndex &index, int role) const;
+    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+
+public slots:
+	
+	void itemsAdded(int startIndex, int endIndex);
+	void itemsRemoved(int startIndex, int endIndex);
+	
+private:
+	GlxMLWrapper* mMLWrapper;	
+	GlxContextMode mContextMode;	
+};
+
+
+#endif /* GLXFAVMEDIAMODEL_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/favmediamodel/src/glxfavmediamodel.cpp	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,113 @@
+/*
+* 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:   ?Description
+*
+*/
+
+
+
+#include <glxfavmediamodel.h>
+#include <glxmodelparm.h>
+#include <glxtracer.h>
+#include <glxfiltergeneraldefs.h>
+
+
+GlxFavMediaModel::GlxFavMediaModel(GlxModelParm & modelParm)
+{
+    TRACER("GlxFavMediaModel::GlxFavMediaModel");
+    mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,EGlxFilterImage,modelParm.path());
+    mMLWrapper->setContextMode( modelParm.contextMode() );      
+    int err = connect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int)));
+        err = connect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int)));   
+}
+
+GlxFavMediaModel::~GlxFavMediaModel()
+{
+    TRACER("GlxFavMediaModel::~GlxFavMediaModel");
+    int err =  disconnect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int)));
+    err = disconnect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int)));
+    delete mMLWrapper;
+}
+
+
+int GlxFavMediaModel::rowCount(const QModelIndex &parent ) const
+{
+    TRACER("GlxFavMediaModel::rowCount");
+    Q_UNUSED(parent);
+    return (mMLWrapper->getItemCount());
+}
+
+int GlxFavMediaModel::columnCount(const QModelIndex &parent ) const
+{
+    TRACER("GlxFavMediaModel::columnCount");
+    Q_UNUSED(parent);
+    return 1;
+}
+
+QModelIndex GlxFavMediaModel::parent(const QModelIndex &child) const
+{
+    TRACER("GlxFavMediaModel::parent");
+    Q_UNUSED(child);
+    //returns always invalid model index
+    return QModelIndex();
+}
+
+
+QVariant GlxFavMediaModel::data(const QModelIndex &index, int role) const
+{
+    TRACER("GlxFavMediaModel::data");
+  
+    if ((!index.isValid()) ) {
+    return QVariant();
+    }
+
+    if (role == GlxFavorites){
+    return rowCount();
+    }
+ 
+  return QVariant();
+}
+
+
+void GlxFavMediaModel::itemsAdded(int startIndex, int endIndex)
+{
+    TRACER("GlxFavMediaModel::itemsAdded");
+    beginInsertRows(QModelIndex(), startIndex, endIndex);
+    emit dataChanged(index(startIndex,0),index(startIndex,0));
+    endInsertRows();
+}
+
+void GlxFavMediaModel::itemsRemoved(int startIndex, int endIndex)
+{
+    TRACER("GlxFavMediaModel::itemsRemoved");
+    beginRemoveRows(QModelIndex(), startIndex, endIndex);
+    emit dataChanged(index(startIndex,0),index(startIndex,0));
+    endRemoveRows();    
+}
+
+
+QModelIndex GlxFavMediaModel::index(int row, int column, const QModelIndex &parent) const
+{
+    TRACER("GlxFavMediaModel::index");
+    Q_UNUSED(parent)        
+    if ( ( row < 0 )
+        || ( row > rowCount() )
+        || ( column < 0 )
+        || ( column >= columnCount() ) ) {
+        return QModelIndex();
+    }
+    
+    return QAbstractItemModel::createIndex(row, column);           
+}
+
--- a/ui/uiengine/model/listmodel/inc/glxalbummodel.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/model/listmodel/inc/glxalbummodel.h	Fri May 14 15:52:22 2010 +0300
@@ -20,7 +20,6 @@
 
 #include <QAbstractItemModel>
 #include <QCache>
-#include <glxmlwrapper.h>
 #include <glxuistd.h>
 
 #ifdef BUILD_LISTMODEL
@@ -40,6 +39,7 @@
 
 class HbIcon;
 class GlxModelParm;
+class GlxMLWrapper;
 
 class GLX_LISTMODEL_EXPORT GlxAlbumModel : public QAbstractItemModel
 {
@@ -76,7 +76,7 @@
 private slots:
      void updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType); 
 private:
-    Q_DECL_IMPORT GlxMLWrapper* mMLWrapper;
+    GlxMLWrapper* mMLWrapper;
     GlxContextMode mContextMode;
     HbIcon* mDefaultIcon;
     QCache<int, HbIcon> itemIconCache;
--- a/ui/uiengine/model/listmodel/src/glxalbummodel.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/model/listmodel/src/glxalbummodel.cpp	Fri May 14 15:52:22 2010 +0300
@@ -21,6 +21,7 @@
 #include <hbicon.h>
 #include <QStringList>
 #include <QBrush>
+#include <glxmlwrapper.h>
 
 #include "glxicondefs.h" //Contains the icon names/Ids
 
@@ -142,6 +143,12 @@
     case GlxFocusIndexRole :
         idx = getFocusIndex();
         return idx.row();
+        
+    case GlxListItemCount :
+        return mMLWrapper->retrieveListItemCount( getFocusIndex().row() );
+        
+    case GlxSystemItemRole :
+        return mMLWrapper->isSystemItem( getFocusIndex().row() );
            
     default :       
         return QVariant();
--- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Fri May 14 15:52:22 2010 +0300
@@ -21,7 +21,6 @@
 #define GLXMEDIAMODEL_H
 
 #include <QAbstractItemModel>
-#include <glxmlwrapper.h>
 #include <glxuistd.h>
 #include <QDateTime>
 #include <glxexternalinterfacedefs.h>
@@ -35,6 +34,7 @@
 
 class HbIcon;
 class GlxModelParm;
+class GlxMLWrapper;
 #include <QCache>
 #include <QVector>
 
@@ -90,7 +90,7 @@
 private slots:
     void updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType);
 private:
-	Q_DECL_IMPORT GlxMLWrapper* mMLWrapper;	
+	GlxMLWrapper* mMLWrapper;	
 	QCache<int, HbIcon> itemIconCache;
 	QCache<int, HbIcon> itemFsIconCache;
 	HbIcon* m_DefaultIcon;
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Fri May 14 15:52:22 2010 +0300
@@ -19,11 +19,13 @@
 
 #include <glxmediamodel.h>
 #include <hbicon.h>
+#include <qimage.h>
 #include <glxmodelparm.h>
 #include <QCache>
 #include <QDebug>
 #include <hal.h>
 #include <hal_data.h>
+#include <glxmlwrapper.h>
 
 #include <glxfiltergeneraldefs.h>
 
@@ -52,7 +54,7 @@
 	qDebug("iconAvailable() connection status %d", err);
 	//itemadded.resize(mMLWrapper->getItemCount());
 	
-	itemIconCache.setMaxCost(50);
+	itemIconCache.setMaxCost(20);  //Changed While Doing Media Wall
 	itemFsIconCache.setMaxCost(5);
 	itemExternalIconCache.setMaxCost(0);
 	
@@ -95,7 +97,7 @@
 		mContextMode = contextMode;
 		if ( mContextMode == GlxContextLsGrid || mContextMode == GlxContextPtGrid ) {
             itemIconCache.clear();
-            emit dataChanged( index( 0, 0), index( rowCount() - 1, 0) );
+            //emit dataChanged( index( 0, 0), index( rowCount() - 1, 0) );  // Not Needed for HgWidget
         }
 	}
 }
@@ -117,14 +119,17 @@
 */
 void GlxMediaModel::clearExternalItems()
 {
-	beginRemoveRows(QModelIndex(), 0, externalDataCount);
-	if(mExternalItems) {
+	if(externalDataCount) {
+	    beginRemoveRows(QModelIndex(), 0, externalDataCount);	
+        if(mExternalItems) {
 		delete mExternalItems;
 		mExternalItems = NULL;
 		externalDataCount = 0;
-	}
-	itemExternalIconCache.clear();
-	endRemoveRows();
+        }
+        itemExternalIconCache.clear();
+        endRemoveRows();
+    }
+
 }
 
 int GlxMediaModel::rowCount(const QModelIndex &parent ) const
@@ -156,7 +161,20 @@
         return mSubState;
     }
 
+    if ( role == GlxHgVisibilityRole ) {
+        return TRUE;
+    }
+    
+    if ( role == Qt::DisplayRole ) {
+        return QVariant();
+    }
+    
+    if ( role == GlxDefaultImage ) {
+        return m_DefaultIcon->pixmap().toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied);
+    }
+
     HbIcon* itemIcon = NULL;
+    QImage itemImage;
     int itemIndex = index.row();
     qDebug("GlxMediaModel::data buffer concept index %d role %d", index.row(), role);
     if ((!index.isValid()) || (index.row() > rowCount()-1)) {
@@ -180,11 +198,15 @@
         itemIcon = GetGridIconItem(itemIndex,GlxTBContextGrid);
         if(itemIcon == NULL || itemIcon->isNull() ){
             itemIcon = m_DefaultIcon;
-        // }
         }
         return *itemIcon;
     }
 		
+    if (role == GlxQImageSmall)
+        {
+        return mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid);
+        }
+
     if (role == GlxFsImageRole){
         if(mContextMode == GlxContextLsFs){
             itemIcon = GetFsIconItem(itemIndex,GlxTBContextLsFs);
@@ -214,6 +236,37 @@
         return *itemIcon;
     }
 	
+    if (role == GlxQImageLarge)
+        {
+        if(mContextMode == GlxContextLsFs)
+            {
+            itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextLsFs);
+            }
+        else
+            {
+            itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextPtFs);
+            }
+        if(!itemImage.isNull()) 
+            {
+            return itemImage;
+            }
+        else 
+            {
+            itemImage =  mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid);
+            if (!itemImage.isNull()) 
+                {
+                QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize ( 640, 360) : QSize ( 360, 640 );
+                itemImage = itemImage.scaled(sz,Qt::KeepAspectRatio); 
+                }
+                return itemImage;
+            }
+        }
+    
+    if (role == GlxVisualWindowIndex)
+        {
+        return mMLWrapper->getVisibleWindowIndex();
+        }
+	
     QModelIndex idx;
     if ( GlxFocusIndexRole == role ) {
         idx = getFocusIndex();
@@ -268,9 +321,6 @@
             emit iconAvailable(itemIndex,itemIcon, tbContextType);
 		}
 		itemIcon = itemFsIconCache[itemIndex];
-		/*if(!itemIcon){
-		itemIcon = GetGridIconItem(itemIndex, GlxTBContextGrid);
-		}*/
 	}
 	return itemIcon;
 
--- a/ui/uiengine/model/model.pro	Mon May 03 12:31:32 2010 +0300
+++ b/ui/uiengine/model/model.pro	Fri May 14 15:52:22 2010 +0300
@@ -17,4 +17,6 @@
 TEMPLATE    = subdirs
 CONFIG += ordered
 SUBDIRS	    = mediamodel \
-              listmodel
+              listmodel \
+              modelwrapper \
+              favmediamodel
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/modelwrapper/inc/glxmodelwrapper.h	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,82 @@
+/*
+* 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:   ?Description
+*
+*/
+
+#ifndef GLXMODELWRAPPER_H
+#define GLXMODELWRAPPER_H
+
+#include <QAbstractItemModel>
+
+#ifdef BUILD_MODELWRAPPER
+#define GLX_MODELWRAPPER_EXPORT Q_DECL_EXPORT
+#else
+#define GLX_MODELWRAPPER_EXPORT Q_DECL_IMPORT
+#endif
+
+
+class GLX_MODELWRAPPER_EXPORT GlxModelWrapper : public QAbstractItemModel
+{
+Q_OBJECT
+public :    
+    
+    GlxModelWrapper();
+    ~GlxModelWrapper();
+    void setModel(QAbstractItemModel *model);
+    void setRoles(int convertrole, int originalrole = Qt::DecorationRole);
+    
+    int rowCount(const QModelIndex &parent = QModelIndex()) const;
+    int columnCount(const QModelIndex &parent = QModelIndex()) const;
+    QModelIndex parent(const QModelIndex &child) const;
+    QVariant data(const QModelIndex &idx, int role) const;
+    bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
+    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+    QModelIndex basemodelindex(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+    void scrollingStarted();
+    void scrollingEnded();
+    
+    
+private:
+	void connectToModel();
+	void disConnectFromModel();
+    
+protected slots:	  
+    void modelDestroyed();
+	void dataChangedinModel(QModelIndex startIndex, QModelIndex endIndex);
+	void rowsAboutToBeInserted(const QModelIndex &parent,int start,int end);
+    void rowsInserted(const QModelIndex &parent, int start, int end);
+	void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end);
+    void rowsRemoved(const QModelIndex &parent, int start, int end);
+    //These might be needed later.  Commenting now
+    /*void columnsAboutToBeInserted(QModelIndex,int,int);
+    void columnsInserted(QModelIndex,int,int);
+    void columnsAboutToBeRemoved(QModelIndex,int,int);
+    void columnsRemoved(QModelIndex,int,int);
+    void rowsMoved(QModelIndex, int, int, QModelIndex, int);
+    void layoutAboutToBeChanged();
+    void layoutChanged();
+    void modelReset();
+    void destroyed();*/
+    
+private:
+    
+    void resetTheModel();
+	
+   QAbstractItemModel  *mModel;
+   int                  mOriginalRole;
+   int                  mConvertRole;
+};
+
+#endif /* GLXMODELWRAPPER_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/modelwrapper/modelwrapper.pro	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,38 @@
+#/* 
+#* 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:
+#*
+#*/ 
+TEMPLATE = lib
+TARGET = glxmodelwrapper
+DEPENDPATH += . inc src
+INCLUDEPATH += . ../../../../inc \
+								../../../inc 
+		 
+CONFIG += hb
+
+
+DEFINES += BUILD_MODELWRAPPER
+
+symbian: { 
+INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
+TARGET.UID3 = 0x2000718C
+TARGET.CAPABILITY = ALL -TCB
+TARGET.EPOCALLOWDLLDATA = 1
+}
+# Input
+HEADERS += inc/glxmodelwrapper.h 
+SOURCES += src/glxmodelwrapper.cpp 
+
+DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,208 @@
+/*
+* 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:   ?Description
+*
+*/
+
+#include <glxmodelwrapper.h>
+#include <glxmodelparm.h>
+#include <QDebug>
+
+GlxModelWrapper::GlxModelWrapper(): mModel ( NULL),
+    mOriginalRole(Qt::DecorationRole),
+    mConvertRole(Qt::DecorationRole)
+    {
+
+    }
+
+void GlxModelWrapper::setModel(QAbstractItemModel *model)
+    {
+    if(model && mModel != model)
+        {
+        disConnectFromModel();
+        mModel = model;
+        connectToModel();
+        resetTheModel();
+        }	
+    }
+
+
+void GlxModelWrapper::setRoles(int convertrole, int originalrole)
+    {
+	mConvertRole  =   convertrole;
+	mOriginalRole =   originalrole;
+	}
+
+void GlxModelWrapper::scrollingStarted()
+    {
+ 
+    }
+
+void GlxModelWrapper::scrollingEnded()
+    {
+
+    }
+
+void GlxModelWrapper::connectToModel()
+	{
+	connect(mModel, SIGNAL(destroyed()),this, SLOT(modelDestroyed()));
+	connect(mModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)),this,SLOT(dataChangedinModel(QModelIndex,QModelIndex)));
+	connect(mModel, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),this,SLOT(rowsAboutToBeInserted(QModelIndex,int,int)));
+    connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)),this,  SLOT(rowsInserted(QModelIndex,int,int)));
+    connect(mModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),this,SLOT(rowsAboutToBeRemoved(QModelIndex,int,int)));
+    connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)),this,SLOT(rowsRemoved(QModelIndex,int,int)));
+	}
+	
+void GlxModelWrapper::disConnectFromModel()
+	{
+	if(mModel)
+	    {
+	    disconnect(mModel, SIGNAL(destroyed()),this, SLOT(modelDestroyed()));
+		disconnect(mModel, SIGNAL(dataChanged(QModelIndex,QModelIndex)),this,SLOT(dataChangedinModel(QModelIndex,QModelIndex)));
+		disconnect(mModel, SIGNAL(rowsAboutToBeInserted(QModelIndex,int,int)),this,SLOT(rowsAboutToBeInserted(QModelIndex,int,int)));
+	    disconnect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)),this,  SLOT(rowsInserted(QModelIndex,int,int)));
+	    disconnect(mModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)),this,SLOT(rowsAboutToBeRemoved(QModelIndex,int,int)));
+	    disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)),this,SLOT(rowsRemoved(QModelIndex,int,int)));	
+		}
+	}
+	
+
+GlxModelWrapper::~GlxModelWrapper()
+    {
+	disConnectFromModel();
+    }
+
+int GlxModelWrapper::rowCount(const QModelIndex &parent ) const
+    {
+	Q_UNUSED(parent);
+	if(mModel)
+		return (mModel->rowCount());
+	else
+		return 0;
+    }
+
+int GlxModelWrapper::columnCount(const QModelIndex &parent ) const
+    {
+    Q_UNUSED(parent);
+	return 1; 
+    }
+
+QModelIndex GlxModelWrapper::parent(const QModelIndex &child) const
+    {
+    Q_UNUSED(child);
+    return QModelIndex();  // No need to Check mModel ,Should i Set mModel As parent
+    }
+
+QVariant GlxModelWrapper::data(const QModelIndex &idx, int role) const
+    {
+	if(mModel)
+		{
+		if(mOriginalRole == role)
+			{
+			return (mModel->data(idx,mConvertRole));
+			}
+		else
+			{
+			return (mModel->data(idx,role));		
+			}
+		}
+	else
+		{
+		return QVariant();	
+		}
+    }
+
+bool GlxModelWrapper::setData ( const QModelIndex & idx, const QVariant & value, int role )
+    {
+    if(mModel)
+    	{
+    	return (mModel->setData(mModel->index(idx.row(),0),value,role));
+    	}
+    else
+    	{
+    	return FALSE;
+    	}
+    }
+
+QModelIndex GlxModelWrapper::index(int row, int column, const QModelIndex &parent) const
+    {
+    Q_UNUSED(parent);
+    if ( ( row < 0 ) || ( row >= rowCount() )  || ( column < 0 )  || ( column >= columnCount() ) ) 
+        {
+        return QModelIndex();
+        }
+    return QAbstractItemModel::createIndex(row, column); 
+    }
+
+QModelIndex GlxModelWrapper::basemodelindex(int row, int column, const QModelIndex &parent) const
+    {
+    Q_UNUSED(parent);
+    if(mModel)
+        {
+        return (mModel->index(row,column));
+        }
+    else
+        {
+        return QModelIndex();
+        }
+    }
+
+void GlxModelWrapper::modelDestroyed()
+    {
+    disConnectFromModel();
+    mModel = NULL;
+    resetTheModel();
+    }
+
+void GlxModelWrapper::resetTheModel()
+    {
+    beginResetModel();
+    endResetModel();
+    }
+
+void GlxModelWrapper::dataChangedinModel(QModelIndex startIndex, QModelIndex endIndex)
+    {
+    emit dataChanged(index(startIndex.row(),startIndex.column()),index(endIndex.row(),endIndex.column()));
+    }
+
+void GlxModelWrapper::rowsAboutToBeInserted(const QModelIndex &parent,int start,int end)
+    {
+    Q_UNUSED(parent);
+    Q_UNUSED(start);
+    Q_UNUSED(end);
+    }
+
+void GlxModelWrapper::rowsInserted(const QModelIndex &parent, int start, int end)
+    {
+    Q_UNUSED(parent);
+    beginInsertRows(QModelIndex(), start, end);
+    endInsertRows();
+    }
+
+void GlxModelWrapper::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
+    {
+    Q_UNUSED(parent);
+    Q_UNUSED(start);
+    Q_UNUSED(end);
+    }
+
+void GlxModelWrapper::rowsRemoved(const QModelIndex &parent, int start, int end)
+    {
+    Q_UNUSED(parent);
+    beginRemoveRows(QModelIndex(), start, end);
+    endRemoveRows();
+    }
+
+
+
--- a/ui/viewmanagement/statehandler/src/glxactionhandler.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxactionhandler.cpp	Fri May 14 15:52:22 2010 +0300
@@ -56,7 +56,9 @@
         case EGlxCmdContextRename:
 	        commandId = EGlxCmdRename;
 	        break;
-	         
+        case EGlxCmdContextRemoveFrom:
+            commandId = EGlxCmdRemoveFrom;
+            break;
 		default : break;	
 		}
 		
--- a/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp	Fri May 14 15:52:22 2010 +0300
@@ -26,6 +26,7 @@
 #include <glxcommandhandlersend.h>
 #include <glxcommandhandlerrename.h>
 
+
 GlxCommandHandler* GlxCommandHandlerFactory::CreateCommandHandler(int commandId)
 {
     GlxCommandHandler* cmdHandler = NULL;
@@ -33,11 +34,15 @@
         {
         case EGlxCmdDelete: cmdHandler = new GlxCommandHandlerDelete();
            break;
-        case EGlxCmdAddToAlbum: cmdHandler = new GlxCommandHandlerAddToContainer();
+        case EGlxCmdAddToAlbum: 
+        case EGlxCmdAddToFav:
+                            cmdHandler = new GlxCommandHandlerAddToContainer();
            break;
 		case EGlxCmdRotate: cmdHandler = new GlxCommandHandlerRotate();
            break;
-        case EGlxCmdRemoveFrom:  cmdHandler = new GlxCommandHandlerRemoveFrom();  
+        case EGlxCmdRemoveFrom:
+        case EGlxCmdRemoveFromFav: 
+                         cmdHandler = new GlxCommandHandlerRemoveFrom();  
            break;
         case EGlxCmdAddMedia:  cmdHandler = new GlxCommandHandlerNewMedia();
             break;
--- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Fri May 14 15:52:22 2010 +0300
@@ -386,7 +386,7 @@
 
 void GlxStateManager::setFullScreenContext()
 {
-    if ( mViewManager->orientation() == Qt::Horizontal ) {
+    if ( mViewManager->orientation() == Qt::Horizontal || mCurrentState->id() == GLX_SLIDESHOWVIEW_ID ) {
         mCurrentModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
     }
     else {
@@ -492,13 +492,6 @@
        mViewManager->handleUserAction(mCurrentState->id(), id);
        id = EGlxCmdHandled;
        break;
-   case EGlxCmdRotate:
-       mViewManager->handleUserAction(mCurrentState->id(), id);
-	   //Disable Rotate CH mActionHandler->handleAction(id,mCollectionId);
-       id = EGlxCmdHandled;
-       break;    
-       
-
        
    case EGlxCmdSetupItem :
        emit setupItemsSignal();
--- a/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp	Fri May 14 15:52:22 2010 +0300
@@ -31,8 +31,9 @@
 
 
 GlxMenuManager::GlxMenuManager(HbMainWindow* mainWindow)
- : mMainWindow( mainWindow ),
-   mContextMenu( 0 )
+    : mModel( 0),
+      mMainWindow( mainWindow ),
+      mContextMenu( 0 )
 {
 }
 
@@ -163,10 +164,6 @@
     action = menu->addAction(GLX_OPTION_ADD_TO_ALBUM);
     action->setData(EGlxCmdAddToAlbum);
     connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
-	
-    action = menu->addAction("Rotate");
-    action->setData(EGlxCmdRotate);
-    connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
 }
 
 void GlxMenuManager::setAllActionVisibility( QList<QAction*> actionList, bool visible )
@@ -263,7 +260,13 @@
 	        action = mContextMenu->addAction(GLX_MENU_SLIDESHOW);
 	        action->setData(EGlxCmdSelectSlideshow);
 	        connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
-		    
+
+	        if ( viewSubState() == ALBUM_ITEM_S ) {        
+	        action = mContextMenu->addAction(GLX_OPTION_REMOVE_FROM_ALBUM);
+	        action->setData(EGlxCmdContextRemoveFrom);
+	        connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+	        }
+	        
 	        action = mContextMenu->addAction(GLX_MENU_ADD_TO_ALBUM);
 		    action->setData(EGlxCmdContextAddToAlbum);
 		    connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
@@ -273,29 +276,46 @@
 		    connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
 			break;
 	    	
-	    case GLX_LISTVIEW_ID :
-	        action = mContextMenu->addAction(GLX_MENU_SLIDESHOW);
-	        action->setData(EGlxCmdAlbumSlideShow);
-	        connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
-    
-            action = mContextMenu->addAction(GLX_MENU_RENAME);
-            action->setData(EGlxCmdContextRename);
-            connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
-	                    
-		    action = mContextMenu->addAction(GLX_MENU_DELETE);
-		    action->setData(EGlxCmdContextAlbumDelete);
-		    connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+	    case GLX_LISTVIEW_ID : {
+	        int count = 0;
+            QVariant variant = mModel->data( mModel->index(0,0), GlxListItemCount );    
+	        if ( variant.isValid() &&  variant.canConvert<int> () ) {
+	            count = variant.value<int>();  
+	        }  
+
+	        if ( count ) {
+                action = mContextMenu->addAction(GLX_MENU_SLIDESHOW);
+                action->setData(EGlxCmdAlbumSlideShow);
+                connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+	        }
+	        
+	        variant = mModel->data( mModel->index(0,0), GlxSystemItemRole );    
+            if ( variant.isValid() &&  variant.canConvert<bool> () && ( variant.value<bool>() == false ) ) {           
+                action = mContextMenu->addAction(GLX_MENU_RENAME);
+                action->setData(EGlxCmdContextRename);
+                connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+                            
+                action = mContextMenu->addAction(GLX_MENU_DELETE);
+                action->setData(EGlxCmdContextAlbumDelete);
+                connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+            }
+	    }
 			break;
 			
 		default:
 		    break;	
 		}
 
-	connect( mMainWindow, SIGNAL( aboutToChangeOrientation () ), mContextMenu, SLOT( close() ) );
-	connect( mContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) );
-	mContextMenu->setPreferredPos( pos );
-	mContextMenu->show();
-    
+    if ( mContextMenu->isEmpty() ) {
+        delete mContextMenu ;
+        mContextMenu = NULL ;
+    }
+    else {
+        connect( mMainWindow, SIGNAL( aboutToChangeOrientation () ), mContextMenu, SLOT( close() ) );
+        connect( mContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) );
+        mContextMenu->setPreferredPos( pos );
+        mContextMenu->show(); 
+    }    
 }
 
 void GlxMenuManager::closeContextMenu()
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/detailsview/inc/glxdetailscustomicon.h	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,63 @@
+/*
+* 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:   ?Description
+*
+*/
+
+#ifndef GLXDETAILSCUSTOMICON_H
+#define GLXDETAILSCUSTOMICON_H
+
+#include <hbwidget.h>
+class HbIconItem;
+class HbIcon;
+
+class GlxDetailsCustomIcon : public HbWidget 
+{	
+    Q_OBJECT
+    
+public:
+    GlxDetailsCustomIcon(QGraphicsItem *parent);
+    ~GlxDetailsCustomIcon();
+    /*
+     * Sets the Geometry of the Custom Widget
+     */
+    void setItemGeometry(QRect screenRect);
+    
+    /*
+     * Sets the Size of the Favourite Icon
+     */
+	void setItemSize(const QSizeF &size);
+	
+	/*
+	 * Sets the Position of the Favourite Icon
+	 */
+	void setItemPos(qreal ax, qreal ay);
+	
+	/*
+	 * Sets the  Icon of Favourite IconItem.
+	 */
+	void setItemIcon(const HbIcon &icon);
+	
+protected:
+    void mousePressEvent(QGraphicsSceneMouseEvent *event);	
+    void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
+    
+signals :
+     void updateFavourites();
+
+private:
+   HbIconItem *mFavIcon;   
+};
+
+#endif // GLXDETAILSCUSTOMICON_H
--- a/ui/views/detailsview/inc/glxdetailsview.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/detailsview/inc/glxdetailsview.h	Fri May 14 15:52:22 2010 +0300
@@ -27,6 +27,9 @@
 class QAbstractItemModel;
 class HbIconItem;
 class GlxDetailsCustomWidgets;
+class GlxDetailsCustomIcon;
+class GlxFavMediaModel;
+
 
 class GlxDetailsView : public GlxView  
 {
@@ -76,7 +79,9 @@
 public slots:
     void updateLayout(Qt::Orientation);
     void rowsRemoved(const QModelIndex &parent, int start, int end);
-
+    void dataChanged(QModelIndex startIndex, QModelIndex endIndex);
+    void updateFavourites();
+    
 private:
 
    //Adds the Widget required to show the details
@@ -108,13 +113,34 @@
      * clear all the model releted connection and data
      */
     void clearCurrentModel();
+    
+    /*
+     * cleans up the resources used.
+     */
+    void cleanUp();
+    
+    /*
+     * create the favourite model
+     */
+    void setFavModel();
 
 
 private:
+    
+    //Contains the thumbnail shown in teh details view.
     HbIconItem *mDetailsIcon;
-
-    //The media Model to acess the attributes not owned
+    
+    //Contains the favourite icon which adds or removes the image to favourite folder
+    GlxDetailsCustomIcon *mFavIcon;
+    
+    //The media Model to acess the attributes; not owned,dont delete.
     QAbstractItemModel *mModel; 
+    
+    //The media Model to acess the attributes whether image is in favourite folder or not;owned by this view
+    GlxFavMediaModel *mFavModel;
+    
+    //The Model for the Form
+    HbDataFormModel *mDetailModel;
 
     //The reference to the Main Window
     HbMainWindow *mWindow;
@@ -122,13 +148,18 @@
     //The data form for the detail 
     HbDataForm * mDataForm;
 
-    //The Model for the Form
-    HbDataFormModel *mDetailModel;
-
-    //Custom widgets
+    //Custom widgets which will contain the widgets not created/supported by data form 
     GlxDetailsCustomWidgets *mCustomPrototype;
     
     int mSelIndex;
-
+    
+    //Contains the Datelabel item
+    HbDataFormModelItem *mDateLabelItem;
+    
+    //Contains the ImageLabel item
+    HbDataFormModelItem *mImageLabelitem;
+    
+    //Contains the Comments item
+    HbDataFormModelItem *mCommentsLabelitem;
 };
 #endif //GLXDETAILSVIEW_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/detailsview/src/glxdetailscustomicon.cpp	Fri May 14 15:52:22 2010 +0300
@@ -0,0 +1,95 @@
+/*
+* 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:   ?Description
+*
+*/
+
+
+#include <hbiconitem.h>
+#include <hbframeitem.h>
+#include <glxdetailscustomicon.h>
+#include <QEvent>
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//mousePressEvent
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsCustomIcon::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+    Q_UNUSED(event)
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//clearCurrentModel
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsCustomIcon::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) 
+{
+  Q_UNUSED(event)  
+  emit updateFavourites();
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//GlxDetailsCustomIcon
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsCustomIcon::GlxDetailsCustomIcon(QGraphicsItem *parent) : HbWidget(parent)
+{
+  mFavIcon = new HbIconItem(this);
+  HbFrameItem* frame = new HbFrameItem(this);
+  frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
+  frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
+  frame->graphicsItem()->setOpacity(0.2); 
+  setBackgroundItem(frame->graphicsItem(),-1);
+  
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//~GlxDetailsCustomIcon
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsCustomIcon::~GlxDetailsCustomIcon()
+{
+  delete mFavIcon;
+  mFavIcon = NULL;
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setItemGeometry
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsCustomIcon::setItemGeometry(QRect screenRect) 
+{
+     setGeometry(screenRect);    
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setItemSize
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsCustomIcon::setItemSize(const QSizeF &size) 
+{
+     mFavIcon->setSize(size);
+} 
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setItemPos
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsCustomIcon::setItemPos(const qreal ax,const qreal ay)
+{
+    //place the FavIcon with respect to the parent i.e HbWidget 
+    mFavIcon->setPos(ax ,ay);    
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setItemIcon
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsCustomIcon::setItemIcon(const HbIcon &icon)
+{
+    mFavIcon->setIcon(icon);    
+} 
--- a/ui/views/detailsview/src/glxdetailscustomwidgets.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/detailsview/src/glxdetailscustomwidgets.cpp	Fri May 14 15:52:22 2010 +0300
@@ -58,13 +58,7 @@
             return dateLabel;
             }
         
-        case CommentsItem:
-            {
-            qDebug("GlxDetailsCustomWidgets::createCustomWidget:CommentsItem");
-            HbLineEdit *lineEdit = new HbLineEdit();
-            lineEdit->setGeometry(25,25,280,120);
-            return lineEdit;
-            }
+
 
         default:
             return 0;
--- a/ui/views/detailsview/src/glxdetailsview.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/detailsview/src/glxdetailsview.cpp	Fri May 14 15:52:22 2010 +0300
@@ -1,29 +1,27 @@
 /*
-* 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:   ?Description
-*
-*/
+ * 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:   ?Description
+ *
+ */
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
-
 #include <QModelIndex>
 #include <qdatetime.h>
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
-
+#include <hblabel.h>
 #include <hbdataform.h>
-#include <hblabel.h>
 #include <hbinstance.h>
 #include <hbiconitem.h>
 #include <hblineedit.h>
@@ -32,13 +30,17 @@
 #include <hbdataformviewitem.h>
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
-
-#include <glxmediamodel.h>
-#include "glxdetailsview.h"
+#include "glxviewids.h"
+#include "glxicondefs.h" //Contains the icon names/Ids
 #include "glxmodelparm.h"
+#include "glxmediamodel.h"
+#include "glxdetailsview.h"
+#include "glxfavmediamodel.h"
+#include <glxcommandhandlers.hrh>
+#include "glxdetailscustomicon.h"
 #include "glxdetailscustomwidgets.h"
-#include "glxviewids.h"
-#include <glxcommandhandlers.hrh>
+#include <glxcollectionpluginalbums.hrh>
+
 
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
@@ -46,51 +48,31 @@
 #endif
 
 
+//SIZE OF THE IMAGE , LAYOUTS TEAM NEED TO GIVER THE SIZE IN UNITS
+#define GLX_IMAGE_SIZE 215 
+
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //GlxDetailsView
 //--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsView::GlxDetailsView(HbMainWindow *window) :  GlxView ( GLX_DETAILSVIEW_ID),
-    mDetailsIcon(NULL), 
-    mModel(NULL), 
-    mWindow(window), 
-    mDataForm(NULL), 
+GlxDetailsView::GlxDetailsView(HbMainWindow *window) :  
+    GlxView ( GLX_DETAILSVIEW_ID),
+    mDetailsIcon(NULL),
+    mFavIcon(NULL),
+    mModel(NULL),
+    mFavModel(NULL),
     mDetailModel(NULL),
+    mWindow(window), 
+    mDataForm(NULL),     
     mCustomPrototype(NULL),
-    mSelIndex (0)
-    {
-    OstTraceFunctionEntry0( GLXDETAILSVIEW_GLXDETAILSVIEW_ENTRY );
-    
+    mSelIndex(0),
+    mDateLabelItem(NULL),
+    mImageLabelitem(NULL),
+    mCommentsLabelitem(NULL)
+        {
+    OstTraceFunctionEntry0( GLXDETAILSVIEW_GLXDETAILSVIEW_ENTRY );    
     setContentFullScreen( true );//for smooth transtion between grid to full screen and vice versa
     OstTraceFunctionExit0( GLXDETAILSVIEW_GLXDETAILSVIEW_EXIT );
-    }
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//~GlxDetailsView
-//--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsView::~GlxDetailsView()
-    {
-    OstTrace0( TRACE_IMPORTANT, GLXDETAILSVIEW_GLXDETAILSVIEW, "GlxDetailsView::~GlxDetailsView" );
-
-    if(mDetailsIcon) {
-    delete mDetailsIcon;
-    mDetailsIcon = NULL;
-    }
-
-    if(mDataForm && mDataForm->model()) {
-    delete mDataForm->model();
-    mDataForm->setModel(0);
-    }
-
-    if(mDataForm) {
-    delete mDataForm;
-    mDataForm = NULL;
-    }
-
-
-
-    clearCurrentModel();
-    disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(updateLayout(Qt::Orientation)));
-    }
+        }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //activate
@@ -98,9 +80,9 @@
 void GlxDetailsView::activate()
     {
     OstTraceFunctionEntry0( GLXDETAILSVIEW_ACTIVATE_ENTRY );
-    
-    setFormData();
+    setFormData();    
     connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(updateLayout(Qt::Orientation)));
+    connect(mFavIcon,SIGNAL(updateFavourites()),this ,SLOT(updateFavourites()));
     OstTraceFunctionExit0( GLXDETAILSVIEW_ACTIVATE_EXIT );
     }
 
@@ -108,27 +90,29 @@
 //initializeView
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::initializeView(QAbstractItemModel *model)
-{   
+    {   
     OstTraceFunctionEntry0( GLXDETAILSVIEW_INITIALIZEVIEW_ENTRY );
 
     //To show the thumbnail 
     if ( mDataForm == NULL) {
-        mDetailsIcon = new HbIconItem(this);
+    mDataForm = new HbDataForm(this);
+    mDetailModel = new HbDataFormModel();
 
-        //Create the form and the model for the data form
-        mDataForm = new HbDataForm(this);
-        mDetailModel = new HbDataFormModel();
+    //custom prototype
+    mCustomPrototype = new GlxDetailsCustomWidgets(mDataForm);           
+    QList <HbAbstractViewItem*> protos = mDataForm->itemPrototypes();
+    protos.append(mCustomPrototype);
+    mDataForm->setItemPrototypes(protos);
 
-        //custom prototype
-        mCustomPrototype = new GlxDetailsCustomWidgets(mDataForm);           
-        QList <HbAbstractViewItem*> protos = mDataForm->itemPrototypes();
-        protos.append(mCustomPrototype);
-        mDataForm->setItemPrototypes(protos);
-    
-        //Add the Widgets according to the mime type
-        addWidgets();
+    //Add the Widgets according to the mime type
+    addWidgets();
     }   
 
+    if( mDetailsIcon == NULL) {
+    mDetailsIcon = new HbIconItem(this);
+    mFavIcon = new GlxDetailsCustomIcon(this);
+    }
+
     //Set the Model
     mModel = model;
     initializeNewModel();
@@ -137,31 +121,77 @@
     updateLayout(mWindow->orientation());
 
     //Shows the Image 
-    showImage();
-
+    showImage(); 
     OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT );
-}
+    }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //resetView
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::resetView()
     {
-    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_RESETVIEW, "GlxDetailsView::resetView" );
-    
-    //Do Nothing here
+    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_RESETVIEW, "GlxDetailsView::resetView" );   
     }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //deActivate
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::deActivate()
-{ 
+    { 
     OstTraceFunctionEntry0( GLXDETAILSVIEW_DEACTIVATE_ENTRY );
+    cleanUp();      
+    OstTraceFunctionExit0( GLXDETAILSVIEW_DEACTIVATE_EXIT );
+    }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//cleanUp
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::cleanUp()
+    {
     clearCurrentModel();
+
+    //clear the connections
+    if(mWindow) {
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(updateLayout(Qt::Orientation)));
-    OstTraceFunctionExit0( GLXDETAILSVIEW_DEACTIVATE_EXIT );
-}
+    }
+
+    if(mFavModel) {
+    disconnect( mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
+    }
+
+    if(mFavIcon) {
+    disconnect(mFavIcon,SIGNAL(updateFavourites()),this ,SLOT(updateFavourites()));
+    }
+
+    delete mFavModel;
+    mFavModel = NULL;
+
+    delete mFavIcon;
+    mFavIcon = NULL;
+
+    delete mDetailsIcon;
+    mDetailsIcon = NULL;    
+    }  
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//~GlxDetailsView
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsView::~GlxDetailsView()
+    {
+    OstTrace0( TRACE_IMPORTANT, GLXDETAILSVIEW_GLXDETAILSVIEW, "GlxDetailsView::~GlxDetailsView" );
+
+    cleanUp();     
+
+    if(mDetailModel) {
+      delete mDetailModel;
+      mDataForm->setModel(0);
+    }
+
+    if(mDataForm) {
+    delete mDataForm;
+    mDataForm = NULL;
+    }       
+    }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //addWidgets
@@ -169,34 +199,47 @@
 void GlxDetailsView::addWidgets()
     {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets create Form" );
-    
+
     //----------------------------START OF CREATION OF WIDGETS---------------------------------//
     // To add new widgets in the details view, add it here.
-	
-	//---------------------------IMAGE NAME LABEL --------------------------------------------//
-    OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets create Image Label" );
 
-    HbDataFormModelItem *imageLabelitem =
-    mDetailModel->appendDataFormItem(HbDataFormModelItem::TextItem, QString("Name"), mDetailModel->invisibleRootItem());
-    imageLabelitem->setData(HbDataFormModelItem::KeyRole, QString(""));
-    imageLabelitem->setContentWidgetData(QString("text"),QString(""));
-    
+    //---------------------------IMAGE NAME LABEL --------------------------------------------//
+    OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets create Image Label" );
+    mImageLabelitem = mDetailModel->appendDataFormItem(HbDataFormModelItem::TextItem, QString("Name"), NULL);
+
     //---------------------------DATE LABEL --------------------------------------------//
     OstTrace0( TRACE_NORMAL, DUP2_GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets date label" );
-    HbDataFormModelItem *dateLabelItem = mDetailModel->appendDataFormItem((HbDataFormModelItem::DataItemType)(DateLabelItem), QString("Date"), mDetailModel->invisibleRootItem());
-    dateLabelItem->setData(HbDataFormModelItem::KeyRole,QString(""));
+    mDateLabelItem = mDetailModel->appendDataFormItem((HbDataFormModelItem::DataItemType)(DateLabelItem), QString("Date"), NULL);
+
 
     //----------------------------COMMENTS TEXT ITEM---------------------------------------------//
     OstTrace0( TRACE_NORMAL, DUP5_GLXDETAILSVIEW_ADDWIDGETS, "GlxDetailsView::addWidgets comment text" );
-    HbDataFormModelItem *commentsLabelItem = mDetailModel->appendDataFormItem((HbDataFormModelItem::DataItemType)(CommentsItem), QString("Comments"), mDetailModel->invisibleRootItem());
-    commentsLabelItem->setData(HbDataFormModelItem::KeyRole, QString(""));
+    mCommentsLabelitem = mDetailModel->appendDataFormItem(HbDataFormModelItem::TextItem, QString("Description"), NULL);
 
     //----------------------------END OF CREATION OF WIDGETS-------------------------------------//
 
     //Set the model to the Data Form
-     mDataForm->setModel(mDetailModel);
+    mDataForm->setModel(mDetailModel);
     }
 
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setFavModel
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::setFavModel()
+    {
+    GlxModelParm modelParm;
+
+    QString imagePath = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxUriRole)).value<QString>();
+
+    if(mFavModel == NULL) {
+    modelParm.setCollection( KGlxCollectionPluginFavoritesAlbumId );
+    modelParm.setContextMode(GlxContextFavorite);
+    modelParm.setPath(imagePath);
+    mFavModel = new GlxFavMediaModel( modelParm );
+    }
+    QString imageName = imagePath.section('\\',-1);
+    connect( mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );   
+    }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //setModel
@@ -212,14 +255,16 @@
     initializeNewModel();
     }
 
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//getAnimationItem
+//--------------------------------------------------------------------------------------------------------------------------------------------
 QGraphicsItem * GlxDetailsView::getAnimationItem(GlxEffect transtionEffect)
     {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_GETANIMATIONITEM, "GlxDetailsView::getAnimationItem" );
     if ( transtionEffect == FULLSCREEN_TO_DETAIL
             || transtionEffect == DETAIL_TO_FULLSCREEN ) {
-            return this;
+    return this;
     }
-
     return NULL;    
     }
 
@@ -229,26 +274,82 @@
 void GlxDetailsView::updateLayout(Qt::Orientation orient)
     {
     OstTrace1( TRACE_NORMAL, GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout;orient=%d", orient );
-    
-    QRect screen_rect = mWindow->geometry(); 
-    setGeometry(screen_rect);
+
+    qreal IconPosX = 0.0;
+    qreal IconPosY = 0.0;
+    qreal FavIconPosX = 0.0;
+    qreal FavIconPosY = 0.0;
+    qreal DataFormX = 0.0;
+    qreal DataFormY = 0.0;
+    qreal DataFormWidth = 0.0;
+    qreal DataFormHeight = 0.0;
+
+
+    qreal screenWidth = 0.0;
+    qreal screenHeight = 0.0;
+    qreal leftMargin = 0.0;
+    qreal bottomMargin = 0.0;
+    qreal screenMargin = 0.0;
+    qreal favIconSize = 0.0;
+    qreal chromeHeight = 0.0;
+    qreal middleVerticalMargin = 0.0;
+
+    style()->parameter("hb-param-screen-width", screenWidth);
+    style()->parameter("hb-param-screen-height", screenHeight);
+
+    style()->parameter("hb-param-margin-gene-middle-vertical", middleVerticalMargin);
+    style()->parameter("hb-param-margin-gene-left", leftMargin);
+    style()->parameter("hb-param-margin-gene-bottom", bottomMargin);
+    style()->parameter("hb-param-margin-gene-screen", screenMargin);
+
+    style()->parameter("hb-param-graphic-size-primary-small", favIconSize);
+    style()->parameter("hb-param-widget-chrome-height", chromeHeight);
+
 
     if(orient == Qt::Horizontal)
         {
-        OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout HORIZONTAL" );
-        mDetailsIcon->setPos(15,75);
-        mDataForm->setGeometry(301,60,335,300);
+    OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout HORIZONTAL" );
+    setGeometry(0,0,640,360);
+    IconPosX    = screenMargin;
+    IconPosY    = (screenMargin + chromeHeight);
+    FavIconPosX = (IconPosX + GLX_IMAGE_SIZE - (favIconSize +10));
+    FavIconPosY = (IconPosY + GLX_IMAGE_SIZE - (favIconSize + 10));
+    DataFormX =  screenMargin + GLX_IMAGE_SIZE + leftMargin ;
+    DataFormY =  screenMargin + chromeHeight ;
+
+    //This Commented code should be un commented , once the screen width and height size issue is solved and also
+    //the dataform issue of wrapping issue is solved
+    // DataFormWidth =  screenWidth(640) - DataFormX  - screenMargin ;
+    // DataFormHeight = screenHeight(360) - DataFormY - screenMargin ;
+    DataFormWidth = screenWidth - (screenMargin  + screenMargin) ;
+    DataFormHeight = screenHeight - DataFormY;
 
         }
     else
         {
-        OstTrace0( TRACE_NORMAL, DUP2_GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout VERTICAL" );
-        mDetailsIcon->setPos(25,75);
-        mDataForm->setGeometry(5,351,335,300);
-        mDataForm->setMaximumWidth(340);
+    OstTrace0( TRACE_NORMAL, DUP2_GLXDETAILSVIEW_UPDATELAYOUT, "GlxDetailsView::updateLayout VERTICAL" );
+    setGeometry(0,0,screenWidth,screenHeight);
+    IconPosX    = (screenWidth/2) - (GLX_IMAGE_SIZE/2);
+    IconPosY    = (screenMargin + chromeHeight);
+    FavIconPosX = (IconPosX + GLX_IMAGE_SIZE - (favIconSize +10));
+    FavIconPosY = (IconPosY + GLX_IMAGE_SIZE - (favIconSize +10));
+    DataFormX =  screenMargin;
+    DataFormY =  IconPosY + GLX_IMAGE_SIZE + middleVerticalMargin + bottomMargin ;
+    DataFormWidth = screenWidth - (screenMargin  + screenMargin) ;
+    DataFormHeight = screenHeight - DataFormY;
         }
+
+    mDetailsIcon->setPos(IconPosX,IconPosY);
+    //The Numerical should be updated once we get the parameters size from the layouts.
+    mFavIcon->setItemGeometry(QRect(FavIconPosX-2 ,FavIconPosY-2 ,favIconSize+12,favIconSize + 12)) ;
+    //Place the FavIcon with respect to the Widget.
+    mFavIcon->setItemPos(2 ,2 );
+    mDataForm->setGeometry(DataFormX,DataFormY,DataFormWidth,DataFormHeight);    
     }
 
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//rowsRemoved
+//--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::rowsRemoved(const QModelIndex &parent, int start, int end)
     {
     Q_UNUSED(parent);
@@ -271,29 +372,30 @@
 void GlxDetailsView::showImage()
     {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage" );
-    
+
     QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
     if ( variant.isValid() &&  variant.canConvert<int> () ) {
-        mSelIndex = variant.value<int>();  
+    mSelIndex = variant.value<int>();  
     }
 
     variant = mModel->data( mModel->index( mSelIndex ,0), GlxFsImageRole);
     if ( variant.isValid() &&  variant.canConvert<HbIcon> () )
         {
-        if(mWindow->orientation() == Qt::Horizontal)
-            {
-            OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage HORIZONTAL" );
-            
-            mDetailsIcon->resize(QSize(270, 270));
-            mDetailsIcon->setIcon(variant.value<HbIcon>());
-            }
-        else
-            {
-            OstTrace0( TRACE_NORMAL, DUP2_GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage VERTICAL" );
-            mDetailsIcon->resize(QSize(310, 260));
-            mDetailsIcon->setIcon(variant.value<HbIcon>());
-            }
-        }
+        QIcon itemIcon = variant.value<HbIcon>().qicon();
+        QPixmap itemPixmap = itemIcon.pixmap(GLX_IMAGE_SIZE,GLX_IMAGE_SIZE);
+        QSize sz(GLX_IMAGE_SIZE,GLX_IMAGE_SIZE);
+        itemPixmap = itemPixmap.scaled(sz, Qt::IgnoreAspectRatio );
+    
+    
+        HbIcon tmp = HbIcon( QIcon(itemPixmap)) ;
+        mDetailsIcon->setSize(QSize(GLX_IMAGE_SIZE, GLX_IMAGE_SIZE));
+        mDetailsIcon->setIcon(tmp);
+        mFavIcon->setItemIcon(HbIcon("qtg_graf_ratingslider_unrated"));
+    
+        qreal favIconSize = 0.0;
+        style()->parameter("hb-param-graphic-size-primary-small", favIconSize);
+        mFavIcon->setItemSize(QSize(favIconSize+10, favIconSize+10));
+        }        
     }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
@@ -302,9 +404,13 @@
 void GlxDetailsView::setFormData()
     {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETFORMDATA, "GlxDetailsView::setFormData" );
-    
+
+    //create and set the Favourite Model
+    setFavModel();
+
     //Call to set the Image Name
     setImageName();
+
     //Call to set the date in the from
     setDate();
     }
@@ -319,20 +425,7 @@
     QString imagePath = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxUriRole)).value<QString>();
     QString imageName = imagePath.section('\\',-1);
 
-    //Fetch the text edit for displaying the Name from the Form Model
-    GlxDetailsCustomWidgets * imageLabel = (GlxDetailsCustomWidgets *)mDataForm->itemByIndex(mDetailModel->index(0,0));
-
-    if(imageLabel)
-        {
-        OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETIMAGENAME, "GlxDetailsView::setImageName ImageLabel !=NULL" );
-        HbLineEdit* label = static_cast<HbLineEdit*>(imageLabel->dataItemContentWidget());
-
-        if(label) 
-            {
-            OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_SETIMAGENAME, "GlxDetailsView::setImageName SetText" );
-            label->setText(imageName);
-            }
-        }
+    mImageLabelitem->setContentWidgetData("text",imageName);
     OstTraceFunctionExit0( GLXDETAILSVIEW_SETIMAGENAME_EXIT );
     }
 
@@ -342,50 +435,83 @@
 void GlxDetailsView::setDate()
     {
     OstTraceFunctionEntry0( GLXDETAILSVIEW_SETDATE_ENTRY );
-    
+
     QString datestring;
     QString str("dd.MM.yyyy");
     QDate date = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxDateRole)).value<QDate>();
 
     if(date.isNull() == FALSE )
         {
-        OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" );
-        datestring = date.toString(str);
+    OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" );
+    datestring = date.toString(str);
         }
 
-    //Fetch the Label from the Form Model
-    GlxDetailsCustomWidgets * dateLabel = (GlxDetailsCustomWidgets *)mDataForm->itemByIndex(mDetailModel->index(1,0));
+    mDateLabelItem->setContentWidgetData("plainText",datestring);
 
-    if(dateLabel) 
-        {
-        OstTrace0( TRACE_NORMAL, DUP1_GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate Datelabel is not NULL" );
-        
-        HbLabel* label = static_cast<HbLabel*>(dateLabel->dataItemContentWidget());
-
-        if(label) 
-            {
-            OstTrace0( TRACE_NORMAL, DUP2_GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate SetText" );
-            label->setPlainText(datestring);
-            }
-        }    
     OstTraceFunctionExit0( GLXDETAILSVIEW_SETDATE_EXIT );
     }
 
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//initializeNewModel
+//--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::initializeNewModel()
     {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_INITIALIZENEWMODEL, "GlxDetailsView::initializeNewModel" );
-    
+
     if ( mModel ) {
     connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
     }
     }
 
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//clearCurrentModel
+//--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::clearCurrentModel()
     {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_CLEARCURRENTMODEL, "GlxDetailsView::clearCurrentModel" );
-    
+
     if ( mModel ) {
     disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
     mModel = NULL ;
     }    
     }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//dataChanged
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::dataChanged(QModelIndex startIndex, QModelIndex endIndex)
+    {
+    Q_UNUSED(endIndex);      
+ 
+    QVariant variant = mFavModel->data( startIndex, GlxFavorites );
+    if ( variant.isValid() &&  variant.canConvert<bool> () ) 
+        {
+        if(variant.value<bool>() )
+            {  
+             mFavIcon->setItemIcon(HbIcon(GLXICON_ADD_TO_FAV));
+            }
+        else 
+            {
+             mFavIcon->setItemIcon(HbIcon(GLXICON_REMOVE_FAV));
+            }
+        }
+    }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//updateFavourites
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsView::updateFavourites()
+    {
+    QVariant variant = mFavModel->data(mFavModel->index(0,0), GlxFavorites );
+    if ( variant.isValid() &&  variant.canConvert<bool> ())
+        {
+        if(variant.value<bool>() )
+            {
+             emit actionTriggered( EGlxCmdRemoveFromFav); 
+            }
+        else
+            {
+            emit actionTriggered(EGlxCmdAddToFav);
+            }
+        }
+    }
--- a/ui/views/effectengine/inc/glxeffectengine.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/effectengine/inc/glxeffectengine.h	Fri May 14 15:52:22 2010 +0300
@@ -32,6 +32,9 @@
 #include <QList>
 #include "glxuistd.h"
 
+class XQSettingsKey;
+class XQSettingsManager;
+class QStringList;
 typedef enum 
 {
     NO_MOVE,
@@ -47,10 +50,29 @@
 {
 public :
     GlxSlideShowSetting(int slideDelayTime = 0, GlxEffect effect = NO_EFFECT, GlxSlideShowMoveDir moveDir = NO_MOVE);
+    ~GlxSlideShowSetting();
     int slideDelayTime ( ) { return mSlideDelayTime; }
     GlxEffect effect() { return mEffect ; }
     void setEffect(GlxEffect effect) { mEffect = effect ;}
     GlxSlideShowMoveDir slideShowMoveDir() { return mMoveDir; }
+    /* Returns the index to the selected transition effect
+    This value is fetched from Central repository */
+    int slideShowEffectIndex() ;
+    /*SlideShowSettingsView will call this API to set the index of the transition effect chosen. 
+    This data will be written to the Central Repository*/
+     void setslideShowEffectIndex( int index );
+    
+    /* Returns the index to the selected transition delay /
+    This value is fetched from Central repository */
+    int slideShowDelayIndex();
+    
+    /*SlideShowSettingsView will call this API to set the index of the transition delay chosen. 
+    This data will be written to the Central Repository*/
+    void setSlideShowDelayIndex( int index );
+    
+    /*This will return the list of effects as available in the central repository */
+    QStringList slideShowEffectList();
+ 
 /*
  * This funtion read the user setting store in a file system.
  * 
@@ -60,7 +82,18 @@
 private :
     int mSlideDelayTime; //user set time interval in between showing slide
     GlxEffect mEffect;         //user defined effect, To:Do It is either some integer value or some enum
+    GlxSlideShowDelay mDelay;
     GlxSlideShowMoveDir mMoveDir;	//user defined slide move direction
+    QStringList mEffectList;
+    XQSettingsManager *mSettingsManager;
+    XQSettingsKey *mTransitionEffectCenrepKey;
+    XQSettingsKey *mTransitionDelayCenrepKey;
+    XQSettingsKey *mWaveEffectCenRepKey;
+    XQSettingsKey *mFadeEffectCenRepKey;
+    XQSettingsKey *mZoomEffectCenRepKey;
+    XQSettingsKey *mSlowCenRepKey;
+    XQSettingsKey *mMediumCenRepKey;
+    XQSettingsKey *mFastCenRepKey;
 };
 
 /*
--- a/ui/views/effectengine/src/glxeffectengine.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/effectengine/src/glxeffectengine.cpp	Fri May 14 15:52:22 2010 +0300
@@ -23,18 +23,93 @@
 #include "glxfadeplugin.h"
 #include <QDebug>
 
+#include <xqsettingsmanager.h>
+#include <xqsettingskey.h>
+#include <QStringList>
+const TUint32 KGlxTransitionEffect     = 0x1;
+const TUint32 KGlxTransitionDelay  = 0x2;
+const TUint32 KGlxSlow  = 0x3;
+const TUint32 KGlxMeduim  = 0x4;
+const TUint32 KGlxFast  = 0x5;
+const TUint32 KGlxWaveEffect  = 0x6;
+const TUint32 KGlxFadeEffect  = 0x7;
+const TUint32 KGlxZoomToFaceEffect  = 0x8;
+const TUint32 KCRUidGallery = 0x20007194;
 GlxSlideShowSetting::GlxSlideShowSetting( int slideDelayTime, GlxEffect effect, GlxSlideShowMoveDir moveDir ) 
     : mSlideDelayTime(slideDelayTime),
       mEffect ( effect),
       mMoveDir ( moveDir)
 {
+    mSettingsManager = new XQSettingsManager();
+    mTransitionEffectCenrepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery , KGlxTransitionEffect);
+    mTransitionDelayCenrepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery , KGlxTransitionDelay);
+    mSlowCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxSlow);
+    mMediumCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxMeduim);
+    mFastCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxFast);
 
+    mWaveEffectCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxWaveEffect );
+    mFadeEffectCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxFadeEffect);
+    mZoomEffectCenRepKey= new XQSettingsKey(XQSettingsKey::TargetCentralRepository, KCRUidGallery , KGlxZoomToFaceEffect );
 }
 
+GlxSlideShowSetting::~GlxSlideShowSetting( )
+{
+        delete mFastCenRepKey;
+        delete mMediumCenRepKey;
+        delete mSlowCenRepKey;
+        delete mZoomEffectCenRepKey;
+        delete mFadeEffectCenRepKey;
+        delete mWaveEffectCenRepKey;
+        delete mTransitionDelayCenrepKey;
+        delete mTransitionEffectCenrepKey;
+        delete mSettingsManager;
+}
+int GlxSlideShowSetting::slideShowDelayIndex()
+{
+    QVariant effectvalue = mSettingsManager->readItemValue(*mTransitionDelayCenrepKey);
+    return effectvalue.toInt();
+}
+void GlxSlideShowSetting::setSlideShowDelayIndex( int index )
+{
+    mSettingsManager->writeItemValue(*mTransitionDelayCenrepKey, index);
+}
+QStringList GlxSlideShowSetting::slideShowEffectList()
+{
+	if(mSettingsManager->readItemValue(*mWaveEffectCenRepKey).toInt() == WAVE_EFFECT)
+        mEffectList<<"wave";
+    if(mSettingsManager->readItemValue(*mFadeEffectCenRepKey).toInt() == SMOOTH_FADE)
+        mEffectList<<"Fade";
+    if(mSettingsManager->readItemValue(*mZoomEffectCenRepKey).toInt() == ZOOM_TO_FACE)
+        mEffectList<<"Zoom to face"; 
+    return mEffectList;
+}
+int GlxSlideShowSetting::slideShowEffectIndex()
+{
+    QVariant effectvalue = mSettingsManager->readItemValue(*mTransitionEffectCenrepKey);
+    return effectvalue.toInt();
+}
+void GlxSlideShowSetting::setslideShowEffectIndex( int index )
+{
+    mSettingsManager->writeItemValue(*mTransitionEffectCenrepKey, index);
+}
 void GlxSlideShowSetting::readSlideShowSetting()
 {
 //To:Do read from the file system
-    mSlideDelayTime = 3000;
+    QVariant effectvalue = mSettingsManager->readItemValue(*mTransitionDelayCenrepKey);
+    switch (effectvalue.toInt()) {
+               case SLOW:
+                   mSlideDelayTime = mSettingsManager->readItemValue(*mSlowCenRepKey).toInt();
+                   break;
+               case MEDIUM:
+                   mSlideDelayTime = mSettingsManager->readItemValue(*mMediumCenRepKey).toInt();
+                   break;
+               case FAST:
+                   mSlideDelayTime = mSettingsManager->readItemValue(*mFastCenRepKey).toInt();
+                   break;
+               default:
+    				mSlideDelayTime = 3000;
+                   break;
+	}
     mEffect = FADE_EFFECT;
     mMoveDir = MOVE_FORWARD;
     qDebug("GlxSlideShowSetting::readSlideShowSetting() slide delay time %d effect %d move direction %d", mSlideDelayTime, mEffect, mMoveDir);
--- a/ui/views/fullscreenview/inc/glxcoverflow.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/fullscreenview/inc/glxcoverflow.h	Fri May 14 15:52:22 2010 +0300
@@ -30,6 +30,7 @@
 class HbMainWindow;
 class QAbstractItemModel;
 
+class QGestureEvent;
 typedef enum
 {
     NO_MOVE,
@@ -46,7 +47,7 @@
     EMPTY_ROW_EVENT //send the signal when model have no data
 } GlxCoverFlowEvent;
 
-class GlxCoverFlow : public HbScrollArea
+class GlxCoverFlow : public HbWidget
 {
 Q_OBJECT
 
@@ -59,12 +60,10 @@
     void setUiOn(bool uiOn) { mUiOn = uiOn; }
     void partiallyClean();
     void partiallyCreate(QAbstractItemModel *model, QSize itemSize);
-	void rotateImage();
-    void setCoverFlow();
+	void setCoverFlow();
     void ClearCoverFlow();
 		    
 public slots:
-    void rotationEffectFinished( const HbEffect::EffectStatus &status );
 
 signals :
     void coverFlowEvent(GlxCoverFlowEvent e);
@@ -84,8 +83,7 @@
     void autoRightMove();
 
 protected:
-    void mousePressEvent(QGraphicsSceneMouseEvent *event);	
-    void mouseReleaseEvent (QGraphicsSceneMouseEvent *event) ;
+	void gestureEvent(QGestureEvent *event);
 
     void move(int value);
 
@@ -103,7 +101,6 @@
     //reset all the data of cover flow
     void resetCoverFlow();
     int getSubState();
-private slots:
 
 private:
 	HbIconItem *mIconItem[NBR_ICON_ITEM];      //at most contain only five item
@@ -117,9 +114,8 @@
     bool mUiOn;
     int mBounceBackDeltaX;
     QAbstractItemModel *mModel;
-    GlxUserMove mMoveDir;                       //arun_goel3 may be remove later or change later
-	int rotAngle;
-        
+    GlxUserMove mMoveDir;
+    int mSpeed;        
 };
 
 #endif /* GLXCOVERFLOW_H_ */
--- a/ui/views/fullscreenview/inc/glxfullscreenview.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/fullscreenview/inc/glxfullscreenview.h	Fri May 14 15:52:22 2010 +0300
@@ -66,7 +66,6 @@
     void setModel(QAbstractItemModel *model);
     void setModelContext ( );
     void cleanUp();
-    void handleUserAction(qint32 commandId);
     QGraphicsItem * getAnimationItem(GlxEffect transitionEffect);
     
     
@@ -85,7 +84,10 @@
     void effectFinished( const HbEffect::EffectStatus  );
     void imageSelectionEffectFinished( const HbEffect::EffectStatus  );
     void handleToolBarAction();
- 
+
+protected :
+    bool event(QEvent *event);
+
 private:
     
     /*
--- a/ui/views/fullscreenview/src/glxcoverflow.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/fullscreenview/src/glxcoverflow.cpp	Fri May 14 15:52:22 2010 +0300
@@ -21,24 +21,33 @@
 #include <QAbstractItemModel>
 #include <QGraphicsSceneMouseEvent>
 #include <QDebug>
+#include <QGesture>
+#include <hbpangesture.h>
 
 //User Includes
 #include <glxmodelparm.h>
 #include <glxcoverflow.h>
 #include "glxviewids.h"
 
-const int KMoveX = 60;  //coverflow auto move speed
+#define GLX_COVERFLOW_SPEED 60
+#define GLX_BOUNCEBACK_SPEED 15
 
-GlxCoverFlow::GlxCoverFlow(QGraphicsItem *parent ) : HbScrollArea(parent), mSelItemIndex (0),
-              mRows(0), mSelIndex (0), mStripLen (0), mCurrentPos(0), 
-              mItemSize (QSize(0,0)), mModel ( NULL), mMoveDir(NO_MOVE), rotAngle(0) 
+GlxCoverFlow::GlxCoverFlow(QGraphicsItem *parent ) 
+     : HbWidget(parent), 
+       mSelItemIndex (0),
+       mRows(0),
+       mSelIndex (0),
+       mStripLen (0),
+       mCurrentPos(0),
+       mItemSize (QSize(0,0)),
+       mModel ( NULL),
+       mMoveDir(NO_MOVE),
+       mSpeed ( GLX_COVERFLOW_SPEED )
 {
 //TO:DO through exception
    qDebug("GlxCoverFlow::GlxCoverFlow");
-   HbEffect::add( QString("HbIconItem"), QString(":/data/transitionrotate0.fxml"), QString( "RotateImage0" ));
-   HbEffect::add( QString("HbIconItem"), QString(":/data/transitionrotate90.fxml"), QString( "RotateImage90" ));
-   HbEffect::add( QString("HbIconItem"), QString(":/data/transitionrotate180.fxml"), QString( "RotateImage180" ));
-   HbEffect::add( QString("HbIconItem"), QString(":/data/transitionrotate270.fxml"), QString( "RotateImage270" ));
+   grabGesture(Qt::PanGesture);
+   grabGesture(Qt::TapGesture);
    connect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ), Qt::QueuedConnection );
    connect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ), Qt::QueuedConnection );   
 }
@@ -83,66 +92,58 @@
     qDebug("GlxCoverFlow::indexChanged index = %d mSelIndex = %d ",index, mSelIndex );
     if ( index != mSelIndex && mModel) {
         loadIconItems();
-		if(rotAngle) {
-            rotAngle = 0;
-            //HbEffect::start(mIconItem[mSelItemIndex], QString("HbIconItem"), QString("RotateImage270"), this, "rotationEffectFinished" );
-            mIconItem[mSelItemIndex]->resetTransform();
-            mIconItem[mSelItemIndex]->resize(mItemSize);
-        }
     }
 }
 
-void GlxCoverFlow::rotateImage ()  
-{
-    qDebug("GlxCoverFlow::rotateImage ");  
-	if(rotAngle == 0)
-	{
-		HbEffect::start(mIconItem[mSelItemIndex], QString("HbIconItem"), QString("RotateImage0"), this, "rotationEffectFinished" );
-	}
-	if(rotAngle == 90)
-	{
-		HbEffect::start(mIconItem[mSelItemIndex], QString("HbIconItem"), QString("RotateImage90"), this, "rotationEffectFinished" );
-	}
-	if(rotAngle == 180)
-	{
-		HbEffect::start(mIconItem[mSelItemIndex], QString("HbIconItem"), QString("RotateImage180"), this, "rotationEffectFinished" );
-	}
-	if(rotAngle == 270)
-	{
-		HbEffect::start(mIconItem[mSelItemIndex], QString("HbIconItem"), QString("RotateImage270"), this, "rotationEffectFinished" );
-	}	
-	rotAngle += 90;
-	rotAngle %= 360;	
-}
+void GlxCoverFlow::gestureEvent(QGestureEvent *event)
+{    
+ if(QTapGesture *gesture = static_cast<QTapGesture *>(event->gesture(Qt::TapGesture))) {        
+        if (gesture->state() == Qt::GestureFinished) {
+                     emit coverFlowEvent( TAP_EVENT );
+                      event->accept(gesture);
+            }
+        }
+  
+  if (QPanGesture *panningGesture = qobject_cast<QPanGesture*>(event->gesture(Qt::PanGesture))) {
+        HbPanGesture *hbPanGesture = qobject_cast<HbPanGesture *>(panningGesture);
+         if (hbPanGesture) {
+            if(hbPanGesture->state() == Qt::GestureUpdated) {
+                 QPointF delta(hbPanGesture->sceneDelta());
+                 panGesture(delta);
+                  event->accept(panningGesture);
 
-void GlxCoverFlow::rotationEffectFinished (const HbEffect::EffectStatus &status)  
-{
-    Q_UNUSED(status)
+            }
+             if(hbPanGesture->state() == Qt::GestureFinished) {
+                 switch( mMoveDir ) {
     
-    qDebug("GlxCoverFlow::rotationEffectFinished");  
-	QSize itemSize = mItemSize;
-	if((rotAngle == 90) || (rotAngle == 270)) {
-		itemSize.transpose();
-	}
-	mIconItem[mSelItemIndex]->resetTransform();
-	mIconItem[mSelItemIndex]->resize(itemSize);
-	mIconItem[mSelItemIndex]->setPos((mItemSize.width() - itemSize.width())/2, (mItemSize.height() - itemSize.height())/2 );
-	QTransform rotateTransform = mIconItem[mSelItemIndex]->transform();
-	rotateTransform.translate((mItemSize.width()/2)-((mItemSize.width() - itemSize.width())/2),(mItemSize.height()/2) - ((mItemSize.height() - itemSize.height())/2));
-	rotateTransform.rotate(rotAngle);
-	rotateTransform.translate(-((mItemSize.width()/2)-((mItemSize.width() - itemSize.width())/2)),-((mItemSize.height()/2) - ((mItemSize.height() - itemSize.height())/2)));
-	mIconItem[mSelItemIndex]->setTransform(rotateTransform);
+                        case LEFT_MOVE: 
+                            mMoveDir = NO_MOVE;
+                            emit autoLeftMoveSignal();
+                            break ;
+        
+                        case RIGHT_MOVE :
+                            mMoveDir = NO_MOVE;
+                            emit autoRightMoveSignal();
+                            break;
+        
+                        default:
+                            break;
+                    } 
+                  event->accept(panningGesture);
 
+            }
+         }
+    }
+  
 }
 
 void GlxCoverFlow::panGesture ( const QPointF & delta )  
 {
     qDebug("GlxCoverFlow::panGesture deltaX= %d", (int)delta.x());  
-    if(getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S )
-        {
+    if(getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S ) {
         return;
-        }
-	move((int) delta.x());    
+    }
+    move((int) delta.x());    
     if( delta.x() > 0 ) {     
         mMoveDir = RIGHT_MOVE;
     }
@@ -158,14 +159,13 @@
 
 void GlxCoverFlow::leftGesture(int value)
 {
-	Q_UNUSED(value);
+    Q_UNUSED(value);
     qDebug("GlxCoverFlow::leftGesture CurrentPos= %d value %d", mCurrentPos, value); 
-    if(getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S )
-        {
+    if(getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S ) {
         return;
-        }
+    }
     mMoveDir = NO_MOVE;
-    mBounceBackDeltaX = mItemSize.width() >> 2;
+    mBounceBackDeltaX = ( mItemSize.width() >> 2 )  + ( mItemSize.width() >> 3 );
     emit autoLeftMoveSignal();
     if ( mUiOn == TRUE ) {
         mUiOn = FALSE;
@@ -175,14 +175,13 @@
 
 void GlxCoverFlow::rightGesture(int value)
 {
-	Q_UNUSED(value);
+    Q_UNUSED(value);
     qDebug("GlxCoverFlow::rightGesture CurrentPos= %d value %d ", mCurrentPos, value);
-    if(getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S )
-        {
+    if(getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S ) {
         return;
-        }
+    }
     mMoveDir = NO_MOVE;
-    mBounceBackDeltaX = mItemSize.width() >> 2;
+    mBounceBackDeltaX = ( mItemSize.width() >> 2 )  + ( mItemSize.width() >> 3 );
     emit autoRightMoveSignal();
     if ( mUiOn == TRUE  ) {
         mUiOn = FALSE;
@@ -245,48 +244,17 @@
     }
 }
 
-void GlxCoverFlow::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
-    Q_UNUSED(event);
-    qDebug("GlxCoverFlow::mousePressEvent");
-    mMoveDir = TAP_MOVE;
-}
 
-void GlxCoverFlow::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) 
-{
-    Q_UNUSED(event);
-    qDebug("GlxCoverFlow::mouseReleaseEvent move dir %d", mMoveDir);
-    
-    switch( mMoveDir ) {
-    case NO_MOVE :
-    	break;
-    	
-    case TAP_MOVE :
-	    mMoveDir = NO_MOVE;
-	    emit coverFlowEvent( TAP_EVENT );
-    	break;
-    	
-    case LEFT_MOVE: 
-        mMoveDir = NO_MOVE;
-        emit autoLeftMoveSignal();
-        break ;
-        
-    case RIGHT_MOVE :
-        mMoveDir = NO_MOVE;
-        emit autoRightMoveSignal();
-        break;
-        
-    default:
-        break;
-    } 
-}
 
 void GlxCoverFlow::autoLeftMove()
 {
-    qDebug("GlxCoverFlow::autoLeftMove ");
     int width = mItemSize.width() ;
     
     qDebug("GlxCoverFlow::autoLeftMove current pos = %d mBounceBackDeltaX x = %d", mCurrentPos, mBounceBackDeltaX);
+    
+    if ( mSelIndex == ( mRows -1 )) {
+        mSpeed = GLX_BOUNCEBACK_SPEED;
+    }
     //for bounce back effect for last image ( it will do the back)
     if ( ( mCurrentPos + width ) > ( mStripLen + mBounceBackDeltaX ) && mMoveDir == NO_MOVE ) {
         mMoveDir = LEFT_MOVE;
@@ -296,7 +264,7 @@
     }
     
     int deltaX = width - mCurrentPos %  width ; 
-    int moveX = deltaX > KMoveX ? KMoveX : deltaX;
+    int moveX = deltaX > mSpeed ? mSpeed : deltaX;
     
     qDebug("GlxCoverFlow::autoLeftMove delta x = %d current pos = %d move x = %d", deltaX, mCurrentPos, moveX);
     
@@ -314,13 +282,6 @@
         }
         int selIndex = mCurrentPos / width ;
         if ( mRows == 1 || selIndex != mSelIndex ) {
-			if(rotAngle) {
-				rotAngle = 0;
-				//HbEffect::start(mIconItem[mSelItemIndex], QString("HbIconItem"), QString("RotateImage270"), this, "rotationEffectFinished" );
-				mIconItem[mSelItemIndex]->resetTransform();
-				mIconItem[mSelItemIndex]->resize(mItemSize);
-				mIconItem[mSelItemIndex]->setPos(- mItemSize.width(), 0);
-			}
             mSelIndex = selIndex;
             mSelItemIndex = ( ++mSelItemIndex ) % NBR_ICON_ITEM;
             selIndex = ( mSelItemIndex + 2 ) % NBR_ICON_ITEM;
@@ -328,8 +289,9 @@
             emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
         }
         mMoveDir = NO_MOVE;
-		mBounceBackDeltaX = 10;
-    }	
+        mBounceBackDeltaX = 10;
+        mSpeed = GLX_COVERFLOW_SPEED;
+    }   
 }
 
 void GlxCoverFlow::autoRightMove()
@@ -338,19 +300,23 @@
     int width = mItemSize.width()  ;
     int diffX = mStripLen - mCurrentPos ;
     
+    //slow the speed for bounce back effect
+    if ( mSelIndex == 0 ) {
+        mSpeed = GLX_BOUNCEBACK_SPEED;
+    }
     //for bounce back effect for back image ( it will do the back)
     qDebug("GlxCoverFlow::autoRightMove diffX x = %d current pos = %d mBounceBackDeltaX x = %d", diffX, mCurrentPos, mBounceBackDeltaX);
     if ( diffX > mBounceBackDeltaX && diffX < width && mMoveDir == NO_MOVE ){
         mMoveDir = RIGHT_MOVE;
         mBounceBackDeltaX = 10;
-        autoLeftMoveSignal();        
+        autoLeftMoveSignal();  
         return ;
     }
     
-    int deltaX = mCurrentPos %  width ;	
+    int deltaX = mCurrentPos %  width ; 
     //in the case of deltaX == 0 ( right flick case ) complete image should move
     deltaX = deltaX ? deltaX : width ; 
-    int moveX = deltaX > KMoveX ? KMoveX : deltaX;
+    int moveX = deltaX > mSpeed ? mSpeed : deltaX;
     
     qDebug("GlxCoverFlow::autoRightMove delta x = %d current pos = %d move x = %d", deltaX, mCurrentPos, moveX);
     
@@ -368,14 +334,6 @@
         }
         int selIndex = mCurrentPos / width ;
         if ( mRows == 1 || selIndex != mSelIndex ) {
-		    if(rotAngle) {
-				rotAngle = 0;
-				//HbEffect::start(mIconItem[mSelItemIndex], QString("HbIconItem"), QString("RotateImage270"), this, "rotationEffectFinished" );
-				mIconItem[mSelItemIndex]->resetTransform();
-				mIconItem[mSelItemIndex]->resize(mItemSize);
-				mIconItem[mSelItemIndex]->setPos(mItemSize.width(), 0);
-
-		    }
             mSelIndex = selIndex;
             mSelItemIndex = ( mSelItemIndex == 0 ) ?  NBR_ICON_ITEM -1 : --mSelItemIndex;
             selIndex = ( mSelItemIndex + 3 ) % NBR_ICON_ITEM;
@@ -383,7 +341,8 @@
             emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
         }
         mMoveDir = NO_MOVE;
-		mBounceBackDeltaX = 10;
+        mBounceBackDeltaX = 10;
+        mSpeed = GLX_COVERFLOW_SPEED;
     }
 }
 
@@ -394,7 +353,7 @@
 
     for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) {
         pos.setX( mIconItem[i]->pos().x() + value);
-		pos.setY(mIconItem[i]->pos().y());
+        pos.setY(mIconItem[i]->pos().y());
         mIconItem[i]->setPos(pos);
     }
     
@@ -411,13 +370,13 @@
 void GlxCoverFlow::setRows()
 {
     qDebug("GlxCoverFlow::setRows ");
-	if (mModel) {
-	    mRows = mModel->rowCount();
-	}
-	else {
-	    mRows = 0;
-	}
-	qDebug("GlxCoverFlow::setRows number of rows = %d", mRows);
+    if (mModel) {
+        mRows = mModel->rowCount();
+    }
+    else {
+        mRows = 0;
+    }
+    qDebug("GlxCoverFlow::setRows number of rows = %d", mRows);
 }
 
 void GlxCoverFlow::setStripLen()
@@ -501,7 +460,7 @@
 /*
     disconnect(mModel, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed()));
     disconnect(mModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), this, SLOT(rowsAboutToBeRemoved(QModelIndex,int,int)));
-*/	
+*/  
 }
 
 void GlxCoverFlow::initializeNewModel()
@@ -511,7 +470,7 @@
         connect( mModel, SIGNAL( dataChanged(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)));
-    }	
+    }   
 }
 
 void GlxCoverFlow::resetCoverFlow()
@@ -550,8 +509,7 @@
     
     variant = model->data( model->index(mSelIndex, 0), GlxFsImageRole );
     if ( variant.isValid() &&  variant.canConvert<HbIcon> () ) {
-        mIconItem[2]->setIcon ( variant.value<HbIcon>() ) ;    
-        qDebug("#########################GlxCoverFlow::partiallyCreated,ICON PRES##################");
+        mIconItem[2]->setIcon ( variant.value<HbIcon>() ) ; 
     }
 }
 
@@ -560,10 +518,6 @@
     qDebug("GlxCoverFlow::~GlxCoverFlow model " );
     disconnect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ) );
     disconnect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ) );
-    HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionrotate0.fxml"), QString( "RotateImage0" ));
-    HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionrotate90.fxml"), QString( "RotateImage90" ));
-    HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionrotate180.fxml"), QString( "RotateImage180" ));
-    HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionrotate270.fxml"), QString( "RotateImage270" ));
 }
 
 
@@ -576,7 +530,7 @@
             delete mIconItem[i] ;
             mIconItem[i] = NULL;
         }
-    }	
+    }   
 }
 
 int GlxCoverFlow::getSubState()
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Fri May 14 15:52:22 2010 +0300
@@ -263,7 +263,6 @@
 
     if(mFullScreenToolBar) {
        mFullScreenToolBar->clearActions();
-       delete mFullScreenToolBar;
        mFullScreenToolBar = NULL;
     }
     
@@ -291,6 +290,7 @@
     OstTraceExt2( TRACE_NORMAL, GLXFULLSCREENVIEW_SETMODEL, "GlxFullScreenView::setModel; model=%x; mModel=%u", ( TUint )( model ), ( TUint ) mModel );
     
     mModel = model;     
+	setModelContext();  
     setHdmiModel(mModel);
 
     mCoverFlow->setModel(mModel);
@@ -712,25 +712,6 @@
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
 }
 
-void GlxFullScreenView::handleUserAction(qint32 commandId)
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HANDLEUSERACTION_ENTRY );
-    
-    switch( commandId ) {
-        case EGlxCmdRotate :
-            //trigger the rotate Effect in CoverFlow
-            mCoverFlow->rotateImage();
-            break;
-            
-
-            
-        default :
-            break;
-    }
-
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_HANDLEUSERACTION_EXIT );
-}
-
 void GlxFullScreenView::imageSelectionAnimation(const QModelIndex &index)
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_ENTRY );
@@ -778,3 +759,20 @@
 	}
 	return substate;
 }
+
+bool GlxFullScreenView::event(QEvent *event)
+{
+    GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", event->type());
+    if ( event->type() ==  QEvent::WindowActivate && mCoverFlow) {
+        if (mTvOutWrapper){
+        mTvOutWrapper->setToNativeMode();    
+        }
+    }
+    if ( event->type() ==  QEvent::WindowDeactivate && mCoverFlow) {
+        if (mTvOutWrapper){
+        mTvOutWrapper->setToCloningMode();    
+        }
+    }
+    return HbView::event(event);
+}
+
--- a/ui/views/gridview/inc/glxgridview.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/gridview/inc/glxgridview.h	Fri May 14 15:52:22 2010 +0300
@@ -24,15 +24,12 @@
 #include "glxview.h"
 
 //Qt/Orbit forward declarations
-class HbGridView;
 class HbMainWindow;
-class HbDocumentLoader;
 class QAbstractItemModel;
-class HbAbstractViewItem;
-
-#define NBR_ROW 5
-#define NBR_COL 3
-#define NBR_PAGE NBR_ROW * NBR_COL
+class HgWidget;
+class GlxModelWrapper;
+class HbPushButton;
+class HbIconItem;
 
 class GlxGridView : public GlxView
 {
@@ -54,34 +51,33 @@
 
 public slots:
     void itemSelected(const QModelIndex &  index);
-    void setVisvalWindowIndex();
-    /*
-     * This loads the docml and retrives the widgets from the 
-     * docml corresponding to the present orentation 
-     */
-     void loadGridView(Qt::Orientation orient);
-    void itemDestroyed();
-        
+    void scrollingEnded();
+    void scrollingStarted();
+    void orientationchanged(Qt::Orientation orient);
+    void visibleIndexChanged(const QModelIndex& current, const QModelIndex& previous);
+
 protected :
     QVariant  itemChange (GraphicsItemChange change, const QVariant &value) ;
 
 private slots:
-    void indicateLongPress( HbAbstractViewItem *item, QPointF coords );
+    void indicateLongPress(const QModelIndex& index, QPointF coords);
+    void uiButtonClicked(bool checked);
 	
 private:
     void addViewConnection();
     void removeViewConnection();
-    void resetItemTransform();
+    void hideorshowitems(Qt::Orientation orient);
+    void scrolltofocus();
+    void loadGridView();
   
-private:
-	HbGridView          *mGridView; 
-	HbView              *mView;
-	HbMainWindow        *mWindow;  //no ownership
+	HbMainWindow        *mWindow;          // no ownership
 	QAbstractItemModel  *mModel ;
-	int mVisualIndex;             //first item index of the page //To:Do remove later
-	HbAbstractViewItem   *mItem;
-    HbDocumentLoader     *mDocLoader; //Docml loader to load the widgets from docml 
-    bool                 mIsLongPress; //to check the long press has happend or not
+	HgWidget            *mWidget;          // HG Grid Widget
+	QItemSelectionModel *mSelectionModel;  // Selected items model
+    GlxModelWrapper     *mModelWrapper;    // Temp Model Wrapper, so That Role Change not a problem
+    HbPushButton        *mUiOnButton;
+    bool                 mScrolling;
+    HbIconItem          *mIconItem;
 };
 
 #endif /* GLXGRIDVIEW_H_ */
--- a/ui/views/gridview/src/glxgridview.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/gridview/src/glxgridview.cpp	Fri May 14 15:52:22 2010 +0300
@@ -18,26 +18,22 @@
 
 
 //Includes
-#include <QDebug>
-#include <hbmenu.h>
-#include <hbaction.h>
-#include <hbtoolbar.h>
-#include <hbgridview.h>
 #include <hbmainwindow.h>
-#include <shareuidialog.h>
-#include <hbdocumentloader.h>
-#include <QAbstractItemModel>
-#include <hbabstractviewitem.h>
+#include <hggrid.h>
+#include <glxmodelwrapper.h>
+#include <hbpushbutton.h>
+#include <HbToolBar> // Temp
+#include <hbiconitem.h>
+#include <hbicon.h>
 #include <xqserviceutil.h>
 
 //User Includes
-#include "glxuistd.h"
 #include "glxviewids.h"
 #include "glxgridview.h"
 #include "glxmodelparm.h"
-#include "glxloggerenabler.h"
-#include "glxdocloaderdefs.h"
 #include "glxcommandhandlers.hrh"
+
+
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "glxgridviewTraces.h"
@@ -45,95 +41,126 @@
 
 GlxGridView::GlxGridView(HbMainWindow *window) 
     : GlxView ( GLX_GRIDVIEW_ID ), 
-      mGridView(NULL), 
-      mView(NULL), 
       mWindow(window), 
       mModel ( NULL), 
-      mVisualIndex(0),
-      mItem(NULL),
-      mIsLongPress (false)
+      mWidget(NULL),
+      mSelectionModel(NULL),
+      mModelWrapper(NULL),
+      mUiOnButton(NULL),
+      mScrolling(FALSE),
+      mIconItem(NULL)
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
-    mDocLoader = new HbDocumentLoader();
+    mModelWrapper = new GlxModelWrapper();
+    mModelWrapper->setRoles(GlxQImageSmall);
+    mIconItem = new HbIconItem(this);
     OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
-	setContentFullScreen( true );
 }
 
 void GlxGridView::activate()
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
-    loadGridView(mWindow->orientation());
-    addViewConnection();           
-    mGridView->resetTransform(); //to reset the transition effect (reset transform matrix)
-    mGridView->setOpacity( 1);
-    resetItemTransform();
+    if(mUiOnButton == NULL) {
+        mUiOnButton = new HbPushButton("UI",this);
+        connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
+        mUiOnButton->setGeometry(QRectF(610,0,15,15));
+        mUiOnButton->setZValue(1);
+        mUiOnButton->hide();
+    }
+    loadGridView();
     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
 }
 
 void GlxGridView::deActivate()
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_DEACTIVATE_ENTRY );
-    removeViewConnection();
-    mModel = NULL;
+    if (mUiOnButton && mUiOnButton->isVisible())
+        {
+        mUiOnButton->hide();
+        }    
+    if(mIconItem)
+        {
+        mIconItem->hide();
+        mIconItem->resetTransform();
+        mIconItem->setOpacity(0);
+        mIconItem->setZValue(mIconItem->zValue()-20);
+        }
     OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
 }
 
 void GlxGridView::initializeView(QAbstractItemModel *model)
 {
-    resetItemTransform();
-    mGridView->setModel(model);
-    mModel = model;
-    loadGridView(mWindow->orientation());
-    QVariant variant = model->data( model->index(0,0), GlxFocusIndexRole );    
-    if ( variant.isValid() &&  variant.canConvert<int> () ) {
-        mGridView->scrollTo( model->index( variant.value<int>(),0), HbGridView::EnsureVisible );
-    }
+    activate();
+    setModel(model);
 }
 
 void GlxGridView::setModel(QAbstractItemModel *model) 
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_SETMODEL_ENTRY );
-    mModel =  model ;
-    mGridView->setModel(mModel);
-    QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
-    if ( variant.isValid() &&  variant.canConvert<int> () ) {
-        mGridView->scrollTo( mModel->index( variant.value<int>(),0), HbGridView::EnsureVisible );
-    }
+    if(model)
+        {
+        mModel =  model;
+        QVariant variantimage = mModel->data(mModel->index(0,0),GlxDefaultImage);
+        if (mWidget && variantimage.isValid() &&  variantimage.canConvert<QImage> () )
+            {
+            mWidget->setDefaultImage(variantimage.value<QImage>());
+            }
+        mModelWrapper->setModel(mModel);
+        mWidget->setModel(mModelWrapper);  
+        if(!mSelectionModel)
+            {
+            mSelectionModel = new QItemSelectionModel(mModelWrapper, this);
+            connect(mSelectionModel, SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(visibleIndexChanged(const QModelIndex &, const QModelIndex &)));
+            mWidget->setSelectionModel(mSelectionModel);
+            }
+        scrolltofocus();  // Need to do it here ?
+        }
     OstTraceFunctionExit0( GLXGRIDVIEW_SETMODEL_EXIT );
 }
 
+void GlxGridView::visibleIndexChanged(const QModelIndex& current, const QModelIndex& previous)
+{
+    if(mScrolling)
+        {
+        Q_UNUSED(previous);
+        if(current.row() >= 0 || current.row() < mModel->rowCount())
+            {
+            mModel->setData(mModel->index(0,0),current.row(),GlxVisualWindowIndex);
+            }
+        }
+}
+
 void GlxGridView::addToolBar( HbToolBar *toolBar ) 
 {
-    OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY );     
-    setToolBar(toolBar) ;
+    OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY ); 
+    setToolBar(toolBar);  
+    hideorshowitems(mWindow->orientation());
     OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT );
 }
 
 void GlxGridView::enableMarking()
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
-    mGridView->setSelectionMode(HbGridView::MultiSelection);
+    mWidget->setSelectionMode(HgWidget::MultiSelection);
 }
 
 void GlxGridView::disableMarking() 
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_DISABLEMARKING, "GlxGridView::disableMarking" );
-    mGridView->setSelectionMode(HbGridView::NoSelection);
+    mWidget->setSelectionMode(HgWidget::NoSelection);
 }
 
 void GlxGridView::handleUserAction(qint32 commandId)
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_HANDLEUSERACTION, "GlxGridView::handleUserAction" );
-    switch( commandId ){
+    switch( commandId ) {
         case EGlxCmdMarkAll :
-            mGridView->selectAll();
+            mWidget->selectAll();
             break;
 
         case EGlxCmdUnMarkAll :
-            mGridView->clearSelection();
-            break;
-
-        
+            mWidget->clearSelection();
+            break;        
 
         default :
             break;
@@ -143,7 +170,7 @@
 QItemSelectionModel * GlxGridView::getSelectionModel()
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_GETSELECTIONMODEL, "GlxGridView::getSelectionModel" );
-    return mGridView->selectionModel();    
+    return mWidget->selectionModel();
 }
 
 QGraphicsItem * GlxGridView::getAnimationItem(GlxEffect transitionEffect)
@@ -152,77 +179,115 @@
     int selIndex = -1;
 
     if ( transitionEffect == FULLSCREEN_TO_GRID ) {
-        return mGridView;
+        return mWidget;
     }
 
-    if ( transitionEffect == GRID_TO_FULLSCREEN ) {
+    if ( transitionEffect == GRID_TO_FULLSCREEN )
+        {
         QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
-        if ( variant.isValid() &&  variant.canConvert<int> () ) {
+        if ( variant.isValid() &&  variant.canConvert<int> () ) 
+            {
             selIndex = variant.value<int>();  
-        }  
-    
-        mItem = mGridView->itemByIndex( mModel->index(selIndex,0) );
-        connect(mItem, SIGNAL(destroyed()), this, SLOT( itemDestroyed()));
-        mItem->setZValue( mItem->zValue() + 20); 
-        return mItem;
-    }
+            } 
+        else 
+            {
+            return mWidget;
+            }
+        QVariant variantimage = mModel->data(mModel->index(selIndex,0),Qt::DecorationRole);
+        if ( variantimage.isValid() &&  variantimage.canConvert<HbIcon> () )
+            {
+            QPolygonF poly;
+            if (mModelWrapper && !mWidget->getItemOutline(mModelWrapper->index(selIndex,0), poly))
+                {
+                return mWidget;
+                }
+            QRectF itemRect = poly.boundingRect();
+
+            mIconItem->setSize(QSize(120,120));
+            HbIcon tempIcon =  variantimage.value<HbIcon>();
+            QPixmap tempPixmap = tempIcon.qicon().pixmap(120, 120);
+            QSize sz = QSize ( 120, 120);
+            tempPixmap = tempPixmap.scaled(sz, Qt::IgnoreAspectRatio );
+            HbIcon tmp = HbIcon( QIcon(tempPixmap)) ;
+            mIconItem->setIcon(tmp);
+            mIconItem->setPos(itemRect.topLeft());
+            mIconItem->setZValue(mIconItem->zValue() + 20);
+            mIconItem->show();
+            return mIconItem;   
+            }
+        else
+            {
+            return mWidget;
+            }
+        }
 
     if ( transitionEffect == GRID_TO_ALBUMLIST  || transitionEffect == ALBUMLIST_TO_GRID ){
-        return mGridView;
+        return mWidget;
     }
     OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
     return NULL;    
 }
 
-void GlxGridView::loadGridView(Qt::Orientation orient)
+void GlxGridView::loadGridView()
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_LOADGRIDVIEW_ENTRY );
-    bool loaded = false;
-    QString section;
-    GlxContextMode mode ;
-    
-    //Load the widgets accroding to the current Orientation
-    if(orient == Qt::Horizontal) {
-        section = GLX_GRIDVIEW_LSSECTION ;
-        mode = GlxContextLsGrid ;
-    }
-    else {
-        section = GLX_GRIDVIEW_PTSECTION ;
-        mode = GlxContextPtGrid ;
-    }
-
-    if (mGridView == NULL ) {       
-        mDocLoader->load(GLX_GRIDVIEW_DOCMLPATH,&loaded);
-        if(loaded) {
-            //retrieve the widgets            
-            mView = static_cast<HbView*>(mDocLoader->findWidget(QString(GLX_GRIDVIEW_VIEW)));
-            mGridView = static_cast<HbGridView*>(mDocLoader->findWidget(GLX_GRIDVIEW_GRID)); 
-            setWidget( mView );
-            mGridView->setLayoutName( QString( "GridView" ) );
-        }
-    }
-    //Load the Sections
-    mDocLoader->load(GLX_GRIDVIEW_DOCMLPATH,section,&loaded); 
-    
-    if ( mModel ) {        
-        mModel->setData(QModelIndex(), (int)mode, GlxContextRole );
+    if(mWidget == NULL) {
+        Qt::Orientation orient = mWindow->orientation();
+        mWindow->viewport()->grabGesture(Qt::PanGesture);
+        mWindow->viewport()->grabGesture(Qt::TapGesture);
+        mWindow->viewport()->grabGesture(Qt::TapAndHoldGesture);
+        mWidget = new HgGrid(orient);
+        mWidget->setLongPressEnabled(true);
+        mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide);  
+        //mWidget->setItemSize(QSizeF(120,120));
+        setWidget( mWidget );  
+        addViewConnection();
+        //hideorshowitems(orient);
     }
     OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
 }
 
-void GlxGridView::itemDestroyed()
+void GlxGridView::orientationchanged(Qt::Orientation orient)
+{
+    hideorshowitems(orient);
+}
+void GlxGridView::hideorshowitems(Qt::Orientation orient)
 {
-    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMDESTROYED, "GlxGridView::itemDestroyed" );
-    disconnect( mItem, SIGNAL( destroyed() ), this, SLOT( itemDestroyed() ) );
-    mItem = NULL;    
+    if(orient == Qt::Horizontal) 
+        {
+        if (mUiOnButton)
+            {
+            mUiOnButton->show();
+            }
+        setItemVisible(Hb::AllItems, FALSE) ;
+        }
+    else
+        {
+        if (mUiOnButton)
+            {
+            mUiOnButton->hide();
+            }
+        setItemVisible(Hb::AllItems, TRUE) ;
+        }
+}
+
+void GlxGridView::scrolltofocus()
+{
+    if(mModelWrapper && mWidget)
+        {
+        QVariant variant = mModelWrapper->data( mModelWrapper->index(0,0), GlxFocusIndexRole );    
+        if ( variant.isValid() &&  variant.canConvert<int> () ) 
+            {
+            mWidget->scrollTo( mModelWrapper->index( variant.value<int>(),0) );
+            mModel->setData(mModel->index(0,0),variant.value<int>(),GlxVisualWindowIndex);
+            }
+        }
 }
 
 QVariant  GlxGridView::itemChange (GraphicsItemChange change, const QVariant &value) 
     {
-    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMCHANGE, "GlxGridView::itemChange" );
-    
+    OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ITEMCHANGE, "GlxGridView::itemChange" );    
     static bool isEmit = true;
-
     if ( isEmit && change == QGraphicsItem::ItemVisibleHasChanged && value.toBool()  ) {
     emit actionTriggered( EGlxCmdSetupItem );
     isEmit = false;
@@ -230,111 +295,126 @@
     return HbWidget::itemChange(change, value);
     }
 
-void GlxGridView::addViewConnection ()
+void GlxGridView::addViewConnection()
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ADDVIEWCONNECTION, "GlxGridView::addViewConnection" );
-    connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(loadGridView(Qt::Orientation)));
-    connect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SLOT( itemSelected(const QModelIndex &)));
-    connect( mGridView, SIGNAL( scrollingEnded() ), this, SLOT( setVisvalWindowIndex() ) );
-    connect(mGridView, SIGNAL(longPressed( HbAbstractViewItem*, QPointF )),this, SLOT( indicateLongPress( HbAbstractViewItem*, QPointF ) ) );
+    connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
+    //connect(mWindow, SIGNAL(aboutToChangeOrientation()), mWidget, SLOT(aboutToChangeOrientation()));
+    connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), mWidget, SLOT(orientationChanged(Qt::Orientation)));
+    connect(mWidget, SIGNAL(activated(const QModelIndex &)), SLOT( itemSelected(const QModelIndex &)));
+    connect(mWidget, SIGNAL( scrollingStarted() ), this, SLOT( scrollingStarted() ) );
+    connect(mWidget, SIGNAL( scrollingEnded() ), this, SLOT( scrollingEnded() ) );
+    connect(mWidget, SIGNAL(longPressed(const QModelIndex &, QPointF)), SLOT( indicateLongPress(const QModelIndex &, QPointF) ) );
 }
 
 void GlxGridView::removeViewConnection ()
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_REMOVEVIEWCONNECTION, "GlxGridView::removeViewConnection" );
-    disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(loadGridView(Qt::Orientation)));
-    disconnect(mGridView, SIGNAL(activated(const QModelIndex &)), this, SLOT( itemSelected(const QModelIndex &)));
-    disconnect( mGridView, SIGNAL( scrollingEnded() ), this, SLOT( setVisvalWindowIndex() ) );
-    disconnect(mGridView, SIGNAL(longPressed( HbAbstractViewItem*, QPointF )),this, SLOT( indicateLongPress( HbAbstractViewItem*, QPointF ) ) );
+    if(mWidget)
+        {
+        disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
+        //disconnect(mWindow, SIGNAL(aboutToChangeOrientation()), mWidget, SLOT(aboutToChangeOrientation()));
+        disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), mWidget, SLOT(orientationChanged(Qt::Orientation)));
+        disconnect(mWidget, SIGNAL(activated(const QModelIndex &)),this, SLOT( itemSelected(const QModelIndex &)));
+        disconnect(mWidget, SIGNAL( scrollingStarted() ), this, SLOT( scrollingStarted() ) );
+        disconnect(mWidget, SIGNAL( scrollingEnded() ), this, SLOT( scrollingEnded() ) );
+        disconnect(mWidget,  SIGNAL(longPressed(const QModelIndex &, QPointF)),this, SLOT( indicateLongPress(const QModelIndex &, QPointF) ) );
+        }
 }
 
-void GlxGridView::resetItemTransform()
-{
-    if ( mItem ) {
-        mItem->resetTransform(); //to reset the transition effect (reset transform matrix)
-        mItem->setOpacity( 1);
-        mItem->setZValue( mItem->zValue() - 20);
-        disconnect( mItem, SIGNAL( destroyed() ), this, SLOT( itemDestroyed() ) );
-        mItem = NULL;
-    }
-}
 
 void GlxGridView::itemSelected(const QModelIndex &  index)
 {
     OstTrace1( TRACE_NORMAL, GLXGRIDVIEW_ITEMSELECTED, "GlxGridView::itemSelected;index=%d", index.row() );
-
-    if ( mGridView->selectionMode() == HbGridView::MultiSelection ) { //in multi selection mode no need to open the full screen
+    if ( mWidget->selectionMode() == HgWidget::MultiSelection )
+        { 
         return ;
-    }
-    if ( mIsLongPress ) {
-        mIsLongPress = false;
-        return ;
-    }
-    if(XQServiceUtil::isService()){
+        }    
+   if(XQServiceUtil::isService()){
         emit gridItemSelected(index);
         return;
-    }
-    
-    OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" );
-    
-    if ( mModel ) {
+    }    
+    OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" );    
+    if ( mModel ) 
+        {
         mModel->setData( index, index.row(), GlxFocusIndexRole );
-    }
-    emit actionTriggered( EGlxCmdFullScreenOpen );
+        }
+    setItemVisible(Hb::AllItems, FALSE);
+    emit actionTriggered( EGlxCmdFullScreenOpen ); 
     OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START );
 }
 
-void GlxGridView::setVisvalWindowIndex()
+void GlxGridView::scrollingStarted()
 {
-    OstTrace0( TRACE_IMPORTANT, GLXGRIDVIEW_SETVISVALWINDOWINDEX, "GlxGridView::setVisvalWindowIndex" );
-    QList< HbAbstractViewItem * >  visibleItemList =  mGridView->visibleItems();
-    qDebug("GlxGridView::setVisvalWindowIndex() %d", visibleItemList.count());    
-    OstTrace1( TRACE_IMPORTANT, DUP1_GLXGRIDVIEW_SETVISVALWINDOWINDEX, "GlxGridView::setVisvalWindowIndex;visibleitemindex=%d", 
-            visibleItemList.count() );
-    
-    if ( visibleItemList.count() <= 0 )
-        return ;
+    if ((mWindow->orientation() == Qt::Horizontal))
+        {
+        setItemVisible(Hb::AllItems, FALSE) ;
+        }    
+    mScrolling = TRUE;
+}
 
-    HbAbstractViewItem *item = visibleItemList.at(0);    
-    if ( item == NULL ) 
-        return ;
-        
-    OstTrace1( TRACE_IMPORTANT, DUP2_GLXGRIDVIEW_SETVISVALWINDOWINDEX, "GlxGridView::setVisvalWindowIndex item=%d", item );
-        OstTrace1( TRACE_IMPORTANT, DUP3_GLXGRIDVIEW_SETVISVALWINDOWINDEX, "GlxGridView::setVisvalWindowIndex;visual index=%d",
-                item->modelIndex().row() );
-        
-    if (  item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() )
-        return ;
-    
-    mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex);
+void GlxGridView::scrollingEnded()
+{
+    mScrolling = FALSE;
+    QList<QModelIndex> visibleIndex = mWidget->getVisibleItemIndices();
+    if (visibleIndex.count() <= 0)
+        {
+        return;
+        }
+    QModelIndex index = visibleIndex.at(0);
+    if (  index.row() < 0 || index.row() >= mModel->rowCount() )
+        {
+        return;
+        }    
+    if(mModel)
+        {
+        mModel->setData( index, index.row(), GlxVisualWindowIndex);
+        }
 }
 
 GlxGridView::~GlxGridView()
 {
     OstTraceFunctionEntry0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
     removeViewConnection();
-    delete mGridView;
-    mGridView = NULL;
-
-    delete mDocLoader;
-    mDocLoader = NULL;
-
+    if(mSelectionModel)
+        {
+        disconnect(mSelectionModel, SIGNAL(currentChanged(const QModelIndex &, const QModelIndex &)), this, SLOT(visibleIndexChanged(const QModelIndex &, const QModelIndex &)));
+        delete mSelectionModel;
+        }
+    delete mWidget;
+    delete mModelWrapper;
+    if(mUiOnButton) {
+        disconnect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
+        delete mUiOnButton;
+    }
+    delete mIconItem;
     OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
 }
 
-void GlxGridView::indicateLongPress(HbAbstractViewItem *item, QPointF coords)
+void GlxGridView::indicateLongPress(const QModelIndex& index, QPointF coords)
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_INDICATELONGPRESS, "GlxGridView::indicateLongPress" );
-    qDebug() << "GlxGridView:indicateLongPress Item " << item->modelIndex() << "long pressed at "
-    << coords;
-
-    if ( mGridView->selectionMode() == HbGridView::MultiSelection ){ //in multi selection mode no need to open the context menu
-    	return ;
-    }
+     
+     if ( mWidget->selectionMode() == HgWidget::MultiSelection )
+         { 
+         return;
+         }     
+     if ( mModel ) 
+         {
+         mModel->setData( index, index.row(), GlxFocusIndexRole );
+         }     
+     emit itemSpecificMenuTriggered(viewId(),coords);
+}
 
-    if ( mModel ) {
-    	mModel->setData( item->modelIndex(), item->modelIndex().row(), GlxFocusIndexRole );
-    }
-    mIsLongPress = true;
-    emit itemSpecificMenuTriggered(viewId(),coords);
+void GlxGridView::uiButtonClicked(bool /*checked*/)
+{
+    if (isItemVisible(Hb::TitleBarItem))  // W16  All item is Not Working , So Temp Fix
+        {
+        setItemVisible(Hb::AllItems, FALSE) ;
+        }
+    else
+        {
+        setItemVisible(Hb::AllItems, TRUE) ;
+        }
 }
+
--- a/ui/views/slideshowsettingsview/inc/glxslideshowsettingsview.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/slideshowsettingsview/inc/glxslideshowsettingsview.h	Fri May 14 15:52:22 2010 +0300
@@ -30,6 +30,7 @@
 class HbMainWindow;
 class HbComboBox;
 class QAbstractItemModel;
+class GlxSlideShowSetting;
 
 class GlxSlideShowSettingsView : public GlxView
 {
@@ -55,8 +56,7 @@
 	HbLabel *mContextlabel;				 //Display SlideShow label
 	HbLabel *mEffectlabel;				 //Display "Transition Effect: "
 	HbLabel *mDelaylabel;					 //Display "Transition delay: "
-	int     mTempEffect;					 //To store the index of effect.Temporary usage, Will be removed.
-	int     mTempDelay;						 //To store the index of effect.Temporary usage, Will be removed.
+	GlxSlideShowSetting *mSettings;
 };
 
 #endif /* GLXGRIDVIEW_H_ */
--- a/ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/slideshowsettingsview/src/glxslideshowsettingsview.cpp	Fri May 14 15:52:22 2010 +0300
@@ -27,47 +27,33 @@
 #include "glxuistd.h"
 #include "glxviewids.h"
 #include "glxslideshowsettingsview.h"
-#include "glxmodelparm.h"
+#include "glxeffectengine.h"
 
 
 
 
 GlxSlideShowSettingsView::GlxSlideShowSettingsView(HbMainWindow *window) 
     : GlxView ( GLX_SLIDESHOWSETTINGSVIEW_ID ), 
+      mEffect(NULL),
       mDelay(NULL),
-      mEffect(NULL), 
+      mWindow(window), 
       mContextlabel (NULL),
       mEffectlabel (NULL),
       mDelaylabel (NULL),
-      mWindow(window)
+      mSettings( NULL )
 {
-	 	mTempEffect = 0;
-  	mTempDelay =0 ;
+    mSettings = new GlxSlideShowSetting();
   	setContentFullScreen( true );
 }
 
 GlxSlideShowSettingsView::~GlxSlideShowSettingsView()
 {
-		if(mContextlabel) {
     	delete mContextlabel;
-    	mContextlabel = NULL;
-  	}
-    if(mEffectlabel) {
     	delete mEffectlabel;
-    	mEffectlabel = NULL;
-    }
-    if(mDelaylabel) {
     	delete mDelaylabel;
-    	 mDelaylabel = NULL;
-    }
-    if(mEffect) {
     	delete mEffect;
-    	mEffect = NULL;
-    }
-    if(mDelay) {
     	delete mDelay;
-    	mDelay = NULL;
-    }
+        delete mSettings;
 }
 
 void GlxSlideShowSettingsView::setModel(QAbstractItemModel *model)
@@ -94,8 +80,7 @@
     
     if ( mEffect == NULL ) {
         mEffect = new HbComboBox(this);
-        QStringList effectList;
-        effectList<<"wave"<<"smooth fade"<<"zoom to face";
+        QStringList effectList = mSettings->slideShowEffectList();
         mEffect->addItems( effectList );
         
     }
@@ -111,9 +96,10 @@
         mDelay->addItems( delayList );
     }
    
-    mEffect->setCurrentIndex( mTempEffect);
-    mDelay->setCurrentIndex ( mTempDelay );
+   // Read the values from the cenrep
     
+    mEffect->setCurrentIndex( mSettings->slideShowEffectIndex());
+    mDelay->setCurrentIndex( mSettings->slideShowDelayIndex());
     setLayout();
 }
 
@@ -131,8 +117,8 @@
 void GlxSlideShowSettingsView::deActivate()
 {
 	 //Store the current effect and delay before going back to the previous view
-    mTempEffect = mEffect->currentIndex();
-    mTempDelay = mDelay->currentIndex();
+	mSettings->setslideShowEffectIndex(mEffect->currentIndex());
+	mSettings->setSlideShowDelayIndex(mDelay->currentIndex()); 
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
 }
 
--- a/ui/views/slideshowview/inc/glxslideshowview.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/slideshowview/inc/glxslideshowview.h	Fri May 14 15:52:22 2010 +0300
@@ -49,6 +49,7 @@
     void orientationChanged(Qt::Orientation);   
     void slideShowEventHandler( GlxSlideShowEvent e);
     void indexchanged();
+    void modelDestroyed();
     
 protected :
     bool event(QEvent *event);
--- a/ui/views/slideshowview/inc/glxslideshowwidget.h	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/slideshowview/inc/glxslideshowwidget.h	Fri May 14 15:52:22 2010 +0300
@@ -21,11 +21,12 @@
 #define GLXSLIDESHOWWIDGET_H
 
 //Includes
-#include <hbscrollarea.h>
+#include <hbwidget.h>
 #include <hbeffect.h>
 
 //Qt/Orbit forward declarations
 class QTimer;
+class QGestureEvent;
 class HbIconItem;
 class HbMainWindow;
 class HbPushButton;
@@ -46,7 +47,7 @@
     EMPTY_DATA_EVENT //send the signal when model have no data
 } GlxSlideShowEvent;
 
-class GlxSlideShowWidget : public HbScrollArea
+class GlxSlideShowWidget : public HbWidget
 {
 Q_OBJECT
 
@@ -92,8 +93,7 @@
     void rightGesture (int value);
     
 protected :
-    void mouseReleaseEvent( QGraphicsSceneMouseEvent *event);
-    void mousePressEvent ( QGraphicsSceneMouseEvent * event ) ;
+    void gestureEvent(QGestureEvent *event);
     
 private :
     //clear all the model connection
--- a/ui/views/slideshowview/src/glxslideshowview.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/slideshowview/src/glxslideshowview.cpp	Fri May 14 15:52:22 2010 +0300
@@ -62,9 +62,8 @@
 
 void GlxSlideShowView::activate()
 {
-    //To:Do error handling
     TRACER("GlxSlideShowView::activate()");
-    mWindow->setOrientation(Qt::Horizontal, false);
+    mWindow->setOrientation(Qt::Horizontal, true);  // Actually it is animation false, Hack for Bug in Media wall -todo- need to Address this ASAP
 
     //finds the widgets from the docml
     loadObjects();
@@ -72,21 +71,22 @@
     connect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) ); 
     connect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) );
     
-    if (!mTvOutWrapper){
+    if (!mTvOutWrapper) {
         mTvOutWrapper = new GlxTvOutWrapper();
-        }
+    }
 }
 
 void GlxSlideShowView::deActivate()
 {
     TRACER("GlxSlideShowView::deActivate()");
-    mWindow->unsetOrientation(false);
-    setItemVisible(Hb::AllItems , TRUE);
+    mWindow->unsetOrientation(true);         // Actually it is animation false, Hack for Bug in Media wall -todo- need to Address this ASAP
+    
+    setItemVisible( Hb::AllItems , TRUE );
     disconnect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) );
     disconnect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) );
     //Delete the Items in the slide show widget
     mSlideShowWidget->cleanUp();
-    mModel = NULL;
+    
     if (mTvOutWrapper){
         delete mTvOutWrapper;
         mTvOutWrapper = NULL;
@@ -97,15 +97,19 @@
 {
     TRACER("GlxSlideShowView::setModel()");
     GLX_LOG_INFO2("GlxSlideShowView::setModel() model %u mModel %u", model, mModel);
-    if ( mModel == model ) {
-        return ;
-    }
+    if ( mModel != model ) {
+    
+    modelDestroyed();
     mModel = model;
+    connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
+    } 
+    setModelContext();    
     mSlideShowWidget->setModel(mModel);
+    
     if (mTvOutWrapper){
         mTvOutWrapper->setModel(mModel);
         mTvOutWrapper->setImagetoHDMI();
-        }
+    }
 }
 
 void GlxSlideShowView::setModelContext()
@@ -114,12 +118,13 @@
     if ( mModel && mWindow ) {
         GLX_LOG_INFO1("GlxSlideShowView::setModelContext %d", mWindow->orientation() );
     
-        if ( mWindow->orientation() == Qt::Horizontal ) {
+            mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
+      /* if ( mWindow->orientation() == Qt::Horizontal ) {
             mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
         }
         else {
             mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
-        }
+        } */
     }
 }
 
@@ -158,7 +163,14 @@
     if (mTvOutWrapper){
         mTvOutWrapper->setImagetoHDMI();
     }
+}
 
+void GlxSlideShowView::modelDestroyed()
+{
+    if ( mModel ) {
+        disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
+        mModel = NULL; 
+    }
 }
 
 bool GlxSlideShowView::event(QEvent *event)
@@ -166,10 +178,16 @@
     TRACER("GlxSlideShowView::event()");
     GLX_LOG_INFO1("GlxSlideShowView::event() %d event type", event->type());
     if ( event->type() ==  QEvent::WindowActivate && mSlideShowWidget) {
+        if (mTvOutWrapper){
+        mTvOutWrapper->setToNativeMode();    
+        }
         mSlideShowWidget->startSlideShow();
     }
 
     if ( event->type() ==  QEvent::WindowDeactivate && mSlideShowWidget) {
+        if (mTvOutWrapper){
+        mTvOutWrapper->setToCloningMode();    
+        }
        mSlideShowWidget->stopSlideShow();
     }
     return HbView::event(event);
--- a/ui/views/slideshowview/src/glxslideshowwidget.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp	Fri May 14 15:52:22 2010 +0300
@@ -26,6 +26,8 @@
 #include <hbmainwindow.h>
 #include <hbdocumentloader.h>
 #include <QAbstractItemModel>
+#include <QGesture>
+#include <hbpangesture.h>
 
 
 //User Includes
@@ -38,12 +40,19 @@
 #include <glxtracer.h>
 
 
-GlxSlideShowWidget::GlxSlideShowWidget( QGraphicsItem *parent ) : HbScrollArea(parent), 
-                      mEffectEngine(NULL), mContinueButton(NULL), mItemIndex(1), 
-                      mSelIndex(0), mSlideTimer(NULL), mModel(NULL)
-    {
+GlxSlideShowWidget::GlxSlideShowWidget( QGraphicsItem *parent ) 
+    : HbWidget(parent), 
+      mEffectEngine(NULL), 
+      mContinueButton(NULL), 
+      mItemIndex(1), 
+      mSelIndex(0), 
+      mSlideTimer(NULL), 
+      mModel(NULL)
+{
     TRACER("GlxSlideShowWidget::GlxSlideShowWidget()");
-    }
+    grabGesture( Qt::PanGesture );
+    grabGesture( Qt::TapGesture );
+}
 
 void GlxSlideShowWidget::setSlideShowWidget(HbDocumentLoader *DocLoader)
     {
@@ -286,31 +295,31 @@
 
 
 void GlxSlideShowWidget::orientationChanged(QRect screenRect)
-    {
+{
     TRACER("GlxSlideShowWidget::orientationChanged()");
     cancelEffect();
     setItemGeometry( screenRect);
     resetSlideShow();
-    }
+}
 
 
 void GlxSlideShowWidget::leftGesture(int value)
-    {
+{
     Q_UNUSED(value)
     TRACER("GlxSlideShowWidget::leftGesture()");
 
     int index = ( mItemIndex + 1 ) % NBR_ITEM;
     moveImage( index, mScreenRect.width(), QString("LeftMove"), "leftMoveEffectFinished");
-    }
+}
 
 void GlxSlideShowWidget::rightGesture(int value)
-    {
+{
     Q_UNUSED(value)
     TRACER ("GlxSlideShowWidget::rightGesture()");
 
     int index = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1;
     moveImage( index, -mScreenRect.width(), QString("RightMove"), "rightMoveEffectFinished"); 
-    }
+}
 
 void GlxSlideShowWidget::leftMoveEffectFinished( const HbEffect::EffectStatus &status )
     {
@@ -344,22 +353,34 @@
     emit indexchanged(); // on right swipe
     } 
 
-void GlxSlideShowWidget::mouseReleaseEvent( QGraphicsSceneMouseEvent *event)
-    {
-    Q_UNUSED( event )
-    TRACER ( "GlxSlideShowWidget::mouseReleaseEvent( ) ");
-    GLX_LOG_INFO1 ( "GlxSlideShowWidget::mouseReleaseEvent( ) is pause %d", mIsPause);
-    if ( mIsPause == false ) {
-    pauseSlideShow();
+ 
+void GlxSlideShowWidget::gestureEvent(QGestureEvent *event)
+{  
+    if( QTapGesture *gesture = static_cast<QTapGesture *>( event->gesture( Qt::TapGesture ) ) ) {        
+        if ( gesture->state() == Qt::GestureFinished ) {
+            if ( mIsPause == false ) {
+                pauseSlideShow();
+            }
+            event->accept(gesture);
+        }
     }
+      
+    if (QPanGesture *panningGesture = qobject_cast<QPanGesture*>(event->gesture(Qt::PanGesture))) {
+        HbPanGesture *hbPanGesture = qobject_cast<HbPanGesture *>(panningGesture);
+        if ( hbPanGesture ) {
+            if( hbPanGesture->state() == Qt::GestureFinished ) {
+                QPointF delta( hbPanGesture->sceneDelta() );
+                if ( delta.x() > 0 ) {
+                    rightGesture( delta.x() );
+                }
+                else {
+                    leftGesture( delta.x() );
+                }
+            }
+            event->accept(panningGesture);
+        }
     }
-
-void GlxSlideShowWidget::mousePressEvent ( QGraphicsSceneMouseEvent * event )
-    {
-    Q_UNUSED( event )
-    TRACER ( "GlxSlideShowWidget::mousePressEvent( ) ");
-    GLX_LOG_INFO1 ( "GlxSlideShowWidget::mousePressEvent( ) is pause %d", mIsPause);
-    }
+}    
 
 void GlxSlideShowWidget::startSlideShow ( )
     {
--- a/ui/views/views.pro	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/views.pro	Fri May 14 15:52:22 2010 +0300
@@ -22,13 +22,17 @@
 
 LIBS += -lglxmediamodel.dll \
         -lglxlistmodel.dll \
+        -lglxfavmediamodel.dll \
 	-lglximagedecoderwrapper.dll \
         -lglxloggerqt.dll \
         -lshareui.dll \
         -lglxtvout.dll \
         -lglxtvoutwrapper.dll \
         -lxqserviceutil.dll \
-        -lglxlogging.dll
+        -lglxlogging.dll \
+        -lganeswidgets.dll \
+        -lglxmodelwrapper.dll \
+        -lxqsettingsmanager
 
 DEFINES += BUILD_GLXVIEWS
 
@@ -36,12 +40,15 @@
           ../../inc \
           ../uiengine/model/mediamodel/inc \
           ../uiengine/model/listmodel/inc \
+	  ../uiengine/model/favmediamodel/inc \
           ../uiengine/medialistwrapper/inc \
           ../viewbase/inc \
           ../../commonutilities/imagedecoderwrapper/inc \
           ../../loggers/loggerqt/inc \
           ../../traces \
-          ../../tvout/tvoutwrapper/inc
+          ../../tvout/tvoutwrapper/inc \
+          ../uiengine/model/modelwrapper/inc \
+          /epoc32/include/mw/hgwidgets
 
 symbian: { 
 TARGET.UID3 = 0x200009EF
@@ -58,6 +65,7 @@
            fullscreenview/inc/glxzoomcontrol.h  \
            detailsview/inc/glxdetailsview.h  \
            detailsview/inc/glxdetailscustomwidgets.h  \
+           detailsview/inc/glxdetailscustomicon.h \
            gridview/inc/glxgridview.h \
 					 slideshowsettingsview/inc/glxslideshowsettingsview.h \
            listview/inc/glxlistview.h \
@@ -78,6 +86,7 @@
            fullscreenview/src/glxzoomcontrol.cpp \
            detailsview/src/glxdetailsview.cpp \
            detailsview/src/glxdetailscustomwidgets.cpp \
+           detailsview/src/glxdetailscustomicon.cpp \
            gridview/src/glxgridview.cpp \
            slideshowsettingsview/src/glxslideshowsettingsview.cpp \
            listview/src/glxlistview.cpp \