201031
authorhgs
Fri, 06 Aug 2010 20:44:25 +0530
changeset 54 0f0f3f26f787
parent 52 a3a4c0de738e
child 58 383b67fbdb11
201031
data/albumlisttogrid.fxml
data/albumlisttogridshow.fxml
data/detailsview.docml
data/gridtoalbumlist.fxml
data/gridtoalbumlisthide.fxml
data/rotatefslandscape.fxml
data/rotatefsprotrait.fxml
data/rotatelandscape.fxml
data/rotateprotrait.fxml
data/view_flip_hide.fxml
data/view_flip_show.fxml
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp
inc/glxlocalisationstrings.h
main/glxaiwservicehandler.cpp
main/glxaiwservicehandler.h
photos.qrc
tvout/tvoutengine/inc/glxhdmicontainer.h
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp
ui/inc/glxcommandhandlers.hrh
ui/inc/glxviewids.h
ui/uiengine/model/bwins/glxmediamodelu.def
ui/uiengine/model/eabi/glxmediamodelu.def
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/viewmanagement/bwins/glxstatehandleru.def
ui/viewmanagement/bwins/glxviewmanageru.def
ui/viewmanagement/eabi/glxstatehandleru.def
ui/viewmanagement/eabi/glxviewmanageru.def
ui/viewmanagement/statehandler/inc/glxliststate.h
ui/viewmanagement/statehandler/inc/glxorientationsensorfilter.h
ui/viewmanagement/statehandler/inc/glxslideshowstate.h
ui/viewmanagement/statehandler/inc/glxstatemanager.h
ui/viewmanagement/statehandler/src/glxgridstate.cpp
ui/viewmanagement/statehandler/src/glxliststate.cpp
ui/viewmanagement/statehandler/src/glxorientationsensorfilter.cpp
ui/viewmanagement/statehandler/src/glxslideshowstate.cpp
ui/viewmanagement/statehandler/src/glxstatemanager.cpp
ui/viewmanagement/statehandler/statehandler.pro
ui/viewmanagement/viewmanager/inc/glxmenumanager.h
ui/viewmanagement/viewmanager/inc/glxviewmanager.h
ui/viewmanagement/viewmanager/src/glxmenumanager.cpp
ui/viewmanagement/viewmanager/src/glxviewmanager.cpp
ui/views/detailsview/src/glxdetailsview.cpp
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/listview/src/glxlistview.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/viewbase/inc/glxview.h
ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h
ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp
ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp
ui/widgets/bwins/glxzoomwidgetu.def
ui/widgets/eabi/glxzoomwidgetu.def
ui/widgets/glxzoomwidget/glxzoomwidget.pro
ui/widgets/glxzoomwidget/inc/glxzoomwidget.h
ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp
--- a/data/albumlisttogrid.fxml	Fri Jul 23 20:41:04 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<layers>
-<visual>
-
-<param name="translation_y" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-      <keyframe at="0">0</keyframe>
-      <keyframe at="1">1</keyframe>
-<start ref="visual.top">1</start>
-<end ref="screen.bottom">1</end>
-</param>
-
-</visual>
-</layers>
--- a/data/albumlisttogridshow.fxml	Fri Jul 23 20:41:04 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<layers>
-<visual>
-
-<param name="opacity" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-<keyframe at="0.0">0</keyframe>
-<keyframe at="0.5">0.25</keyframe>
-<keyframe at="1.0">1</keyframe>
-</param>
-
-</visual>
-</layers>
--- a/data/detailsview.docml	Fri Jul 23 20:41:04 2010 +0530
+++ b/data/detailsview.docml	Fri Aug 06 20:44:25 2010 +0530
@@ -53,13 +53,11 @@
         <widget name="view" type="HbView">
             <bool name="contentFullScreen" value="TRUE"/>
         </widget>
-        <widget name="Descriptions" type="HbLabel">
-            <rect height="40.2" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom) )"/>
+        <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <string name="plainText" value="Description :"/>
+            <sizehint height="6un" type="FIXED" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
         </widget>
         <widget name="SizeText" type="HbLabel">
             <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) + 6un +var(hb-param-margin-gene-bottom) )"/>
@@ -69,17 +67,13 @@
             <sizehint height="6un" type="MAXIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
             <string name="plainText"/>
         </widget>
-        <widget name="ImageIcon" type="HbLabel">
+        <widget name="TimeText" type="HbLabel">
+            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) )"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="31.95un" type="FIXED" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
-            <sizehint height="31.95un" type="MINIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
-            <sizehint height="31.95un" type="MAXIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
-        </widget>
-        <widget name="container" type="HbWidget">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="40.74627un" type="FIXED" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
-            <sizehint height="40.74627un" type="MINIMUM" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
-            <sizehint height="40.74627un" type="MAXIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <string name="plainText"/>
         </widget>
         <widget name="DescriptionsText" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
             <real name="z" value="5"/>
@@ -89,28 +83,6 @@
             <sizehint height="11.49254un" type="MINIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
             <sizehint height="11.49254un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
         </widget>
-        <widget name="TimeText" type="HbLabel">
-            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) )"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <string name="plainText"/>
-        </widget>
-        <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-        </widget>
-        <widget name="DateText" type="HbLabel">
-            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="0un"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <sizehint height="6un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
-            <string name="plainText"/>
-        </widget>
         <widget name="content" role="HbView:widget" type="HbWidget">
             <layout type="anchor">
                 <anchoritem dst="ImageName" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) + 0.5un)" src="" srcEdge="LEFT"/>
@@ -129,17 +101,43 @@
             <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
             <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MAXIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
         </widget>
+        <widget name="DateText" type="HbLabel">
+            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="0un"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <string name="plainText"/>
+        </widget>
+        <widget name="ImageIcon" type="HbLabel">
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="31.95un" type="FIXED" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="31.95un" type="MINIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="31.95un" type="MAXIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+        </widget>
+        <widget name="container" type="HbWidget">
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="40.74627un" type="FIXED" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="40.74627un" type="MINIMUM" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="40.74627un" type="MAXIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+        </widget>
+        <widget name="Descriptions" type="HbLabel">
+            <rect height="40.2" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom) )"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <string locid="txt_photos_formlabel_description" name="plainText"/>
+        </widget>
     </section>
     <section name="landscape">
         <widget name="view" type="HbView">
             <bool name="contentFullScreen" value="TRUE"/>
         </widget>
-        <widget name="Descriptions" type="HbLabel">
-            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom) )"/>
+        <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="56un"/>
-            <sizehint height="6un" type="MINIMUM" width="56un"/>
-            <sizehint height="6un" type="MAXIMUM" width="56un"/>
+            <sizehint height="6un" type="MINIMUM" width="31.95un"/>
+            <sizehint height="6un" type="MAXIMUM" width="31.95un"/>
         </widget>
         <widget name="SizeText" type="HbLabel">
             <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) + 6un +var(hb-param-margin-gene-bottom) )"/>
@@ -149,17 +147,13 @@
             <sizehint height="6un" type="MAXIMUM" width="56un"/>
             <string name="plainText"/>
         </widget>
-        <widget name="ImageIcon" type="HbLabel">
+        <widget name="TimeText" type="HbLabel">
+            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) )"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="31.95un" type="FIXED" width="31.95un"/>
-            <sizehint height="31.95un" type="MINIMUM" width="31.95un"/>
-            <sizehint height="31.95un" type="MAXIMUM" width="31.95un"/>
-        </widget>
-        <widget name="container" type="HbWidget">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="40.74627un" type="FIXED" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
-            <sizehint height="40.74627un" type="MINIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
-            <sizehint height="40.74627un" type="MAXIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
+            <sizehint height="6un" type="FIXED" width="55un"/>
+            <sizehint height="6un" type="MINIMUM" width="55un"/>
+            <sizehint height="6un" type="MAXIMUM" width="56un"/>
+            <string name="plainText"/>
         </widget>
         <widget name="DescriptionsText" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
             <real name="z" value="6"/>
@@ -169,27 +163,6 @@
             <sizehint height="11.49254un" type="MINIMUM" width="56un"/>
             <sizehint height="11.49254un" type="MAXIMUM" width="56un"/>
         </widget>
-        <widget name="TimeText" type="HbLabel">
-            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) )"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="FIXED" width="55un"/>
-            <sizehint height="6un" type="MINIMUM" width="55un"/>
-            <sizehint height="6un" type="MAXIMUM" width="56un"/>
-            <string name="plainText"/>
-        </widget>
-        <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="6un" type="MINIMUM" width="31.95un"/>
-            <sizehint height="6un" type="MAXIMUM" width="31.95un"/>
-        </widget>
-        <widget name="DateText" type="HbLabel">
-            <rect height="6un" name="geometry" width="56un" x="0.5un" y="0un"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint type="FIXED" width="56un"/>
-            <sizehint height="6un" type="MINIMUM" width="56un"/>
-            <sizehint height="6un" type="MAXIMUM" width="56un"/>
-            <string name="plainText"/>
-        </widget>
         <widget name="content" role="HbView:widget" type="HbWidget">
             <layout type="anchor">
                 <anchoritem dst="ImageName" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
@@ -208,8 +181,36 @@
             <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
             <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MAXIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
         </widget>
+        <widget name="DateText" type="HbLabel">
+            <rect height="6un" name="geometry" width="56un" x="0.5un" y="0un"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint type="FIXED" width="56un"/>
+            <sizehint height="6un" type="MINIMUM" width="56un"/>
+            <sizehint height="6un" type="MAXIMUM" width="56un"/>
+            <string name="plainText"/>
+        </widget>
+        <widget name="ImageIcon" type="HbLabel">
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="31.95un" type="FIXED" width="31.95un"/>
+            <sizehint height="31.95un" type="MINIMUM" width="31.95un"/>
+            <sizehint height="31.95un" type="MAXIMUM" width="31.95un"/>
+        </widget>
+        <widget name="container" type="HbWidget">
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="40.74627un" type="FIXED" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
+            <sizehint height="40.74627un" type="MINIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
+            <sizehint height="40.74627un" type="MAXIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
+        </widget>
+        <widget name="Descriptions" type="HbLabel">
+            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom) )"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="6un" type="FIXED" width="56un"/>
+            <sizehint height="6un" type="MINIMUM" width="56un"/>
+            <sizehint height="6un" type="MAXIMUM" width="56un"/>
+            <string locid="txt_photos_formlabel_description" name="plainText"/>
+        </widget>
     </section>
-    <metadata activeUIState="portrait" display="NHD-3.2-inch_portrait" unit="un">
+    <metadata activeUIState="landscape" display="NHD-3.2-inch_landscape" unit="un">
         <uistate name="Common ui state" sections="#common"/>
         <uistate name="portrait" sections="#common portrait"/>
         <uistate name="landscape" sections="#common landscape"/>
--- a/data/gridtoalbumlist.fxml	Fri Jul 23 20:41:04 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<layers>
-<visual>
-
-<param name="translation_y" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-      <keyframe at="0">0</keyframe>
-      <keyframe at="1">1</keyframe>
-<start ref="screen.bottom">1</start>
-<end ref="visual.top">1</end>
-</param>
-
-</visual>
-</layers>
--- a/data/gridtoalbumlisthide.fxml	Fri Jul 23 20:41:04 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<layers>
-<visual>
-
-<param name="opacity" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-<keyframe at="0.0">1.0</keyframe>
-<keyframe at="0.5">0.25</keyframe>
-<keyframe at="1.0">0</keyframe>
-</param>
-
-</visual>
-</layers>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/rotatefslandscape.fxml	Fri Aug 06 20:44:25 2010 +0530
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="rotation_angle" type="anim">
+			<style>linear</style>
+			<duration>0.2</duration>
+			<keyframe at="0.0">-60</keyframe>
+			<keyframe at="1.0">0</keyframe>
+		</param>
+		<param name="rotation_origin_x" ref="visual.width">0.5</param>
+		<param name="rotation_origin_y" ref="visual.height">0.5</param>
+		
+	</visual>
+	
+</layers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/rotatefsprotrait.fxml	Fri Aug 06 20:44:25 2010 +0530
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="rotation_angle" type="anim">
+			<style>linear</style>
+			<duration>0.2</duration>
+			<keyframe at="0.0">60</keyframe>
+			<keyframe at="1.0">0</keyframe>
+		</param>
+		<param name="rotation_origin_x" ref="visual.width">0.5</param>
+		<param name="rotation_origin_y" ref="visual.height">0.5</param>
+		
+	</visual>
+</layers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/rotatelandscape.fxml	Fri Aug 06 20:44:25 2010 +0530
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="rotation_angle" type="anim">
+			<style>linear</style>
+			<duration>0.2</duration>
+			<keyframe at="0.0">30</keyframe>
+			<keyframe at="1.0">90</keyframe>
+		</param>
+		<param name="rotation_origin_x" ref="visual.width">0.5</param>
+		<param name="rotation_origin_y" ref="visual.height">0.5</param>
+		
+	</visual>
+</layers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/rotateprotrait.fxml	Fri Aug 06 20:44:25 2010 +0530
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="rotation_angle" type="anim">
+			<style>linear</style>
+			<duration>0.2</duration>
+			<keyframe at="0.0">-30</keyframe>
+			<keyframe at="1.0">-90</keyframe>
+		</param>
+		<param name="rotation_origin_x" ref="visual.width">0.5</param>
+		<param name="rotation_origin_y" ref="visual.height">0.5</param>
+		
+	</visual>
+</layers>
\ No newline at end of file
--- a/data/view_flip_hide.fxml	Fri Jul 23 20:41:04 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<!-- This effect file was generated by effectDialog -->
-
-<layers>
-<visual>
-
-<param name="rotation_angle" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-<keyframe at="0.0">0</keyframe>
-<keyframe at="1.0">-90</keyframe>
-</param>
-<param name="rotation_origin_x" ref="visual.width">
-0.5
-</param>
-<param name="rotation_origin_y" ref="visual.height">
-0.5
-</param>
-<param name="rotation_axis_x" type="anim">
-0
-</param>
-<param name="rotation_axis_y" type="anim">
-1
-</param>
-<param name="rotation_axis_z" type="anim">
-0
-</param>
-
-
-</visual>
-</layers>
-
--- a/data/view_flip_show.fxml	Fri Jul 23 20:41:04 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-<!-- This effect file was generated by effectDialog -->
-
-<layers>
-<visual>
-
-<param name="rotation_angle" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-<keyframe at="0.0">90</keyframe>
-<keyframe at="1.0">0</keyframe>
-</param>
-<param name="rotation_origin_x" ref="visual.width">
-0.5
-</param>
-<param name="rotation_origin_y" ref="visual.height">
-0.5
-</param>
-<param name="rotation_axis_x" type="anim">
-0
-</param>
-<param name="rotation_axis_y" type="anim">
-1
-</param>
-<param name="rotation_axis_z" type="anim">
-0
-</param>
-
-</visual>
-</layers>
-
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -624,8 +624,17 @@
                 case CGlxDataSource::EContainerTypeAlbum:
                 case CGlxDataSource::EContainerTypeTag:
                     {                                                           
-                    TUint32 countTypeIndex = aContainer->UsageCount();
-                    aEntry->SetTObjectValueL(request->Attributes()[i], countTypeIndex);
+                    // for 10.1 we need just images - so just getting images inside an album will do
+                    TGlxFilterProperties filterProperties = iFilterProperties;
+                    filterProperties.iItemType = EGlxFilterImage;
+                    filterProperties.iNoDRM = ETrue;
+                    
+                    QueueObjectQueryL(aContainer->Def(), ETrue, EAttributeQuery,
+                                      EQueryResultModeCount, TGlxMediaId(aContainer->Id()),
+                                      request->Attributes()[i], aEntry, filterProperties);
+                    
+                    //TUint32 countTypeIndex = aContainer->UsageCount();
+                    //aEntry->SetTObjectValueL(request->Attributes()[i], countTypeIndex);
                     break;
                     }
                 case CGlxDataSource::EContainerTypeMonth:
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -594,6 +594,9 @@
         iFilterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate;
         iFilterProperties.iSortDirection = EGlxFilterSortDirectionOverrideToDescendingIfDate;
         iFilterProperties.iLastCaptureDate = ETrue;
+        // for 10.1 we need first image thumbnail which is not DRM
+        iFilterProperties.iNoDRM = ETrue;
+        iFilterProperties.iItemType = EGlxFilterImage;
 
         if( CGlxDataSource::EContainerTypeMonth == containerType )
             {
--- a/inc/glxlocalisationstrings.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/inc/glxlocalisationstrings.h	Fri Aug 06 20:44:25 2010 +0530
@@ -20,7 +20,10 @@
 
 #include "hbglobal.h"
 
-//OPTIONS MENU
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------START OF OPTIONS LOCALISATION STRING----------------------------------
+//-------------------------------------------------------------------------------------------------------//
+
 //Options list item
 #define GLX_OPTION_SHARE               hbTrId("txt_photos_opt_share") 
 
@@ -56,7 +59,21 @@
 //
 #define GLX_OPTION_NEW_ALBUM           hbTrId("txt_photos_opt_new_album")
 
-//CONTEXT MENU
+//3D effect option to allow user to enable and disable 3D Grid Effect.
+//Submenu option for 3D effect option
+//Off sub menu option for 3D effect option
+#define GLX_GRID_OPT_ON                hbTrId("txt_photos_opt_view_sub_on")
+
+#define GLX_GRID_OPT_OFF               hbTrId("txt_photos_opt_sub_off")
+
+#define GLX_GRID_OPT_EFFECT            hbTrId("txt_photos_opt_3d_effect")
+
+
+//-----------------------------END OF OPTIONS LOCALISATION STRING----------------------------------------
+
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------START OF MENU LOCALISATION STRING----------------------------------------
+//-------------------------------------------------------------------------------------------------------//
 
 //context menu item share , invoke share UI
 #define GLX_MENU_SHARE                 hbTrId("txt_photos_menu_share")
@@ -75,28 +92,122 @@
 //
 #define GLX_MENU_RENAME                hbTrId("txt_common_menu_rename_item")
 
-#define GLX_DIALOG_NAME_PROMPT                hbTrId("txt_photos_title_enter_name")
+#define GLX_MENU_OPEN                  hbTrId("txt_common_menu_open")
+
+//Full Screen Menu
+#define GLX_MENU_USE_IMAGE          hbTrId("txt_photos_opt_use_image")
+#define GLX_MENU_SET_WALLPAPER      hbTrId("txt_photos_opt_sub_wallpaper")
+#define GLX_MENU_ROTATE             hbTrId("txt_photos_opt_rotate")
+#define GLX_MENU_90_CW              hbTrId("txt_photos_opt_sub_90cw")
+#define GLX_MENU_90_CCW             hbTrId("txt_photos_opt_rotate_sub_90ccw")
+#define GLX_MENU_CROP               hbTrId("txt_photos_opt_crop") 
+
+//-----------------------------END OF MENU LOCALISATION STRING-------------------------------------------
+
+
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------VIEW SPECIFIC LOCALISATION STRING-----------------------------------------
+//-------------------------------------------------------------------------------------------------------//
+
+//*******************************GRID VIEW***********************************************
+
+//sub heading lable for mark mode.
+#define GLX_SELECT_IMAGES               hbTrId("txt_photos_subhead_select_images")
+
+//for single item selection
+#define GLX_SELECT_IMAGE                hbTrId("txt_photos_subhead_select_image")
+
+//Label field in all grid view to display no of items plus album name in case of album grid view. whre %1 is album name and %L2 is no of images in the album.
+#define GLX_ALBUM_NAME_COUNT_LABEL      "txt_photos_subhead_1_l2"
 
-#define GLX_DIALOG_ALBUM_NAME_DEFAULT         hbTrId("txt_photos_dialog_enter_name_entry_album")
-#define GLX_DIALOG_DELETE_ONE_ITEM            hbTrId("txt_photos_info_deleting_1")
-//TITLE RELATED and DEFAULT STRINGS
+//to show the total image count in grid view
+#define GLX_GRID_VIEW_COUNT_LABEL       "txt_photos_subtitle_ln_images" 
+
+//mark all label to be shown in marking mode view
+#define GLX_LABEL_MARK_ALL            hbTrId("txt_photos_list_mark_all")
+
+
+//mark all label to be shown in marking mode view
+#define GLX_LABEL_MARK_COUNT            hbTrId("txt_photos_list_lnln")
+
+//*******************************DETAILS VIEW**********************************************
+
+//Description field
+#define GLX_DETAILS_DESCRIPTION        hbTrId("txt_photos_formlabel_description")
+//Details view "Date" Label to show the captured date of the image, where %1 is the date
+#define GLX_DETAILS_DATE               "txt_photos_list_date_1"
+
+//Details view "time" Label to show the captured time of the image , where %1 is the time
+#define GLX_DETAILS_TIME               "txt_photos_list_time_1"
+
+//%ln is the size specfied in KiloBytes unit
+//%ln is the size specfied in MegaBytes unit
+//%ln is the size specfied in GigaBytes unit
+#define GLX_DETAILS_SIZE_KB             "txt_photos_list_ln_kb"
+#define GLX_DETAILS_SIZE_MB             "txt_photos_list_ln_mb"
+#define GLX_DETAILS_SIZE_GB             "txt_photos_list_ln_gb" 
+#define GLX_DETAILS_SIZE_BYTES          "txt_photos_list_sizeln_bytes"
+
 
-#define GLX_CAPTION                    hbTrId("txt_short_caption_photos")
-#define GLX_TITLE                      hbTrId("txt_photos_title_photos")
-#define GLX_PLACES                     "txt_photos_dblist_places_ln"
-#define GLX_ITEMS_CAMERA               "txt_photos_dblist_val_ln_items"
-#define GLX_ITEMS_MYFAV                "txt_photos_subtitle_ln_items"
-#define GLX_SUBTITLE_CAM_GRIDVIEW      hbTrId("txt_photos_subtitle_my_camera")
-#define GLX_SUBTITLE_MYFAV_GRIDVIEW    hbTrId("txt_photos_subtitle_my_favorites")
-#define GLX_SUBTITLE_NOITEMS           hbTrId("txt_photos_subtitle_no_image_or_videos_to_display")
-#define GLX_FETCHER_TITLE              QString("Select Image")
-#define GLX_GRID_NO_IMAGE              QString("(No Images)\n")
-#define GLX_GRID_OPEN_CAMERA           QString("To capture images Open")
-#define GLX_ALBUM_SELECTION_TITLE      QString("Select Album")
-//VIEW RELATED STRINGS AND COMMON DIALOGS
+//*******************************SLIDESHOW VIEW/SETTINGS VIEW*******************************
+
+#define GLX_LABEL_TRANSITION_EFFECT  hbTrId("txt_photos_setlabel_transistion_effect")
+#define GLX_VAL_SMOOTH_FADE          hbTrId("txt_photos_setlabel_transistion_effect_val_smooth")
+#define GLX_EFFECTS_FLIP             hbTrId("txt_photos_setlabel_transistion_effect_val_flip_in")
+#define GLX_EFFECTS_ZOOMIN_ZOOMOUT   hbTrId("txt_photos_setlabel_transistion_effect_val_zoom_in")
+#define GLX_EFFECTS_ZOOM_AND_PAN     hbTrId("txt_photos_setlabel_transistion_effect_val_zoom_an")
+
+#define GLX_LABEL_TRANSITION_DELAY   hbTrId("txt_photos_setlabel_transistion_delay")
+#define GLX_VAL_SLOW                 hbTrId("txt_photos_setlabel_transistion_delay_val_slow")
+#define GLX_VAL_MEDIUM               hbTrId("txt_photos_setlabel_transistion_delay_val_medium")
+#define GLX_VAL_FAST                 hbTrId("txt_photos_setlabel_transistion_delay_val_fast")
+
+#define GLX_UNABLE_PLAY_SLIDESHOW      hbTrId("txt_photos_info_unable_to_play_slideshow")
+#define GLX_NOIMAGE_PLAY_SLIDESHOW     hbTrId( "txt_photos_info_no_images_to_play_slideshow" )
+
+//-----------------------------END OF VIEW SPECIFIC LOCALISATION STRING----------------------------------
+
+
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------DIALOG/INFO LOCALISATION STRING-----------------------------------------
+//-------------------------------------------------------------------------------------------------------//
+
+//Wait note. Displayed when something is being deleted.
+//Delete multiple images confirmation dialog
+//Deleting...
+//Delete selected items?
+#define GLX_DELETE_PROGRESS              hbTrId("txt_common_info_deleting")
 
-//comments lable for photos flip view
-#define GLX_DETAILS_DESCRIPTION       hbTrId("txt_photos_formlabel_description")
+#define GLX_MULTIPLE_DELETE              hbTrId("txt_photos_info_delete_selected_items")
+
+// progressing not to be shown while removing selected images from an album
+#define GLX_REMOVE_IMAGES                hbTrId("txt_photos_info_removing_images")    
+
+#define GLX_DIALOG_NAME_PROMPT           hbTrId("txt_photos_title_enter_name")
+
+#define GLX_DIALOG_ALBUM_NAME_DEFAULT    hbTrId("txt_photos_dialog_enter_name_entry_album")
+
+#define GLX_DIALOG_DELETE_ONE_ITEM       hbTrId("txt_photos_info_deleting_1")
+
+//Name already in use alert when user tries to name/reanme the album with an already existing album name
+#define GLX_NAME_ALREADY_EXIST           hbTrId("txt_photos_dpopinfo_name_1_already_in_use") 
+
+#define GLX_PROCESSING                   hbTrId( "txt_common_info_processing" ) 
+
+#define GLX_ADDING_IMAGES                hbTrId( "txt_photos_info_adding_images" )
+
+#define GLX_IMAGES_ADDED                 "txt_photos_dpopinfo_images_added_to_1"
+
+#define GLX_REFRESHING                   hbTrId("txt_photos_info_refreshing_your_media")
+
+//favorite album name for select album popup
+#define GLX_ALBUM_FAV                hbTrId("txt_photos_list_favorite")
+
+//-----------------------------END OF DIALOG/INFO LOCALISATION STRING----------------------------------
+
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------BUTTON LOCALISATION STRING-----------------------------------------
+//-------------------------------------------------------------------------------------------------------//
 
 //Button. Note! Use this text ID only if there are max. two buttons in the dialog. 
 //When this button is pressed, the focused item or operation will be selected or accepted.
@@ -108,28 +219,23 @@
 
 #define GLX_BUTTON_SELECT            hbTrId("txt_common_button_select")
 
-#define GLX_MENU_OPEN                hbTrId("txt_common_menu_open")
-
 #define GLX_BUTTON_HIDE              hbTrId("txt_common_button_hide")
 
-#define GLX_BUTTON_NEW               QString("New")
+#define GLX_BUTTON_NEW               hbTrId("txt_photos_button_new")
 
-#define GLX_LABEL_TRANSITION_EFFECT  hbTrId("txt_photos_setlabel_transistion_effect")
-#define GLX_VAL_SMOOTH_FADE          hbTrId("txt_photos_setlabel_transistion_effect_val_smooth")
+//-----------------------------END OF BUTTON LOCALISATION STRING----------------------------------
+
+//TITLE RELATED and DEFAULT STRINGS
 
-#define GLX_LABEL_TRANSITION_DELAY   hbTrId("txt_photos_setlabel_transistion_delay")
-#define GLX_VAL_SLOW                 hbTrId("txt_photos_setlabel_transistion_delay_val_slow")
-#define GLX_VAL_MEDIUM               hbTrId("txt_photos_setlabel_transistion_delay_val_medium")
-#define GLX_VAL_FAST                 hbTrId("txt_photos_setlabel_transistion_delay_val_fast")
-#define GLX_NOIMAGE_PLAY_SLIDESHOW   hbTrId( "txt_photos_info_no_images_to_play_slideshow" )
-#define GLX_REFRESHING               QString("Refreshing")
-
-//Full Screen Menu
-#define GLX_MENU_USE_IMAGE			QString("Use Image")
-#define GLX_MENU_SET_WALLPAPER		QString("Wallpaper")
-#define GLX_MENU_ROTATE				QString("Rotate")
-#define GLX_MENU_90_CW				QString("90 CW")
-#define GLX_MENU_90_CCW				QString("90 CCW")
-#define GLX_MENU_CROP				QString("Crop")
+#define GLX_CAPTION                    hbTrId("txt_short_caption_photos")
+#define GLX_TITLE                      hbTrId("txt_photos_title_photos")
+#define GLX_PLACES                     "txt_photos_dblist_places_ln"
+#define GLX_ITEMS_CAMERA               "txt_photos_dblist_val_ln_items"
+#define GLX_ITEMS_MYFAV                "txt_photos_subtitle_ln_items"
+#define GLX_SUBTITLE_CAM_GRIDVIEW      hbTrId("txt_photos_subtitle_my_camera")
+#define GLX_SUBTITLE_MYFAV_GRIDVIEW    hbTrId("txt_photos_subtitle_my_favorites")
+#define GLX_GRID_NO_IMAGE              hbTrId("txt_photos_info_no_content")
+#define GLX_ALBUM_SELECTION_TITLE      hbTrId("txt_photos_dialog_select_album") 
+#define GLX_IMAGE_VIEWER               hbTrId("txt_photos_title_image_viewer")  
 
 #endif /* GLXLOCALISATIONSTRINGS_H_ */
--- a/main/glxaiwservicehandler.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/main/glxaiwservicehandler.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -19,8 +19,6 @@
 #include <hbview.h>
 #include <hbmenu.h>
 #include <hbaction.h>
-#include <hbtoolbar.h>
-#include <hbstyleloader.h>
 #include <hbnotificationdialog.h>
 
 #include <QtDebug>
@@ -28,22 +26,16 @@
 #include <QDir>
 #include <QStringList>
 
-#include <glxmediamodel.h>
-#include <glxviewsfactory.h>
-#include <glxviewids.h>
-#include <glxview.h>
-#include <glxgridview.h>
-#include <glxmodelparm.h>
+#include <xqserviceutil.h>
+#include <xqaiwdeclplat.h>
+#include <xqappmgr.h>
+
+#include <glxmodelroles.h>
 #include <glxaiwservicehandler.h>
-#include <glxcollectionpluginall.hrh>
-#include <glxcollectionpluginimageviewer.hrh>
-#include <xqserviceutil.h>
 #include <glxstatemanager.h>
 #include <glximageviewermanager.h>
 #include <glxexternalutility.h>
 #include "glxlocalisationstrings.h"
-#include <xqaiwdeclplat.h>
-#include <xqappmgr.h>
 
 #define IMAGE_FETCHER_SERVICE_NAME QLatin1String("photos.com.nokia.symbian.IImageFetch")
 #define IMAGE_FETCHER_SERVICE_DEPINTERFACE_NAME QLatin1String("photos.Image")
@@ -57,11 +49,7 @@
 //
 GlxAiwServiceHandler::GlxAiwServiceHandler() :
     HbMainWindow(), 
-    mModel(NULL),
-    mView(NULL),
     mStateMgr(NULL),
-    mFSView(NULL),
-    mFetcherContextMenu(NULL),
     mFetcherService(NULL),
     mNSDIService(NULL),
     mDSDIService(NULL),
@@ -101,15 +89,7 @@
 //
 GlxAiwServiceHandler::~GlxAiwServiceHandler()
     {
-    HbStyleLoader::unregisterFilePath(":/data/photos.css");
-    if (mView)
-        {
-        removeView(mView);
-        }
     delete mStateMgr;
-    delete mView;
-	delete mFSView;
-    delete mModel;
     delete mFetcherService;
     delete mNSDIService;
     delete mDSDIService;
@@ -126,17 +106,17 @@
 // itemSelected()
 // ----------------------------------------------------------------------------
 //
-void GlxAiwServiceHandler::itemSelected(const QModelIndex & index)
+void GlxAiwServiceHandler::itemSelected(const QModelIndex & index,QAbstractItemModel & model)
     {
     qDebug() << "GlxFetcher::itemSelected";
-    
     if (mFetcherService && mFetcherService->isActive())
         {
         qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()";
-        QVariant variant = mModel->data(index, GlxUriRole);
+        QVariant variant = model.data(index, GlxUriRole);
         if (variant.isValid())
             {
             QString itemPath = variant.value<QString> ();
+            qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()::PATH = " << itemPath;
             QStringList list = (QStringList() << itemPath);
             mFetcherService->complete(list);
             }
@@ -145,7 +125,7 @@
     else if (mNSDIService && mNSDIService->isActive())
         {
     qDebug() << "GlxFetcher::itemSelected mNSDIService->isActive()";
-        QVariant variant = mModel->data(index, GlxUriRole);
+        QVariant variant = model.data(index, GlxUriRole);
         if (variant.isValid())
             {
             QString itemPath = variant.value<QString> ();
@@ -157,7 +137,7 @@
     else if (mDSDIService && mDSDIService->isActive())
         {
     qDebug() << "GlxFetcher::itemSelected mDSDIService->isActive()";
-        QVariant variant = mModel->data(index, GlxUriRole);
+        QVariant variant = model.data(index, GlxUriRole);
         if (variant.isValid())
             {
             QString itemPath = variant.value<QString> ();
@@ -168,97 +148,29 @@
     }	
 
 
-
 void GlxAiwServiceHandler::launchFetcher(QString viewTitle)
     {
     qDebug() << "GlxAiwServiceHandler::launchFetcher START";
     qApp->setApplicationName(viewTitle);
-    HbStyleLoader::registerFilePath(":/data/photos.css");
-    GlxModelParm modelParm(KGlxCollectionPluginAllImplementationUid, 0);
-    mModel = new GlxMediaModel(modelParm);
 
-    if ( this->orientation() == Qt::Horizontal ) {
-        mModel->setData(QModelIndex(), (int)GlxContextLsGrid, GlxContextRole );
-    }
-    else {
-        mModel->setData(QModelIndex(), (int)GlxContextPtGrid, GlxContextRole );
-    }    
+    mUtil = GlxExternalUtility::instance();
+    mUtil->setMainWindow(this);
 
-    mView = GlxViewsFactory::createView(GLX_GRIDVIEW_ID, this);
-    mView->activate();
-    mView->setModel(mModel);
-    addView(mView);
-    connect(mView, SIGNAL(gridItemSelected(const QModelIndex &)), this,
-            SLOT( itemSelected(const QModelIndex &)));
-			
-	connect ( mView, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ),
-			this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ),
-			Qt::QueuedConnection );
-	qDebug() << "GlxAiwServiceHandler::launchFetcher END";
+    mStateMgr = new GlxStateManager();
+	int err = connect(mStateMgr, SIGNAL(gridItemSelected(const QModelIndex &,QAbstractItemModel &)), this,
+            SLOT( itemSelected(const QModelIndex &,QAbstractItemModel &)));
+	qDebug() << "GlxAiwServiceHandler::launchFetcher err = "<< err;
+	
+    mStateMgr->launchFetcher();
+    return;
     }
 
-void GlxAiwServiceHandler::itemSpecificMenuTriggered(qint32 viewId,QPointF pos)
-{
-    mFetcherContextMenu = new HbMenu();
-	HbAction *action = mFetcherContextMenu->addAction(GLX_MENU_OPEN);
-	action->setObjectName( "Menu Open" );
-	connect(action, SIGNAL(triggered()), this, SLOT(openFSView()));
-	connect(this, SIGNAL(aboutToChangeOrientation ()), mFetcherContextMenu, SLOT(close()));
-	connect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) );
-	mFetcherContextMenu->setPreferredPos( pos );
-	mFetcherContextMenu->show();
-}
-
-void GlxAiwServiceHandler::closeContextMenu()
+void GlxAiwServiceHandler::launchImageViewer(QString viewTitle)
     {
-    disconnect( this, SIGNAL( aboutToChangeOrientation () ), mFetcherContextMenu, SLOT( close() ) );
-    disconnect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) ); 
-    mFetcherContextMenu->deleteLater();
-    mFetcherContextMenu = NULL;
-    }
-	
-void GlxAiwServiceHandler::openFSView()
-	{
-    if ( this->orientation() == Qt::Horizontal ) {
-        mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
-    }
-    else {
-        mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
-    }    
-    HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT);
-    selectAction->setObjectName( "FS Select" );
-    
-	connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect()));
-    HbToolBar* toolBar = new HbToolBar();
-    toolBar->setOrientation( Qt::Horizontal );
-    toolBar->setVisible(true);
-	toolBar->addAction(selectAction);
-	
-	mModel->setData( QModelIndex(), FETCHER_S, GlxSubStateRole );
-    mFSView = GlxViewsFactory::createView(GLX_FULLSCREENVIEW_ID, this);
-    //ownership transfered to view
-	mFSView->setToolBar(toolBar);
-	mView->deActivate();
-    mFSView->activate();
-    mFSView->setModel(mModel);
-    addView(mFSView);
-    setCurrentView(mFSView,false);
-	}
+    qApp->setApplicationName(viewTitle);
+    mUtil = GlxExternalUtility::instance();
+    mUtil->setMainWindow(this);
 
-
-void GlxAiwServiceHandler::handleFSSelect()
-	{
-	QModelIndex selectedIndex = mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0);
-	itemSelected(selectedIndex);
-    }
-
-void GlxAiwServiceHandler::launchImageViewer()
-    {
-    qApp->setApplicationName("Image Viewer");
-    GlxExternalUtility* util = GlxExternalUtility::instance();
-    util->setMainWindow(this);
-    delete mStateMgr;
-    mStateMgr = NULL;
     mStateMgr = new GlxStateManager();
     mStateMgr->launchFromExternal();
     if (mImageViewerService && mImageViewerService->asyncRequest())
@@ -289,6 +201,7 @@
 //
 GlxGetImageService::~GlxGetImageService()
     {
+    qDebug() << "GlxGetImageService::~GlxGetImageService()";
     }
 
 // ----------------------------------------------------------------------------
@@ -341,10 +254,7 @@
 void GlxGetImageService::fetch()
     {
     mImageRequestIndex = setCurrentRequestAsync();
-    QString title = requestInfo().info("WindowTitle").toString();
-    if(title.isNull()){
-        title = QString("Image Fetcher");
-    }
+    QString title =  GLX_TITLE;
     mServiceApp->launchFetcher(title);
     }
 
@@ -434,10 +344,7 @@
     {
     qDebug() << "GlxGetImageServiceNSDI::fetch START";
     mImageRequestIndex = setCurrentRequestAsync();
-    QString title = requestInfo().info("WindowTitle").toString();
-    if(title.isNull()){
-        title = QString("Image Fetcher");
-    }
+    QString title = GLX_TITLE;
     mServiceApp->launchFetcher(title);
     qDebug() << "GlxGetImageServiceNSDI::fetch END";
     }
@@ -517,10 +424,7 @@
     Q_UNUSED(filter)
     Q_UNUSED(flag)
     mImageRequestIndex = setCurrentRequestAsync();
-    QString title = requestInfo().info("WindowTitle").toString();
-    if(title.isNull()){
-        title = QString("Image Fetcher");
-    }
+    QString title  = GLX_TITLE;    
     mServiceApp->launchFetcher(title);
     }
 
@@ -583,7 +487,13 @@
         {
         mAsyncReqId = setCurrentRequestAsync();
         }
-    mServiceApp->launchImageViewer();
+
+    QString title = requestInfo().info("WindowTitle").toString();
+    if(title.isNull()){
+        title =GLX_IMAGE_VIEWER;
+    }
+    
+    mServiceApp->launchImageViewer(title);
     return true;
     }
 
@@ -600,7 +510,13 @@
         mImageViewerInstance->SetImageFileHandleL(file);
         sf.close();
         }
-    mServiceApp->launchImageViewer();
+
+    QString title = requestInfo().info("WindowTitle").toString();
+    if(title.isNull()){
+        title = GLX_IMAGE_VIEWER;
+    }
+    
+    mServiceApp->launchImageViewer(title);
     mAsyncRequest = !XQServiceUtil::isEmbedded();
 
     if (mAsyncRequest)
--- a/main/glxaiwservicehandler.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/main/glxaiwservicehandler.h	Fri Aug 06 20:44:25 2010 +0530
@@ -22,23 +22,20 @@
 #include <xqserviceprovider.h>
 #include <QStringList>
 #include <xqsharablefile.h>
+#include <QModelIndex>
+#include <QAbstractItemModel>
 
 //FORWARD CLASS DECLARATION
-class GlxView;
-class HbPushButton;
-class HbMenu;
-class QGraphicsGridLayout; 
 class GlxGetImageService;
-class GlxMediaModel;
-class QModelIndex;
 class GlxImageViewerService;
 class GlxStateManager;
 class CGlxImageViewerManager;
 class GlxGetImageServiceNSDI;
 class GlxGetImageServiceDSDI;
 
+class GlxExternalUtility;
 /**
- *  GlxAiwServiceHandler
+ * This is qthigway service handler class for all services provide by photos.
  * 
  */
 class GlxAiwServiceHandler: public HbMainWindow
@@ -54,57 +51,103 @@
      * Destructor.
      */
     ~GlxAiwServiceHandler();
+
+    /**
+     * launch image fetcher view
+     * @param viewTitle title for image fetcher
+     */
 	void launchFetcher(QString viewTitle);
-	void launchImageViewer();
+
+	/**
+     * launch image viewer 
+     * @param viewTitle title for image fetcher
+     */
+	void launchImageViewer(QString viewTitle);
+	
 public slots:  
-    void itemSelected(const QModelIndex &  index);    
+    /**
+     * This slot is called when image to be returned to fetcher 
+     * client is selected
+     * @param index index of the selected image
+     * @param model model for the current view where image is selected 
+     */
+    void itemSelected(const QModelIndex &  index,QAbstractItemModel & model);
+
+    /**
+     * This slot is called when service client is closed
+     * 
+     */
     void handleClientDisconnect();
-	void itemSpecificMenuTriggered(qint32,QPointF );
-    void openFSView();
-	void handleFSSelect();
-    void closeContextMenu();
     
 private:
-    GlxMediaModel *mModel;
-    GlxView* mView;
+    /// state manager for the services
 	GlxStateManager *mStateMgr;
-	GlxView* mFSView;
-    HbMenu *mFetcherContextMenu;
-
+	/// image fetcher service provider
     GlxGetImageService* mFetcherService;
+    /// image fetcher service provider with new service name and depricated interface name
     GlxGetImageServiceNSDI* mNSDIService;
+    /// image fetcher service provider with depricated name and depricated inaterface name
     GlxGetImageServiceDSDI* mDSDIService;
     GlxImageViewerService* mImageViewerService;
+    GlxExternalUtility *mUtil;
     };
 
 /**
- *  GlxGetImageService
+ *  GlxGetImageService : Image fetcher service provider
  * 
  */	
 class GlxGetImageService : public XQServiceProvider
 {
     Q_OBJECT
 public:
+    /**
+     * Constructor
+     */
     GlxGetImageService( GlxAiwServiceHandler *parent = 0 );
+
+    /**
+     * Destructor.
+     */
     ~GlxGetImageService();
+
+    /**
+     * check if service is active
+     */
     bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void complete( QStringList filesList);
     
-public slots://for QTHighway to notify provider about request
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
     void fetch();
     
-public slots://for provider to notify client
+    /**
+     * slot for service provider to notify client about error
+     */
     void fetchFailed( int errorCode );
     
 private:
+    /**
+     * called to complete qthighway service
+     * @param fileList list of Uri to be returned to client
+     */
     void doComplete( QStringList filesList);
     
 private:
+    /// current service request id
     int mImageRequestIndex;
+    /// service handler for all photos services
     GlxAiwServiceHandler* mServiceApp;
 };
 
 /**
+ * Class Description
  *  GlxGetImageServiceDSDI
  *  Service provide for new service and depricated interface
  */ 
@@ -112,23 +155,54 @@
 {
     Q_OBJECT
 public:
+    /**
+     * Constructor
+     */
     GlxGetImageServiceNSDI( GlxAiwServiceHandler *parent = 0 );
+    /**
+     * Destructor.
+     */
     ~GlxGetImageServiceNSDI();
+
+    /**
+     * check if service is active
+     */
     bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void complete( QStringList filesList);
     
-public slots://for QTHighway to notify provider about request
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
     void fetch( QVariantMap filter , QVariant flag );
+
+    /**
+     * slot for qthighway to notify provider about request
+     */
     void fetch();
     
-public slots://for provider to notify client
+public slots:
+    /**
+     * slot for service provider to notify client about error
+     */
     void fetchFailed( int errorCode );
     
 private:
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void doComplete( QStringList filesList);
     
 private:
+    /// current service request id
     int mImageRequestIndex;
+    /// service handler for all photos services
     GlxAiwServiceHandler* mServiceApp;
 };
 
@@ -140,45 +214,101 @@
 {
     Q_OBJECT
 public:
+    /**
+     * Constructor
+     */
     GlxGetImageServiceDSDI( GlxAiwServiceHandler *parent = 0 );
+    /**
+     * Destructor.
+     */
     ~GlxGetImageServiceDSDI();
+
+    /**
+     * check if service is active
+     */
     bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void complete( QStringList filesList);
     
-public slots://for QTHighway to notify provider about request
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
     void fetch( QVariantMap filter, QVariant flag);
     
-public slots://for provider to notify client
+public slots:
+    /**
+     * slot for service provider to notify client about error
+     */
     void fetchFailed( int errorCode );
     
 private:
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void doComplete( QStringList filesList);
     
 private:
+    /// current service request id
     int mImageRequestIndex;
+    /// service handler for all photos services
     GlxAiwServiceHandler* mServiceApp;
 };
 
-
+/**
+ * Image viewer service provider 
+ */
 class GlxImageViewerService : public XQServiceProvider
 {
     Q_OBJECT
-    public:
-        GlxImageViewerService( GlxAiwServiceHandler *parent = 0 );
-        ~GlxImageViewerService();
-        void complete(bool ok);
+public:
+    /**
+     * Constructor
+     */
+    GlxImageViewerService( GlxAiwServiceHandler *parent = 0 );
+
+    /**
+     * Destructor.
+     */
+    ~GlxImageViewerService();
+
+    /**
+     * compete request 
+     * @param ok true id success else false
+     */
+    void complete(bool ok);
 
-    public slots:
-        bool view(QString file);
-        bool view(XQSharableFile file);
-        bool asyncRequest() {return mAsyncRequest;}
+    /**
+     * check if request is aSync
+     * @return true if async else false
+     */
+    bool asyncRequest() {return mAsyncRequest;}
+
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    bool view(QString file);
 
-    private:
-        GlxAiwServiceHandler* mServiceApp;
-        int mAsyncReqId;
-        bool mRetValue;
-		bool mAsyncRequest;
-		CGlxImageViewerManager* mImageViewerInstance;
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    bool view(XQSharableFile file);
+
+private:
+    /// service handler for all photos services
+    GlxAiwServiceHandler* mServiceApp;
+    /// current request id
+    int mAsyncReqId;
+    bool mRetValue;
+    bool mAsyncRequest;
+    /// image viewer manager instance to get info regarding file
+    CGlxImageViewerManager* mImageViewerInstance;
 };
 
     
--- a/photos.qrc	Fri Jul 23 20:41:04 2010 +0530
+++ b/photos.qrc	Fri Aug 06 20:44:25 2010 +0530
@@ -9,8 +9,6 @@
         <file>data/opacity_deactivate.fxml</file>
         <file>data/zoomin.fxml</file>
         <file>data/zoomout.fxml</file>
-        <file>data/view_flip_hide.fxml</file>
-        <file>data/view_flip_show.fxml</file>        
         <file>data/helix.fxml</file>
         <file>data/fadein.fxml</file>  
         <file>data/uphide.fxml</file>
@@ -18,10 +16,10 @@
         <file>data/fullscreentogrid.fxml</file>
         <file>data/gridtofullscreenhide.fxml</file>
         <file>data/gridtofullscreenshow.fxml</file>
-        <file>data/gridtoalbumlist.fxml</file>
-        <file>data/gridtoalbumlisthide.fxml</file>
-        <file>data/albumlisttogrid.fxml</file>
-        <file>data/albumlisttogridshow.fxml</file>
+        <file>data/rotatelandscape.fxml</file>
+        <file>data/rotateprotrait.fxml</file>
+        <file>data/rotatefslandscape.fxml</file>
+        <file>data/rotatefsprotrait.fxml</file>
         <file>data/photos.css</file>
         <file>data/listview.docml</file>
         <file>data/fullscreen.docml</file>
--- a/tvout/tvoutengine/inc/glxhdmicontainer.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/tvout/tvoutengine/inc/glxhdmicontainer.h	Fri Aug 06 20:44:25 2010 +0530
@@ -25,7 +25,6 @@
  * Class Description
  * A class that creates a CCoeControl window for Screen 1 with screendevice
  * used 
- * @author tapadar
  */        
 class CGlxHdmiContainer : public CCoeControl, public MGlxGenCallback
     {
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h	Fri Aug 06 20:44:25 2010 +0530
@@ -33,6 +33,7 @@
 
 class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerEditImage : public GlxModelCommandHandler
 {
+  Q_OBJECT
   
 public:
     GlxCommandHandlerEditImage();
@@ -40,9 +41,18 @@
     void executeCommand(int commandId,int collectionId, QList<QModelIndex> indexList = QList<QModelIndex>() );
     void doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList) const ;
 
+public slots:
+    void handleOk(const QVariant& result);
+    void handleError(int errorCode, const QString& errorMessage);
+    void storeItems(const QModelIndex &parent, int start, int end);
+
+private:
+    void clearMediaModel();
+    
 private:
     XQAiwRequest* mReq;
     XQApplicationManager mAppmgr;
+	GlxMediaModel* mMediaModel;
 };
 
 
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -130,7 +130,7 @@
     mAlbumName.clear();
     if(aCommandId == EGlxCmdAddToFav)
         {
-		   mAlbumName = GLX_SUBTITLE_MYFAV_GRIDVIEW;
+		   mAlbumName = GLX_ALBUM_FAV;
            CMPXCollectionPath* targetCollection = CMPXCollectionPath::NewL();
            CleanupStack::PushL(targetCollection);
            // The target collection has to be appeneded with the albums plugin id
@@ -241,8 +241,7 @@
 
     while (error == KErrAlreadyExists)
         {
-        HbMessageBox::warning("Name Already Exist!!!", new HbLabel(
-                "New Album"));
+        HbMessageBox::warning(GLX_NAME_ALREADY_EXIST);
         error = KErrNone;
         error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle);
         }
@@ -266,12 +265,12 @@
 QString GlxCommandHandlerAddToContainer::CompletionTextL() const
     {
     if(!mAlbumName.isNull()){
-        return QString("Added to %1").arg(mAlbumName);
+        return (hbTrId(GLX_IMAGES_ADDED).arg(mAlbumName)); 
         }
 	return 	QString();
     }
 
 QString GlxCommandHandlerAddToContainer::ProgressTextL() const
     {
-    return QString("Adding Images...");
+    return GLX_ADDING_IMAGES;
     }
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -62,7 +62,7 @@
 
 QString GlxCommandHandlerDelete::ProgressTextL() const
     {
-    return QString("Deleting...");
+    return (GLX_DELETE_PROGRESS);
     }
 
 QString GlxCommandHandlerDelete::ConfirmationTextL(bool multiSelection ) const
@@ -70,7 +70,7 @@
     QString retString;
     if(multiSelection)
         {
-        retString = QString("Delete selected images");
+        retString = GLX_MULTIPLE_DELETE;
         }
     else
         {
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -32,7 +32,8 @@
 #include <XQServiceRequest.h>
 #include <XQAiwRequest.h>
 
-GlxCommandHandlerEditImage::GlxCommandHandlerEditImage() : mReq(NULL)
+GlxCommandHandlerEditImage::GlxCommandHandlerEditImage() :
+    mReq(NULL), mMediaModel(NULL)
     {
     //Nothing to do here
     }
@@ -41,9 +42,11 @@
     {
     delete mReq;
     mReq = NULL;
+    clearMediaModel();
     }
 
-void GlxCommandHandlerEditImage::executeCommand(int commandId,int collectionId, QList<QModelIndex> /*indexList*/)
+void GlxCommandHandlerEditImage::executeCommand(int commandId,
+        int collectionId, QList<QModelIndex> /*indexList*/)
     {
     const QString service = QLatin1String("PhotoEditor");
     const QString interface = QLatin1String("com.nokia.symbian.imageeditor");
@@ -54,29 +57,42 @@
         {
         mReq = mAppmgr.create(service, interface, operation, true);
         mReq->setEmbedded(true);
-        mReq->setSynchronous(true);
+        mReq->setSynchronous(false);
         }
     
     if(mReq == NULL)
         {
         return;
+        } 
+    
+    connect(mReq, SIGNAL(requestOk(const QVariant&)), this, SLOT(handleOk(const QVariant&)));
+    connect(mReq, SIGNAL(requestError(int,const QString&)), this, SLOT(handleError(int,const QString&)));
+
+    GlxModelParm modelParm(collectionId, 0);
+    clearMediaModel();
+    mMediaModel = new GlxMediaModel(modelParm);
+    if (!mMediaModel)
+        {
+        return;
         }
 
-    GlxModelParm modelParm (collectionId, 0);
-    GlxMediaModel* mediaModel = new GlxMediaModel (modelParm);
-    
+    connect( mMediaModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( storeItems( QModelIndex, int, int ) ) );
+
     //Get the file path for the item selected
-    QString imagePath = (mediaModel->data(mediaModel->index(mediaModel->data(mediaModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxUriRole)).value<QString>();
-    delete mediaModel;
-    
+    QString imagePath = (mMediaModel->data(
+            mMediaModel->index(mMediaModel->data(mMediaModel->index(0, 0),
+                    GlxFocusIndexRole).value<int> (), 0), GlxUriRole)).value<
+            QString> ();
+    //delete mediaModel;
+
     QList<QVariant> args;
     args << imagePath;
 #ifdef FF_IMAGE_EDITOR    
-	if(EGlxCmdSetWallpaper == commandId)
-		{
-		args << EEditorHighwayWallpaperCrop;
-		}
-	else if(EGlxCmdRotateImgCrop == commandId)
+    if(EGlxCmdSetWallpaper == commandId)
+        {
+        args << EEditorHighwayWallpaperCrop;
+        }
+    else if(EGlxCmdRotateImgCrop == commandId)
         {
         args << EEditorHighwayFreeCrop;
         }
@@ -85,22 +101,56 @@
         args << EEditorHighwayRotateCW;
         }
     else // if(EGlxCmdRotateImgCCW == aCommandId)
+
         {
         args << EEditorHighwayRotateCCW;
         }
     mReq->setArguments(args);
 #endif //FF_IMAGE_EDITOR
-    
     // Send the request
     bool res = mReq->send();
-    if  (!res) 
+    if (!res)
         {
-       // Request failed. 
-        qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send");
+        // Request failed. 
         }
     }
 
-void GlxCommandHandlerEditImage::doHandleUserAction(GlxMediaModel* /*model*/,QList<QModelIndex> /*indexList*/) const 
+void GlxCommandHandlerEditImage::doHandleUserAction(GlxMediaModel* /*model*/,
+        QList<QModelIndex> /*indexList*/) const
+    {
+    //Dummy, to keepup with compiler error
+    }
+
+void GlxCommandHandlerEditImage::handleOk(const QVariant& result)
+    {
+    //Nothing to do for - Needs further implementation to refine setting 
+    //default image in fullscreen view
+    }
+
+void GlxCommandHandlerEditImage::handleError(int errorCode,
+        const QString& errorMessage)
     {
-    //Dummy, to keepup with compiler errore
+    clearMediaModel();
     }
+
+void GlxCommandHandlerEditImage::storeItems(const QModelIndex &parent,
+        int aStartRow, int aEndRow)
+    {
+    //This implementation assumes that we will be getting only one new 
+    //image creation notification. Needs refined implementation 
+    if (mMediaModel)
+        {
+        QModelIndex modelIndex = mMediaModel->index(aStartRow, 0);
+        mMediaModel->setData(modelIndex, modelIndex.row(), GlxFocusIndexRole);
+        }
+    }
+
+void GlxCommandHandlerEditImage::clearMediaModel()
+    {
+    if (mMediaModel)
+        {
+        disconnect(mMediaModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(storeItems(QModelIndex,int,int)));
+        delete mMediaModel;
+        mMediaModel = NULL;
+        }
+    }
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -21,6 +21,7 @@
 #include <glxcommandhandlerremovefrom.h>
 #include <glxcollectionpluginalbums.hrh>
 #include <glxcommandhandlers.hrh>
+#include "glxlocalisationstrings.h"
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "glxcommandhandlerremovefromTraces.h"
@@ -74,5 +75,5 @@
 
 QString GlxCommandHandlerRemoveFrom::ProgressTextL() const
     {
-    return QString("Removing...");
+    return GLX_REMOVE_IMAGES;
     }
--- a/ui/inc/glxcommandhandlers.hrh	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/inc/glxcommandhandlers.hrh	Fri Aug 06 20:44:25 2010 +0530
@@ -96,14 +96,19 @@
     EGlxCmdShowImages,
     EGlxCmdShowVideos,
     EGlxCmdAllGridOpen,
+    EGlxCmdFetcherAllGridOpen,  //open fetcher grid in all collection
     EGlxCmdFullScreenOpen,
+    EGlxCmdFetcherFullScreenOpen,  //open fetcher in fullscreen
     EGlxCmdAlbumGridOpen,
+    EGlxCmdFetcherAlbumGridOpen,  //open fetcher album grid
     EGlxCmdAlbumListOpen,
+    EGlxCmdFetcherAlbumListOpen,  //open fetcher album list
     EGlxCmdCameraOpen,
     EGlxCmdDetailsOpen,
     EGlxCmdEmptyData,
     EGlxCmdOviOpen,
     EGlxCmdBack,
+    EGlxCmdSlideShowBack,
     EGlxCmdSelect,
     EGlxCmdCancel,
     EGlxCmdMarkAll,
@@ -122,6 +127,8 @@
     EGlxCmd3DEffectOn,
     EGlxCmd3DEffectOff,
     EGlxCmdSetWallpaper,
+    EGlxCmdPlayBackAnim,
+    EGlxCmdFetcherSelect,
     EGlxCmdAiwBase = 0x6000
     };
 
--- a/ui/inc/glxviewids.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/inc/glxviewids.h	Fri Aug 06 20:44:25 2010 +0530
@@ -38,13 +38,17 @@
 {
     NO_GRID_S = 0,
     ALL_ITEM_S,
-    ALBUM_ITEM_S,    
+    ALBUM_ITEM_S,
+	FETCHER_ITEM_S,  // all grid fetcher
+	FETCHER_ALBUM_ITEM_S,  //album grid getcher
     MAX_GRID_S
 } GridState;
 
 typedef enum 
 {
     NO_FULLSCREEN_S = MAX_GRID_S + 1,
+	ALL_FULLSCREEN_S,
+	ALBUM_FULLSCREEN_S,
     EXTERNAL_S,
     IMAGEVIEWER_S,
 	FETCHER_S,  
@@ -65,5 +69,10 @@
     IMAGEVIEWER_DETAIL_S,
     MAX_DETAIL_S
 } DetailState;
-
+typedef enum
+{
+    NO_LIST_S  = MAX_DETAIL_S+1,
+    FETCHER_ALBUM_S,  // album list fetcher
+    MAX_LIST_S
+} ListState;
 #endif /* GLXVIEWIDS_H */
--- a/ui/uiengine/model/bwins/glxmediamodelu.def	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/uiengine/model/bwins/glxmediamodelu.def	Fri Aug 06 20:44:25 2010 +0530
@@ -1,43 +1,45 @@
 EXPORTS
-	?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const
-	?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 2 NONAME ; void GlxMediaModel::itemsAdded(int, int)
-	?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void)
-	?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 4 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType)
-	?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 5 NONAME ; void * GlxMediaModel::qt_metacast(char const *)
-	?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 6 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const
-	?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 7 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &)
-	?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 8 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &)
-	?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 9 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode)
-	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int)
-	?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 11 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject
-	?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 12 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const
-	??_EGlxMediaModel@@UAE@I@Z @ 13 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int)
-	?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 14 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const
-	?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int)
-	?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 16 NONAME ; void GlxMediaModel::itemCorrupted(int)
-	?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 17 NONAME ; void GlxMediaModel::addExternalItems(class QList<struct GlxInterfaceParams> *)
-	?modelpopulated@GlxMediaModel@@QAEXXZ @ 18 NONAME ; void GlxMediaModel::modelpopulated(void)
-	?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 19 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const
-	?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString GlxMediaModel::tr(char const *, char const *)
-	?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 21 NONAME ; void GlxMediaModel::itemsRemoved(int, int)
-	?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 22 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const
-	?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 23 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const
-	??1GlxMediaModel@@UAE@XZ @ 24 NONAME ; GlxMediaModel::~GlxMediaModel(void)
-	?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 26 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString)
-	?itemUpdated1@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 27 NONAME ; void GlxMediaModel::itemUpdated1(int, enum GlxTBContextType)
-	?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 28 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int)
-	?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 29 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const
-	?clearExternalItems@GlxMediaModel@@QAEXXZ @ 30 NONAME ; void GlxMediaModel::clearExternalItems(void)
-	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *)
-	?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 32 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const
-	?populated@GlxMediaModel@@IAEXXZ @ 33 NONAME ; void GlxMediaModel::populated(void)
-	??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 34 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &)
-	?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 35 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const
-	?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 36 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const
-	?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 37 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString)
-	?updateDetailsView@GlxMediaModel@@IAEXXZ @ 38 NONAME ; void GlxMediaModel::updateDetailsView(void)
+	?thumbnailPopulated@GlxMediaModel@@IAEXXZ @ 1 NONAME ; void GlxMediaModel::thumbnailPopulated(void)
+	?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const
+	?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 3 NONAME ; void GlxMediaModel::itemsAdded(int, int)
+	?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void)
+	?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 5 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType)
+	?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 6 NONAME ; void * GlxMediaModel::qt_metacast(char const *)
+	?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 7 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const
+	?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 8 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &)
+	?itemUpdated@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 9 NONAME ; void GlxMediaModel::itemUpdated(int, enum GlxTBContextType)
+	?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 10 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &)
+	?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 11 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode)
+	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int)
+	?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject
+	?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 14 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const
+	??_EGlxMediaModel@@UAE@I@Z @ 15 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int)
+	?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 16 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const
+	?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 17 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const
+	?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int)
+	?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 19 NONAME ; void GlxMediaModel::itemCorrupted(int)
+	?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 20 NONAME ; void GlxMediaModel::addExternalItems(class QList<struct GlxInterfaceParams> *)
+	?modelpopulated@GlxMediaModel@@QAEXXZ @ 21 NONAME ; void GlxMediaModel::modelpopulated(void)
+	?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 22 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const
+	?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxMediaModel::tr(char const *, char const *)
+	?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 24 NONAME ; void GlxMediaModel::itemsRemoved(int, int)
+	?thumbnailPopulatedCheck@GlxMediaModel@@AAEXH@Z @ 25 NONAME ; void GlxMediaModel::thumbnailPopulatedCheck(int)
+	?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 26 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const
+	?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 27 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const
+	??1GlxMediaModel@@UAE@XZ @ 28 NONAME ; GlxMediaModel::~GlxMediaModel(void)
+	?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?updateDetailsView@GlxMediaModel@@IAEXXZ @ 30 NONAME ; void GlxMediaModel::updateDetailsView(void)
+	?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 31 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString)
+	?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 32 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int)
+	?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 33 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const
+	?clearExternalItems@GlxMediaModel@@QAEXXZ @ 34 NONAME ; void GlxMediaModel::clearExternalItems(void)
+	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 35 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *)
+	?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 36 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const
+	?populated@GlxMediaModel@@IAEXXZ @ 37 NONAME ; void GlxMediaModel::populated(void)
+	??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 38 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &)
 	?removeContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 39 NONAME ; void GlxMediaModel::removeContextMode(enum GlxContextMode)
 	?updateDetailItems@GlxMediaModel@@QAEXXZ @ 40 NONAME ; void GlxMediaModel::updateDetailItems(void)
-	?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 41 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const
+	?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 41 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const
+	?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 42 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const
+	?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 43 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString)
 
--- a/ui/uiengine/model/eabi/glxmediamodelu.def	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/uiengine/model/eabi/glxmediamodelu.def	Fri Aug 06 20:44:25 2010 +0530
@@ -1,8 +1,8 @@
 EXPORTS
 	_ZN13GlxMediaModel10itemsAddedEii @ 1 NONAME
-	_ZN13GlxMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
-	_ZN13GlxMediaModel11qt_metacastEPKc @ 3 NONAME
-	_ZN13GlxMediaModel12itemUpdated1Ei16GlxTBContextType @ 4 NONAME
+	_ZN13GlxMediaModel11itemUpdatedEi16GlxTBContextType @ 2 NONAME
+	_ZN13GlxMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME
+	_ZN13GlxMediaModel11qt_metacastEPKc @ 4 NONAME
 	_ZN13GlxMediaModel12itemsRemovedEii @ 5 NONAME
 	_ZN13GlxMediaModel13itemCorruptedEi @ 6 NONAME
 	_ZN13GlxMediaModel13setFocusIndexERK11QModelIndex @ 7 NONAME
@@ -13,31 +13,33 @@
 	_ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 12 NONAME
 	_ZN13GlxMediaModel16staticMetaObjectE @ 13 NONAME DATA 16
 	_ZN13GlxMediaModel17albumTitleUpdatedE7QString @ 14 NONAME
-	_ZN13GlxMediaModel18clearExternalItemsEv @ 15 NONAME
-	_ZN13GlxMediaModel19albumTitleAvailableE7QString @ 16 NONAME
-	_ZN13GlxMediaModel19getStaticMetaObjectEv @ 17 NONAME
-	_ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 18 NONAME
-	_ZN13GlxMediaModel9populatedEv @ 19 NONAME
-	_ZN13GlxMediaModelC1ER12GlxModelParm @ 20 NONAME
-	_ZN13GlxMediaModelC2ER12GlxModelParm @ 21 NONAME
-	_ZN13GlxMediaModelD0Ev @ 22 NONAME
-	_ZN13GlxMediaModelD1Ev @ 23 NONAME
-	_ZN13GlxMediaModelD2Ev @ 24 NONAME
-	_ZNK13GlxMediaModel10metaObjectEv @ 25 NONAME
-	_ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 26 NONAME
-	_ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 27 NONAME
-	_ZNK13GlxMediaModel13getFocusIndexEv @ 28 NONAME
-	_ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 29 NONAME
-	_ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 30 NONAME
-	_ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 31 NONAME
-	_ZNK13GlxMediaModel4dataERK11QModelIndexi @ 32 NONAME
-	_ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 33 NONAME
-	_ZNK13GlxMediaModel6parentERK11QModelIndex @ 34 NONAME
-	_ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 35 NONAME
-	_ZTI13GlxMediaModel @ 36 NONAME
-	_ZTV13GlxMediaModel @ 37 NONAME
-	_ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 38 NONAME
-	_ZN13GlxMediaModel17updateDetailItemsEv @ 39 NONAME
-	_ZN13GlxMediaModel17updateDetailsViewEv @ 40 NONAME
-	_ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 41 NONAME
+	_ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 15 NONAME
+	_ZN13GlxMediaModel17updateDetailItemsEv @ 16 NONAME
+	_ZN13GlxMediaModel17updateDetailsViewEv @ 17 NONAME
+	_ZN13GlxMediaModel18clearExternalItemsEv @ 18 NONAME
+	_ZN13GlxMediaModel18thumbnailPopulatedEv @ 19 NONAME
+	_ZN13GlxMediaModel19albumTitleAvailableE7QString @ 20 NONAME
+	_ZN13GlxMediaModel19getStaticMetaObjectEv @ 21 NONAME
+	_ZN13GlxMediaModel23thumbnailPopulatedCheckEi @ 22 NONAME
+	_ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 23 NONAME
+	_ZN13GlxMediaModel9populatedEv @ 24 NONAME
+	_ZN13GlxMediaModelC1ER12GlxModelParm @ 25 NONAME
+	_ZN13GlxMediaModelC2ER12GlxModelParm @ 26 NONAME
+	_ZN13GlxMediaModelD0Ev @ 27 NONAME
+	_ZN13GlxMediaModelD1Ev @ 28 NONAME
+	_ZN13GlxMediaModelD2Ev @ 29 NONAME
+	_ZNK13GlxMediaModel10metaObjectEv @ 30 NONAME
+	_ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 31 NONAME
+	_ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 32 NONAME
+	_ZNK13GlxMediaModel13getFocusIndexEv @ 33 NONAME
+	_ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 34 NONAME
+	_ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 35 NONAME
+	_ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 36 NONAME
+	_ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 37 NONAME
+	_ZNK13GlxMediaModel4dataERK11QModelIndexi @ 38 NONAME
+	_ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 39 NONAME
+	_ZNK13GlxMediaModel6parentERK11QModelIndex @ 40 NONAME
+	_ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 41 NONAME
+	_ZTI13GlxMediaModel @ 42 NONAME
+	_ZTV13GlxMediaModel @ 43 NONAME
 
--- a/ui/uiengine/model/listmodel/inc/glxalbummodel.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/uiengine/model/listmodel/inc/glxalbummodel.h	Fri Aug 06 20:44:25 2010 +0530
@@ -85,6 +85,7 @@
     QCache<int, HbIcon> itemIconCache;
     int mTempVisibleWindowIndex;
     HbIcon* m_CorruptIcon;
+    int mSubState;
 };
 
 #endif /* GLXALBUMMODEL_H */
--- a/ui/uiengine/model/listmodel/src/glxalbummodel.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/uiengine/model/listmodel/src/glxalbummodel.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -28,7 +28,7 @@
 GlxAlbumModel::GlxAlbumModel(GlxModelParm & modelParm):mContextMode(GlxContextInvalid)
 {
     qDebug("GlxAlbumModel::GlxAlbumModel()");
-    
+    mSubState = -1;
     mMLWrapper = new GlxMLWrapper(modelParm.collection(),modelParm.depth(),modelParm.filterType());
     // mMLWrapper->setContextMode(GlxContextPtList);
     // mContextMode = GlxContextPtList;
@@ -101,6 +101,10 @@
     HbIcon* itemIcon = NULL;
     QModelIndex idx;
     
+    if ( role == GlxSubStateRole ){
+        return mSubState;
+    }
+    
     if ( (!index.isValid()) || (rowIndex >= rowCount()) ) {
         return QVariant();
     }
@@ -165,6 +169,11 @@
             return TRUE;
         }
     }
+
+    if ( role == GlxSubStateRole && value.isValid() &&  value.canConvert <int> ()) {
+        mSubState = value.value <int> () ;
+        return TRUE;
+    }
     
     if ( GlxFocusIndexRole == role ) {
         if ( value.isValid() &&  value.canConvert <int> () ) {
@@ -266,6 +275,7 @@
 {
     qDebug("GlxAlbumModel::itemsAdded %d %d", startIndex, endIndex);
     beginInsertRows(QModelIndex(), startIndex, endIndex);
+	itemIconCache.clear();
     endInsertRows();	
 }
 
@@ -273,6 +283,7 @@
 {
 	qDebug("GlxAlbumModel::itemsRemoved %d %d", startIndex, endIndex);
 	beginRemoveRows(QModelIndex(), startIndex, endIndex);
+	itemIconCache.clear();
    	endRemoveRows();
 	//emit rowsRemoved(index(startIndex,0), startIndex, endIndex );
 	
--- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Fri Aug 06 20:44:25 2010 +0530
@@ -43,71 +43,219 @@
 {
 Q_OBJECT
 public :	
-	
-    GlxMediaModel(GlxModelParm & modelParm);
-    ~GlxMediaModel();
-    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;
-    bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
-    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+    /**
+     * Constructor
+     * @param - model parm struct collectionID, depth, filter, context mode etc
+     */	
+    GlxMediaModel( GlxModelParm & modelParm );
 
-	/*
-	*for setting external image data to the model. 
+    /**
+     * Destructor
+     */
+    ~GlxMediaModel();
+    
+    /**
+     * rowCount() - return the number of rows in the model.
+     * @param - parent model index, not used
+     */
+    int rowCount( const QModelIndex &parent = QModelIndex() ) const;
+    
+    /**
+     * columnCount() - return 1
+     * @param - parent model index, not used
+     */
+    int columnCount( const QModelIndex &parent = QModelIndex() ) const;
+    
+    /**
+     * parent() - return the model index of the child.
+     * It always return invalid model index since no there is no parent
+     */
+    QModelIndex parent( const QModelIndex &child ) const;
+    
+    /**
+     * data() -  return the data of corresponding role.
+     * @param - model index of interested item.
+     * @param - role of corresponding data.
+     */
+    QVariant data( const QModelIndex &index, int role ) const;
+    
+    /**
+     * setData() - to set the data for corresponding item and role.
+     * @param - model index of interested item.
+     * @param - data of the item
+     * @param - role of corresponding data.
+     */
+    bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole );
+    
+    /**
+     * index -  create a new model index for an item.
+     * @param - row index of the item.
+     * @param - column index of the item, it is always one.
+     */
+    QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const;
+
+	/**
+	* addExternalItems() - for setting external image data to the model. 
 	*/
-	void addExternalItems(GlxExternalData* externalItems);
-	/*
-	*for removing all external image data from the model. 
-	*/
+	void addExternalItems( GlxExternalData* externalItems );
+	
+	/**
+	 * clearExternalItems() - for removing all external image data from the model. 
+	 */
 	void clearExternalItems();
-	/*
-	* for checking if the item is editab
-	*/
 
 signals :
-	void albumTitleAvailable(QString aTitle);
+    /**
+     * albumTitleAvailable() - emit this signal when album title is available.
+     * @parma - album title
+     */
+	void albumTitleAvailable( QString aTitle );
+	
+	/**
+	 * populated() - emit this signal once medialist is populated
+	 */
 	void populated();
+	
+	/**
+	 * thumbnailPopulated() - emit the signal once some initial page of thumbnail are loaded 
+	 * into cache. 
+	 */
+	void thumbnailPopulated();
+	
+	/**
+	 * iconAvailable() - emit the signal to update the icon in the cache.
+	 * @param - item index
+	 * @param - HbIcon
+	 * @param - media list context type
+	 */
+    void iconAvailable( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ) const;
+    
+    /**
+     * updateDetailsView() - emit the signal to update the details view
+     */
+    void updateDetailsView();
 
 private:
-	HbIcon* GetGridIconItem(int itemIndex, GlxTBContextType tbContextType) const;
-	HbIcon* GetFsIconItem(int itemIndex,GlxTBContextType tbContextType)const;
-	HbIcon* GetExternalIconItem(int itemIndex,GlxTBContextType tbContextType)const;
-/**
- * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes.
- */
-    void setContextMode(GlxContextMode contextMode);
-	/*
-	 *Removes the context
+    /**
+     * GetGridIconItem() - To fetch the grid size thumbnail
+     * @param - item index
+     * @param - media list context type
+     * @return - return the hbicon of the item
+     */
+	HbIcon* GetGridIconItem( int itemIndex, GlxTBContextType tbContextType ) const;
+
+    /**
+     * GetFsIconItem() - To fetch the full screen size thumbnail
+     * @param - item index
+     * @param - media list context type
+     * @return - return the hbicon of the item
+     */	
+	HbIcon* GetFsIconItem( int itemIndex,GlxTBContextType tbContextType )const;
+
+    /**
+     * GetExternalIconItem() - To fetch the grid size thumbnail of external item.
+     * @param - item index
+     * @param - media list context type
+     * @return - return the hbicon of the item
+     */ 	
+	HbIcon* GetExternalIconItem( int itemIndex,GlxTBContextType tbContextType )const;
+	
+    /**
+     * setContextMode() - for setting the attribute context mode will be used mainly for 
+     * retreiving thumbnail of different sizes.
+     */
+    void setContextMode( GlxContextMode contextMode );
+    
+	/**
+	 *removeContextMode() - Removes the context
 	 */
-    void removeContextMode(GlxContextMode contextMode);
-    void setFocusIndex(const QModelIndex &index);
+    void removeContextMode( GlxContextMode contextMode );
+    
+    /**
+     * setFocusIndex() -  To set the focus index in medialist
+     * @param - selected item index( focus index )
+     */
+    void setFocusIndex( const QModelIndex &index );
+    
+    /**
+     * getFocusIndex() - Retrun the focus index from the medialist.
+     * @return -  focus index.
+     */
     QModelIndex getFocusIndex() const;
-    void setSelectedIndex(const QModelIndex &index);
-    HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const;
+    
+    /**
+     * setSelectedIndex() - To make the item as seleted in media list to perform some coomand.
+     * @param - selected item index
+     */
+    void setSelectedIndex( const QModelIndex &index );
 
-	
-signals :
-    void iconAvailable(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) const;
-	/*
-	 *signal to update the details view
-	 */
-    void updateDetailsView();
+    /**
+     * getCorruptDefaultIcon() - IT will return the corrupt icon if item is corrupted else return the 
+     * default item.
+     * @param - item index 
+     */    
+    HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const;
+    
+    /**
+     * thumbnailPopulatedCheck() - To check the some initial page of item is loaded into cache or not
+     * @param -  loaded thumbnail image index in cache.
+     */
+    void thumbnailPopulatedCheck( int index );
+    
 public slots:
-	void itemUpdated1(int mlIndex, GlxTBContextType tbContextType);
-	void itemsAdded(int startIndex, int endIndex);
-	void itemsRemoved(int startIndex, int endIndex);
-	void itemCorrupted(int itemIndex);
-	void albumTitleUpdated(QString aTitle);
+    /**
+     * itemUpdated() - call back fuction, when thumbnail is added into cache.
+     * It remove the icon from the local cache and emit the signal of data change.
+     * @param - item index
+     * @param - media list context type 
+     */
+	void itemUpdated( int mlIndex, GlxTBContextType tbContextType );
+	
+	/**
+	 * itemsAdded() - call back function when new items are added into collection.
+	 * @param - start index of the newly added item
+	 * @param - end endex of the newlyadd item
+	 */
+	void itemsAdded( int startIndex, int endIndex );
+	
+	/**
+	 * itemsRemoved() - call back function when some item are removed from the collection.
+     * @param - start index of the remove items
+     * @param - end endex of the remove items
+	 */
+	void itemsRemoved( int startIndex, int endIndex );
+	
+	/**
+	 * itemCorrupted() - call back function, when a item is corrupted.
+	 * @param - index of the corrupt item
+	 */
+	void itemCorrupted( int itemIndex );
+	
+    /**
+     * albumTitleUpdated() - call back function, when a album collection title is available.
+     * @param - title of the album.
+     */	
+	void albumTitleUpdated( QString aTitle );
+	
+	/**
+	 * modelpopulated() - callback function, when meida list item is populated.
+	 * It set the visual window index and emit the signal to view about it.
+	 */
 	void modelpopulated();
-	/*
-	 *Emits signal to update the details view
+	
+	/**
+	 * updateDetailItems() - Emits signal to update the details view
 	 */
 	void updateDetailItems();
-protected:
 	
 private slots:
-    void updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType);
+    /**
+     * updateItemIcon() - update the icon into local cache.
+     * @param - item index
+     * @param - HbIcon
+     * @param - media list context type
+     */
+    void updateItemIcon( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType );
     
 private:
 	GlxMLWrapper* mMLWrapper;	
@@ -125,6 +273,7 @@
 	int mSubState;
 	GlxDRMUtilityWrapper* mDRMUtilityWrapper;
 	int mTempVisibleWindowIndex;
+	bool thumbnailPopulatedFlag;
 };
 
 
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -33,17 +33,23 @@
 #include <glxperformancemacro.h>
 
 #include "glxicondefs.h" //Contains the icon names/Ids
-#include<glxviewids.h>
+#include "glxcollectionpluginall.hrh"
+#include "glxviewids.h"
+
+#define DELTA_IMAGE 5
+#define INITIAL_POPULATE_IMAGE_COUNT 30
 
 GlxMediaModel::GlxMediaModel(GlxModelParm & modelParm)
 {
 	qDebug("GlxMediaModel::GlxMediaModel");
 	
+	thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? false : true;
 	mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,EGlxFilterImage);
 	mMLWrapper->setContextMode( modelParm.contextMode() );
 	mContextMode = modelParm.contextMode( ) ; 
 	mDRMUtilityWrapper = new GlxDRMUtilityWrapper();
-	int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType)));
+	
+	int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated(int, GlxTBContextType)));
 	qDebug("updateItem() connection status %d", err);
 	err = connect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int)));
 	qDebug("itemCorrupted() connection status %d", err);
@@ -62,7 +68,7 @@
 	itemFsIconCache.setMaxCost(5);
 	itemExternalIconCache.setMaxCost(0);
 	
-	m_DefaultIcon = new HbIcon(GLXICON_DEFAULT);
+	m_DefaultIcon = new HbIcon( GLXICON_DEFAULT );
 	m_CorruptIcon = new HbIcon( GLXICON_CORRUPT );
 	mExternalItems = NULL;
 	externalDataCount = 0;
@@ -82,14 +88,6 @@
 	delete m_CorruptIcon;
 	m_CorruptIcon = NULL;
 	clearExternalItems();
-    int err = disconnect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType)));
-	err = disconnect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(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)));
-	err = disconnect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType)));
-	err = disconnect(mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString)));	    
-	err = disconnect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated()));
-	err = disconnect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems()));
     delete mMLWrapper;
 	delete mDRMUtilityWrapper;
 }
@@ -248,7 +246,7 @@
                 QPixmap tempPixmap = tempIcon->qicon().pixmap(128, 128);
                 QSize itemSize = mMLWrapper->retrieveItemDimension(itemIndex);
                 QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize ( 640, 360) : QSize ( 360, 640 );
-                if(!((itemSize.width() < sz.width()) && (itemSize.height() < sz.height()))); {
+                if( !( ( itemSize.width() < sz.width() ) && ( itemSize.height() < sz.height() ) ) ) {
                     itemSize.scale(sz, Qt::KeepAspectRatio);
                 }
                 tempPixmap = tempPixmap.scaled(itemSize, Qt::IgnoreAspectRatio );
@@ -398,24 +396,29 @@
 }
 
 
-void GlxMediaModel::itemUpdated1(int mlIndex,GlxTBContextType tbContextType  )
+void GlxMediaModel::itemUpdated(int mlIndex,GlxTBContextType tbContextType  )
 {
 	qDebug("GlxMediaModel::itemUpdated %d", mlIndex);
 	//clear the grid and FS cache if they have any icons with them for that index
-	if(tbContextType == GlxTBContextGrid) {
-		itemIconCache.remove(mlIndex);
+	if( tbContextType == GlxTBContextGrid ) {
+	    if ( !thumbnailPopulatedFlag ) {
+	        thumbnailPopulatedCheck( mlIndex ); 
+	    }		
+	    itemIconCache.remove(mlIndex);
 	}
 	if(tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs) {
 		itemFsIconCache.remove(mlIndex);
 	}
-	emit dataChanged(index(mlIndex+externalDataCount,0),index(mlIndex+externalDataCount,0));
-	
+	emit dataChanged( index( mlIndex , 0 ), index( mlIndex, 0 ) );	
 }
 
 void GlxMediaModel::itemCorrupted(int itemIndex)
 {
 	qDebug("GlxMediaModel::itemCorrupted %d", itemIndex);
-	emit dataChanged(index(itemIndex+externalDataCount,0),index(itemIndex+externalDataCount,0));	
+    if ( !thumbnailPopulatedFlag ) {
+        thumbnailPopulatedCheck( itemIndex ); 
+    }
+	emit dataChanged( index( itemIndex , 0 ), index( itemIndex, 0 ) );	
 }
 
 void GlxMediaModel::modelpopulated()
@@ -551,6 +554,16 @@
     return m_DefaultIcon ;
 }
 
+void GlxMediaModel::thumbnailPopulatedCheck( int index )
+{
+    int count = rowCount() - DELTA_IMAGE ;
+    int maxRange = INITIAL_POPULATE_IMAGE_COUNT + DELTA_IMAGE ;
+    if ( index >= count ||  ( index >= INITIAL_POPULATE_IMAGE_COUNT && index < maxRange ) ) {
+        thumbnailPopulatedFlag = TRUE;
+        emit thumbnailPopulated();
+    }
+}
+
 bool GlxMediaModel::setData ( const QModelIndex & idx, const QVariant & value, int role )
 {
     Q_UNUSED( idx )
--- a/ui/viewmanagement/bwins/glxstatehandleru.def	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/bwins/glxstatehandleru.def	Fri Aug 06 20:44:25 2010 +0530
@@ -1,42 +1,46 @@
 EXPORTS
-	?metaObject@GlxStateManager@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * GlxStateManager::metaObject(void) const
-	?actionTriggered@GlxStateManager@@QAEXH@Z @ 2 NONAME ; void GlxStateManager::actionTriggered(int)
-	?setupItemsSignal@GlxStateManager@@IAEXXZ @ 3 NONAME ; void GlxStateManager::setupItemsSignal(void)
-	??_EGlxStateManager@@UAE@I@Z @ 4 NONAME ; GlxStateManager::~GlxStateManager(unsigned int)
-	?updateTNProgress@GlxStateManager@@QAEXH@Z @ 5 NONAME ; void GlxStateManager::updateTNProgress(int)
-	?goBack@GlxStateManager@@QAEXHH@Z @ 6 NONAME ; void GlxStateManager::goBack(int, int)
-	?enterMarkingMode@GlxStateManager@@QAEXXZ @ 7 NONAME ; void GlxStateManager::enterMarkingMode(void)
-	??1GlxStateManager@@UAE@XZ @ 8 NONAME ; GlxStateManager::~GlxStateManager(void)
-	?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void)
-	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int)
-	?eventHandler@GlxStateManager@@AAEXAAH@Z @ 11 NONAME ; void GlxStateManager::eventHandler(int &)
-	?executeCommand@GlxStateManager@@QAE_NH@Z @ 12 NONAME ; bool GlxStateManager::executeCommand(int)
-	?setupItems@GlxStateManager@@QAEXXZ @ 13 NONAME ; void GlxStateManager::setupItems(void)
-	?previousState@GlxStateManager@@QAEXXZ @ 14 NONAME ; void GlxStateManager::previousState(void)
-	?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 15 NONAME ; class GlxState * GlxStateManager::createState(int)
-	?exitApplication@GlxStateManager@@AAEXXZ @ 16 NONAME ; void GlxStateManager::exitApplication(void)
-	?changeState@GlxStateManager@@QAEXHH@Z @ 17 NONAME ; void GlxStateManager::changeState(int, int)
-	?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 18 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0GlxStateManager@@QAE@XZ @ 19 NONAME ; GlxStateManager::GlxStateManager(void)
-	?cleanupExternal@GlxStateManager@@QAEXXZ @ 20 NONAME ; void GlxStateManager::cleanupExternal(void)
-	?setFullScreenContext@GlxStateManager@@AAEXXZ @ 21 NONAME ; void GlxStateManager::setFullScreenContext(void)
-	?cleanAllModel@GlxStateManager@@QAEXXZ @ 22 NONAME ; void GlxStateManager::cleanAllModel(void)
-	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *)
-	?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 24 NONAME ; void * GlxStateManager::qt_metacast(char const *)
-	?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 25 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject
-	?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int)
-	?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString GlxStateManager::tr(char const *, char const *)
-	?nextState@GlxStateManager@@QAEXHH@Z @ 28 NONAME ; void GlxStateManager::nextState(int, int)
-	?launchFromExternal@GlxStateManager@@QAEXXZ @ 29 NONAME ; void GlxStateManager::launchFromExternal(void)
-	?externalCommand@GlxStateManager@@IAEXH@Z @ 30 NONAME ; void GlxStateManager::externalCommand(int)
-	?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 31 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir)
-	?launchApplication@GlxStateManager@@QAEXXZ @ 32 NONAME ; void GlxStateManager::launchApplication(void)
-	?exitMarkingMode@GlxStateManager@@QAEXXZ @ 33 NONAME ; void GlxStateManager::exitMarkingMode(void)
-	?removeCurrentModel@GlxStateManager@@QAEXXZ @ 34 NONAME ; void GlxStateManager::removeCurrentModel(void)
-	?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 35 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir)
-	?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 36 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *)
-	?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 37 NONAME ; void GlxStateManager::vanishProgressDialog(void)
-	?launchProgressDialog@GlxStateManager@@AAEXXZ @ 38 NONAME ; void GlxStateManager::launchProgressDialog(void)
-	?saveData@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::saveData(void)
-	?launchActivity@GlxStateManager@@AAE_NXZ @ 40 NONAME ; bool GlxStateManager::launchActivity(void)
+	?launchFetcher@GlxStateManager@@QAEXXZ @ 1 NONAME ; void GlxStateManager::launchFetcher(void)
+	?saveData@GlxStateManager@@QAEXXZ @ 2 NONAME ; void GlxStateManager::saveData(void)
+	?metaObject@GlxStateManager@@UBEPBUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const * GlxStateManager::metaObject(void) const
+	?actionTriggered@GlxStateManager@@QAEXH@Z @ 4 NONAME ; void GlxStateManager::actionTriggered(int)
+	?setupItemsSignal@GlxStateManager@@IAEXXZ @ 5 NONAME ; void GlxStateManager::setupItemsSignal(void)
+	??_EGlxStateManager@@UAE@I@Z @ 6 NONAME ; GlxStateManager::~GlxStateManager(unsigned int)
+	?updateTNProgress@GlxStateManager@@QAEXH@Z @ 7 NONAME ; void GlxStateManager::updateTNProgress(int)
+	?goBack@GlxStateManager@@QAEXHH@Z @ 8 NONAME ; void GlxStateManager::goBack(int, int)
+	?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 9 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *)
+	?enterMarkingMode@GlxStateManager@@QAEXXZ @ 10 NONAME ; void GlxStateManager::enterMarkingMode(void)
+	??1GlxStateManager@@UAE@XZ @ 11 NONAME ; GlxStateManager::~GlxStateManager(void)
+	?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void)
+	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int)
+	?eventHandler@GlxStateManager@@AAEXAAH@Z @ 14 NONAME ; void GlxStateManager::eventHandler(int &)
+	?executeCommand@GlxStateManager@@QAE_NH@Z @ 15 NONAME ; bool GlxStateManager::executeCommand(int)
+	?thumbnailPopulated@GlxStateManager@@QAEXXZ @ 16 NONAME ; void GlxStateManager::thumbnailPopulated(void)
+	?setupItems@GlxStateManager@@QAEXXZ @ 17 NONAME ; void GlxStateManager::setupItems(void)
+	?previousState@GlxStateManager@@QAEXXZ @ 18 NONAME ; void GlxStateManager::previousState(void)
+	?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 19 NONAME ; class GlxState * GlxStateManager::createState(int)
+	?exitApplication@GlxStateManager@@AAEXXZ @ 20 NONAME ; void GlxStateManager::exitApplication(void)
+	?changeState@GlxStateManager@@QAEXHH@Z @ 21 NONAME ; void GlxStateManager::changeState(int, int)
+	?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 22 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0GlxStateManager@@QAE@XZ @ 23 NONAME ; GlxStateManager::GlxStateManager(void)
+	?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 24 NONAME ; void GlxStateManager::vanishProgressDialog(void)
+	?saveImage@GlxStateManager@@AAEXXZ @ 25 NONAME ; void GlxStateManager::saveImage(void)
+	?cleanupExternal@GlxStateManager@@QAEXXZ @ 26 NONAME ; void GlxStateManager::cleanupExternal(void)
+	?gridItemSelected@GlxStateManager@@IAEXABVQModelIndex@@AAVQAbstractItemModel@@@Z @ 27 NONAME ; void GlxStateManager::gridItemSelected(class QModelIndex const &, class QAbstractItemModel &)
+	?setFullScreenContext@GlxStateManager@@AAEXXZ @ 28 NONAME ; void GlxStateManager::setFullScreenContext(void)
+	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *)
+	?cleanAllModel@GlxStateManager@@QAEXXZ @ 30 NONAME ; void GlxStateManager::cleanAllModel(void)
+	?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int)
+	?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject
+	?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 33 NONAME ; void * GlxStateManager::qt_metacast(char const *)
+	?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 34 NONAME ; class QString GlxStateManager::tr(char const *, char const *)
+	?nextState@GlxStateManager@@QAEXHH@Z @ 35 NONAME ; void GlxStateManager::nextState(int, int)
+	?launchFromExternal@GlxStateManager@@QAEXXZ @ 36 NONAME ; void GlxStateManager::launchFromExternal(void)
+	?externalCommand@GlxStateManager@@IAEXH@Z @ 37 NONAME ; void GlxStateManager::externalCommand(int)
+	?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 38 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir)
+	?launchApplication@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::launchApplication(void)
+	?exitMarkingMode@GlxStateManager@@QAEXXZ @ 40 NONAME ; void GlxStateManager::exitMarkingMode(void)
+	?removeCurrentModel@GlxStateManager@@QAEXXZ @ 41 NONAME ; void GlxStateManager::removeCurrentModel(void)
+	?launchProgressDialog@GlxStateManager@@AAEXXZ @ 42 NONAME ; void GlxStateManager::launchProgressDialog(void)
+	?launchActivity@GlxStateManager@@AAE_NXZ @ 43 NONAME ; bool GlxStateManager::launchActivity(void)
+	?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 44 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir)
 
--- a/ui/viewmanagement/bwins/glxviewmanageru.def	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/bwins/glxviewmanageru.def	Fri Aug 06 20:44:25 2010 +0530
@@ -8,45 +8,46 @@
 	?qt_metacast@GlxViewManager@@UAEPAXPBD@Z @ 7 NONAME ; void * GlxViewManager::qt_metacast(char const *)
 	??_EGlxViewManager@@UAE@I@Z @ 8 NONAME ; GlxViewManager::~GlxViewManager(unsigned int)
 	?addBackSoftKeyAction@GlxViewManager@@QAEXXZ @ 9 NONAME ; void GlxViewManager::addBackSoftKeyAction(void)
-	?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 10 NONAME ; class GlxView * GlxViewManager::findView(int)
-	?createActions@GlxViewManager@@AAEXXZ @ 11 NONAME ; void GlxViewManager::createActions(void)
-	?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 12 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
-	?handleAction@GlxViewManager@@QAEXXZ @ 13 NONAME ; void GlxViewManager::handleAction(void)
-	?handleUserAction@GlxViewManager@@QAEXHH@Z @ 14 NONAME ; void GlxViewManager::handleUserAction(int, int)
-	?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
-	?actionTriggered@GlxViewManager@@IAEXH@Z @ 16 NONAME ; void GlxViewManager::actionTriggered(int)
-	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 17 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
-	?handleMenuAction@GlxViewManager@@QAEXH@Z @ 18 NONAME ; void GlxViewManager::handleMenuAction(int)
-	?externalCommand@GlxViewManager@@IAEXH@Z @ 19 NONAME ; void GlxViewManager::externalCommand(int)
-	??0GlxViewManager@@QAE@XZ @ 20 NONAME ; GlxViewManager::GlxViewManager(void)
-	?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 21 NONAME ; void GlxViewManager::exitMarkingMode(int)
-	?cancelTimer@GlxViewManager@@QAEXXZ @ 22 NONAME ; void GlxViewManager::cancelTimer(void)
-	?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 23 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *)
-	?createToolBar@GlxViewManager@@AAEXXZ @ 24 NONAME ; void GlxViewManager::createToolBar(void)
-	?removeConnection@GlxViewManager@@AAEXXZ @ 25 NONAME ; void GlxViewManager::removeConnection(void)
-	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 26 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
-	?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::createMarkingModeActions(void)
-	?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?deActivateView@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::deActivateView(void)
-	?destroyView@GlxViewManager@@QAEXH@Z @ 30 NONAME ; void GlxViewManager::destroyView(int)
-	?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 31 NONAME ; class GlxView * GlxViewManager::resolveView(int)
-	??1GlxViewManager@@UAE@XZ @ 32 NONAME ; GlxViewManager::~GlxViewManager(void)
-	?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 33 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
-	?addConnection@GlxViewManager@@AAEXXZ @ 34 NONAME ; void GlxViewManager::addConnection(void)
-	?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 35 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
-	?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
-	?checkMarked@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::checkMarked(void)
-	?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 38 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
-	?setupItems@GlxViewManager@@QAEXXZ @ 39 NONAME ; void GlxViewManager::setupItems(void)
-	?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 40 NONAME ; void GlxViewManager::enterMarkingMode(int)
-	?actionProcess@GlxViewManager@@QAEXH@Z @ 41 NONAME ; void GlxViewManager::actionProcess(int)
-	?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 42 NONAME ; void GlxViewManager::deactivateCurrentView(void)
-	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
-	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
-	?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 45 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
-	?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
-	?activateView@GlxViewManager@@AAEXXZ @ 47 NONAME ; void GlxViewManager::activateView(void)
-	?hideProgressDialog@GlxViewManager@@AAEXXZ @ 48 NONAME ; void GlxViewManager::hideProgressDialog(void)
-	?applicationReady@GlxViewManager@@IAEXXZ @ 49 NONAME ; void GlxViewManager::applicationReady(void)
-	?handleReadyView@GlxViewManager@@QAEXXZ @ 50 NONAME ; void GlxViewManager::handleReadyView(void)
+	?applicationReady@GlxViewManager@@IAEXXZ @ 10 NONAME ; void GlxViewManager::applicationReady(void)
+	?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 11 NONAME ; class GlxView * GlxViewManager::findView(int)
+	?createActions@GlxViewManager@@AAEXXZ @ 12 NONAME ; void GlxViewManager::createActions(void)
+	?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
+	?handleAction@GlxViewManager@@QAEXXZ @ 14 NONAME ; void GlxViewManager::handleAction(void)
+	?handleUserAction@GlxViewManager@@QAEXHH@Z @ 15 NONAME ; void GlxViewManager::handleUserAction(int, int)
+	?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
+	?actionTriggered@GlxViewManager@@IAEXH@Z @ 17 NONAME ; void GlxViewManager::actionTriggered(int)
+	?getSubState@GlxViewManager@@AAEHXZ @ 18 NONAME ; int GlxViewManager::getSubState(void)
+	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 19 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
+	?handleMenuAction@GlxViewManager@@QAEXH@Z @ 20 NONAME ; void GlxViewManager::handleMenuAction(int)
+	?externalCommand@GlxViewManager@@IAEXH@Z @ 21 NONAME ; void GlxViewManager::externalCommand(int)
+	??0GlxViewManager@@QAE@XZ @ 22 NONAME ; GlxViewManager::GlxViewManager(void)
+	?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 23 NONAME ; void GlxViewManager::exitMarkingMode(int)
+	?cancelTimer@GlxViewManager@@QAEXXZ @ 24 NONAME ; void GlxViewManager::cancelTimer(void)
+	?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 25 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *)
+	?createToolBar@GlxViewManager@@AAEXXZ @ 26 NONAME ; void GlxViewManager::createToolBar(void)
+	?removeConnection@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::removeConnection(void)
+	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 28 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
+	?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::createMarkingModeActions(void)
+	?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 30 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?deActivateView@GlxViewManager@@AAEXXZ @ 31 NONAME ; void GlxViewManager::deActivateView(void)
+	?destroyView@GlxViewManager@@QAEXH@Z @ 32 NONAME ; void GlxViewManager::destroyView(int)
+	?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 33 NONAME ; class GlxView * GlxViewManager::resolveView(int)
+	??1GlxViewManager@@UAE@XZ @ 34 NONAME ; GlxViewManager::~GlxViewManager(void)
+	?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 35 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
+	?addConnection@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::addConnection(void)
+	?hideProgressDialog@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::hideProgressDialog(void)
+	?handleReadyView@GlxViewManager@@QAEXXZ @ 38 NONAME ; void GlxViewManager::handleReadyView(void)
+	?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 39 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
+	?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 40 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
+	?checkMarked@GlxViewManager@@AAEXXZ @ 41 NONAME ; void GlxViewManager::checkMarked(void)
+	?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 42 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
+	?setupItems@GlxViewManager@@QAEXXZ @ 43 NONAME ; void GlxViewManager::setupItems(void)
+	?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 44 NONAME ; void GlxViewManager::enterMarkingMode(int)
+	?actionProcess@GlxViewManager@@QAEXH@Z @ 45 NONAME ; void GlxViewManager::actionProcess(int)
+	?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 46 NONAME ; void GlxViewManager::deactivateCurrentView(void)
+	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
+	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 48 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
+	?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 49 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
+	?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 50 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
+	?activateView@GlxViewManager@@AAEXXZ @ 51 NONAME ; void GlxViewManager::activateView(void)
 
--- a/ui/viewmanagement/eabi/glxstatehandleru.def	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/eabi/glxstatehandleru.def	Fri Aug 06 20:44:25 2010 +0530
@@ -3,40 +3,44 @@
 	_ZN15GlxStateManager11changeStateEii @ 2 NONAME
 	_ZN15GlxStateManager11createModelEi13NavigationDir @ 3 NONAME
 	_ZN15GlxStateManager11createStateEi @ 4 NONAME
-	_ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 5 NONAME
-	_ZN15GlxStateManager11qt_metacastEPKc @ 6 NONAME
-	_ZN15GlxStateManager12eventHandlerERi @ 7 NONAME
-	_ZN15GlxStateManager13cleanAllModelEv @ 8 NONAME
-	_ZN15GlxStateManager13previousStateEv @ 9 NONAME
-	_ZN15GlxStateManager14executeCommandEi @ 10 NONAME
-	_ZN15GlxStateManager15actionTriggeredEi @ 11 NONAME
-	_ZN15GlxStateManager15cleanupExternalEv @ 12 NONAME
-	_ZN15GlxStateManager15createGridModelEi13NavigationDir @ 13 NONAME
-	_ZN15GlxStateManager15exitApplicationEv @ 14 NONAME
-	_ZN15GlxStateManager15exitMarkingModeEv @ 15 NONAME
-	_ZN15GlxStateManager15externalCommandEi @ 16 NONAME
-	_ZN15GlxStateManager16enterMarkingModeEv @ 17 NONAME
-	_ZN15GlxStateManager16setupItemsSignalEv @ 18 NONAME
-	_ZN15GlxStateManager16staticMetaObjectE @ 19 NONAME DATA 16
-	_ZN15GlxStateManager16updateTNProgressEi @ 20 NONAME
-	_ZN15GlxStateManager17launchApplicationEv @ 21 NONAME
-	_ZN15GlxStateManager18launchFromExternalEv @ 22 NONAME
-	_ZN15GlxStateManager18removeCurrentModelEv @ 23 NONAME
-	_ZN15GlxStateManager19getStaticMetaObjectEv @ 24 NONAME
-	_ZN15GlxStateManager20setFullScreenContextEv @ 25 NONAME
-	_ZN15GlxStateManager6goBackEii @ 26 NONAME
-	_ZN15GlxStateManager9nextStateEii @ 27 NONAME
-	_ZN15GlxStateManagerC1Ev @ 28 NONAME
-	_ZN15GlxStateManagerC2Ev @ 29 NONAME
-	_ZN15GlxStateManagerD0Ev @ 30 NONAME
-	_ZN15GlxStateManagerD1Ev @ 31 NONAME
-	_ZN15GlxStateManagerD2Ev @ 32 NONAME
-	_ZNK15GlxStateManager10metaObjectEv @ 33 NONAME
-	_ZTI15GlxStateManager @ 34 NONAME
-	_ZTV15GlxStateManager @ 35 NONAME
-	_ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 36 NONAME
-	_ZN15GlxStateManager20launchProgressDialogEv @ 37 NONAME
-	_ZN15GlxStateManager20vanishProgressDialogEv @ 38 NONAME
-	_ZN15GlxStateManager14launchActivityEv @ 39 NONAME
-	_ZN15GlxStateManager8saveDataEv @ 40 NONAME
+	_ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 5 NONAME
+	_ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME
+	_ZN15GlxStateManager11qt_metacastEPKc @ 7 NONAME
+	_ZN15GlxStateManager12eventHandlerERi @ 8 NONAME
+	_ZN15GlxStateManager13cleanAllModelEv @ 9 NONAME
+	_ZN15GlxStateManager13launchFetcherEv @ 10 NONAME
+	_ZN15GlxStateManager13previousStateEv @ 11 NONAME
+	_ZN15GlxStateManager14executeCommandEi @ 12 NONAME
+	_ZN15GlxStateManager14launchActivityEv @ 13 NONAME
+	_ZN15GlxStateManager15actionTriggeredEi @ 14 NONAME
+	_ZN15GlxStateManager15cleanupExternalEv @ 15 NONAME
+	_ZN15GlxStateManager15createGridModelEi13NavigationDir @ 16 NONAME
+	_ZN15GlxStateManager15exitApplicationEv @ 17 NONAME
+	_ZN15GlxStateManager15exitMarkingModeEv @ 18 NONAME
+	_ZN15GlxStateManager15externalCommandEi @ 19 NONAME
+	_ZN15GlxStateManager16enterMarkingModeEv @ 20 NONAME
+	_ZN15GlxStateManager16gridItemSelectedERK11QModelIndexR18QAbstractItemModel @ 21 NONAME
+	_ZN15GlxStateManager16setupItemsSignalEv @ 22 NONAME
+	_ZN15GlxStateManager16staticMetaObjectE @ 23 NONAME DATA 16
+	_ZN15GlxStateManager16updateTNProgressEi @ 24 NONAME
+	_ZN15GlxStateManager17launchApplicationEv @ 25 NONAME
+	_ZN15GlxStateManager18launchFromExternalEv @ 26 NONAME
+	_ZN15GlxStateManager18removeCurrentModelEv @ 27 NONAME
+	_ZN15GlxStateManager18thumbnailPopulatedEv @ 28 NONAME
+	_ZN15GlxStateManager19getStaticMetaObjectEv @ 29 NONAME
+	_ZN15GlxStateManager20launchProgressDialogEv @ 30 NONAME
+	_ZN15GlxStateManager20setFullScreenContextEv @ 31 NONAME
+	_ZN15GlxStateManager20vanishProgressDialogEv @ 32 NONAME
+	_ZN15GlxStateManager6goBackEii @ 33 NONAME
+	_ZN15GlxStateManager8saveDataEv @ 34 NONAME
+	_ZN15GlxStateManager9nextStateEii @ 35 NONAME
+	_ZN15GlxStateManager9saveImageEv @ 36 NONAME
+	_ZN15GlxStateManagerC1Ev @ 37 NONAME
+	_ZN15GlxStateManagerC2Ev @ 38 NONAME
+	_ZN15GlxStateManagerD0Ev @ 39 NONAME
+	_ZN15GlxStateManagerD1Ev @ 40 NONAME
+	_ZN15GlxStateManagerD2Ev @ 41 NONAME
+	_ZNK15GlxStateManager10metaObjectEv @ 42 NONAME
+	_ZTI15GlxStateManager @ 43 NONAME
+	_ZTV15GlxStateManager @ 44 NONAME
 
--- a/ui/viewmanagement/eabi/glxviewmanageru.def	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/eabi/glxviewmanageru.def	Fri Aug 06 20:44:25 2010 +0530
@@ -5,48 +5,49 @@
 	_ZN14GlxViewManager11cancelTimerEv @ 4 NONAME
 	_ZN14GlxViewManager11checkMarkedEv @ 5 NONAME
 	_ZN14GlxViewManager11destroyViewEi @ 6 NONAME
-	_ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 7 NONAME
-	_ZN14GlxViewManager11qt_metacastEPKc @ 8 NONAME
-	_ZN14GlxViewManager11resolveViewEi @ 9 NONAME
-	_ZN14GlxViewManager12activateViewEv @ 10 NONAME
-	_ZN14GlxViewManager12handleActionEv @ 11 NONAME
-	_ZN14GlxViewManager13actionProcessEi @ 12 NONAME
-	_ZN14GlxViewManager13addConnectionEv @ 13 NONAME
-	_ZN14GlxViewManager13createActionsEv @ 14 NONAME
-	_ZN14GlxViewManager13createToolBarEv @ 15 NONAME
-	_ZN14GlxViewManager14deActivateViewEv @ 16 NONAME
-	_ZN14GlxViewManager14effectFinishedEv @ 17 NONAME
-	_ZN14GlxViewManager15actionTriggeredEi @ 18 NONAME
-	_ZN14GlxViewManager15exitMarkingModeEi @ 19 NONAME
-	_ZN14GlxViewManager15externalCommandEi @ 20 NONAME
-	_ZN14GlxViewManager16enterMarkingModeEi @ 21 NONAME
-	_ZN14GlxViewManager16handleMenuActionEi @ 22 NONAME
-	_ZN14GlxViewManager16handleUserActionEii @ 23 NONAME
-	_ZN14GlxViewManager16removeConnectionEv @ 24 NONAME
-	_ZN14GlxViewManager16staticMetaObjectE @ 25 NONAME DATA 16
-	_ZN14GlxViewManager17getSelectionModelEi @ 26 NONAME
-	_ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 27 NONAME
-	_ZN14GlxViewManager17updateToolBarIconEi @ 28 NONAME
-	_ZN14GlxViewManager19getStaticMetaObjectEv @ 29 NONAME
-	_ZN14GlxViewManager20addBackSoftKeyActionEv @ 30 NONAME
-	_ZN14GlxViewManager20launchProgressDialogEi @ 31 NONAME
-	_ZN14GlxViewManager20updateProgressDialogEi @ 32 NONAME
-	_ZN14GlxViewManager21deactivateCurrentViewEv @ 33 NONAME
-	_ZN14GlxViewManager24createMarkingModeActionsEv @ 34 NONAME
-	_ZN14GlxViewManager24createMarkingModeToolBarEv @ 35 NONAME
-	_ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 36 NONAME
-	_ZN14GlxViewManager8findViewEi @ 37 NONAME
-	_ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 38 NONAME
-	_ZN14GlxViewManagerC1Ev @ 39 NONAME
-	_ZN14GlxViewManagerC2Ev @ 40 NONAME
-	_ZN14GlxViewManagerD0Ev @ 41 NONAME
-	_ZN14GlxViewManagerD1Ev @ 42 NONAME
-	_ZN14GlxViewManagerD2Ev @ 43 NONAME
-	_ZNK14GlxViewManager10metaObjectEv @ 44 NONAME
-	_ZNK14GlxViewManager11orientationEv @ 45 NONAME
-	_ZTI14GlxViewManager @ 46 NONAME
-	_ZTV14GlxViewManager @ 47 NONAME
-	_ZN14GlxViewManager18hideProgressDialogEv @ 48 NONAME
-	_ZN14GlxViewManager15handleReadyViewEv @ 49 NONAME
-	_ZN14GlxViewManager16applicationReadyEv @ 50 NONAME
+	_ZN14GlxViewManager11getSubStateEv @ 7 NONAME
+	_ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 8 NONAME
+	_ZN14GlxViewManager11qt_metacastEPKc @ 9 NONAME
+	_ZN14GlxViewManager11resolveViewEi @ 10 NONAME
+	_ZN14GlxViewManager12activateViewEv @ 11 NONAME
+	_ZN14GlxViewManager12handleActionEv @ 12 NONAME
+	_ZN14GlxViewManager13actionProcessEi @ 13 NONAME
+	_ZN14GlxViewManager13addConnectionEv @ 14 NONAME
+	_ZN14GlxViewManager13createActionsEv @ 15 NONAME
+	_ZN14GlxViewManager13createToolBarEv @ 16 NONAME
+	_ZN14GlxViewManager14deActivateViewEv @ 17 NONAME
+	_ZN14GlxViewManager14effectFinishedEv @ 18 NONAME
+	_ZN14GlxViewManager15actionTriggeredEi @ 19 NONAME
+	_ZN14GlxViewManager15exitMarkingModeEi @ 20 NONAME
+	_ZN14GlxViewManager15externalCommandEi @ 21 NONAME
+	_ZN14GlxViewManager15handleReadyViewEv @ 22 NONAME
+	_ZN14GlxViewManager16applicationReadyEv @ 23 NONAME
+	_ZN14GlxViewManager16enterMarkingModeEi @ 24 NONAME
+	_ZN14GlxViewManager16handleMenuActionEi @ 25 NONAME
+	_ZN14GlxViewManager16handleUserActionEii @ 26 NONAME
+	_ZN14GlxViewManager16removeConnectionEv @ 27 NONAME
+	_ZN14GlxViewManager16staticMetaObjectE @ 28 NONAME DATA 16
+	_ZN14GlxViewManager17getSelectionModelEi @ 29 NONAME
+	_ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 30 NONAME
+	_ZN14GlxViewManager17updateToolBarIconEi @ 31 NONAME
+	_ZN14GlxViewManager18hideProgressDialogEv @ 32 NONAME
+	_ZN14GlxViewManager19getStaticMetaObjectEv @ 33 NONAME
+	_ZN14GlxViewManager20addBackSoftKeyActionEv @ 34 NONAME
+	_ZN14GlxViewManager20launchProgressDialogEi @ 35 NONAME
+	_ZN14GlxViewManager20updateProgressDialogEi @ 36 NONAME
+	_ZN14GlxViewManager21deactivateCurrentViewEv @ 37 NONAME
+	_ZN14GlxViewManager24createMarkingModeActionsEv @ 38 NONAME
+	_ZN14GlxViewManager24createMarkingModeToolBarEv @ 39 NONAME
+	_ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 40 NONAME
+	_ZN14GlxViewManager8findViewEi @ 41 NONAME
+	_ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 42 NONAME
+	_ZN14GlxViewManagerC1Ev @ 43 NONAME
+	_ZN14GlxViewManagerC2Ev @ 44 NONAME
+	_ZN14GlxViewManagerD0Ev @ 45 NONAME
+	_ZN14GlxViewManagerD1Ev @ 46 NONAME
+	_ZN14GlxViewManagerD2Ev @ 47 NONAME
+	_ZNK14GlxViewManager10metaObjectEv @ 48 NONAME
+	_ZNK14GlxViewManager11orientationEv @ 49 NONAME
+	_ZTI14GlxViewManager @ 50 NONAME
+	_ZTV14GlxViewManager @ 51 NONAME
 
--- a/ui/viewmanagement/statehandler/inc/glxliststate.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxliststate.h	Fri Aug 06 20:44:25 2010 +0530
@@ -20,12 +20,43 @@
 
 #include <glxbasestate.h>
 
+/**
+ * class to manage list state
+ */
 class GlxListState : public GlxState
 {
 public :
+    /**
+     * constructor
+     */
 	GlxListState(GlxState *preState = NULL);
+
+	/**
+	 * return current state of list
+	 * @return current state
+	 */
+	int state() const { return (int) mState; }
+	/**
+	 * set current state
+	 * @param internalState substate of list to be set
+	 */
+    void setState(int internalState) { mState = (ListState) internalState; }
+	
+    /**
+     * event handler
+     */
 	void eventHandler(qint32 &id);
-	void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect);	
+	/**
+	 * set transition parameter
+	 * @param dir navigation direction
+	 * @param effect effect to be run on view transition
+	 * @param viewEffect 
+	 */
+	void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect);
+private:
+    ///list internal state
+	ListState mState;   
+	
 };
 
 #endif /* GLXLISTSTATE_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/viewmanagement/statehandler/inc/glxorientationsensorfilter.h	Fri Aug 06 20:44:25 2010 +0530
@@ -0,0 +1,61 @@
+/*
+* 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 GLXORIENTATIONSENSORFILTER_H
+#define GLXORIENTATIONSENSORFILTER_H
+
+#include <QOrientationSensor>
+#include <QOrientationFilter>
+QTM_USE_NAMESPACE
+
+/**
+ * Class Description
+ * To read the current orientaion from the sensor
+ */
+class GlxOrientationSensorFilter : public QOrientationFilter
+{
+public :
+    /**
+     * Constructor
+     */	
+     GlxOrientationSensorFilter();
+
+     /**
+      * Destructor
+      */
+     ~GlxOrientationSensorFilter();
+     
+     /**
+      * filter() - callback function to get the current Orientation information
+      * @param QOrientationReading
+      * @return please look /// @see QOrientationFilter
+      */
+     bool filter( QOrientationReading *reading );
+     
+     /**
+      * orientation() - return the current device orientation
+      */
+     int orientation() { return mOrient; }
+	
+private :
+    int mOrient;
+    QOrientationSensor *m_orientation ;
+};
+
+/// for detail please @see QOrientationFilter
+
+#endif /* GLXORIENTATIONSENSORFILTER_H */
\ No newline at end of file
--- a/ui/viewmanagement/statehandler/inc/glxslideshowstate.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxslideshowstate.h	Fri Aug 06 20:44:25 2010 +0530
@@ -21,21 +21,56 @@
 #include <glxbasestate.h>
 
 class GlxStateManager;
+class GlxOrientationSensorFilter;
 
+/**
+ * Class Description
+ * This is slide show state corresponding to slide show view.
+ */
 class GlxSlideShowState : public GlxState
 {
 public :
+    /**
+     * constructor
+     * @param pointer of state manager.
+     * @param pointer of perivious state.
+     */
 	GlxSlideShowState(GlxStateManager *stateManager, GlxState *preState = NULL);
+	
+	/**
+	 * state()
+	 * @return return the substate.
+	 */
 	int state() const { return (int) mState; }
+	
+	/**
+	 * setState() - set the current substate
+	 * @param substate of the this state
+	 */
 	void setState(int internalState) { mState = (SlideShowState) internalState; }
-	void eventHandler(qint32 &id);
+	
+	/**
+	 * eventHandler() - A command handler of this state
+	 * @param command id 
+	 */
+	void eventHandler(qint32 &commandId);
+	
+	/**
+	 * albumItemEventHandler() - A command handle for album substate
+	 * @param command id 
+	 */
 	void albumItemEventHandler( qint32 &id );
-	~GlxSlideShowState() {}	
+	
+	/**
+	 * Destructor
+	 */
+	~GlxSlideShowState();	
 	
 private:
     //slide show internal state
     SlideShowState mState;
     GlxStateManager *mStateManager;
+    GlxOrientationSensorFilter *mOrientSensorFilter;
 };
 
 #endif /* GLXSLIDESHOWSTATE_H */
--- a/ui/viewmanagement/statehandler/inc/glxstatemanager.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxstatemanager.h	Fri Aug 06 20:44:25 2010 +0530
@@ -25,6 +25,7 @@
 #include <QList>
 #include <glxbasestate.h>
 #include <qmap.h>
+#include <QModelIndex>
 
 class GlxState;
 class GlxViewManager;
@@ -40,178 +41,236 @@
 #define GLX_STATEMANAGER_EXPORT Q_DECL_IMPORT
 #endif
 
+/**
+ * Class Description
+ * class to create and manage different states and view navigation 
+ */
+
 class GLX_STATEMANAGER_EXPORT GlxStateManager : public QObject
 {
     Q_OBJECT
 	friend class TestGlxStateManager;
 	
 public :
-    /*
+    /**
      * Constructor
      */
     GlxStateManager();
     
-    /*
+    /**
      * Destructor
      */
     virtual ~GlxStateManager();
-    
-    /*
-     * Fuction to launch the application from some external world
+
+    /**
+     * launchFetcher() - launch image fetcher
+     */
+	void launchFetcher();    
+
+	/**
+     * launchFromExternal() - Fuction to launch the application from some external world
      */
     void launchFromExternal();
     
-    /*
-     * Clean the all externel data
+    /**
+     * cleanupExternal() - Clean the all externel data
      */
     void cleanupExternal();
     
-    /*
-     *  Move the views to the multiple item selection state
+    /**
+     *  enterMarkingMode() - Move the views to the multiple item selection state
      */
     void enterMarkingMode();
     
-    /*
-     * Exit from the multiselection state
+    /**
+     * exitMarkingMode() - Exit from the multiselection state
      */
     void exitMarkingMode();
     
-    /*
-     * Execute the commant on multiple selected item
+    /**
+     * executeCommand() - Execute the commant on multiple selected item.
+     * @param - command Id to execute.
      */
-    bool executeCommand(qint32 commandId);
+    bool executeCommand( qint32 commandId );
     
-    /*
-     *  when application goes into background or come back to foreground
+    /**
+     *  eventFilter() - when application goes into background or come back to foreground
      *  set and reset the background thumbnail generation property
+     *  @param QObject
+     *  @param QEvent
      */
-    bool eventFilter(QObject *obj, QEvent *ev);    
+    bool eventFilter( QObject *obj, QEvent *ev );    
 
 signals :
-    /*
-     * Send the user activities ( command ) to the external world
+    /**
+     * externalCommand() - Send the user activities ( command ) to the external world
+     * @param - command Id to execute.
      */
-    void externalCommand(int cmdId);
+    void externalCommand( int cmdId );
     
-    /*
-     * TO send the signal to initialise the rest of items
+    /**
+     * setupItemsSignal() - TO send the signal to initialise the non critical resoruce
      * which is not created in the launch sequence
      */
     void setupItemsSignal();
+
+    /**
+     * gridItemSelected() - signal to send current model and selected index for fetcher service
+     * @param - selected item model index
+     * @param - model
+     */
+    void gridItemSelected( const QModelIndex &,QAbstractItemModel & );   
     
 public slots:
-    /*
-     * To launch the application
+    /**
+     * launchApplication() - To launch the application
      */
     void launchApplication();
     
-    /*
-     * To handle the user action, view switching etc
+    /**
+     * actionTriggered() - To handle the user action, view switching etc
+     * @param - user action ID.
      */
-    void actionTriggered(qint32 id);
+    void actionTriggered( qint32 id );
     
-    /*
-     * To create the items which is not created in the aluch sequence
+    /**
+     * setupItems() -To create the items which is not created in the aluch sequence
      */
     void setupItems();
     
-    /*
-     * call back function to monitor the change in thumbnail manager
+    /**
+     * updateTNProgress() - call back function to monitor the change in thumbnail manager
+     * @param - number of item left to generate the thumbnail
      */
-    void updateTNProgress( int count);
+    void updateTNProgress( int count );
+    
+    /**
+     * thumbnailPopulated() - call back to get the information that some initial page are loaded 
+     * into cache.
+     * It will vanish the progressbar dialog.
+     */
+    void thumbnailPopulated();
+    
+    /**
+     * saveData() - To save the activity data
+     */
     void saveData();
 
 public :
-    /*
-     * It will create a new state and replace the current state with new state in the stack.
+    /**
+     * changeState() - It will create a new state and replace the current state with new state in the stack.
      * It will use in the case of state switching.
      * use -1 if state does not have internal state
+     * @param - new state id.
+     * @param - internal or substate of new state.
      */    
-    void changeState(qint32 newStateId, int internalState );
+    void changeState( qint32 newStateId, int internalState );
     
-    /*
-     * Go back to previous state 
+    /**
+     * previousState() - Go back to previous state and if there is no state in the stack
+     * then exit the application. 
      */    
     void previousState();
 
-    /*
-     * Go back to a state in hierarchy and pop all the state upto that level.
+    /**
+     * goBack() - Go back to a state in hierarchy and pop all the state upto that level.
      * if state is not found, then all the state from the hierachy is removed and create a new state on level 0
      * This function will be use in the case when more then one back is required in single event.
+     * @param - new state id.
+     * @param - internal or substate of new state.
      */
-    void goBack(qint32 stateId, int internalState);
+    void goBack( qint32 stateId, int internalState );
        
-    /*
-     * Create a new state and current state should be pushed into stack.
+    /**
+     * nextState() - Create a new state and current state should be pushed into stack.
      * use -1 if state does not have internal state
+     * @param - new state id.
+     * @param - internal or substate of new state.
      */  
-    void nextState(qint32 newStateId, int internalState );
+    void nextState( qint32 newStateId, int internalState );
 
-    /*
-     * It will delete the current model
+    /**
+     * removeCurrentModel() - It will delete the current model
      */      
     void removeCurrentModel();
     
-    /*
-     * It will delete the all model used by state manager
+    /**
+     * cleanAllModel() - It will delete the all model used by state manager
      */
     void cleanAllModel();
     
-
 private:
 
-    /*
-     *  Launch the harvesting and TN generation progress bar dialog
+    /**
+     *  launchProgressDialog() - Launch the harvesting and TN generation progress bar dialog
      */
     void launchProgressDialog();
     
-    /*
-     * remove the harvesting and TN generation progress bar dialog
+    /**
+     * vanishProgressDialog() - create the grid view model and wait for loading of some initial page of data into 
+     * cache.
      */
     void vanishProgressDialog();
     
-    /*
-     * Factory function to create the state.
+    /**
+     * createState() - Factory function to create the state.
      */  
-    GlxState * createState(qint32 state);
+    GlxState * createState( qint32 state );
     
-    /*
-     * Factory function to create the model.
+    /**
+     * createModel() - Factory function to create the model.
+     * @param - state id of the state.
+     * @param -  state navigation direction
      */  	
-    void createModel(qint32 stateId, NavigationDir dir = NO_DIR);
+    void createModel( qint32 stateId, NavigationDir dir = NO_DIR );
 
-    /*
-     * Factory function to create the grid model.
+    /**
+     * createGridModel() - Factory function to create the grid model.
+     * @param -  internal state of grid state.
+     * @param - state navigation direction.
      */  	
-    void createGridModel(int internalState, NavigationDir dir = NO_DIR);
+    void createGridModel( int internalState, NavigationDir dir = NO_DIR );
 
-    /*
-     * To set the fullscreen context based on the currrent orientation
+    /**
+     * setFullScreenContext() - To set the fullscreen context based on the currrent orientation
      */    
     void setFullScreenContext();
     
-    /*
-     * Apllication event handler function
+    /**
+     * setFullScreenContext() - Apllication event handler function
+     * @param - event id
      */
-    void eventHandler(qint32 &id);
+    void eventHandler( qint32 &id );
     
-    /*
-     * A function to care the exit for application, in the case when application launch from internal and external
+    /**
+     * exitApplication() - A function to care the exit for application, in the case when application launch from internal and external
      */        
     void exitApplication();
 
-    /*Launch Application as an acitivyt.
+    /**
+     * launchActivity() -Launch Application as an activity.
      * Return Value @0 : If launching an activity fails
      *              @1 : If launch activity passes
      */
      bool launchActivity();
+
+     /**
+      * saveImage() - save current image if it is launched from private path.
+      */
+     void saveImage();
+     
 private:
     GlxViewManager      *mViewManager;
-    GlxMediaModel       *mAllMediaModel;        // for all grid
-    GlxMediaModel       *mAlbumGridMediaModel;  // for album grid 
-    GlxAlbumModel       *mAlbumMediaModel;      // for album list
-	GlxMediaModel       *mImageviewerMediaModel;// for image viewer 
-    QAbstractItemModel  *mCurrentModel;         // no owner ship
+    /// for all grid
+    GlxMediaModel       *mAllMediaModel;        
+    /// for album grid
+    GlxMediaModel       *mAlbumGridMediaModel;  
+    /// for album list
+    GlxAlbumModel       *mAlbumMediaModel;      
+    /// for image viewer
+	GlxMediaModel       *mImageviewerMediaModel;
+	/// no owner ship
+    QAbstractItemModel  *mCurrentModel;         
     GlxState            *mCurrentState;		
     GlxActionHandler    *mActionHandler;
     GlxTNObserver       *mTNObserver;
--- a/ui/viewmanagement/statehandler/src/glxgridstate.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxgridstate.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -43,10 +43,12 @@
     
     switch ( mState ) {
     case ALL_ITEM_S :
+	case FETCHER_ITEM_S :
         allItemEventHandler ( id ) ;
         break;
         
     case ALBUM_ITEM_S :
+    case FETCHER_ALBUM_ITEM_S :
     	albumItemEventHandler ( id ) ;
     	break;
     	
@@ -60,11 +62,10 @@
    qDebug("GlxGridState::defaultEventHandler() action id = %d", id);
    
    switch(id) { 
-   case EGlxCmdFullScreenOpen :
-        id = EGlxCmdHandled;
-        mStateManager->nextState( GLX_FULLSCREENVIEW_ID, -1 );
-        break;
-        
+   case EGlxCmdFetcherFullScreenOpen:
+       id = EGlxCmdHandled;
+       mStateManager->nextState( GLX_FULLSCREENVIEW_ID, FETCHER_S );
+       break;
    case EGlxCmdAddToAlbum :
    case EGlxCmdDelete :
    case EGlxCmdRemoveFrom :
@@ -110,9 +111,13 @@
     
     switch(id) {
     case EGlxCmdAllGridOpen :
+    case EGlxCmdFetcherAllGridOpen :   
     	id = EGlxCmdHandled;
     	break ;
-    	
+    case EGlxCmdFullScreenOpen :
+        mStateManager->nextState( GLX_FULLSCREENVIEW_ID, ALL_FULLSCREEN_S );
+        id = EGlxCmdHandled;
+    	break;
     default :
     	break;    
     }
@@ -128,14 +133,25 @@
         mStateManager->goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S );
         id = EGlxCmdHandled;
         break ;
+
+    case EGlxCmdFetcherAllGridOpen :
+        mStateManager->removeCurrentModel();
+        mStateManager->goBack( GLX_GRIDVIEW_ID, FETCHER_ITEM_S );
+        id = EGlxCmdHandled;
+        break ;
         
     case EGlxCmdAlbumListOpen :
+    case EGlxCmdFetcherAlbumListOpen:        
     case EGlxCmdBack :
         mStateManager->removeCurrentModel();
         mStateManager->previousState();
         id = EGlxCmdHandled;
         break;
-    	
+
+    case EGlxCmdFullScreenOpen :
+        mStateManager->nextState( GLX_FULLSCREENVIEW_ID, ALBUM_FULLSCREEN_S );
+        id = EGlxCmdHandled;
+    	break;
     default :
         break;
     }
--- a/ui/viewmanagement/statehandler/src/glxliststate.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxliststate.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -30,6 +30,7 @@
     qDebug("GlxListState::eventHandler action id = %d", id);
     switch(id) {
     case EGlxCmdAlbumListOpen :
+    case EGlxCmdFetcherAlbumListOpen:
 	    id = EGlxCmdHandled;
 	    break ;
 	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/viewmanagement/statehandler/src/glxorientationsensorfilter.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ?Description
+*
+*/
+
+#include "glxorientationsensorfilter.h"
+
+GlxOrientationSensorFilter::GlxOrientationSensorFilter()
+{
+    qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() enter" );
+    m_orientation = new QOrientationSensor();
+    m_orientation->addFilter( this );
+    m_orientation->start();
+    mOrient = QOrientationReading::Undefined ;
+    qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() exit" );
+}
+
+GlxOrientationSensorFilter::~GlxOrientationSensorFilter()
+{
+    m_orientation->stop();
+    delete m_orientation;
+}
+
+bool GlxOrientationSensorFilter::filter( QOrientationReading *reading )
+{
+    qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() filter " );
+    mOrient = reading->orientation() ;
+    qDebug("GlxOrientationSensorFilter::filter() orientation = %d", mOrient );
+    return false;
+}
--- a/ui/viewmanagement/statehandler/src/glxslideshowstate.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxslideshowstate.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -15,37 +15,53 @@
 *
 */
 
-#include <glxslideshowstate.h>
-#include <glxstatemanager.h>
-#include <glxcommandhandlers.hrh>
 #include <QDebug>
 
+#include "glxslideshowstate.h"
+#include "glxstatemanager.h"
+#include "glxcommandhandlers.hrh"
+#include "glxorientationsensorfilter.h"
+
 GlxSlideShowState::GlxSlideShowState(GlxStateManager *stateManager, GlxState *preState) : GlxState(GLX_SLIDESHOWVIEW_ID, preState)
 {
     mStateManager = stateManager;
+	mOrientSensorFilter = NULL;
+    //mOrientSensorFilter = new GlxOrientationSensorFilter();
     mState = NO_SLIDESHOW_S;
 }
 
 void GlxSlideShowState::eventHandler( qint32 &id )
 {
-    qDebug("GlxSlideShowState::GlxSlideShowState() action id = %d", id);	
+    qDebug("GlxSlideShowState::GlxSlideShowState() action id = %d", id);
+    
+    /*switch ( id ) {
+    case EGlxCmdBack :
+        if ( mOrientSensorFilter->orientation() == QOrientationReading::TopUp ) {
+            id = EGlxCmdPlayBackAnim ;
+        }
+        break;
+        
+    default :
+        break ;
+    }*/
     
     if ( mState == SLIDESHOW_ALBUM_ITEM_S  ) {
         albumItemEventHandler( id );
     }   
 }
 
-void GlxSlideShowState::albumItemEventHandler( qint32 &id )
+void GlxSlideShowState::albumItemEventHandler( qint32 &commandId )
 {
-    switch ( id ) {
+    switch ( commandId ) {
     /* in the case of slide show play through list view item specfice menu option, a new model was
      * created so first remove the current model and then go back to pervious state 
      */    
+    case EGlxCmdSlideShowBack :
     case EGlxCmdBack :
     case EGlxCmdEmptyData : //memory card was removed ( no data )
         mStateManager->removeCurrentModel();
         mStateManager->previousState();
-        id = EGlxCmdHandled;
+        commandId = EGlxCmdHandled;
         break;
         
     default :
@@ -53,3 +69,8 @@
     }    
 }
 
+GlxSlideShowState::~GlxSlideShowState()
+{
+    delete 	mOrientSensorFilter;
+}
+
--- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -51,7 +51,7 @@
 #include "glxplugincommandid.hrh"
 #include "glxlog.h"
 #include "glxtracer.h"
-
+#include <glximageviewermanager.h>
 
 GlxStateManager::GlxStateManager() 
     : mAllMediaModel( NULL ), 
@@ -121,38 +121,50 @@
     return QObject::eventFilter(obj, event);
 }
 
+void GlxStateManager::launchFetcher()
+{
+    qDebug("GlxStateManager::launchFetcher");
+    mCurrentState = createState(GLX_GRIDVIEW_ID);
+    mCurrentState->setState(FETCHER_ITEM_S);
+    
+    createModel(GLX_GRIDVIEW_ID);
+    mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
+}
+
 void GlxStateManager::launchApplication()
 {
     qDebug("GlxStateManager::launchApplication");   
-     bool activitySuccess = false;  
+    bool activitySuccess = false;  
     //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S)
-     HbApplication* app = qobject_cast<HbApplication*>(qApp);
-     if(app->activateReason() == Hb::ActivationReasonActivity) {
-          activitySuccess = launchActivity();
-     }
-     if( !activitySuccess ) { 
-    mCurrentState = createState( GLX_GRIDVIEW_ID );
-    mCurrentState->setState( ALL_ITEM_S );
-       
-    int leftCount = mTNObserver->getTNLeftCount() ;
-    if (  leftCount > 0  ) {
-        mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
-        launchProgressDialog();
-    }
-    else {
-        createModel( GLX_GRIDVIEW_ID );
-        mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
+    HbApplication* app = qobject_cast<HbApplication*>(qApp);
+    if(app->activateReason() == Hb::ActivationReasonActivity) {
+        activitySuccess = launchActivity();
     }
     
-    mTNObserver->startTNObserving() ; 
+    if( !activitySuccess ) { 
+        mCurrentState = createState( GLX_GRIDVIEW_ID );
+        mCurrentState->setState( ALL_ITEM_S );
+       
+        int leftCount = mTNObserver->getTNLeftCount() ;
+        if (  leftCount > 0  ) {
+            mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel );
+            launchProgressDialog();
+        }
+        else {
+            createModel( GLX_GRIDVIEW_ID );
+            mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel );
+        }    
+        mTNObserver->startTNObserving() ; 
+    }
+    
+    HbActivityManager* activityManager = app->activityManager();
+    bool ok = activityManager->removeActivity("PhotosMainView");
+    if ( !ok )
+    {
+         qDebug("launchapplication::Remove activity failed" );
+    } 
 }
-     HbActivityManager* activityManager = app->activityManager();
-     bool ok = activityManager->removeActivity("PhotosMainView");
-     if ( !ok )
-     {
-         qDebug("launchapplication::Remove activity failed" );
-     } 
-}
+
 bool GlxStateManager::launchActivity()
 {
     HbApplication* app = qobject_cast<HbApplication*>(qApp);
@@ -207,14 +219,15 @@
     mActionHandler = new GlxActionHandler();
     connect ( mViewManager, SIGNAL(externalCommand(int )), this, SIGNAL(externalCommand(int )) );
     mViewManager->setupItems();
-        switch(mSaveActivity.value("ID")){
+    switch( mSaveActivity.value( "ID" ) ){
         case GLX_LISTVIEW_ID:
             mViewManager->updateToolBarIcon(GLX_ALBUM_ACTION_ID);
             break;
+            
         case GLX_GRIDVIEW_ID:
         default:
-    		mViewManager->updateToolBarIcon(GLX_ALL_ACTION_ID);
-        }
+            mViewManager->updateToolBarIcon(GLX_ALL_ACTION_ID);
+    }
 }
 
 void GlxStateManager::updateTNProgress( int count)
@@ -231,8 +244,6 @@
     
     if ( isProgressbarRunning ){
         if ( count == 0 ) {
-            createModel( mCurrentState->id() );
-            mViewManager->setModel( mCurrentModel );
             vanishProgressDialog();
         }
         else {
@@ -240,32 +251,43 @@
         }
     }   
 }
+
+void GlxStateManager::thumbnailPopulated()
+{
+    mViewManager->setModel( mCurrentModel );
+    isProgressbarRunning = false;
+    mViewManager->updateProgressDialog( 0 );  
+    disconnect ( mCurrentModel, SIGNAL( thumbnailPopulated() ), this, SLOT( thumbnailPopulated() ) );
+}
+
 void GlxStateManager::saveData()
 {
     if( (mCurrentState->id() == GLX_GRIDVIEW_ID && mCurrentState->state() == ALL_ITEM_S) || mCurrentState->id() == GLX_LISTVIEW_ID ) {
-    mSaveActivity.insert("ID",mCurrentState->id()); 
-    mSaveActivity.insert("InternalState",mCurrentState->state());
-    if(mCurrentModel)
-    {
-    	QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex );
-    	if ( variant.isValid() &&  variant.canConvert<int> () ) {
-         mSaveActivity.insert("VisibleIndex",variant.value<int>());
-    }
+        mSaveActivity.insert("ID",mCurrentState->id()); 
+        mSaveActivity.insert("InternalState",mCurrentState->state());
+        if(mCurrentModel) {
+            QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex );
+            if ( variant.isValid() &&  variant.canConvert<int> () ) {
+                mSaveActivity.insert("VisibleIndex",variant.value<int>());
+            }
+ 		}
+ 		else {
+ 			mSaveActivity.insert("VisibleIndex",0);
  		}
- 		else
- 			   mSaveActivity.insert("VisibleIndex",0);
-    HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
-    QVariantHash metadata;
-    HbMainWindow *window = hbInstance->allMainWindows().first();
-    metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect()));
-
-     QByteArray serializedModel;
-     QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append);
-     stream << mSaveActivity;
-    bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata);
-     if ( !ok )
-     {
-        qDebug("SaveData::Add activity failed" );
+    
+        HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
+        QVariantHash metadata;
+        HbMainWindow *window = hbInstance->allMainWindows().first();
+        metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect()));
+        
+        QByteArray serializedModel;
+        QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append);
+        stream << mSaveActivity;
+        
+        bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata);
+        if ( !ok )
+        {
+            qDebug("SaveData::Add activity failed" );
         }
     }
 }
@@ -303,6 +325,7 @@
     GlxState *state = mCurrentState; // To delete the current state later  
 
     if ( mCurrentState->previousState() == NULL ) { //In the case only one state in stack then exit from the application
+        saveImage(); // save image if it is in private folder
         exitApplication() ;
         return ;
     }
@@ -321,7 +344,34 @@
     }
     delete state;
 }
-   
+
+void GlxStateManager::saveImage()
+    {
+    CGlxImageViewerManager *imageViewerInstance = CGlxImageViewerManager::InstanceL();
+    if(imageViewerInstance->IsPrivate())
+        {
+        HBufC* imagePath = imageViewerInstance->ImageUri();
+		QString srcPath = QString::fromUtf16(imagePath->Des().Ptr(),imagePath->Length());
+		QString imageName = srcPath.section('\\', -1);
+		QString imagesFolderPath("c:/data/images/");
+		QString destPath;
+		destPath.append(imagesFolderPath);
+		destPath.append(imageName);
+		int cnt = 1;
+		qDebug() << "GlxStateManager::saveImage path before while = "<< destPath;
+		while(!QFile::copy(srcPath,destPath))
+			{
+			QString filename = imageName.section('.', 0,0);
+			QString ext = imageName.section('.', -1);
+			destPath.clear();
+			destPath = imagesFolderPath + filename + QString::number(cnt) + "." + ext;
+			qDebug() << "GlxStateManager::saveImage path = "<< destPath;
+			cnt++;
+			}
+        }
+    imageViewerInstance->Close();
+    }
+	
 void GlxStateManager::goBack(qint32 stateId, int internalState)
 {
     qDebug("GlxStateManager::goBack()");
@@ -422,23 +472,23 @@
 void GlxStateManager::launchProgressDialog()
 {
     TRACER("GlxStateManager::launchProgressDialog() ");
-    //HbMainWindow *window = hbInstance->allMainWindows().first();
-    //window->setAutomaticOrientationEffectEnabled( true );
     
     QCoreApplication::instance()->installEventFilter( this );
-    mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() );
+    if ( isProgressbarRunning ) {
+        mViewManager->updateProgressDialog( mTNObserver->getTNLeftCount() );
+    }
+    else {
+        mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() );
+    }
     isProgressbarRunning = true ;
 }
 
 void GlxStateManager::vanishProgressDialog()
 {
     TRACER("GlxStateManager::vanishProgressDialog() ");
-    //HbMainWindow *window = hbInstance->allMainWindows().first();
-    //window->setAutomaticOrientationEffectEnabled( false );
-    
     QCoreApplication::instance()->removeEventFilter( this );
-    isProgressbarRunning = false;
-    mViewManager->updateProgressDialog( 0 );    
+    createModel( mCurrentState->id() );
+    connect ( mCurrentModel, SIGNAL( thumbnailPopulated() ), this, SLOT( thumbnailPopulated() ) );
 }
 
 GlxState * GlxStateManager::createState(qint32 stateId)
@@ -538,6 +588,7 @@
     
     switch( internalState) {
     case ALL_ITEM_S :
+	case FETCHER_ITEM_S:
         if ( mAllMediaModel == NULL ) {
             modelParm.setCollection( KGlxCollectionPluginAllImplementationUid );
             modelParm.setDepth(0);
@@ -550,6 +601,7 @@
         break;
         
     case ALBUM_ITEM_S :
+    case FETCHER_ALBUM_ITEM_S :    
         if ( dir != BACKWARD_DIR ) { 
             modelParm.setCollection( KGlxAlbumsMediaId );
             modelParm.setDepth(0);
@@ -586,17 +638,30 @@
         changeState( GLX_GRIDVIEW_ID, ALL_ITEM_S );
         id = EGlxCmdHandled;
         break;
+
+    case EGlxCmdFetcherAllGridOpen :
+        changeState( GLX_GRIDVIEW_ID, FETCHER_ITEM_S );
+        id = EGlxCmdHandled;
+        break;
     	
     case EGlxCmdAlbumListOpen:
         changeState( GLX_LISTVIEW_ID, -1 );
         id = EGlxCmdHandled;
         break;
-    	
+    case EGlxCmdFetcherAlbumListOpen:
+        changeState( GLX_LISTVIEW_ID, FETCHER_ALBUM_S );
+        id = EGlxCmdHandled;
+        break;
+        
     case EGlxCmdAlbumGridOpen:
         nextState( GLX_GRIDVIEW_ID, ALBUM_ITEM_S );
         id = EGlxCmdHandled;
         break;
-      
+    case EGlxCmdFetcherAlbumGridOpen:
+        nextState( GLX_GRIDVIEW_ID, FETCHER_ALBUM_ITEM_S );
+        id = EGlxCmdHandled;
+        break;
+        
     case EGlxCmdFirstSlideshow :
         //play the slide show with first item
         mCurrentModel->setData( mCurrentModel->index(0, 0), 0, GlxFocusIndexRole );
@@ -639,6 +704,7 @@
     }
     	
     case EGlxCmdBack :
+    case EGlxCmdSlideShowBack :
     	previousState();
     	id = EGlxCmdHandled;
     	break;
@@ -678,19 +744,28 @@
 		}
         break;
         
-   case EGlxCmdMarkAll:
-   case EGlxCmdUnMarkAll:
-   case EGlxCmd3DEffectOn:
-   case EGlxCmd3DEffectOff:
-       mViewManager->handleUserAction(mCurrentState->id(), id);
+   case EGlxCmdMarkAll :
+   case EGlxCmdUnMarkAll :
+   case EGlxCmd3DEffectOn :
+   case EGlxCmd3DEffectOff :
+   case EGlxCmdPlayBackAnim :
+       mViewManager->handleUserAction( mCurrentState->id(), id );
        id = EGlxCmdHandled;
        break;
        
    case EGlxCmdSetupItem :
        emit setupItemsSignal();
        break;
+   
+   case EGlxCmdFetcherSelect: 
+       {
+       QModelIndex selectedIndex = mCurrentModel->index(mCurrentModel->data(mCurrentModel->index(0,0),GlxFocusIndexRole).value<int>(),0);
+       emit gridItemSelected(selectedIndex,*mCurrentModel);
+       id = EGlxCmdHandled;
+       }
+       break;
        
-    default :
+   default :
         mActionHandler->handleAction(id,mCollectionId);
     	break;
     }	
--- a/ui/viewmanagement/statehandler/statehandler.pro	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/statehandler/statehandler.pro	Fri Aug 06 20:44:25 2010 +0530
@@ -19,6 +19,8 @@
 DEPENDPATH += . inc src
 
 CONFIG += hb
+CONFIG += mobility
+MOBILITY += sensors
 
 INCLUDEPATH += . \
             ../../inc \
@@ -30,8 +32,8 @@
             ../../uiengine/model/mediamodel/inc \
             ../../uiengine/model/listmodel/inc \
             ../viewmanager/inc \
-            ../../commandhandlers\commandhandlerbase\inc \
-            ../../commandhandlers\commoncommandhandlers\inc
+            ../../commandhandlers/commandhandlerbase/inc \
+            ../../commandhandlers/commoncommandhandlers/inc
             
 DEFINES += BUILD_STATEMANAGER
 
@@ -50,7 +52,9 @@
         -lglxloggerqt.dll \
         -lglxcommoncommandhandlers.dll \
         -lglxlogging.dll \
-        -lglxcommon.dll
+        -lglxcommon.dll \
+	-lglximageviewermanager.dll
+
 
 # Input
 HEADERS += inc/glxbasestate.h \
@@ -63,7 +67,8 @@
            inc/glxslideshowstate.h \
            inc/glxactionhandler.h \
            inc/glxcommandhandlerfactory.h \
-           inc/glxtnobserver.h
+           inc/glxtnobserver.h \
+           inc/glxorientationsensorfilter.h
 
 SOURCES += src/glxbasestate.cpp \
            src/glxfullscreenstate.cpp \
@@ -75,7 +80,8 @@
            src/glxslideshowstate.cpp \
            src/glxactionhandler.cpp \
            src/glxcommandhandlerfactory.cpp \
-           src/glxtnobserver.cpp
+           src/glxtnobserver.cpp \
+           src/glxorientationsensorfilter.cpp
 
 DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
 
--- a/ui/viewmanagement/viewmanager/inc/glxmenumanager.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/viewmanager/inc/glxmenumanager.h	Fri Aug 06 20:44:25 2010 +0530
@@ -34,6 +34,19 @@
    GlxGridView3DEffect
 };
 
+//Fullscreen view option menu
+enum {
+   GlxFullScreenViewSend,
+   GlxFullScreenViewSlideShow,
+#ifndef __WINSCW__
+   GlxFullScreenViewUseImage,
+   GlxFullScreenViewMenuRotate,
+   GlxFullScreenViewCrop,
+#endif
+   GlxFullScreenViewAddToAlbum,
+   GlxFullScreenViewRemoveoAlbum
+};
+
 class GlxMenuManager : public QObject
 {
 Q_OBJECT
@@ -71,5 +84,7 @@
 	HbMenu *mContextMenu;
 	HbMenu* mSubMenu;
 	HbMenu* m3DEffectSubMenu;
+	HbMenu* mRotateSubMenu;
+	HbMenu* mUseImgSubMenu;
 	GlxSettingInterface *mSettings;
 };
--- a/ui/viewmanagement/viewmanager/inc/glxviewmanager.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/viewmanager/inc/glxviewmanager.h	Fri Aug 06 20:44:25 2010 +0530
@@ -24,6 +24,7 @@
 #include <QList>
 #include <hbeffect.h>
 #include "glxuistd.h"
+#include <QModelIndex>
 
 class GlxView;
 class HbMainWindow;
@@ -54,97 +55,132 @@
     GLX_ALL_ID             = 0xFF
 } glxToolBarActionIds;
 
+/**
+ * view manager class
+ */
 class GLX_VIEWMANAGER_EXPORT GlxViewManager : public QObject
 {
 Q_OBJECT
 
 public :
+    /**
+     * Constructor
+     */
     GlxViewManager();
+    /**
+     * Destructor
+     */
     ~GlxViewManager();
+
     void setupItems( );
+
+    /**
+     * launch application
+     * @param id viewId
+     * @param model model to be used for the view
+     */
     void launchApplication(qint32 id, QAbstractItemModel *model);
+
+    /**
+     * add back key action
+     */
     void addBackSoftKeyAction();
-/*
- * This will return the orientation of main window
- */    
+
+    /**
+     * This will return the orientation of main window
+     */    
     Qt::Orientation orientation() const;
-/*
- * This will deactivate the current function
- * to be used only in cases where External launch was done
- */     
+
+    /**
+     * This will deactivate the current function
+     * to be used only in cases where External launch was done
+     */     
     void deactivateCurrentView();
-/*
- *  To update the tool bar enable and disable icon
- *  id = This should be selected toolbar tab id
- */    
+
+    /**
+     *  To update the tool bar enable and disable icon
+     *  id = This should be selected toolbar tab id
+     */    
     void updateToolBarIcon(int id);
-/*
- * Enable the marking mode of the view to select multiple item
- */    
+
+    /**
+     * Enable the marking mode of the view to select multiple item
+     */    
     void enterMarkingMode(qint32 viewId);
-/*
- * Enable the normal mode of the view
- */    
+
+    /**
+     * Enable the normal mode of the view
+     */    
     void exitMarkingMode(qint32 viewId);
-/*
- * Pass the user action to the view
- */    
+
+    /**
+     * Pass the user action to the view
+     */    
     void handleUserAction(qint32 viewId, qint32 commandId);
-/*
- *  Return the selection model to the user
- */    
+
+    /**
+     *  Return the selection model to the user
+     */    
     QItemSelectionModel * getSelectionModel(qint32 viewId);
-/*
- * To set the model of current view
- */
+
+    /**
+     * To set the model of current view
+     */
     void setModel( QAbstractItemModel *model );
 	    
 signals :
-/*
- *  emit the user action
- */
+    /**
+     *  emit the user action
+     */
     void actionTriggered(qint32 id);
     void externalCommand(int cmdId);
     void applicationReady();
 
 public slots:
-/*
- *  This public slot is used to launch the view
- */
+    /**
+     *  This public slot is used to launch the view
+     */
     void launchView (qint32 id, QAbstractItemModel *model);
-/*
- *  It is over load slot and used to run the animation for view transition and launch the view
- */    
+
+    /**
+     *  It is over load slot and used to run the animation for view transition and launch the view
+     */    
     void launchView (qint32 id, QAbstractItemModel *model, GlxEffect effect, GlxViewEffect viewEffect);
     
     void launchProgressDialog( int maxValue );
     void updateProgressDialog( int currentValue);
-/*
- *  It will removed and deleted the view.
- *  Currently It is not used so may be in future, It will be removed.
- */    
+
+    /**
+     *  It will removed and deleted the view.
+     *  Currently It is not used so may be in future, It will be removed.
+     */    
     void destroyView (qint32 id);
-/*
- *  It will pass the user action to the state manager
- */    
+
+    /**
+     *  It will pass the user action to the state manager
+     */    
     void actionProcess(qint32 id);
-/*
- *  It will pass the user selected menu action to state manager 
- *  check for depricated with actionProcess api
- */    
+
+    /**
+     *  It will pass the user selected menu action to state manager 
+     *  check for depricated with actionProcess api
+     */    
     void handleMenuAction(qint32 commandId);
-/*
- *  It will pass the user action ( tool bar + back ) to state manager
- */    
+
+    /**
+     *  It will pass the user action ( tool bar + back ) to state manager
+     */    
     void handleAction();
     void cancelTimer();
-/*
- *  This is slot used for the animation finished call back
- */    
+
+    /**
+     *  This is slot used for the animation finished call back
+     */    
     void effectFinished( );
-/*
- *  This will open the item specifc Menu
- */    
+
+    /**
+     *  This will open the item specifc Menu
+     */    
     void itemSpecificMenuTriggered(qint32,QPointF );
     
     void handleReadyView();
@@ -156,46 +192,60 @@
    void hideProgressDialog();
    
 private:
-/*
- * It will create and return the view
- */
+    /**
+     * It will create and return the view
+     */
     GlxView * resolveView (qint32 id);
-/*
- *  It will find a view from the view list and return it
- */    
+
+    /**
+     *  It will find a view from the view list and return it
+     */    
     GlxView * findView (qint32 id);
-/*
- *  It will deativate the current view
- */    
+
+    /**
+     *  It will deativate the current view
+     */    
     void deActivateView();
-/*
- *  It will activate and show the view
- */
+
+    /**
+     *  It will activate and show the view
+     */
     void activateView();
-/*
- *  It will create the grid and list view tool bar action
- */    
+
+    /**
+     *  It will create the grid and list view tool bar action
+     */    
     void createActions();
-/*
- *  It will create the marking mode toll bar action
- */    
+
+    /**
+     *  It will create the marking mode toll bar action
+     */    
     void createMarkingModeActions(); 
-/*
- *  It will create the grid and list view tool bar
- */    
+
+    /**
+     *  It will create the grid and list view tool bar
+     */    
     void createToolBar();
-/*
- *  It will create the marking mode tool bar
- */    
+
+    /**
+     *  It will create the marking mode tool bar
+     */    
     void createMarkingModeToolBar();
-/*
- *  It will add all the view manager related connection
- */    
+
+    /**
+     *  It will add all the view manager related connection
+     */    
     void addConnection();
-/*
- *  It will remove all the view manager releted connection
- */    
+
+    /**
+     *  It will remove all the view manager releted connection
+     */    
     void removeConnection();
+    
+    /**
+     * 
+     */    
+    int getSubState();
 
 private:
     QList<GlxView *> mViewList;  //It contains all the view created by it self.
--- a/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -73,6 +73,10 @@
 
 void GlxMenuManager::addMenu(qint32 viewId, HbMenu* menu)
 {
+    int curState = viewSubState();
+    if( curState == FETCHER_ITEM_S || curState == FETCHER_S || curState == FETCHER_ALBUM_S ||  curState == IMAGEVIEWER_S)
+        return;
+    
     switch(viewId) {
     case GLX_GRIDVIEW_ID:
         CreateGridMenu( menu );
@@ -152,16 +156,16 @@
     action->setObjectName( "GridMenu Delete" );
     connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
     
-    m3DEffectSubMenu = menu->addMenu("3D Effect");
+    m3DEffectSubMenu = menu->addMenu(GLX_GRID_OPT_EFFECT);
     m3DEffectSubMenu->setObjectName( "GridMenu 3DEffect" );
     
-    action = m3DEffectSubMenu->addAction("On"); 
+    action = m3DEffectSubMenu->addAction(GLX_GRID_OPT_ON); 
     action->setCheckable(ETrue);
     action->setData(EGlxCmd3DEffectOn);
     action->setObjectName( "GridMenu 3DOn" );
     connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
     
-    action = m3DEffectSubMenu->addAction("Off");
+    action = m3DEffectSubMenu->addAction(GLX_GRID_OPT_OFF);
     action->setCheckable(ETrue);
     action->setData(EGlxCmd3DEffectOff);
     action->setObjectName( "GridMenu 3DOff" );
@@ -208,17 +212,17 @@
 	CFeatureDiscovery* featManager = CFeatureDiscovery::NewL();
     if(featManager->IsFeatureSupportedL(KFeatureIdFfImageEditor))
         {
-        mSubMenu = menu->addMenu(GLX_MENU_USE_IMAGE);
-        action = mSubMenu->addAction(GLX_MENU_SET_WALLPAPER); 
+        mUseImgSubMenu = menu->addMenu(GLX_MENU_USE_IMAGE);
+        action = mUseImgSubMenu->addAction(GLX_MENU_SET_WALLPAPER); 
         action->setData(EGlxCmdSetWallpaper);
         connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); 
         
             
-		mSubMenu = menu->addMenu(GLX_MENU_ROTATE);
-		action = mSubMenu->addAction(GLX_MENU_90_CW); 
+        mRotateSubMenu = menu->addMenu(GLX_MENU_ROTATE);
+		action = mRotateSubMenu->addAction(GLX_MENU_90_CW); 
 		action->setData(EGlxCmdRotateImgCW);
 		connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); 
-		action = mSubMenu->addAction(GLX_MENU_90_CCW);
+		action = mRotateSubMenu->addAction(GLX_MENU_90_CCW);
 		action->setData(EGlxCmdRotateImgCCW);
 		connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
 		
@@ -233,6 +237,10 @@
     action->setData(EGlxCmdAddToAlbum);
     action->setObjectName( "FSMenu AddToAlbum" );
     connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+	action = menu->addAction( GLX_OPTION_REMOVE_FROM_ALBUM );
+	action->setData( EGlxCmdRemoveFrom );
+	action->setObjectName( "FSMenu RemoveAlbum" );
+	connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 }
 
 void GlxMenuManager::createSlideShowMenu( HbMenu* menu )
@@ -256,9 +264,11 @@
 
 int GlxMenuManager::viewSubState()
 {
-    QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );    
-    if ( variant.isValid() &&  variant.canConvert<int> () ) {
-        return variant.value<int>() ;
+    if(mModel){
+        QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );
+        if ( variant.isValid() &&  variant.canConvert<int> () ) {
+            return variant.value<int>() ;
+        }
     }
     return -1;
 }
@@ -335,6 +345,34 @@
         setAllActionVisibility( actionList, TRUE );
         isAllActionDisable = FALSE;
     }    
+    
+
+
+#ifndef __WINSCW__
+    if ( state != IMAGEVIEWER_S)
+        {
+        int frameCount = (mModel->data(mModel->index((
+                mModel->data(mModel->index(0, 0),GlxFocusIndexRole)).value<int> (), 0),
+                        GlxFrameCount)).value<int>();
+        bool setVisible = true;
+        if (frameCount > 1) 
+            {
+            //Check for animated image, if found hide editor specific menu
+            setVisible = false;
+            }
+		//If Use Image contains any sub menu item other then related to Editor
+		//then individual sub menu item needs to be hidden rather then
+		//complete "Use Image"menu
+        actionList[GlxFullScreenViewUseImage]->setVisible(setVisible);
+        actionList[GlxFullScreenViewMenuRotate]->setVisible(setVisible);
+        actionList[GlxFullScreenViewCrop]->setVisible(setVisible);
+        }
+#endif    
+	if( state != ALBUM_FULLSCREEN_S ){
+		actionList[GlxFullScreenViewRemoveoAlbum]->setVisible(false);
+	}else{
+		actionList[GlxFullScreenViewRemoveoAlbum]->setVisible(true);
+	}
 }
 
 void GlxMenuManager::menuItemSelected()
@@ -351,9 +389,16 @@
     mContextMenu = new HbMenu();
     mContextMenu->setObjectName( "ContextMenu" );
     HbAction *action = NULL;
-
     switch ( viewId ) {
 	    case GLX_GRIDVIEW_ID :
+			if ( viewSubState() == FETCHER_ITEM_S || viewSubState() == FETCHER_ALBUM_ITEM_S) {        
+                action = mContextMenu->addAction( GLX_MENU_OPEN );
+                action->setData( EGlxCmdFetcherFullScreenOpen );
+                action->setObjectName( "CM Open1" );
+                connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
+				break;
+	        }
+			
 	        action = mContextMenu->addAction( GLX_MENU_OPEN );
             action->setData( EGlxCmdFullScreenOpen );
             action->setObjectName( "CM Open" );
@@ -369,6 +414,11 @@
 	        action->setObjectName( "CM SlideShow" );
 	        connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 
+	        action = mContextMenu->addAction( GLX_MENU_ADD_TO_ALBUM );
+		    action->setData( EGlxCmdContextAddToAlbum );
+		    action->setObjectName( "CM AddToAlbum" );
+		    connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
+		    
 	        if ( viewSubState() == ALBUM_ITEM_S ) {        
                 action = mContextMenu->addAction( GLX_OPTION_REMOVE_FROM_ALBUM );
                 action->setData( EGlxCmdContextRemoveFrom );
@@ -376,11 +426,6 @@
                 connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 	        }
 	        
-	        action = mContextMenu->addAction( GLX_MENU_ADD_TO_ALBUM );
-		    action->setData( EGlxCmdContextAddToAlbum );
-		    action->setObjectName( "CM AddToAlbum" );
-		    connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
-		    
 		    action = mContextMenu->addAction( GLX_MENU_DELETE );
 		    action->setData( EGlxCmdContextDelete );
 		    action->setObjectName( "CM Delete" );
@@ -388,6 +433,14 @@
 			break;
 	    	
 	    case GLX_LISTVIEW_ID : {
+            if ( viewSubState() == FETCHER_ALBUM_S ) {        
+                action = mContextMenu->addAction( GLX_MENU_OPEN );
+                action->setData( EGlxCmdFetcherAlbumGridOpen );
+                action->setObjectName( "CM Open1" );
+                connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
+                break;
+            }
+	    
 	        int count = 0;
             QVariant variant = mModel->data( mModel->index(0,0), GlxListItemCount );    
 	        if ( variant.isValid() &&  variant.canConvert<int> () ) {
--- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -40,7 +40,8 @@
 #include <glxmainwindoweventfilter.h>
 #include <xqsettingsmanager.h>
 #include <xqsettingskey.h>
-
+#include <glxviewids.h>
+#include "glxmodelroles.h"
 
 GlxViewManager::GlxViewManager() 
     : mBackAction( NULL ), 
@@ -52,22 +53,23 @@
       mProgressDialog( NULL )
 {
     qDebug("GlxViewManager::GlxViewManager() ");
-    PERFORMANCE_ADV ( viewMgrD1, "main window creation time" ) {
-        //check the case when application launch through some other application (view plugin)
-        mMainWindow = GlxExternalUtility::instance()->getMainWindow();
-        if(mMainWindow == NULL)	{
-            mMainWindow = new HbMainWindow();
-            connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() ));
-        }
-		//Without this Zoom Does not work
 
-		mWindowEventFilter = new GlxMainWindowEventFilter;
-		mMainWindow->scene()->installEventFilter(mWindowEventFilter);
-		mMainWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
-		mMainWindow->viewport()->grabGesture(Qt::PinchGesture);
+    //check the case when application launch through some other application (view plugin)
+    mMainWindow = GlxExternalUtility::instance()->getMainWindow();
+    if(mMainWindow == NULL)	{
+        mMainWindow = new HbMainWindow();
     }
+    connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() ));
+    //Without this Zoom Does not work
+
+    mWindowEventFilter = new GlxMainWindowEventFilter;
+    mMainWindow->scene()->installEventFilter(mWindowEventFilter);
+    mMainWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
+    mMainWindow->viewport()->grabGesture(Qt::PinchGesture);
+
     HbStyleLoader::registerFilePath(":/data/photos.css");
 }
+
 void GlxViewManager::handleReadyView()
 {
     emit actionTriggered( EGlxCmdSetupItem );
@@ -77,21 +79,18 @@
 
 void GlxViewManager::setupItems( )
 {
-    mMenuManager = new GlxMenuManager(mMainWindow);
     addBackSoftKeyAction();    
-    addConnection();    
-    mMenuManager->addMenu( mView->viewId(), mView->menu() );
-    mMenuManager->setModel( mModel );
+    addConnection();
 }
 
 void GlxViewManager::launchApplication(qint32 id, QAbstractItemModel *model)
 {
     mModel = model;
-    PERFORMANCE_ADV ( viewMgrD1, "View Creation time" ) {
-        mView = resolveView(id);
-    }
+    mMenuManager = new GlxMenuManager( mMainWindow );  //menu manager should be created before view.
+    mMenuManager->setModel( mModel );
+    mView = resolveView( id );
+
     createToolBar();
-    mView->addToolBar(mViewToolBar);
     
     /* We are showing the toolBar before activating the 
      * view. This is done to avoid the animation effect seen otherwise 
@@ -103,14 +102,11 @@
      * 
      */
     mView->activate();
-    
-    PERFORMANCE_ADV ( viewMgrD3, "Set Model time")  
-        mView->setModel(mModel);
-        
-    PERFORMANCE_ADV( viewMgrD4, "View Display time") {
-        mMainWindow->setCurrentView(mView, false);
-        mMainWindow->showFullScreen();           
-    }    
+    mView->setModel( mModel );
+    //visibility of tool bar dependes of view internal state so add the toolbar after setting model
+    mView->addToolBar( mViewToolBar ); 
+    mMainWindow->setCurrentView( mView, false );
+    mMainWindow->showFullScreen();
 }
 
 void GlxViewManager::handleMenuAction(qint32 commandId)
@@ -121,6 +117,7 @@
 void GlxViewManager::handleAction()
 {
     HbAction *action = qobject_cast<HbAction*>(sender());
+    action->setChecked( TRUE );
     qint32 commandId = action->data().toInt();
     emit actionTriggered(commandId);
 }
@@ -140,16 +137,13 @@
     return mMainWindow->orientation();
 }
 
-void GlxViewManager::launchView(qint32 id, QAbstractItemModel *model)
+void GlxViewManager::launchView( qint32 id, QAbstractItemModel *model )
 {
-    qDebug("GlxViewManager::launchView Id = %d ", id);
+    qDebug( "GlxViewManager::launchView Id = %d ", id );
     mModel = model;
     deActivateView();
-    
-    PERFORMANCE_ADV ( viewMgrD1, "View Creation time" ) {
-        mView = resolveView(id);
-    }
-    
+    mMenuManager->setModel( mModel ); //set the model to get the item type info and row count info
+    mView = resolveView( id );
     activateView();
 }
 
@@ -176,7 +170,8 @@
     //partially clean the view so that animation run smoothly
     GlxView *curr_view = (GlxView *) mMainWindow->currentView();
     curr_view->resetView();
-    
+
+    mMenuManager->setModel( model ); //set the model to get the item type info and row count info
     mView = resolveView(id);
     //partially initialise the view so that animation run smoothly
     mView->initializeView( model, curr_view );
@@ -201,6 +196,10 @@
         }
     }
     
+    if ( effect == GRID_TO_FULLSCREEN ) {
+        mViewToolBar->setZValue( item->zValue() - 5 );
+    }
+    
     //error check
     if ( itemList.count() > 0 ) {
         mEffectEngine->runEffect(itemList, effect);
@@ -247,7 +246,7 @@
     //To:Do temp code remove later
     if ( mProgressDialog ) {
         i = ++i % 10;
-        icon = HbIcon( QString( ":/data/wait/qgn_graf_ring_wait_%1.svg" ).arg( i + 1, 2, 10, QChar( '0' ) ) );
+        icon = HbIcon( QString( ":/data/Wait/qgn_graf_ring_wait_%1.svg" ).arg( i + 1, 2, 10, QChar( '0' ) ) );
         mProgressDialog->setIcon(icon);
         
         int max = mProgressDialog->maximum() ;
@@ -285,22 +284,18 @@
     
     qDebug("GlxViewManager::updateToolBarIcon() action ID list %d count %d", id, count);
     
-    for ( int i = 0; i < count ; i++ )
-        {
+    for ( int i = 0; i < count ; i++ ) {
         qDebug("GlxViewManager::updateToolBarIcon() toolBarActionId %d value %d", toolBarActionId, ( id & toolBarActionId ) );
         //check and get the icon path
-        if ( ( id & toolBarActionId ) == toolBarActionId )
-            {
-            mActionList[i]->setCheckable(TRUE);
+        if ( ( id & toolBarActionId ) == toolBarActionId ) {
             mActionList[i]->setChecked(TRUE);                        
-            }
-        else 
-            {
+        }
+        else {
             mActionList[i]->setChecked(FALSE);
-            }
+        }
         //to get it the next action id to verify it is selecter or not
         toolBarActionId = toolBarActionId << 1; 
-        }
+    }
 }
 
 void GlxViewManager::checkMarked()
@@ -384,23 +379,22 @@
     }    
 }
 
-GlxView * GlxViewManager::resolveView(qint32 id)
+GlxView * GlxViewManager::resolveView( qint32 id )
 {
-    qDebug("GlxViewManager::resolveView %d", id);
+    qDebug("GlxViewManager::resolveView %d", id );
     GlxView *view = findView ( id );
     if ( view ) {
         return view ;
     }
     
-    view = GlxViewsFactory::createView(id, mMainWindow);
+    view = GlxViewsFactory::createView( id, mMainWindow );
     if ( view ) {
-        connect ( view, SIGNAL(actionTriggered(qint32 )), this, SLOT(actionProcess(qint32 )), Qt::QueuedConnection );
-        connect ( view, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ), this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ), Qt::QueuedConnection );
-        mViewList.append(view);
-        mMainWindow->addView(view);
-        if ( mMenuManager ) {
-            mMenuManager->addMenu( id, view->menu());
-        }
+        connect ( view, SIGNAL( actionTriggered( qint32 ) ), this, SLOT( actionProcess( qint32 ) ), Qt::QueuedConnection );
+        connect ( view, SIGNAL( itemSpecificMenuTriggered( qint32, QPointF ) ), this, SLOT( itemSpecificMenuTriggered( qint32, QPointF ) ), Qt::QueuedConnection );
+        mViewList.append( view );
+        mMainWindow->addView( view );
+        mMenuManager->addMenu( id, view->menu() );
+        
         if ( mBackAction ) {
             view->setNavigationAction( mBackAction );
         }
@@ -455,42 +449,53 @@
 void GlxViewManager::activateView()
 {
     qDebug("GlxViewManager::activateView()");
-        
-    PERFORMANCE_ADV ( viewMgrD2, "View Activation time") {
-        mView->addToolBar(mViewToolBar);
-        mView->activate();
-        mView->show();
-        mMenuManager->setModel( mModel ); //set the model to get the item type info and row count info
-    }        
-      
-    PERFORMANCE_ADV ( viewMgrD3, "Set Model time")  
-        mView->setModel(mModel);
-        
-    PERFORMANCE_ADV( viewMgrD4, "View Display time") {
-        mMainWindow->setCurrentView(mView, false);
-        mMainWindow->showFullScreen();           
-    }
+
+    mView->activate();
+    mView->show();
+    mView->setModel( mModel );
+    //visibility of tool bar dependes of view internal state so add the toolbar after setting model
+    mView->addToolBar( mViewToolBar );
+    mMainWindow->setCurrentView(mView, false);
+    mMainWindow->showFullScreen(); 
 }
 
 void GlxViewManager::createActions()
 {
     qDebug("GlxViewManager::createActions() " );
     mActionList.clear();  
+
+    int curSubstate = getSubState();    
     
     //create the All tool bar button action
     HbAction* allAction = new HbAction( this );
-    allAction->setData( EGlxCmdAllGridOpen );
+
+    if( curSubstate == FETCHER_ITEM_S ) {
+        allAction->setData( EGlxCmdFetcherAllGridOpen );
+    }else{
+        allAction->setData( EGlxCmdAllGridOpen );
+    }
+
     mActionList.append( allAction );    
     allAction->setIcon( HbIcon( GLXICON_ALL ) ) ;
     allAction->setObjectName( "All Action" );
        
     //create the Album tool bar button action
     HbAction* albumAction = new HbAction( this );
-    albumAction->setData( EGlxCmdAlbumListOpen );
+
+    if( curSubstate == FETCHER_ITEM_S ) {
+        albumAction->setData( EGlxCmdFetcherAlbumListOpen );
+    }else{
+        albumAction->setData( EGlxCmdAlbumListOpen );
+    }
+
     mActionList.append( albumAction );
     albumAction->setIcon( HbIcon( GLXICON_ALBUMS ) ) ;
     albumAction->setObjectName( "Album Action" );
-   
+	
+	//in case of fetcher no need to create other actions
+	if( curSubstate == FETCHER_ITEM_S ) {
+		return;
+		}	
     //create the album tool bar button action
     HbAction* cameraAction = new HbAction( this );
     cameraAction->setData( EGlxCmdCameraOpen );
@@ -574,6 +579,7 @@
     int count = mActionList.count();
     for ( int i = 0; i < count; i++ ) {
         connect( mActionList.at(i), SIGNAL(triggered( )), this, SLOT(handleAction( )) );
+        mActionList.at(i)->setCheckable( TRUE );
         mViewToolBar->addAction( mActionList.at(i) );      
     }
     qDebug("GlxViewManager::createToolBar() exit" );
@@ -672,7 +678,7 @@
     }
  
     if( mMainWindow != GlxExternalUtility::instance()->getMainWindow() ){
-        qDebug("GlxViewManager::~GlxViewManager remove view");
+        qDebug("GlxViewManager::~GlxViewManager delete mainwindow");
         delete mMainWindow;
     }
     delete mWindowEventFilter;
@@ -680,3 +686,15 @@
     qDebug("GlxViewManager::~GlxViewManager Exit");
 }
 
+int GlxViewManager::getSubState()
+{
+    int curSubstate = NO_GRID_S;    
+    
+    if ( mModel  ) {    
+        QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );    
+        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
+            curSubstate = variant.value<int>();
+        }
+    }
+    return curSubstate;
+}
--- a/ui/views/detailsview/src/glxdetailsview.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/detailsview/src/glxdetailsview.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -34,7 +34,7 @@
 #include <hbdocumentloader.h>
 #include <hbdataformmodelitem.h>
 #include <hbdataformviewitem.h>
-
+#include <hbparameterlengthlimiter.h>
 //--------------------------------------------------------------------------------------------------------------------------------------------
 #include "glxviewids.h"
 #include "glxicondefs.h" //Contains the icon names/Ids
@@ -44,7 +44,7 @@
 #include "glxfavmediamodel.h"
 #include "glxdocloaderdefs.h"
 #include <glxcommandhandlers.hrh>
-
+#include  "glxlocalisationstrings.h"
 #include "glxdetailstextedit.h"
 #include "glxdetailsicon.h"
 
@@ -499,12 +499,12 @@
     QDate date = (mModel->data(mModel->index(mModel->data(
             mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
             GlxDateRole)).value<QDate> ();
-    
-    datestring = QString("Date: ");
+        
     if (date.isNull() == FALSE)
         {
         OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" );
-        datestring.append(date.toString(dateFormat));
+        QString dateStringValue = date.toString(dateFormat);
+        datestring = hbTrId(GLX_DETAILS_DATE).arg(dateStringValue);
         }
 
     mDateLabel->setPlainText(datestring);
@@ -522,13 +522,14 @@
     QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index(
             0, 0), GlxFocusIndexRole).value<int> (), 0), GlxTimeRole)).value<
             QTime> ();
-    timestring = QString("Time: ");
+        
     if (timevalue.isNull() == FALSE)
         {
         OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setTime is not NULL" );
-        timestring.append(timevalue.toString(timeFormat));
+        QString timeStringValue = timevalue.toString(timeFormat);
+        timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue);
         }
-    mTimeLabel->setPlainText(timestring);
+     mTimeLabel->setPlainText(timestring);
     }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
@@ -539,12 +540,10 @@
     int size = 0;
     size = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
             GlxFocusIndexRole).value<int> (), 0), GlxSizeRole)).value<int> ();
-    QString sizelabel;
-    QString sizestring;
-    sizelabel = QString("Size  : ");
-    sizestring = sizeinStrings(size);
-    sizelabel.append(sizestring);
-    mSizeLabel->setPlainText(sizelabel);
+    
+    QString sizeString;
+    sizeString = sizeinStrings(size);
+    mSizeLabel->setPlainText(sizeString);
     
    }
 
@@ -607,25 +606,21 @@
     if (size >= KBytesInGB)
         {
         int gbSize = size / KBytesInGB; // Size in GB
-        sizeString.setNum(gbSize);
-        sizeString.append("GB");
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_GB, gbSize);         
         }
     else if (size >= KBytesInMB)
         {
         int mbSize = size / KBytesInMB; // Size in MB
-        sizeString.setNum(mbSize);
-        sizeString.append("MB");
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_MB, mbSize);         
         }
     else if (size >= KBytesInKB)
         {
-        TInt kBsize = size / KBytesInKB; // bytes to kB
-        sizeString.setNum(kBsize);
-        sizeString.append("KB");
+        int kbSize = size / KBytesInKB; // Size in KB
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_KB, kbSize);
         }
     else
         {
-        sizeString.setNum(size);
-        sizeString.append("Bytes");
+         sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_BYTES, size);
         }
     return sizeString;
     }
--- a/ui/views/fullscreenview/inc/glxfullscreenview.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/fullscreenview/inc/glxfullscreenview.h	Fri Aug 06 20:44:25 2010 +0530
@@ -43,76 +43,252 @@
 class GlxZoomWidget;
 class GlxTvOutWrapper;
 
+/**
+ * Class Description
+ * This is full screen view class to show the image in fullscreen, zoom the image and
+ * browse the image through coverflow and imagstrip
+ */
 class GlxFullScreenView : public GlxView
 {
     Q_OBJECT
 public :
+    /**
+     * Constructor
+     * @param - HbMainWindow object
+     * @param - fullscreen docloader object
+     */
     GlxFullScreenView(HbMainWindow *window,HbDocumentLoader *DocLoader);
+    
+    /**
+     * Destructor
+     */
     ~GlxFullScreenView();
+    
+    /**
+     * activate()
+     * ///From GlxView
+     */
     void activate() ;
+    
+    /**
+     * deActivate()
+     * ///From GlxView
+     */
     void deActivate();
 
-    /*
-     * Initialize the coverflow and partially creates the coverflow with one image
+    /**
+     * initializeView() - Initialize the coverflow and partially creates the coverflow with one image
      * to make the widget light weight in order to make transition smooth
      * and also loads the widgets. 
+     * @param - pointer of model to retreive the view releted data
+     * @parm - previous view pointer to get the staus of fullscreen mode of the view
      */
     void initializeView( QAbstractItemModel *model, GlxView *preView );
     
-   /*
-     * resets the view, with just one icon being present in the widget
-     * to make the widget light weight in order to make
-     * transition smooth
+    /**
+     * resetView() - resets the view, with just one icon being present in the widget
+     * to make the widget light weight in order to make transition smooth
      */
     void resetView();
+    
+    /**
+     * setmodel() 
+     * ///from GlxView
+     */
     void setModel(QAbstractItemModel *model);
+    
+    /**
+     * setModelContext() - to set the context mode of the model.
+     */
     void setModelContext ( );
+    
+    /**
+     * cleanUp() - To clean the custom widgets.
+     */
     void cleanUp();
+    
+    /**
+     * getAnimationItem() - To return the animation object to play the view transition animation.
+     * @return pointer of widget on which animation are suppose to play.
+     */
     QGraphicsItem * getAnimationItem(GlxEffect transitionEffect);
     
     
 public slots:
-    void orientationChanged(Qt::Orientation);
+    /**
+     * orientationChanged() - Slot to upadte the layout when orientation of device has changed
+     * @param new orientation
+     */
+    void orientationChanged( Qt::Orientation );
+    
+    /**
+     * activateUI() - To show the ui content like status bar, toolbar, and imzge strip.
+     */
     void activateUI();
+    
+    /**
+     * hideUi() - To hide the ui content like status bar, toolbar, and imzge strip.
+     */
     void hideUi();
+    
+    /**
+     * changeSelectedIndex() - Call back when index is chnaged due to browsing of images in coverflow
+     * It will update the selected index in model and notify other widget about index changed.
+     * @param - index of new selected item.
+     */
     void changeSelectedIndex(const QModelIndex &index);
+    
+    /**
+     * indexChanged() - call back when index is changed from the image strip.
+     * It will update the selected index in model and notify other widget about index changed.
+     * @param - index of new selected item.  
+     */
     void indexChanged(const QModelIndex &index );
+    
+    /**
+     * scrollingStarted() - Call back function to get notification of when scrolling of
+     * image strip is start.
+     */
     void scrollingStarted();
+    
+    /**
+     * scrollingEnded() - Call back function to get notification of when scrolling of
+     * image strip is stop.
+     */
     void scrollingEnded();
+
+    /**
+     * pressed() - Call back function to get notification of user pressed mouse key or touch the fingure.
+     * @param - index of selected item.
+     */
     void pressed(const QModelIndex &index );
+    
+    /**
+     * released() - Call back function to get notification of user released mouse key or released the fingure.
+     * @param - index of new selected item.
+     */
     void released(const QModelIndex &index );
-	void setVisvalWindowIndex();
+
+    /**
+     * setVisvalWindowIndex() - Set the viisual window index of medialist.
+     */
+    void setVisvalWindowIndex();
+    
+    /**
+     * coverFlowEventHandle() -  Handle the event generated by cover flow.
+     * @param - cover flow event type
+     */
     void coverFlowEventHandle( GlxCoverFlowEvent e);
+    
+    /**
+     * effectFinished() -  call back when ui on\off effect has finished.
+     * @param - staus of effect
+     */
     void effectFinished( const HbEffect::EffectStatus  );
+    
+    /**
+     * imageSelectionEffectFinished() -  call back when ui image strip selection effect has been finished.
+     * @param - staus of effect
+     */
     void imageSelectionEffectFinished( const HbEffect::EffectStatus  );
+
+    /**
+     * orientChangeAnimFinished() -  call back when custom orientation change effect has been finished.
+     * @param - staus of effect
+     */
+    void orientChangeAnimFinished( const HbEffect::EffectStatus );
+    
+    /**
+     * effectFinished -  call back when ui on\off effect has finished
+     * @param - staus of effect
+     */
     void handleToolBarAction();
+    
+    /**
+     * In case of image fetcher handle select command and emit selected index and model 
+     */
+    void handleFSSelect();
 
 protected :
+    /**
+     * eventFilter - To handle the application foregrond and background event
+     * ///From HbView
+     */
     bool eventFilter(QObject *obj, QEvent *ev);
-private:
     
-    /*
-     * The widgets are retrieved from the docml
+private:    
+    /**
+     * loadWidgets() - The widgets are retrieved from the docml
      */
     void loadWidgets();
 
-    /*
-     * Loads the corresponding sections in the docml while the orentation is changed.
+    /**
+     * loadViewSection() - Loads the corresponding sections in the docml while the orentation is changed.
      */
     void loadViewSection();
     
+    /**
+     * setLayout() - To set the widgets laout.
+     */
     void setLayout();
+    
+    /**
+     * addConnection() - Add the call back of the widgets.
+     */
     void addConnection();
-    void addImageStripConnection();
+    
+    /**
+     * removeConnection() - Remove the call back of widgets.
+     */
     void removeConnection();
-    void createUiControl();
+    
+    /**
+     * setImageStripModel() - set the image strip model.
+     */
     void setImageStripModel();
     
+    /**
+     * loadFullScreenToolBar() - load the fullscreen tool bar from the docml.
+     */
     void loadFullScreenToolBar();
+    
+    /**
+     * addToolBarAction() - Crete and add the toolbar acton in toolbar.
+     * @param - coomand id to recognise the action.
+     * @param - toolbar action icon.
+     * @param - action name it is used for automation of test cases. 
+     */
     void addToolBarAction( int commandId, const QString &iconName, const QString &name) ;
+    
+    /**
+     * initAnimationItem() - Initialise the custom animation item.
+     */
+    void initAnimationItem();
+    
+    /**
+     * imageSelectionAnimation() - To trigger the image setection animtaion form the imge strip.
+     */
     void imageSelectionAnimation( const QModelIndex &index );
+    
+    /**
+     * cancelSelectionAnimation()- To cancel the image selection animation.
+     */
     void cancelSelectionAnimation( );
+    
+    /**
+     * playOrientChangeAnim() - To trigger the custom orientation change animation.
+     */
+    void playOrientChangeAnim();
+    
+    /**
+     * get the substate of fullscreen state.
+     */
     int getSubState();
+    
+    /**
+     * setHdmiModel() - set the image strip model.
+     * @param - model
+     */
     void setHdmiModel( QAbstractItemModel *model );
     
 private:
--- a/ui/views/fullscreenview/src/glxcoverflow.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/fullscreenview/src/glxcoverflow.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -444,6 +444,7 @@
 void GlxCoverFlow::stopAnimation()
 {
     mIconItem[ mSelItemIndex ]->animator().stopAnimation();
+    mIconItem[ mSelItemIndex ]->setIcon( getIcon( mSelIndex ) );
 }
 
 void GlxCoverFlow::updateIconItem (qint16 selIndex, qint16 selItemIndex, qint16 posX)
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -44,7 +44,7 @@
 #include "glxfullscreenview.h" 
 #include "glxcommandhandlers.hrh"
 #include "glxzoomwidget.h"
-
+#include "glxlocalisationstrings.h"
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "glxfullscreenviewTraces.h"
@@ -70,10 +70,13 @@
     mIconItems[1] = NULL;
     mDocLoader = DocLoader;
     setContentFullScreen( true );
+    
     HbEffect::add( QString( "HbGridView" ), QString( ":/data/transitionup.fxml" ), QString( "TapShow" ) );
     HbEffect::add( QString( "HbGridView" ), QString( ":/data/transitiondown.fxml" ), QString( "TapHide" ) );
     HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) );
     HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) );
+    HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) );
+    HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) );
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
 }
@@ -188,11 +191,22 @@
     setViewFlags(flags);
 	
 	// In case of fetcher don't hide status pane and title bar
-    if(!(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))){
-	    setStatusBarVisible(FALSE);
-	    setTitleBarVisible(FALSE);
+    if(!(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))) {
+        setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
 		mUiOff = true;
 	}
+    else
+        {
+        HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT);
+        selectAction->setObjectName( "FS Select" );
+        
+        connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect()));
+        HbToolBar* toolBar = new HbToolBar();
+        toolBar->setOrientation( Qt::Horizontal );
+        toolBar->setVisible(true);
+        toolBar->addAction(selectAction);
+        setToolBar(toolBar);
+        }
         
     mUiOffTimer = new QTimer();
     mUiOffTimer->stop();        
@@ -200,12 +214,19 @@
     addConnection(); 
     setLayout();
      
-    if (!mTvOutWrapper){
+    if (!mTvOutWrapper) {
         mTvOutWrapper = new GlxTvOutWrapper();
     }
+    
+    mWindow->setAutomaticOrientationEffectEnabled( false );
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATE_EXIT );
 }
 
+void GlxFullScreenView::handleFSSelect()
+{
+    emit actionTriggered( EGlxCmdFetcherSelect );
+}
+
 void GlxFullScreenView::loadViewSection()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY );    
@@ -252,7 +273,7 @@
     //the coverflow is initialised to null 
     //to just reset to the initial state
     mCoverFlow = NULL;
-    
+    mWindow->setAutomaticOrientationEffectEnabled( true );
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT );
 }
 
@@ -311,7 +332,7 @@
     mCoverFlow->setModel(mModel);
     setImageStripModel();
     if(getSubState() == IMAGEVIEWER_S) {
-        setTitle("Image Viewer");
+        setTitle(GLX_IMAGE_VIEWER);
     }
 	else if(getSubState() == FETCHER_S){ //do not zoom in case of fetcher
 		disconnect(mCoverFlow,SIGNAL( doubleTapEventReceived(QPointF) ), mZoomWidget, SLOT( animateZoomIn(QPointF) ) );
@@ -357,6 +378,7 @@
     setModelContext();
     loadViewSection();
     setLayout();
+    playOrientChangeAnim();
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT );
 }
@@ -365,7 +387,7 @@
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY );
     
-    if ( mUiOff && getSubState() != FETCHER_S){      
+    if ( mUiOff && getSubState() != FETCHER_S ){      
         if( !mFullScreenToolBar ) {
             loadFullScreenToolBar();
         }
@@ -376,18 +398,18 @@
             mImageStrip->setCurrentIndex ( mModel->index( variant.value<int>(), 0) );    
             mImageStrip->scrollTo( mModel->index( variant.value<int>(), 0), HbGridView::PositionAtTop ); 
         }
-        
-        mFullScreenToolBar->show();
-		setStatusBarVisible( TRUE );
-        setTitleBarVisible( TRUE );
+
+        setItemVisible( Hb::AllItems, TRUE );
+        setViewFlags( viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden );
        
         if ( mImageStrip && getSubState() != IMAGEVIEWER_S) {
             mImageStrip->show(); 
             HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapShow"), this, "effectFinished" );
         }
         else if( getSubState() == IMAGEVIEWER_S){
-            setTitle("Image Viewer");
+            setTitle(GLX_IMAGE_VIEWER);
         }
+        mFullScreenToolBar->show();
     }
     else {
         hideUi();
@@ -409,11 +431,10 @@
     
     mUiOff = TRUE;
 	if ( getSubState() != FETCHER_S ) {
-		setStatusBarVisible(FALSE);
-        setTitleBarVisible(FALSE);
+	    setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
 	}
-    if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S )) {
-        HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" );
+    if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S ) ) {
+        HbEffect::start( mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" );
     }
 
     if(mFullScreenToolBar) {
@@ -555,10 +576,21 @@
         break ;
         
     case PANNING_START_EVENT :
-    case ZOOM_START_EVENT :
         hideUi();
         break ;
         
+    //hide the ui component without animation  
+    case ZOOM_START_EVENT : {
+        HbEffect::EffectStatus e;
+        mUiOff = TRUE;
+        if( mFullScreenToolBar ) {
+           mFullScreenToolBar->hide();
+        }
+        setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
+        effectFinished( e );
+    }
+        break;
+        
     case EMPTY_ROW_EVENT :
         emit actionTriggered( EGlxCmdEmptyData );
         break ;
@@ -582,6 +614,7 @@
         mUiOffTimer->stop();        
         mCoverFlow->setUiOn(FALSE);
         mImageStrip->hide();
+        setItemVisible( Hb::AllItems, FALSE );
     }
     else {
         mUiOffTimer->start(KUiOffTime);
@@ -610,6 +643,15 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONEFFECTFINISHED_EXIT );
 }
 
+void GlxFullScreenView::orientChangeAnimFinished( const HbEffect::EffectStatus status )
+{
+    qDebug( "GlxFullScreenView::LsOrientChangeAnimFinished reason %d ", status.reason );
+    mIconItems[ 0 ]->resetTransform();   
+    mIconItems[ 0 ]->setVisible( false );
+    mCoverFlow->setVisible( true );
+    mZoomWidget->setVisible( true );
+}
+
 void GlxFullScreenView::setLayout()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY );
@@ -724,24 +766,30 @@
     HbEffect::remove( QString("HbGridView"), QString(":/data/transitiondown.fxml"), QString( "TapHide" ));
     HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) );
     HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) );
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) );
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) );
         
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
 }
 
+void GlxFullScreenView::initAnimationItem()
+{
+    if( mIconItems[0] == NULL ) {
+        for( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
+            mIconItems[ i ] = new HbIconItem( mImageStrip->parentItem() );
+            mIconItems[ i ]->setBrush( QBrush( Qt::black ) );
+            mIconItems[ i ]->setZValue( mImageStrip->zValue() - 2 );
+            mIconItems[ i ]->setPos( 0, 0 );
+            mIconItems[ i ]->setAlignment( Qt::AlignCenter );
+        }
+    }
+}
+
 void GlxFullScreenView::imageSelectionAnimation(const QModelIndex &index)
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_ENTRY );
-
-    if ( mIconItems[0] == NULL ) {
-        for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
-            mIconItems[ i ] = new HbIconItem( mFullScreenToolBar->parentItem() );
-            mIconItems[ i ]->setBrush( QBrush( Qt::black ) );
-            mIconItems[ i ]->setZValue( mFullScreenToolBar->zValue() - 2 );
-            mIconItems[ i ]->setPos( 0, 0 );
-            mIconItems[ i ]->setAlignment( Qt::AlignCenter );
-        }
-    }
     
+    initAnimationItem();
     for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
         mIconItems[ i ]->setVisible( true );
         mIconItems[ i ]->setSize( screenSize() );
@@ -765,6 +813,25 @@
         HbEffect::cancel( mIconItems[1], QString( "SelectShow" ), false, true, true );
     }
 }
+
+void GlxFullScreenView::playOrientChangeAnim()
+{
+    qDebug("GlxFullScreenView::playOrientChangeAnim()");
+    initAnimationItem();
+    mIconItems[ 0 ]->setOpacity( 1 );
+    mIconItems[ 0 ]->setSize( screenSize() );
+    mIconItems[ 0 ]->setVisible( true );
+    mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) );
+    
+    mCoverFlow->setVisible( false );
+    mZoomWidget->setVisible( false );
+    if ( mWindow->orientation() == Qt::Horizontal ) {
+        HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSLS" ), this, "orientChangeAnimFinished" );
+    }
+    else {
+        HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "orientChangeAnimFinished" );
+    }
+}
 	
 void GlxFullScreenView::handleToolBarAction()
 {
--- a/ui/views/gridview/inc/glxgridview.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/gridview/inc/glxgridview.h	Fri Aug 06 20:44:25 2010 +0530
@@ -33,6 +33,8 @@
 class HbCheckBox;
 class HbLabel;
 class GlxSettingInterface;
+class HbGroupBox;
+class QGraphicsLinearLayout;
 
 class GlxGridView : public GlxView
 {
@@ -87,23 +89,28 @@
     void showHbItems();
     int getSubState();
     void showNoImageString();
+    
+    //It is used to hide and show the toolbar
+    //In album grid it is not required to show the tool bar
+    void updateToolBar();
 
 	HbMainWindow        *mWindow;          // no ownership
 	QAbstractItemModel  *mModel ;
 	HgGrid              *mWidget;          // HG Grid Widget
 	QItemSelectionModel *mSelectionModel;  // Selected items model
     GlxModelWrapper     *mModelWrapper;    // Temp Model Wrapper, so That Role Change not a problem
-    HbPushButton        *mUiOnButton;
-    HbPushButton        *mCameraButton;    // Camera Button, when item count is zero
+    HbPushButton        *mUiOnButton;    
     bool                 mScrolling;
     HbIconItem          *mIconItem;
     HbCheckBox          *mMarkCheckBox;    // Mark All checkbox 
-    HbLabel             *mCountItem;       // Item count of the grid
-    HbLabel             *mMainLabel;       
-    HbLabel             *mCountLabel;      // Marked item count
+    HbGroupBox          *mTotalImagesCount;       // Item count of the grid
+    HbGroupBox          *mMarkSelectHeading;    
+    HbLabel             *mMarkCountLabel;      // Marked item count
     HbLabel             *mZeroItemLabel;   // zero itemcount
-    HbLabel             *mAlbumName;
-    GlxSettingInterface *mSettings;      
+    HbGroupBox          *mAlbumNameHeading;
+    QGraphicsLinearLayout *mMarkContainer;
+    GlxSettingInterface *mSettings;    
+    HbWidget *mMarkingWidget;
 };
 
 #endif /* GLXGRIDVIEW_H_ */
--- a/ui/views/gridview/src/glxgridview.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/gridview/src/glxgridview.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -30,6 +30,9 @@
 #include <hblabel.h>
 #include <QString>
 #include <hbframeitem.h>
+#include <hbgroupbox.h>
+#include <hbparameterlengthlimiter.h>
+#include <QGraphicsLinearLayout>
 
 //User Includes
 #include "glxviewids.h"
@@ -40,6 +43,7 @@
 #include "glxlocalisationstrings.h"
 #include "glxsettinginterface.h"
 
+
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "glxgridviewTraces.h"
@@ -52,22 +56,31 @@
       mWidget(NULL),
       mSelectionModel(NULL),
       mModelWrapper(NULL),
-      mUiOnButton(NULL),
-      mCameraButton(NULL),
+      mUiOnButton(NULL),      
       mScrolling(FALSE),
       mIconItem(NULL),
       mMarkCheckBox(NULL),
-      mCountItem(NULL),
-      mMainLabel(NULL),
-      mCountLabel(NULL),
+      mTotalImagesCount(NULL),
+      mMarkSelectHeading(NULL),
+      mMarkCountLabel(NULL),
       mZeroItemLabel(NULL),
-      mAlbumName(NULL)
+      mAlbumNameHeading(NULL),
+      mMarkContainer(NULL),
+      mMarkingWidget(NULL)
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
     mModelWrapper = new GlxModelWrapper();
     mModelWrapper->setRoles(GlxQImageSmall);
     mIconItem = new HbIconItem(this);
     mSettings = GlxSettingInterface::instance() ;
+    
+    mUiOnButton = new HbPushButton(this);
+    connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
+    mUiOnButton->setGeometry(QRectF(590,0,40,40));
+    mUiOnButton->setZValue(1);
+    mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON));
+    mUiOnButton->setObjectName( "UiOn Button" );
+
     OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
 }
 
@@ -76,15 +89,10 @@
     OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
     loadGridView();
 	connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection);
-    if(mCountItem == NULL) {
-        mCountItem = new HbLabel(this);
-        mCountItem->setObjectName( "Count" );
-        HbFrameItem *frame = new HbFrameItem(this); //graphics for mCountItem
-        frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame->graphicsItem()->setOpacity(1);
-        mCountItem->setBackgroundItem(frame->graphicsItem(),-1);
-        mCountItem->hide();
+    if(mTotalImagesCount == NULL) {
+        mTotalImagesCount = new HbGroupBox(this);
+        mTotalImagesCount->setObjectName( "Count" );
+        mTotalImagesCount->hide();
     }
     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
 }
@@ -102,18 +110,16 @@
         mIconItem->setOpacity(0);
         mIconItem->setZValue(mIconItem->zValue()-20);
     }
-    if (mCountItem) {
-        mCountItem->hide();
+    if (mTotalImagesCount) {
+        mTotalImagesCount->hide();
     }
-    if (mAlbumName) {
-        mAlbumName->hide();
+    if (mAlbumNameHeading) {
+        mAlbumNameHeading->hide();
     }
     if(mZeroItemLabel) {
         mZeroItemLabel->hide();
     }
-    if(mCameraButton) {
-        mCameraButton->hide();
-    }
+    
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
     OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
 }
@@ -143,7 +149,9 @@
         connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(showItemCount()));
         connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(showItemCount()));
         connect(mModel, SIGNAL(destroyed()), this, SLOT( clearCurrentModel()));
-        connect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString)));
+        if(getSubState() == ALBUM_ITEM_S){
+            connect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString)));
+        }
         connect(mModel, SIGNAL(populated()), this, SLOT( populated()));
     }
 }
@@ -191,7 +199,7 @@
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY );
     setToolBar(toolBar);
-    hideorshowitems(mWindow->orientation());
+    showHbItems();
     OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT );
 }
 
@@ -199,33 +207,27 @@
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
     mWidget->setSelectionMode(HgWidget::MultiSelection);
-    if (mMainLabel == NULL) {
-        mMainLabel = new HbLabel("Select Photos", this);
-        mMainLabel->setObjectName( "Select Photos");
-        HbFrameItem *frame1 = new HbFrameItem(this);    //graphics for mMainLabel
-        frame1->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame1->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame1->graphicsItem()->setOpacity(1);
-        mMainLabel->setBackgroundItem(frame1->graphicsItem(),-1);
-    }
-    if (mMarkCheckBox == NULL) {
-        mMarkCheckBox = new HbCheckBox(GLX_OPTION_MARK_ALL, this);
-        mMarkCheckBox->setObjectName( "CheckB MarkAll" );
-        HbFrameItem *frame2 = new HbFrameItem(this);    //graphics for mMarkCheckBox
-        frame2->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame2->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame2->graphicsItem()->setOpacity(1);
-        mMarkCheckBox->setBackgroundItem(frame2->graphicsItem(),-1);
-    }
-    if (mCountLabel == NULL) {
-        mCountLabel = new HbLabel(this);
-        mCountLabel->setObjectName( "MarkCount" );
-        HbFrameItem *frame3 = new HbFrameItem(this);    //graphics for mCountLabel
-        frame3->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame3->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame3->graphicsItem()->setOpacity(1);
-        mCountLabel->setBackgroundItem(frame3->graphicsItem(),-1);
-    }
+   
+    if (mMarkingWidget == NULL)
+        {
+        mMarkingWidget = new HbWidget(this);
+        mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0);
+        mMarkingWidget->setLayout(mMarkContainer);
+
+        mMarkSelectHeading = new HbGroupBox(this);
+        mMarkSelectHeading->setHeading(GLX_SELECT_IMAGES);
+        mMarkSelectHeading->setObjectName("Select Photos");
+               
+        mMarkCountLabel = new HbLabel(mMarkingWidget);
+        mMarkCountLabel->setObjectName("MarkCount");
+        mMarkCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+        
+        mMarkCheckBox = new HbCheckBox(GLX_LABEL_MARK_ALL, mMarkingWidget);
+        mMarkCheckBox->setObjectName("CheckB MarkAll");
+       
+        mMarkContainer->addItem(mMarkCheckBox);
+        mMarkContainer->addItem(mMarkCountLabel);        
+        }
 
     hideorshowitems(mWindow->orientation());
 
@@ -240,18 +242,16 @@
     mWidget->setSelectionMode(HgWidget::NoSelection);
     disconnect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
     disconnect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int)));
-    if (mMainLabel) {
-        mMainLabel->hide();
-    }
-    if (mMarkCheckBox) {
-        mMarkCheckBox->setCheckState(Qt::Unchecked);
-        mMarkCheckBox->hide();
-    }
-    if (mCountLabel) {
-        mCountLabel->hide();
+    
+    if (mMarkSelectHeading) {
+        mMarkSelectHeading->hide();
     }
 
-    hideorshowitems(mWindow->orientation());
+    if (mMarkingWidget) {
+        mMarkingWidget->hide();
+    }        
+    
+    showHbItems();
 }
 
 void GlxGridView::stateChanged(int state)
@@ -267,9 +267,10 @@
     int count = mModel->rowCount();
     QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes();
     int markItemCount = indexList.count();
-
-    QString text= QString("%1 / %2").arg( markItemCount ).arg( count );
-    mCountLabel->setPlainText( text );
+    
+    QString text= HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count);    
+    
+    mMarkCountLabel->setPlainText( text );    
 }
 
 void GlxGridView::showItemCount()
@@ -284,27 +285,24 @@
             if(mZeroItemLabel) {
                 mZeroItemLabel->hide();
             }
-            if(mCameraButton) {
-                mCameraButton->hide();
-            }
+            
             if(isItemVisible(Hb::TitleBarItem)) {
                 QString text;
                 if(XQServiceUtil::isService())
                     {
-                    showAlbumTitle(GLX_FETCHER_TITLE);
+                    showAlbumTitle(GLX_SELECT_IMAGE);
                     }
                 else if (getSubState() == ALL_ITEM_S) {
-					if (mAlbumName) {
-                    	mAlbumName->hide();
+					if (mAlbumNameHeading) {
+                    	mAlbumNameHeading->hide();
 					}
-                    mCountItem->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
-                    text = QString("%1 Items").arg( count );
-                    mCountItem->setPlainText( text );
-                    mCountItem->setAlignment(Qt::AlignLeft);
-                    mCountItem->show();
+                    mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
+                    text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); 
+                    mTotalImagesCount->setHeading ( text );
+                    mTotalImagesCount->show();
                 }
                 else if (getSubState() == ALBUM_ITEM_S) {
-                    mCountItem->hide();
+                    mTotalImagesCount->hide();
                     QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
                     if (variant.toString() != NULL) {
                         showAlbumTitle(variant.toString());
@@ -312,11 +310,11 @@
                 }
             }
             else {
-                if (mCountItem) {
-                    mCountItem->hide();
+                if (mTotalImagesCount) {
+                    mTotalImagesCount->hide();
                 }
-                if (mAlbumName) {
-                    mAlbumName->hide();
+                if (mAlbumNameHeading) {
+                    mAlbumNameHeading->hide();
                 }
             }
 
@@ -329,11 +327,11 @@
                 populated = variant.value<bool>();
                 }
             if(populated) {
-                if (mCountItem) {
-                    mCountItem->hide();
+                if (mTotalImagesCount) {
+                    mTotalImagesCount->hide();
                 }
-                if (mAlbumName) {
-                    mAlbumName->hide();
+                if (mAlbumNameHeading) {
+                    mAlbumNameHeading->hide();
                 }
 
                 showNoImageString();
@@ -355,42 +353,29 @@
     QSize deviceSize = HbDeviceProfile::current().logicalSize();
     QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
                                                                    : QSize( deviceSize.height(), deviceSize.width() )  ;
-    if(mAlbumName == NULL) {
-        mAlbumName = new HbLabel(this);
-        mAlbumName->setObjectName( "Album Name" );
-        HbFrameItem *frame = new HbFrameItem(this); //graphics for mAlbumName
-        frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame->graphicsItem()->setOpacity(1);
-        mAlbumName->setBackgroundItem(frame->graphicsItem(),-1);
-    }
-    
-	//If fetcher service set only title text
-	if((XQServiceUtil::isService() ) && isItemVisible(Hb::TitleBarItem)) {
-        mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
-        QString text = QString(aTitle);
-        mAlbumName->setPlainText( text );
-        mAlbumName->show();
-    }
-	else{ //handle album tiltle and count display logic here
-	    if( count && isItemVisible(Hb::TitleBarItem)) {        
-	        mAlbumName->setGeometry(QRectF(0,0,screenSize.width()/2,deviceSize.height()/24));
-	        QString text = QString(aTitle);
-	        mAlbumName->setPlainText( text );
-	        mAlbumName->show();
-	        mCountItem->setGeometry(QRectF(screenSize.width()/2,0,screenSize.width()/2,deviceSize.height()/24));
-	        text = QString("(%1)").arg(count);
-	        mCountItem->setPlainText( text );
-	        mCountItem->setAlignment(Qt::AlignRight);
-	        mCountItem->show();
-	    }    
-	    else if((!count) && isItemVisible(Hb::TitleBarItem)) {
-	        mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
-	        QString text = QString(aTitle);
-	        mAlbumName->setPlainText( text );
-	        mAlbumName->show();
-	    }
-	}
+    if (mAlbumNameHeading == NULL)
+        {
+        mAlbumNameHeading = new HbGroupBox(this);
+        mAlbumNameHeading->setObjectName("Album Name");
+        }
+
+    //If fetcher service set only title text
+    if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem))
+        {
+        mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));
+        mAlbumNameHeading->setHeading(aTitle);
+        mAlbumNameHeading->show();
+        }
+    else
+        { //handle album tiltle and count display logic here
+        if (count && isItemVisible(Hb::TitleBarItem))
+            {
+            mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));
+            QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);            
+            mAlbumNameHeading->setHeading(text);
+            mAlbumNameHeading->show();
+            }
+        }
 }
 
 void GlxGridView::showNoImageString()
@@ -406,28 +391,13 @@
     }
     if (mZeroItemLabel == NULL) {
         QString displayText(GLX_GRID_NO_IMAGE); 
-        if(!XQServiceUtil::isService())
-            {
-            displayText.append(GLX_GRID_OPEN_CAMERA);
-            }
         mZeroItemLabel = new HbLabel(displayText, this);
         mZeroItemLabel->setObjectName( "No Image" );
     }
     mZeroItemLabel->setGeometry(QRectF(0, midHeight - deviceSize.height()/16, screenSize.width(), 3*deviceSize.height()/32));
     mZeroItemLabel->setAlignment(Qt::AlignHCenter);
     mZeroItemLabel->show();
-    if (mCameraButton == NULL) {
-        mCameraButton = new HbPushButton(this);
-        mCameraButton->setObjectName( "Camera Button" );
-        mCameraButton->setIcon(HbIcon(GLXICON_CAMERA));
-        mCameraButton->hide();
-        connect(mCameraButton, SIGNAL(clicked(bool)), this, SLOT(cameraButtonClicked(bool)));
-    }
-    if(!XQServiceUtil::isService())
-        {
-        mCameraButton->setGeometry(QRectF(screenSize.width()/2 - 3*deviceSize.height()/64, midHeight + deviceSize.height()/32, deviceSize.height()/32, deviceSize.height()/32));
-        mCameraButton->show();
-        }
+   
 }
 
 void GlxGridView::populated()
@@ -553,15 +523,18 @@
             }
         setWidget( mWidget );
         addViewConnection();
-        hideorshowitems(orient);
     }
     OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
 }
 
 void GlxGridView::orientationchanged(Qt::Orientation orient)
 {
-    hideorshowitems(orient);
+    if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) {
+        hideorshowitems(orient);
+    }
+    showHbItems();
 }
+
 void GlxGridView::hideorshowitems(Qt::Orientation orient)
 {
     if ( mWidget && mWidget->selectionMode() == HgWidget::NoSelection ) {
@@ -584,27 +557,30 @@
         }
     }
     else if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) {
-        setItemVisible(Hb::TitleBarItem, FALSE) ;
+        setItemVisible(Hb::AllItems, FALSE) ;
+        setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
         if (mUiOnButton) {
             mUiOnButton->hide();
         }
-        if (mCountItem) {
-            mCountItem->hide();
+        if (mTotalImagesCount) {
+            mTotalImagesCount->hide();
         }
-        if (mAlbumName) {
-            mAlbumName->hide();
+        if (mAlbumNameHeading) {
+            mAlbumNameHeading->hide();
         }
+        
         QSize deviceSize = HbDeviceProfile::current().logicalSize();
         QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
                                                                        : QSize( deviceSize.height(), deviceSize.width() )  ;
-        mMainLabel->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
-        mMarkCheckBox->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width()/2,deviceSize.height()/72));
-        mCountLabel->setGeometry(QRectF(screenSize.width()/2,deviceSize.height()/24,screenSize.width()/2,deviceSize.height()/12 - 3));
-        mCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
-        mMainLabel->show();
-        mMarkCheckBox->show();
-        mCountLabel->show();
+        
+        mMarkSelectHeading->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));       
+        mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72));          
+              
+        mMarkSelectHeading->show();
+        mMarkingWidget->show();
+        
         showMarkedItemCount();
+        
     }
 }
 
@@ -654,21 +630,22 @@
     if ( mWidget->selectionMode() == HgWidget::MultiSelection ) {
         return ;
     }
-    if(XQServiceUtil::isService()){
-        emit gridItemSelected(index);
-        return;
-    }
     OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" );
     if ( mModel ) {
         mModel->setData( index, index.row(), GlxFocusIndexRole );
     }
+    if(XQServiceUtil::isService()){
+        qDebug("GlxGridView::itemSelected actionTriggered( EGlxCmdFetcherSelect )" );
+        emit actionTriggered( EGlxCmdFetcherSelect );
+        return;
+    }
     emit actionTriggered( EGlxCmdFullScreenOpen );
     OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START );
 }
 
 void GlxGridView::scrollingStarted()
 {
-    if ((mWindow->orientation() == Qt::Horizontal) && mWidget->selectionMode() == HgWidget::NoSelection)
+    if ((mWindow->orientation() == Qt::Horizontal)/* && mWidget->selectionMode() == HgWidget::NoSelection*/)
         {
         setItemVisible(Hb::AllItems, FALSE) ;
         setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
@@ -676,11 +653,11 @@
             {
             mUiOnButton->hide();
             }
-		if (mCountItem) {
-			mCountItem->hide();
+		if (mTotalImagesCount) {
+			mTotalImagesCount->hide();
 		}
-		if (mAlbumName) {
-            mAlbumName->hide();
+		if (mAlbumNameHeading) {
+            mAlbumNameHeading->hide();
 		}
     }
 
@@ -726,17 +703,16 @@
         disconnect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
         delete mUiOnButton;
     }
-    if(mCameraButton) {
-        disconnect(mCameraButton, SIGNAL(clicked()), this, SLOT(cameraButtonClicked()));
-        delete mCameraButton;
-    }
+    
     delete mIconItem;
-    delete mCountItem;
-    delete mAlbumName;
-    delete mMainLabel;
+    delete mTotalImagesCount;
+    delete mAlbumNameHeading;
+    delete mMarkSelectHeading;
     delete mMarkCheckBox;
-    delete mCountLabel;
+    delete mMarkCountLabel;
+    delete mMarkingWidget;
     delete mZeroItemLabel;
+    
     OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
 }
 
@@ -762,15 +738,16 @@
 
 void GlxGridView::showHbItems()
 {
-        setItemVisible(Hb::AllItems, TRUE) ;
-    setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden);
+    if(mWidget && mWidget->selectionMode() == HgWidget::NoSelection) {
+        setItemVisible( Hb::TitleBarItem, TRUE );
+        setItemVisible( Hb::StatusBarItem, TRUE );
+        setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden);
         showItemCount();
-		toolBar()->resetTransform(); // Temp, this is for HbToolbar issue to get fixed
-        toolBar()->show();
-    if (mUiOnButton)
-        {
+    }    
+    updateToolBar();
+    if (mUiOnButton) {
         mUiOnButton->hide();
-        }
+    }
 }
 
 void GlxGridView::cameraButtonClicked(bool /*checked*/)
@@ -781,10 +758,30 @@
 int GlxGridView::getSubState()
 {
     int substate = NO_GRID_S;
-    QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );
-    if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
-        substate = variant.value<int>();
+    if ( mModel ) {
+        QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );
+        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
+            substate = variant.value<int>();
+        }
     }
     return substate;
 }
 
+void GlxGridView::updateToolBar()
+{
+    //In the case of multiselection show the tool bar.
+    if ( mWidget && mWidget->selectionMode() == HgWidget::MultiSelection ) {
+        setItemVisible( Hb::ToolBarItem, TRUE ) ;
+        return ;
+    }
+    
+    //In Album grid it is not required to show tool bar
+    int subState = getSubState();
+    if ( subState == ALBUM_ITEM_S || subState == FETCHER_ALBUM_ITEM_S ) {
+        setItemVisible( Hb::ToolBarItem, FALSE ) ;
+    }
+    else {
+        setItemVisible( Hb::ToolBarItem, TRUE );
+    }
+}
+
--- a/ui/views/listview/src/glxlistview.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/listview/src/glxlistview.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -57,7 +57,6 @@
 void GlxListView::deActivate()
 {
     qDebug("GlxListView::deActivate()");
-    disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
 }
 
 void GlxListView::setModel(QAbstractItemModel *model) 
@@ -206,7 +205,19 @@
     if ( mModel ) {
         mModel->setData( index, index.row(), GlxFocusIndexRole );
     }
-    emit actionTriggered( EGlxCmdAlbumGridOpen );
+    
+    int curstate = NO_LIST_S; 
+    qDebug() << "GlxListView::itemSelected READING STATE ";
+    QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );    
+    if ( variant.isValid() &&  variant.canConvert<int> () ) {
+        curstate = variant.value<int>();
+    }
+    qDebug() << "GlxMenuManager::viewSubState = " << curstate ;
+    if(curstate == FETCHER_ALBUM_S ){
+        emit actionTriggered( EGlxCmdFetcherAlbumGridOpen );
+    }else {        
+        emit actionTriggered( EGlxCmdAlbumGridOpen );
+    }
 }
 
 
--- a/ui/views/slideshowview/inc/glxslideshowview.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/slideshowview/inc/glxslideshowview.h	Fri Aug 06 20:44:25 2010 +0530
@@ -33,29 +33,115 @@
 class GlxSlideShowWidget;
 class GlxTvOutWrapper;
 
+/**
+ * Class Description
+ * This is Slideshow view class used to play the slide show on set of images.
+ */
 class GlxSlideShowView : public GlxView
 {
     Q_OBJECT
 
 public:
-    GlxSlideShowView(HbMainWindow *window,HbDocumentLoader *Docloader);
+    /**
+     * Constructor
+     * @param - HbMainWindow object
+     * @param - fullscreen docloader object
+     */
+    GlxSlideShowView( HbMainWindow *window, HbDocumentLoader *Docloader );
+    
+    /**
+     * Destructor
+     */    
     ~GlxSlideShowView();
+
+    /**
+     * activate()
+     * ///From GlxView
+     */    
     void activate() ;
+    
+    /**
+     * deActivate()
+     * ///From GlxView
+     */    
     void deActivate();
-    void setModel(QAbstractItemModel *model);
+    
+    /**
+     * setmodel() 
+     * ///from GlxView
+     */    
+    void setModel( QAbstractItemModel *model );
+
+    /**
+     * setModelContext() - to set the context mode of the model.
+     */    
     void setModelContext();
+    
+    /**
+     * handleUserAction() - To handle the used action like back to paly the orientation change animation.
+     */
+    void handleUserAction( qint32 commandId );
         
 public slots :
-    void orientationChanged(Qt::Orientation);   
-    void slideShowEventHandler( GlxSlideShowEvent e);
+    /**
+     * orientationChanged() - Slot to upadte the layout when orientation of device has changed
+     * @param new orientation
+     */
+    void orientationChanged( Qt::Orientation ) ;
+    
+    /**
+     * slideShowEventHandler() - to handle the widget events like ui on / off, empty data etc
+     * @param slide show widget event type 
+     */
+    void slideShowEventHandler( GlxSlideShowEvent e );
+    
+    /**
+     * indexchanged() - call back to handle the selected image change. 
+     */
     void indexchanged();
+    
+    /**
+     * modelDestroyed() - call back to monitor the model destroy.
+     */
     void modelDestroyed();
     
+    /**
+     * playLsOrientChangeAnim() - To play the protrait to landscape orientation animation.
+     */
+    void playLsOrientChangeAnim();
+
+    /**
+     * playLsOrientChangeAnim() - To play the landscape to protrait orientation animation.
+     */
+    void playPtOrientChangeAnim();
+    
+    /**
+     * LsOrientChangeAnimFinished() - Call back fuction when protrait to landscape orientation animation 
+     * has been finished.
+     * @param - staus of effect
+     */
+    void LsOrientChangeAnimFinished( const HbEffect::EffectStatus );
+    
+    /**
+     * PtOrientChangeAnimFinished() - Call back fuction when landscape to protrait orientation animation 
+     * has been finished.
+     * @param - staus of effect
+     */    
+    void PtOrientChangeAnimFinished( const HbEffect::EffectStatus );
+    
 protected :
-    bool eventFilter(QObject *obj, QEvent *ev);
+    /**
+     * eventFilter - To handle the application foregrond and background event
+     * ///From HbView
+     */
+    bool eventFilter( QObject *obj, QEvent *ev );
     
 private:
+    /**
+     * loadWidgets() - The widgets are retrieved from the docml
+     */
     void loadObjects();
+
 private:
     QAbstractItemModel  *mModel;
     HbMainWindow        *mWindow;
--- a/ui/views/slideshowview/inc/glxslideshowwidget.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/slideshowview/inc/glxslideshowwidget.h	Fri Aug 06 20:44:25 2010 +0530
@@ -49,101 +49,254 @@
     EFFECT_STARTED  // sends the signal when effect is started.
 } GlxSlideShowEvent;
 
+/**
+ * Class Description
+ * This is Slideshow widget class used to play the slide show animation and ahndle the user action like pause and play.
+ */
 class GlxSlideShowWidget : public HbWidget
 {
 Q_OBJECT
 
 public :
-    GlxSlideShowWidget (QGraphicsItem *parent = NULL);
+    /**
+     * Constructor
+     * @param - QGraphicsItem
+     */    
+    GlxSlideShowWidget ( QGraphicsItem *parent = NULL );
+    
+    /**
+     * Destructor
+     */    
     ~GlxSlideShowWidget ();
-    void setModel (QAbstractItemModel *model);
-    void setItemGeometry(QRect screenRect);
+    
+    /**
+     * setmodel() - To set the model of the widget.
+     * @param - QAbstractItemModel.
+     */    
+    void setModel ( QAbstractItemModel *model );
+    
+    /**
+     * setItemGeometry() - To Set the layout data of widgets item.
+     * @param scrren gemoetry
+     */
+    void setItemGeometry( QRect screenRect );
+    
+    /**
+     * startSlideShow() - To start the slide show timer to run the slide show.
+     */
     void startSlideShow();
+    
+    /**
+     * stopSlideShow() - To stop slide show timer.
+     */
     void stopSlideShow();
-    /*
-     * Initialise the slideshow widget
-     * creation of the icons are done here
-     */
-    void setSlideShowWidget(HbDocumentLoader *DocLoader);
     
     /*
-     * Cleans up the slide show widget
+     * setSlideShowWidget() - Initialise the slideshow widget and creation of the icons are done here.
+     * @param - docloader
+     */
+    void setSlideShowWidget( HbDocumentLoader *DocLoader );
+    
+    /*
+     * cleanUp() -Cleans up the slide show widget
      */
     void cleanUp();
     
+    /*
+     * animationItem() - Return the icon to use for some transition effect
+     */
+    QGraphicsItem * animationItem();
+    
+    /**
+     * updateAnimationItem() - upadte the z value of anition item for smooth effect.
+     */    
+    void updateAnimationItem();
+    
+    
 signals:
-    void slideShowEvent(GlxSlideShowEvent e);
+    /**
+     * slideShowEvent() - This signal is emitted when slide show event happend lide ui on/off
+     * @param - GlxSlideShowEvent.
+     */
+    void slideShowEvent( GlxSlideShowEvent e );
+    
+    /**
+     * indexchanged() - This signal is emmitted when image selected index is changed. 
+     */
     void indexchanged();
     
 public slots :
+    /**
+     * triggeredEffect() - To start the slide show animation.
+     */
     void triggeredEffect();
+
+    /**
+     * continueSlideShow() - Play the slide show.
+     * @param - From HbAbstractButton.
+     */
+    void continueSlideShow( bool check );
+    
+    /**
+     * effectFinshed() -  Call back to get notification of slide show animation has been finshed.
+     */
     void effectFinshed();
-    void cancelEffect();
-    void pauseSlideShow();
-    void continueSlideShow(bool check);
-    void dataChanged(QModelIndex startIndex, QModelIndex endIndex);
-    void rowsInserted(const QModelIndex &parent, int start, int end);
-    void rowsRemoved(const QModelIndex &parent, int start, int end);
+    
+    /**
+     * dataChanged() - call back to monitor the widget data changed.
+     * @param - start index of data changed.
+     * @param - end index of data changed.
+     */
+    void dataChanged( QModelIndex startIndex, QModelIndex endIndex );
+    
+    /**
+     * rowsInserted() - call back of new row inserted in the model.
+     * @param - Items are inserted under parent.
+     * @param - start index of items inserted.
+     * @param - end index of items removed.
+     */
+    void rowsInserted( const QModelIndex &parent, int start, int end );
+    
+    /**
+     * rowsRemoved() - call back of new row removed in the model.
+     * @param - Items are removed from parent item.
+     * @param - start index of items inserted.
+     * @param - end index of items removed.
+     */    
+    void rowsRemoved( const QModelIndex &parent, int start, int end );
+    
+    /**
+     * modelDestroyed() - call back to monitor the model destroy.
+     */
     void modelDestroyed();
-    void orientationChanged(QRect screenRect);
+    
+    /**
+     * orientationChanged() - relayout the data when orientation has been changed
+     * @param - Screen Geometry
+     */
+    void orientationChanged( QRect screenRect );
 
+    /**
+     * leftMoveEffectFinished() - call back, when animation of browse the image in forward direction
+     * has been finished.
+     * @param - staus of effect
+     */
     void leftMoveEffectFinished( const HbEffect::EffectStatus &status );
+
+    /**
+     * leftMoveEffectFinished() - call back, when animation of browse the image in backward direction
+     * has been finished.
+     * @param - staus of effect
+     */
     void rightMoveEffectFinished( const HbEffect::EffectStatus &status );
     
 protected slots :
-    void leftGesture (int value);
-    void rightGesture (int value);
+    /**
+     * leftGesture() - To handle the left move event
+     * @parma number of pixel  move.
+     */
+    void leftGesture ( int value );
+    
+    /**
+     * rightGesture() - To handle the right move event
+     * @parma number of pixel  move.
+     */
+    void rightGesture ( int value );
     
 protected :
-    void gestureEvent(QGestureEvent *event);
+    /**
+     * gestureEvent() - gesture event handler.
+     * @param - QGestureEvent
+     */
+    void gestureEvent( QGestureEvent *event );
     
 private :
-    //clear all the model connection
+    /**
+     * clearCurrentModel() - clear all the model call backs
+     */
     void clearCurrentModel();
-    //add the connection to the model
+    
+    /**
+     * initializeNewModel() - register the model data change call backs
+     */
     void initializeNewModel();
+    
+    /**
+     * resetSlideShow() - Reinitialise the widget property.
+     */
     void resetSlideShow();
+    
+    /**
+     * moveImage() - Sopport function to handle the user browsing.
+     * @param -  next selected image index.
+     * @param - position of next image index.
+     * @param - effect event
+     * @param - animation finished callback function
+     */
     void moveImage( int nextIndex, int posX, const QString & move, char * callBack );
+    
+    /**
+     * addConnections() - register the internal and effect engine callback.
+     */
     void addConnections();
+	
+    /**
+     * removeConnections() - deregister the internal and effect engine callback.
+     */
     void removeConnections();
     
-    /*
-     * To get the focus index
+    /**
+     * cancelEffect() - To cancel the currnet effect running.
+     */
+    void cancelEffect();
+    
+    /**
+     * pauseSlideShow() - Pause the slide show.
+     */
+    void pauseSlideShow();
+    
+    /**
+     * getFocusIndex() -To get the focus index
      */
     int getFocusIndex( );
 
     /*
-     * To get the full screen icon of the image
+     * getIcon() - To get the full screen icon of the image
+     * @param - index of the icon
      */
     HbIcon getIcon( int index );
     
-    /*
-     * To check the itemis corrupted or not
+    /**
+     * isCorrupt() - To check the itemis corrupted or not
+     * @param - index of the icon
      */
     bool isCorrupt( int index );
     
-    /*
-     * To set the current ( focus ) item icon
+    /**
+     * setFocusItemIcon() - To set the current ( focus ) item icon
+     * @return - return the success or failure status
      */
     bool setFocusItemIcon();
     
-    /*
-     * To set the next itme icon in the list
+    /**
+     * setNextItemIcon() - To set the next itme icon in the list
+     * @return - return the success or failure status
      */
     bool setNextItemIcon();
     
-    /*
-     * To set the previous icon in the list
+    /**
+     * setPreItemIcon() - To set the previous icon in the list
+     * @return - return the success or failure status
      */
     bool setPreItemIcon();
     
-    /*
-     * In the case of all the image are corrupted then show the error notes
+    /**
+     * showErrorNote() - In the case of all the image are corrupted then show the error notes
      */
     void showErrorNote();
     
-    /*
-     * It will hide the corrupted images note
+    /**
+     * hideErrorNote() - It will hide the corrupted images note
      */
     void hideErrorNote();    
 
@@ -151,6 +304,7 @@
     GlxEffectEngine          *mEffectEngine;
     GlxSettingInterface      *mSettings;               //no ownership
     HbIconItem               *mIconItems[ NBR_ITEM ]; 
+    HbIconItem               *mAnimItem;
     HbIconItem               *mBackGroundItem;
     HbPushButton             *mContinueButton;
     HbLabel                  *mErrorNote ;               //when all the image are corrupted then show the no image label
--- a/ui/views/slideshowview/src/glxslideshowview.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/slideshowview/src/glxslideshowview.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -43,6 +43,8 @@
 {
     TRACER("GlxSlideShowView::GlxSlideShowView()");
     mDocLoader = DocLoader;
+    HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatelandscape.fxml" ), QString( "RotateLS" ) );
+    HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotateprotrait.fxml" ), QString( "RotatePT" ) );
 }
 
 GlxSlideShowView::~GlxSlideShowView()
@@ -59,12 +61,13 @@
         delete mDocLoader;
         mDocLoader = NULL;
     }
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotate.fxml" ), QString( "RotateStart" ) );
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotate1.fxml" ), QString( "RotateEnd" ) );
 }
 
 void GlxSlideShowView::activate()
 {
     TRACER("GlxSlideShowView::activate()");
-    mWindow->setOrientation(Qt::Horizontal, false);
 
     //finds the widgets from the docml
     loadObjects();
@@ -72,6 +75,7 @@
     setStatusBarVisible(FALSE);
     connect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) ); 
     connect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) );
+    connect( mWindow, SIGNAL( viewReady() ), this, SLOT( playLsOrientChangeAnim() ) );
     
     QCoreApplication::instance()->installEventFilter(this);
     
@@ -83,14 +87,14 @@
 void GlxSlideShowView::deActivate()
 {
     TRACER("GlxSlideShowView::deActivate()");
-    mWindow->unsetOrientation(false);
+    mWindow->unsetOrientation( false );
     
     setStatusBarVisible(TRUE);
-    setTitleBarVisible(TRUE);
-    
+    setTitleBarVisible(TRUE);    
                 
     disconnect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) );
     disconnect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) );
+    disconnect( mWindow, SIGNAL( viewReady() ), this, SLOT( playLsOrientChangeAnim() ) );
         
     //Delete the Items in the slide show widget
     mSlideShowWidget->cleanUp();
@@ -107,12 +111,13 @@
 {
     TRACER("GlxSlideShowView::setModel()");
     GLX_LOG_INFO2("GlxSlideShowView::setModel() model %u mModel %u", model, mModel);
-    if ( mModel != model ) {
     
-    modelDestroyed();
-    mModel = model;
-    connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
+    if ( mModel != model ) {    
+        modelDestroyed();
+        mModel = model;
+        connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
     } 
+    
     setModelContext();    
     mSlideShowWidget->setModel(mModel);
     
@@ -127,14 +132,24 @@
     TRACER("GlxSlideShowView::setModelContext()");
     if ( mModel && mWindow ) {
         GLX_LOG_INFO1("GlxSlideShowView::setModelContext %d", mWindow->orientation() );
-    
-            mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
-      /* if ( mWindow->orientation() == Qt::Horizontal ) {
+        if ( mWindow->orientation() == Qt::Horizontal ) {
             mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
         }
         else {
             mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
-        } */
+        }
+    }
+}
+
+void GlxSlideShowView::handleUserAction( qint32 commandId )
+{
+    switch( commandId ){
+    case EGlxCmdPlayBackAnim :
+        playPtOrientChangeAnim();
+        break;
+        
+    default :
+        break;
     }
 }
 
@@ -191,6 +206,40 @@
     }
 }
 
+void GlxSlideShowView::playLsOrientChangeAnim()
+{
+    qDebug( "GlxSlideShowView::playLsOrientChangeAnim() enter ");
+    if ( mWindow->orientation( ) == Qt ::Vertical ) {
+        mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
+        mSlideShowWidget->updateAnimationItem();
+        HbEffect::start( mSlideShowWidget->animationItem(), QString( "HbIconItem" ), QString( "RotateLS" ), this, "LsOrientChangeAnimFinished" );
+        qDebug( "GlxSlideShowView::playLsOrientChangeAnim() exit1 ");
+    }
+    else {
+        mWindow->setOrientation( Qt::Horizontal, false );
+    }
+}
+
+void GlxSlideShowView::playPtOrientChangeAnim()
+{
+    mModel->setData( QModelIndex(), ( int )GlxContextPtFs, GlxContextRole );
+    setTitleBarVisible( FALSE );
+    setStatusBarVisible( FALSE );
+    mSlideShowWidget->updateAnimationItem();
+    HbEffect::start( mSlideShowWidget->animationItem(), QString( "HbIconItem" ), QString( "RotatePT" ), this, "PtOrientChangeAnimFinished" );   
+}
+
+void GlxSlideShowView::LsOrientChangeAnimFinished( const HbEffect::EffectStatus )
+{
+    mWindow->setOrientation( Qt::Horizontal, false );
+    orientationChanged( Qt::Horizontal );
+}
+
+void GlxSlideShowView::PtOrientChangeAnimFinished( const HbEffect::EffectStatus )
+{
+    emit actionTriggered( EGlxCmdSlideShowBack );
+}
+
 bool GlxSlideShowView::eventFilter(QObject *obj, QEvent *event)
 {
     TRACER("GlxSlideShowView::event()");
--- a/ui/views/slideshowview/src/glxslideshowwidget.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -46,6 +46,7 @@
     : HbWidget( parent ), 
       mEffectEngine( NULL ), 
       mSettings( NULL ),
+      mAnimItem( NULL ),
       mBackGroundItem( NULL ),
       mContinueButton( NULL ), 
       mErrorNote( NULL ),
@@ -67,10 +68,13 @@
     
     //create the effect engine
     mEffectEngine = new GlxEffectEngine();
+    mItemIndex = 1;
     
     mBackGroundItem = new HbIconItem( this );
     mBackGroundItem->setBrush( QBrush( Qt::black ) );
-
+    mAnimItem = new HbIconItem( this );
+    mAnimItem->setAlignment( Qt::AlignCenter );
+    
     // Now load the view and the contents.
     // and then set the play icon to the button
     mContinueButton = static_cast<HbPushButton*>( DocLoader->findWidget( GLXSLIDESHOW_PB ) );
@@ -131,6 +135,9 @@
     
     delete mBackGroundItem ;
     mBackGroundItem = NULL;
+    
+    delete mAnimItem;
+    mAnimItem = NULL;
 
     if( mSlideTimer ) {
         delete mSlideTimer;
@@ -148,6 +155,18 @@
     HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionright.fxml"), QString( "RightMove" ));
 }
 
+QGraphicsItem * GlxSlideShowWidget::animationItem() 
+{ 
+    mAnimItem->setIcon( getIcon( mSelIndex[ mItemIndex ] ) ); 
+    return mAnimItem;
+}
+
+void GlxSlideShowWidget::updateAnimationItem() 
+{
+    mIconItems[ mItemIndex ]->setIcon( HbIcon() );
+    mAnimItem->setZValue( mAnimItem->zValue() + 10 );
+}
+
 void GlxSlideShowWidget::setModel ( QAbstractItemModel *model )
 {
     TRACER("GlxSlideShowWidget::setModel()");
@@ -171,6 +190,8 @@
     index = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1;    
     mIconItems[ index ]->setGeometry( QRect( -mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) );
     mBackGroundItem->setGeometry( mScreenRect );
+    int xPos = ( mScreenRect.width() - mScreenRect.height() ) >> 1 ;
+    mAnimItem->setGeometry( QRect( xPos, -xPos, mScreenRect.height(), mScreenRect.width() ) );
 }
 
 void GlxSlideShowWidget::triggeredEffect()
@@ -241,6 +262,10 @@
     Q_UNUSED( endIndex )
     TRACER("GlxSlideShowWidget::dataChanged()");
     GLX_LOG_INFO2("GlxSlideShowWidget::dataChanged startIndex = %d mSelIndex = %d ", startIndex.row(), mSelIndex  );
+
+    if ( HbEffect::effectRunning( mAnimItem ) ) {
+        return ;
+    }
     
     for( int i = 0; i < NBR_ITEM; ++i ) {
         if ( mSelIndex[ i ] == startIndex.row() ) {
@@ -255,6 +280,9 @@
     Q_UNUSED(parent);
     Q_UNUSED(start);
     Q_UNUSED(end);
+    if ( HbEffect::effectRunning( mAnimItem ) ) {
+        return ;
+    }
     resetSlideShow();  
 }
 
@@ -286,6 +314,8 @@
 void GlxSlideShowWidget::orientationChanged(QRect screenRect)
 {
     TRACER("GlxSlideShowWidget::orientationChanged()");
+    mAnimItem->setIcon( HbIcon() );
+    mAnimItem->setZValue( mAnimItem->zValue() - 10 );
     cancelEffect();
     setItemGeometry( screenRect);
     resetSlideShow();
@@ -494,7 +524,7 @@
     if ( variant.isValid() && variant.canConvert< bool> () ) {
         return variant.value< bool > () ;
     }
-    return false ;    
+    return false ;
 }
 
 bool GlxSlideShowWidget::setFocusItemIcon( )
@@ -507,10 +537,8 @@
             qDebug( "GlxSlideShowWidget::setFocusItemIcon1 focus index %d" , focusIndex );
             mIconItems[ mItemIndex ]->setIcon( getIcon( focusIndex ) ) ;
             mSelIndex[ mItemIndex ] = focusIndex ;
-            if (  i != 0 ) {
-                mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxFocusIndexRole );
-                mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxVisualWindowIndex );
-            }
+            mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxFocusIndexRole );
+            mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxVisualWindowIndex );
             return true;
         }
         focusIndex = ( focusIndex + 1 ) % nbrItem;
@@ -547,7 +575,7 @@
 {
     int nbrItem = mModel->rowCount() ;
     int imageIndex = mSelIndex[ mItemIndex ] > 0 ? mSelIndex[ mItemIndex ] - 1 : nbrItem - 1 ;
-    int itemIndex = mItemIndex > 0 ? mItemIndex - 1 : mItemIndex  ;
+    int itemIndex = mItemIndex > 0 ? mItemIndex - 1 : NBR_ITEM - 1  ;
     
     for( int i = 1; i < nbrItem; ++i ) {
         if ( isCorrupt( imageIndex ) == false ) {
--- a/ui/views/viewbase/inc/glxview.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/views/viewbase/inc/glxview.h	Fri Aug 06 20:44:25 2010 +0530
@@ -68,7 +68,6 @@
 signals:
     void actionTriggered( qint32 id );
     void itemSpecificMenuTriggered( qint32,QPointF );
-    void gridItemSelected( const QModelIndex &);   
     
 private :
 	qint32 mId;	
--- a/ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h	Fri Aug 06 20:44:25 2010 +0530
@@ -20,6 +20,7 @@
 #define GLXZOOMINOUTEFFECTPLUGIN_H
 
 #include "glxeffectpluginbase.h"
+#include "glxlocalisationstrings.h"
 
 class GlxZoomInOutEffectPlugin : public GlxEffectPluginBase
 {
@@ -47,7 +48,7 @@
     /*
      * get the name of the effect, use to shown in the slide show setting view
      */
-    static QString effectName() { return QString ("ZoomInOut") ; }
+    static QString effectName() { return   (GLX_EFFECTS_ZOOMIN_ZOOMOUT) ; }
     
 private :
     QList <QString > mEffectFileList;
--- a/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -18,6 +18,7 @@
 
 #include "glxflipeffectplugin.h"
 #include "glxuistd.h"
+#include "glxlocalisationstrings.h"
 
 GlxFlipEffectPlugin::GlxFlipEffectPlugin() : GlxEffectPluginBase( FLIP_EFFECT )
 {
@@ -36,7 +37,7 @@
 
 QString GlxFlipEffectPlugin::effectName() 
 { 
-    return ( "FLip" ) ; 
+    return GLX_EFFECTS_FLIP ; 
 }
 
 GlxFlipEffectPlugin::~GlxFlipEffectPlugin()
--- a/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -37,7 +37,7 @@
 
 QString GlxHelixEffectPlugin::effectName() 
 { 
-    return ( "Helix" ) ; 
+    return ( GLX_EFFECTS_ZOOM_AND_PAN ) ; 
 }
 
 GlxHelixEffectPlugin::~GlxHelixEffectPlugin()
--- a/ui/widgets/bwins/glxzoomwidgetu.def	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/widgets/bwins/glxzoomwidgetu.def	Fri Aug 06 20:44:25 2010 +0530
@@ -12,34 +12,35 @@
 	?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 11 NONAME ; void GlxZoomWidget::forceZoomToBackground(void)
 	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *)
 	?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 13 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void)
-	?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 14 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *)
-	?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 15 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void)
-	?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 16 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *)
-	?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 17 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF)
-	?activate@GlxZoomWidget@@QAEXXZ @ 18 NONAME ; void GlxZoomWidget::activate(void)
-	?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 19 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void)
-	?indexChanged@GlxZoomWidget@@QAEXH@Z @ 20 NONAME ; void GlxZoomWidget::indexChanged(int)
-	?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 21 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF)
-	?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void)
-	?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 23 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void)
-	?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 24 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void)
-	?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 26 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int)
-	?indexChanged@GlxZoomWidget@@QAEXXZ @ 27 NONAME ; void GlxZoomWidget::indexChanged(void)
-	?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 28 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF)
-	?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 29 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *)
-	?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 30 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &)
-	?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 31 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const
-	?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 32 NONAME ; void GlxZoomWidget::decodedImageAvailable(void)
-	??_EGlxZoomWidget@@UAE@I@Z @ 33 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int)
-	??1GlxZoomWidget@@UAE@XZ @ 34 NONAME ; GlxZoomWidget::~GlxZoomWidget(void)
-	?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 35 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *)
-	?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 36 NONAME ; void GlxZoomWidget::pinchGestureReceived(int)
-	?setZoomParams@GlxZoomWidget@@AAEXXZ @ 37 NONAME ; void GlxZoomWidget::setZoomParams(void)
-	?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 38 NONAME ; void GlxZoomWidget::setWindowSize(class QSize)
-	?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 39 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void)
-	?animationFrameChanged@GlxZoomWidget@@QAEXH@Z @ 40 NONAME ; void GlxZoomWidget::animationFrameChanged(int)
-	?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 41 NONAME ; void GlxZoomWidget::modelDestroyed(void)
-	?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 42 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *)
-	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int)
+	?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 14 NONAME ; void GlxZoomWidget::animateDoubleTap(void)
+	?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 15 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *)
+	?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 16 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void)
+	?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 17 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *)
+	?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 18 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF)
+	?activate@GlxZoomWidget@@QAEXXZ @ 19 NONAME ; void GlxZoomWidget::activate(void)
+	?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 20 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void)
+	?indexChanged@GlxZoomWidget@@QAEXH@Z @ 21 NONAME ; void GlxZoomWidget::indexChanged(int)
+	?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 22 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF)
+	?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void)
+	?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 24 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void)
+	?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 25 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void)
+	?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 26 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 27 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int)
+	?indexChanged@GlxZoomWidget@@QAEXXZ @ 28 NONAME ; void GlxZoomWidget::indexChanged(void)
+	?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 29 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF)
+	?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 30 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *)
+	?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 31 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &)
+	?stepZoom@GlxZoomWidget@@IAEXXZ @ 32 NONAME ; void GlxZoomWidget::stepZoom(void)
+	?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 33 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const
+	?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 34 NONAME ; void GlxZoomWidget::decodedImageAvailable(void)
+	??_EGlxZoomWidget@@UAE@I@Z @ 35 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int)
+	??1GlxZoomWidget@@UAE@XZ @ 36 NONAME ; GlxZoomWidget::~GlxZoomWidget(void)
+	?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 37 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *)
+	?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 38 NONAME ; void GlxZoomWidget::pinchGestureReceived(int)
+	?setZoomParams@GlxZoomWidget@@AAEXXZ @ 39 NONAME ; void GlxZoomWidget::setZoomParams(void)
+	?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 40 NONAME ; void GlxZoomWidget::setWindowSize(class QSize)
+	?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 41 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void)
+	?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 42 NONAME ; void GlxZoomWidget::modelDestroyed(void)
+	?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *)
+	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int)
 
--- a/ui/widgets/eabi/glxzoomwidgetu.def	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/widgets/eabi/glxzoomwidgetu.def	Fri Aug 06 20:44:25 2010 +0530
@@ -8,44 +8,45 @@
 	_ZN13GlxZoomWidget12indexChangedEv @ 7 NONAME
 	_ZN13GlxZoomWidget13animateZoomInE7QPointF @ 8 NONAME
 	_ZN13GlxZoomWidget13setWindowSizeE5QSize @ 9 NONAME
-	_ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 10 NONAME
-	_ZN13GlxZoomWidget15getFocusedImageEv @ 11 NONAME
-	_ZN13GlxZoomWidget15setMinMaxZValueEii @ 12 NONAME
-	_ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 13 NONAME
-	_ZN13GlxZoomWidget16staticMetaObjectE @ 14 NONAME DATA 16
-	_ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 15 NONAME
-	_ZN13GlxZoomWidget17sendDecodeRequestEi @ 16 NONAME
-	_ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 17 NONAME
-	_ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 18 NONAME
-	_ZN13GlxZoomWidget19getStaticMetaObjectEv @ 19 NONAME
-	_ZN13GlxZoomWidget20pinchGestureReceivedEi @ 20 NONAME
-	_ZN13GlxZoomWidget20retreiveFocusedImageEv @ 21 NONAME
-	_ZN13GlxZoomWidget21animationFrameChangedEi @ 22 NONAME
-	_ZN13GlxZoomWidget21decodedImageAvailableEv @ 23 NONAME
-	_ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 24 NONAME
-	_ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 25 NONAME
-	_ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 26 NONAME
-	_ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 27 NONAME
-	_ZN13GlxZoomWidget7cleanUpEv @ 28 NONAME
-	_ZN13GlxZoomWidget8activateEv @ 29 NONAME
-	_ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 30 NONAME
-	_ZN13GlxZoomWidget9zoomImageEf7QPointF @ 31 NONAME
-	_ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 32 NONAME
-	_ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 33 NONAME
-	_ZN13GlxZoomWidgetD0Ev @ 34 NONAME
-	_ZN13GlxZoomWidgetD1Ev @ 35 NONAME
-	_ZN13GlxZoomWidgetD2Ev @ 36 NONAME
-	_ZNK13GlxZoomWidget10metaObjectEv @ 37 NONAME
-	_ZTI13GlxZoomWidget @ 38 NONAME
-	_ZTV13GlxZoomWidget @ 39 NONAME
-	_ZThn16_N13GlxZoomWidgetD0Ev @ 40 NONAME
-	_ZThn16_N13GlxZoomWidgetD1Ev @ 41 NONAME
-	_ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 42 NONAME
-	_ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 43 NONAME
-	_ZThn8_N13GlxZoomWidgetD0Ev @ 44 NONAME
-	_ZThn8_N13GlxZoomWidgetD1Ev @ 45 NONAME
-	_ZN13GlxZoomWidget14modelDestroyedEv @ 46 NONAME
-	_ZN13GlxZoomWidget13setZoomParamsEv @ 47 NONAME
-	_ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 48 NONAME
-	_ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 49 NONAME
+	_ZN13GlxZoomWidget13setZoomParamsEv @ 10 NONAME
+	_ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 11 NONAME
+	_ZN13GlxZoomWidget14modelDestroyedEv @ 12 NONAME
+	_ZN13GlxZoomWidget15getFocusedImageEv @ 13 NONAME
+	_ZN13GlxZoomWidget15setMinMaxZValueEii @ 14 NONAME
+	_ZN13GlxZoomWidget16animateDoubleTapEv @ 15 NONAME
+	_ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 16 NONAME
+	_ZN13GlxZoomWidget16staticMetaObjectE @ 17 NONAME DATA 16
+	_ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 18 NONAME
+	_ZN13GlxZoomWidget17sendDecodeRequestEi @ 19 NONAME
+	_ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 20 NONAME
+	_ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 21 NONAME
+	_ZN13GlxZoomWidget19getStaticMetaObjectEv @ 22 NONAME
+	_ZN13GlxZoomWidget20pinchGestureReceivedEi @ 23 NONAME
+	_ZN13GlxZoomWidget20retreiveFocusedImageEv @ 24 NONAME
+	_ZN13GlxZoomWidget21decodedImageAvailableEv @ 25 NONAME
+	_ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 26 NONAME
+	_ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 27 NONAME
+	_ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 28 NONAME
+	_ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 29 NONAME
+	_ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 30 NONAME
+	_ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 31 NONAME
+	_ZN13GlxZoomWidget7cleanUpEv @ 32 NONAME
+	_ZN13GlxZoomWidget8activateEv @ 33 NONAME
+	_ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 34 NONAME
+	_ZN13GlxZoomWidget8stepZoomEv @ 35 NONAME
+	_ZN13GlxZoomWidget9zoomImageEf7QPointF @ 36 NONAME
+	_ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 37 NONAME
+	_ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 38 NONAME
+	_ZN13GlxZoomWidgetD0Ev @ 39 NONAME
+	_ZN13GlxZoomWidgetD1Ev @ 40 NONAME
+	_ZN13GlxZoomWidgetD2Ev @ 41 NONAME
+	_ZNK13GlxZoomWidget10metaObjectEv @ 42 NONAME
+	_ZTI13GlxZoomWidget @ 43 NONAME
+	_ZTV13GlxZoomWidget @ 44 NONAME
+	_ZThn16_N13GlxZoomWidgetD0Ev @ 45 NONAME
+	_ZThn16_N13GlxZoomWidgetD1Ev @ 46 NONAME
+	_ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 47 NONAME
+	_ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 48 NONAME
+	_ZThn8_N13GlxZoomWidgetD0Ev @ 49 NONAME
+	_ZThn8_N13GlxZoomWidgetD1Ev @ 50 NONAME
 
--- a/ui/widgets/glxzoomwidget/glxzoomwidget.pro	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/widgets/glxzoomwidget/glxzoomwidget.pro	Fri Aug 06 20:44:25 2010 +0530
@@ -49,6 +49,8 @@
 HEADERS += inc/glxzoomwidget.h inc/glxzoomwidget_global.h
 SOURCES += src/glxzoomwidget.cpp
 
+DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
+
 defBlock = \      
 "$${LITERAL_HASH}if defined(EABI)" \
 "DEFFILE  ../eabi/glxzoomwidget.def" \
--- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h	Fri Aug 06 20:44:25 2010 +0530
@@ -33,6 +33,8 @@
 
 const int MAXZVALUE = 100;
 const int MINZVALUE = 0;
+const int NOOFSTEPS = 20;
+const float MAXDTZOOMIN = 3.5;
 
 class GLXZOOMWIDGETSHARED_EXPORT GlxZoomWidget : public HbScrollArea
 {
@@ -58,7 +60,8 @@
     signals:
     void pinchGestureReceived(int index);
     void zoomWidgetMovedBackground(int index);
-
+    void stepZoom();
+    
     public slots:
     //for Decoder support
     void decodedImageAvailable();
@@ -67,9 +70,11 @@
 	//for animation effects
 	void animateZoomIn(QPointF animRefPoint);
 	void animateZoomOut(QPointF animRefPoint);
-	void animationFrameChanged(int frameNumber);
 	void animationTimeLineFinished();
 
+	//animate double tap
+	void animateDoubleTap();
+	
     protected:
     bool sceneEvent(QEvent *event);
     bool sceneEventFilter(QGraphicsItem *watched,QEvent *event);
@@ -143,5 +148,13 @@
     //for Decoder support
     GlxImageDecoderWrapper* mImageDecoder;
 
+    //stores the incremental scalingfactor(sf) while performing double tap animation
+    qreal mIncSF;
+    //stores the scalingfactor increment applicable for each step of double tap animation
+    qreal msfInc;
+    //stores the item size before performing zoomout(zo)
+    QSizeF mzoSize;
+    //counter to track the double tap animation steps
+    int mdoubletapSteps;
 };
 #endif  //GLXZOOMWIDGET_H
--- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Fri Jul 23 20:41:04 2010 +0530
+++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Fri Aug 06 20:44:25 2010 +0530
@@ -51,17 +51,18 @@
     //initializing the image decoder
     mImageDecoder = new GlxImageDecoderWrapper;
 
-	//inititalizing the timer for animation
-	m_AnimTimeLine = new QTimeLine(500, this);
-	m_AnimTimeLine->setFrameRange(0, 100);
-	connect(m_AnimTimeLine, SIGNAL(frameChanged(int)), this, SLOT(animationFrameChanged(int)));
-	connect(m_AnimTimeLine, SIGNAL(finished()), this, SLOT(animationTimeLineFinished()));
+	
+	//AA: signal and slot to perform double tap animation
+    //after every step redraw, signal is emitted to perform the next step
+	connect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap() ), Qt::QueuedConnection );
 }
 
 GlxZoomWidget::~GlxZoomWidget()
 {
     //disconnect all existing signals
     disconnect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ) );
+    //AA
+    disconnect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap()));
     //no Null checks required
     delete mZoomItem;
 //    delete mZoomWidget; //as this is a content widegt it will automatically be deleted
@@ -164,7 +165,7 @@
 
 bool GlxZoomWidget::sceneEventFilter(QGraphicsItem *watched,QEvent *event)
 {
-     qDebug("GlxCoverFlow::eventFilter " );
+    qDebug( "GlxZoomWidget::sceneEventFilter enter event type %d ", event->type() );
     bool consume = false;
     if (event->type() == QEvent::Gesture) {
         consume = executeGestureEvent(watched, static_cast<QGestureEvent*>(event));
@@ -293,6 +294,7 @@
 //makes sure that the gesture is on the screen center if the image is smaller than the screen
 void GlxZoomWidget::adjustGestureCenter(QPointF & gestureCenter, qreal& zoomFactor)
 {
+    /* commenting this tweak, not necessary, needs to be reimplemented for pinch: IN progress
     if(zoomFactor > 1 &&zoomFactor > 1.2 )  {
         zoomFactor = 1.2;
     }
@@ -300,6 +302,7 @@
     if(zoomFactor < 1 &&zoomFactor < 0.8 )   {
         zoomFactor = 0.8;
     }
+	*/
     QSizeF requiredSize(mCurrentSize.width()*zoomFactor, mCurrentSize.height()*zoomFactor);
     //keep smaller image centered
     if(mCurrentSize.width() <= mWindowSize.width() )
@@ -540,33 +543,68 @@
     mBlackBackgroundItem->show();
     m_AnimRefPoint = animRefPoint;
     QSizeF requiredSize = mItemSize;
-    requiredSize.scale(mWindowSize*3.5, Qt::KeepAspectRatio);
+    //MAXDTZOOMIN size is set to 3.5 times window size
+    requiredSize.scale(mWindowSize*MAXDTZOOMIN, Qt::KeepAspectRatio);
 	m_FinalAnimatedScaleFactor = requiredSize.width()/mMinDecScaleSize.width();
-	m_AnimTimeLine->setDirection(QTimeLine::Forward);
-	m_AnimTimeLine->start();
-  //  zoomImage(5, m_AnimRefPoint);
+	//initiale variable for double tap animation
+    mIncSF = 1;
+    //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
+    //SF has to always greater than 1 for upscaling, hence range for zoomout is [1,m_FinalAnimatedScaleFactor]
+    msfInc = (m_FinalAnimatedScaleFactor-1)/NOOFSTEPS;
+    //set the no. of steps for double tap animation 
+    mdoubletapSteps = NOOFSTEPS;
+    animateDoubleTap();
 
 }
 void GlxZoomWidget::animateZoomOut(QPointF animRefPoint)
 {
-	m_AnimRefPoint = animRefPoint;
-	m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width();
-	//m_AnimTimeLine->setDirection(QTimeLine::Backward);
-	m_AnimTimeLine->start();
+    m_AnimRefPoint = animRefPoint;
+    //Zoom out to FS (mMinDecScaleSize) from the currentsize
+    m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width();
+    //initiale variable for double tap animation
+    mIncSF = 1;
+    //calculate the step increment SF for each step
+    msfInc = (1 - m_FinalAnimatedScaleFactor)/NOOFSTEPS;
+    //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
+    mzoSize = mCurrentSize;
+    //set the no. of steps for double tap animation 
+    //AA:: the no.of steps are kept the same for zoomin/zoomout, however tweaking them can be considered
+    mdoubletapSteps = NOOFSTEPS;
+    animateDoubleTap();
+    //AA
+   
 }
-void GlxZoomWidget::animationFrameChanged(int frameNumber)
-{
-qreal scaleFactor = 1;
-	if(m_FinalAnimatedScaleFactor > 1) {
-        scaleFactor = (1.0 + (((m_FinalAnimatedScaleFactor - 1)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width());
-	}
-	if(m_FinalAnimatedScaleFactor < 1) {
-        scaleFactor = (m_FinalAnimatedScaleFactor+ (((1 - m_FinalAnimatedScaleFactor)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width());
-	}
+
 
-	zoomImage(scaleFactor, m_AnimRefPoint);
-
-}
+void GlxZoomWidget::animateDoubleTap()
+    {
+    //calculate increamental scale factor based on the step and then calculate the applicable scale factor this step
+    //increamental SF works on the ImageSize when double tap started, applicable(required) SF calculates the delate SF
+    if(m_FinalAnimatedScaleFactor > 1) {
+        //AA::zoomin case
+        mIncSF += msfInc;
+        qreal reqSF = (mItemSize.width()*(mIncSF))/mCurrentSize.width();
+        zoomImage(reqSF, m_AnimRefPoint);
+        }
+    if(m_FinalAnimatedScaleFactor < 1) {
+        //AA::zoomout case
+        mIncSF -= msfInc;
+        qreal reqSF = (mzoSize.width()* mIncSF)/mCurrentSize.width();
+        zoomImage(reqSF, m_AnimRefPoint);
+        }   
+    //check if all steps are done,if not emit signal to continue the animation
+    if(mdoubletapSteps >= 1 ){
+        mdoubletapSteps -= 1;
+        emit stepZoom();    
+        }
+    else {
+        //animation is complete, finalize the widget transform using setgeometry
+        //reset the counter
+        mdoubletapSteps = 0;
+        animationTimeLineFinished();
+        }
+        
+    }
 void GlxZoomWidget::animationTimeLineFinished()
 {
 	finalizeWidgetTransform();