201039
authorhgs
Mon, 27 Sep 2010 15:13:20 +0530
changeset 69 45459746d5e8
parent 65 ccee5c4b0de4
child 71 27f2d7aec52a
201039
data/fullscreen.docml
data/fullscreentogridportrait.fxml
photos.qrc
tvout/bwins/glxtvoutwrapperu.def
tvout/eabi/glxtvoutwrapperu.def
tvout/tvoutengine/bwins/glxtvoutu.def
tvout/tvoutengine/eabi/glxtvoutu.def
tvout/tvoutengine/group/glxtvout.mmp
tvout/tvoutengine/inc/glxhdmicontroller.h
tvout/tvoutengine/inc/glxhdmisurfaceupdater.h
tvout/tvoutengine/src/glxhdmicontroller.cpp
tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp
tvout/tvoutwrapper/inc/glxtvoutwrapper.h
tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h
tvout/tvoutwrapper/src/glxtvoutwrapper.cpp
tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp
ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h
ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp
ui/inc/glxicondefs.h
ui/inc/glxmodelroles.h
ui/inc/glxuistd.h
ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h
ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp
ui/uiengine/model/bwins/glxmediamodelu.def
ui/uiengine/model/eabi/glxmediamodelu.def
ui/uiengine/model/mediamodel/inc/glxmediamodel.h
ui/uiengine/model/mediamodel/src/glxmediamodel.cpp
ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp
ui/viewmanagement/statehandler/src/glxstatemanager.cpp
ui/views/fullscreenview/inc/glxfullscreenview.h
ui/views/fullscreenview/src/glxfullscreenview.cpp
ui/views/gridview/src/glxgridview.cpp
ui/views/slideshowview/src/glxslideshowview.cpp
ui/viewutilities/effectengine/src/glxeffectengine.cpp
ui/viewutilities/effectengine/src/glxtransitioneffect.cpp
ui/widgets/bwins/glxzoomwidgetu.def
ui/widgets/eabi/glxzoomwidgetu.def
ui/widgets/glxzoomwidget/inc/glxzoomwidget.h
ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp
--- a/data/fullscreen.docml	Mon Sep 20 12:39:08 2010 +0530
+++ b/data/fullscreen.docml	Mon Sep 27 15:13:20 2010 +0530
@@ -12,7 +12,7 @@
                 <enums name="scrollDirections" value="Horizontal"/>
                 <real name="z" value="7"/>
                 <integer name="columnCount" value="1"/>
-                <sizehint height="44.77612un" type="PREFERRED" width="44.77612un"/>
+                <sizehint height="11.50546un" type="PREFERRED" width="53.731343un"/>
                 <bool name="frictionEnabled" value="TRUE"/>
                 <integer name="rowCount" value="1"/>
             </widget>
@@ -37,7 +37,7 @@
                 <anchoritem dst="mCoverFlow" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="mCoverFlow" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="mImageStrip" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
-                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="85.51999un" src="" srcEdge="TOP"/>
+                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="84.016928un" src="" srcEdge="TOP"/>
                 <anchoritem dst="mImageStrip" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="mImageStrip" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="toolBar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
@@ -55,6 +55,7 @@
         <widget name="mImageStrip" type="HbGridView">
             <integer name="columnCount" value="4"/>
             <integer name="rowCount" value="1"/>
+            <sizehint height="11.50546un" type="PREFERRED" width="53.731343un"/>
         </widget>
         <widget name="toolBar" type="HbToolBar">
             <sizehint height="58.50746un" type="PREFERRED" width="9.40299un"/>
@@ -66,7 +67,7 @@
                 <anchoritem dst="mCoverFlow" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="mCoverFlow" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="mImageStrip" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
-                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="83.59454un" src="" srcEdge="TOP"/>
+                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="84.016928un" src="" srcEdge="TOP"/>
                 <anchoritem dst="mImageStrip" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="mImageStrip" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="toolBar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
@@ -86,6 +87,7 @@
         <widget name="mImageStrip" type="HbGridView">
             <integer name="columnCount" value="6"/>
             <integer name="rowCount" value="1"/>
+            <sizehint height="12.2811un" type="PREFERRED" width="85.970158un"/>
         </widget>
         <widget name="toolBar" type="HbToolBar">
             <sizehint height="46.71642un" type="PREFERRED" width="9.4427un"/>
@@ -97,7 +99,7 @@
                 <anchoritem dst="mCoverFlow" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="mCoverFlow" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="mImageStrip" dstEdge="LEFT" spacing="9.55223un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="41.2897un" src="" srcEdge="TOP"/>
+                <anchoritem dst="mImageStrip" dstEdge="TOP" spacing="41.450243un" src="" srcEdge="TOP"/>
                 <anchoritem dst="mImageStrip" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
                 <anchoritem dst="mImageStrip" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="toolBar" dstEdge="TOP" spacing="9.7015un" src="" srcEdge="TOP"/>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/fullscreentogridportrait.fxml	Mon Sep 27 15:13:20 2010 +0530
@@ -0,0 +1,21 @@
+<layers>
+<visual>
+
+<param name="translation_x" type="anim">
+<duration>0.4</duration>
+<style>linear</style>
+      <keyframe at="0">0</keyframe>
+      <keyframe at="1">1</keyframe>
+<start ref="visual.right">1</start>
+<end ref="visual.left">1</end>
+</param>
+
+<param name="translation_y" type="anim">
+	<style>linear</style>
+	<duration>0.4</duration>
+	<keyframe at="0.0">63.0</keyframe>
+	<keyframe at="1.0">63.0</keyframe>
+</param>
+
+</visual>
+</layers>
--- a/photos.qrc	Mon Sep 20 12:39:08 2010 +0530
+++ b/photos.qrc	Mon Sep 27 15:13:20 2010 +0530
@@ -16,6 +16,7 @@
         <file>data/uphide.fxml</file>
         <file>data/downshow.fxml</file> 
         <file>data/fullscreentogrid.fxml</file>
+        <file>data/fullscreentogridportrait.fxml</file>
         <file>data/gridtofullscreenhide.fxml</file>
         <file>data/gridtofullscreenshow.fxml</file>
         <file>data/rotatelandscape.fxml</file>
@@ -37,6 +38,6 @@
         <file>data/Wait/qgn_graf_ring_wait_08.svg</file>
         <file>data/Wait/qgn_graf_ring_wait_09.svg</file>
         <file>data/Wait/qgn_graf_ring_wait_10.svg</file>
-	<file>data/details.svg</file>
+        <file>data/details.svg</file>
     </qresource>
 </RCC>
--- a/tvout/bwins/glxtvoutwrapperu.def	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/bwins/glxtvoutwrapperu.def	Mon Sep 27 15:13:20 2010 +0530
@@ -2,11 +2,10 @@
 	?itemNotSupported@GlxTvOutWrapper@@QAEXXZ @ 1 NONAME ; void GlxTvOutWrapper::itemNotSupported(void)
 	??1GlxTvOutWrapper@@QAE@XZ @ 2 NONAME ; GlxTvOutWrapper::~GlxTvOutWrapper(void)
 	?activateZoom@GlxTvOutWrapper@@QAEX_N@Z @ 3 NONAME ; void GlxTvOutWrapper::activateZoom(bool)
-	??0GlxTvOutWrapper@@QAE@XZ @ 4 NONAME ; GlxTvOutWrapper::GlxTvOutWrapper(void)
-	?deactivateZoom@GlxTvOutWrapper@@QAEXXZ @ 5 NONAME ; void GlxTvOutWrapper::deactivateZoom(void)
-	?fadeSurface@GlxTvOutWrapper@@QAEX_N@Z @ 6 NONAME ; void GlxTvOutWrapper::fadeSurface(bool)
-	?setToCloningMode@GlxTvOutWrapper@@QAEXXZ @ 7 NONAME ; void GlxTvOutWrapper::setToCloningMode(void)
-	?setImagetoHDMI@GlxTvOutWrapper@@QAEXXZ @ 8 NONAME ; void GlxTvOutWrapper::setImagetoHDMI(void)
+	?setModel@GlxTvOutWrapper@@QAEXPAVQAbstractItemModel@@VQSize@@@Z @ 4 NONAME ; void GlxTvOutWrapper::setModel(class QAbstractItemModel *, class QSize)
+	??0GlxTvOutWrapper@@QAE@XZ @ 5 NONAME ; GlxTvOutWrapper::GlxTvOutWrapper(void)
+	?deactivateZoom@GlxTvOutWrapper@@QAEXXZ @ 6 NONAME ; void GlxTvOutWrapper::deactivateZoom(void)
+	?setImagetoHDMI@GlxTvOutWrapper@@QAEXXZ @ 7 NONAME ; void GlxTvOutWrapper::setImagetoHDMI(void)
+	?setToCloningMode@GlxTvOutWrapper@@QAEXXZ @ 8 NONAME ; void GlxTvOutWrapper::setToCloningMode(void)
 	?setToNativeMode@GlxTvOutWrapper@@QAEXXZ @ 9 NONAME ; void GlxTvOutWrapper::setToNativeMode(void)
-	?setModel@GlxTvOutWrapper@@QAEXPAVQAbstractItemModel@@VQSize@@_N@Z @ 10 NONAME ; void GlxTvOutWrapper::setModel(class QAbstractItemModel *, class QSize, bool)
 
--- a/tvout/eabi/glxtvoutwrapperu.def	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/eabi/glxtvoutwrapperu.def	Mon Sep 27 15:13:20 2010 +0530
@@ -1,14 +1,13 @@
 EXPORTS
-	_ZN15GlxTvOutWrapper11fadeSurfaceEb @ 1 NONAME
-	_ZN15GlxTvOutWrapper12activateZoomEb @ 2 NONAME
-	_ZN15GlxTvOutWrapper14deactivateZoomEv @ 3 NONAME
-	_ZN15GlxTvOutWrapper14setImagetoHDMIEv @ 4 NONAME
-	_ZN15GlxTvOutWrapper15setToNativeModeEv @ 5 NONAME
-	_ZN15GlxTvOutWrapper16itemNotSupportedEv @ 6 NONAME
-	_ZN15GlxTvOutWrapper16setToCloningModeEv @ 7 NONAME
-	_ZN15GlxTvOutWrapper8setModelEP18QAbstractItemModel5QSizeb @ 8 NONAME
-	_ZN15GlxTvOutWrapperC1Ev @ 9 NONAME
-	_ZN15GlxTvOutWrapperC2Ev @ 10 NONAME
-	_ZN15GlxTvOutWrapperD1Ev @ 11 NONAME
-	_ZN15GlxTvOutWrapperD2Ev @ 12 NONAME
+	_ZN15GlxTvOutWrapper12activateZoomEb @ 1 NONAME
+	_ZN15GlxTvOutWrapper14deactivateZoomEv @ 2 NONAME
+	_ZN15GlxTvOutWrapper14setImagetoHDMIEv @ 3 NONAME
+	_ZN15GlxTvOutWrapper15setToNativeModeEv @ 4 NONAME
+	_ZN15GlxTvOutWrapper16itemNotSupportedEv @ 5 NONAME
+	_ZN15GlxTvOutWrapper16setToCloningModeEv @ 6 NONAME
+	_ZN15GlxTvOutWrapper8setModelEP18QAbstractItemModel5QSize @ 7 NONAME
+	_ZN15GlxTvOutWrapperC1Ev @ 8 NONAME
+	_ZN15GlxTvOutWrapperC2Ev @ 9 NONAME
+	_ZN15GlxTvOutWrapperD1Ev @ 10 NONAME
+	_ZN15GlxTvOutWrapperD2Ev @ 11 NONAME
 
--- a/tvout/tvoutengine/bwins/glxtvoutu.def	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutengine/bwins/glxtvoutu.def	Mon Sep 27 15:13:20 2010 +0530
@@ -1,17 +1,16 @@
 EXPORTS
 	?ActivateZoom@CGlxHdmiController@@QAEXH@Z @ 1 NONAME ; void CGlxHdmiController::ActivateZoom(int)
 	?ScreenSizeL@CGlxTv@@QBE?AVTSize@@XZ @ 2 NONAME ; class TSize CGlxTv::ScreenSizeL(void) const
-	?NewL@CGlxHdmiController@@SAPAV1@VTRect@@H@Z @ 3 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(class TRect, int)
-	?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@PAVCFbsBitmap@@H@Z @ 4 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, class CFbsBitmap *, int)
-	??1CGlxTv@@UAE@XZ @ 5 NONAME ; CGlxTv::~CGlxTv(void)
-	??1CGlxHdmiController@@UAE@XZ @ 6 NONAME ; CGlxHdmiController::~CGlxHdmiController(void)
-	?IsWidescreen@CGlxTv@@QBEHXZ @ 7 NONAME ; int CGlxTv::IsWidescreen(void) const
-	?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 8 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void)
-	?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 9 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void)
-	?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 10 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &)
-	?IsConnected@CGlxTv@@QBEHXZ @ 11 NONAME ; int CGlxTv::IsConnected(void) const
-	?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 12 NONAME ; void CGlxHdmiController::ItemNotSupported(void)
-	?FadeSurface@CGlxHdmiController@@QAEXH@Z @ 13 NONAME ; void CGlxHdmiController::FadeSurface(int)
-	?IsHDMIConnected@CGlxTv@@QBEHXZ @ 14 NONAME ; int CGlxTv::IsHDMIConnected(void) const
-	?DeactivateZoom@CGlxHdmiController@@QAEXXZ @ 15 NONAME ; void CGlxHdmiController::DeactivateZoom(void)
+	?SetImageL@CGlxHdmiController@@QAEXABVTDesC16@@PAVCFbsBitmap@@H@Z @ 3 NONAME ; void CGlxHdmiController::SetImageL(class TDesC16 const &, class CFbsBitmap *, int)
+	??1CGlxTv@@UAE@XZ @ 4 NONAME ; CGlxTv::~CGlxTv(void)
+	??1CGlxHdmiController@@UAE@XZ @ 5 NONAME ; CGlxHdmiController::~CGlxHdmiController(void)
+	?IsWidescreen@CGlxTv@@QBEHXZ @ 6 NONAME ; int CGlxTv::IsWidescreen(void) const
+	?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 7 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void)
+	?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 8 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void)
+	?IsConnected@CGlxTv@@QBEHXZ @ 9 NONAME ; int CGlxTv::IsConnected(void) const
+	?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 10 NONAME ; void CGlxHdmiController::ItemNotSupported(void)
+	?NewL@CGlxHdmiController@@SAPAV1@VTRect@@@Z @ 11 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(class TRect)
+	?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 12 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &)
+	?IsHDMIConnected@CGlxTv@@QBEHXZ @ 13 NONAME ; int CGlxTv::IsHDMIConnected(void) const
+	?DeactivateZoom@CGlxHdmiController@@QAEXXZ @ 14 NONAME ; void CGlxHdmiController::DeactivateZoom(void)
 
--- a/tvout/tvoutengine/eabi/glxtvoutu.def	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutengine/eabi/glxtvoutu.def	Mon Sep 27 15:13:20 2010 +0530
@@ -1,29 +1,28 @@
 EXPORTS
-	_ZN18CGlxHdmiController11FadeSurfaceEi @ 1 NONAME
-	_ZN18CGlxHdmiController12ActivateZoomEi @ 2 NONAME
-	_ZN18CGlxHdmiController14DeactivateZoomEv @ 3 NONAME
-	_ZN18CGlxHdmiController16ItemNotSupportedEv @ 4 NONAME
-	_ZN18CGlxHdmiController18ShiftToCloningModeEv @ 5 NONAME
-	_ZN18CGlxHdmiController18ShiftToPostingModeEv @ 6 NONAME
-	_ZN18CGlxHdmiController4NewLE5TRecti @ 7 NONAME
-	_ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 8 NONAME
-	_ZN18CGlxHdmiControllerD0Ev @ 9 NONAME
-	_ZN18CGlxHdmiControllerD1Ev @ 10 NONAME
-	_ZN18CGlxHdmiControllerD2Ev @ 11 NONAME
-	_ZN6CGlxTv4NewLER14MGlxTvObserver @ 12 NONAME
-	_ZN6CGlxTvD0Ev @ 13 NONAME
-	_ZN6CGlxTvD1Ev @ 14 NONAME
-	_ZN6CGlxTvD2Ev @ 15 NONAME
-	_ZNK6CGlxTv11IsConnectedEv @ 16 NONAME
-	_ZNK6CGlxTv11ScreenSizeLEv @ 17 NONAME
-	_ZNK6CGlxTv12IsWidescreenEv @ 18 NONAME
-	_ZNK6CGlxTv15IsHDMIConnectedEv @ 19 NONAME
-	_ZTI17CGlxHdmiContainer @ 20 NONAME
-	_ZTI17CGlxHdmiDecoderAO @ 21 NONAME
-	_ZTI18CGlxHdmiController @ 22 NONAME
-	_ZTI22CGlxHdmiSurfaceUpdater @ 23 NONAME
-	_ZTV17CGlxHdmiContainer @ 24 NONAME
-	_ZTV17CGlxHdmiDecoderAO @ 25 NONAME
-	_ZTV18CGlxHdmiController @ 26 NONAME
-	_ZTV22CGlxHdmiSurfaceUpdater @ 27 NONAME
+	_ZN18CGlxHdmiController12ActivateZoomEi @ 1 NONAME
+	_ZN18CGlxHdmiController14DeactivateZoomEv @ 2 NONAME
+	_ZN18CGlxHdmiController16ItemNotSupportedEv @ 3 NONAME
+	_ZN18CGlxHdmiController18ShiftToCloningModeEv @ 4 NONAME
+	_ZN18CGlxHdmiController18ShiftToPostingModeEv @ 5 NONAME
+	_ZN18CGlxHdmiController4NewLE5TRect @ 6 NONAME
+	_ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 7 NONAME
+	_ZN18CGlxHdmiControllerD0Ev @ 8 NONAME
+	_ZN18CGlxHdmiControllerD1Ev @ 9 NONAME
+	_ZN18CGlxHdmiControllerD2Ev @ 10 NONAME
+	_ZN6CGlxTv4NewLER14MGlxTvObserver @ 11 NONAME
+	_ZN6CGlxTvD0Ev @ 12 NONAME
+	_ZN6CGlxTvD1Ev @ 13 NONAME
+	_ZN6CGlxTvD2Ev @ 14 NONAME
+	_ZNK6CGlxTv11IsConnectedEv @ 15 NONAME
+	_ZNK6CGlxTv11ScreenSizeLEv @ 16 NONAME
+	_ZNK6CGlxTv12IsWidescreenEv @ 17 NONAME
+	_ZNK6CGlxTv15IsHDMIConnectedEv @ 18 NONAME
+	_ZTI17CGlxHdmiContainer @ 19 NONAME
+	_ZTI17CGlxHdmiDecoderAO @ 20 NONAME
+	_ZTI18CGlxHdmiController @ 21 NONAME
+	_ZTI22CGlxHdmiSurfaceUpdater @ 22 NONAME
+	_ZTV17CGlxHdmiContainer @ 23 NONAME
+	_ZTV17CGlxHdmiDecoderAO @ 24 NONAME
+	_ZTV18CGlxHdmiController @ 25 NONAME
+	_ZTV22CGlxHdmiSurfaceUpdater @ 26 NONAME
 
--- a/tvout/tvoutengine/group/glxtvout.mmp	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutengine/group/glxtvout.mmp	Mon Sep 27 15:13:20 2010 +0530
@@ -63,7 +63,6 @@
 LIBRARY         apgrfx.lib // 
 LIBRARY			apmime.lib // For ImageViewer mime type extraction
 LIBRARY 		glxlogging.lib
-LIBRARY		    alfdecoderserverclient.lib
 LIBRARY			AccPolicy.lib //For RAccessoryConnection status ID's	
 
 // Other Dependency Libraries
--- a/tvout/tvoutengine/inc/glxhdmicontroller.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutengine/inc/glxhdmicontroller.h	Mon Sep 27 15:13:20 2010 +0530
@@ -44,12 +44,10 @@
     /**
      * NewLC 
      * @param aRect rect in which the CCoecontrol actually needs to be constructed
-     * @param EffectsOn - if the effect should be on, by default it is OFF, 
-     *  used only for SLIDESHOW
      *   
      * @return CGlxHdmiController object. 
      */
-    IMPORT_C static CGlxHdmiController* NewL(TRect aRect ,TBool aEfectsOn = EFalse);
+    IMPORT_C static CGlxHdmiController* NewL(TRect aRect );
 
     /**
      * Destructor
@@ -95,20 +93,12 @@
      */
     IMPORT_C void ShiftToPostingMode();
 
-    /**
-     * Fadeing of the Surface
-     * @param aFadeInOut ETrue - FadeIn ( as in gaining brightness )
-     *                   EFalse - FadeOut ( as in loosing brightness ) 
-     */
-    IMPORT_C void FadeSurface(TBool aFadeInOut);
-    
 private:/// class private method
     /**
      * Constructor
      * @param aRect Rect size 
-     * @param aEfectsOn if effects needs to be on(used in Slideshow only)
      */
-    CGlxHdmiController(TRect aRect ,TBool aEfectsOn);
+    CGlxHdmiController(TRect aRect);
     
     /**
      * ConstructL 
@@ -160,8 +150,6 @@
     TRect   iRect;                   
     /// Flag to see if Image is supported
     TBool   iIsImageSupported;      
-    /// Flag to set if effects should be on
-    TBool   iEffectsOn;                 
     };
 
 #endif /* GLXHDMICONTROLLER_H_ */
--- a/tvout/tvoutengine/inc/glxhdmisurfaceupdater.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutengine/inc/glxhdmisurfaceupdater.h	Mon Sep 27 15:13:20 2010 +0530
@@ -30,7 +30,6 @@
 class CGlxActiveCallBack;
 class CGlxHdmiDecoderAO;
 class CImageDecoder;
-class CAlfCompositionSource;
 class TSurfaceConfiguration;
 
 class MGlxGenCallback
@@ -55,10 +54,9 @@
      * @param aFsBitmap Fullscreen bitmap (if FS not available,make sure to send grid or default bitmap
      * else it would appear white screen on TV )
      * @param aCallBack MGlxGenCallback instance
-     * @param aEffectsOn If Effects should be on
      */
     static CGlxHdmiSurfaceUpdater* NewL(RWindow* aWindow, const TDesC& aImageFile, 
-            CFbsBitmap* aFsBitmap, MGlxGenCallback* aCallBack,TBool aEffectsOn);
+            CFbsBitmap* aFsBitmap, MGlxGenCallback* aCallBack);
 
     /**
      * Destructor
@@ -102,21 +100,13 @@
      */
     void ShiftToPostingMode();
 
-    /**
-     * Fadeing of the Surface
-     * @param aFadeInOut ETrue - FadeIn ( as in gaining brightness )
-     *                   EFalse - FadeOut ( as in loosing brightness ) 
-     */
-    void FadeTheSurface(TBool aFadeInOut);
-
 private:
     /**
      * Constructor 
      * @param aWindow RWindow
      * @param aCallBack MGlxGenCallback instance
-     * @param aEffectsOn if effects should be on
      */
-    CGlxHdmiSurfaceUpdater(RWindow* aWindow, MGlxGenCallback* aCallBack,TBool aEffectsOn);
+    CGlxHdmiSurfaceUpdater(RWindow* aWindow, MGlxGenCallback* aCallBack);
 
     /**
      * ConstructL
@@ -236,11 +226,6 @@
      */
     void InitiateHdmiL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile);
 
-    /**
-     * Animate untill loop is complete 
-     */
-    void Animate();
-
 private:
     /// window object
     RWindow*            iWindow;                    
@@ -250,7 +235,6 @@
     MGlxGenCallback*    iCallBack;                  
     /// To store the image uri path
     HBufC*              iImagePath;                 
-    TBool               iEffectsOn;
 
     /// If the Fs thumbnail is to be shown before decoding HD images
     TBool       iShwFsThumbnail;                    
@@ -283,8 +267,6 @@
     /// Surface buffer AO
     CGlxActiveCallBack* iSurfBufferAO;              
 
-    CAlfCompositionSource* ialfCompositionSurface;
-
     /// Internal Image decoder AO
     CGlxHdmiDecoderAO*  iGlxDecoderAO;                            
     /// Image Decoder
@@ -295,9 +277,6 @@
     TPoint      iLeftCornerForZoom;                   
     /// Timer for Zoom
     CPeriodic*  iTimer;                              
-    /// Timer for Animation
-    CPeriodic*  iAnimTimer;                         
-    TInt        iAnimCounter;
 
     /// Various objects to store sizes and count
     /// to store the Tv screen size
--- a/tvout/tvoutengine/src/glxhdmicontroller.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutengine/src/glxhdmicontroller.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -27,10 +27,10 @@
 // -----------------------------------------------------------------------------
 // NewLC
 // -----------------------------------------------------------------------------
-EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(TRect aRect ,TBool aEfectsOn)
+EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(TRect aRect)
     {
     TRACER("CGlxHdmiController* CGlxHdmiController::NewL()");
-    CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aRect,aEfectsOn);
+    CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aRect);
     CleanupStack::PushL(self);
     self->ConstructL();
     CleanupStack::Pop(self);
@@ -166,27 +166,13 @@
         }
     }
 
-
-// -----------------------------------------------------------------------------
-// FadeSurface 
-// -----------------------------------------------------------------------------
-EXPORT_C void CGlxHdmiController::FadeSurface(TBool aFadeInOut)
-    {
-    TRACER("CGlxHdmiController::FadeSurface()");
-    if (iSurfaceUpdater)
-        {
-        iSurfaceUpdater->FadeTheSurface(aFadeInOut);
-        }
-    }
-
 // -----------------------------------------------------------------------------
 // Constructor
 // -----------------------------------------------------------------------------
-CGlxHdmiController::CGlxHdmiController(TRect aRect,TBool aEffectsOn):
+CGlxHdmiController::CGlxHdmiController(TRect aRect):
             iFsBitmap(NULL),
             iStoredImagePath(NULL),
-            iRect(aRect),
-            iEffectsOn(aEffectsOn)
+            iRect(aRect)
     {
     TRACER("CGlxHdmiController::CGlxHdmiController()");
     // Implement nothing here
@@ -243,8 +229,7 @@
     {
     TRACER("CGlxHdmiController::CreateSurfaceUpdater()");
     iSurfaceUpdater = CGlxHdmiSurfaceUpdater::NewL(iHdmiContainer->GetWindow(), 
-                                                aImageFile, iFsBitmap,iHdmiContainer,
-                                                iEffectsOn);
+                                                aImageFile, iFsBitmap,iHdmiContainer);
     iHdmiContainer->DrawNow();
     }
 
--- a/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -15,13 +15,13 @@
 *
 */
 
+#include <bitdev.h> 
 #include <graphics/surface.h>
 #include <graphics/surfacemanager.h>
 #include <graphics/surfaceupdateclient.h>
 #include <graphics/surface_hints.h>
 #include <e32math.h>
 #include <apgcli.h>
-#include "alf/alfcompositionclient.h" 
 
 #include <imageconversion.h> 
 #include <fbs.h>
@@ -31,23 +31,16 @@
 #include "glxactivecallback.h"
 #include "glxhdmisurfaceupdater.h"
 #include "glxactivedecoder.h"
-#include <bitdev.h> 
 
 const TInt KMulFactorToCreateBitmap = 4;
 const TInt KZoomDelay = 10000;
-const TInt KAnimationTicker = 26000;
-const TInt KAnimationTickerFadeIn = 45000; 
+//const TInt KAnimationTicker = 26000;
+//const TInt KAnimationTickerFadeIn = 45000; 
 //100 , is decide for 20 steps of zooming , with each step being 5 pixels.
 const TInt KMaxZoomLimit = 100;
 //evey time we zoom , there is a increase in the ht amd width by 10 pixels.
 const TInt KSingleStepForZoom = 10;
 
-// constants for fade effect
-const TInt KFadeSteps = 19;
-const TReal32 KFadeEachStep = 0.05f;
-const TReal32 KFullTransparent = 0.0f;
-const TReal32 KFullOpaque = 1.0f;
-
 _LIT(KMimeJpeg,"image/jpeg");
 _LIT(KMimeJpg,"image/jpg");
 
@@ -56,11 +49,10 @@
 // -----------------------------------------------------------------------------
 CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL(RWindow* aWindow, const TDesC& aImageFile, 
                                                       CFbsBitmap* aFsBitmap, 
-                                                      MGlxGenCallback* aCallBack,
-                                                      TBool aEffectsOn)
+                                                      MGlxGenCallback* aCallBack)
     {
     TRACER("CGlxHdmiSurfaceUpdater* CGlxHdmiSurfaceUpdater::NewL()");
-    CGlxHdmiSurfaceUpdater* self = new (ELeave) CGlxHdmiSurfaceUpdater(aWindow, aCallBack, aEffectsOn);
+    CGlxHdmiSurfaceUpdater* self = new (ELeave) CGlxHdmiSurfaceUpdater(aWindow, aCallBack);
     CleanupStack::PushL(self);
     self->ConstructL(aFsBitmap,aImageFile);
     CleanupStack::Pop(self);
@@ -74,13 +66,6 @@
     {
     TRACER("CGlxHdmiSurfaceUpdater::~CGlxHdmiSurfaceUpdater()");
     ReleaseContent();
-    if(iAnimTimer && iAnimTimer->IsActive())             // Check for a CPeriodic Instance
-        {
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::~CGlxHdmiSurfaceUpdater() - cancel iAnimTimer");
-        iAnimTimer->Cancel();
-        }
-    GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::~CGlxHdmiSurfaceUpdater() - deleteing ialfCompositionSurface");
-    delete ialfCompositionSurface;
     if(iWindow)
         {
         iWindow->RemoveBackgroundSurface(ETrue);
@@ -165,11 +150,9 @@
 // CTor 
 // -----------------------------------------------------------------------------
 CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater(RWindow* aWindow,
-                          MGlxGenCallback* aCallBack,TBool aEffectsOn): 
-                          iWindow(aWindow), iCallBack(aCallBack), 
-                          iEffectsOn(aEffectsOn),
-                          iShwFsThumbnail(ETrue), iIsNonJpeg(EFalse),
-                          iAnimCounter(0)
+                          MGlxGenCallback* aCallBack): 
+                          iWindow(aWindow), iCallBack(aCallBack),
+                          iShwFsThumbnail(ETrue), iIsNonJpeg(EFalse)
     {
     TRACER("CGlxHdmiSurfaceUpdater::CGlxHdmiSurfaceUpdater()");
     // Implement nothing here
@@ -183,11 +166,6 @@
     TRACER("CGlxHdmiSurfaceUpdater::ConstructL()");
     // Initiate the HDMI by assigning the necessary values
     InitiateHdmiL(aFsBitmap,aImageFile);
-    if (iEffectsOn)
-        {
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ConstructL() Creating iAnimTimer");
-        iAnimTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-        }
 
     TInt error = iFsSession.Connect ();
     GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ConstructL() FsSession Connect error = %d", error);
@@ -752,19 +730,6 @@
 void CGlxHdmiSurfaceUpdater::ShiftToCloningMode()
 	{
 	TRACER("CGlxHdmiSurfaceUpdater::ShiftToCloningMode()");
-	if (iAnimTimer)
-	    {
-	    GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShiftToCloningMode() - cancel iAnimTimer");
-	    iAnimTimer->Cancel();
-	    delete iAnimTimer;
-	    iAnimTimer = NULL;
-	    }
-	if (ialfCompositionSurface)
-	    {
-	    GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShiftToCloningMode() - deleteing ialfCompositionSurface");
-	    delete ialfCompositionSurface;
-	    ialfCompositionSurface= NULL;
-	    }
     if (iWindow)
         {
         GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShiftToCloningMode() - window present");
@@ -778,11 +743,6 @@
 void CGlxHdmiSurfaceUpdater::ShiftToPostingMode()
 	{
 	TRACER("CGlxHdmiSurfaceUpdater::ShiftToPostingMode()");
-    if (iEffectsOn && !iAnimTimer)
-        {
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShiftToPostingMode() Creating iAnimTimer");
-        iAnimTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-        }
 	if(iSurfManager)
 		{
 #ifdef _DEBUG
@@ -816,18 +776,6 @@
     ProcessTvImage();
     // set the surface onto background
     iWindow->SetBackgroundSurface(iConfig, ETrue); 
-    if (iEffectsOn)
-        {
-        //Cancel the Animation timer if any
-        if(!iAnimTimer->IsActive())
-            {
-            iAnimCounter = 0;
-            GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShowFsThumbnailL() - Cancel iAnimTimer Timer");
-            iAnimTimer->Cancel();
-            }
-
-        FadeTheSurface(ETrue);
-        }
     }
 
 // -----------------------------------------------------------------------------
@@ -890,92 +838,3 @@
         GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::ProcessTvImage() Surfaceupdatesession error %d",err);
         }
     }
-
-// -----------------------------------------------------------------------------
-// FadeTheSurface 
-// -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::FadeTheSurface(TBool aFadeInOut)
-    {
-    TRACER("CGlxHdmiSurfaceUpdater::FadeTheSurface()");
-    iFadeIn = aFadeInOut;
-    if (iEffectsOn && !iAnimTimer)
-        {
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::FadeTheSurface() Creating iAnimTimer");
-        iAnimTimer = CPeriodic::NewL( CActive::EPriorityStandard );
-        }
-    if (!ialfCompositionSurface)
-        {
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::ShowFsThumbnailL() - Creating alfcompositionsurface");
-        ialfCompositionSurface = CAlfCompositionSource::NewL(*iWindow);
-        }
-    if(!iAnimTimer->IsActive())
-        {
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::FadeTheSurface() - Start Timer");
-        if (iFadeIn)
-            iAnimTimer->Start(0,KAnimationTickerFadeIn,TCallBack( AnimationTimeOut,this ));
-        else
-            {
-            for (TInt i=0;i<=KFadeSteps;i++)
-                {
-                GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::Animate - Fading Out %d",i);
-                ialfCompositionSurface->SetOpacity(KFullOpaque -(i*KFadeEachStep));
-                User::After(KAnimationTicker);
-                }
-            }
-        }
-    else
-        {
-        iAnimCounter = 0;
-        // this case can be when fast swipe in Slideshow
-        ialfCompositionSurface->SetOpacity(KFullOpaque);       // set the opacity to maximum when fast swipe
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::FadeTheSurface() - cancel iAnimTimer");
-        iAnimTimer->Cancel();
-        }
-    }
-
-// ---------------------------------------------------------------------------
-// AnimationTimeOut
-// ---------------------------------------------------------------------------
-//  
-TInt CGlxHdmiSurfaceUpdater::AnimationTimeOut(TAny* aSelf)
-    {
-    TRACER("CGlxHdmiSurfaceUpdater::AnimationTimeOut");
-    if(aSelf)
-        {
-        CGlxHdmiSurfaceUpdater* self = static_cast <CGlxHdmiSurfaceUpdater*> (aSelf);
-        if (self)
-            {            
-            self->Animate();
-            }
-        }
-    return KErrNone;
-    }
-
-// -----------------------------------------------------------------------------
-// Animate 
-// -----------------------------------------------------------------------------
-void CGlxHdmiSurfaceUpdater::Animate()
-    {
-    TRACER("CGlxHdmiSurfaceUpdater::Animate");
-    iAnimCounter++;
-    if (!ialfCompositionSurface)
-        {
-        // createing alfcompositiosource
-        ialfCompositionSurface = CAlfCompositionSource::NewL(*iWindow);
-        }
-    if (iAnimCounter <=KFadeSteps && iFadeIn)
-        {
-        GLX_LOG_INFO1("CGlxHdmiSurfaceUpdater::Animate - iAnimCounter=%d",iAnimCounter);
-        // gaining brightness
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::Animate - Fading In");
-        ialfCompositionSurface->SetOpacity( KFullTransparent +(iAnimCounter*KFadeEachStep));
-        }
-    else
-        {
-        GLX_LOG_INFO("CGlxHdmiSurfaceUpdater::Animate() - cancel iAnimTimer");
-        iAnimCounter = 0;
-        // end the timer , as animation of fade in/out is complete
-        iAnimTimer->Cancel();
-        }
-    }
-
--- a/tvout/tvoutwrapper/inc/glxtvoutwrapper.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper.h	Mon Sep 27 15:13:20 2010 +0530
@@ -60,9 +60,8 @@
      * to pass the model 
      * @param Model datamodel
      * @param screensize the size of the phone screen
-     * @param aEfectsOn if slideshow effects on tv needs to be on, off by default 
      */
-    void setModel(QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn = false);
+    void setModel(QAbstractItemModel* aModel,QSize aScreenSize);
     
     /**
      * Set the image on to HDMI
@@ -100,13 +99,6 @@
      */
     void deactivateZoom();
     
-    /**
-     * Fadeing of the Surface
-     * @param aFadeInOut    ETrue - FadeIn ( as in gaining brightness )
-     *                      EFalse - FadeOut ( as in loosing brightness ) 
-     */
-    void fadeSurface(bool aFadeInOut);
-    
 private:
     /// Private wrapper handler according to PIMPL pattern 
     GlxTvOutWrapperPrivate* mTvOutWrapperPrivate;
--- a/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h	Mon Sep 27 15:13:20 2010 +0530
@@ -45,13 +45,11 @@
      * @param aTvOutWrapper GlxTvOutWrapper Instance 
      * @param aModel item model
      * @param aScreenSize screensize of the phone
-     * @param aEfectsOn to ON the Effects for Slideshow on TV- currently only 
-     *                  fade in fade out is supported
      * 
      * @return GlxTvOutWrapperPrivate Instance
      */
     static GlxTvOutWrapperPrivate* Instance(GlxTvOutWrapper* aTvOutWrapper,
-            QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn);
+            QAbstractItemModel* aModel,QSize aScreenSize);
 
     /**
      * destructor
@@ -116,9 +114,8 @@
     /**
      * constructL()
      * @param aScreenSize screensize 
-     * @param aEffectsOn to On the Effects of Slideshow - currently only fade in fade out
      */
-    void ConstructL(QSize aScreenSize,bool aEfectsOn);
+    void ConstructL(QSize aScreenSize);
     
     /**
      * SetNewImage
--- a/tvout/tvoutwrapper/src/glxtvoutwrapper.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutwrapper/src/glxtvoutwrapper.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -43,11 +43,11 @@
 // setModel 
 // and Create the private instance to pass the model
 // -----------------------------------------------------------------------------
-void GlxTvOutWrapper::setModel(QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn)
+void GlxTvOutWrapper::setModel(QAbstractItemModel* aModel,QSize aScreenSize)
     {
     if (!mTvOutWrapperPrivate)
         {
-        mTvOutWrapperPrivate = GlxTvOutWrapperPrivate::Instance(this,aModel,aScreenSize,aEfectsOn);
+        mTvOutWrapperPrivate = GlxTvOutWrapperPrivate::Instance(this,aModel,aScreenSize);
         }
     else
         {
@@ -115,14 +115,4 @@
         }
     }
 
-// -----------------------------------------------------------------------------
-// deactivateZoom 
-// -----------------------------------------------------------------------------
-void GlxTvOutWrapper::fadeSurface(bool aFadeInOut)
-    {
-    if(mTvOutWrapperPrivate){
-        mTvOutWrapperPrivate->FadeSurface(aFadeInOut);
-        }
-    }
-
 // End of file
--- a/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -29,12 +29,12 @@
 // Static method to create the private wrapper instance 
 // -----------------------------------------------------------------------------
 GlxTvOutWrapperPrivate* GlxTvOutWrapperPrivate::Instance(GlxTvOutWrapper* aTvOutWrapper,
-        QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn)
+        QAbstractItemModel* aModel,QSize aScreenSize)
     {
     TRACER("GlxTvOutWrapperPrivate::Instance()");
     GlxTvOutWrapperPrivate* self = new GlxTvOutWrapperPrivate(aTvOutWrapper,aModel);
     if (self){
-        TRAPD(err,self->ConstructL(aScreenSize,aEfectsOn));
+        TRAPD(err,self->ConstructL(aScreenSize));
         if(err != KErrNone){
             delete self;
             self = NULL;
@@ -47,14 +47,13 @@
 // ConstructL
 // This creates the Connection observer and the Hdmi Controller
 // -----------------------------------------------------------------------------
-void GlxTvOutWrapperPrivate::ConstructL(QSize aScreenSize,bool aEfectsOn)
+void GlxTvOutWrapperPrivate::ConstructL(QSize aScreenSize)
     {
     TRACER("GlxTvOutWrapperPrivate::ConstructL()");
     iConnectionObserver = CGlxConnectionObserver::NewL(this);
     if (!iHdmiController) {
         TRect rect(0,0,aScreenSize.width(),aScreenSize.height());
-        iHdmiController = CGlxHdmiController::NewL(rect,
-                aEfectsOn);
+        iHdmiController = CGlxHdmiController::NewL(rect);
         iHdmiConnected = iConnectionObserver->IsHdmiConnected();
         }
     }
@@ -227,16 +226,6 @@
     }
 
 // -----------------------------------------------------------------------------
-// FadeSurface 
-// -----------------------------------------------------------------------------
-void GlxTvOutWrapperPrivate::FadeSurface(bool aFadeInOut)
-    {
-    if(iHdmiController && iHdmiConnected){
-    iHdmiController->FadeSurface(aFadeInOut);
-    }
-    }
-
-// -----------------------------------------------------------------------------
 // getSubState 
 // -----------------------------------------------------------------------------
 int GlxTvOutWrapperPrivate::getSubState()
--- a/ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/commandhandlers/commandhandlerbase/inc/glxmpxcommandhandler.h	Mon Sep 27 15:13:20 2010 +0530
@@ -96,6 +96,8 @@
     void CreateMediaListL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType) ;
     void CreateMediaListAlbumItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType);
     void executeMpxCommand(bool execute);
+protected:
+    mutable bool iIsCmdActive;
 private:
     // Instance of Media List
     MGlxMediaList* iMediaList;
--- a/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -42,7 +42,7 @@
 #include <hbaction.h>
 
 GlxMpxCommandHandler::GlxMpxCommandHandler() :
-    iProgressComplete(EFalse)
+    iProgressComplete(EFalse),iIsCmdActive(EFalse)
     {
     OstTraceFunctionEntry0( GLXMPXCOMMANDHANDLER_GLXMPXCOMMANDHANDLER_ENTRY );
     iMediaList = NULL;
@@ -67,53 +67,59 @@
     Q_UNUSED(indexList);
     int aHierarchyId = 0;
     TGlxFilterItemType aFilterType = EGlxFilterImage;
+    if (!iIsCmdActive)
+         {
+        if (collectionId != KGlxAlbumsMediaId)
+            {
+            OstTrace0( TRACE_NORMAL, DUP2_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListL" );
+            CreateMediaListL(collectionId, aHierarchyId, aFilterType);
+            }
+        else
+            {
+            OstTrace0( TRACE_NORMAL, DUP3_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListAlbumItemL" );
+            //for creating Medial List for Albums Media path Items
+            CreateMediaListAlbumItemL(collectionId, aHierarchyId, aFilterType);
+            }
 
-    if (collectionId != KGlxAlbumsMediaId)
-        {
-        OstTrace0( TRACE_NORMAL, DUP2_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListL" );
-        CreateMediaListL(collectionId, aHierarchyId, aFilterType);
+        TBool consume = ETrue;
+        iProgressComplete = EFalse;
+        mProgressDialog = NULL;
+        //Execute Command 
+        DoExecuteCommandL(commandId, *iMediaList, consume);
+        mCommandId = commandId;
+        ConfirmationNoteL(*iMediaList);
         }
-    else
-        {
-        OstTrace0( TRACE_NORMAL, DUP3_GLXMPXCOMMANDHANDLER_EXECUTECOMMAND, "GlxMpxCommandHandler::executeCommand::CreateMediaListAlbumItemL" );
-        //for creating Medial List for Albums Media path Items
-        CreateMediaListAlbumItemL(collectionId, aHierarchyId, aFilterType);
-        }
-
-    TBool consume = ETrue;
-    iProgressComplete = EFalse;
-    mProgressDialog = NULL;
-    //Execute Command 
-    DoExecuteCommandL(commandId, *iMediaList, consume);
-    mCommandId = commandId;
-    ConfirmationNoteL(*iMediaList);
     OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_EXECUTECOMMAND_EXIT );
     }
 
 void GlxMpxCommandHandler::executeMpxCommand(bool execute)
     {
-    if(execute && !iMediaList->IsCommandActive())            
+    if(iMediaList)
         {
-        TBool consume = ETrue;
-        CMPXCommand* command = CreateCommandL(mCommandId, *iMediaList, consume);
-        if (command)
+        if (execute && !iMediaList->IsCommandActive())
             {
-            command->SetTObjectValueL<TAny*> (KMPXCommandGeneralSessionId,
-                    static_cast<TAny*> (this));
-            iMediaList->AddMediaListObserverL(this);
-            iMediaList->CommandL(*command);
-            
-            if(iMediaList->SelectionCount() > 1)
+            TBool consume = ETrue;
+            CMPXCommand* command = CreateCommandL(mCommandId, *iMediaList,
+                    consume);
+            if (command)
                 {
-                 ProgressNoteL(mCommandId);
+                command->SetTObjectValueL<TAny*> (
+                        KMPXCommandGeneralSessionId,
+                        static_cast<TAny*> (this));
+                iMediaList->AddMediaListObserverL(this);
+                iMediaList->CommandL(*command);
+
+                if (iMediaList->SelectionCount() > 1)
+                    {
+                    ProgressNoteL(mCommandId);
+                    }
                 }
             }
+        else //command cancelled,so unmark all items
+            {
+            MGlxMediaList::UnmarkAllL(*iMediaList);
+            }
         }
-    else //command cancelled,so unmark all items
-        {
-        MGlxMediaList::UnmarkAllL(*iMediaList);
-        }
-    
     }
 
 // ---------------------------------------------------------------------------
@@ -295,11 +301,14 @@
         CMPXCommand* aCommandResult, TInt aError, MGlxMediaList* aList)
     {
     OstTraceFunctionEntry0( GLXMPXCOMMANDHANDLER_HANDLECOMMANDCOMPLETEL_ENTRY );
-    MGlxMediaList::UnmarkAllL(*iMediaList);
+    if(iMediaList)
+        {
+        MGlxMediaList::UnmarkAllL(*iMediaList);
 
-    DoHandleCommandCompleteL(aSessionId, aCommandResult, aError, aList);
-    iProgressComplete = ETrue;
-    TryExitL(aError);
+        DoHandleCommandCompleteL(aSessionId, aCommandResult, aError, aList);
+        iProgressComplete = ETrue;
+        TryExitL(aError);
+        }
     OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_HANDLECOMMANDCOMPLETEL_EXIT );
     }
 
@@ -349,10 +358,13 @@
         {
         // @todo error received. Close progress note 
         DismissProgressNoteL();
-        MGlxMediaList::UnmarkAllL(*iMediaList);
-        iMediaList->RemoveMediaListObserver(this);
-        iMediaList->Close();
-        iMediaList = NULL;
+        if(iMediaList)
+            {
+            MGlxMediaList::UnmarkAllL(*iMediaList);
+            iMediaList->RemoveMediaListObserver(this);
+            iMediaList->Close();
+            iMediaList = NULL;
+            }
         // handle error
         HandleErrorL(aErrorCode);
         }
@@ -365,6 +377,7 @@
         CompletionNoteL();
         iProgressComplete = EFalse;
         }
+    iIsCmdActive = EFalse;
     OstTraceFunctionExit0( GLXMPXCOMMANDHANDLER_TRYEXITL_EXIT );
     }
 
@@ -418,7 +431,7 @@
 void GlxMpxCommandHandler::ConfirmationNoteL(MGlxMediaList& aMediaList)
     {
 	TInt selectionCount = aMediaList.SelectionCount();
-
+	iIsCmdActive = ETrue;
     // If media list is not empty, treat focused item as selected
     // At this point can assume that the command was disabled 
     // if static items were not supported	
@@ -509,6 +522,7 @@
         {
         // Cancellation is done.
         executeMpxCommand(false);
+        iIsCmdActive = EFalse;
         }
     }
 
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -183,10 +183,15 @@
             GlxAlbumSelectionPopup popupWidget;
             QModelIndexList modelList = popupWidget.GetSelectionList(albumMediaModel, &ok);
             if(ok && modelList.count() == 0)
-            {
+            	{
                 createNewMedia();
                 ok = false;        
-            }    
+            	}
+            else if(!ok)
+                {
+				// Reset the flag so that next addmedia cmd can  be executed
+                iIsCmdActive = false;
+                }
             OstTraceExt2( TRACE_NORMAL, GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL, "GlxCommandHandlerAddToContainer::CreateCommandL;ok=%d;newMedia=%d", ok, mNewMediaAdded );
     
             if (ok || mNewMediaAdded)
@@ -220,6 +225,8 @@
                 }
             else
                 {
+				// Reset the flag so that next addmedia cmd can  be executed
+                iIsCmdActive = false;
                 MGlxMediaList::UnmarkAllL(aMediaList);
                 }
     
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -72,7 +72,6 @@
     iNewMediaCreationError = KErrNone;
     if (ok == true)
         {
-        
         TPtrC16 newMediaItemTitleDes
                 = (reinterpret_cast<const TUint16*> (mediaTitle.utf16()));
         
@@ -86,6 +85,8 @@
         }
     else
         {
+        // Reset the flag so that next addmedia cmd can  be executed
+        iIsCmdActive = false;
         iNewMediaCreationError = KErrCancel;
         }
 
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommondialogs.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -21,6 +21,18 @@
 #include <QEventLoop>
 const int MAXSTRINGLENGHT = 256; 
 
+// this is regexp for valid file/folder name: no \/:*?"<>| and is not totally empty characters.
+// file name can not end with "." , but it is not include in this RegExp. It should be checked in Regex_ValidNotEndWithDot
+// this expression is composed by two expressions:
+// ^.*[^\\s].*$  used to match un-empty string and is not totally empty characters.
+// [^\\\\/:*?\"<>|] used to math valid file/folder name
+// merge the two regex together:
+// valid file/folder name and is not totally empty.
+#define Regex_ValidFileFolderName QString( "^[^\\\\/:*?\"<>|]*[^\\\\/:*?\"<>|\\s][^\\\\/:*?\"<>|]*$" )
+
+// is not end with dot( trim blank characters in the end first )
+#define Regex_ValidNotEndWithDot QString( "^.*[^\\.\\s][\\s]*$" )
+
 GlxTextInputDialog::GlxTextInputDialog(bool disableOkForEmptyText) 
     : mDialog ( NULL ),
       mEventLoop ( 0 ),
@@ -70,7 +82,20 @@
 
 void GlxTextInputDialog::textChanged(const QString &text)
 {
-    if (text.trimmed().isEmpty()) {
+    // check if all regExp match, disable primary action if not match
+    QStringList regExpList = (QStringList() << Regex_ValidFileFolderName << Regex_ValidNotEndWithDot );
+    
+    bool validateResult = true;
+    foreach( const QString &regExpString, regExpList ) {
+        if( !regExpString.isEmpty() ) {
+            QRegExp regExp( regExpString );
+            if( !regExp.exactMatch( text ) ) {
+                validateResult =  false;
+            }
+        }
+    }
+    
+    if(!validateResult){
         mDialog->actions().first()->setEnabled(false);
     }
     else {
--- a/ui/inc/glxicondefs.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/inc/glxicondefs.h	Mon Sep 27 15:13:20 2010 +0530
@@ -28,14 +28,14 @@
 #define GLXICON_USEIMAGE    "qtg_small_ovi"
 
 //GRID TOOLBAR
-#define GLXICON_ALL     "qtg_mono_photos"
-#define GLXICON_ALBUMS  "qtg_mono_photo_albums"
-#define GLXICON_CAMERA  "qtg_mono_camera"
-#define GLXICON_OVI     "qtg_small_ovi"
+#define GLXICON_ALL         "qtg_mono_photos"
+#define GLXICON_ALBUMS      "qtg_mono_photo_albums"
+#define GLXICON_CAMERA      "qtg_mono_camera"
+#define GLXICON_OVI         "qtg_small_ovi"
 
 //ALBUM GRID TOOLBAR
-#define GLXICON_ADD     "qtg_mono_add_to_video_collection"
-#define GLXICON_REMOVE  "qtg_mono_remove_from_video_collection"
+#define GLXICON_ADD         "qtg_mono_add_to_video_collection"
+#define GLXICON_REMOVE      "qtg_mono_remove_from_video_collection"
 
 //CORRUPT ICON
 #define GLXICON_CORRUPT "qtg_large_corrupted"
@@ -44,7 +44,7 @@
 #define GLXICON_PLAY    "qtg_mono_play"
 
 //DEFAULT ICON
-#define GLXICON_DEFAULT "qtg_mono_camera"
+#define GLXICON_DEFAULT  "qtg_mono_photos"
 
 #define GLXICON_ADD_TO_FAV  "qtg_graf_ratingslider_rated"
 #define GLXICON_REMOVE_FAV  "qtg_graf_ratingslider_unrated"
--- a/ui/inc/glxmodelroles.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/inc/glxmodelroles.h	Mon Sep 27 15:13:20 2010 +0530
@@ -21,34 +21,46 @@
 #define GLXMODELROLES_H
 enum
 {
+    //For ItemImageData Function role START
     GlxHgVisibilityRole = Qt::UserRole + 1, // VisibilityRole For MediaWall ,  Dont Change This Value - Depedency To HgWidget
     GlxFsImageRole,                         //to get the fullscreen image
-    GlxContextRole,                     //to get and set the context   
-    GlxFocusIndexRole,                  //to get and set the selected item index
-    GlxVisualWindowIndex,               //to set the visual window index in media list
-    GlxUriRole,                         //to get the URI of the image
-    GlxDimensionsRole,                  
-    GlxSelectedIndexRole,               //to get and set the seleceted item list
-    GlxDateRole,                        //to get the image created or modified date 
-    GlxFrameCount,                      //to get the number of frame in an image
-    GlxSubStateRole,                    //to publish the sub state of a SM states
-    GlxHdmiBitmap,                      //to get the pre decoded thumbnail for HDMI
-	GlxListItemCount,                   //to get the number of item in the album list
-	GlxSystemItemRole,                   //to get the item is system item or not
-    GlxFavorites,                       //to get the image is in favorites folder or not
+    GlxDefaultImage,
     GlxQImageSmall,                     //To Get Grid Thumbnail as QImage
     GlxQImageLarge,                     //To Get FullScreen Thumbnail as QImage
-    GlxDefaultImage,					//To Get Default Thumbnail 
-    GlxViewTitle,
+    GlxHdmiBitmap,                      //to get the pre decoded thumbnail for HDMI
+    GlxItemImageDataEnd = 0x100,
+    //For ItemImageData Function role END
+    
+    //For CollectionProperty Function role START
+    GlxFocusIndexRole,                  //to get and set the selected item index
+    GlxSubStateRole,                    //to publish the sub state of a SM states
     GlxPopulated,
-	GlxTimeRole,                        //to get the time image was modified
-	GlxSizeRole,                         //to get the size of the image
-	GlxDescRole,                         //to get the description of the images
-	GlxRemoveContextRole,                 //to remove the context
-	GlxTempVisualWindowIndex,              //to store the visual index obtained from AM temporarily
-	GlxImageCorruptRole,                 //To get the corrupt image status
-	GlxPaintPageFlag,
-	GlxImageTitle                        //to fetch the title of the image
+    GlxViewTitle,
+    GlxVisualWindowIndex,               //to set the visual window index in media list
+    GlxPaintPageFlag,
+    GlxCollectionPropertyEnd = 0x200,
+    //For CollectionProperty Function role END
+    
+    //For ItemProperty Function role START
+    GlxFrameCount,                       //to get the number of frame in an image
+    GlxImageCorruptRole,                 //To get the corrupt image status
+    GlxUriRole,                          //to get the URI of the image
+    GlxSizeRole,                         //to get the size of the image
+    GlxImageTitle,                        //to fetch the title of the image
+    GlxDimensionsRole,                  
+    GlxDateRole,                         //to get the image created or modified date 
+    GlxTimeRole,                         //to get the time image was modified
+    GlxDescRole,                         //to get the description of the images
+    GlxItemPropertyEnd = 0x300,                       
+    //For ItemProperty Function role
+ 
+    GlxContextRole,                      //to get and set the context    
+    GlxSelectedIndexRole,               //to get and set the seleceted item list
+    GlxListItemCount,                   //to get the number of item in the album list
+    GlxSystemItemRole,                   //to get the item is system item or not
+    GlxFavorites,                       //to get the image is in favorites folder or not
+    GlxRemoveContextRole,                 //to remove the context
+    GlxTempVisualWindowIndex,              //to store the visual index obtained from AM temporarily
 };
 
 
--- a/ui/inc/glxuistd.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/inc/glxuistd.h	Mon Sep 27 15:13:20 2010 +0530
@@ -59,8 +59,7 @@
 	GlxTBContextGrid,
 	GlxTBContextLsFs,
 	GlxTBContextPtFs,
-	GlxTBContextNone,
-	GlxTBContextExternal
+	GlxTBContextNone
 };
 
 typedef enum
@@ -74,6 +73,7 @@
     FADE_EFFECT,
     GRID_TO_FULLSCREEN,
     FULLSCREEN_TO_GRID,
+    FULLSCREEN_TO_GRID_PORTRAIT,
     FULLSCREEN_TO_DETAIL,
     DETAIL_TO_FULLSCREEN,
     GRID_TO_ALBUMLIST,
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Mon Sep 27 15:13:20 2010 +0530
@@ -1,19 +1,19 @@
 /*
-* 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: 
-*
-*/
+ * 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: 
+ *
+ */
 
 /*glxmlwrapper_p.h*/
 
@@ -40,207 +40,237 @@
 class CGlxDefaultListAttributeContext;
 class CGlxTitleFetcher;
 class CGlxDRMUtility;
-//to use first call GlxMLWrapperPrivate::Instance then set the mode by calling GlxMLWrapperPrivate::SetContextMode()
-//CLASS Declaration
-class GlxMLWrapperPrivate : public QObject,public MGlxTitleFetcherObserver
+
+
+/**
+ * Class Description
+ * Medialist wrapper private class to acess the media property and thumbnail data
+ * To use first call GlxMLWrapperPrivate::Instance then set the mode by calling GlxMLWrapperPrivate::SetContextMode()
+ */
+class GlxMLWrapperPrivate: public QObject, public MGlxTitleFetcherObserver
 {
-    
+
 public:
-	/**
+    /**
      * Two-phased constructor.
      *
      * @return Pointer to newly created object. NULL if creation fails. Avoiding Leave as would be called by a QT wrapper Class
      */
-    static GlxMLWrapperPrivate* Instance(GlxMLWrapper* aMLWrapper, int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri,GlxFetcherFilterType fetcherFilterType);								
+    static GlxMLWrapperPrivate* Instance( GlxMLWrapper* aMLWrapper, int aCollectionId,
+        int aHierarchyId, TGlxFilterItemType aFilterType, QString uri,
+        GlxFetcherFilterType fetcherFilterType );
     /**
      * Destructor.
      */
-   ~GlxMLWrapperPrivate();
+    ~GlxMLWrapperPrivate();
     /**
      * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes.
      */
-	 void SetContextMode(GlxContextMode aContextMode);
-	 
-	 /*
-	  * For removing the contect used
-	  */
-	 void RemoveContextMode(GlxContextMode aContextMode);
-	 
-	 /**
+    void SetContextMode( GlxContextMode aContextMode );
+
+    /**
+     * For removing the contect used
+     */
+    void RemoveContextMode( GlxContextMode aContextMode );
+
+    /**
      * for retreiving the Media List Count.
      */
-	 int GetItemCount();
-	 /*
-	  * for retrieving the focus Index
-	  */  
-	 int GetFocusIndex() const;
-	 /*
-	  * for setting the focus Index
-	  */
-	 void SetFocusIndex(int aItemIndex);
+    int GetItemCount();
+    
+    /**
+     * for retrieving the focus Index
+     */
+    int GetFocusIndex() const;
+    
+    /**
+     * for setting the focus Index
+     */
+    void SetFocusIndex( int aItemIndex );
 
-	 /*
-	  * for setting the focus Index
-	  */
-	 void SetSelectedIndex(int aItemIndex);
+    /**
+     * for setting the focus Index
+     */
+    void SetSelectedIndex( int aItemIndex );
 
-	 /*
-	  * for retrieving the visible window Index
-	  */  
-	 int GetVisibleWindowIndex();
-	/*
-	 * for setting the visible window Index
-	 */
-	 void SetVisibleWindowIndex(int aItemIndex);
+    /**
+     * for retrieving the visible window Index
+     */
+    int GetVisibleWindowIndex();
+    
+    /**
+     * for setting the visible window Index
+     */
+    void SetVisibleWindowIndex( int aItemIndex );
+
+public:
+    // From MGlxTitleFetcherObserver
+    IMPORT_C void HandleTitleAvailableL( const TDesC& aTitle );
 
 public:
-	 // From MGlxTitleFetcherObserver
-    IMPORT_C void HandleTitleAvailableL(const TDesC& aTitle);
-
-public: 
     void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
     void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList*/* aList */);
-    void HandleAttributesAvailableL( TInt aItemIndex, 
-        const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList );    
-    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, TInt aOldIndex, MGlxMediaList* aList );
-    void HandleItemSelectedL(TInt aIndex, TBool aSelected, MGlxMediaList* aList );
+    void HandleAttributesAvailableL( TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes,
+        MGlxMediaList* aList );
+    void HandleFocusChangedL( NGlxListDefs::TFocusChangeType aType, TInt aNewIndex, TInt aOldIndex,
+        MGlxMediaList* aList );
+    void HandleItemSelectedL( TInt aIndex, TBool aSelected, MGlxMediaList* aList );
     void HandleMessageL( const CMPXMessage& aMessage, MGlxMediaList* aList );
     void HandleError( TInt aError );
-  //todo remove comment  void HandleCommandCompleteL( CMPXCommand* aCommandResult, TInt aError,MGlxMediaList* aList );
+    //todo remove comment  void HandleCommandCompleteL( CMPXCommand* aCommandResult, TInt aError,MGlxMediaList* aList );
     void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
     void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
-    void HandlePopulatedL(MGlxMediaList* aList);
+    void HandlePopulatedL( MGlxMediaList* aList );
 
 public:
-	/**
-	* RetrieveItemIcon()
-	*/
-	HbIcon* RetrieveItemIcon(int index, GlxTBContextType aTBContextType);
-	QImage  RetrieveItemImage(int index, GlxTBContextType aTBContextType);
-	QString RetrieveListTitle(int index);
-	QString RetrieveListDesc(int index);
-	QString RetrieveListSubTitle(int index);
-	QString RetrieveItemUri(int index);
-	QSize   RetrieveItemDimension(int index);
-	int     RetrieveItemSize(int index);
-	QDate   RetrieveItemDate(int index);
-	QTime   RetrieveItemTime(int index);
-	int     RetrieveItemFrameCount(int aItemIndex);
-	CFbsBitmap* RetrieveBitmap(int aItemIndex);
-	int     RetrieveListItemCount( int aItemIndex );
-	bool    isSystemItem( int aItemIndex );
-	/*
-	 *Sets the context for fetcing comments
-	 */
-	void SetDescontextL();
-	QString RetrieveViewTitle();
-	bool IsPopulated();
-	bool IsDrmProtected(int index );
-	bool IsDrmValid(int index);
-	void setDrmValid(int index,bool valid);			
-	bool IsCorruptedImage( int aItemIndex );				
+    /**
+     * RetrieveItemIcon() -  To retreive the full screen and grid thumbnail
+     */
+    HbIcon* RetrieveItemIcon( int index, GlxTBContextType aTBContextType );    
+    QImage RetrieveItemImage( int index, GlxTBContextType aTBContextType );
+    QString RetrieveListTitle( int index );
+    QString RetrieveListDesc( int index );
+    QString RetrieveListSubTitle( int index );
+    QString RetrieveItemUri( int index );
+    QSize RetrieveItemDimension( int index );
+    int RetrieveItemSize( int index );
+    QDate RetrieveItemDate( int index );
+    QTime RetrieveItemTime( int index );
+    int RetrieveItemFrameCount( int aItemIndex );
+    CFbsBitmap* RetrieveBitmap( int aItemIndex );
+    int RetrieveListItemCount( int aItemIndex );
+    bool isSystemItem( int aItemIndex );
+    /*
+     *Sets the context for fetcing comments
+     */
+    void SetDescontextL();
+    QString RetrieveViewTitle();
+    bool IsPopulated();
+    bool IsDrmProtected( int index );
+    bool IsDrmValid( int index );
+    void setDrmValid( int index, bool valid );
+    bool IsCorruptedImage( int aItemIndex );
 private:
 
     /**
      * C++ default constructor.
      */
-    GlxMLWrapperPrivate(GlxMLWrapper* aMLWrapper);
+    GlxMLWrapperPrivate( GlxMLWrapper* aMLWrapper );
 
     /**
      * By default Symbian 2nd phase constructor is private.
      */
-    void ConstructL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri=NULL,GlxFetcherFilterType fetcherFilterType = EGlxFetcherFilterNone);
-	/**
+    void ConstructL( int aCollectionId, 
+                          int aHierarchyId, 
+                          TGlxFilterItemType aFilterType,
+                          QString uri = NULL, 
+                          GlxFetcherFilterType fetcherFilterType = EGlxFetcherFilterNone );
+    /**
      * Create an instance of Media List.
      *
      * @leave with error code if creation fails.
      */
-	void CreateMediaListL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,GlxFetcherFilterType fetcherFilterType = EGlxFetcherFilterNone);
-	void CreateMediaListAlbumItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,GlxFetcherFilterType fetcherFilterType);
-	void CreateMediaListFavoritesItemL(int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType,QString uri);
-	void SetThumbnailContextL(GlxContextMode aContextMode);
-	void SetListContextL(GlxContextMode aContextMode);
-	void SetFavouriteContextL();
-	void CreateGridContextL();
-	void CreateLsFsContextL();
-	void CreatePtFsContextL();
-	void RemoveGridContext();
-	void RemoveLsFsContext();
-	void RemovePtFsContext();
-	void RemoveListContext();
-	void RemoveFavouriteContext();
-	void RemoveDescContext();
-	//for the attribute filtering
-	TInt CheckTBAttributesPresenceandSanity(TInt aItemIndex,
-		const RArray<TMPXAttribute>& aAttributes, TMPXAttribute aThumbnailAttribute );
-	void CheckGridTBAttribute(TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes);
-	void CheckPtFsTBAttribute(TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes);
-	void CheckLsFsTBAttribute(TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes);
-	void CheckListAttributes(TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes);
-	/*
-	 * to check the attributes returned for details view is present
-	 */
-	void CheckDetailsAttributes(TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes);
-	/*
-	 * convert the CFbsbitmap to HbIcon
-	 */
-	HbIcon *convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap);
-	/*
-	 * convert the CFbsbitmap to HbIcon and scale down upto itemWidth and itemHeight
-	 */
-	HbIcon * convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap, TInt itemWidth, TInt itemHeight);
+    void CreateMediaListL( int aCollectionId, 
+                              int aHierarchyId, 
+                              TGlxFilterItemType aFilterType,
+                              GlxFetcherFilterType fetcherFilterType = EGlxFetcherFilterNone );
+    
+    void CreateMediaListAlbumItemL( int aCollectionId, 
+                                      int aHierarchyId,
+                                      TGlxFilterItemType aFilterType, GlxFetcherFilterType fetcherFilterType );
+    
+    void CreateMediaListFavoritesItemL( int aCollectionId, int aHierarchyId, TGlxFilterItemType aFilterType, QString uri );
+    void SetThumbnailContextL( GlxContextMode aContextMode );
+    void SetListContextL( GlxContextMode aContextMode );
+    void SetFavouriteContextL();
+    void CreateGridContextL();
+    void CreateLsFsContextL();
+    void CreatePtFsContextL();
+    void RemoveGridContext();
+    void RemoveLsFsContext();
+    void RemovePtFsContext();
+    void RemoveListContext();
+    void RemoveFavouriteContext();
+    void RemoveDescContext();
+    //for the attribute filtering
+    TInt CheckTBAttributesPresenceandSanity( TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes, TMPXAttribute aThumbnailAttribute );
+    void CheckGridTBAttribute( TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes );
+    void CheckPtFsTBAttribute( TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes );
+    void CheckLsFsTBAttribute( TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes );
+    void CheckListAttributes( TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes );
+    /*
+     * to check the attributes returned for details view is present
+     */
+    void CheckDetailsAttributes( TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes );
+    
+    /**
+     * convertFBSBitmapToHbIcon() - convert the CFbsbitmap to HbIcon
+     * @param - bitmap of media
+     * @return - Hbicon of the modia.
+     */
+    HbIcon *convertFBSBitmapToHbIcon( CFbsBitmap* aBitmap );
+    
+    /*
+     * convertFBSBitmapToHbIcon() - convert the CFbsbitmap to HbIcon and scale down upto itemWidth and itemHeight
+     * @param - bitmap of media
+     * @param - expected HbIcon width
+     * @param - expected HbIcon height
+     * @param - aspect ratio parameter in the case of scaling the thumbnail
+     * @return - Hbicon of the modia.
+     */
+    HbIcon * convertFBSBitmapToHbIcon( CFbsBitmap* aBitmap, TInt itemWidth, TInt itemHeight, Qt::AspectRatioMode aspectRatio = Qt::KeepAspectRatio );
 
 private:
     // Instance of Media List
     MGlxMediaList* iMediaList;
-	//observer for ML
-	CGlxMLGenericObserver* iMLGenericObserver;
-	GlxContextMode iContextMode;
-	//Parent QT based Wrapper
-	GlxMLWrapper* iMLWrapper;
-	//contexts
-	// Thumbnail context
-	CGlxThumbnailContext* iGridThumbnailContext;
+    //observer for ML
+    CGlxMLGenericObserver* iMLGenericObserver;
+    GlxContextMode iContextMode;
+    //Parent QT based Wrapper
+    GlxMLWrapper* iMLWrapper;
+    //contexts
+    // Thumbnail context
+    CGlxThumbnailContext* iGridThumbnailContext;
 
-	// FS related thumbnail contexts
-	CGlxDefaultThumbnailContext* iPtFsThumbnailContext;
-	CGlxDefaultThumbnailContext* iLsFsThumbnailContext; 
-	CGlxDefaultThumbnailContext* iFocusFsThumbnailContext;
-	CGlxDefaultThumbnailContext* iFocusGridThumbnailContext;
+    // FS related thumbnail contexts
+    CGlxDefaultThumbnailContext* iPtFsThumbnailContext;
+    CGlxDefaultThumbnailContext* iLsFsThumbnailContext;
+    CGlxDefaultThumbnailContext* iFocusFsThumbnailContext;
+    CGlxDefaultThumbnailContext* iFocusGridThumbnailContext;
 
-	//List related contexts
-	// Fetch context for retrieving title attribute
+    //List related contexts
+    // Fetch context for retrieving title attribute
     CGlxDefaultListAttributeContext* iTitleAttributeContext;
 
     // Fetch context for retrieving subtitle
     CGlxDefaultListAttributeContext* iSubtitleAttributeContext;
 
     //to find if the image is in favorites or not
-   	CGlxDefaultAttributeContext *iFavouriteContext;	
-	
-	//To fetch the details
+    CGlxDefaultAttributeContext *iFavouriteContext;
+
+    //To fetch the details
     CGlxDefaultAttributeContext *iDescContext;
-	
+
     CGlxThumbnailContext* iListThumbnailContext;
     // for thumbnail context
     TGlxFromVisibleIndexOutwardListIterator iThumbnailIterator;
 
-	// Iterators for Grid and FS
+    // Iterators for Grid and FS
     TGlxScrollingDirectionIterator iBlockyIterator;
     TGlxFromManualIndexBlockyIterator iBlockyIteratorForFilmStrip;
 
-	//Variables for checking the active contexts
-	//todo merge all these variables into 1 and have bitwise operation on them
-	TBool iGridContextActivated;
-	TBool iLsFsContextActivated;
-	TBool iPtFsContextActivated;
-	TBool iLsListContextActivated; //currently not used as we have not implemented the logic for 3 thumbnails
-	TBool iPtListContextActivated; 
-	TBool iDetailsContextActivated; //this is to fetch the comments attributes
-	TBool iSelectionListContextActivated;
-	CGlxTitleFetcher* iTitleFetcher;
-	QImage iCorruptImage;
-	QString iViewTitle;
-	CGlxDRMUtility * iDrmUtility;
+    //Variables for checking the active contexts
+    //todo merge all these variables into 1 and have bitwise operation on them
+    TBool iGridContextActivated;
+    TBool iLsFsContextActivated;
+    TBool iPtFsContextActivated;
+    TBool iLsListContextActivated; //currently not used as we have not implemented the logic for 3 thumbnails
+    TBool iPtListContextActivated;
+    TBool iDetailsContextActivated; //this is to fetch the comments attributes
+    TBool iSelectionListContextActivated;
+    CGlxTitleFetcher* iTitleFetcher;
+    QImage iCorruptImage;
+    QString iViewTitle;
+    CGlxDRMUtility * iDrmUtility;
 };
 #endif //GLXMLWRAPPER_P_H 
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -53,10 +53,17 @@
 const TInt KTBAttributeUnavailable(0);
 const TInt KTBAttributeCorrupt(-1);
 const TInt KListDataWindowSize(10);
+//for grid thumbnail
 const TInt KGridTNWIdth (127);
 const TInt KGridTNHeight (110);
 const TInt KGridTNPTWIdth (119);
 const TInt KGridTNPTHeight (103);
+//for image strip thumbnail
+const TInt KImageStripLSTNWIdth (95);
+const TInt KImageStripLSTNHeight (83);
+const TInt KImageStripPTTNWIdth (89);
+const TInt KImageStripPTTNHeight (78);
+
 const TInt KFullScreenTNLSWidth (640);
 const TInt KFullScreenTNLSHeight (360);
 const TInt KFullScreenTNPTWidth (360);
@@ -689,7 +696,7 @@
 {
     TInt itemHeight = 0;
     TInt itemWidth = 0;
-    switch (aTBContextType) {
+    switch ( aTBContextType ) {
         case GlxTBContextGrid: {
             itemHeight = KGridTNHeight;
             itemWidth = KGridTNWIdth;
@@ -720,10 +727,16 @@
 	
     if ( value && value->iBitmap != NULL ) {
         if( aTBContextType == GlxTBContextGrid ) {
-            GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d",aItemIndex);
+            GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d",aItemIndex );
             
             if (  iContextMode == GlxContextPtGrid ) {
-                return convertFBSBitmapToHbIcon( value->iBitmap , KGridTNPTWIdth, KGridTNPTHeight);
+                return convertFBSBitmapToHbIcon( value->iBitmap , KGridTNPTWIdth, KGridTNPTHeight );
+            }
+            else if ( iContextMode == GlxContextLsFs ) {
+                return convertFBSBitmapToHbIcon( value->iBitmap , KImageStripLSTNWIdth, KImageStripLSTNHeight, Qt::IgnoreAspectRatio );
+            }
+            else if ( iContextMode == GlxContextPtFs ) {
+                return convertFBSBitmapToHbIcon( value->iBitmap , KImageStripPTTNWIdth, KImageStripPTTNHeight, Qt::IgnoreAspectRatio );
             }
             else {
                 return convertFBSBitmapToHbIcon( value->iBitmap );
@@ -744,72 +757,63 @@
     return NULL;
 }
 
-QImage GlxMLWrapperPrivate::RetrieveItemImage(int aItemIndex, GlxTBContextType aTBContextType)
-    {
+QImage GlxMLWrapperPrivate::RetrieveItemImage( int aItemIndex, GlxTBContextType aTBContextType )
+{
     TInt itemHeight = 0;
     TInt itemWidth = 0;
-    switch (aTBContextType)
-        {
-        case GlxTBContextGrid: 
-            {
-            itemHeight = KGridTNHeight;
-            itemWidth = KGridTNWIdth;
-            }
-            break;
-        case GlxTBContextPtFs: 
-            {
-            itemHeight = KFullScreenTNPTHeight;
-            itemWidth = KFullScreenTNPTWidth;
-            }
-            break;
-        case GlxTBContextLsFs: 
-            {
-            itemHeight = KFullScreenTNLSHeight;
-            itemWidth = KFullScreenTNLSWidth;
-            }
-            break;
-        }
+    switch ( aTBContextType ) {
+    case GlxTBContextGrid: 
+        itemHeight = KGridTNHeight;
+        itemWidth = KGridTNWIdth;
+        break;
+        
+    case GlxTBContextPtFs:
+        itemHeight = KFullScreenTNPTHeight;
+        itemWidth = KFullScreenTNPTWidth;
+        break;
+        
+    case GlxTBContextLsFs: 
+        itemHeight = KFullScreenTNLSHeight;
+        itemWidth = KFullScreenTNLSWidth;
+        break;
+    }
+    
     const TGlxMedia& item = iMediaList->Item( aItemIndex );
-    TMPXAttribute thumbnailAttribute(KGlxMediaIdThumbnail, 
-            GlxFullThumbnailAttributeId( ETrue,itemWidth,itemHeight ) );      
-    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute(
-            thumbnailAttribute );
-    TInt tnError = GlxErrorManager::HasAttributeErrorL(
-                      item.Properties(), KGlxMediaIdThumbnail );
-    TSize iconSize(itemWidth, itemHeight);
+    TMPXAttribute thumbnailAttribute( KGlxMediaIdThumbnail, GlxFullThumbnailAttributeId( ETrue, itemWidth, itemHeight ) );
+    const CGlxThumbnailAttribute* value = item.ThumbnailAttribute( thumbnailAttribute );
+    TInt tnError = GlxErrorManager::HasAttributeErrorL( item.Properties(), KGlxMediaIdThumbnail );
 
-    if (value && value->iBitmap != NULL)
-        {
+    if ( value && value->iBitmap != NULL ) {
         value->iBitmap->LockHeap();
         TUint32 *tempData = value->iBitmap->DataAddress();
-        uchar *data = (uchar *)(tempData);  
-        int bytesPerLine = value->iBitmap->ScanLineLength(value->iBitmap->SizeInPixels().iWidth , value->iBitmap->DisplayMode());
-        QImage image = QImage(data, value->iBitmap->SizeInPixels().iWidth, value->iBitmap->SizeInPixels().iHeight, bytesPerLine, QImage::Format_RGB16).convertToFormat(QImage::Format_ARGB32_Premultiplied);
+        uchar *data = (uchar *) ( tempData );
+        int bytesPerLine = value->iBitmap->ScanLineLength( value->iBitmap->SizeInPixels().iWidth, value->iBitmap->DisplayMode() );
+        QImage image = QImage( data, 
+                                  value->iBitmap->SizeInPixels().iWidth,
+                                  value->iBitmap->SizeInPixels().iHeight, 
+                                  bytesPerLine, 
+                                  QImage::Format_RGB16 ).convertToFormat( QImage::Format_ARGB32_Premultiplied );
         value->iBitmap->UnlockHeap();
         return image;
-         }
-    else if( tnError == KErrCANoRights) 
-        {
+    }
+    else if ( tnError == KErrCANoRights ) {
         //handle DRM case
-        }
-    else if( tnError ) 
-        {
-        if(iCorruptImage.isNull())
-            {
-            HbIcon *icon = new HbIcon(GLXICON_CORRUPT);
-            if(!icon->isNull())
-                {
+    }
+    else if ( tnError ) {
+        if ( iCorruptImage.isNull() ) {
+            HbIcon *icon = new HbIcon( GLXICON_CORRUPT );
+            if ( !icon->isNull() ) {
                 // this image Creation is Slow. 
                 // But what to do, Q class's Does not undersatnd our Localised File names
                 iCorruptImage = icon->pixmap().toImage();
-                }
+            }
             delete icon;
-            }
+        }
         return iCorruptImage;
-        }
+    }
 
-     return QImage();
-    }
+    return QImage();
+}
 // ---------------------------------------------------------------------------
 //  RetrieveListTitle
 // ---------------------------------------------------------------------------
@@ -1026,7 +1030,7 @@
             return defaultBitmap;
             }
         }
-}
+    }
 
 // ---------------------------------------------------------------------------
 // HandleItemAddedL
@@ -1340,7 +1344,7 @@
 	return targetIcon;
 }
 
-HbIcon * GlxMLWrapperPrivate::convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap, TInt itemWidth, TInt itemHeight)
+HbIcon * GlxMLWrapperPrivate::convertFBSBitmapToHbIcon(CFbsBitmap* aBitmap, TInt itemWidth, TInt itemHeight, Qt::AspectRatioMode aspectRatio )
 {
     GLX_LOG_INFO1("### GlxMLWrapperPrivate::convertFBSBitmapToHbIcon 1 %d", 0);
     
@@ -1353,7 +1357,7 @@
         
     QPixmap pixmap = QPixmap::fromImage(image);    
     if ( aBitmap->SizeInPixels().iWidth > itemWidth || aBitmap->SizeInPixels().iHeight > itemHeight ) {
-        pixmap = pixmap.scaled( itemWidth, itemHeight, Qt::KeepAspectRatio );
+        pixmap = pixmap.scaled( itemWidth, itemHeight, aspectRatio );
     }  
     
     aBitmap->UnlockHeap();
--- a/ui/uiengine/model/bwins/glxmediamodelu.def	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/uiengine/model/bwins/glxmediamodelu.def	Mon Sep 27 15:13:20 2010 +0530
@@ -5,41 +5,44 @@
 	?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)
-	?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)
+	?getFullScreenImage@GlxMediaModel@@ABE?AVQImage@@H@Z @ 7 NONAME ; class QImage GlxMediaModel::getFullScreenImage(int) const
+	?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 8 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const
+	?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 9 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &)
+	?itemUpdated@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 10 NONAME ; void GlxMediaModel::itemUpdated(int, enum GlxTBContextType)
+	?getFullScreenIcon@GlxMediaModel@@ABE?AVHbIcon@@H@Z @ 11 NONAME ; class HbIcon GlxMediaModel::getFullScreenIcon(int) const
+	?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 12 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &)
+	?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 13 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode)
+	?itemProperty@GlxMediaModel@@QBE?AVQVariant@@ABVQModelIndex@@H@Z @ 14 NONAME ; class QVariant GlxMediaModel::itemProperty(class QModelIndex const &, int) const
+	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int)
+	?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject
+	?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 17 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const
+	??_EGlxMediaModel@@UAE@I@Z @ 18 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int)
+	?collectionProperty@GlxMediaModel@@QBE?AVQVariant@@H@Z @ 19 NONAME ; class QVariant GlxMediaModel::collectionProperty(int) const
+	?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 20 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const
+	?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 21 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const
+	?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 22 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int)
+	?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 23 NONAME ; void GlxMediaModel::itemCorrupted(int)
+	?modelpopulated@GlxMediaModel@@QAEXXZ @ 24 NONAME ; void GlxMediaModel::modelpopulated(void)
+	?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 25 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const
+	?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 26 NONAME ; class QString GlxMediaModel::tr(char const *, char const *)
+	?thumbnailPopulatedCheck@GlxMediaModel@@AAEXH@Z @ 27 NONAME ; void GlxMediaModel::thumbnailPopulatedCheck(int)
+	?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 28 NONAME ; void GlxMediaModel::itemsRemoved(int, int)
+	?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 29 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const
+	?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 30 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const
+	??1GlxMediaModel@@UAE@XZ @ 31 NONAME ; GlxMediaModel::~GlxMediaModel(void)
+	?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 32 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?updateDetailsView@GlxMediaModel@@IAEXXZ @ 33 NONAME ; void GlxMediaModel::updateDetailsView(void)
+	?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 34 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString)
+	?itemImageData@GlxMediaModel@@QBE?AVQVariant@@ABVQModelIndex@@H@Z @ 35 NONAME ; class QVariant GlxMediaModel::itemImageData(class QModelIndex const &, int) const
+	?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 36 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int)
+	?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 37 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const
+	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *)
+	?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 39 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const
+	?populated@GlxMediaModel@@IAEXXZ @ 40 NONAME ; void GlxMediaModel::populated(void)
+	?gridToFullscreenIcon@GlxMediaModel@@ABE?AVHbIcon@@PAV2@H@Z @ 41 NONAME ; class HbIcon GlxMediaModel::gridToFullscreenIcon(class HbIcon *, int) const
+	??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 42 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &)
+	?removeContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 43 NONAME ; void GlxMediaModel::removeContextMode(enum GlxContextMode)
+	?updateDetailItems@GlxMediaModel@@QAEXXZ @ 44 NONAME ; void GlxMediaModel::updateDetailItems(void)
+	?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 45 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const
+	?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 46 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString)
 
--- a/ui/uiengine/model/eabi/glxmediamodelu.def	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/uiengine/model/eabi/glxmediamodelu.def	Mon Sep 27 15:13:20 2010 +0530
@@ -9,37 +9,40 @@
 	_ZN13GlxMediaModel14modelpopulatedEv @ 8 NONAME
 	_ZN13GlxMediaModel14setContextModeE14GlxContextMode @ 9 NONAME
 	_ZN13GlxMediaModel14updateItemIconEiP6HbIcon16GlxTBContextType @ 10 NONAME
-	_ZN13GlxMediaModel16addExternalItemsEP5QListI18GlxInterfaceParamsE @ 11 NONAME
-	_ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 12 NONAME
-	_ZN13GlxMediaModel16staticMetaObjectE @ 13 NONAME DATA 16
-	_ZN13GlxMediaModel17albumTitleUpdatedE7QString @ 14 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
+	_ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 11 NONAME
+	_ZN13GlxMediaModel16staticMetaObjectE @ 12 NONAME DATA 16
+	_ZN13GlxMediaModel17albumTitleUpdatedE7QString @ 13 NONAME
+	_ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 14 NONAME
+	_ZN13GlxMediaModel17updateDetailItemsEv @ 15 NONAME
+	_ZN13GlxMediaModel17updateDetailsViewEv @ 16 NONAME
+	_ZN13GlxMediaModel18thumbnailPopulatedEv @ 17 NONAME
+	_ZN13GlxMediaModel19albumTitleAvailableE7QString @ 18 NONAME
+	_ZN13GlxMediaModel19getStaticMetaObjectEv @ 19 NONAME
+	_ZN13GlxMediaModel23thumbnailPopulatedCheckEi @ 20 NONAME
+	_ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 21 NONAME
+	_ZN13GlxMediaModel9populatedEv @ 22 NONAME
+	_ZN13GlxMediaModelC1ER12GlxModelParm @ 23 NONAME
+	_ZN13GlxMediaModelC2ER12GlxModelParm @ 24 NONAME
+	_ZN13GlxMediaModelD0Ev @ 25 NONAME
+	_ZN13GlxMediaModelD1Ev @ 26 NONAME
+	_ZN13GlxMediaModelD2Ev @ 27 NONAME
+	_ZNK13GlxMediaModel10metaObjectEv @ 28 NONAME
+	_ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 29 NONAME
+	_ZNK13GlxMediaModel12itemPropertyERK11QModelIndexi @ 30 NONAME
+	_ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 31 NONAME
+	_ZNK13GlxMediaModel13getFocusIndexEv @ 32 NONAME
+	_ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 33 NONAME
+	_ZNK13GlxMediaModel13itemImageDataERK11QModelIndexi @ 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
+	_ZNK13GlxMediaModel17getFullScreenIconEi @ 36 NONAME
+	_ZNK13GlxMediaModel18collectionPropertyEi @ 37 NONAME
+	_ZNK13GlxMediaModel18getFullScreenImageEi @ 38 NONAME
+	_ZNK13GlxMediaModel20gridToFullscreenIconEP6HbIconi @ 39 NONAME
+	_ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 40 NONAME
+	_ZNK13GlxMediaModel4dataERK11QModelIndexi @ 41 NONAME
+	_ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 42 NONAME
+	_ZNK13GlxMediaModel6parentERK11QModelIndex @ 43 NONAME
+	_ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 44 NONAME
+	_ZTI13GlxMediaModel @ 45 NONAME
+	_ZTV13GlxMediaModel @ 46 NONAME
 
--- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Mon Sep 27 15:13:20 2010 +0530
@@ -42,6 +42,8 @@
 class GLX_MEDIAMODEL_EXPORT GlxMediaModel : public QAbstractItemModel
 {
 Q_OBJECT
+friend class TestGlxMediaModel;
+
 public :	
     /**
      * Constructor
@@ -72,6 +74,10 @@
      */
     QModelIndex parent( const QModelIndex &child ) const;
     
+    QVariant itemImageData( const QModelIndex &index, int role ) const;
+    QVariant collectionProperty( int role ) const;
+    QVariant itemProperty( const QModelIndex &index, int role ) const;    
+    
     /**
      * data() -  return the data of corresponding role.
      * @param - model index of interested item.
@@ -94,16 +100,7 @@
      */
     QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const;
 
-	/**
-	* addExternalItems() - for setting external image data to the model. 
-	*/
-	void addExternalItems( GlxExternalData* externalItems );
 	
-	/**
-	 * clearExternalItems() - for removing all external image data from the model. 
-	 */
-	void clearExternalItems();
-
 signals :
     /**
      * albumTitleAvailable() - emit this signal when album title is available.
@@ -150,17 +147,15 @@
      * @param - media list context type
      * @return - return the hbicon of the item
      */	
-	HbIcon* GetFsIconItem( int itemIndex,GlxTBContextType tbContextType )const;
+	HbIcon* GetFsIconItem( int itemIndex, GlxTBContextType tbContextType )const;
+	
+	HbIcon gridToFullscreenIcon( HbIcon * icon, int itemIndex ) const;
+	
+	HbIcon getFullScreenIcon( int itemIndex ) const;
+	
+	QImage getFullScreenImage( int itemIndex ) 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.
      */
@@ -258,23 +253,18 @@
     void updateItemIcon( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType );
     
 private:
-	GlxMLWrapper* mMLWrapper;	
-	QCache<int, HbIcon> itemIconCache;
-	QCache<int, HbIcon> itemFsIconCache;
-	HbIcon* m_DefaultIcon;
-	HbIcon* m_CorruptIcon;
-	
-	GlxContextMode mContextMode;
-	//for external data to be populated by model
-	GlxExternalData* mExternalItems;
-	QCache<int, HbIcon> itemExternalIconCache;
-	int externalDataCount;
-	int mFocusIndex;
-	int mSubState;
-	GlxDRMUtilityWrapper* mDRMUtilityWrapper;
-	int mTempVisibleWindowIndex;
-	bool thumbnailPopulatedFlag;
-	bool mPaintPage;
+	GlxMLWrapper* mMLWrapper;
+    QCache<int, HbIcon> itemIconCache;
+    QCache<int, HbIcon> itemFsIconCache;
+    HbIcon* m_DefaultIcon;
+    HbIcon* m_CorruptIcon;
+    GlxContextMode mContextMode;
+    int mFocusIndex;
+    int mSubState;
+    GlxDRMUtilityWrapper* mDRMUtilityWrapper;
+    int mTempVisibleWindowIndex;
+    bool thumbnailPopulatedFlag;
+    bool mPaintPage;
 };
 
 
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -1,21 +1,19 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   ?Description
-*
-*/
-
-
+ * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Nokia Corporation - initial contribution.
+ *
+ * Contributors:
+ *
+ * Description:   ?Description
+ *
+ */
 
 #include <glxmediamodel.h>
 #include <hbicon.h>
@@ -39,136 +37,105 @@
 #define DELTA_IMAGE 5
 #define INITIAL_POPULATE_IMAGE_COUNT 30
 
-GlxMediaModel::GlxMediaModel(GlxModelParm & modelParm)
+GlxMediaModel::GlxMediaModel( GlxModelParm & modelParm )
 {
-	qDebug("GlxMediaModel::GlxMediaModel");
-	
-	thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? false : true;
-	mPaintPage = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? true : false;
-	mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,modelParm.filterType(),NULL,modelParm.fetcherFiterType());
-	mMLWrapper->setContextMode( modelParm.contextMode() );
-	mContextMode = modelParm.contextMode( ) ; 
-	mDRMUtilityWrapper = new GlxDRMUtilityWrapper();
-	
-	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);
-	err = connect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int)));
-	qDebug("updateItem() connection status %d", err);
-	err = connect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int)));
-	qDebug("updateItem() connection status %d", err);
-	err = connect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType)));
-	qDebug("iconAvailable() connection status %d", err);
-	err = connect( mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString)));
-	qDebug("updateAlbumTitle() connection status %d", err);
-	err = connect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated()));
-	err = connect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems()));
-	
-	itemIconCache.setMaxCost(20);  //Changed While Doing Media Wall
-	itemFsIconCache.setMaxCost(5);
-	itemExternalIconCache.setMaxCost(0);
-	
-	m_DefaultIcon = new HbIcon( GLXICON_DEFAULT );
-	m_CorruptIcon = new HbIcon( GLXICON_CORRUPT );
-	mExternalItems = NULL;
-	externalDataCount = 0;
-	mFocusIndex = -1;
-	mSubState = -1;
-	mTempVisibleWindowIndex = 0;
+    qDebug( "GlxMediaModel::GlxMediaModel" );
+
+    thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid
+        ? false : true;
+    mPaintPage = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? true : false;
+    mMLWrapper = new GlxMLWrapper( modelParm.collection(), 0, modelParm.filterType(), NULL,
+        modelParm.fetcherFiterType() );
+    mMLWrapper->setContextMode( modelParm.contextMode() );
+    mContextMode = modelParm.contextMode();
+    mDRMUtilityWrapper = new GlxDRMUtilityWrapper();
+
+    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 );
+    err = connect( mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int)) );
+    qDebug( "updateItem() connection status %d", err );
+    err = connect( mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int)) );
+    qDebug( "updateItem() connection status %d", err );
+    err = connect( this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this,
+        SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType)) );
+    qDebug( "iconAvailable() connection status %d", err );
+    err = connect( mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this,
+        SLOT(albumTitleUpdated(QString)) );
+    qDebug( "updateAlbumTitle() connection status %d", err );
+    err = connect( mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated()) );
+    err = connect( mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems()) );
+
+    itemIconCache.setMaxCost( 20 ); //Changed While Doing Media Wall
+    itemFsIconCache.setMaxCost( 5 );
+
+    m_DefaultIcon = new HbIcon( GLXICON_DEFAULT );
+    m_CorruptIcon = new HbIcon( GLXICON_CORRUPT );
+    mFocusIndex = -1;
+    mSubState = -1;
+    mTempVisibleWindowIndex = 0;
 }
 
 GlxMediaModel::~GlxMediaModel()
 {
     //itemadded.clear();
-	qDebug("GlxMediaModel::~GlxMediaModel");
-	itemIconCache.clear();
-	itemFsIconCache.clear();
-	delete m_DefaultIcon;
-	m_DefaultIcon = NULL;
-	delete m_CorruptIcon;
-	m_CorruptIcon = NULL;
-	clearExternalItems();
+    qDebug( "GlxMediaModel::~GlxMediaModel" );
+    itemIconCache.clear();
+    itemFsIconCache.clear();
+    delete m_DefaultIcon;
+    m_DefaultIcon = NULL;
+    delete m_CorruptIcon;
+    m_CorruptIcon = NULL;
     delete mMLWrapper;
-	delete mDRMUtilityWrapper;
+    delete mDRMUtilityWrapper;
 }
 
 //------------------------------------------------------------------------------------------------------------
 //setContextMode
 //------------------------------------------------------------------------------------------------------------
-void GlxMediaModel::setContextMode(GlxContextMode contextMode)
+void GlxMediaModel::setContextMode( GlxContextMode contextMode )
 {
-    if(contextMode == GlxContextComment)
-        {
-           mMLWrapper->setContextMode(contextMode);
+    if ( contextMode == GlxContextComment ) {
+        mMLWrapper->setContextMode( contextMode );
+    }
+    else {
+        if ( mContextMode != contextMode ) {
+
+            itemFsIconCache.clear();
+            mMLWrapper->setContextMode( contextMode );
+            mContextMode = contextMode;
+            if ( mContextMode == GlxContextLsGrid || mContextMode == GlxContextPtGrid ) {
+                itemIconCache.clear();
+                //emit dataChanged( index( 0, 0), index( rowCount() - 1, 0) );  // Not Needed for HgWidget
+            }
         }
-    else 
-        {
-      if(mContextMode != contextMode)	{
-        
-		itemFsIconCache.clear();
-		mMLWrapper->setContextMode(contextMode);
-		mContextMode = contextMode;
-		if ( mContextMode == GlxContextLsGrid || mContextMode == GlxContextPtGrid ) {
-            itemIconCache.clear();
-            //emit dataChanged( index( 0, 0), index( rowCount() - 1, 0) );  // Not Needed for HgWidget
-       }
-	  }
-     }
+    }
 }
 
 //------------------------------------------------------------------------------------------------------------
 //removeContextMode
 //------------------------------------------------------------------------------------------------------------
-void GlxMediaModel::removeContextMode(GlxContextMode contextMode)
-    {
-     mMLWrapper->removeContextMode(contextMode);
-    }
-
-//to add external data to the model
-void GlxMediaModel::addExternalItems(GlxExternalData* externalItems)
+void GlxMediaModel::removeContextMode( GlxContextMode contextMode )
 {
-	externalDataCount = externalItems->count();
-	beginInsertRows(QModelIndex(), 0, externalDataCount);
-	mExternalItems = externalItems;
-	itemExternalIconCache.setMaxCost(15);
-	endInsertRows();
-	setFocusIndex(index(0,0));
+    mMLWrapper->removeContextMode( contextMode );
 }
 
-
-/*
-*for removing all external image data from the model. 
-*/
-void GlxMediaModel::clearExternalItems()
+int GlxMediaModel::rowCount( const QModelIndex &parent ) const
 {
-	if(externalDataCount) {
-	    beginRemoveRows(QModelIndex(), 0, externalDataCount);	
-        if(mExternalItems) {
-		delete mExternalItems;
-		mExternalItems = NULL;
-		externalDataCount = 0;
-        }
-        itemExternalIconCache.clear();
-        endRemoveRows();
-    }
-
+    Q_UNUSED(parent);
+    qDebug( "GlxMediaModel::rowCount %d", mMLWrapper->getItemCount() );
+    return mMLWrapper->getItemCount();
 }
 
-int GlxMediaModel::rowCount(const QModelIndex &parent ) const
-{
-	Q_UNUSED(parent);
-	qDebug("GlxMediaModel::rowCount %d", mMLWrapper->getItemCount());
-    return (mMLWrapper->getItemCount() + externalDataCount);
-}
-
-int GlxMediaModel::columnCount(const QModelIndex &parent ) const
+int GlxMediaModel::columnCount( const QModelIndex &parent ) const
 {
     Q_UNUSED(parent);
     return 1;
 }
 
-QModelIndex GlxMediaModel::parent(const QModelIndex &child) const
+QModelIndex GlxMediaModel::parent( const QModelIndex &child ) const
 {
     Q_UNUSED(child);
 
@@ -177,268 +144,298 @@
 }
 
 
-//todo refactor this whole function ... too many return statements are not good
-QVariant GlxMediaModel::data( const QModelIndex &index, int role ) const
+QVariant GlxMediaModel::itemImageData( const QModelIndex &index, int role ) const
 {
-    if (role == GlxViewTitle) {
-        return mMLWrapper->retrieveViewTitle();
-    }
+    HbIcon* itemIcon = NULL;
+    QImage itemImage;
+    int itemIndex = index.row();
 
-    if(role == GlxPopulated) {
-        return mMLWrapper->IsPopulated();
-    }
-
-    if ( role == GlxSubStateRole ) {
-        return mSubState;
+    if ( role == Qt::DisplayRole ) {
+        return QVariant();
     }
 
     if ( role == GlxHgVisibilityRole ) {
         return TRUE;
     }
-    
-    if ( role == Qt::DisplayRole ) {
+
+    if ( role == GlxDefaultImage ) {
+        // this image Creation is Slow. But what to do, Q class's Does not undersatnd our Localised File names
+        return m_DefaultIcon->pixmap().toImage().convertToFormat( QImage::Format_ARGB32_Premultiplied );
+    }
+
+    qDebug( "GlxMediaModel::data buffer concept index %d role %d", index.row(), role );
+    if ( ( !index.isValid() ) || ( index.row() >= rowCount() ) ) {
         return QVariant();
     }
-    
-    if (role == GlxPaintPageFlag) {
-       return mPaintPage;
-    }
-    
-    if ( role == GlxDefaultImage ) {
-        if(!m_DefaultIcon->isNull()) {
-            // this image Creation is Slow. 
-            // But what to do, Q class's Does not undersatnd our Localised File names
-            return m_DefaultIcon->pixmap().toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied);
-        }
-        else {
-            return QImage();
-        }            
-    }
 
-    HbIcon* itemIcon = NULL;
-    QImage itemImage;
-    int itemIndex = index.row();
-    qDebug("GlxMediaModel::data buffer concept index %d role %d", index.row(), role);
-    if ((!index.isValid()) || (index.row() > rowCount()-1)) {
-         return QVariant();
-    }
-    
-    //retrieve Data from Media List		
+    //retrieve Data from Media List     
     if ( role == Qt::DecorationRole ) {
-        itemIcon = GetGridIconItem(itemIndex,GlxTBContextGrid);
-        if( itemIcon == NULL || itemIcon->isNull() ) {
+        itemIcon = GetGridIconItem( itemIndex, GlxTBContextGrid );
+        if ( itemIcon == NULL || itemIcon->isNull() ) {
             itemIcon = getCorruptDefaultIcon( index );
         }
         return *itemIcon;
     }
-		
-    if (role == GlxQImageSmall) {
-        return mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid);
+
+    if ( role == GlxQImageSmall ) {
+        return mMLWrapper->retrieveItemImage( itemIndex, GlxTBContextGrid );
     }
 
-    if (role == GlxFsImageRole){
-        if(mContextMode == GlxContextLsFs){
-            itemIcon = GetFsIconItem(itemIndex,GlxTBContextLsFs);
-        }
-        else if (mContextMode == GlxContextPtFs){
-            itemIcon = GetFsIconItem(itemIndex,GlxTBContextPtFs);
-        }
-        
-        if ( itemIcon == NULL ) {  
-            HbIcon* tempIcon = GetGridIconItem( itemIndex, GlxTBContextGrid );
-            if (tempIcon && !tempIcon->isNull()) {
-                qDebug("GlxMediaModel::scaling thumbnail");
-                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() ) ) ) {
-                    itemSize.scale(sz, Qt::KeepAspectRatio);
-                }
-                tempPixmap = tempPixmap.scaled(itemSize, Qt::IgnoreAspectRatio );
-                HbIcon tmp = HbIcon( QIcon(tempPixmap)) ;
-				if(!tmp.isNull()){
-					return tmp;
-				}
-            }
-        }
-		  
-        if ( itemIcon == NULL || itemIcon->isNull() ) {
-            itemIcon = getCorruptDefaultIcon( index ) ;
-        }
-        return *itemIcon;
+    if ( role == GlxFsImageRole ) {
+        return getFullScreenIcon( itemIndex );
     }
-	
-    if (role == GlxQImageLarge) {
-        if(mContextMode == GlxContextLsFs) {
-            itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextLsFs);
-        }
-        else {
-            itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextPtFs);
-        }
-        if(!itemImage.isNull()) {
-            return itemImage;
-        }
-        else {
-            itemImage =  mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid);
-            if (!itemImage.isNull()) {
-                QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize ( 640, 360) : QSize ( 360, 640 );
-                itemImage = itemImage.scaled(sz,Qt::KeepAspectRatio); 
-            }
-            return itemImage;
-        }
+    
+    if ( role == GlxQImageLarge ) {
+        return getFullScreenImage( itemIndex );
     }
     
-    if (role == GlxVisualWindowIndex) {
-        return mMLWrapper->getVisibleWindowIndex();
-    }
-	
+    if ( role == GlxHdmiBitmap ) {
+        return mMLWrapper->RetrieveBitmap( itemIndex );
+    } 
+    
+    return QVariant();
+}
+
+QVariant GlxMediaModel::collectionProperty(  int role ) const
+{
     QModelIndex idx;
     if ( GlxFocusIndexRole == role ) {
         idx = getFocusIndex();
         return idx.row();
     }
     
-    if(role == GlxUriRole) {
-        return (mMLWrapper->retrieveItemUri(itemIndex));
+    if ( role == GlxSubStateRole ) {
+        return mSubState;
+    }
+    
+    if ( role == GlxPopulated ) {
+        return mMLWrapper->IsPopulated();
     }
     
-	 if (role == GlxImageTitle) {
-           return mMLWrapper->retrieveListTitle(itemIndex);
+    if ( role == GlxViewTitle ) {
+        return mMLWrapper->retrieveViewTitle();
+    }     
+
+    if ( role == GlxVisualWindowIndex ) {
+        return mMLWrapper->getVisibleWindowIndex();
     }
-			
-    if(role == GlxDimensionsRole) {
-        return (mMLWrapper->retrieveItemDimension(itemIndex));
+
+    if ( role == GlxPaintPageFlag ) {
+        return mPaintPage;
     }
     
-    if(role == GlxDateRole ) {
-    	return (mMLWrapper->retrieveItemDate(itemIndex));
+    return QVariant();
+}
+
+QVariant GlxMediaModel::itemProperty( const QModelIndex &index, int role ) const
+{
+    if ( ( !index.isValid() ) || ( index.row() >= rowCount() ) ) {
+        return QVariant();
     }
     
-    if (role == GlxFrameCount) {
-        return (mMLWrapper->retrieveItemFrameCount(itemIndex));
-    }
-    
-    if (role == GlxHdmiBitmap) {
-        return mMLWrapper->RetrieveBitmap(itemIndex);
+    int itemIndex = index.row();
+
+    if ( role == GlxFrameCount ) {
+        return ( mMLWrapper->retrieveItemFrameCount( itemIndex ) );
     }
 
     if ( role == GlxImageCorruptRole ) {
         return mMLWrapper->isCorruptedImage( itemIndex );
     }
+
+    if ( role == GlxUriRole ) {
+        return ( mMLWrapper->retrieveItemUri( itemIndex ) );
+    }
     
-    if (role == GlxTimeRole) {
-        return mMLWrapper->retrieveItemTime(itemIndex);
+    if ( role == GlxSizeRole ) {
+        return mMLWrapper->retrieveItemSize( itemIndex );
+    }
+    
+    if ( role == GlxImageTitle ) {
+        return mMLWrapper->retrieveListTitle( itemIndex );
+    }
+
+    if ( role == GlxDimensionsRole ) {
+        return ( mMLWrapper->retrieveItemDimension( itemIndex ) );
+    }
+
+    if ( role == GlxDateRole ) {
+        return ( mMLWrapper->retrieveItemDate( itemIndex ) );
+    }
+
+    if ( role == GlxTimeRole ) {
+        return mMLWrapper->retrieveItemTime( itemIndex );
     }
-	
-    if (role == GlxSizeRole) {
-        return mMLWrapper->retrieveItemSize(itemIndex);
-     }
+    
+    if ( role == GlxDescRole ) {
+        return mMLWrapper->retrieveListDesc( itemIndex );
+    }
+    
+    return QVariant(); 
     
-     if (role == GlxDescRole) {
-        return mMLWrapper->retrieveListDesc(itemIndex);
-     }
+}
+
+QVariant GlxMediaModel::data( const QModelIndex &index, int role ) const
+{
+    if ( role < GlxItemImageDataEnd ) {
+        return itemImageData( index, role );
+    }
+    
+    if ( role < GlxCollectionPropertyEnd ) {
+        return collectionProperty( role );
+    }
+    
+    if ( role < GlxItemPropertyEnd ) {
+        return itemProperty( index, role);
+    }
+    
     return QVariant();
 }
 
 //GetGridIconItem
-HbIcon* GlxMediaModel::GetGridIconItem(int itemIndex, GlxTBContextType tbContextType) const
+HbIcon* GlxMediaModel::GetGridIconItem( int itemIndex, GlxTBContextType tbContextType ) const
 {
-	HbIcon* itemIcon = itemIconCache[itemIndex];  //Initialize icon from the Cache will be NULL if Item not present
-	if (!itemIcon)
-	{
-		itemIcon =  mMLWrapper->retrieveItemIcon(itemIndex, tbContextType);
-		if(itemIcon){
-            emit iconAvailable(itemIndex,itemIcon, GlxTBContextGrid);
-		}
-		itemIcon = itemIconCache[itemIndex];
-	}
-	return itemIcon;
+    HbIcon* itemIcon = itemIconCache[ itemIndex ]; //Initialize icon from the Cache will be NULL if Item not present
+    if ( !itemIcon ) {
+        itemIcon = mMLWrapper->retrieveItemIcon( itemIndex, tbContextType );
+        if ( itemIcon ) {
+            emit iconAvailable( itemIndex, itemIcon, GlxTBContextGrid );
+        }
+        itemIcon = itemIconCache[ itemIndex ];
+    }
+    return itemIcon;
 
 }
 
-HbIcon* GlxMediaModel::GetFsIconItem(int itemIndex, GlxTBContextType tbContextType) const
+HbIcon* GlxMediaModel::GetFsIconItem( int itemIndex, GlxTBContextType tbContextType ) const
 {
-	HbIcon* itemIcon = NULL;  //Initialize icon from the Cache will be NULL if Item not present
+    HbIcon* itemIcon = NULL; //Initialize icon from the Cache will be NULL if Item not present
 
-    bool drmProtected = mMLWrapper->IsDrmProtected(itemIndex);
-    if(drmProtected)
-        {
-        QString imagePath = mMLWrapper->retrieveItemUri(itemIndex);
-		bool rightValid = mMLWrapper->IsDrmValid(itemIndex);
-        if(!rightValid)
-            {
+    bool drmProtected = mMLWrapper->IsDrmProtected( itemIndex );
+    if ( drmProtected ) {
+        QString imagePath = mMLWrapper->retrieveItemUri( itemIndex );
+        bool rightValid = mMLWrapper->IsDrmValid( itemIndex );
+        if ( !rightValid ) {
             //show error note here
-            if(itemIndex == mFocusIndex )
-                mDRMUtilityWrapper->ShowRightsInfo(imagePath);
-            return itemIcon;
+            if ( itemIndex == mFocusIndex ) {
+                mDRMUtilityWrapper->ShowRightsInfo( imagePath );
             }
-        else
-            {
+            return itemIcon;
+        }
+        else {
             //consumeDrmRights(imagePath);
-            mDRMUtilityWrapper->ConsumeRights(imagePath);
-			bool rightValid = mDRMUtilityWrapper->ItemRightsValidityCheck(imagePath,true);
-			mMLWrapper->setDrmValid(itemIndex,rightValid);
-            }
+            mDRMUtilityWrapper->ConsumeRights( imagePath );
+            bool rightValid = mDRMUtilityWrapper->ItemRightsValidityCheck( imagePath, true );
+            mMLWrapper->setDrmValid( itemIndex, rightValid );
+        }
+    }
+    
+    itemIcon = itemFsIconCache[ itemIndex ]; //Initialize icon from the Cache will be NULL if Item not present
+    if ( !itemIcon ) {
+        itemIcon = mMLWrapper->retrieveItemIcon( itemIndex, tbContextType );
+        if ( itemIcon ) {
+            emit iconAvailable( itemIndex, itemIcon, tbContextType );
         }
-    itemIcon = itemFsIconCache[itemIndex];  //Initialize icon from the Cache will be NULL if Item not present
-    if (!itemIcon) {
-		itemIcon =  mMLWrapper->retrieveItemIcon(itemIndex, tbContextType);
-		if(itemIcon){
-            emit iconAvailable(itemIndex,itemIcon, tbContextType);
-		}
-		itemIcon = itemFsIconCache[itemIndex];
-	}
-	return itemIcon;
+        itemIcon = itemFsIconCache[ itemIndex ];
+    }
+    return itemIcon;
+}
 
+HbIcon GlxMediaModel::gridToFullscreenIcon( HbIcon * icon, int itemIndex ) const
+{
+    qDebug( "GlxMediaModel::gridToFullscreenIcon" );
+    QPixmap tempPixmap = icon->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() ) ) ) {
+        itemSize.scale( sz, Qt::KeepAspectRatio );
+    }
+    tempPixmap = tempPixmap.scaled( itemSize, Qt::IgnoreAspectRatio );
+    return HbIcon( QIcon( tempPixmap ) );
 }
 
-HbIcon* GlxMediaModel::GetExternalIconItem(int itemIndex,GlxTBContextType tbContextType) const
+HbIcon GlxMediaModel::getFullScreenIcon( int itemIndex ) const
 {
-	//todo add asserts here as the cache and the array is not preinitialized
-	HbIcon* itemIcon = itemExternalIconCache[itemIndex];  //Initialize icon from the Cache will be NULL if Item not present
-	if (!itemIcon) {
-		QPixmap* itemPixmap = mExternalItems->at(itemIndex).image;
-		itemIcon = new HbIcon(QIcon(*itemPixmap));
-		emit iconAvailable(itemIndex,itemIcon, tbContextType);
-	}
-	return itemIcon;
+    HbIcon* itemIcon = NULL;
+    if ( mContextMode == GlxContextLsFs ) {
+        itemIcon = GetFsIconItem( itemIndex, GlxTBContextLsFs );
+    }
+    else if ( mContextMode == GlxContextPtFs ) {
+        itemIcon = GetFsIconItem( itemIndex, GlxTBContextPtFs );
+    }
+
+    if ( itemIcon == NULL ) {
+        HbIcon* tempIcon = GetGridIconItem( itemIndex, GlxTBContextGrid );
+        if ( tempIcon && !tempIcon->isNull() ) {
+            HbIcon tmp = gridToFullscreenIcon( tempIcon, itemIndex );
+            if ( !tmp.isNull() ) {
+                return tmp;
+            }
+        }
+    }
+
+    if ( itemIcon == NULL || itemIcon->isNull() ) {
+        itemIcon = getCorruptDefaultIcon( index( itemIndex, 0 ) );
+    }
+    return *itemIcon;
 }
 
-
-void GlxMediaModel::itemUpdated(int mlIndex,GlxTBContextType tbContextType  )
+QImage GlxMediaModel::getFullScreenImage( int itemIndex ) const
 {
-	qDebug("GlxMediaModel::itemUpdated %d", mlIndex);
-	//clear the grid and FS cache if they have any icons with them for that index
-	if( tbContextType == GlxTBContextGrid ) {
-	    if ( !thumbnailPopulatedFlag ) {
-	        thumbnailPopulatedCheck( mlIndex ); 
-	    }		
-	    itemIconCache.remove(mlIndex);
-	}
-	if(tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs) {
-		itemFsIconCache.remove(mlIndex);
-	}
-	emit dataChanged( index( mlIndex , 0 ), index( mlIndex, 0 ) );	
+    QImage itemImage;
+    if ( mContextMode == GlxContextLsFs ) {
+        itemImage = mMLWrapper->retrieveItemImage( itemIndex, GlxTBContextLsFs );
+    }
+    else {
+        itemImage = mMLWrapper->retrieveItemImage( itemIndex, GlxTBContextPtFs );
+    }
+    if ( !itemImage.isNull() ) {
+        return itemImage;
+    }
+    else {
+        itemImage = mMLWrapper->retrieveItemImage( itemIndex, GlxTBContextGrid );
+        if ( !itemImage.isNull() ) {
+            QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize( 640, 360 ) : QSize( 360, 640 );
+            itemImage = itemImage.scaled( sz, Qt::KeepAspectRatio );
+        }
+        return itemImage;
+    }    
 }
 
-void GlxMediaModel::itemCorrupted(int itemIndex)
+void GlxMediaModel::itemUpdated( int mlIndex, GlxTBContextType tbContextType )
 {
-	qDebug("GlxMediaModel::itemCorrupted %d", itemIndex);
+    qDebug( "GlxMediaModel::itemUpdated %d", mlIndex );
+    //clear the grid and FS cache if they have any icons with them for that index
+    if ( tbContextType == GlxTBContextGrid ) {
+        if ( !thumbnailPopulatedFlag ) {
+            thumbnailPopulatedCheck( mlIndex );
+        }
+        itemIconCache.remove( mlIndex );
+    }
+    if ( tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs ) {
+        itemFsIconCache.remove( mlIndex );
+    }
+    emit dataChanged( index( mlIndex, 0 ), index( mlIndex, 0 ) );
+}
+
+void GlxMediaModel::itemCorrupted( int itemIndex )
+{
+    qDebug( "GlxMediaModel::itemCorrupted %d", itemIndex );
     if ( !thumbnailPopulatedFlag ) {
-        thumbnailPopulatedCheck( itemIndex ); 
+        thumbnailPopulatedCheck( itemIndex );
     }
-	emit dataChanged( index( itemIndex , 0 ), index( itemIndex, 0 ) );	
+    emit dataChanged( index( itemIndex, 0 ), index( itemIndex, 0 ) );
 }
 
 void GlxMediaModel::modelpopulated()
 {
-    if ( mTempVisibleWindowIndex!=-1) {
+    if ( mTempVisibleWindowIndex != -1 ) {
         //Set the visible Window index only ff the index stored in the activity manager is not out of range
-        if( rowCount() > mTempVisibleWindowIndex && mTempVisibleWindowIndex > 0 ) {
-            mMLWrapper->setVisibleWindowIndex(mTempVisibleWindowIndex);
+        if ( rowCount() > mTempVisibleWindowIndex && mTempVisibleWindowIndex > 0 ) {
+            mMLWrapper->setVisibleWindowIndex( mTempVisibleWindowIndex );
         }
         else {
-            mMLWrapper->setVisibleWindowIndex(0);
+            mMLWrapper->setVisibleWindowIndex( 0 );
         }
         mTempVisibleWindowIndex = -1;
     }
@@ -450,197 +447,174 @@
 //------------------------------------------------------------------------------------------------------------
 void GlxMediaModel::updateDetailItems()
 {
-    qDebug("GlxMediaModel::updateDetailItems");
+    qDebug( "GlxMediaModel::updateDetailItems" );
     emit updateDetailsView();
 }
 
-void GlxMediaModel::itemsAdded(int startIndex, int endIndex)
+void GlxMediaModel::itemsAdded( int startIndex, int endIndex )
 {
-	qDebug("GlxMediaModel::itemsAdded %d %d", startIndex, endIndex);
-	mFocusIndex = -1;
-	//emit rowsAboutToBeInserted(index(startIndex,0), startIndex, endIndex );
-	beginInsertRows(QModelIndex(), startIndex+externalDataCount, endIndex+externalDataCount);
-    //itemadded.insert(startIndex,(endIndex - startIndex),NULL );
-	itemIconCache.clear();
-	itemFsIconCache.clear();
+    qDebug( "GlxMediaModel::itemsAdded %d %d", startIndex, endIndex );
+    mFocusIndex = -1;
+    beginInsertRows( QModelIndex(), startIndex, endIndex );
+    itemIconCache.clear();
+    itemFsIconCache.clear();
     endInsertRows();
-	//emit rowsInserted(index(startIndex,0), startIndex, endIndex );
-	
 }
 
-void GlxMediaModel::itemsRemoved(int startIndex, int endIndex)
+void GlxMediaModel::itemsRemoved( int startIndex, int endIndex )
 {
-	qDebug("GlxMediaModel::itemsRemoved %d %d", startIndex, endIndex);
-	mFocusIndex = -1;
-	//emit rowsAboutToBeRemoved(index(startIndex,0), startIndex, endIndex );
-	beginRemoveRows(QModelIndex(), startIndex+externalDataCount, endIndex+externalDataCount);
-	//itemadded.remove(startIndex,(endIndex - startIndex) );
-	itemIconCache.clear();
-	itemFsIconCache.clear();
-	endRemoveRows();
-	//emit rowsRemoved(index(startIndex,0), startIndex, endIndex );
-	
+    qDebug( "GlxMediaModel::itemsRemoved %d %d", startIndex, endIndex );
+    mFocusIndex = -1;
+    beginRemoveRows( QModelIndex(), startIndex, endIndex );
+    itemIconCache.clear();
+    itemFsIconCache.clear();
+    endRemoveRows();
+}
+
+void GlxMediaModel::updateItemIcon( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType )
+{
+    qDebug( "GlxMediaModel::updateItemIcon %d", itemIndex );
+    if ( tbContextType == GlxTBContextGrid ) {
+        itemIconCache.insert( itemIndex, itemIcon );
+    }
+    else if ( tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs ) {
+        itemFsIconCache.insert( itemIndex, itemIcon );
+    }
 }
 
-void GlxMediaModel::updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType)
+void GlxMediaModel::albumTitleUpdated( QString aTitle )
 {
-	qDebug("GlxMediaModel::updateItemIcon %d", itemIndex);
-	if(tbContextType == GlxTBContextGrid){
-		itemIconCache.insert(itemIndex, itemIcon);
-	}
-	else if(tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs){
-		itemFsIconCache.insert(itemIndex, itemIcon);
-	}
-	else if (tbContextType == GlxTBContextExternal){
-		itemExternalIconCache.insert(itemIndex, itemIcon);	
-	}
-}
-
-void GlxMediaModel::albumTitleUpdated(QString aTitle)
-{
-    emit albumTitleAvailable(aTitle);
+    emit albumTitleAvailable( aTitle );
 }
 
-void GlxMediaModel::setFocusIndex(const QModelIndex &index)
+void GlxMediaModel::setFocusIndex( const QModelIndex &index )
 {
-	qDebug("GlxMediaModel::setFocusIndex%d", index.row());
-	int itemIndex = index.row();
-	int mlIndex = -1;
-	if(itemIndex >=externalDataCount)
-	{
-		mlIndex = itemIndex - externalDataCount;
-		mMLWrapper->setFocusIndex(mlIndex);
-		mFocusIndex = -1;
-	}
-	else{
-		mFocusIndex = itemIndex;
-		if(rowCount() > externalDataCount) {
-			mMLWrapper->setFocusIndex(0);
-			mlIndex = 0;
-		}
-		
-	}
-	if(mSubState != IMAGEVIEWER_S ){
-     if( mMLWrapper->IsDrmProtected(mlIndex) && (!mMLWrapper->IsDrmValid(mlIndex)) )
-            {
-            QString imagePath = mMLWrapper->retrieveItemUri(mlIndex);
-            mDRMUtilityWrapper->ShowRightsInfo(imagePath);
-            }
-	}else {
+    qDebug( "GlxMediaModel::setFocusIndex%d", index.row() );
+
+    int itemIndex = index.row();
+    if ( itemIndex < rowCount() && itemIndex >= 0 ) {
+        mMLWrapper->setFocusIndex( itemIndex );
+        mFocusIndex = itemIndex;
+    }
+    else if ( rowCount() > 0 ){
+       
+        mMLWrapper->setFocusIndex( 0 );
+        mFocusIndex = itemIndex = 0;
+    }
+
+    if ( mSubState != IMAGEVIEWER_S ) {
+        if ( mMLWrapper->IsDrmProtected( itemIndex ) && ( !mMLWrapper->IsDrmValid( itemIndex ) ) ) {
+            QString imagePath = mMLWrapper->retrieveItemUri( itemIndex );
+            mDRMUtilityWrapper->ShowRightsInfo( imagePath );
+        }
+    }
+    else {
         CGlxImageViewerManager* CGlxImageViewerManager = CGlxImageViewerManager::InstanceL();
         const TDesC& title = CGlxImageViewerManager->ImageUri()->Des();
-        QString imagePath = QString::fromUtf16(title.Ptr(),title.Length());
-        mDRMUtilityWrapper->ShowRightsInfo(imagePath);
-	}
+        QString imagePath = QString::fromUtf16( title.Ptr(), title.Length() );
+        mDRMUtilityWrapper->ShowRightsInfo( imagePath );
+    }
 }
 
 QModelIndex GlxMediaModel::getFocusIndex() const
 {
-	int itemIndex = 0;
-	//return index(itemIndex+externalDataCount,0);
-	if(mFocusIndex == -1){
-		int mlIndex = mMLWrapper->getFocusIndex();
-		itemIndex = mlIndex + externalDataCount;
-	}
-	else {
-		itemIndex = mFocusIndex;
-	}
-	return index(itemIndex,0);
+    int itemIndex = mFocusIndex;
+    if ( mFocusIndex == -1 ) {
+        itemIndex = mMLWrapper->getFocusIndex();
+    }
+
+    return index( itemIndex, 0 );
 }
 
-void GlxMediaModel::setSelectedIndex(const QModelIndex &index)
+void GlxMediaModel::setSelectedIndex( const QModelIndex &index )
 {
     int itemIndex = index.row();
-    qDebug("GlxMediaModel::setSelectedIndex()%d", itemIndex);    
-    mMLWrapper->setSelectedIndex(itemIndex);
+    qDebug( "GlxMediaModel::setSelectedIndex()%d", itemIndex );
+    mMLWrapper->setSelectedIndex( itemIndex );
 }
 
 HbIcon * GlxMediaModel::getCorruptDefaultIcon( const QModelIndex &index ) const
 {
     if ( mMLWrapper->isCorruptedImage( index.row() ) ) {
-        return m_CorruptIcon ;
+        return m_CorruptIcon;
     }
-    return m_DefaultIcon ;
+    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 ) ) {
+    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 )
+bool GlxMediaModel::setData( const QModelIndex & idx, const QVariant & value, int role )
 {
     Q_UNUSED( idx )
-    
+
     if ( GlxContextRole == role ) {
-        if ( value.isValid() &&  value.canConvert <int> () ) {
-            setContextMode( (GlxContextMode) value.value <int> () );
+        if ( value.isValid() && value.canConvert<int> () ) {
+            setContextMode( (GlxContextMode) value.value<int> () );
             return TRUE;
         }
     }
-    
+
     if ( GlxRemoveContextRole == role ) {
-            if ( value.isValid() &&  value.canConvert <int> () ) {
-                removeContextMode( (GlxContextMode) value.value <int> () );
-                return TRUE;
-            }
-        }
-    
-    
-    if ( GlxFocusIndexRole == role ) {
-        if ( value.isValid() &&  value.canConvert <int> () ) {
-            setFocusIndex( index( value.value <int> (), 0) );
+        if ( value.isValid() && value.canConvert<int> () ) {
+            removeContextMode( (GlxContextMode) value.value<int> () );
             return TRUE;
         }
     }
-    
+
+    if ( GlxFocusIndexRole == role ) {
+        if ( value.isValid() && value.canConvert<int> () ) {
+            setFocusIndex( index( value.value<int> (), 0 ) );
+            return TRUE;
+        }
+    }
+
     if ( GlxVisualWindowIndex == role ) {
-        if ( value.isValid() &&  value.canConvert <int> () ) {
-            mMLWrapper->setVisibleWindowIndex(  value.value <int> () );
+        if ( value.isValid() && value.canConvert<int> () ) {
+            mMLWrapper->setVisibleWindowIndex( value.value<int> () );
             return TRUE;
         }
     }
 
     if ( GlxSelectedIndexRole == role ) {
-        qDebug("GlxMediaModel::setData::GlxSelectedIndexRole()::BEFORE%d", idx.row());    
-        if ( value.isValid() &&  value.canConvert <int> () ) {
-        qDebug("GlxMediaModel::setData()::GlxSelectedIndexRole%d", idx.row());    
-            setSelectedIndex( index( value.value <int> (), 0) );
+        qDebug( "GlxMediaModel::setData::GlxSelectedIndexRole()::BEFORE%d", idx.row() );
+        if ( value.isValid() && value.canConvert<int> () ) {
+            qDebug( "GlxMediaModel::setData()::GlxSelectedIndexRole%d", idx.row() );
+            setSelectedIndex( index( value.value<int> (), 0 ) );
             return TRUE;
         }
     }
-    
-    if ( role == GlxSubStateRole && value.isValid() &&  value.canConvert <int> ()) {
-        mSubState = value.value <int> () ;
+
+    if ( role == GlxSubStateRole && value.isValid() && value.canConvert<int> () ) {
+        mSubState = value.value<int> ();
         return TRUE;
     }
     if ( GlxTempVisualWindowIndex == role ) {
-            if ( value.isValid() && value.canConvert<int> () ) {
-            mTempVisibleWindowIndex = value.value <int> (); 
+        if ( value.isValid() && value.canConvert<int> () ) {
+            mTempVisibleWindowIndex = value.value<int> ();
             return TRUE;
-            }
+        }
     }
 
     return FALSE;
 }
 
-QModelIndex GlxMediaModel::index(int row, int column, const QModelIndex &parent) const
+QModelIndex GlxMediaModel::index( int row, int column, const QModelIndex &parent ) const
 {
     Q_UNUSED(parent)
-    qDebug("GlxMediaModel::index row %d column %d", row, column);
-    
-    if ( ( row < 0 )
-        || ( row >= rowCount() )
-        || ( column < 0 )
-        || ( column >= columnCount() ) ) {
+    qDebug( "GlxMediaModel::index row %d column %d", row, column );
+
+    if ( ( row < 0 ) || ( row >= rowCount() ) || ( column < 0 ) || ( column >= columnCount() ) ) {
         return QModelIndex();
     }
-    
-    return QAbstractItemModel::createIndex(row, column);           
+
+    return QAbstractItemModel::createIndex( row, column );
 }
 
--- a/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -16,10 +16,12 @@
 */
 
 
+#include <hbmainwindow.h>
+#include <hbinstance.h>
 
-#include <glxfullscreenstate.h>
-#include <glxstatemanager.h>
-#include <glxcommandhandlers.hrh>
+#include "glxfullscreenstate.h"
+#include "glxstatemanager.h"
+#include "glxcommandhandlers.hrh"
 
 GlxFullScreenState::GlxFullScreenState(GlxStateManager *stateManager, GlxState *preState) : GlxState(GLX_FULLSCREENVIEW_ID, preState)
 {
@@ -63,7 +65,8 @@
     }    
     else if ( dir == BACKWARD_DIR ) {
         if ( preState->compare( GLX_GRIDVIEW_ID ) ) {
-            effect = FULLSCREEN_TO_GRID;
+            HbMainWindow *window = hbInstance->allMainWindows().first();
+            effect = window->orientation() == Qt::Vertical ? FULLSCREEN_TO_GRID_PORTRAIT : FULLSCREEN_TO_GRID ;
             viewEffect = LAUNCH_VIEW;
         }       
     }    
--- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -751,27 +751,6 @@
         id = EGlxCmdHandled;
 		}
         break;	
-    
-   case EGlxCmdDelete :
-		{
-        GlxExternalData* externalItems = GlxExternalUtility::instance()->getExternalData();
-        if(externalItems){
-            QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxFocusIndexRole );    
-            if ( variant.isValid() &&  variant.canConvert<int> () ) {
-                int selIndex = variant.value<int>(); 
-                int externalDataCount = externalItems->count();
-                if(selIndex < externalDataCount){
-                    GlxInterfaceParams tmp = externalItems->value(selIndex);
-                    tmp.isSelected = true;
-                    externalItems->replace(selIndex,tmp);
-                    emit externalCommand(EGlxPluginCmdDelete);
-                    return;
-                }
-            }
-        }
-        mActionHandler->handleAction(id,mCollectionId);
-		}
-        break;
         
    case EGlxCmdMarkAll :
    case EGlxCmdUnMarkAll :
@@ -841,8 +820,4 @@
 {
     qDebug("GlxStateManager::cleanupExternal");
     mViewManager->deactivateCurrentView();
-    GlxMediaModel *glxModel = dynamic_cast<GlxMediaModel *>(mCurrentModel);
-    if(glxModel) {
-		glxModel->clearExternalItems();  
-	}
 }
--- a/ui/views/fullscreenview/inc/glxfullscreenview.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/views/fullscreenview/inc/glxfullscreenview.h	Mon Sep 27 15:13:20 2010 +0530
@@ -65,6 +65,15 @@
     ~GlxFullScreenView();
     
     /**
+     * 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 );    
+    
+    /**
      * activate()
      * ///From GlxView
      */
@@ -75,15 +84,6 @@
      * ///From GlxView
      */
     void deActivate();
-
-    /**
-     * 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 );
     
     /**
      * resetView() - resets the view, with just one icon being present in the widget
@@ -122,11 +122,6 @@
     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();
@@ -170,11 +165,6 @@
     void released(const QModelIndex &index );
 
     /**
-     * setVisvalWindowIndex() - Set the viisual window index of medialist.
-     */
-    void setVisvalWindowIndex();
-    
-    /**
      * coverFlowEventHandle() -  Handle the event generated by cover flow.
      * @param - cover flow event type
      */
@@ -205,8 +195,7 @@
      void zoomOrientChangeAnimFinished( const HbEffect::EffectStatus status );
     
     /**
-     * effectFinished -  call back when ui on\off effect has finished
-     * @param - staus of effect
+     * handleToolBarAction() -  call back to handle fullscreen tool bar action 
      */
     void handleToolBarAction();
     
@@ -239,6 +228,11 @@
     void setLayout();
     
     /**
+     * activateUI() - To show the ui content like status bar, toolbar, and imzge strip.
+     */
+    void activateUI();
+    
+    /**
      * addConnection() - Add the call back of the widgets.
      */
     void addConnection();
@@ -254,6 +248,12 @@
     void setImageStripModel();
     
     /**
+     * setHdmiModel() - set the image strip model.
+     * @param - model
+     */
+    void setHdmiModel( QAbstractItemModel *model );    
+    
+    /**
      * loadFullScreenToolBar() - load the fullscreen tool bar from the docml.
      */
     void loadFullScreenToolBar();
@@ -267,6 +267,11 @@
     void addToolBarAction( int commandId, const QString &iconName, const QString &name) ;
     
     /**
+     * setVisvalWindowIndex() - Set the viisual window index of medialist.
+     */
+    void setVisvalWindowIndex();    
+    
+    /**
      * initAnimationItem() - Initialise the custom animation item.
      */
     void initAnimationItem();
@@ -296,12 +301,6 @@
      */
     int getSubState();
     
-    /**
-     * setHdmiModel() - set the image strip model.
-     * @param - model
-     */
-    void setHdmiModel( QAbstractItemModel *model );
-    
 private:
     QAbstractItemModel  *mModel;   //no ownership
     HbMainWindow        *mWindow;  //no ownership
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -82,15 +82,44 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
 }
 
+GlxFullScreenView::~GlxFullScreenView()
+{
+    OstTraceFunctionEntry0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
+    
+    cleanUp();
+    for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
+        delete mIconItems[ i ] ;
+    }
+    delete mBackGroundItem;
+    delete mImageStrip;
+    delete mFullScreenToolBar;
+    delete mCoverFlow;
+    delete mZoomWidget;
+
+    if( mDocLoader != NULL ) {
+        mDocLoader->reset();
+        delete mDocLoader;    
+    }
+    
+    HbEffect::remove( QString( "HbGridView" ), QString( ":/data/transitionup.fxml" ), QString( "TapShow" ) );
+    HbEffect::remove( QString( "HbGridView" ), QString( ":/data/transitiondown.fxml" ), QString( "TapHide" ) );
+    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomin.fxml" ), QString( "SelectHide" ) );
+    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomout.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::initializeView( QAbstractItemModel *model, GlxView *preView )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INITIALIZEVIEW_ENTRY );
     
     // if animations is on, then Set the image to HDMI here
-    if (!mTvOutWrapper){
+    if ( !mTvOutWrapper ){
         mTvOutWrapper = new GlxTvOutWrapper();
     }
-    setHdmiModel(model);
+    setHdmiModel( model );
     loadWidgets();
 
     /* 
@@ -114,104 +143,44 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_INITIALIZEVIEW_EXIT );
 }
 
-void GlxFullScreenView::loadWidgets()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADWIDGETS_ENTRY );
-       
-    mCoverFlow = qobject_cast<GlxCoverFlow*> (mDocLoader->findWidget(GLXFULLSCREEN_COVERFLOW));
-    
-    mZoomWidget  =  qobject_cast<GlxZoomWidget*> (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET));
-    mZoomWidget->connectDecodeRequestToPinchEvent();
-    mCoverFlow->setMultitouchFilter(mZoomWidget);
-    
-    //initialise the cover flow for basic connections and the rest
-    mCoverFlow->setCoverFlow();
-    mImageStrip = qobject_cast<HbGridView*> (mDocLoader->findWidget(GLXFULLSCREEN_FILMSTRIP));
-     
-    //When the widget is loaded/retreived the widgets are shown by default.
-    //@to do : hide the widgets by default in docml
-    mImageStrip->hide();      
-	mImageStrip->setLayoutName( QString( "ImageStrip" ) ); // To distinguish in CSS file
-	mImageStrip->setEnabledAnimations( HbAbstractItemView::None );
-	mImageStrip->setHorizontalScrollBarPolicy( HbScrollArea::ScrollBarAlwaysOff );
-	
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT );
-}
-
-void GlxFullScreenView::loadFullScreenToolBar()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_ENTRY );
-    
-    //The fullscreen tool bar is delted when ever the view is deactivated
-    //so load the docml once again and retreive the object
-    bool loaded =true;      
-    mDocLoader->load(GLXFULLSCREENDOCMLPATH,&loaded);
-    loadViewSection();
-
-    mFullScreenToolBar = qobject_cast<HbToolBar *> (mDocLoader->findObject(QString("toolBar")));
-    mFullScreenToolBar->clearActions();
-    
-    addToolBarAction( EGlxCmdDetailsOpen, GLXICON_FLIP, "Flip Action" ); //create  Flip tool bar button action
-    addToolBarAction( EGlxCmdSend, GLXICON_SEND, "Send Action" );        //create  Send tool bar button action
-    if( getSubState() != IMAGEVIEWER_S ) {        
-        addToolBarAction( EGlxCmdDelete, GLXICON_DELETE, "Delete Action" ); //create  Delete tool bar button action
-    }
-    else {
-        addToolBarAction( EGlxCmdHandled, GLXICON_USEIMAGE, "Use Action" ); //create  Use Image tool bar button action
-    }
- 
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_EXIT );
-}
-
-void GlxFullScreenView::addToolBarAction( int commandId, const QString &iconName, const QString &name )
-{
-    HbAction *action = new HbAction( this ); 
-    action->setData( commandId );
-    action->setIcon( HbIcon( iconName ) ); 
-    action->setObjectName( name );
-    mFullScreenToolBar->addAction( action );
-    connect(action, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); 
-}
-
 void GlxFullScreenView::activate()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATE_ENTRY );    
 //for zoom might not be required after wk15 release
-	mWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents,true); 
-	mWindow->viewport()->grabGesture(Qt::PinchGesture);
-	
-	QCoreApplication::instance()->installEventFilter(this);
+    mWindow->viewport()->setAttribute( Qt::WA_AcceptTouchEvents, true ); 
+    mWindow->viewport()->grabGesture( Qt::PinchGesture );
+    
+    QCoreApplication::instance()->installEventFilter( this );
 
     if( !mCoverFlow ) {
         loadWidgets();  //retrives the widgets
     }
     //Loads the widgets corresponding to the orientation.
     loadViewSection();
-	
+    
     HbView::HbViewFlags flags( HbView::ViewTitleBarTransparent | HbView::ViewStatusBarTransparent);
     setViewFlags(flags);
-	
-	// In case of fetcher don't hide status pane and title bar
+    
+    // In case of fetcher don't hide status pane and title bar
     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);
+        mUiOff = true;
+    }
+    else {
+        HbAction* selectAction = new HbAction( GLX_BUTTON_SELECT );
         selectAction->setObjectName( "FS Select" );
         
-        connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect()));
+        connect( selectAction, SIGNAL( triggered() ), this, SLOT( handleFSSelect() ) );
         HbToolBar* toolBar = new HbToolBar();
         toolBar->setOrientation( Qt::Horizontal );
-        toolBar->setVisible(true);
-        toolBar->addAction(selectAction);
-        setToolBar(toolBar);
-        }
+        toolBar->setVisible( true );
+        toolBar->addAction( selectAction );
+        setToolBar( toolBar );
+    }
         
     mUiOffTimer = new QTimer();
     mUiOffTimer->stop();        
-    mCoverFlow->setUiOn(FALSE);    
+    mCoverFlow->setUiOn( FALSE );    
     addConnection(); 
     setLayout();
      
@@ -223,26 +192,23 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATE_EXIT );
 }
 
-void GlxFullScreenView::handleFSSelect()
-{
-    emit actionTriggered( EGlxCmdFetcherSelect );
-}
-
-void GlxFullScreenView::loadViewSection()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY );    
+void GlxFullScreenView::deActivate()
+{ 
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_DEACTIVATE_ENTRY );    
+    
+    cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view
+    //Clean up the rest of the resources allocated
+    cleanUp();
+    QCoreApplication::instance()->removeEventFilter( this );
+    //deletes the iconitems in the coverflow   
+    mCoverFlow->ClearCoverFlow();
 
-    bool loaded =true;
-    if( mWindow->orientation() == Qt::Horizontal ) {
-        //Load the Landscape section for Horizontal
-        mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENLSSECTION,&loaded);
-    }
-    else{
-        //Load the Portrait section for Horizontal
-        mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENPTSECTION,&loaded);    
-    }
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADVIEWSECTION_EXIT );
+    //the coverflow is not deleted as it is loaded by document loader
+    //the coverflow is initialised to null 
+    //to just reset to the initial state
+    mCoverFlow = NULL;
+    mWindow->setAutomaticOrientationEffectEnabled( true );
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT );
 }
 
 void GlxFullScreenView::resetView()
@@ -259,23 +225,42 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_RESETVIEW_EXIT );
 }
 
-void GlxFullScreenView::deActivate()
-{ 
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_DEACTIVATE_ENTRY );    
+void GlxFullScreenView::setModel( QAbstractItemModel *model )
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODEL_ENTRY );
+    OstTraceExt2( TRACE_NORMAL, GLXFULLSCREENVIEW_SETMODEL, "GlxFullScreenView::setModel; model=%x; mModel=%u", ( TUint )( model ), ( TUint ) mModel );
     
-    cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view
-	//Clean up the rest of the resources allocated
-    cleanUp();
-    QCoreApplication::instance()->removeEventFilter(this);
-    //deletes the iconitems in the coverflow   
-    mCoverFlow->ClearCoverFlow();
+    mModel = model;     
+    setModelContext();  
+    setHdmiModel( mModel );
+    mZoomWidget->setModel( mModel );  
+    mCoverFlow->setModel( mModel );
+    setImageStripModel();
+    if( getSubState() == IMAGEVIEWER_S ) {
+        setTitle(GLX_IMAGE_VIEWER);
+    }
+	else if(getSubState() == FETCHER_S){ //do not hide UI in case of fetcher
+        disconnect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) );
+    }
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODEL_EXIT );
+}
 
-    //the coverflow is not deleted as it is loaded by document loader
-    //the coverflow is initialised to null 
-    //to just reset to the initial state
-    mCoverFlow = NULL;
-    mWindow->setAutomaticOrientationEffectEnabled( true );
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT );
+void GlxFullScreenView::setModelContext()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODELCONTEXT_ENTRY );
+    
+    if ( mModel && mWindow ) {
+        if ( mWindow->orientation() == Qt::Horizontal ) {
+            WRITE_TIMESTAMP("set the fullscreen landscape context")
+            mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
+        }
+        else {
+            WRITE_TIMESTAMP("set the fullscreen portrait context")
+            mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
+        }
+    }
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODELCONTEXT_EXIT );
 }
 
 void GlxFullScreenView::cleanUp()
@@ -321,52 +306,6 @@
     return NULL;    
 }
 
-void GlxFullScreenView::setModel( QAbstractItemModel *model )
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODEL_ENTRY );
-    OstTraceExt2( TRACE_NORMAL, GLXFULLSCREENVIEW_SETMODEL, "GlxFullScreenView::setModel; model=%x; mModel=%u", ( TUint )( model ), ( TUint ) mModel );
-    
-    mModel = model;     
-	setModelContext();  
-    setHdmiModel(mModel);
-	mZoomWidget->setModel(mModel);  
-    mCoverFlow->setModel(mModel);
-    setImageStripModel();
-    if(getSubState() == IMAGEVIEWER_S) {
-        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) ) );
-	}
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODEL_EXIT );
-}
-
-void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model)
-{
-    if (mTvOutWrapper) {
-        mTvOutWrapper->setModel(model, screenSize()); 
-        mTvOutWrapper->setImagetoHDMI(); // for the first image on screen
-    }    
-}
-
-void GlxFullScreenView::setModelContext()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODELCONTEXT_ENTRY );
-    
-    if ( mModel && mWindow ) {
-        if ( mWindow->orientation() == Qt::Horizontal ) {
-            WRITE_TIMESTAMP("set the fullscreen landscape context")
-            mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
-        }
-        else {
-            WRITE_TIMESTAMP("set the fullscreen portrait context")
-            mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
-        }
-    }
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODELCONTEXT_EXIT );
-}
-
 void GlxFullScreenView::orientationChanged(Qt::Orientation orient)
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_ENTRY );
@@ -390,42 +329,6 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT );
 }
 
-void GlxFullScreenView::activateUI()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY );
-    
-    if ( mUiOff && getSubState() != FETCHER_S ){      
-        if( !mFullScreenToolBar ) {
-            loadFullScreenToolBar();
-        }
-        mUiOff = FALSE;
-        
-        QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
-        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
-            mImageStrip->setCurrentIndex ( mModel->index( variant.value<int>(), 0) );    
-            mImageStrip->scrollTo( mModel->index( variant.value<int>(), 0), HbGridView::PositionAtTop ); 
-        }
-
-        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(GLX_IMAGE_VIEWER);
-        }
-        mFullScreenToolBar->setOpacity( 1 );
-        mFullScreenToolBar->show();
-    }
-    else {
-        hideUi();
-    }
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATEUI_EXIT );
-}
-
 void GlxFullScreenView::hideUi()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HIDEUI_ENTRY );
@@ -452,7 +355,7 @@
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_HIDEUI_EXIT );
 }
 
-void GlxFullScreenView::changeSelectedIndex(const QModelIndex &index)
+void GlxFullScreenView::changeSelectedIndex( const QModelIndex &index )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_ENTRY );
     
@@ -481,7 +384,7 @@
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_EXIT );
 }
 
-void GlxFullScreenView::indexChanged(const QModelIndex &index)
+void GlxFullScreenView::indexChanged( const QModelIndex &index )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INDEXCHANGED_ENTRY );    
     
@@ -494,12 +397,11 @@
     if (mTvOutWrapper){
         // for the indexchnaged through filmstrip
         mTvOutWrapper->setImagetoHDMI();
-    }
-    //disable the animation for the time being
+    } 
     imageSelectionAnimation( index );
     
     mModel->setData( index, index.row(), GlxFocusIndexRole );
-    mZoomWidget->indexChanged(index.row());
+    mZoomWidget->indexChanged( index.row() );
     mZoomWidget->setVisible( false );
     
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_INDEXCHANGED_EXIT );
@@ -554,26 +456,6 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_RELEASED_EXIT );
 }
 
-void GlxFullScreenView::setVisvalWindowIndex()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_ENTRY );
-    
-    QList< HbAbstractViewItem * >  visibleItemList =  mImageStrip->visibleItems();
-    if ( visibleItemList.count() <= 0 )
-        return ;
-
-    HbAbstractViewItem *item = visibleItemList.at(0);
-    if ( item == NULL ) 
-        return ;
-
-    if (  item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() )
-        return ;
-
-    mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex);
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_EXIT );
-}
-
 void GlxFullScreenView::coverFlowEventHandle( GlxCoverFlowEvent e )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_COVERFLOWEVENTHANDLE_ENTRY );
@@ -621,15 +503,16 @@
        return ;
     }
     
+    mImageStrip->resetTransform();
     if ( mUiOff ) {
         mUiOffTimer->stop();        
-        mCoverFlow->setUiOn(FALSE);
+        mCoverFlow->setUiOn( FALSE );
         mImageStrip->hide();
         setItemVisible( Hb::AllItems, FALSE );
     }
     else {
-        mUiOffTimer->start(KUiOffTime);
-        mCoverFlow->setUiOn(TRUE);               
+        mUiOffTimer->start( KUiOffTime );
+        mCoverFlow->setUiOn( TRUE );               
     }
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_EFFECTFINISHED_EXIT );
@@ -670,6 +553,84 @@
     mZoomWidget->resetTransform();
 }
 
+void GlxFullScreenView::handleToolBarAction()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_ENTRY );
+    
+    HbAction *action = qobject_cast<HbAction*>(sender());
+    qint32 commandId = action->data().toInt();
+    emit actionTriggered( commandId );
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_EXIT );
+}
+
+void GlxFullScreenView::handleFSSelect()
+{
+    emit actionTriggered( EGlxCmdFetcherSelect );
+}
+
+bool GlxFullScreenView::eventFilter(QObject *obj, QEvent *ev)
+{
+    GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", ev->type());
+    if ( ev->type() ==  QEvent::ApplicationActivate && mTvOutWrapper) {
+        GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi");
+        mTvOutWrapper->setToNativeMode();    
+    }
+    if (ev->type() ==  QEvent::ApplicationDeactivate)
+    {
+        if(mZoomWidget) {
+            mZoomWidget->forceZoomToBackground();
+        }
+        if (mTvOutWrapper) {
+            GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi");
+            mTvOutWrapper->setToCloningMode();    
+        }
+    }
+    return HbView::eventFilter(obj,ev);
+}
+
+void GlxFullScreenView::loadWidgets()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADWIDGETS_ENTRY );
+       
+    mCoverFlow = qobject_cast<GlxCoverFlow*> (mDocLoader->findWidget(GLXFULLSCREEN_COVERFLOW));
+    
+    mZoomWidget  =  qobject_cast<GlxZoomWidget*> (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET));
+    mZoomWidget->connectDecodeRequestToPinchEvent();
+    mCoverFlow->setMultitouchFilter(mZoomWidget);
+    
+    //initialise the cover flow for basic connections and the rest
+    mCoverFlow->setCoverFlow();
+    mImageStrip = qobject_cast<HbGridView*> (mDocLoader->findWidget(GLXFULLSCREEN_FILMSTRIP));
+     
+    //When the widget is loaded/retreived the widgets are shown by default.
+    //@to do : hide the widgets by default in docml
+    mImageStrip->hide();      
+    mImageStrip->setLayoutName( QString( "ImageStrip" ) ); // To distinguish in CSS file
+    mImageStrip->setEnabledAnimations( HbAbstractItemView::None );
+    //mImageStrip->setHorizontalScrollBarPolicy( HbScrollArea::ScrollBarAlwaysOff );
+	mImageStrip->setItemPixmapCacheEnabled( true );
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT );
+}
+
+void GlxFullScreenView::loadViewSection()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY );    
+
+    bool loaded =true;
+    if( mWindow->orientation() == Qt::Horizontal ) {
+        //Load the Landscape section for Horizontal
+        mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENLSSECTION,&loaded);
+    }
+    else{
+        //Load the Portrait section for Horizontal
+        mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENPTSECTION,&loaded);    
+    }
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADVIEWSECTION_EXIT );
+}
+
 void GlxFullScreenView::setLayout()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY );
@@ -682,6 +643,42 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETLAYOUT_EXIT );
 }
 
+void GlxFullScreenView::activateUI()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY );
+    
+    if ( mUiOff && getSubState() != FETCHER_S ){      
+        if( !mFullScreenToolBar ) {
+            loadFullScreenToolBar();
+        }
+        mUiOff = FALSE;
+        
+        QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
+        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
+            mImageStrip->setCurrentIndex ( mModel->index( variant.value<int>(), 0) );    
+            mImageStrip->scrollTo( mModel->index( variant.value<int>(), 0), HbGridView::PositionAtTop ); 
+        }
+
+        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(GLX_IMAGE_VIEWER);
+        }
+        mFullScreenToolBar->setOpacity( 1 );
+        mFullScreenToolBar->show();
+    }
+    else {
+        hideUi();
+    }
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATEUI_EXIT );
+}
+
 void GlxFullScreenView::addConnection()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ADDCONNECTION_ENTRY );
@@ -763,33 +760,67 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETIMAGESTRIPMODEL_EXIT );
 }
 
-GlxFullScreenView::~GlxFullScreenView()
+void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model)
 {
-    OstTraceFunctionEntry0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
+    if (mTvOutWrapper) {
+        mTvOutWrapper->setModel(model, screenSize()); 
+        mTvOutWrapper->setImagetoHDMI(); // for the first image on screen
+    }    
+}
+
+void GlxFullScreenView::loadFullScreenToolBar()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_ENTRY );
     
-	cleanUp();
-	for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
-	    delete mIconItems[ i ] ;
-	}
-	delete mBackGroundItem;
-    delete mImageStrip;
-    delete mFullScreenToolBar;
-    delete mCoverFlow;
-    delete mZoomWidget;
+    //The fullscreen tool bar is delted when ever the view is deactivated
+    //so load the docml once again and retreive the object
+    bool loaded =true;      
+    mDocLoader->load(GLXFULLSCREENDOCMLPATH,&loaded);
+    loadViewSection();
 
-    if(mDocLoader != NULL) {
-        mDocLoader->reset();
-        delete mDocLoader;    
-    }
+    mFullScreenToolBar = qobject_cast<HbToolBar *> (mDocLoader->findObject(QString("toolBar")));
+    mFullScreenToolBar->clearActions();
     
-    HbEffect::remove( QString("HbGridView"), QString(":/data/transitionup.fxml"), QString( "TapShow" ));
-    HbEffect::remove( QString("HbGridView"), QString(":/data/transitiondown.fxml"), QString( "TapHide" ));
-    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomin.fxml" ), QString( "SelectHide" ) );
-    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomout.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 );
+    addToolBarAction( EGlxCmdDetailsOpen, GLXICON_FLIP, "Flip Action" ); //create  Flip tool bar button action
+    addToolBarAction( EGlxCmdSend, GLXICON_SEND, "Send Action" );        //create  Send tool bar button action
+    if( getSubState() != IMAGEVIEWER_S ) {        
+        addToolBarAction( EGlxCmdDelete, GLXICON_DELETE, "Delete Action" ); //create  Delete tool bar button action
+    }
+    else {
+        addToolBarAction( EGlxCmdHandled, GLXICON_USEIMAGE, "Use Action" ); //create  Use Image tool bar button action
+    }
+ 
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_EXIT );
+}
+
+void GlxFullScreenView::addToolBarAction( int commandId, const QString &iconName, const QString &name )
+{
+    HbAction *action = new HbAction( this ); 
+    action->setData( commandId );
+    action->setIcon( HbIcon( iconName ) ); 
+    action->setObjectName( name );
+    mFullScreenToolBar->addAction( action );
+    connect(action, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); 
+}
+
+void GlxFullScreenView::setVisvalWindowIndex()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_ENTRY );
+    
+    QList< HbAbstractViewItem * >  visibleItemList =  mImageStrip->visibleItems();
+    if ( visibleItemList.count() <= 0 )
+        return ;
+
+    HbAbstractViewItem *item = visibleItemList.at(0);
+    if ( item == NULL ) 
+        return ;
+
+    if (  item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() )
+        return ;
+
+    mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex);
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_EXIT );
 }
 
 void GlxFullScreenView::initAnimationItem()
@@ -871,17 +902,6 @@
         HbEffect::start( mZoomWidget, QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "zoomOrientChangeAnimFinished" );
     }    
 }
-	
-void GlxFullScreenView::handleToolBarAction()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_ENTRY );
-    
-    HbAction *action = qobject_cast<HbAction*>(sender());
-    qint32 commandId = action->data().toInt();
-    emit actionTriggered( commandId );
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_EXIT );
-}
 
 int GlxFullScreenView::getSubState()
 {
@@ -896,23 +916,3 @@
 	return substate;
 }
 
-bool GlxFullScreenView::eventFilter(QObject *obj, QEvent *ev)
-{
-    GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", ev->type());
-    if ( ev->type() ==  QEvent::ApplicationActivate && mTvOutWrapper) {
-        GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi");
-        mTvOutWrapper->setToNativeMode();    
-    }
-    if (ev->type() ==  QEvent::ApplicationDeactivate)
-    {
-        if(mZoomWidget) {
-            mZoomWidget->forceZoomToBackground();
-        }
-        if (mTvOutWrapper) {
-            GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi");
-            mTvOutWrapper->setToCloningMode();    
-        }
-    }
-    return HbView::eventFilter(obj,ev);
-}
-
--- a/ui/views/gridview/src/glxgridview.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/views/gridview/src/glxgridview.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -97,6 +97,7 @@
         mTotalImagesCount->setObjectName( "Count" );
         mTotalImagesCount->hide();
     }
+    mWidget->resetTransform();
     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
 }
 
@@ -243,8 +244,7 @@
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
     mWidget->setSelectionMode(HgWidget::MultiSelection);
    
-    if (mMarkingWidget == NULL)
-        {
+    if (mMarkingWidget == NULL) {
         mMarkingWidget = new HbWidget(this);
         mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0);
         mMarkingWidget->setLayout(mMarkContainer);
@@ -262,13 +262,12 @@
        
         mMarkContainer->addItem(mMarkCheckBox);
         mMarkContainer->addItem(mMarkCountLabel);        
-        }
-
-    hideorshowitems(mWindow->orientation());
+    }
 
-    connect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
-    connect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int)));
+    hideorshowitems( mWindow->orientation() );
 
+    connect( mWidget->selectionModel() , SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
+    connect( mMarkCheckBox, SIGNAL( stateChanged( int ) ), this, SLOT( stateChanged( int ) ));
 }
 
 void GlxGridView::disableMarking()
@@ -305,9 +304,26 @@
 {
     int count = mModel->rowCount();
     QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes();
-    int markItemCount = indexList.count();    
-    QString text= HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count);     
-    mMarkCountLabel->setPlainText( text );    
+    int markItemCount = indexList.count();
+    QString text = HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count);
+    mMarkCountLabel->setPlainText(text);
+
+    //Block The signals generated by the CheckBox
+    //if we dont block the signals  , then when we call setCheckState to selected and unselect the CheckBox
+    //it causes state change signal to emit which will cause either mark all or un mark all of teh images.
+    mMarkCheckBox->blockSignals(TRUE);
+    if (markItemCount != count && mMarkCheckBox->checkState() == Qt::Checked) {
+        //if the mark all option was checked  and then the user un marks an slected item
+        //Then we have to un check the Mark All check Box
+        mMarkCheckBox->setCheckState(Qt::Unchecked);
+    }
+    else if (markItemCount == count) {
+        //if all the images are selected/marked Indiduvally
+        //Then the the Mark All check Box has to checked/Selected
+        mMarkCheckBox->setCheckState(Qt::Checked);
+    }
+    //UnBlock The signals generated by the CheckBox
+    mMarkCheckBox->blockSignals(FALSE);
 }
 
 void GlxGridView::showItemCount()
@@ -332,9 +348,10 @@
 					if (mAlbumNameHeading) {
                     	mAlbumNameHeading->hide();
 					}
-                    mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
+				
                     text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); 
                     mTotalImagesCount->setHeading ( text );
+                    mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
                     mTotalImagesCount->show();
                 }
                 else if ( getSubState() == ALBUM_ITEM_S ) {
@@ -397,18 +414,18 @@
 
     //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->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));       
         mAlbumNameHeading->show();
         }
     else
         { //handle album tiltle and count display logic here
         if (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);            
+            QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);    
             mAlbumNameHeading->setHeading(text);
+            mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height()/24));                 
             mAlbumNameHeading->show();
             }
         }
@@ -512,50 +529,47 @@
     OstTraceFunctionEntry0( GLXGRIDVIEW_GETANIMATIONITEM_ENTRY );
     int selIndex = -1;
 
-    if ( transitionEffect == FULLSCREEN_TO_GRID ) {
+    if ( transitionEffect == FULLSCREEN_TO_GRID  || transitionEffect == FULLSCREEN_TO_GRID_PORTRAIT ) {
         return mWidget;
     }
 
-    if ( transitionEffect == GRID_TO_FULLSCREEN )
-        {
-        QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );
-        if ( variant.isValid() &&  variant.canConvert<int> () )
-            {
-            selIndex = variant.value<int>();
-            }
-        else
-            {
+    if ( transitionEffect == GRID_TO_FULLSCREEN ) {
+        QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole );
+        if ( variant.isValid() && variant.canConvert<int> () ) {
+            selIndex = variant.value<int> ();
+        }
+        else {
             return mWidget;
-            }
-        QVariant variantimage = mModel->data(mModel->index(selIndex,0),Qt::DecorationRole);
-        if ( variantimage.isValid() &&  variantimage.canConvert<HbIcon> () )
-            {
+        }
+        QVariant variantimage = mModel->data( mModel->index( selIndex, 0 ), Qt::DecorationRole );
+        if ( variantimage.isValid() && variantimage.canConvert<HbIcon> () ) {
             QPolygonF poly;
-            if (mModelWrapper && !mWidget->getItemOutline(mModelWrapper->index(selIndex,0), poly))
-                {
+            if ( mModelWrapper && !mWidget->getItemOutline( mModelWrapper->index( selIndex, 0 ), poly ) ) {
                 return mWidget;
-                }
+            }
             QRectF itemRect = poly.boundingRect();
 
-            mIconItem->setSize(QSize(120,120));
-            HbIcon tempIcon =  variantimage.value<HbIcon>();
-            QPixmap tempPixmap = tempIcon.qicon().pixmap(120, 120);
-            QSize sz = QSize ( 120, 120);
-            tempPixmap = tempPixmap.scaled(sz, Qt::IgnoreAspectRatio );
-            HbIcon tmp = HbIcon( QIcon(tempPixmap)) ;
-            mIconItem->setIcon(tmp);
-            mIconItem->setPos(itemRect.topLeft());
-            mIconItem->setZValue(mIconItem->zValue() + 20);
+            mIconItem->setSize( QSize( 120, 120 ) );
+            HbIcon tempIcon = variantimage.value<HbIcon> ();
+            QPixmap tempPixmap = tempIcon.qicon().pixmap( 120, 120 );
+            QSize sz = QSize( 120, 120 );
+            tempPixmap = tempPixmap.scaled( sz, Qt::IgnoreAspectRatio );
+            HbIcon tmp = HbIcon( QIcon( tempPixmap ) );
+            mIconItem->setIcon( tmp );
+            mIconItem->setPos( itemRect.topLeft() );
+            mIconItem->setZValue( mIconItem->zValue() + 20 );
             mIconItem->show();
-            return mIconItem;
+            if ( mToolBar ) {
+                mToolBar->setZValue( mIconItem->zValue() - 5 );
             }
-        else
-            {
+            return mIconItem;
+        }
+        else {
             return mWidget;
-            }
         }
+    }
 
-    if ( transitionEffect == GRID_TO_ALBUMLIST  || transitionEffect == ALBUMLIST_TO_GRID ){
+    if ( transitionEffect == GRID_TO_ALBUMLIST || transitionEffect == ALBUMLIST_TO_GRID ) {
         return mWidget;
     }
     OstTraceFunctionExit0( GLXGRIDVIEW_GETANIMATIONITEM_EXIT );
@@ -638,10 +652,8 @@
         mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72));          
               
         mMarkSelectHeading->show();
-        mMarkingWidget->show();
-        
-        showMarkedItemCount();
-        
+        mMarkingWidget->show();        
+        showMarkedItemCount();        
     }
 }
 
--- a/ui/views/slideshowview/src/glxslideshowview.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/views/slideshowview/src/glxslideshowview.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -122,7 +122,7 @@
     mSlideShowWidget->setModel(mModel);
     
     if (mTvOutWrapper){
-        mTvOutWrapper->setModel(mModel, screenSize(), true);
+        mTvOutWrapper->setModel(mModel, screenSize());
         mTvOutWrapper->setImagetoHDMI();
     }
 }
@@ -180,9 +180,6 @@
             break;
             
         case EFFECT_STARTED:
-            if (mTvOutWrapper){
-            mTvOutWrapper->fadeSurface(false);
-            }
             break;
 
         default :
--- a/ui/viewutilities/effectengine/src/glxeffectengine.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/viewutilities/effectengine/src/glxeffectengine.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -30,20 +30,20 @@
       mTransitionEffect( NO_EFFECT ),
       mEffectResolver( NULL )
 {
-    qDebug("GlxSlideShowEffectEngine::GlxSlideShowEffectEngine()");
+    qDebug( "GlxSlideShowEffectEngine::GlxSlideShowEffectEngine()" );
     mTransitionEffectList.clear();
 }
 
 GlxEffectEngine::~GlxEffectEngine()
 {
-    qDebug("GlxSlideShowEffectEngine::~GlxSlideShowEffectEngine()");
+    qDebug( "GlxSlideShowEffectEngine::~GlxSlideShowEffectEngine()" );
     delete mEffectResolver;
     mEffectResolver = NULL;
 	
     cleanTransitionEfffect();
 }
 
-void GlxEffectEngine::registerEffect(const QString &itemType)
+void GlxEffectEngine::registerEffect( const QString &itemType )
 {
     GlxSettingInterface *settingObj = GlxSettingInterface::instance(); // NO ownership 
     if ( mEffectResolver == NULL ) {
@@ -54,56 +54,56 @@
     
     QList <QString > effectPathList = mEffectPlugin->effectFileList();
     
-    qDebug("GlxSlideShowEffectEngine::registerEffect() item type %s file path %s", itemType.utf16(), effectPathList[0].utf16());
+    qDebug( "GlxSlideShowEffectEngine::registerEffect() item type %s file path %s", itemType.utf16(), effectPathList[0].utf16() );
     for ( int i = 0; i < effectPathList.count() ; ++i ) {
-        HbEffect::add(itemType, effectPathList.at(i), QString( "Click%1" ).arg(i));
+        HbEffect::add( itemType, effectPathList.at( i ), QString( "Click%1" ).arg( i ) );
     }    
 }
 
-void GlxEffectEngine::deRegisterEffect(const QString &itemType)
+void GlxEffectEngine::deRegisterEffect( const QString &itemType )
 {
-    qDebug("GlxSlideShowEffectEngine::deRegisterEffect() item type %s", itemType.utf16());
+    qDebug( "GlxSlideShowEffectEngine::deRegisterEffect() item type %s", itemType.utf16() );
     QList <QString > effectPathList = mEffectPlugin->effectFileList();
     for ( int i = 0; i < effectPathList.count() ; ++i ) {
-        HbEffect::remove(itemType, effectPathList.at(i), QString( "Click%1" ).arg(i));
+        HbEffect::remove( itemType, effectPathList.at( i ), QString( "Click%1" ).arg( i ) );
     }
     mEffectPlugin = NULL;
 }
 
 void GlxEffectEngine::registerTransitionEffect()  
 {
-    qDebug("GlxSlideShowEffectEngine::registerTransitionEffect()");
+    qDebug( "GlxSlideShowEffectEngine::registerTransitionEffect()" );
     initTransitionEffect();
 }
 
 void GlxEffectEngine::deregistertransitionEffect()
 {
-    qDebug("GlxSlideShowEffectEngine::deregisterTransitionEffect()");
+    qDebug( "GlxSlideShowEffectEngine::deregisterTransitionEffect()" );
     cleanTransitionEfffect();
 }
 
-void GlxEffectEngine::runEffect(QGraphicsItem *  item, const QString &  itemType )
+void GlxEffectEngine::runEffect( QGraphicsItem *  item, const QString &  itemType )
 {
-    qDebug("GlxSlideShowEffectEngine::runEffect()1 item type %s", itemType.utf16());
-    HbEffect::start(item, itemType, QString( "Click1" ), this, "slideShowEffectFinished");
+    qDebug( "GlxSlideShowEffectEngine::runEffect()1 item type %s", itemType.utf16() );
+    HbEffect::start( item, itemType, QString( "Click1" ), this, "slideShowEffectFinished" );
     ++mNbrEffectRunning;
 }
 
-void GlxEffectEngine::runEffect(QList< QGraphicsItem * > &  items, const QString &  itemType )
+void GlxEffectEngine::runEffect( QList< QGraphicsItem * > &  items, const QString &  itemType )
 {
-    qDebug("GlxSlideShowEffectEngine::runEffect()2 item Type %s", itemType.utf16());
+    qDebug( "GlxSlideShowEffectEngine::runEffect()2 item Type %s", itemType.utf16() );
     mEffectPlugin->setUpItems(items);
     for ( int i = 0; i < items.count() ; ++i ) {
-        if ( mEffectPlugin->isAnimationLater(i) == FALSE ) {
-            HbEffect::start(items.at(i), itemType, QString( "Click%1").arg(i), this, "slideShowEffectFinished");
+        if ( mEffectPlugin->isAnimationLater( i ) == FALSE ) {
+            HbEffect::start( items.at( i ), itemType, QString( "Click%1" ).arg( i ), this, "slideShowEffectFinished" );
         }
         ++mNbrEffectRunning;
     }
 }
 
-void GlxEffectEngine::runEffect(QList< QGraphicsItem * > &  items, GlxEffect transitionEffect)
+void GlxEffectEngine::runEffect( QList< QGraphicsItem * > &  items, GlxEffect transitionEffect )
 {
-    qDebug("GlxSlideShowEffectEngine::runEffect()3 effect type %d ", transitionEffect);
+    qDebug( "GlxSlideShowEffectEngine::runEffect()3 effect type %d ", transitionEffect );
     
     GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect );
     
@@ -116,32 +116,32 @@
         ++mNbrEffectRunning;
         if ( ( i == effectSetting->count() -1) && effectSetting->isTransitionLater() )
         {
-            effectSetting->setAnimationItem( items.at(i) );
-            items.at(i)->hide();
+            effectSetting->setAnimationItem( items.at( i ) );
+            items.at( i )->hide();
         }
         else {
-            HbEffect::start(items.at(i), effectSetting->itemType().at(i), effectSetting->eventType().at(i), this, "transitionEffectFinished");
+            HbEffect::start( items.at( i ), effectSetting->itemType().at( i ), effectSetting->eventType().at( i ), this, "transitionEffectFinished" );
         }
     }    
 }
 
-void GlxEffectEngine::cancelEffect(QGraphicsItem *  item)
+void GlxEffectEngine::cancelEffect( QGraphicsItem *  item )
 {
     if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) {
         HbEffect::cancel( item, QString( "Click1" ) );
     }
 }
 
-void GlxEffectEngine::cancelEffect(const QList< QGraphicsItem * > &  items)
+void GlxEffectEngine::cancelEffect( const QList< QGraphicsItem * > &  items )
 {
     for ( int i = 0; i < items.count() ; ++i ) {    
-        if ( HbEffect::effectRunning( items.at(i), QString( "Click%1").arg(i) ) ) {
-            HbEffect::cancel( items.at(i), QString( "Click%1").arg(i) );
+        if ( HbEffect::effectRunning( items.at( i ), QString( "Click%1" ).arg( i ) ) ) {
+            HbEffect::cancel( items.at( i ), QString( "Click%1" ).arg( i ) );
         }
     }
 }
 
-void GlxEffectEngine::cancelEffect(QList< QGraphicsItem * > &  items, GlxEffect transitionEffect)
+void GlxEffectEngine::cancelEffect( QList< QGraphicsItem * > &  items, GlxEffect transitionEffect )
 {
     GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( transitionEffect );
     
@@ -150,11 +150,11 @@
     }
     
     for ( int i = 0; i < effectSetting->count() ; ++i) {
-        HbEffect::cancel(items.at(i), effectSetting->eventType().at(i) );
+        HbEffect::cancel(items.at( i ), effectSetting->eventType().at( i ) );
     }     
 }
 
-bool GlxEffectEngine::isEffectRuning(QGraphicsItem *  item)
+bool GlxEffectEngine::isEffectRuning( QGraphicsItem *  item )
 {
     if ( HbEffect::effectRunning( item, QString( "Click1" ) ) ) {
         return true;
@@ -162,10 +162,10 @@
     return false;
 }
 
-bool GlxEffectEngine::isEffectRuning(const QList< QGraphicsItem * > &  items)
+bool GlxEffectEngine::isEffectRuning( const QList< QGraphicsItem * > &  items )
 {
     for ( int i = 0; i < items.count() ; ++i ) {    
-        if ( HbEffect::effectRunning( items.at(i), QString( "Click%1").arg(i) ) ) {
+        if ( HbEffect::effectRunning( items.at( i ), QString( "Click%1" ).arg( i ) ) ) {
             return true;
         }
     }
@@ -175,12 +175,12 @@
 void GlxEffectEngine::slideShowEffectFinished( const HbEffect::EffectStatus &status )
 {
     Q_UNUSED( status )
-    qDebug("GlxSlideShowEffectEngine::slideShowEffectFinished() number of effect %d ", mNbrEffectRunning);
+    qDebug( "GlxSlideShowEffectEngine::slideShowEffectFinished() number of effect %d ", mNbrEffectRunning);
     
     --mNbrEffectRunning;
     
     if ( mEffectPlugin->isAnimationLater( mNbrEffectRunning) ) {
-        HbEffect::start( mEffectPlugin->animationItem(), mEffectPlugin->ItemType(), QString( "Click%1").arg(mNbrEffectRunning), this, "slideShowEffectFinished");
+        HbEffect::start( mEffectPlugin->animationItem(), mEffectPlugin->ItemType(), QString( "Click%1" ).arg(mNbrEffectRunning), this, "slideShowEffectFinished" );
     }
     
     if (mNbrEffectRunning == 0) {
@@ -191,14 +191,14 @@
 void GlxEffectEngine::transitionEffectFinished( const HbEffect::EffectStatus &status )
 {
     Q_UNUSED( status )
-    qDebug("GlxSlideShowEffectEngine::transitionEffectFinished() number of effect %d status %d", mNbrEffectRunning, status.reason);
+    qDebug( "GlxSlideShowEffectEngine::transitionEffectFinished() number of effect %d status %d", mNbrEffectRunning, status.reason);
     
     --mNbrEffectRunning;
     if ( mNbrEffectRunning == 1 ) {
         GlxTransitionEffectSetting *effectSetting = mTransitionEffectList.value( mTransitionEffect );
         if (  effectSetting->isTransitionLater() ){ 
             effectSetting->animationItem()->show();
-            HbEffect::start( effectSetting->animationItem(), effectSetting->itemType().at(1), effectSetting->eventType().at(1), this, "transitionEffectFinished");
+            HbEffect::start( effectSetting->animationItem(), effectSetting->itemType().at( 1 ), effectSetting->eventType().at( 1 ), this, "transitionEffectFinished" );
             mTransitionEffect = NO_EFFECT;
         }    
     }
@@ -212,46 +212,52 @@
 {
     GlxTransitionEffectSetting *effectSetting = NULL;
     
-    effectSetting = new GlxTransitionEffectSetting(GRID_TO_FULLSCREEN);
+    effectSetting = new GlxTransitionEffectSetting( GRID_TO_FULLSCREEN );
     for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
+        HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ;
     }
-    mTransitionEffectList[GRID_TO_FULLSCREEN] = effectSetting;
+    mTransitionEffectList[ GRID_TO_FULLSCREEN ] = effectSetting;
     
     effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_GRID );
     for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
+        HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ;
     }
-    mTransitionEffectList[FULLSCREEN_TO_GRID] = effectSetting;
+    mTransitionEffectList[ FULLSCREEN_TO_GRID ] = effectSetting;
+    
+    effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_GRID_PORTRAIT );
+    for ( int i = 0; i < effectSetting->count(); ++i ) {
+        HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ;
+    }
+    mTransitionEffectList[ FULLSCREEN_TO_GRID_PORTRAIT ] = effectSetting;
     
     effectSetting = new GlxTransitionEffectSetting( GRID_TO_ALBUMLIST );
     for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
+        HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ;
     }
-    mTransitionEffectList[GRID_TO_ALBUMLIST] = effectSetting;
+    mTransitionEffectList[ GRID_TO_ALBUMLIST ] = effectSetting;
     
     effectSetting = new GlxTransitionEffectSetting( ALBUMLIST_TO_GRID );
     for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
+        HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ;
     }
-    mTransitionEffectList[ALBUMLIST_TO_GRID] = effectSetting;
+    mTransitionEffectList[ ALBUMLIST_TO_GRID ] = effectSetting;
     
     effectSetting = new GlxTransitionEffectSetting( FULLSCREEN_TO_DETAIL );
     for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
+        HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ;
     }
-    mTransitionEffectList[FULLSCREEN_TO_DETAIL] = effectSetting; 
+    mTransitionEffectList[ FULLSCREEN_TO_DETAIL ] = effectSetting; 
     
     effectSetting = new GlxTransitionEffectSetting( DETAIL_TO_FULLSCREEN );
     for ( int i = 0; i < effectSetting->count(); ++i ) {
-        HbEffect::add( effectSetting->itemType().at(i), effectSetting->effectFileList().at(i), effectSetting->eventType().at(i)) ;
+        HbEffect::add( effectSetting->itemType().at( i ), effectSetting->effectFileList().at( i ), effectSetting->eventType().at( i ) ) ;
     }
-    mTransitionEffectList[DETAIL_TO_FULLSCREEN] = effectSetting;    
+    mTransitionEffectList[ DETAIL_TO_FULLSCREEN ] = effectSetting;    
 }
 
 void GlxEffectEngine::cleanTransitionEfffect()
 {	
-    qDebug("GlxSlideShowEffectEngine::cleanTrnastionEfffect()");
+    qDebug( "GlxSlideShowEffectEngine::cleanTrnastionEfffect()" );
     
     QHashIterator<GlxEffect, GlxTransitionEffectSetting *> iter( mTransitionEffectList );
 
@@ -259,7 +265,7 @@
         iter.next();
         GlxTransitionEffectSetting *list =  iter.value();
         for ( int i = 0; i < list->count(); ++i ) {
-            HbEffect::remove( list->itemType().at(i), list->effectFileList().at(i), list->eventType().at(i)) ;
+            HbEffect::remove( list->itemType().at( i ), list->effectFileList().at( i ), list->eventType().at( i ) ) ;
         }
         delete list;        
     }
--- a/ui/viewutilities/effectengine/src/glxtransitioneffect.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/viewutilities/effectengine/src/glxtransitioneffect.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -21,7 +21,7 @@
 
 GlxTransitionEffectSetting::GlxTransitionEffectSetting(GlxEffect effect): mEffect(effect), mTransitionLater(false), mItem(0)
 {
-    qDebug("GlxTransitionEffectSetting::GlxTransitionEffectSetting() effect id %d ", effect);
+    qDebug( "GlxTransitionEffectSetting::GlxTransitionEffectSetting() effect id %d ", effect );
     mEffectFileList.clear();
     mItemType.clear();
     mEventType.clear();
@@ -30,64 +30,70 @@
 
 void GlxTransitionEffectSetting::init()
 {
-    qDebug("GlxTransitionEffectSetting::init() effect id %d ", mEffect);
+    qDebug( "GlxTransitionEffectSetting::init() effect id %d ", mEffect );
     
     switch( mEffect ) {
         case GRID_TO_FULLSCREEN :
-            mEffectFileList.append( QString(":/data/gridtofullscreenhide.fxml"));
-            mItemType.append( QString("HbGridViewItem") );
-            mEventType.append(QString("click1") );
+            mEffectFileList.append( QString( ":/data/gridtofullscreenhide.fxml" ) );
+            mItemType.append( QString( "HbGridViewItem" ) );
+            mEventType.append(QString( "gridtofshide" ) );
             
-            mEffectFileList.append( QString(":/data/gridtofullscreenshow.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click2") );
+            mEffectFileList.append( QString( ":/data/gridtofullscreenshow.fxml" ) );
+            mItemType.append( QString( "HbView" ) );
+            mEventType.append(QString( "gridtofsshow" ) );
             break;
             
         case FULLSCREEN_TO_GRID :
-            mEffectFileList.append( QString(":/data/fullscreentogrid.fxml"));
-            mItemType.append( QString("HbGridView") );
-            mEventType.append(QString("click3") );
+            mEffectFileList.append( QString( ":/data/fullscreentogrid.fxml" ) );
+            mItemType.append( QString( "HbGridView" ) );
+            mEventType.append(QString( "fstogrid" ) );
             break;
             
+        case FULLSCREEN_TO_GRID_PORTRAIT :
+            mEffectFileList.append( QString( ":/data/fullscreentogridportrait.fxml" ) );
+            mItemType.append( QString( "HbGridView" ) );
+            mEventType.append( QString( "fstogridpt" ) );
+            break;            
+            
         case GRID_TO_ALBUMLIST:
             mEffectFileList.append( QString( "view_hide_normal" ) );
             mItemType.append( QString( "HbView" ) );
-            mEventType.append(QString( "click4" ) );
+            mEventType.append( QString( "gridtolisthide" ) );
                         
             mEffectFileList.append( QString( "view_show_normal" ) );
             mItemType.append( QString( "HbListView" ) );
-            mEventType.append( QString( "click5" ) );
+            mEventType.append( QString( "gridtolistshow" ) );
             break;
              
         case ALBUMLIST_TO_GRID:
             mEffectFileList.append( QString( "view_hide_back" ) );
             mItemType.append( QString( "HbListView" ) );
-            mEventType.append( QString( "click6" ) );
+            mEventType.append( QString( "listtogridhide" ) );
                         
             mEffectFileList.append( QString( "view_show_back" ) );
             mItemType.append( QString( "HbView" ) );
-            mEventType.append( QString( "click7" ) );
+            mEventType.append( QString( "listtogridshow" ) );
             break;
             
         case FULLSCREEN_TO_DETAIL :
             mEffectFileList.append( QString( "view_hide_normal_alt" ) );
             mItemType.append( QString( "HbView" ) );
-            mEventType.append( QString( "click8" ) );
+            mEventType.append( QString( "fstodetailhide" ) );
                         
             mEffectFileList.append( QString( "view_show_normal_alt" ) );
             mItemType.append( QString( "HbView" ) );
-            mEventType.append(QString( "click9" ) );
+            mEventType.append(QString( "fstodetailshow" ) );
             mTransitionLater = true;
             break;
             
         case DETAIL_TO_FULLSCREEN :
             mEffectFileList.append( "view_hide_back_alt" );
             mItemType.append( QString( "HbView" ) );
-            mEventType.append( QString( "click10" ) );
+            mEventType.append( QString( "detailtofshide" ) );
                         
             mEffectFileList.append( "view_show_back_alt" );
             mItemType.append( QString( "HbView" ) );
-            mEventType.append( QString( "click11" ) );
+            mEventType.append( QString( "detailtofsshow" ) );
             mTransitionLater = true;
             break;            
             
@@ -98,7 +104,7 @@
 
 GlxTransitionEffectSetting::~GlxTransitionEffectSetting()
 {
-    qDebug("GlxTransitionEffectSetting::~GlxTransitionEffectSetting() effect id %d ", mEffect);
+    qDebug( "GlxTransitionEffectSetting::~GlxTransitionEffectSetting() effect id %d ", mEffect );
     mEffectFileList.clear();
     mItemType.clear();
     mEventType.clear();
--- a/ui/widgets/bwins/glxzoomwidgetu.def	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/widgets/bwins/glxzoomwidgetu.def	Mon Sep 27 15:13:20 2010 +0530
@@ -1,47 +1,49 @@
 EXPORTS
 	?dataChanged@GlxZoomWidget@@IAEXVQModelIndex@@0@Z @ 1 NONAME ; void GlxZoomWidget::dataChanged(class QModelIndex, class QModelIndex)
 	?limitRequiredSize@GlxZoomWidget@@AAEXAAVQSizeF@@@Z @ 2 NONAME ; void GlxZoomWidget::limitRequiredSize(class QSizeF &)
-	?cleanUp@GlxZoomWidget@@QAEXXZ @ 3 NONAME ; void GlxZoomWidget::cleanUp(void)
-	?setMinMaxZValue@GlxZoomWidget@@QAEXHH@Z @ 4 NONAME ; void GlxZoomWidget::setMinMaxZValue(int, int)
-	?sendDecodeRequest@GlxZoomWidget@@QAEXH@Z @ 5 NONAME ; void GlxZoomWidget::sendDecodeRequest(int)
-	??0GlxZoomWidget@@QAE@PAVQGraphicsItem@@@Z @ 6 NONAME ; GlxZoomWidget::GlxZoomWidget(class QGraphicsItem *)
-	?qt_metacast@GlxZoomWidget@@UAEPAXPBD@Z @ 7 NONAME ; void * GlxZoomWidget::qt_metacast(char const *)
-	?staticMetaObject@GlxZoomWidget@@2UQMetaObject@@B @ 8 NONAME ; struct QMetaObject const GlxZoomWidget::staticMetaObject
-	?tr@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *, int)
-	?sceneEvent@GlxZoomWidget@@MAE_NPAVQEvent@@@Z @ 10 NONAME ; bool GlxZoomWidget::sceneEvent(class QEvent *)
-	?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 11 NONAME ; void GlxZoomWidget::forceZoomToBackground(void)
-	?resetDecoder@GlxZoomWidget@@AAEXXZ @ 12 NONAME ; void GlxZoomWidget::resetDecoder(void)
-	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *)
-	?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 14 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void)
-	?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 15 NONAME ; void GlxZoomWidget::animateDoubleTap(void)
-	?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 16 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *)
-	?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 17 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void)
-	?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 18 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *)
-	?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 19 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF)
-	?activate@GlxZoomWidget@@QAEXXZ @ 20 NONAME ; void GlxZoomWidget::activate(void)
-	?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 21 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void)
-	?indexChanged@GlxZoomWidget@@QAEXH@Z @ 22 NONAME ; void GlxZoomWidget::indexChanged(int)
-	?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 23 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF)
-	?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 24 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void)
-	?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 25 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void)
-	?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 26 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void)
-	?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 27 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 28 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int)
-	?indexChanged@GlxZoomWidget@@QAEXXZ @ 29 NONAME ; void GlxZoomWidget::indexChanged(void)
-	?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 30 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF)
-	?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 31 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *)
-	?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 32 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &)
-	?stepZoom@GlxZoomWidget@@IAEXXZ @ 33 NONAME ; void GlxZoomWidget::stepZoom(void)
-	?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 34 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const
-	?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 35 NONAME ; void GlxZoomWidget::decodedImageAvailable(void)
-	??_EGlxZoomWidget@@UAE@I@Z @ 36 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int)
-	??1GlxZoomWidget@@UAE@XZ @ 37 NONAME ; GlxZoomWidget::~GlxZoomWidget(void)
-	?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 38 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *)
-	?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 39 NONAME ; void GlxZoomWidget::pinchGestureReceived(int)
-	?setZoomParams@GlxZoomWidget@@AAEXXZ @ 40 NONAME ; void GlxZoomWidget::setZoomParams(void)
-	?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 41 NONAME ; void GlxZoomWidget::setWindowSize(class QSize)
-	?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 42 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void)
-	?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 43 NONAME ; void GlxZoomWidget::modelDestroyed(void)
-	?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *)
-	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 45 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int)
+	?springEffectAtMin@GlxZoomWidget@@AAEXXZ @ 3 NONAME ; void GlxZoomWidget::springEffectAtMin(void)
+	?cleanUp@GlxZoomWidget@@QAEXXZ @ 4 NONAME ; void GlxZoomWidget::cleanUp(void)
+	?setMinMaxZValue@GlxZoomWidget@@QAEXHH@Z @ 5 NONAME ; void GlxZoomWidget::setMinMaxZValue(int, int)
+	?sendDecodeRequest@GlxZoomWidget@@QAEXH@Z @ 6 NONAME ; void GlxZoomWidget::sendDecodeRequest(int)
+	??0GlxZoomWidget@@QAE@PAVQGraphicsItem@@@Z @ 7 NONAME ; GlxZoomWidget::GlxZoomWidget(class QGraphicsItem *)
+	?qt_metacast@GlxZoomWidget@@UAEPAXPBD@Z @ 8 NONAME ; void * GlxZoomWidget::qt_metacast(char const *)
+	?staticMetaObject@GlxZoomWidget@@2UQMetaObject@@B @ 9 NONAME ; struct QMetaObject const GlxZoomWidget::staticMetaObject
+	?tr@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *, int)
+	?sceneEvent@GlxZoomWidget@@MAE_NPAVQEvent@@@Z @ 11 NONAME ; bool GlxZoomWidget::sceneEvent(class QEvent *)
+	?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 12 NONAME ; void GlxZoomWidget::forceZoomToBackground(void)
+	?resetDecoder@GlxZoomWidget@@AAEXXZ @ 13 NONAME ; void GlxZoomWidget::resetDecoder(void)
+	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *)
+	?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 15 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void)
+	?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 16 NONAME ; void GlxZoomWidget::animateDoubleTap(void)
+	?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 17 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *)
+	?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 18 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void)
+	?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 19 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *)
+	?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 20 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF)
+	?activate@GlxZoomWidget@@QAEXXZ @ 21 NONAME ; void GlxZoomWidget::activate(void)
+	?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 22 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void)
+	?indexChanged@GlxZoomWidget@@QAEXH@Z @ 23 NONAME ; void GlxZoomWidget::indexChanged(int)
+	?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 24 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF)
+	?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void)
+	?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 26 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void)
+	?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 27 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void)
+	?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 29 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int)
+	?springEffectAtMax@GlxZoomWidget@@AAEXXZ @ 30 NONAME ; void GlxZoomWidget::springEffectAtMax(void)
+	?indexChanged@GlxZoomWidget@@QAEXXZ @ 31 NONAME ; void GlxZoomWidget::indexChanged(void)
+	?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 32 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF)
+	?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 33 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *)
+	?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 34 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &)
+	?stepZoom@GlxZoomWidget@@IAEXXZ @ 35 NONAME ; void GlxZoomWidget::stepZoom(void)
+	?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 36 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const
+	?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 37 NONAME ; void GlxZoomWidget::decodedImageAvailable(void)
+	??_EGlxZoomWidget@@UAE@I@Z @ 38 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int)
+	??1GlxZoomWidget@@UAE@XZ @ 39 NONAME ; GlxZoomWidget::~GlxZoomWidget(void)
+	?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 40 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *)
+	?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 41 NONAME ; void GlxZoomWidget::pinchGestureReceived(int)
+	?setZoomParams@GlxZoomWidget@@AAEXXZ @ 42 NONAME ; void GlxZoomWidget::setZoomParams(void)
+	?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 43 NONAME ; void GlxZoomWidget::setWindowSize(class QSize)
+	?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 44 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void)
+	?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 45 NONAME ; void GlxZoomWidget::modelDestroyed(void)
+	?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 46 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *)
+	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int)
 
--- a/ui/widgets/eabi/glxzoomwidgetu.def	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/widgets/eabi/glxzoomwidgetu.def	Mon Sep 27 15:13:20 2010 +0530
@@ -19,35 +19,37 @@
 	_ZN13GlxZoomWidget16staticMetaObjectE @ 18 NONAME DATA 16
 	_ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 19 NONAME
 	_ZN13GlxZoomWidget17sendDecodeRequestEi @ 20 NONAME
-	_ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 21 NONAME
-	_ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 22 NONAME
-	_ZN13GlxZoomWidget19getStaticMetaObjectEv @ 23 NONAME
-	_ZN13GlxZoomWidget20pinchGestureReceivedEi @ 24 NONAME
-	_ZN13GlxZoomWidget20retreiveFocusedImageEv @ 25 NONAME
-	_ZN13GlxZoomWidget21decodedImageAvailableEv @ 26 NONAME
-	_ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 27 NONAME
-	_ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 28 NONAME
-	_ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 29 NONAME
-	_ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 30 NONAME
-	_ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 31 NONAME
-	_ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 32 NONAME
-	_ZN13GlxZoomWidget7cleanUpEv @ 33 NONAME
-	_ZN13GlxZoomWidget8activateEv @ 34 NONAME
-	_ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 35 NONAME
-	_ZN13GlxZoomWidget8stepZoomEv @ 36 NONAME
-	_ZN13GlxZoomWidget9zoomImageEf7QPointF @ 37 NONAME
-	_ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 38 NONAME
-	_ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 39 NONAME
-	_ZN13GlxZoomWidgetD0Ev @ 40 NONAME
-	_ZN13GlxZoomWidgetD1Ev @ 41 NONAME
-	_ZN13GlxZoomWidgetD2Ev @ 42 NONAME
-	_ZNK13GlxZoomWidget10metaObjectEv @ 43 NONAME
-	_ZTI13GlxZoomWidget @ 44 NONAME
-	_ZTV13GlxZoomWidget @ 45 NONAME
-	_ZThn16_N13GlxZoomWidgetD0Ev @ 46 NONAME
-	_ZThn16_N13GlxZoomWidgetD1Ev @ 47 NONAME
-	_ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 48 NONAME
-	_ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 49 NONAME
-	_ZThn8_N13GlxZoomWidgetD0Ev @ 50 NONAME
-	_ZThn8_N13GlxZoomWidgetD1Ev @ 51 NONAME
+	_ZN13GlxZoomWidget17springEffectAtMaxEv @ 21 NONAME
+	_ZN13GlxZoomWidget17springEffectAtMinEv @ 22 NONAME
+	_ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 23 NONAME
+	_ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 24 NONAME
+	_ZN13GlxZoomWidget19getStaticMetaObjectEv @ 25 NONAME
+	_ZN13GlxZoomWidget20pinchGestureReceivedEi @ 26 NONAME
+	_ZN13GlxZoomWidget20retreiveFocusedImageEv @ 27 NONAME
+	_ZN13GlxZoomWidget21decodedImageAvailableEv @ 28 NONAME
+	_ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 29 NONAME
+	_ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 30 NONAME
+	_ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 31 NONAME
+	_ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 32 NONAME
+	_ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 33 NONAME
+	_ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 34 NONAME
+	_ZN13GlxZoomWidget7cleanUpEv @ 35 NONAME
+	_ZN13GlxZoomWidget8activateEv @ 36 NONAME
+	_ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 37 NONAME
+	_ZN13GlxZoomWidget8stepZoomEv @ 38 NONAME
+	_ZN13GlxZoomWidget9zoomImageEf7QPointF @ 39 NONAME
+	_ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 40 NONAME
+	_ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 41 NONAME
+	_ZN13GlxZoomWidgetD0Ev @ 42 NONAME
+	_ZN13GlxZoomWidgetD1Ev @ 43 NONAME
+	_ZN13GlxZoomWidgetD2Ev @ 44 NONAME
+	_ZNK13GlxZoomWidget10metaObjectEv @ 45 NONAME
+	_ZTI13GlxZoomWidget @ 46 NONAME
+	_ZTV13GlxZoomWidget @ 47 NONAME
+	_ZThn16_N13GlxZoomWidgetD0Ev @ 48 NONAME
+	_ZThn16_N13GlxZoomWidgetD1Ev @ 49 NONAME
+	_ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 50 NONAME
+	_ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 51 NONAME
+	_ZThn8_N13GlxZoomWidgetD0Ev @ 52 NONAME
+	_ZThn8_N13GlxZoomWidgetD1Ev @ 53 NONAME
 
--- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h	Mon Sep 27 15:13:20 2010 +0530
@@ -81,6 +81,8 @@
     void modelDestroyed();
 
     private:
+    void springEffectAtMin();
+    void springEffectAtMax();
     bool executeGestureEvent(QGraphicsItem *source,QGestureEvent *event);
     //Responsible for changing the transforms of the widget wrt the ZF and center
 	//Also adjusts the ZF, center and final size so as to respect the boundaries
@@ -155,5 +157,6 @@
     QSizeF minitSize;
     //counter to track the double tap animation steps
     int mdoubletapSteps;
+    bool mDoubleTap;
 };
 #endif  //GLXZOOMWIDGET_H
--- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -29,6 +29,8 @@
 const int NOOFSTEPSZI = 24;
 const int NOOFSTEPSZO = 18;
 const float MAXDTZOOMIN = 3.5;
+const int NO_OF_STEPS_FOR_SPRINGBACK_AT_MAX = 12;
+const int NO_OF_STEPS_FOR_SPRINGBACK_AT_MIN = 5;
 
 GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), 
             mModel(NULL), mMinZValue(MINZVALUE), 
@@ -62,6 +64,7 @@
 	//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 );
+	mDoubleTap = false;
 }
 
 GlxZoomWidget::~GlxZoomWidget()
@@ -144,6 +147,7 @@
         resetDecoder();
     }
     mZoomItem->setPixmap(QPixmap());
+	mBlackBackgroundItem->setParentItem(this);
 }
 
 void GlxZoomWidget::activate()
@@ -238,26 +242,26 @@
 
        if (pinchG->state() == Qt::GestureFinished) {
                //For giving a spring effect when user has zoomed more than normal.
-               if(mStepCurrentSize.width() > mMaxScaleDecSize.width())   {
-                   //scale the image to limited size
-                   qreal value = mMaxScaleDecSize.width()/mCurrentSize.width();
-                   QPointF center(mWindowSize.width()/2, mWindowSize.height()/2);
-                   QPointF sceneGestureCenter = source->sceneTransform().map(center);
-                   zoomImage(value, sceneGestureCenter);
-               }
-               mPinchGestureOngoing = false;
-                //finalize the transforms to the geometry else panning will not work
-                finalizeWidgetTransform();
+		  mPinchGestureOngoing = false;               
+        //scale the image to limited size
+		if(mCurrentSize.width() > mMaxScaleDecSize.width() )
+        {
+        	  QPointF center(mWindowSize.width()/2, mWindowSize.height()/2);
+		       m_AnimRefPoint = source->sceneTransform().map(center);
+		       springEffectAtMax();
+               return true;
+		}
        
-//push the Zoom widget to background when zoomed image size nears FS image
-           if(mStepCurrentSize.width() <= mMinDecScaleSize.width()*1.3)  {
-               mBlackBackgroundItem->hide();
-               //push the widget back to background
-               setZValue(mMinZValue);
-               mZoomOngoing = false;
-               emit zoomWidgetMovedBackground(mFocusIndex);
+		if(mCurrentSize.width() < mMinDecScaleSize.width())
+        {
+              QPointF center(mWindowSize.width()/2, mWindowSize.height()/2);
+              m_AnimRefPoint = source->sceneTransform().map(center);
+              springEffectAtMin();
+              return true;
                //do not reset the transform here as it will then zoom-in the widget to decoded image size
-           }
+        }
+        //finalize the transforms to the geometry else panning will not work
+        finalizeWidgetTransform();
        }
        //gesture accepted
        return true;
@@ -269,6 +273,38 @@
      return true;
 
 }
+void GlxZoomWidget::springEffectAtMax()
+{
+    //set the no. of steps for double tap animation 
+    mdoubletapSteps = NO_OF_STEPS_FOR_SPRINGBACK_AT_MAX;
+    //initiale variable for double tap animation
+    mIncSF = 1;
+    
+    //For giving a spring effect when user has zoomed out more than normal.
+    //Zoom out to mMaxScaleDecSize from the currentsize
+    m_FinalAnimatedScaleFactor = mMaxScaleDecSize.width()/mCurrentSize.width();
+    //calculate the step increment SF for each step
+    msfInc = (1 - m_FinalAnimatedScaleFactor)/(mdoubletapSteps);
+    //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
+    minitSize = mCurrentSize;
+    animateDoubleTap();
+}
+
+void GlxZoomWidget::springEffectAtMin()
+{
+      
+        m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width();
+        //set the no. of steps for double tap animation 
+        mdoubletapSteps = NO_OF_STEPS_FOR_SPRINGBACK_AT_MIN;
+        //initiale variable for double tap animation
+        mIncSF = 1;
+        //SF has to always greater than 1 for upscaling, hence range for zoomout is [1,m_FinalAnimatedScaleFactor]
+        msfInc = (m_FinalAnimatedScaleFactor-1)/mdoubletapSteps;
+        //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
+        minitSize = mCurrentSize;
+        animateDoubleTap();
+       
+}
 
 void GlxZoomWidget::zoomImage(qreal zoomFactor, QPointF center)
 {
@@ -297,8 +333,8 @@
     if(requiredSize.width() > mMaxScaleSize.width() ) {
         requiredSize = mMaxScaleSize ;
     }
-    else if(requiredSize.width() < mMinDecScaleSize.width() ) {
-        requiredSize = mMinDecScaleSize ;
+    else if(requiredSize.width() < mMinScaleSize.width() ) {
+        requiredSize = mMinScaleSize ;
     }
 
 
@@ -579,6 +615,7 @@
 
 void GlxZoomWidget::animateDoubleTap()
     {
+    mDoubleTap = true;
     //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) {
@@ -609,15 +646,24 @@
 void GlxZoomWidget::animationTimeLineFinished()
 {
 	finalizeWidgetTransform();
-//push the Zoom widget to background when zoomed image size nears FS image
-           if(mStepCurrentSize.width() <= mMinDecScaleSize.width()*1.3)  {
+    //push the Zoom widget to background when zoomed image size nears FS image
+	if(mDoubleTap && (mStepCurrentSize.width() <= mMinDecScaleSize.width()*1.3))  {
                mBlackBackgroundItem->hide();
                //push the widget back to background
                setZValue(mMinZValue);
                mZoomOngoing = false;
                emit zoomWidgetMovedBackground(mFocusIndex);
                //do not reset the transform here as it will then zoom-in the widget to decoded image size
-           }
+			   mDoubleTap = false;
+    }
+	if(mCurrentSize.width() == mMinDecScaleSize.width()) {
+	    	mBlackBackgroundItem->hide();
+    	 	//push the widget back to background
+	         setZValue(mMinZValue);
+	         mZoomOngoing = false;
+	         emit zoomWidgetMovedBackground(mFocusIndex);
+	       
+	}
 }