Revision: 201031
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 18 Aug 2010 09:48:53 +0300
changeset 55 fb37077c270f
parent 49 f291796e213d
child 61 743eb0b9959e
Revision: 201031 Kit: 201033
commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro
commonutilities/imagedecoderwrapper/inc/glximagedecoder.h
commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp
data/Image1.jpg
data/Image10.jpg
data/Image2.jpg
data/Image3.jpg
data/Image4.jpg
data/Image5.jpg
data/Image6.jpg
data/Image7.jpg
data/Image8.jpg
data/Image9.jpg
data/Wait/qgn_graf_ring_wait_01.svg
data/Wait/qgn_graf_ring_wait_02.svg
data/Wait/qgn_graf_ring_wait_03.svg
data/Wait/qgn_graf_ring_wait_04.svg
data/Wait/qgn_graf_ring_wait_05.svg
data/Wait/qgn_graf_ring_wait_06.svg
data/Wait/qgn_graf_ring_wait_07.svg
data/Wait/qgn_graf_ring_wait_08.svg
data/Wait/qgn_graf_ring_wait_09.svg
data/Wait/qgn_graf_ring_wait_10.svg
data/albumlisttogrid.fxml
data/albumlisttogridshow.fxml
data/detailsview.docml
data/fullscreen.docml
data/grid.docml
data/gridtoalbumlist.fxml
data/gridtoalbumlisthide.fxml
data/photos.css
data/photos.docml
data/rotatefslandscape.fxml
data/rotatefsprotrait.fxml
data/rotatelandscape.fxml
data/rotateprotrait.fxml
data/transitiondown.fxml
data/transitionup.fxml
data/view_flip_hide.fxml
data/view_flip_show.fxml
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp
engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp
gallery/sis/photos.pkg
gallery/sis/photos_stub.pkg
gallery/sis/photos_stub.sis
inc/glxlocalisationstrings.h
inc/glxlog.h
main/glxaiwservicehandler.cpp
main/glxaiwservicehandler.h
photos.qrc
rom/photos.iby
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/glxactivecallback.h
tvout/tvoutengine/inc/glxactivedecoder.h
tvout/tvoutengine/inc/glxhdmicontainer.h
tvout/tvoutengine/inc/glxhdmicontroller.h
tvout/tvoutengine/inc/glxhdmisurfaceupdater.h
tvout/tvoutengine/inc/glxtv.h
tvout/tvoutengine/inc/glxtvconnectionmonitor.h
tvout/tvoutengine/inc/glxwindowvisibilitymonitor.h
tvout/tvoutengine/src/glxhdmicontroller.cpp
tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp
tvout/tvoutengine/src/glxtvconnectionmonitor.cpp
tvout/tvoutengine/src/glxwindowvisibilitymonitor.cpp
tvout/tvoutwrapper/inc/glxtvconnectionobserver.h
tvout/tvoutwrapper/inc/glxtvoutwrapper.h
tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h
tvout/tvoutwrapper/src/glxtvoutwrapper.cpp
tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp
ui/commandhandlers/bwins/glxcommoncommandhandlersu.def
ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h
ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp
ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercropimage.h
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrotateimage.h
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercropimage.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotateimage.cpp
ui/commandhandlers/eabi/glxcommoncommandhandlersu.def
ui/detailscustomwidget/bwins/detailsdescriptioneditu.def
ui/detailscustomwidget/bwins/detailsnamelabelu.def
ui/detailscustomwidget/bwins/glxdetailscustomwidgetsu.def
ui/detailscustomwidget/detailscustomplugin/detailscustomplugin.pro
ui/detailscustomwidget/detailscustomplugin/main.cpp
ui/detailscustomwidget/detailscustomwidget.pro
ui/detailscustomwidget/detailscustomwidgets/detailscustomwidgets.pro
ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.cpp
ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.h
ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp
ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.h
ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro
ui/detailscustomwidget/detailsdescriptionedit/inc/glxdetailsdescriptionedit.h
ui/detailscustomwidget/detailsdescriptionedit/src/glxdetailsdescriptionedit.cpp
ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro
ui/detailscustomwidget/detailsdescriptioneditplugin/main.cpp
ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro
ui/detailscustomwidget/detailsnamelabel/inc/glxdetailsnamelabel.h
ui/detailscustomwidget/detailsnamelabel/src/glxdetailsnamelabel.cpp
ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro
ui/detailscustomwidget/detailsnamelabelplugin/main.cpp
ui/detailscustomwidget/eabi/detailsdescriptioneditu.def
ui/detailscustomwidget/eabi/detailsnamelabelu.def
ui/detailscustomwidget/eabi/glxdetailscustomwidgetsu.def
ui/inc/glxcommandhandlers.hrh
ui/inc/glxmodelroles.h
ui/inc/glxviewids.h
ui/uiengine/bwins/glxmedialistwrapperu.def
ui/uiengine/eabi/glxmedialistwrapperu.def
ui/uiengine/medialists/bwins/glxmedialistsu.def
ui/uiengine/medialists/eabi/glxmedialistsu.def
ui/uiengine/medialists/inc/glxlistwindow.h
ui/uiengine/medialists/inc/glxmedia.h
ui/uiengine/medialists/inc/glxmedialist.h
ui/uiengine/medialists/src/glxattributecontext.cpp
ui/uiengine/medialists/src/glxcache.cpp
ui/uiengine/medialists/src/glxcachemanager.cpp
ui/uiengine/medialists/src/glxgarbagecollector.cpp
ui/uiengine/medialists/src/glxitemlist.cpp
ui/uiengine/medialists/src/glxlistwindow.cpp
ui/uiengine/medialists/src/glxmedia.cpp
ui/uiengine/medialists/src/glxmedialist.cpp
ui/uiengine/medialists/src/glxnavigablelist.cpp
ui/uiengine/medialists/src/glxstaticitemlist.cpp
ui/uiengine/medialists/src/glxthumbnailcontext.cpp
ui/uiengine/medialistwrapper/inc/glxmlwrapper.h
ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h
ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp
ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp
ui/uiengine/model/bwins/glxlistmodelu.def
ui/uiengine/model/bwins/glxmediamodelu.def
ui/uiengine/model/eabi/glxlistmodelu.def
ui/uiengine/model/eabi/glxmediamodelu.def
ui/uiengine/model/listmodel/inc/glxalbummodel.h
ui/uiengine/model/listmodel/src/glxalbummodel.cpp
ui/uiengine/model/mediamodel/inc/glxmediamodel.h
ui/uiengine/model/mediamodel/src/glxmediamodel.cpp
ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp
ui/viewmanagement/bwins/glxstatehandleru.def
ui/viewmanagement/bwins/glxviewmanageru.def
ui/viewmanagement/eabi/glxstatehandleru.def
ui/viewmanagement/eabi/glxviewmanageru.def
ui/viewmanagement/statehandler/inc/glxactionhandler.h
ui/viewmanagement/statehandler/inc/glxdetailstate.h
ui/viewmanagement/statehandler/inc/glxfullscreenstate.h
ui/viewmanagement/statehandler/inc/glxliststate.h
ui/viewmanagement/statehandler/inc/glxorientationsensorfilter.h
ui/viewmanagement/statehandler/inc/glxslideshowstate.h
ui/viewmanagement/statehandler/inc/glxstatemanager.h
ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp
ui/viewmanagement/statehandler/src/glxdetailstate.cpp
ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp
ui/viewmanagement/statehandler/src/glxgridstate.cpp
ui/viewmanagement/statehandler/src/glxliststate.cpp
ui/viewmanagement/statehandler/src/glxorientationsensorfilter.cpp
ui/viewmanagement/statehandler/src/glxslideshowstate.cpp
ui/viewmanagement/statehandler/src/glxstatemanager.cpp
ui/viewmanagement/statehandler/statehandler.pro
ui/viewmanagement/viewmanager/inc/glxmainwindoweventfilter.h
ui/viewmanagement/viewmanager/inc/glxmenumanager.h
ui/viewmanagement/viewmanager/inc/glxviewmanager.h
ui/viewmanagement/viewmanager/src/glxmenumanager.cpp
ui/viewmanagement/viewmanager/src/glxviewmanager.cpp
ui/viewmanagement/viewmanager/viewmanager.pro
ui/views/detailsview/inc/glxdetailscustomicon.h
ui/views/detailsview/inc/glxdetailsview.h
ui/views/detailsview/src/glxdetailscustomicon.cpp
ui/views/detailsview/src/glxdetailscustomwidgets.cpp
ui/views/detailsview/src/glxdetailsview.cpp
ui/views/docloaders/src/glxviewdocloader.cpp
ui/views/fullscreenview/inc/glxcoverflow.h
ui/views/fullscreenview/inc/glxfullscreenview.h
ui/views/fullscreenview/src/glxcoverflow.cpp
ui/views/fullscreenview/src/glxfullscreenview.cpp
ui/views/gridview/inc/glxgridview.h
ui/views/gridview/src/glxgridview.cpp
ui/views/listview/inc/glxlistview.h
ui/views/listview/src/glxlistview.cpp
ui/views/slideshowview/inc/glxslideshowview.h
ui/views/slideshowview/inc/glxslideshowwidget.h
ui/views/slideshowview/src/glxslideshowview.cpp
ui/views/slideshowview/src/glxslideshowwidget.cpp
ui/views/viewbase/inc/glxview.h
ui/views/views.pro
ui/viewutilities/effectengine/src/glxtransitioneffect.cpp
ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h
ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp
ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp
ui/viewutilities/settingutility/inc/glxsetting.h
ui/viewutilities/settingutility/inc/glxsettinginterface.h
ui/viewutilities/settingutility/src/glxsetting.cpp
ui/widgets/bwins/glxzoomwidgetu.def
ui/widgets/eabi/glxzoomwidgetu.def
ui/widgets/glxzoomwidget/glxzoomwidget.pro
ui/widgets/glxzoomwidget/inc/glxzoomwidget.h
ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp
--- a/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro	Tue Jul 06 14:16:16 2010 +0300
+++ b/commonutilities/imagedecoderwrapper/imagedecoderwrapper.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -26,7 +26,9 @@
 	-lbitmaptransforms.dll \
 	-liclextjpegapi.dll \
 	-lfbscli.dll \
-	-lefsrv.dll
+	-lefsrv.dll \
+	-lapmime.dll \
+	-lapgrfx.dll
 
 DEFINES += BUILD_IMAGEWRAPPER
 symbian: { 
--- a/commonutilities/imagedecoderwrapper/inc/glximagedecoder.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/commonutilities/imagedecoderwrapper/inc/glximagedecoder.h	Wed Aug 18 09:48:53 2010 +0300
@@ -26,6 +26,9 @@
 class CImageDecoder;
 class CFbsBitmap;
 const TReal KTargetSize = 1000000;
+//if any image is converted to Pixmap with an dimension > 2048 
+//the conversion will fail
+const TInt KMaxDimensionLimit = 2000;
 class CGlxImageDecoder : public CActive
 {
 public:
@@ -50,6 +53,19 @@
      * */
     void ConstructL(GlxImageDecoderWrapper* decoderWrapper);
 
+    /*
+     * Checks if the mimetype needs recalculations
+     * @returnType false if jpeg
+     * true otheriwise 
+     */
+    TBool DoesMimeTypeNeedsRecalculateL(QString aSourceFileName);
+    
+    /*
+     * Does the recalculation and returns back the correct size
+     * @returntype Size of the decoded bitmap
+     */
+    TSize ReCalculateSizeL(QString aSourceFileName, TSize aDestSize);
+    
 private:
 	GlxImageDecoderWrapper* iDecoderWrapper;
 	/*Specifies the Decoder */
--- a/commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -22,7 +22,10 @@
 #include <imageconversion.h>
 #include <IclExtJpegApi.h>  // For CExtJpegDecoder
 #include <e32math.h>
+#include <apgcli.h>
 
+_LIT(KMimeJpeg,"image/jpeg");
+_LIT(KMimeJpg,"image/jpg");
 
 // ---------------------------------------------------------------------------
 // Two-phased constructor.
@@ -90,15 +93,15 @@
         iImageDecoder = NULL;
         }
 	TRAPD( err, iImageDecoder = CExtJpegDecoder::FileNewL(
-            CExtJpegDecoder::EHwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAutoRotate ) );
+            CExtJpegDecoder::EHwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAlwaysThread ) );
     if ( KErrNone != err )
         {
         TRAP(err,iImageDecoder = CExtJpegDecoder::FileNewL(
-                CExtJpegDecoder::ESwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAutoRotate ) );
+                CExtJpegDecoder::ESwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAlwaysThread ) );
         if ( KErrNone != err )
             {
             // Not a JPEG - use standard decoder
-            iImageDecoder = CImageDecoder::FileNewL( iFs, sourceFileName, CImageDecoder::EOptionAutoRotate );
+            iImageDecoder = CImageDecoder::FileNewL( iFs, sourceFileName, CImageDecoder::EOptionAlwaysThread );
             }
         }
 	TSize imageSize = iImageDecoder->FrameInfo().iOverallSizeInPixels;
@@ -116,6 +119,15 @@
 
 		decodeSize = TSize(imageSize.iWidth * compressionFactor, imageSize.iHeight * compressionFactor);
 	}
+	//if an image is converted to Pixmap with any of its dimension > 2048 
+	//the conversion will fail so limiting dimensions to 2000
+	//on 2048 there is a buffer corruption so display image is distorted  
+	if(decodeSize.iWidth > KMaxDimensionLimit ||decodeSize.iHeight > KMaxDimensionLimit)
+    {
+        QSize finalSize(decodeSize.iWidth, decodeSize.iHeight);
+        finalSize.scale(KMaxDimensionLimit, KMaxDimensionLimit, Qt::KeepAspectRatio);
+        decodeSize = TSize(finalSize.width(), finalSize.height());
+    }
 	//clear the existing Bitmap
 	if(iBitmap)
 	{
@@ -126,12 +138,56 @@
     if(!iBitmap)
         {
         iBitmap = new (ELeave) CFbsBitmap();
-        iBitmap->Create( decodeSize,EColor64K);
+        decodeSize = ReCalculateSizeL(aSourceFileName, decodeSize);
+        iBitmap->Create( decodeSize,EColor16MU);
         iImageDecoder->Convert( &iStatus, *iBitmap );
 		SetActive();
 		}
 	return QSizeF(decodeSize.iWidth,decodeSize.iHeight) ;
 }
+
+// -----------------------------------------------------------------------------
+// DoesMimeTypeNeedsRecalculateL()
+// -----------------------------------------------------------------------------
+//
+TBool CGlxImageDecoder::DoesMimeTypeNeedsRecalculateL(QString aSourceFileName){
+    RApaLsSession session;
+    TDataType mimeType;
+    TUid uid;
+    
+    User::LeaveIfError( session.Connect() );
+    CleanupClosePushL( session );
+    TPtrC16 sourceFileName(reinterpret_cast<const TUint16*>(aSourceFileName.utf16()));
+    User::LeaveIfError( session.AppForDocument( sourceFileName, uid, mimeType ) );
+    CleanupStack::PopAndDestroy(&session);
+    
+    if (mimeType.Des().Compare(KMimeJpeg)==0 ||
+            mimeType.Des().Compare(KMimeJpg)==0){
+        return EFalse;
+        }
+    else{
+        return ETrue; 
+        }
+    }
+
+// -----------------------------------------------------------------------------
+// ReCalculateSize 
+// -----------------------------------------------------------------------------
+TSize CGlxImageDecoder::ReCalculateSizeL(QString aSourceFileName, TSize aDestSize){
+    if(DoesMimeTypeNeedsRecalculateL(aSourceFileName)){
+        TSize fullFrameSize = iImageDecoder->FrameInfo().iOverallSizeInPixels;
+        // calculate the reduction factor on what size we need
+        TInt reductionFactor = iImageDecoder->ReductionFactor(fullFrameSize, aDestSize);
+        // get the reduced size onto destination size
+        TSize destSize;
+        User::LeaveIfError(iImageDecoder->ReducedSize(fullFrameSize, reductionFactor, destSize));
+        return destSize;
+        }
+    else{
+        return aDestSize;
+        }
+    }
+
 // ---------------------------------------------------------------------------
 // RunL
 // ---------------------------------------------------------------------------
@@ -176,49 +232,7 @@
 	{
 	if(iBitmap)
 		{
-		//convert the bitmap to pixmap
-		iBitmap->LockHeap();
-		TUint32 *tempData = iBitmap->DataAddress();
-		uchar *data = (uchar *)(tempData);	
-		int bytesPerLine = iBitmap->ScanLineLength(iBitmap->SizeInPixels().iWidth , iBitmap->DisplayMode());
-		 QImage::Format format;
-    switch(iBitmap->DisplayMode()) {
-    case EGray2:
-        format = QImage::Format_MonoLSB;
-        break;
-    case EColor256:
-    case EGray256:
-        format = QImage::Format_Indexed8;
-        break;
-    case EColor4K:
-        format = QImage::Format_RGB444;
-        break;
-    case EColor64K:
-        format = QImage::Format_RGB16;
-        break;
-    case EColor16M:
-        format = QImage::Format_RGB666;
-        break;
-    case EColor16MU:
-        format = QImage::Format_RGB32;
-        break;
-    case EColor16MA:
-        format = QImage::Format_ARGB32;
-        break;
-#if !defined(__SERIES60_31__) && !defined(__S60_32__)
-    case EColor16MAP:
-        format = QImage::Format_ARGB32_Premultiplied;
-        break;
-#endif
-    default:
-        format = QImage::Format_Invalid;
-        break;
-    }
-		//QImage share the memory occupied by data
-		QImage image(data, iBitmap->SizeInPixels().iWidth, iBitmap->SizeInPixels().iHeight, bytesPerLine, format);
-		iDecodedPixmap = QPixmap::fromImage(image);
-		iBitmap->UnlockHeap();
-		//clean the bitmap as it is not required anymore
+		iDecodedPixmap = QPixmap::fromSymbianCFbsBitmap(iBitmap);
 		delete iBitmap;
 		iBitmap = NULL;
 		}
Binary file data/Image1.jpg has changed
Binary file data/Image10.jpg has changed
Binary file data/Image2.jpg has changed
Binary file data/Image3.jpg has changed
Binary file data/Image4.jpg has changed
Binary file data/Image5.jpg has changed
Binary file data/Image6.jpg has changed
Binary file data/Image7.jpg has changed
Binary file data/Image8.jpg has changed
Binary file data/Image9.jpg has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_01.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="31.0244" x2="45.8306" y1="36.7227" y2="55.3954">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M49.066,92.209c-0.734-0.018-1.471-0.054-2.21-0.11C20.651,90.1,4.409,66.111,8.396,42.862     C12.127,21.109,31.881,6.136,53.473,7.938l6.025,8.117l0.012,0.015l-7.753,6.495c-13.86-0.899-26.446,8.794-28.846,22.786     c-1.638,9.548,1.86,18.785,8.492,24.889c1.375,1.267,2.884,2.398,4.509,3.37l-3.303-4.681     c-6.456-5.939-9.425-14.643-7.942-23.278c2.519-14.691,15.966-22.518,27.688-21.263l9.613-8.079l-7.443-10.07     c-14.727-1.88-42.864,7.068-47.882,36.321C2.276,68.019,20.77,91.9,46.721,93.873c1.105,0.085,2.226,0.127,3.331,0.128     c0.002,0,0.001,0,0.001,0C50.052,94.001,49.066,92.209,49.066,92.209z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="54.7412" x2="79.3552" y1="80.5283" y2="36.5402">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M88.84,29.224L73.699,39.93c0.186,0.771,3.012,6.423,1.643,14.419     C71.867,74.59,47.481,82.635,32.608,68.93l3.303,4.681c16.92,10.111,37.975-0.261,41.186-18.962     c0.838-4.892,0.326-9.702-1.26-14.051l12.305-8.699c3.609,7.589,4.998,16.325,3.467,25.238     C88.025,78.036,69.65,92.691,49.066,92.209l0.986,1.792c0.002,0,0.001,0,0.001,0c21.463,0,39.68-15.378,43.313-36.563     C96.115,41.412,89.033,29.667,88.84,29.224z" fill="url(#SVGID_2_)"/>
+<path d="M35.912,73.61c-7.832-4.683-15.273-15.019-13.001-28.259c2.4-13.992,14.986-23.686,28.846-22.786     l7.753-6.495l-0.012-0.015l-6.025-8.117C31.881,6.136,12.127,21.109,8.396,42.862C4.174,67.484,22.452,91.579,49.066,92.209     L35.912,73.61z" fill="#FFFFFF"/>
+<linearGradient gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="60.0684" x2="71.0321" y1="79.623" y2="38.4858">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M88.143,31.898l-12.305,8.699C84.586,64.586,58.42,87.061,35.912,73.61l13.154,18.599     C80.602,92.947,101.572,60.12,88.143,31.898z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_02.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(0.809 0.5878 -0.5878 0.809 -184.5148 125.3866)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="126.4404" x2="141.2466" y1="-212.1113" y2="-193.4386">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M24.435,83.599c-0.584-0.446-1.159-0.908-1.724-1.389C2.687,65.19,3.646,36.237,20.538,19.771     C36.342,4.366,61.125,3.863,77.533,18.012l0.104,10.109v0.019l-10.09,0.697c-10.684-8.875-26.564-8.43-36.73,1.479     c-6.938,6.761-9.537,16.29-7.759,25.126c0.368,1.833,0.923,3.637,1.667,5.377l0.078-5.728c-1.731-8.6,0.982-17.386,7.257-23.501     c10.673-10.405,26.152-8.833,34.896-0.928l12.527-0.885l-0.102-12.521C68.572,7.079,40.549-2.221,19.295,18.496     C0.8,36.525,1.724,66.716,21.559,83.566c0.844,0.718,1.727,1.411,2.62,2.062c0.001,0.001,0.001,0,0.001,0     C24.179,85.628,24.435,83.599,24.435,83.599z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.809 0.5878 -0.5878 0.809 -184.5148 125.3866)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="150.1572" x2="174.7711" y1="-168.3066" y2="-212.2946">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M93.635,56.021l-18.541-0.237c-0.305,0.73-1.34,6.966-7.146,12.63     c-14.709,14.333-39.167,6.507-43.144-13.322l-0.078,5.728c7.746,18.127,30.875,22.111,44.464,8.869     c3.553-3.466,5.967-7.658,7.24-12.107l15.068,0.193c-1.539,8.262-5.553,16.146-12.029,22.457     c-15.184,14.801-38.663,15.857-55.034,3.367l-0.256,2.029c0.001,0.001,0.001,0,0.001,0c17.364,12.615,41.14,10.882,56.531-4.121     C92.355,70.158,93.531,56.493,93.635,56.021z" fill="url(#SVGID_2_)"/>
+<path d="M24.725,60.819c-3.584-8.391-3.528-21.127,6.092-30.503c10.166-9.909,26.046-10.354,36.73-1.479     l10.09-0.697v-0.019l-0.104-10.109C61.125,3.863,36.342,4.366,20.538,19.771C2.649,37.209,3.274,67.445,24.435,83.599     L24.725,60.819z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(0.809 0.5878 -0.5878 0.809 -184.5148 125.3866)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="155.4834" x2="166.4473" y1="-169.21" y2="-210.3475">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M91.498,57.774L76.43,57.581c-7.021,24.548-41.4,27.352-51.705,3.238l-0.29,22.779     C49.514,102.731,85.773,88.5,91.498,57.774z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_03.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(0.309 0.9511 -0.9511 0.309 -338.8947 140.6591)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="14.979" x2="29.785" y1="-411.1528" y2="-392.4803">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M9.569,62.154c-0.21-0.703-0.403-1.416-0.579-2.137C2.794,34.479,20.589,11.619,43.933,8.227     c21.842-3.174,42.187,10.986,47.145,32.078l-5.858,8.239l-0.011,0.016l-8.573-5.367C73.208,29.733,60.099,20.759,46.05,22.8     c-9.587,1.393-17.291,7.573-21.046,15.767c-0.78,1.699-1.39,3.484-1.812,5.331l3.43-4.589     c3.654-7.975,11.014-13.488,19.685-14.747c14.75-2.144,26.35,8.227,28.778,19.762l10.655,6.647l7.276-10.19     C90.254,26.192,73.049,2.197,43.677,6.465C18.116,10.18,1.118,35.147,7.261,60.438c0.261,1.077,0.568,2.155,0.908,3.207     c0,0.003,0,0.001,0,0.001C8.169,63.646,9.569,62.154,9.569,62.154z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.309 0.9511 -0.9511 0.309 -338.8947 140.6591)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="38.6948" x2="63.3091" y1="-367.3481" y2="-411.3369">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M81.763,80.52L66.901,69.428c-0.676,0.413-5.178,4.85-13.205,6.019     c-20.325,2.949-35.511-17.758-27.074-36.138l-3.43,4.589c-4.388,19.216,11.982,36.035,30.76,33.31     c4.912-0.715,9.328-2.688,12.975-5.539l12.075,9.014c-6.101,5.779-13.98,9.799-22.931,11.098     c-20.984,3.049-40.6-9.897-46.502-29.625l-1.4,1.491c0,0.003,0,0.001,0,0.001c6.632,20.412,26.887,32.985,48.158,29.895     C72.419,91.205,81.4,80.84,81.763,80.52z" fill="url(#SVGID_2_)"/>
+<path d="M23.192,43.897C25.225,35.002,32.756,24.73,46.05,22.8c14.048-2.041,27.158,6.934,30.584,20.393     l8.573,5.367l0.011-0.016l5.858-8.239C86.119,19.213,65.774,5.053,43.933,8.227C19.211,11.819,1.943,36.648,9.569,62.154     L23.192,43.897z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(0.309 0.9511 -0.9511 0.309 -338.8947 140.6591)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="44.0215" x2="54.9851" y1="-368.2529" y2="-409.3896">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M79.002,80.682l-12.075-9.014C46.816,87.4,17.356,69.461,23.192,43.897L9.569,62.154     C18.612,92.375,56.312,102.174,79.002,80.682z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_04.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-0.309 0.9511 -0.9511 -0.309 -411.8564 82.0563)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-192.1846" x2="-177.3785" y1="-442.623" y2="-423.9505">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M10.146,36.068c0.243-0.693,0.506-1.382,0.788-2.068c9.999-24.304,37.832-32.338,58.71-21.362     C89.18,22.909,97.316,46.323,88.93,66.301l-9.582,3.222l-0.018,0.007l-3.781-9.382c5.139-12.902-0.191-27.868-12.756-34.475     c-8.574-4.509-18.44-4.036-26.294,0.385c-1.629,0.916-3.173,2.002-4.599,3.248l5.472-1.696c7.644-4.304,16.839-4.438,24.593-0.36     c13.193,6.936,16.482,22.143,11.666,32.902l4.713,11.642l11.877-3.968c6.34-13.426,6.523-42.951-19.748-56.763     C47.612-0.957,19.184,9.252,9.288,33.323c-0.422,1.025-0.808,2.078-1.15,3.128c-0.001,0.002,0,0.001,0,0.001     C8.138,36.452,10.146,36.068,10.146,36.068z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-0.309 0.9511 -0.9511 -0.309 -411.8564 82.0563)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-168.4673" x2="-143.8531" y1="-398.8184" y2="-442.8069">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M57.758,93.36l-5.504-17.708c-0.789-0.063-7.04,0.88-14.221-2.894     C19.856,63.198,19.742,37.52,37.372,27.61l-5.472,1.696c-14.845,12.967-11.487,36.196,5.307,45.029     c4.394,2.309,9.126,3.309,13.751,3.145l4.472,14.389c-8.333,1.09-17.07-0.289-25.075-4.5     c-18.769-9.866-27.029-31.871-20.208-51.3l-2.009,0.383c-0.001,0.002,0,0.001,0,0.001c-6.632,20.412,2.364,42.489,21.389,52.491     C43.917,96.513,57.275,93.407,57.758,93.36z" fill="url(#SVGID_2_)"/>
+<path d="M31.899,29.306c6.874-6.002,19.003-9.885,30.894-3.633c12.564,6.606,17.895,21.572,12.756,34.475     l3.781,9.382l0.018-0.007l9.582-3.222c8.387-19.978,0.25-43.392-19.285-53.663c-22.111-11.624-50.675-1.687-59.498,23.43     L31.899,29.306z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-0.309 0.9511 -0.9511 -0.309 -411.8564 82.0563)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-163.1406" x2="-152.1769" y1="-399.7231" y2="-440.8601">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M55.43,91.868l-4.472-14.389c-25.517,0.906-38.806-30.923-19.058-48.174l-21.753,6.763     C-0.301,65.833,24.439,95.919,55.43,91.868z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_05.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-0.809 0.5878 -0.5878 -0.809 -364.1781 15.2496)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-333.6265" x2="-318.8204" y1="-284.8394" y2="-266.1668">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M25.946,15.304c0.604-0.418,1.222-0.821,1.853-1.21c22.375-13.786,49.615-3.926,60.055,17.228     c9.768,19.791,2.588,43.517-15.939,54.75l-9.646-3.026L62.25,83.04l2.455-9.813c11.74-7.419,16.225-22.659,9.943-35.39     c-4.287-8.687-12.547-14.104-21.498-15.145c-1.857-0.216-3.744-0.245-5.63-0.075l5.423,1.845     c8.715,1.011,16.232,6.307,20.107,14.164c6.598,13.366,0.32,27.603-9.9,33.476l-3.029,12.189l11.939,3.771     c13.021-7.136,30.525-30.914,17.389-57.529C78.02,7.371,49.02-1.079,26.865,12.577c-0.944,0.582-1.875,1.207-2.769,1.855     c-0.002,0.001-0.002,0.002-0.002,0.002C24.096,14.433,25.946,15.304,25.946,15.304z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-0.809 0.5878 -0.5878 -0.809 -364.1781 15.2496)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-309.9097" x2="-285.2954" y1="-241.0337" y2="-285.0222">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M30.789,89.639l5.956-17.561c-0.6-0.516-6.211-3.427-9.803-10.7     c-9.086-18.419,5.915-39.26,26.002-36.915l-5.423-1.845C27.888,24.384,16.951,45.15,25.346,62.167     c2.198,4.45,5.438,8.041,9.277,10.627l-4.84,14.27c-7.381-4.017-13.639-10.268-17.64-18.379     C2.757,49.671,9.008,27.014,25.946,15.304l-1.85-0.871c-0.002,0.001-0.002,0.002-0.002,0.002     C6.731,27.05,1.033,50.197,10.545,69.472C17.74,84.054,30.372,89.394,30.789,89.639z" fill="url(#SVGID_2_)"/>
+<path d="M47.52,22.618c9.089-0.815,21.185,3.173,27.128,15.22c6.281,12.73,1.797,27.971-9.943,35.39L62.25,83.04     l0.018,0.005l9.646,3.026c18.527-11.233,25.707-34.959,15.939-54.75C76.797,8.92,47.847,0.17,25.946,15.304L47.52,22.618z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-0.809 0.5878 -0.5878 -0.809 -364.1781 15.2496)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-304.5845" x2="-293.6208" y1="-241.939" y2="-283.0757">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M29.782,87.063l4.84-14.27C13.447,58.528,21.404,24.968,47.52,22.618l-21.574-7.314     C0,33.242,2.33,72.125,29.782,87.063z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_06.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100" x="0" y="0"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -490.8594 -341.2744)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-559.835" x2="-545.0289" y1="-404.5513" y2="-385.8788">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M50.935,7.792c0.733,0.017,1.471,0.054,2.209,0.11C79.35,9.901,95.592,33.888,91.605,57.139     c-3.732,21.752-23.486,36.727-45.079,34.924l-6.024-8.117L40.49,83.93l7.754-6.496c13.86,0.9,26.446-8.793,28.846-22.785     c1.639-9.547-1.859-18.784-8.49-24.889c-1.375-1.265-2.885-2.398-4.51-3.37l3.303,4.681c6.455,5.939,9.426,14.643,7.941,23.277     c-2.518,14.691-15.967,22.52-27.686,21.264l-9.615,8.08l7.443,10.068c14.727,1.881,42.866-7.066,47.883-36.32     C97.725,31.981,79.232,8.101,53.281,6.126C52.174,6.042,51.055,6.001,49.951,6c-0.003-0.001-0.003,0-0.003,0     C49.951,6,50.935,7.792,50.935,7.792z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -490.8594 -341.2744)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-536.1182" x2="-511.5043" y1="-360.7461" y2="-404.7341">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M11.16,70.775L26.3,60.07c-0.183-0.77-3.012-6.424-1.643-14.419     C28.134,25.41,52.52,17.366,67.393,31.071L64.09,26.39c-16.921-10.111-37.976,0.26-41.186,18.962     c-0.838,4.892-0.327,9.701,1.258,14.05l-12.303,8.699C8.249,60.514,6.86,51.777,8.39,42.864     C11.973,21.965,30.349,7.31,50.935,7.792L49.951,6c-0.003-0.001-0.003,0-0.003,0C28.486,6,10.269,21.377,6.636,42.563     C3.885,58.588,10.966,70.332,11.16,70.775z" fill="url(#SVGID_2_)"/>
+<path d="M64.09,26.39c7.832,4.682,15.271,15.019,13,28.258c-2.4,13.992-14.986,23.686-28.846,22.785L40.49,83.93     l0.013,0.016l6.024,8.117c21.592,1.803,41.346-13.172,45.079-34.924c4.221-24.622-14.057-48.718-40.67-49.347L64.09,26.39z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-1 0 0 -1 -490.8594 -341.2744)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-530.7939" x2="-519.8303" y1="-361.6519" y2="-402.7888">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M11.859,68.102l12.303-8.699C15.416,35.414,41.579,12.94,64.09,26.39L50.935,7.792     C19.399,7.053-1.57,39.88,11.859,68.102z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_07.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-0.809 -0.5878 0.5878 -0.809 -300.0517 -676.9433)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-729.4595" x2="-714.6534" y1="-395.6313" y2="-376.9588">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M75.565,16.402c0.584,0.444,1.158,0.907,1.724,1.388c20.025,17.021,19.064,45.973,2.174,62.44     c-15.805,15.404-40.588,15.908-56.997,1.757l-0.103-10.108l-0.001-0.02l10.091-0.697c10.685,8.875,26.564,8.43,36.73-1.479     c6.937-6.762,9.536-16.291,7.76-25.126c-0.368-1.831-0.924-3.636-1.668-5.377l-0.078,5.729     c1.731,8.599-0.982,17.386-7.258,23.499c-10.673,10.406-26.153,8.833-34.896,0.928l-12.528,0.887l0.104,12.521     c10.81,10.177,38.833,19.478,60.087-1.24c18.496-18.029,17.571-48.22-2.263-65.07c-0.846-0.719-1.728-1.41-2.62-2.06     c-0.002-0.003-0.003-0.001-0.003-0.001C75.822,14.374,75.565,16.402,75.565,16.402z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-0.809 -0.5878 0.5878 -0.809 -300.0517 -676.9433)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-705.7446" x2="-681.1305" y1="-351.8281" y2="-395.8166">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M6.365,43.979l18.541,0.238c0.306-0.73,1.34-6.967,7.147-12.631     c14.71-14.333,39.166-6.506,43.144,13.323l0.078-5.729c-7.746-18.126-30.876-22.111-44.465-8.868     c-3.554,3.466-5.968,7.656-7.241,12.106L8.503,42.225c1.539-8.261,5.551-16.144,12.028-22.456     C35.714,4.967,59.194,3.912,75.565,16.402l0.257-2.028c-0.002-0.003-0.003-0.001-0.003-0.001     C58.457,1.758,34.681,3.49,19.289,18.494C7.645,29.842,6.469,43.506,6.365,43.979z" fill="url(#SVGID_2_)"/>
+<path d="M75.275,39.181c3.584,8.392,3.528,21.126-6.092,30.503c-10.166,9.908-26.046,10.354-36.73,1.479     l-10.091,0.697l0.001,0.02l0.103,10.108c16.409,14.151,41.192,13.647,56.997-1.757c17.888-17.439,17.264-47.677-3.897-63.828     L75.275,39.181z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-0.809 -0.5878 0.5878 -0.809 -300.0517 -676.9433)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-700.416" x2="-689.4524" y1="-352.731" y2="-393.8676">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M8.503,42.225l15.066,0.194c7.024-24.548,41.4-27.352,51.706-3.238l0.29-22.778     C50.486-2.732,14.228,11.5,8.503,42.225z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_08.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(-0.309 -0.9511 0.9511 -0.309 123.9503 -812.8466)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-816.7397" x2="-801.9335" y1="-350.2422" y2="-331.5694">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M90.432,37.846c0.211,0.703,0.403,1.415,0.578,2.137c6.196,25.54-11.599,48.398-34.942,51.793     C34.227,94.948,13.88,80.788,8.923,59.695l5.858-8.238l0.011-0.018l8.573,5.367c3.428,13.461,16.536,22.436,30.585,20.395     c9.586-1.394,17.29-7.574,21.047-15.768c0.778-1.697,1.389-3.483,1.811-5.33l-3.43,4.589     c-3.654,7.976-11.015,13.487-19.686,14.745c-14.75,2.146-26.35-8.227-28.776-19.76L14.259,49.03l-7.275,10.19     c2.763,14.588,19.968,38.584,49.34,34.314c25.562-3.714,42.559-28.682,36.417-53.973c-0.262-1.078-0.569-2.156-0.909-3.206     c0-0.004-0.002-0.003-0.002-0.003C91.831,36.356,90.432,37.846,90.432,37.846z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(-0.309 -0.9511 0.9511 -0.309 123.9503 -812.8466)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-793.0225" x2="-768.4084" y1="-306.437" y2="-350.4253">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M18.238,19.48l14.859,11.091c0.677-0.411,5.18-4.849,13.207-6.017     c20.325-2.949,35.51,17.758,27.073,36.138l3.43-4.589c4.388-19.217-11.982-36.036-30.761-33.31     c-4.911,0.715-9.328,2.686-12.974,5.537l-12.075-9.013c6.101-5.778,13.98-9.798,22.931-11.097     c20.983-3.051,40.6,9.896,46.503,29.624l1.399-1.489c0-0.004-0.002-0.003-0.002-0.003C85.198,15.942,64.944,3.368,43.673,6.46     C27.583,8.796,18.6,19.159,18.238,19.48z" fill="url(#SVGID_2_)"/>
+<path d="M76.808,56.104C74.774,65,67.244,75.27,53.95,77.201c-14.049,2.041-27.157-6.934-30.585-20.395     l-8.573-5.367l-0.011,0.018l-5.858,8.238c4.957,21.093,25.304,35.253,47.145,32.08c24.722-3.594,41.989-28.424,34.364-53.93     L76.808,56.104z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(-0.309 -0.9511 0.9511 -0.309 123.9503 -812.8466)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-787.6963" x2="-776.7325" y1="-307.3418" y2="-348.4791">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M20.998,19.318l12.075,9.013c20.111-15.73,49.57,2.207,43.734,27.772l13.624-18.258     C81.389,7.625,43.689-2.173,20.998,19.318z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_09.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(0.309 -0.9511 0.9511 0.309 609.3144 -653.2726)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-860.6665" x2="-845.8603" y1="-327.8945" y2="-309.2218">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M89.854,63.933c-0.242,0.691-0.506,1.381-0.788,2.067c-9.999,24.304-37.832,32.339-58.712,21.362     C10.82,77.091,2.682,53.677,11.07,33.698l9.581-3.221l0.019-0.007l3.781,9.381c-5.138,12.904,0.191,27.87,12.757,34.476     c8.574,4.508,18.439,4.035,26.295-0.385c1.628-0.916,3.171-2.002,4.598-3.248l-5.472,1.697     c-7.645,4.303-16.839,4.438-24.593,0.357C24.842,65.815,21.554,50.606,26.37,39.848l-4.715-11.642L9.779,32.175     C3.44,45.6,3.255,75.126,29.526,88.937c22.863,12.021,51.29,1.813,61.187-22.26c0.422-1.025,0.807-2.078,1.149-3.127     c0.002-0.004,0-0.004,0-0.004C91.862,63.55,89.854,63.933,89.854,63.933z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.309 -0.9511 0.9511 0.309 609.3144 -653.2726)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-836.9487" x2="-812.3344" y1="-284.0884" y2="-328.0771">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M42.243,6.64l5.503,17.707c0.789,0.065,7.04-0.878,14.222,2.895     c18.177,9.561,18.29,35.238,0.661,45.15l5.472-1.697c14.846-12.968,11.487-36.197-5.307-45.029     c-4.394-2.308-9.126-3.31-13.751-3.146L44.571,8.131c8.332-1.089,17.069,0.291,25.074,4.5     c18.77,9.866,27.028,31.871,20.209,51.301l2.008-0.383c0.002-0.004,0-0.004,0-0.004c6.633-20.411-2.362-42.488-21.389-52.49     C56.084,3.488,42.725,6.592,42.243,6.64z" fill="url(#SVGID_2_)"/>
+<path d="M68.101,70.694c-6.874,6.002-19.003,9.885-30.893,3.633c-12.565-6.606-17.895-21.572-12.757-34.476     L20.67,30.47l-0.019,0.007l-9.581,3.221c-8.389,19.979-0.25,43.393,19.284,53.664c22.112,11.623,50.677,1.686,59.5-23.43     L68.101,70.694z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(0.309 -0.9511 0.9511 0.309 609.3144 -653.2726)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-831.6211" x2="-820.6572" y1="-284.9922" y2="-326.1298">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M44.571,8.131l4.472,14.389c25.517-0.905,38.806,30.922,19.058,48.174l21.754-6.762     C100.302,34.167,75.562,4.082,44.571,8.131z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/Wait/qgn_graf_ring_wait_10.svg	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1 Tiny//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11-tiny.dtd">
+<svg baseProfile="tiny" height="100px" version="1.1" viewBox="0 0 100 100" width="100px" x="0px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px">
+<g>
+<g>
+<rect fill="none" height="100" width="100"/>
+</g>
+<g>
+<g>
+<linearGradient gradientTransform="matrix(0.809 -0.5878 0.5878 0.809 976.0805 -216.836)" gradientUnits="userSpaceOnUse" id="SVGID_1_" x1="-925.0332" x2="-910.2272" y1="-341.7402" y2="-323.0677">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.98"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0.6"/>
+</linearGradient>
+<path d="M74.054,84.697c-0.604,0.418-1.222,0.82-1.854,1.21C49.825,99.692,22.586,89.832,12.145,68.68     C2.379,48.888,9.558,25.161,28.087,13.929l9.645,3.026l0.02,0.005l-2.455,9.813c-11.741,7.419-16.228,22.659-9.944,35.39     c4.287,8.687,12.546,14.104,21.499,15.145c1.855,0.216,3.742,0.244,5.629,0.075l-5.424-1.844     c-8.715-1.012-16.231-6.308-20.106-14.165c-6.599-13.366-0.319-27.604,9.9-33.476l3.028-12.189l-11.939-3.771     C14.918,19.073-2.587,42.851,10.55,69.467c11.432,23.162,40.43,31.613,62.585,17.956c0.944-0.583,1.874-1.208,2.768-1.855     c0.004-0.001,0.003-0.003,0.003-0.003C75.902,85.567,74.054,84.697,74.054,84.697z" fill="url(#SVGID_1_)"/>
+<linearGradient gradientTransform="matrix(0.809 -0.5878 0.5878 0.809 976.0805 -216.836)" gradientUnits="userSpaceOnUse" id="SVGID_2_" x1="-901.3149" x2="-876.7007" y1="-297.9341" y2="-341.9226">
+<stop offset="0" style="stop-color:#000000;stop-opacity:0.6"/>
+<stop offset="0.9158" style="stop-color:#000000;stop-opacity:0"/>
+<stop offset="1" style="stop-color:#000000;stop-opacity:0"/>
+</linearGradient>
+<path d="M69.21,10.361l-5.955,17.56c0.6,0.517,6.211,3.429,9.804,10.702     c9.085,18.419-5.915,39.259-26.003,36.915l5.424,1.844c19.633-1.766,30.569-22.532,22.174-39.549     c-2.198-4.449-5.438-8.042-9.275-10.627l4.84-14.27c7.381,4.016,13.638,10.269,17.64,18.379     c9.387,19.014,3.134,41.671-13.804,53.382l1.849,0.87c0.004-0.001,0.003-0.003,0.003-0.003     c17.362-12.613,23.063-35.762,13.549-55.037C82.26,15.947,69.628,10.606,69.21,10.361z" fill="url(#SVGID_2_)"/>
+<path d="M52.479,77.382c-9.089,0.814-21.184-3.174-27.128-15.22c-6.283-12.73-1.797-27.971,9.944-35.39     l2.455-9.813l-0.02-0.005l-9.645-3.026C9.558,25.161,2.379,48.888,12.145,68.68c11.058,22.4,40.008,31.15,61.909,16.018     L52.479,77.382z" fill="#FFFFFF"/>
+<linearGradient gradientTransform="matrix(0.809 -0.5878 0.5878 0.809 976.0805 -216.836)" gradientUnits="userSpaceOnUse" id="SVGID_3_" x1="-895.9897" x2="-885.0259" y1="-298.8389" y2="-339.9761">
+<stop offset="0" style="stop-color:#FFFFFF"/>
+<stop offset="1" style="stop-color:#F2F2F2;stop-opacity:0"/>
+</linearGradient>
+<path d="M70.218,12.937l-4.84,14.27c21.175,14.266,13.219,47.825-12.898,50.176l21.574,7.315     C100.001,66.757,97.67,27.876,70.218,12.937z" fill="url(#SVGID_3_)"/>
+</g>
+</g>
+</g>
+</svg>
--- a/data/albumlisttogrid.fxml	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<layers>
-<visual>
-
-<param name="translation_y" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-      <keyframe at="0">0</keyframe>
-      <keyframe at="1">1</keyframe>
-<start ref="visual.top">1</start>
-<end ref="screen.bottom">1</end>
-</param>
-
-</visual>
-</layers>
--- a/data/albumlisttogridshow.fxml	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<layers>
-<visual>
-
-<param name="opacity" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-<keyframe at="0.0">0</keyframe>
-<keyframe at="0.5">0.25</keyframe>
-<keyframe at="1.0">1</keyframe>
-</param>
-
-</visual>
-</layers>
--- a/data/detailsview.docml	Tue Jul 06 14:16:16 2010 +0300
+++ b/data/detailsview.docml	Wed Aug 18 09:48:53 2010 +0300
@@ -2,323 +2,215 @@
 <hbdocument version="1.1">
     <widget name="view" type="HbView">
         <widget name="content" role="HbView:widget" type="HbWidget">
-            <widget name="MainWidget" type="HbWidget">
-                <widget name="ImageIcon" type="HbLabel">
-                    <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-                    <icon iconName="qtg_small_smiley_very_cool" name="icon"/>
-                    <sizepolicy horizontalPolicy="Preferred" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-                    <sizehint height="31.95un" type="PREFERRED" width="31.95un"/>
-                    <sizehint height="31.95un" type="MINIMUM" width="31.95un"/>
-                    <sizehint height="31.95un" type="MAXIMUM" width="31.95un"/>
-                </widget>
-                <widget name="FavIcon" type="HbPushButton">
-                    <real name="z" value="1"/>
-                    <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-                    <real name="opacity" value="0.6"/>
-                    <sizehint type="MINIMUM" width="5un"/>
-                    <sizehint height="5un" type="MAXIMUM" width="5un"/>
-                    <string name="text"/>
+            <widget name="ImageIcon" type="HbLabel">
+                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                <icon iconName="qtg_small_smiley_very_cool" name="icon"/>
+                <real name="z" value="1"/>
+                <sizehint height="21.19403un" type="PREFERRED" width="39.55224un"/>
+            </widget>
+            <widget name="FavIcon" plugin="glxdetailscustomplugin" type="GlxDetailsIcon">
+                <real name="z" value="2"/>
+            </widget>
+            <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
+                <real name="z" value="3"/>
+                <sizehint type="PREFERRED" width="44.92537un"/>
+            </widget>
+            <widget name="container" type="HbWidget">
+                <widget name="DateText" type="HbLabel">
+                    <rect height="3.28358un" name="geometry" width="6.71un" x="0un" y="0un"/>
+                    <string name="plainText" value="Label"/>
                 </widget>
-                <widget name="ImageName" plugin="detailsnamelabelplugin" type="GlxDetailsNameLabel"/>
-                <widget name="container" type="HbWidget">
-                    <widget name="DateContainer" type="HbWidget">
-                        <widget name="DateText" type="HbLabel">
-                            <string name="plainText"/>
-                        </widget>
-                        <real name="z" value="0"/>
-                        <sizehint height="11.9403un" type="PREFERRED" width="23.8806un"/>
-                        <layout orientation="Horizontal" type="linear">
-                            <linearitem itemname="DateText"/>
-                        </layout>
-                    </widget>
-                    <widget name="TimeContainer" type="HbWidget">
-                        <widget name="TimeText" type="HbLabel">
-                            <string name="plainText"/>
-                        </widget>
-                        <real name="z" value="0"/>
-                        <sizehint height="11.9403un" type="PREFERRED" width="23.8806un"/>
-                        <layout orientation="Horizontal" type="linear">
-                            <linearitem itemname="TimeText"/>
-                        </layout>
-                    </widget>
-                    <widget name="SizeContainer" type="HbWidget">
-                        <widget name="SizeText" type="HbLabel">
-                            <string name="plainText"/>
-                        </widget>
-                        <real name="z" value="0"/>
-                        <sizehint height="11.9403un" type="PREFERRED" width="23.8806un"/>
-                        <layout orientation="Horizontal" type="linear">
-                            <linearitem itemname="SizeText"/>
-                        </layout>
-                    </widget>
-                    <widget name="DescLabelContainer" type="HbWidget">
-                        <widget name="Descriptions" type="HbLabel">
-                            <string name="plainText"/>
-                        </widget>
-                        <real name="z" value="0"/>
-                        <sizehint height="11.9403un" type="PREFERRED" width="23.8806un"/>
-                        <layout orientation="Horizontal" type="linear">
-                            <linearitem itemname="Descriptions"/>
-                        </layout>
-                    </widget>
-                    <widget name="DescTextContainer" type="HbWidget">
-                        <widget name="DescriptionsText" plugin="detailsdescriptioneditplugin" type="GlxDetailsDescriptionEdit">
-                            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-                        </widget>
-                        <real name="z" value="0"/>
-                        <sizehint height="11.9403un" type="PREFERRED" width="23.8806un"/>
-                        <layout orientation="Horizontal" type="linear">
-                            <linearitem itemname="DescriptionsText"/>
-                        </layout>
-                    </widget>
-                    <real name="z" value="0"/>
-                    <sizehint height="23.8806un" type="PREFERRED" width="11.9403un"/>
-                    <layout orientation="Vertical" type="linear">
-                        <linearitem itemname="DateContainer"/>
-                        <linearitem itemname="TimeContainer"/>
-                        <linearitem itemname="SizeContainer"/>
-                        <linearitem itemname="DescLabelContainer"/>
-                        <linearitem itemname="DescTextContainer"/>
-                    </layout>
+                <widget name="TimeText" type="HbLabel">
+                    <rect height="3.28358un" name="geometry" width="6.71un" x="0un" y="0un"/>
+                    <string name="plainText" value="Label"/>
                 </widget>
-                <real name="z" value="0"/>
-                <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-                <sizehint height="expr(var(hb-param-screen-height) - (2*var(hb-param-margin-gene-screen) )-var(hb-param-widget-chrome-height))" type="FIXED" width="expr(var(hb-param-screen-width) -(2*var(hb-param-margin-gene-screen) ))"/>
-                <sizehint height="expr(var(hb-param-screen-height) - (2*var(hb-param-margin-gene-screen) )-var(hb-param-widget-chrome-height))" type="MINIMUM" width="expr(var(hb-param-screen-width) -(2*var(hb-param-margin-gene-screen) ))"/>
-                <sizehint height="expr(var(hb-param-screen-height) - (2*var(hb-param-margin-gene-screen) )-var(hb-param-widget-chrome-height))" type="MAXIMUM" width="expr(var(hb-param-screen-width) -(2*var(hb-param-margin-gene-screen) ))"/>
-                <layout type="anchor">
-                    <anchoritem dst="ImageIcon" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                    <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-                    <anchoritem dst="FavIcon" dstEdge="TOP" spacing="29.85075un" src="" srcEdge="TOP"/>
-                    <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="-10.85075un" src="" srcEdge="RIGHT"/>
-                    <anchoritem dst="ImageName" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                    <anchoritem dst="ImageName" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-                    <anchoritem dst="container" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                    <anchoritem dst="container" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-                </layout>
+                <widget name="SizeText" type="HbLabel">
+                    <rect height="3.28358un" name="geometry" width="6.71un" x="0un" y="0un"/>
+                    <string name="plainText" value="Label"/>
+                </widget>
+                <widget name="Descriptions" type="HbLabel">
+                    <rect height="3.28358un" name="geometry" width="6.71un" x="0un" y="0un"/>
+                    <string locid="txt_photos_formlabel_description" name="plainText" value="Description :"/>
+                </widget>
+                <widget name="DescriptionsText" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit"/>
+                <sizehint height="23.8806un" type="PREFERRED" width="23.8806un"/>
             </widget>
             <layout type="anchor">
-                <anchoritem dst="MainWidget" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
-                <anchoritem dst="MainWidget" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="TOP"/>
+                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="1.64179un" src="" srcEdge="TOP"/>
+                <anchoritem dst="ImageIcon" dstEdge="RIGHT" spacing="-12.83582un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="FavIcon" dstEdge="TOP" spacing="14.32836un" src="" srcEdge="TOP"/>
+                <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="-10.59702un" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="ImageName" dstEdge="LEFT" spacing="3.13433un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageName" dstEdge="TOP" spacing="25.52239un" src="" srcEdge="TOP"/>
+                <anchoritem dst="container" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
+                <anchoritem dst="container" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
             </layout>
         </widget>
         <string name="title" value="View"/>
+        <bool name="contentFullScreen" value="TRUE"/>
     </widget>
     <section name="portrait">
-        <widget name="DescriptionsText" plugin="detailsdescriptioneditplugin" type="GlxDetailsDescriptionEdit">
-            <sizehint height="10.5un" type="PREFERRED" width="48un"/>
-            <sizehint height="10.5un" type="MAXIMUM" width="48un"/>
-            <sizehint height="10.5un" type="MINIMUM" width="48un"/>
+        <widget name="view" type="HbView">
+            <bool name="contentFullScreen" value="TRUE"/>
         </widget>
-        <widget name="DateContainer" type="HbWidget">
+        <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="6un" type="FIXED" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(    var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+        </widget>
+        <widget name="SizeText" type="HbLabel">
+            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) + 6un +var(hb-param-margin-gene-bottom) )"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="7.5un" type="MAXIMUM" width="48.38806un"/>
-            <sizehint height="5un" type="FIXED" width="48.38806un"/>
-            <sizehint height="5un" type="MINIMUM" width="48.38806un"/>
-            <layout orientation="Horizontal" spacing="3px" type="linear">
-                <contentsmargins bottom="3px" left="3px" right="3px" top="3px"/>
-                <linearitem itemname="DateText"/>
-            </layout>
+            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <string name="plainText"/>
+        </widget>
+        <widget name="TimeText" type="HbLabel">
+            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) )"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <string name="plainText"/>
+        </widget>
+        <widget name="DescriptionsText" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
+            <real name="z" value="5"/>
+            <rect height="11.49254un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="29un"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="11.49254un" type="FIXED" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="11.49254un" type="MINIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="11.49254un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
         </widget>
         <widget name="content" role="HbView:widget" type="HbWidget">
             <layout type="anchor">
-                <anchoritem dst="MainWidget" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
-                <anchoritem dst="MainWidget" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-screen) + var(hb-param-widget-chrome-height)  + var(hb-param-widget-chrome-height) /3)" src="" srcEdge="TOP"/>
+                <anchoritem dst="ImageName" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) + 0.5un)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageName" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-screen) + 0.5un)" src="ImageIcon" srcEdge="BOTTOM"/>
+                <anchoritem dst="container" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
+                <anchoritem dst="container" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-bottom) )" src="ImageName" srcEdge="BOTTOM"/>
+                <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="0un" src="ImageIcon" srcEdge="RIGHT"/>
+                <anchoritem dst="FavIcon" dstEdge="BOTTOM" spacing="0un" src="ImageIcon" srcEdge="BOTTOM"/>
+                <anchoritem dst="ImageIcon" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="expr(var(hb-param-widget-chrome-height) +var(hb-param-margin-gene-screen))" src="" srcEdge="TOP"/>
             </layout>
         </widget>
-        <widget name="DescLabelContainer" type="HbWidget">
-            <sizehint height="4.5un" type="MAXIMUM" width="48.38806un"/>
-            <sizehint height="4.5un" type="MINIMUM" width="48.38806un"/>
+        <widget name="FavIcon" plugin="glxdetailscustomplugin" type="GlxDetailsIcon">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="4.5un" type="FIXED" width="48.38806un"/>
-            <layout orientation="Horizontal" spacing="3px" type="linear">
-                <contentsmargins bottom="3px" left="3px" right="3px" top="3px"/>
-                <linearitem itemname="Descriptions"/>
-            </layout>
+            <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="FIXED" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
+            <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
+            <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MAXIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
         </widget>
         <widget name="DateText" type="HbLabel">
+            <rect height="6un" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="0un"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
             <string name="plainText"/>
         </widget>
-        <widget name="TimeContainer" type="HbWidget">
+        <widget name="ImageIcon" type="HbLabel">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="5un" type="MAXIMUM" width="48.38806un"/>
-            <sizehint height="5un" type="FIXED" width="48.38806un"/>
-            <sizehint height="5un" type="MINIMUM" width="48.38806un"/>
-            <layout orientation="Horizontal" spacing="3px" type="linear">
-                <contentsmargins bottom="3px" left="3px" right="3px" top="3px"/>
-                <linearitem itemname="TimeText"/>
-            </layout>
+            <sizehint height="31.95un" type="FIXED" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="31.95un" type="MINIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="31.95un" type="MAXIMUM" width="expr( var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
         </widget>
         <widget name="container" type="HbWidget">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="37.82239un" type="MAXIMUM" width="49.73134un"/>
-            <sizehint height="37.82239un" type="FIXED" width="49.73134un"/>
-            <sizehint height="37.82239un" type="MINIMUM" width="49.73134un"/>
-            <layout orientation="Vertical" spacing="0un" type="linear">
-                <contentsmargins bottom="0un" left="0un" right="0un" top="0un"/>
-                <linearitem itemname="DateContainer"/>
-                <linearitem itemname="TimeContainer"/>
-                <linearitem itemname="SizeContainer"/>
-                <linearitem itemname="DescLabelContainer"/>
-                <linearitem itemname="DescTextContainer"/>
-            </layout>
-        </widget>
-        <widget name="SizeContainer" type="HbWidget">
-            <sizehint height="7.5un" type="MINIMUM" width="48.38806un"/>
-            <sizehint height="5un" type="MAXIMUM" width="48.38806un"/>
-            <sizehint height="7.5un" type="FIXED" width="48.38806un"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <layout orientation="Horizontal" spacing="3px" type="linear">
-                <contentsmargins bottom="3px" left="3px" right="3px" top="3px"/>
-                <linearitem itemname="SizeText"/>
-            </layout>
-        </widget>
-        <widget name="MainWidget" type="HbWidget">
-            <layout type="anchor">
-                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-                <anchoritem dst="ImageIcon" dstEdge="CENTERH" spacing="0un" src="" srcEdge="CENTERH"/>
-                <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="0un" src="ImageIcon" srcEdge="RIGHT"/>
-                <anchoritem dst="FavIcon" dstEdge="BOTTOM" spacing="0un" src="ImageIcon" srcEdge="BOTTOM"/>
-                <anchoritem dst="ImageName" dstEdge="LEFT" spacing="0.44776un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="ImageName" dstEdge="TOP" spacing="expr(31.95un +var(hb-param-margin-gene-middle-vertical))" src="" srcEdge="TOP"/>
-                <anchoritem dst="container" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="container" dstEdge="TOP" spacing="expr(31.95un +var(hb-param-margin-gene-middle-vertical) + var(hb-param-margin-gene-bottom) + 5un)" src="" srcEdge="TOP"/>
-            </layout>
-        </widget>
-        <widget name="DescTextContainer" type="HbWidget">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="14un" type="MAXIMUM" width="48.38806un"/>
-            <sizehint height="14un" type="FIXED" width="48.38806un"/>
-            <sizehint height="7.5un" type="MINIMUM" width="48.38806un"/>
-            <layout orientation="Horizontal" spacing="3px" type="linear">
-                <contentsmargins bottom="3px" left="3px" right="3px" top="3px"/>
-                <linearitem itemname="DescriptionsText"/>
-            </layout>
-        </widget>
-        <widget name="ImageName" plugin="detailsnamelabelplugin" type="GlxDetailsNameLabel">
-            <enums name="textWrapping" value="TextWordWrap"/>
-            <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-            <real name="z" value="2"/>
-            <sizehint height="6un" type="FIXED" width="48.50746un"/>
-            <sizehint height="6un" type="MINIMUM" width="48.50746un"/>
-            <sizehint height="7un" type="MAXIMUM" width="48.50746un"/>
-            <string name="plainText"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-        </widget>
-        <widget name="FavIcon" type="HbPushButton">
-            <sizehint type="PREFERRED" width="expr(var(hb-param-graphic-size-primary-small) + 2un)"/>
-            <sizehint type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) + 2un)"/>
-            <sizehint height="5un" type="MAXIMUM" width="expr(var(hb-param-graphic-size-primary-small) + 2un)"/>
-            <real name="opacity" value="0.6"/>
+            <sizehint height="40.74627un" type="FIXED" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="40.74627un" type="MINIMUM" width="expr(  var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
+            <sizehint height="40.74627un" type="MAXIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) )"/>
         </widget>
         <widget name="Descriptions" type="HbLabel">
-            <string name="plainText" value="Description:"/>
+            <rect height="40.2" name="geometry" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom) )"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="6un" type="FIXED" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MINIMUM" width="expr(   var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <sizehint height="6un" type="MAXIMUM" width="expr(  var(hb-param-screen-width)  -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 2un)"/>
+            <string locid="txt_photos_formlabel_description" name="plainText"/>
         </widget>
     </section>
     <section name="landscape">
-        <widget name="DescriptionsText" plugin="detailsdescriptioneditplugin" type="GlxDetailsDescriptionEdit">
-            <sizehint height="12un" type="MINIMUM" width="56un"/>
-            <sizehint height="12un" type="PREFERRED" width="56un"/>
-            <sizehint height="12un" type="MAXIMUM" width="56un"/>
+        <widget name="view" type="HbView">
+            <bool name="contentFullScreen" value="TRUE"/>
+        </widget>
+        <widget name="ImageName" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="6un" type="MINIMUM" width="31.95un"/>
+            <sizehint height="6un" type="MAXIMUM" width="31.95un"/>
+        </widget>
+        <widget name="SizeText" type="HbLabel">
+            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) + 6un +var(hb-param-margin-gene-bottom) )"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="6un" type="FIXED" width="56un"/>
+            <sizehint height="6un" type="MINIMUM" width="56un"/>
+            <sizehint height="6un" type="MAXIMUM" width="56un"/>
+            <string name="plainText"/>
         </widget>
-        <widget name="DateContainer" type="HbWidget">
+        <widget name="TimeText" type="HbLabel">
+            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom) )"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="5un" type="FIXED" width="expr(var(hb-param-screen-width) -  (2*var(hb-param-margin-gene-screen)) -31.95un -var(hb-param-margin-gene-left) )"/>
-            <sizehint height="5un" type="MAXIMUM" width="expr(var(hb-param-screen-width) -  (2*var(hb-param-margin-gene-screen)) -31.95un -var(hb-param-margin-gene-left) )"/>
-            <sizehint height="5un" type="MINIMUM" width="expr(var(hb-param-screen-width) -  (2*var(hb-param-margin-gene-screen)) -31.95un -var(hb-param-margin-gene-left) )"/>
+            <sizehint height="6un" type="FIXED" width="55un"/>
+            <sizehint height="6un" type="MINIMUM" width="55un"/>
+            <sizehint height="6un" type="MAXIMUM" width="56un"/>
+            <string name="plainText"/>
+        </widget>
+        <widget name="DescriptionsText" plugin="glxdetailscustomplugin" type="GlxDetailsTextEdit">
+            <real name="z" value="6"/>
+            <rect height="11.49254un" name="geometry" width="56un" x="0.5un" y="28.95522un"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="11.49254un" type="FIXED" width="56un"/>
+            <sizehint height="11.49254un" type="MINIMUM" width="56un"/>
+            <sizehint height="11.49254un" type="MAXIMUM" width="56un"/>
         </widget>
         <widget name="content" role="HbView:widget" type="HbWidget">
             <layout type="anchor">
-                <anchoritem dst="MainWidget" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
-                <anchoritem dst="MainWidget" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-screen) + var(hb-param-widget-chrome-height))" src="" srcEdge="TOP"/>
+                <anchoritem dst="ImageName" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageName" dstEdge="TOP" spacing="expr(var(hb-param-margin-gene-middle-vertical) )" src="ImageIcon" srcEdge="BOTTOM"/>
+                <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="0un" src="ImageIcon" srcEdge="RIGHT"/>
+                <anchoritem dst="FavIcon" dstEdge="BOTTOM" spacing="0un" src="ImageIcon" srcEdge="BOTTOM"/>
+                <anchoritem dst="ImageIcon" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) )" src="" srcEdge="LEFT"/>
+                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="expr(var(hb-param-widget-chrome-height) +var(hb-param-margin-gene-screen))" src="" srcEdge="TOP"/>
+                <anchoritem dst="container" dstEdge="LEFT" spacing="expr(var(hb-param-margin-gene-screen) + 31.95un + var(hb-param-margin-gene-left))" src="" srcEdge="LEFT"/>
+                <anchoritem dst="container" dstEdge="TOP" spacing="expr(var(hb-param-widget-chrome-height) +var(hb-param-margin-gene-screen))" src="" srcEdge="TOP"/>
             </layout>
         </widget>
-        <widget name="DescLabelContainer" type="HbWidget">
+        <widget name="FavIcon" plugin="glxdetailscustomplugin" type="GlxDetailsIcon">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="4.5un" type="MINIMUM" width="57.57239un"/>
-            <sizehint height="4.5un" type="FIXED" width="57.57239un"/>
-            <sizehint height="4.5un" type="MAXIMUM" width="57.57239un"/>
+            <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="FIXED" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
+            <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
+            <sizehint height="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )" type="MAXIMUM" width="expr(var(hb-param-graphic-size-primary-small) + var(hb-param-graphic-size-primary-small) )"/>
         </widget>
         <widget name="DateText" type="HbLabel">
+            <rect height="6un" name="geometry" width="56un" x="0.5un" y="0un"/>
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint type="MINIMUM" width="55un"/>
-            <sizehint type="MAXIMUM" width="55un"/>
+            <sizehint type="FIXED" width="56un"/>
+            <sizehint height="6un" type="MINIMUM" width="56un"/>
+            <sizehint height="6un" type="MAXIMUM" width="56un"/>
+            <string name="plainText"/>
         </widget>
-        <widget name="TimeContainer" type="HbWidget">
-            <sizehint height="5un" type="MINIMUM" width="57.57239un"/>
-            <sizehint height="5un" type="FIXED" width="57.57239un"/>
-            <sizehint height="5un" type="MAXIMUM" width="57.57239un"/>
+        <widget name="ImageIcon" type="HbLabel">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-        </widget>
-        <widget name="SizeText" type="HbLabel">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="3.28358un" type="MINIMUM" width="55un"/>
-            <sizehint height="3.28358un" type="MAXIMUM" width="55un"/>
+            <sizehint height="31.95un" type="FIXED" width="31.95un"/>
+            <sizehint height="31.95un" type="MINIMUM" width="31.95un"/>
+            <sizehint height="31.95un" type="MAXIMUM" width="31.95un"/>
         </widget>
         <widget name="container" type="HbWidget">
             <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="49.73134un" type="MINIMUM" width="57.57239un"/>
-            <sizehint height="49.73134un" type="FIXED" width="57.57239un"/>
-            <sizehint type="MAXIMUM" width="57.57239un"/>
-            <layout orientation="Vertical" type="linear">
-                <contentsmargins bottom="1un" left="0un" right="0un" top="0un"/>
-                <linearitem itemname="DateContainer"/>
-                <linearitem itemname="TimeContainer"/>
-                <linearitem itemname="SizeContainer"/>
-                <linearitem itemname="DescLabelContainer"/>
-                <linearitem itemname="DescTextContainer"/>
-            </layout>
-        </widget>
-        <widget name="SizeContainer" type="HbWidget">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint height="5un" type="MINIMUM" width="57.57239un"/>
-            <sizehint height="5un" type="FIXED" width="57.57239un"/>
-            <sizehint height="5un" type="MAXIMUM" width="57.57239un"/>
-        </widget>
-        <widget name="MainWidget" type="HbWidget">
-            <layout type="anchor">
-                <anchoritem dst="ImageIcon" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="ImageIcon" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-                <anchoritem dst="FavIcon" dstEdge="RIGHT" spacing="0un" src="ImageIcon" srcEdge="RIGHT"/>
-                <anchoritem dst="FavIcon" dstEdge="BOTTOM" spacing="0un" src="ImageIcon" srcEdge="BOTTOM"/>
-                <anchoritem dst="ImageName" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="ImageName" dstEdge="TOP" spacing="expr(31.95un +var(hb-param-margin-gene-middle-vertical))" src="" srcEdge="TOP"/>
-                <anchoritem dst="container" dstEdge="LEFT" spacing="expr(31.95un +var(hb-param-margin-gene-left))" src="" srcEdge="LEFT"/>
-                <anchoritem dst="container" dstEdge="TOP" spacing="0un" src="" srcEdge="TOP"/>
-            </layout>
-        </widget>
-        <widget name="TimeText" type="HbLabel">
-            <sizehint type="FIXED" width="55un"/>
-            <sizehint type="MINIMUM" width="55un"/>
-            <sizehint height="3.28358un" type="MAXIMUM" width="55un"/>
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-        </widget>
-        <widget name="ImageName" plugin="detailsnamelabelplugin" type="GlxDetailsNameLabel">
-            <real name="z" value="2"/>
-            <sizehint height="7.5un" type="PREFERRED" width="31.95un"/>
-            <sizehint height="7.5un" type="MINIMUM" width="31.95un"/>
-            <sizehint height="7.5un" type="MAXIMUM" width="31.95un"/>
-        </widget>
-        <widget name="DescTextContainer" type="HbWidget">
-            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
-            <sizehint type="MAXIMUM" width="57.57239un"/>
-            <sizehint height="12un" type="FIXED" width="57.57239un"/>
-            <sizehint height="12un" type="MINIMUM" width="57.57239un"/>
-            <layout orientation="Horizontal" spacing="0un" type="linear">
-                <contentsmargins bottom="1.34328un" left="0un" right="1.34328un" top="0un"/>
-                <linearitem itemname="DescriptionsText"/>
-            </layout>
-        </widget>
-        <widget name="FavIcon" type="HbPushButton">
-            <sizehint type="PREFERRED" width="expr(var(hb-param-graphic-size-primary-small) + 2un)"/>
-            <sizehint type="MINIMUM" width="expr(var(hb-param-graphic-size-primary-small) + 2un)"/>
-            <sizehint height="5un" type="MAXIMUM" width="expr(var(hb-param-graphic-size-primary-small) + 2un)"/>
+            <sizehint height="40.74627un" type="FIXED" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
+            <sizehint height="40.74627un" type="MINIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
+            <sizehint height="40.74627un" type="MAXIMUM" width="expr( var(hb-param-screen-width) -var(hb-param-margin-gene-screen) -var(hb-param-margin-gene-screen) - 31.95un - var(hb-param-margin-gene-left) )"/>
         </widget>
         <widget name="Descriptions" type="HbLabel">
-            <string name="plainText" value="Descriptions:"/>
+            <rect height="6un" name="geometry" width="56un" x="0.5un" y="expr(6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom)  + 6un +var(hb-param-margin-gene-bottom) )"/>
+            <sizepolicy horizontalPolicy="Fixed" horizontalStretch="0" verticalPolicy="Fixed" verticalStretch="0"/>
+            <sizehint height="6un" type="FIXED" width="56un"/>
+            <sizehint height="6un" type="MINIMUM" width="56un"/>
+            <sizehint height="6un" type="MAXIMUM" width="56un"/>
+            <string locid="txt_photos_formlabel_description" name="plainText"/>
         </widget>
     </section>
-    <metadata activeUIState="Common ui state" display="NHD-3.2-inch_portrait" unit="un">
+    <metadata activeUIState="landscape" display="NHD-3.2-inch_landscape" unit="un">
         <uistate name="Common ui state" sections="#common"/>
         <uistate name="portrait" sections="#common portrait"/>
         <uistate name="landscape" sections="#common landscape"/>
--- a/data/fullscreen.docml	Tue Jul 06 14:16:16 2010 +0300
+++ b/data/fullscreen.docml	Wed Aug 18 09:48:53 2010 +0300
@@ -4,9 +4,6 @@
         <widget name="mcontent" role="HbView:widget" type="HbWidget">
             <widget name="mCoverFlow" type="HbWidget">
                 <real name="z" value="5"/>
-                <string name="alignment" value="AlignLeft|AlignTop|AlignLeading"/>
-                <string name="scrollDirections" value="Horizontal"/>
-                <bool name="frictionEnabled" value="TRUE"/>
             </widget>
             <widget name="mImageStrip" type="HbGridView">
                 <bool name="itemRecycling" value="TRUE"/>
@@ -22,9 +19,10 @@
             <widget name="toolBar" type="HbToolBar">
                 <enums name="layoutDirection" value="RightToLeft"/>
                 <real name="z" value="7"/>
-                <real name="opacity" value="0.5"/>
+                <real name="opacity" value="1"/>
                 <sizehint height="60.44776un" type="PREFERRED" width="9.40299un"/>
                 <enums name="orientation" value="Vertical"/>
+                <bool name="visible" value="FALSE"/>
             </widget>
             <widget name="glxZoomWidget" type="HbWidget">
                 <string name="alignment" value="AlignVCenter|AlignHCenter"/>
@@ -52,7 +50,6 @@
         </widget>
         <string locid="txt_photos_title_photos" name="title" value="Photos"/>
         <bool name="contentFullScreen" value="TRUE"/>
-        <string name="titleBarFlags" value="TitleBarHidden|TitleBarTransparent"/>
     </widget>
     <section name="portrait">
         <widget name="mImageStrip" type="HbGridView">
--- a/data/grid.docml	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
-    <widget name="glxgridview" type="HbView">
-        <widget name="content" role="HbView:widget" type="HbWidget">
-            <widget name="hbgridview" type="HbGridView">
-                <real name="z" value="1"/>
-                <sizehint height="88.65672un" type="PREFERRED" width="53.28358un"/>
-            </widget>
-            <layout type="anchor">
-                <anchoritem dst="hbgridview" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="hbgridview" dstEdge="TOP" spacing="9un" src="" srcEdge="TOP"/>
-                <anchoritem dst="hbgridview" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
-                <anchoritem dst="hbgridview" dstEdge="BOTTOM" spacing="-9un" src="" srcEdge="BOTTOM"/>
-            </layout>
-        </widget>
-        <string name="title" value="Photos"/>
-        <bool name="contentFullScreen" value="TRUE"/>
-    </widget>
-    <section name="portrait">
-        <widget name="glxgridview" type="HbView">
-            <real name="z" value="0"/>
-            <string name="HbVkbHost" value=""/>
-        </widget>
-        <widget name="hbgridview" type="HbGridView">
-            <bool name="itemRecycling" value="TRUE"/>
-            <bool name="textVisible" value="FALSE"/>
-            <enums name="verticalScrollBarPolicy" value="ScrollBarAutoHide"/>
-            <enums name="scrollDirections" value="Vertical"/>
-            <bool name="uniformItemSizes" value="TRUE"/>
-            <enums name="horizontalScrollBarPolicy" value="ScrollBarAutoHide"/>
-            <real name="z" value="5"/>
-            <sizehint height="77.52239un" type="PREFERRED" width="53.28358un"/>
-            <integer name="columnCount" value="3"/>
-            <bool name="frictionEnabled" value="TRUE"/>
-            <integer name="rowCount" value="5"/>
-        </widget>
-        <widget name="content" role="HbView:widget" type="HbWidget">
-            <layout type="anchor">
-                <anchoritem dst="hbgridview" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="hbgridview" dstEdge="TOP" spacing="9un" src="" srcEdge="TOP"/>
-                <anchoritem dst="hbgridview" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
-                <anchoritem dst="hbgridview" dstEdge="BOTTOM" spacing="-9un" src="" srcEdge="BOTTOM"/>
-            </layout>
-        </widget>
-    </section>
-    <section name="landscape">
-        <widget name="hbgridview" type="HbGridView">
-            <bool name="itemRecycling" value="TRUE"/>
-            <bool name="textVisible" value="FALSE"/>
-            <enums name="verticalScrollBarPolicy" value="ScrollBarAutoHide"/>
-            <bool name="uniformItemSizes" value="TRUE"/>
-            <enums name="horizontalScrollBarPolicy" value="ScrollBarAutoHide"/>
-            <enums name="scrollDirections" value="Horizontal"/>
-            <integer name="columnCount" value="5"/>
-            <sizehint height="33.1343un" type="PREFERRED" width="95.52239un"/>
-            <bool name="frictionEnabled" value="TRUE"/>
-            <integer name="rowCount" value="2"/>
-        </widget>
-        <widget name="content" role="HbView:widget" type="HbWidget">
-            <layout type="anchor">
-                <anchoritem dst="hbgridview" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
-                <anchoritem dst="hbgridview" dstEdge="TOP" spacing="10.4478un" src="" srcEdge="TOP"/>
-                <anchoritem dst="hbgridview" dstEdge="RIGHT" spacing="0un" src="" srcEdge="RIGHT"/>
-                <anchoritem dst="hbgridview" dstEdge="BOTTOM" spacing="-9.7015un" src="" srcEdge="BOTTOM"/>
-            </layout>
-        </widget>
-    </section>
-    <metadata activeUIState="portrait" display="NHD portrait" unit="un">
-        <uistate name="Common ui state" sections="#common"/>
-        <uistate name="landscape" sections="#common landscape"/>
-        <uistate name="portrait" sections="#common portrait"/>
-    </metadata>
-</hbdocument>
--- a/data/gridtoalbumlist.fxml	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<layers>
-<visual>
-
-<param name="translation_y" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-      <keyframe at="0">0</keyframe>
-      <keyframe at="1">1</keyframe>
-<start ref="screen.bottom">1</start>
-<end ref="visual.top">1</end>
-</param>
-
-</visual>
-</layers>
--- a/data/gridtoalbumlisthide.fxml	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<layers>
-<visual>
-
-<param name="opacity" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-<keyframe at="0.0">1.0</keyframe>
-<keyframe at="0.5">0.25</keyframe>
-<keyframe at="1.0">0</keyframe>
-</param>
-
-</visual>
-</layers>
--- a/data/photos.css	Tue Jul 06 14:16:16 2010 +0300
+++ b/data/photos.css	Wed Aug 18 09:48:53 2010 +0300
@@ -50,16 +50,8 @@
 }
 
 HbListViewItem::selection-icon{
-	fixed-height: var(hb-param-graphic-size-primary-medium);
-	fixed-width: var(hb-param-graphic-size-primary-medium);
-}
-
-HbListViewItem::multiselection-toucharea{
+	fixed-height: 0.0un;
 	fixed-width: 0.0un;
 }
 
-HbListViewItem::icon-1{
-	fixed-height: var(hb-param-graphic-size-function);
-	fixed-width: var(hb-param-margin-view-bottom);
-}
 
--- a/data/photos.docml	Tue Jul 06 14:16:16 2010 +0300
+++ b/data/photos.docml	Wed Aug 18 09:48:53 2010 +0300
@@ -35,28 +35,17 @@
                 <ref object="action_2" role="HbWidget:addAction"/>
                 <ref object="action_3" role="HbWidget:addAction"/>
             </widget>
-            <string name="titleBarFlags"/>
             <bool name="enabled" value="TRUE"/>
             <bool name="visible" value="TRUE"/>
         </widget>
     </section>
     <section name="landscape">
+        <widget name="mainView" type="HbView">
+            <bool name="contentFullScreen" value="FALSE"/>
+            <enums name="titleBarFlags" value="TitleBarFlagNone"/>
+        </widget>
         <widget name="content" role="HbView:widget" type="HbWidget">
-            <widget name="pushButton" type="HbPushButton">
-                <icon iconName="qtg_mono_back" name="icon"/>
-                <real name="z" value="1"/>
-                <sizehint type="PREFERRED" width="10.59702un"/>
-                <sizehint height="5.5un" type="MINIMUM" width="5un"/>
-                <string name="text"/>
-            </widget>
-            <layout type="anchor">
-                <anchoritem dst="pushButton" dstEdge="TOP" spacing="0.14925un" src="" srcEdge="TOP"/>
-                <anchoritem dst="pushButton" dstEdge="RIGHT" spacing="-0.14925un" src="" srcEdge="RIGHT"/>
-            </layout>
-        </widget>
-        <widget name="mainView" type="HbView">
-            <string name="titleBarFlags" value="TitleBarHidden"/>
-            <bool name="contentFullScreen" value="FALSE"/>
+            <layout type="anchor"/>
         </widget>
     </section>
     <metadata activeUIState="landscape" display="NHD-3.2-inch_landscape" unit="un">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/rotatefslandscape.fxml	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="rotation_angle" type="anim">
+			<style>linear</style>
+			<duration>0.2</duration>
+			<keyframe at="0.0">-60</keyframe>
+			<keyframe at="1.0">0</keyframe>
+		</param>
+		<param name="rotation_origin_x" ref="visual.width">0.5</param>
+		<param name="rotation_origin_y" ref="visual.height">0.5</param>
+		
+	</visual>
+	
+</layers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/rotatefsprotrait.fxml	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="rotation_angle" type="anim">
+			<style>linear</style>
+			<duration>0.2</duration>
+			<keyframe at="0.0">60</keyframe>
+			<keyframe at="1.0">0</keyframe>
+		</param>
+		<param name="rotation_origin_x" ref="visual.width">0.5</param>
+		<param name="rotation_origin_y" ref="visual.height">0.5</param>
+		
+	</visual>
+</layers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/rotatelandscape.fxml	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="rotation_angle" type="anim">
+			<style>linear</style>
+			<duration>0.2</duration>
+			<keyframe at="0.0">30</keyframe>
+			<keyframe at="1.0">90</keyframe>
+		</param>
+		<param name="rotation_origin_x" ref="visual.width">0.5</param>
+		<param name="rotation_origin_y" ref="visual.height">0.5</param>
+		
+	</visual>
+</layers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data/rotateprotrait.fxml	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<layers xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:noNamespaceSchemaLocation="http://www.nokia.com/FXML/10.1">
+	<comment>Created using carbide.fx 1.5.0;  FxML revision 0.84; Platform 10.1 </comment>
+	<visual src="Item">
+		<param name="rotation_angle" type="anim">
+			<style>linear</style>
+			<duration>0.2</duration>
+			<keyframe at="0.0">-30</keyframe>
+			<keyframe at="1.0">-90</keyframe>
+		</param>
+		<param name="rotation_origin_x" ref="visual.width">0.5</param>
+		<param name="rotation_origin_y" ref="visual.height">0.5</param>
+		
+	</visual>
+</layers>
\ No newline at end of file
--- a/data/transitiondown.fxml	Tue Jul 06 14:16:16 2010 +0300
+++ b/data/transitiondown.fxml	Wed Aug 18 09:48:53 2010 +0300
@@ -2,7 +2,7 @@
 <visual>
 
 <param name="translation_y" type="anim">
-<duration>0.4</duration>
+<duration>0.3</duration>
 <style>linear</style>
       <keyframe at="0">0</keyframe>
       <keyframe at="1">1</keyframe>
--- a/data/transitionup.fxml	Tue Jul 06 14:16:16 2010 +0300
+++ b/data/transitionup.fxml	Wed Aug 18 09:48:53 2010 +0300
@@ -2,7 +2,7 @@
 <visual>
 
 <param name="translation_y" type="anim">
-<duration>0.4</duration>
+<duration>0.3</duration>
 <style>linear</style>
       <keyframe at="0">0</keyframe>
       <keyframe at="1">1</keyframe>
--- a/data/view_flip_hide.fxml	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<!-- This effect file was generated by effectDialog -->
-
-<layers>
-<visual>
-
-<param name="rotation_angle" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-<keyframe at="0.0">0</keyframe>
-<keyframe at="1.0">-90</keyframe>
-</param>
-<param name="rotation_origin_x" ref="visual.width">
-0.5
-</param>
-<param name="rotation_origin_y" ref="visual.height">
-0.5
-</param>
-<param name="rotation_axis_x" type="anim">
-0
-</param>
-<param name="rotation_axis_y" type="anim">
-1
-</param>
-<param name="rotation_axis_z" type="anim">
-0
-</param>
-
-
-</visual>
-</layers>
-
--- a/data/view_flip_show.fxml	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-<!-- This effect file was generated by effectDialog -->
-
-<layers>
-<visual>
-
-<param name="rotation_angle" type="anim">
-<duration>0.3</duration>
-<style>linear</style>
-<keyframe at="0.0">90</keyframe>
-<keyframe at="1.0">0</keyframe>
-</param>
-<param name="rotation_origin_x" ref="visual.width">
-0.5
-</param>
-<param name="rotation_origin_y" ref="visual.height">
-0.5
-</param>
-<param name="rotation_axis_x" type="anim">
-0
-</param>
-<param name="rotation_axis_y" type="anim">
-1
-</param>
-<param name="rotation_axis_z" type="anim">
-0
-</param>
-
-</visual>
-</layers>
-
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsattribute.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -624,8 +624,17 @@
                 case CGlxDataSource::EContainerTypeAlbum:
                 case CGlxDataSource::EContainerTypeTag:
                     {                                                           
-                    TUint32 countTypeIndex = aContainer->UsageCount();
-                    aEntry->SetTObjectValueL(request->Attributes()[i], countTypeIndex);
+                    // for 10.1 we need just images - so just getting images inside an album will do
+                    TGlxFilterProperties filterProperties = iFilterProperties;
+                    filterProperties.iItemType = EGlxFilterImage;
+                    filterProperties.iNoDRM = ETrue;
+                    
+                    QueueObjectQueryL(aContainer->Def(), ETrue, EAttributeQuery,
+                                      EQueryResultModeCount, TGlxMediaId(aContainer->Id()),
+                                      request->Attributes()[i], aEntry, filterProperties);
+                    
+                    //TUint32 countTypeIndex = aContainer->UsageCount();
+                    //aEntry->SetTObjectValueL(request->Attributes()[i], countTypeIndex);
                     break;
                     }
                 case CGlxDataSource::EContainerTypeMonth:
--- a/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/engine/collectionframework/datasource/plugins/glxdatasourcemde2.5/src/glxdatasourcetaskmdsthumbnail.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -594,6 +594,9 @@
         iFilterProperties.iSortOrder = EGlxFilterSortOrderCaptureDate;
         iFilterProperties.iSortDirection = EGlxFilterSortDirectionOverrideToDescendingIfDate;
         iFilterProperties.iLastCaptureDate = ETrue;
+        // for 10.1 we need first image thumbnail which is not DRM
+        iFilterProperties.iNoDRM = ETrue;
+        iFilterProperties.iItemType = EGlxFilterImage;
 
         if( CGlxDataSource::EContainerTypeMonth == containerType )
             {
--- a/gallery/sis/photos.pkg	Tue Jul 06 14:16:16 2010 +0300
+++ b/gallery/sis/photos.pkg	Wed Aug 18 09:48:53 2010 +0300
@@ -43,7 +43,6 @@
 "\epoc32\release\armv5\urel\photos.exe"    						- "!:\sys\bin\photos.exe"
 "\epoc32\data\z\resource\apps\photos.rsc"    					- "!:\resource\apps\photos.rsc"
 "\epoc32\data\z\private\10003a3f\import\apps\photos_reg.rsc"    - "!:\private\10003a3f\import\apps\photos_reg.rsc"
-"\epoc32\data\z\resource\apps\photos.mif"    					- "!:\resource\apps\photos.mif"
 
 ; -------- files --------
 "\epoc32\release\armv5\urel\glxcommonui.dll"                   		-"!:\sys\bin\glxcommonui.dll"
@@ -112,10 +111,9 @@
 "\epoc32\release\armv5\urel\glxviews.dll"                  -"!:\sys\bin\glxviews.dll"
 "\epoc32\release\armv5\urel\glxviewutilities.dll"          -"!:\sys\bin\glxviewutilities.dll"
 "\epoc32\release\armv5\urel\glxzoomwidget.dll"             -"!:\sys\bin\glxzoomwidget.dll"
-"\epoc32\release\armv5\urel\detailsnamelabel.dll"          -"!:\sys\bin\detailsnamelabel.dll"
-"\epoc32\release\armv5\urel\detailsnamelabelplugin.dll"    -"!:\sys\bin\detailsnamelabelplugin.dll"
-"\epoc32\release\armv5\urel\detailsdescriptionedit.dll"    -"!:\sys\bin\detailsdescriptionedit.dll"
-"\epoc32\release\armv5\urel\detailsdescriptioneditplugin.dll" -"!:\sys\bin\detailsdescriptioneditplugin.dll"
+"\epoc32\release\armv5\urel\glxdetailscustomwidgets.dll"   -"!:\sys\bin\glxdetailscustomwidgets.dll"
+"\epoc32\release\armv5\urel\glxdetailscustomplugin.dll"    -"!:\sys\bin\glxdetailscustomplugin.dll"
+
 
 ;translations
 "\epoc32\data\z\resource\qt\translations\photos_en.qm"     -"!:\resource\qt\translations\photos.qm"
--- a/gallery/sis/photos_stub.pkg	Tue Jul 06 14:16:16 2010 +0300
+++ b/gallery/sis/photos_stub.pkg	Wed Aug 18 09:48:53 2010 +0300
@@ -31,7 +31,6 @@
 "" - "z:\sys\bin\photos.exe"		
 "" - "z:\private\10003a3f\import\apps\photos_reg.rsc"
 "" - "z:\resource\apps\photos.rsc"
-"" - "z:\resource\apps\photos.mif"
 
 ; -------- files --------
 ; engines
@@ -101,10 +100,9 @@
 "" - "z:\sys\bin\glxviews.dll"
 "" - "z:\sys\bin\glxviewutilities.dll"
 "" - "z:\sys\bin\glxzoomwidget.dll"
-"" - "z:\sys\bin\detailsnamelabel.dll"
-"" - "z:\sys\bin\detailsnamelabelplugin.dll"
-"" - "z:\sys\bin\detailsdescriptionedit.dll"
-"" - "z:\sys\bin\detailsdescriptioneditplugin.dll"
+"" - "z:\sys\bin\glxdetailscustomwidgets.dll"
+"" - "z:\sys\bin\glxdetailscustomplugin.dll"
+
 
 "" - "z:\private\10202BE9\20007194.txt"
 "" - "z:\private\10202BE9\20007193.txt"
Binary file gallery/sis/photos_stub.sis has changed
--- a/inc/glxlocalisationstrings.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/inc/glxlocalisationstrings.h	Wed Aug 18 09:48:53 2010 +0300
@@ -20,7 +20,10 @@
 
 #include "hbglobal.h"
 
-//OPTIONS MENU
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------START OF OPTIONS LOCALISATION STRING----------------------------------
+//-------------------------------------------------------------------------------------------------------//
+
 //Options list item
 #define GLX_OPTION_SHARE               hbTrId("txt_photos_opt_share") 
 
@@ -56,7 +59,21 @@
 //
 #define GLX_OPTION_NEW_ALBUM           hbTrId("txt_photos_opt_new_album")
 
-//CONTEXT MENU
+//3D effect option to allow user to enable and disable 3D Grid Effect.
+//Submenu option for 3D effect option
+//Off sub menu option for 3D effect option
+#define GLX_GRID_OPT_ON                hbTrId("txt_photos_opt_view_sub_on")
+
+#define GLX_GRID_OPT_OFF               hbTrId("txt_photos_opt_sub_off")
+
+#define GLX_GRID_OPT_EFFECT            hbTrId("txt_photos_opt_3d_effect")
+
+
+//-----------------------------END OF OPTIONS LOCALISATION STRING----------------------------------------
+
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------START OF MENU LOCALISATION STRING----------------------------------------
+//-------------------------------------------------------------------------------------------------------//
 
 //context menu item share , invoke share UI
 #define GLX_MENU_SHARE                 hbTrId("txt_photos_menu_share")
@@ -75,27 +92,122 @@
 //
 #define GLX_MENU_RENAME                hbTrId("txt_common_menu_rename_item")
 
-#define GLX_DIALOG_NAME_PROMPT                hbTrId("txt_photos_title_enter_name")
+#define GLX_MENU_OPEN                  hbTrId("txt_common_menu_open")
+
+//Full Screen Menu
+#define GLX_MENU_USE_IMAGE          hbTrId("txt_photos_opt_use_image")
+#define GLX_MENU_SET_WALLPAPER      hbTrId("txt_photos_opt_sub_wallpaper")
+#define GLX_MENU_ROTATE             hbTrId("txt_photos_opt_rotate")
+#define GLX_MENU_90_CW              hbTrId("txt_photos_opt_sub_90cw")
+#define GLX_MENU_90_CCW             hbTrId("txt_photos_opt_rotate_sub_90ccw")
+#define GLX_MENU_CROP               hbTrId("txt_photos_opt_crop") 
+
+//-----------------------------END OF MENU LOCALISATION STRING-------------------------------------------
+
+
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------VIEW SPECIFIC LOCALISATION STRING-----------------------------------------
+//-------------------------------------------------------------------------------------------------------//
+
+//*******************************GRID VIEW***********************************************
+
+//sub heading lable for mark mode.
+#define GLX_SELECT_IMAGES               hbTrId("txt_photos_subhead_select_images")
+
+//for single item selection
+#define GLX_SELECT_IMAGE                hbTrId("txt_photos_subhead_select_image")
+
+//Label field in all grid view to display no of items plus album name in case of album grid view. whre %1 is album name and %L2 is no of images in the album.
+#define GLX_ALBUM_NAME_COUNT_LABEL      "txt_photos_subhead_1_l2"
 
-#define GLX_DIALOG_ALBUM_NAME_DEFAULT         hbTrId("txt_photos_dialog_enter_name_entry_album")
-#define GLX_DIALOG_DELETE_ONE_ITEM            hbTrId("txt_photos_info_deleting_1")
-//TITLE RELATED and DEFAULT STRINGS
+//to show the total image count in grid view
+#define GLX_GRID_VIEW_COUNT_LABEL       "txt_photos_subtitle_ln_images" 
+
+//mark all label to be shown in marking mode view
+#define GLX_LABEL_MARK_ALL            hbTrId("txt_photos_list_mark_all")
+
+
+//mark all label to be shown in marking mode view
+#define GLX_LABEL_MARK_COUNT            hbTrId("txt_photos_list_lnln")
+
+//*******************************DETAILS VIEW**********************************************
+
+//Description field
+#define GLX_DETAILS_DESCRIPTION        hbTrId("txt_photos_formlabel_description")
+//Details view "Date" Label to show the captured date of the image, where %1 is the date
+#define GLX_DETAILS_DATE               "txt_photos_list_date_1"
+
+//Details view "time" Label to show the captured time of the image , where %1 is the time
+#define GLX_DETAILS_TIME               "txt_photos_list_time_1"
+
+//%ln is the size specfied in KiloBytes unit
+//%ln is the size specfied in MegaBytes unit
+//%ln is the size specfied in GigaBytes unit
+#define GLX_DETAILS_SIZE_KB             "txt_photos_list_ln_kb"
+#define GLX_DETAILS_SIZE_MB             "txt_photos_list_ln_mb"
+#define GLX_DETAILS_SIZE_GB             "txt_photos_list_ln_gb" 
+#define GLX_DETAILS_SIZE_BYTES          "txt_photos_list_sizeln_bytes"
+
 
-#define GLX_CAPTION                    hbTrId("txt_short_caption_photos")
-#define GLX_TITLE                      hbTrId("txt_photos_title_photos")
-#define GLX_PLACES                     "txt_photos_dblist_places_ln"
-#define GLX_ITEMS_CAMERA               "txt_photos_dblist_val_ln_items"
-#define GLX_ITEMS_MYFAV                "txt_photos_subtitle_ln_items"
-#define GLX_SUBTITLE_CAM_GRIDVIEW      hbTrId("txt_photos_subtitle_my_camera")
-#define GLX_SUBTITLE_MYFAV_GRIDVIEW    hbTrId("txt_photos_subtitle_my_favorites")
-#define GLX_SUBTITLE_NOITEMS           hbTrId("txt_photos_subtitle_no_image_or_videos_to_display")
-#define GLX_FETCHER_TITLE              QString("Select Image")
-#define GLX_GRID_NO_IMAGE              QString("(No Images)\n")
-#define GLX_GRID_OPEN_CAMERA           QString("To capture images Open")
-//VIEW RELATED STRINGS AND COMMON DIALOGS
+//*******************************SLIDESHOW VIEW/SETTINGS VIEW*******************************
+
+#define GLX_LABEL_TRANSITION_EFFECT  hbTrId("txt_photos_setlabel_transistion_effect")
+#define GLX_VAL_SMOOTH_FADE          hbTrId("txt_photos_setlabel_transistion_effect_val_smooth")
+#define GLX_EFFECTS_FLIP             hbTrId("txt_photos_setlabel_transistion_effect_val_flip_in")
+#define GLX_EFFECTS_ZOOMIN_ZOOMOUT   hbTrId("txt_photos_setlabel_transistion_effect_val_zoom_in")
+#define GLX_EFFECTS_ZOOM_AND_PAN     hbTrId("txt_photos_setlabel_transistion_effect_val_zoom_an")
+
+#define GLX_LABEL_TRANSITION_DELAY   hbTrId("txt_photos_setlabel_transistion_delay")
+#define GLX_VAL_SLOW                 hbTrId("txt_photos_setlabel_transistion_delay_val_slow")
+#define GLX_VAL_MEDIUM               hbTrId("txt_photos_setlabel_transistion_delay_val_medium")
+#define GLX_VAL_FAST                 hbTrId("txt_photos_setlabel_transistion_delay_val_fast")
+
+#define GLX_UNABLE_PLAY_SLIDESHOW      hbTrId("txt_photos_info_unable_to_play_slideshow")
+#define GLX_NOIMAGE_PLAY_SLIDESHOW     hbTrId( "txt_photos_info_no_images_to_play_slideshow" )
+
+//-----------------------------END OF VIEW SPECIFIC LOCALISATION STRING----------------------------------
+
+
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------DIALOG/INFO LOCALISATION STRING-----------------------------------------
+//-------------------------------------------------------------------------------------------------------//
+
+//Wait note. Displayed when something is being deleted.
+//Delete multiple images confirmation dialog
+//Deleting...
+//Delete selected items?
+#define GLX_DELETE_PROGRESS              hbTrId("txt_common_info_deleting")
 
-//comments lable for photos flip view
-#define GLX_DETAILS_DESCRIPTION       hbTrId("txt_photos_formlabel_description")
+#define GLX_MULTIPLE_DELETE              hbTrId("txt_photos_info_delete_selected_items")
+
+// progressing not to be shown while removing selected images from an album
+#define GLX_REMOVE_IMAGES                hbTrId("txt_photos_info_removing_images")    
+
+#define GLX_DIALOG_NAME_PROMPT           hbTrId("txt_photos_title_enter_name")
+
+#define GLX_DIALOG_ALBUM_NAME_DEFAULT    hbTrId("txt_photos_dialog_enter_name_entry_album")
+
+#define GLX_DIALOG_DELETE_ONE_ITEM       hbTrId("txt_photos_info_deleting_1")
+
+//Name already in use alert when user tries to name/reanme the album with an already existing album name
+#define GLX_NAME_ALREADY_EXIST           hbTrId("txt_photos_dpopinfo_name_1_already_in_use") 
+
+#define GLX_PROCESSING                   hbTrId( "txt_common_info_processing" ) 
+
+#define GLX_ADDING_IMAGES                hbTrId( "txt_photos_info_adding_images" )
+
+#define GLX_IMAGES_ADDED                 "txt_photos_dpopinfo_images_added_to_1"
+
+#define GLX_REFRESHING                   hbTrId("txt_photos_info_refreshing_your_media")
+
+//favorite album name for select album popup
+#define GLX_ALBUM_FAV                hbTrId("txt_photos_list_favorite")
+
+//-----------------------------END OF DIALOG/INFO LOCALISATION STRING----------------------------------
+
+//-------------------------------------------------------------------------------------------------------//
+//-----------------------------BUTTON LOCALISATION STRING-----------------------------------------
+//-------------------------------------------------------------------------------------------------------//
 
 //Button. Note! Use this text ID only if there are max. two buttons in the dialog. 
 //When this button is pressed, the focused item or operation will be selected or accepted.
@@ -107,16 +219,23 @@
 
 #define GLX_BUTTON_SELECT            hbTrId("txt_common_button_select")
 
-#define GLX_MENU_OPEN                hbTrId("txt_common_menu_open")
-
 #define GLX_BUTTON_HIDE              hbTrId("txt_common_button_hide")
 
-#define GLX_LABEL_TRANSITION_EFFECT  hbTrId("txt_photos_setlabel_transistion_effect")
-#define GLX_VAL_SMOOTH_FADE          hbTrId("txt_photos_setlabel_transistion_effect_val_smooth")
+#define GLX_BUTTON_NEW               hbTrId("txt_photos_button_new")
+
+//-----------------------------END OF BUTTON LOCALISATION STRING----------------------------------
+
+//TITLE RELATED and DEFAULT STRINGS
 
-#define GLX_LABEL_TRANSITION_DELAY   hbTrId("txt_photos_setlabel_transistion_delay")
-#define GLX_VAL_SLOW                 hbTrId("txt_photos_setlabel_transistion_delay_val_slow")
-#define GLX_VAL_MEDIUM               hbTrId("txt_photos_setlabel_transistion_delay_val_medium")
-#define GLX_VAL_FAST                 hbTrId("txt_photos_setlabel_transistion_delay_val_fast")
+#define GLX_CAPTION                    hbTrId("txt_short_caption_photos")
+#define GLX_TITLE                      hbTrId("txt_photos_title_photos")
+#define GLX_PLACES                     "txt_photos_dblist_places_ln"
+#define GLX_ITEMS_CAMERA               "txt_photos_dblist_val_ln_items"
+#define GLX_ITEMS_MYFAV                "txt_photos_subtitle_ln_items"
+#define GLX_SUBTITLE_CAM_GRIDVIEW      hbTrId("txt_photos_subtitle_my_camera")
+#define GLX_SUBTITLE_MYFAV_GRIDVIEW    hbTrId("txt_photos_subtitle_my_favorites")
+#define GLX_GRID_NO_IMAGE              hbTrId("txt_photos_info_no_content")
+#define GLX_ALBUM_SELECTION_TITLE      hbTrId("txt_photos_dialog_select_album") 
+#define GLX_IMAGE_VIEWER               hbTrId("txt_photos_title_image_viewer")  
 
 #endif /* GLXLOCALISATIONSTRINGS_H_ */
--- a/inc/glxlog.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/inc/glxlog.h	Wed Aug 18 09:48:53 2010 +0300
@@ -70,7 +70,7 @@
     #else
         // put full file paths off for __FILE__ macro to make the log entries shorter
         #pragma fullpath_file off*/
-        #define GLX_DEBUG_STR( cat, str ) __FILE__ "(%d) : " ##cat " : " ##str
+        #define GLX_DEBUG_STR( cat, str ) __FILE__ "(%d) : " cat " : " str
 //    #endif
 
     /**
--- a/main/glxaiwservicehandler.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/main/glxaiwservicehandler.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -19,8 +19,6 @@
 #include <hbview.h>
 #include <hbmenu.h>
 #include <hbaction.h>
-#include <hbtoolbar.h>
-#include <hbstyleloader.h>
 #include <hbnotificationdialog.h>
 
 #include <QtDebug>
@@ -28,22 +26,16 @@
 #include <QDir>
 #include <QStringList>
 
-#include <glxmediamodel.h>
-#include <glxviewsfactory.h>
-#include <glxviewids.h>
-#include <glxview.h>
-#include <glxgridview.h>
-#include <glxmodelparm.h>
+#include <xqserviceutil.h>
+#include <xqaiwdeclplat.h>
+#include <xqappmgr.h>
+
+#include <glxmodelroles.h>
 #include <glxaiwservicehandler.h>
-#include <glxcollectionpluginall.hrh>
-#include <glxcollectionpluginimageviewer.hrh>
-#include <xqserviceutil.h>
 #include <glxstatemanager.h>
 #include <glximageviewermanager.h>
 #include <glxexternalutility.h>
 #include "glxlocalisationstrings.h"
-#include <xqaiwdeclplat.h>
-#include <xqappmgr.h>
 
 #define IMAGE_FETCHER_SERVICE_NAME QLatin1String("photos.com.nokia.symbian.IImageFetch")
 #define IMAGE_FETCHER_SERVICE_DEPINTERFACE_NAME QLatin1String("photos.Image")
@@ -57,11 +49,7 @@
 //
 GlxAiwServiceHandler::GlxAiwServiceHandler() :
     HbMainWindow(), 
-    mModel(NULL),
-    mView(NULL),
     mStateMgr(NULL),
-    mFSView(NULL),
-    mFetcherContextMenu(NULL),
     mFetcherService(NULL),
     mNSDIService(NULL),
     mDSDIService(NULL),
@@ -101,15 +89,7 @@
 //
 GlxAiwServiceHandler::~GlxAiwServiceHandler()
     {
-    HbStyleLoader::unregisterFilePath(":/data/photos.css");
-    if (mView)
-        {
-        removeView(mView);
-        }
     delete mStateMgr;
-    delete mView;
-	delete mFSView;
-    delete mModel;
     delete mFetcherService;
     delete mNSDIService;
     delete mDSDIService;
@@ -126,17 +106,17 @@
 // itemSelected()
 // ----------------------------------------------------------------------------
 //
-void GlxAiwServiceHandler::itemSelected(const QModelIndex & index)
+void GlxAiwServiceHandler::itemSelected(const QModelIndex & index,QAbstractItemModel & model)
     {
     qDebug() << "GlxFetcher::itemSelected";
-    
     if (mFetcherService && mFetcherService->isActive())
         {
         qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()";
-        QVariant variant = mModel->data(index, GlxUriRole);
+        QVariant variant = model.data(index, GlxUriRole);
         if (variant.isValid())
             {
             QString itemPath = variant.value<QString> ();
+            qDebug() << "GlxFetcher::itemSelected mFetcherService->isActive()::PATH = " << itemPath;
             QStringList list = (QStringList() << itemPath);
             mFetcherService->complete(list);
             }
@@ -145,7 +125,7 @@
     else if (mNSDIService && mNSDIService->isActive())
         {
     qDebug() << "GlxFetcher::itemSelected mNSDIService->isActive()";
-        QVariant variant = mModel->data(index, GlxUriRole);
+        QVariant variant = model.data(index, GlxUriRole);
         if (variant.isValid())
             {
             QString itemPath = variant.value<QString> ();
@@ -157,7 +137,7 @@
     else if (mDSDIService && mDSDIService->isActive())
         {
     qDebug() << "GlxFetcher::itemSelected mDSDIService->isActive()";
-        QVariant variant = mModel->data(index, GlxUriRole);
+        QVariant variant = model.data(index, GlxUriRole);
         if (variant.isValid())
             {
             QString itemPath = variant.value<QString> ();
@@ -168,96 +148,29 @@
     }	
 
 
-
 void GlxAiwServiceHandler::launchFetcher(QString viewTitle)
     {
     qDebug() << "GlxAiwServiceHandler::launchFetcher START";
     qApp->setApplicationName(viewTitle);
-    HbStyleLoader::registerFilePath(":/data/photos.css");
-    GlxModelParm modelParm(KGlxCollectionPluginAllImplementationUid, 0);
-    mModel = new GlxMediaModel(modelParm);
 
-    if ( this->orientation() == Qt::Horizontal ) {
-        mModel->setData(QModelIndex(), (int)GlxContextLsGrid, GlxContextRole );
-    }
-    else {
-        mModel->setData(QModelIndex(), (int)GlxContextPtGrid, GlxContextRole );
-    }    
+    mUtil = GlxExternalUtility::instance();
+    mUtil->setMainWindow(this);
 
-    mView = GlxViewsFactory::createView(GLX_GRIDVIEW_ID, this);
-    mView->activate();
-    mView->setModel(mModel);
-    addView(mView);
-    connect(mView, SIGNAL(gridItemSelected(const QModelIndex &)), this,
-            SLOT( itemSelected(const QModelIndex &)));
-			
-	connect ( mView, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ),
-			this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ),
-			Qt::QueuedConnection );
-	qDebug() << "GlxAiwServiceHandler::launchFetcher END";
+    mStateMgr = new GlxStateManager();
+	int err = connect(mStateMgr, SIGNAL(gridItemSelected(const QModelIndex &,QAbstractItemModel &)), this,
+            SLOT( itemSelected(const QModelIndex &,QAbstractItemModel &)));
+	qDebug() << "GlxAiwServiceHandler::launchFetcher err = "<< err;
+	
+    mStateMgr->launchFetcher();
+    return;
     }
 
-void GlxAiwServiceHandler::itemSpecificMenuTriggered(qint32 viewId,QPointF pos)
-{
-    mFetcherContextMenu = new HbMenu();
-	HbAction *action = mFetcherContextMenu->addAction(GLX_MENU_OPEN);
-	action->setObjectName( "Menu Open" );
-	connect(action, SIGNAL(triggered()), this, SLOT(openFSView()));
-	connect(this, SIGNAL(aboutToChangeOrientation ()), mFetcherContextMenu, SLOT(close()));
-	connect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) );
-	mFetcherContextMenu->setPreferredPos( pos );
-	mFetcherContextMenu->show();
-}
-
-void GlxAiwServiceHandler::closeContextMenu()
+void GlxAiwServiceHandler::launchImageViewer(QString viewTitle)
     {
-    disconnect( this, SIGNAL( aboutToChangeOrientation () ), mFetcherContextMenu, SLOT( close() ) );
-    disconnect( mFetcherContextMenu, SIGNAL( aboutToClose () ), this, SLOT( closeContextMenu() ) ); 
-    mFetcherContextMenu->deleteLater();
-    mFetcherContextMenu = NULL;
-    }
-	
-void GlxAiwServiceHandler::openFSView()
-	{
-    if ( this->orientation() == Qt::Horizontal ) {
-        mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
-    }
-    else {
-        mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
-    }    
-    HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT);
-    selectAction->setObjectName( "FS Select" );
-    
-	connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect()));
-    HbToolBar* toolBar = new HbToolBar();
-    toolBar->setOrientation( Qt::Horizontal );
-    toolBar->setVisible(true);
-	toolBar->addAction(selectAction);
-	
-	mModel->setData( QModelIndex(), FETCHER_S, GlxSubStateRole );
-    mFSView = GlxViewsFactory::createView(GLX_FULLSCREENVIEW_ID, this);
-    //ownership transfered to view
-	mFSView->setToolBar(toolBar);
-    mFSView->activate();
-    mFSView->setModel(mModel);
-    addView(mFSView);
-    setCurrentView(mFSView,false);
-	}
+    qApp->setApplicationName(viewTitle);
+    mUtil = GlxExternalUtility::instance();
+    mUtil->setMainWindow(this);
 
-
-void GlxAiwServiceHandler::handleFSSelect()
-	{
-	QModelIndex selectedIndex = mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0);
-	itemSelected(selectedIndex);
-    }
-
-void GlxAiwServiceHandler::launchImageViewer()
-    {
-    qApp->setApplicationName("Image Viewer");
-    GlxExternalUtility* util = GlxExternalUtility::instance();
-    util->setMainWindow(this);
-    delete mStateMgr;
-    mStateMgr = NULL;
     mStateMgr = new GlxStateManager();
     mStateMgr->launchFromExternal();
     if (mImageViewerService && mImageViewerService->asyncRequest())
@@ -288,6 +201,7 @@
 //
 GlxGetImageService::~GlxGetImageService()
     {
+    qDebug() << "GlxGetImageService::~GlxGetImageService()";
     }
 
 // ----------------------------------------------------------------------------
@@ -340,10 +254,7 @@
 void GlxGetImageService::fetch()
     {
     mImageRequestIndex = setCurrentRequestAsync();
-    QString title = requestInfo().info("WindowTitle").toString();
-    if(title.isNull()){
-        title = QString("Image Fetcher");
-    }
+    QString title =  GLX_TITLE;
     mServiceApp->launchFetcher(title);
     }
 
@@ -433,10 +344,7 @@
     {
     qDebug() << "GlxGetImageServiceNSDI::fetch START";
     mImageRequestIndex = setCurrentRequestAsync();
-    QString title = requestInfo().info("WindowTitle").toString();
-    if(title.isNull()){
-        title = QString("Image Fetcher");
-    }
+    QString title = GLX_TITLE;
     mServiceApp->launchFetcher(title);
     qDebug() << "GlxGetImageServiceNSDI::fetch END";
     }
@@ -516,10 +424,7 @@
     Q_UNUSED(filter)
     Q_UNUSED(flag)
     mImageRequestIndex = setCurrentRequestAsync();
-    QString title = requestInfo().info("WindowTitle").toString();
-    if(title.isNull()){
-        title = QString("Image Fetcher");
-    }
+    QString title  = GLX_TITLE;    
     mServiceApp->launchFetcher(title);
     }
 
@@ -582,7 +487,13 @@
         {
         mAsyncReqId = setCurrentRequestAsync();
         }
-    mServiceApp->launchImageViewer();
+
+    QString title = requestInfo().info("WindowTitle").toString();
+    if(title.isNull()){
+        title =GLX_IMAGE_VIEWER;
+    }
+    
+    mServiceApp->launchImageViewer(title);
     return true;
     }
 
@@ -599,7 +510,13 @@
         mImageViewerInstance->SetImageFileHandleL(file);
         sf.close();
         }
-    mServiceApp->launchImageViewer();
+
+    QString title = requestInfo().info("WindowTitle").toString();
+    if(title.isNull()){
+        title = GLX_IMAGE_VIEWER;
+    }
+    
+    mServiceApp->launchImageViewer(title);
     mAsyncRequest = !XQServiceUtil::isEmbedded();
 
     if (mAsyncRequest)
--- a/main/glxaiwservicehandler.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/main/glxaiwservicehandler.h	Wed Aug 18 09:48:53 2010 +0300
@@ -22,23 +22,20 @@
 #include <xqserviceprovider.h>
 #include <QStringList>
 #include <xqsharablefile.h>
+#include <QModelIndex>
+#include <QAbstractItemModel>
 
 //FORWARD CLASS DECLARATION
-class GlxView;
-class HbPushButton;
-class HbMenu;
-class QGraphicsGridLayout; 
 class GlxGetImageService;
-class GlxMediaModel;
-class QModelIndex;
 class GlxImageViewerService;
 class GlxStateManager;
 class CGlxImageViewerManager;
 class GlxGetImageServiceNSDI;
 class GlxGetImageServiceDSDI;
 
+class GlxExternalUtility;
 /**
- *  GlxAiwServiceHandler
+ * This is qthigway service handler class for all services provide by photos.
  * 
  */
 class GlxAiwServiceHandler: public HbMainWindow
@@ -54,57 +51,103 @@
      * Destructor.
      */
     ~GlxAiwServiceHandler();
+
+    /**
+     * launch image fetcher view
+     * @param viewTitle title for image fetcher
+     */
 	void launchFetcher(QString viewTitle);
-	void launchImageViewer();
+
+	/**
+     * launch image viewer 
+     * @param viewTitle title for image fetcher
+     */
+	void launchImageViewer(QString viewTitle);
+	
 public slots:  
-    void itemSelected(const QModelIndex &  index);    
+    /**
+     * This slot is called when image to be returned to fetcher 
+     * client is selected
+     * @param index index of the selected image
+     * @param model model for the current view where image is selected 
+     */
+    void itemSelected(const QModelIndex &  index,QAbstractItemModel & model);
+
+    /**
+     * This slot is called when service client is closed
+     * 
+     */
     void handleClientDisconnect();
-	void itemSpecificMenuTriggered(qint32,QPointF );
-    void openFSView();
-	void handleFSSelect();
-    void closeContextMenu();
     
 private:
-    GlxMediaModel *mModel;
-    GlxView* mView;
+    /// state manager for the services
 	GlxStateManager *mStateMgr;
-	GlxView* mFSView;
-    HbMenu *mFetcherContextMenu;
-
+	/// image fetcher service provider
     GlxGetImageService* mFetcherService;
+    /// image fetcher service provider with new service name and depricated interface name
     GlxGetImageServiceNSDI* mNSDIService;
+    /// image fetcher service provider with depricated name and depricated inaterface name
     GlxGetImageServiceDSDI* mDSDIService;
     GlxImageViewerService* mImageViewerService;
+    GlxExternalUtility *mUtil;
     };
 
 /**
- *  GlxGetImageService
+ *  GlxGetImageService : Image fetcher service provider
  * 
  */	
 class GlxGetImageService : public XQServiceProvider
 {
     Q_OBJECT
 public:
+    /**
+     * Constructor
+     */
     GlxGetImageService( GlxAiwServiceHandler *parent = 0 );
+
+    /**
+     * Destructor.
+     */
     ~GlxGetImageService();
+
+    /**
+     * check if service is active
+     */
     bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void complete( QStringList filesList);
     
-public slots://for QTHighway to notify provider about request
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
     void fetch();
     
-public slots://for provider to notify client
+    /**
+     * slot for service provider to notify client about error
+     */
     void fetchFailed( int errorCode );
     
 private:
+    /**
+     * called to complete qthighway service
+     * @param fileList list of Uri to be returned to client
+     */
     void doComplete( QStringList filesList);
     
 private:
+    /// current service request id
     int mImageRequestIndex;
+    /// service handler for all photos services
     GlxAiwServiceHandler* mServiceApp;
 };
 
 /**
+ * Class Description
  *  GlxGetImageServiceDSDI
  *  Service provide for new service and depricated interface
  */ 
@@ -112,23 +155,54 @@
 {
     Q_OBJECT
 public:
+    /**
+     * Constructor
+     */
     GlxGetImageServiceNSDI( GlxAiwServiceHandler *parent = 0 );
+    /**
+     * Destructor.
+     */
     ~GlxGetImageServiceNSDI();
+
+    /**
+     * check if service is active
+     */
     bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void complete( QStringList filesList);
     
-public slots://for QTHighway to notify provider about request
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
     void fetch( QVariantMap filter , QVariant flag );
+
+    /**
+     * slot for qthighway to notify provider about request
+     */
     void fetch();
     
-public slots://for provider to notify client
+public slots:
+    /**
+     * slot for service provider to notify client about error
+     */
     void fetchFailed( int errorCode );
     
 private:
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void doComplete( QStringList filesList);
     
 private:
+    /// current service request id
     int mImageRequestIndex;
+    /// service handler for all photos services
     GlxAiwServiceHandler* mServiceApp;
 };
 
@@ -140,45 +214,101 @@
 {
     Q_OBJECT
 public:
+    /**
+     * Constructor
+     */
     GlxGetImageServiceDSDI( GlxAiwServiceHandler *parent = 0 );
+    /**
+     * Destructor.
+     */
     ~GlxGetImageServiceDSDI();
+
+    /**
+     * check if service is active
+     */
     bool isActive();
+
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void complete( QStringList filesList);
     
-public slots://for QTHighway to notify provider about request
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
     void fetch( QVariantMap filter, QVariant flag);
     
-public slots://for provider to notify client
+public slots:
+    /**
+     * slot for service provider to notify client about error
+     */
     void fetchFailed( int errorCode );
     
 private:
+    /**
+     * called to complete fetch service and return to client
+     * @param fileList list of Uri to be returned to client 
+     */
     void doComplete( QStringList filesList);
     
 private:
+    /// current service request id
     int mImageRequestIndex;
+    /// service handler for all photos services
     GlxAiwServiceHandler* mServiceApp;
 };
 
-
+/**
+ * Image viewer service provider 
+ */
 class GlxImageViewerService : public XQServiceProvider
 {
     Q_OBJECT
-    public:
-        GlxImageViewerService( GlxAiwServiceHandler *parent = 0 );
-        ~GlxImageViewerService();
-        void complete(bool ok);
+public:
+    /**
+     * Constructor
+     */
+    GlxImageViewerService( GlxAiwServiceHandler *parent = 0 );
+
+    /**
+     * Destructor.
+     */
+    ~GlxImageViewerService();
+
+    /**
+     * compete request 
+     * @param ok true id success else false
+     */
+    void complete(bool ok);
 
-    public slots:
-        bool view(QString file);
-        bool view(XQSharableFile file);
-        bool asyncRequest() {return mAsyncRequest;}
+    /**
+     * check if request is aSync
+     * @return true if async else false
+     */
+    bool asyncRequest() {return mAsyncRequest;}
+
+public slots:
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    bool view(QString file);
 
-    private:
-        GlxAiwServiceHandler* mServiceApp;
-        int mAsyncReqId;
-        bool mRetValue;
-		bool mAsyncRequest;
-		CGlxImageViewerManager* mImageViewerInstance;
+    /**
+     * slot for qthighway to notify provider about request
+     */
+    bool view(XQSharableFile file);
+
+private:
+    /// service handler for all photos services
+    GlxAiwServiceHandler* mServiceApp;
+    /// current request id
+    int mAsyncReqId;
+    bool mRetValue;
+    bool mAsyncRequest;
+    /// image viewer manager instance to get info regarding file
+    CGlxImageViewerManager* mImageViewerInstance;
 };
 
     
--- a/photos.qrc	Tue Jul 06 14:16:16 2010 +0300
+++ b/photos.qrc	Wed Aug 18 09:48:53 2010 +0300
@@ -9,8 +9,6 @@
         <file>data/opacity_deactivate.fxml</file>
         <file>data/zoomin.fxml</file>
         <file>data/zoomout.fxml</file>
-        <file>data/view_flip_hide.fxml</file>
-        <file>data/view_flip_show.fxml</file>        
         <file>data/helix.fxml</file>
         <file>data/fadein.fxml</file>  
         <file>data/uphide.fxml</file>
@@ -18,25 +16,24 @@
         <file>data/fullscreentogrid.fxml</file>
         <file>data/gridtofullscreenhide.fxml</file>
         <file>data/gridtofullscreenshow.fxml</file>
-        <file>data/gridtoalbumlist.fxml</file>
-        <file>data/gridtoalbumlisthide.fxml</file>
-        <file>data/albumlisttogrid.fxml</file>
-        <file>data/albumlisttogridshow.fxml</file>
+        <file>data/rotatelandscape.fxml</file>
+        <file>data/rotateprotrait.fxml</file>
+        <file>data/rotatefslandscape.fxml</file>
+        <file>data/rotatefsprotrait.fxml</file>
         <file>data/photos.css</file>
-        <file>data/grid.docml</file>
         <file>data/listview.docml</file>
         <file>data/fullscreen.docml</file>
         <file>data/slideshow.docml</file>
-	<file>data/detailsview.docml</file>
-        <file>data/Image1.jpg</file>
-        <file>data/Image2.jpg</file>
-        <file>data/Image3.jpg</file>
-        <file>data/Image4.jpg</file>
-        <file>data/Image5.jpg</file>
-        <file>data/Image6.jpg</file>
-        <file>data/Image7.jpg</file>
-        <file>data/Image8.jpg</file>
-        <file>data/Image9.jpg</file>
-        <file>data/Image10.jpg</file>
+        <file>data/detailsview.docml</file>
+        <file>data/Wait/qgn_graf_ring_wait_01.svg</file>
+        <file>data/Wait/qgn_graf_ring_wait_02.svg</file>
+        <file>data/Wait/qgn_graf_ring_wait_03.svg</file>
+        <file>data/Wait/qgn_graf_ring_wait_04.svg</file>
+        <file>data/Wait/qgn_graf_ring_wait_05.svg</file>
+        <file>data/Wait/qgn_graf_ring_wait_06.svg</file>
+        <file>data/Wait/qgn_graf_ring_wait_07.svg</file>
+        <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>
     </qresource>
 </RCC>
--- a/rom/photos.iby	Tue Jul 06 14:16:16 2010 +0300
+++ b/rom/photos.iby	Wed Aug 18 09:48:53 2010 +0300
@@ -79,15 +79,13 @@
 file=ABI_DIR/BUILD_DIR/glxviews.dll                        	SHARED_LIB_DIR/glxviews.dll
 file=ABI_DIR/BUILD_DIR/glxviewutilities.dll                	SHARED_LIB_DIR/glxviewutilities.dll
 file=ABI_DIR/BUILD_DIR/glxzoomwidget.dll                	SHARED_LIB_DIR/glxzoomwidget.dll
-file=ABI_DIR/BUILD_DIR/detailsnamelabel.dll                	SHARED_LIB_DIR/detailsnamelabel.dll
-file=ABI_DIR/BUILD_DIR/detailsnamelabelplugin.dll          	SHARED_LIB_DIR/detailsnamelabelplugin.dll
-file=ABI_DIR/BUILD_DIR/detailsdescriptionedit.dll          SHARED_LIB_DIR/detailsdescriptionedit.dll
-file=ABI_DIR/BUILD_DIR/detailsdescriptioneditplugin.dll    SHARED_LIB_DIR/detailsdescriptioneditplugin.dll
+file=ABI_DIR/BUILD_DIR/glxdetailscustomwidgets.dll         	SHARED_LIB_DIR/glxdetailscustomwidgets.dll
+file=ABI_DIR/BUILD_DIR/glxdetailscustomplugin.dll          	SHARED_LIB_DIR/glxdetailscustomplugin.dll
+
 
 
 S60_APP_EXE(photos)
 data=/epoc32/data/z/private/10003a3f/import/apps/photos_reg.rsc         private/10003a3f/import/apps/photos_reg.rsc
-data=DATAZ_/APP_RESOURCE_DIR/photos.mif                     			APP_RESOURCE_DIR/photos.mif  
 data=/epoc32/data/Z/private/10202BE9/20007194.txt						private/10202BE9/20007194.txt
 data=/epoc32/data/Z/private/10202BE9/20007193.txt						private/10202BE9/20007193.txt
 data=/epoc32/data/z/system/install/photos_stub.sis        				/system/install/photos_stub.sis
--- a/tvout/bwins/glxtvoutwrapperu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/bwins/glxtvoutwrapperu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -5,8 +5,8 @@
 	??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)
-	?setModel@GlxTvOutWrapper@@QAEXPAVQAbstractItemModel@@_N@Z @ 7 NONAME ; void GlxTvOutWrapper::setModel(class QAbstractItemModel *, bool)
-	?setToCloningMode@GlxTvOutWrapper@@QAEXXZ @ 8 NONAME ; void GlxTvOutWrapper::setToCloningMode(void)
-	?setImagetoHDMI@GlxTvOutWrapper@@QAEXXZ @ 9 NONAME ; void GlxTvOutWrapper::setImagetoHDMI(void)
-	?setToNativeMode@GlxTvOutWrapper@@QAEXXZ @ 10 NONAME ; void GlxTvOutWrapper::setToNativeMode(void)
+	?setToCloningMode@GlxTvOutWrapper@@QAEXXZ @ 7 NONAME ; void GlxTvOutWrapper::setToCloningMode(void)
+	?setImagetoHDMI@GlxTvOutWrapper@@QAEXXZ @ 8 NONAME ; void GlxTvOutWrapper::setImagetoHDMI(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	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/eabi/glxtvoutwrapperu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -6,7 +6,7 @@
 	_ZN15GlxTvOutWrapper15setToNativeModeEv @ 5 NONAME
 	_ZN15GlxTvOutWrapper16itemNotSupportedEv @ 6 NONAME
 	_ZN15GlxTvOutWrapper16setToCloningModeEv @ 7 NONAME
-	_ZN15GlxTvOutWrapper8setModelEP18QAbstractItemModelb @ 8 NONAME
+	_ZN15GlxTvOutWrapper8setModelEP18QAbstractItemModel5QSizeb @ 8 NONAME
 	_ZN15GlxTvOutWrapperC1Ev @ 9 NONAME
 	_ZN15GlxTvOutWrapperC2Ev @ 10 NONAME
 	_ZN15GlxTvOutWrapperD1Ev @ 11 NONAME
--- a/tvout/tvoutengine/bwins/glxtvoutu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/bwins/glxtvoutu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -1,16 +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@H@Z @ 3 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(int)
+	?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)
-	?IsConnected@CGlxTv@@QBEHXZ @ 10 NONAME ; int CGlxTv::IsConnected(void) const
-	?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 11 NONAME ; void CGlxHdmiController::ItemNotSupported(void)
-	?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 12 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &)
+	?NewL@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)
--- a/tvout/tvoutengine/eabi/glxtvoutu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/eabi/glxtvoutu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -5,7 +5,7 @@
 	_ZN18CGlxHdmiController16ItemNotSupportedEv @ 4 NONAME
 	_ZN18CGlxHdmiController18ShiftToCloningModeEv @ 5 NONAME
 	_ZN18CGlxHdmiController18ShiftToPostingModeEv @ 6 NONAME
-	_ZN18CGlxHdmiController4NewLEi @ 7 NONAME
+	_ZN18CGlxHdmiController4NewLE5TRecti @ 7 NONAME
 	_ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 8 NONAME
 	_ZN18CGlxHdmiControllerD0Ev @ 9 NONAME
 	_ZN18CGlxHdmiControllerD1Ev @ 10 NONAME
--- a/tvout/tvoutengine/group/glxtvout.mmp	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/group/glxtvout.mmp	Wed Aug 18 09:48:53 2010 +0300
@@ -53,7 +53,6 @@
 LIBRARY         cone.lib                        // for CCoeEnv
 LIBRARY         centralrepository.lib           // for Central Repository
 LIBRARY         accclient.lib                   // for RAccessoryServer 
-LIBRARY         alfclient.lib           		// For Alfred Hitchcock framework
 LIBRARY			fbscli.lib 
 LIBRARY         gdi.lib  			
 LIBRARY         surfaceupdateclient.lib 		// surface update client
@@ -61,11 +60,12 @@
 LIBRARY         imageconversion.lib				// ICL 
 LIBRARY 		efsrv.lib
 LIBRARY         bitgdi.lib 
-LIBRARY                 apgrfx.lib // 
+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	
+LIBRARY		    alfdecoderserverclient.lib
+LIBRARY			AccPolicy.lib //For RAccessoryConnection status ID's	
+
 // Other Dependency Libraries
 #ifdef __MARM
 LIBRARY 		GSServerEngine.lib  // FOr AspectRatio
--- a/tvout/tvoutengine/inc/glxactivecallback.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/inc/glxactivecallback.h	Wed Aug 18 09:48:53 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:    Handles & propogates UI state change notifications.
+* Description:    
 *
 */
 
@@ -31,12 +31,12 @@
                                                                   iCallBack(aCallBack) {};
         CGlxActiveCallBack();
     	
-    public: // Functions from base classes
+    public: /// Functions CActive
 		void SetActive() { CActive::SetActive();}; 
 		void RunL() { iCallBack.CallBack();};
  		void DoCancel() {};
  		
-   	private: // Data
+   	private: /// Data
 		TCallBack iCallBack;
     };
 
--- a/tvout/tvoutengine/inc/glxactivedecoder.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/inc/glxactivedecoder.h	Wed Aug 18 09:48:53 2010 +0300
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:    
+* Description:    This is the decoder class used to decode Images to HDMI quality.
 *
 */
 
@@ -24,44 +24,55 @@
 #include <imageconversion.h>
 #include "glxhdmisurfaceupdater.h"
 
+// Fwd decleration
 class CImageDecoder;
-// CLASS DECLARATION
+
+/**
+ * Class Description
+ * This is the decoder class used to decode Images to HDMI quality.
+ * 
+ * Clients should create an instance of this class from CGlxHdmiSurfaceUpdater , with an 
+ * instance of it and call ConvertImageL() with approprriate parameters
+ */        
 
 class CGlxHdmiDecoderAO : public CActive
     {
 public:
-    /*
+    
+    /**
      * NewL()
-     * @Param1 CGlxHdmiSurfaceUpdater
+     * @param CGlxHdmiSurfaceUpdater
+     * @return CGlxHdmiDecoderAO object
      */
     static CGlxHdmiDecoderAO* NewL(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater);
     
-    /*
+    /**
      * Destructor
      */
     ~CGlxHdmiDecoderAO();
     
-    /*
+    /**
      * ConvertImageL() 
      * This calls the asyncronous service request to ICL convert
-     * @param1 - Destination Bitmap
-     * @param2 - Image decoder 
+     * @param - Destination Bitmap
+     * @param - Image decoder 
      */
     void ConvertImageL(CFbsBitmap& iBitmap,CImageDecoder* aDecoder);
     
-protected:
-    // from CActive
+protected:/// from CActive
     void RunL();
     void DoCancel();
     
 private:
-    /*
+    /**
      * Constructor
      */
     CGlxHdmiDecoderAO(CGlxHdmiSurfaceUpdater* aHdmiSurfaceUpdater);
 
 private:
-    CGlxHdmiSurfaceUpdater* iHdmiSurfaceUpdater; // not owned
+    /// not owned
+    CGlxHdmiSurfaceUpdater* iHdmiSurfaceUpdater; 
+    /// Image decoder instance
     CImageDecoder* iDecoder;
     };
 
--- a/tvout/tvoutengine/inc/glxhdmicontainer.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/inc/glxhdmicontainer.h	Wed Aug 18 09:48:53 2010 +0300
@@ -21,6 +21,11 @@
 #include <coecntrl.h>
 #include "glxhdmisurfaceupdater.h"
 
+/**
+ * Class Description
+ * A class that creates a CCoeControl window for Screen 1 with screendevice
+ * used 
+ */        
 class CGlxHdmiContainer : public CCoeControl, public MGlxGenCallback
     {
 public:
--- a/tvout/tvoutengine/inc/glxhdmicontroller.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/inc/glxhdmicontroller.h	Wed Aug 18 09:48:53 2010 +0300
@@ -1,4 +1,4 @@
-/*
+/**
 * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 
 * All rights reserved.
 * This component and the accompanying materials are made available
@@ -11,119 +11,157 @@
 *
 * Contributors:
 *
-* Description:    Handles & propogates UI state change notifications.
+* Description:    Creates the HDMI engine and provides functionality 
+*               for all its usage and needs through simple API's
 *
 */
 
+
 #ifndef GLXHDMICONTROLLER_H_
 #define GLXHDMICONTROLLER_H_
 
 // Internal includes
-
 class CGlxHdmiContainer;
 class CGlxHdmiSurfaceUpdater;
 
-/*
- * This class will be called from FS and Slideshow for its requirements 
- */
+/**
+ * Class Description
+ * This is the entry point of the HDMI engine.
+ * It Promisses to provide all HDMI functionality with simple API calls.
+ * 
+ * To Show an image on TV, create an instance of this object and call 
+ * CGlxHdmiController::SetImageL() with appropriate parameters.
+ * 
+ * To Shift from native to clone and vice versa, use ShiftToPostingMode() and 
+ * ShiftToCloningMode() respectively 
+ * 
+ * For Not supported items, make sure to call ItemNotSupported() API
+ */        
+
 class CGlxHdmiController : public CBase
     {
 public:
-    /*
+    /**
      * NewLC 
-     * @param1 - Image file path default to NULL
+     * @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(TBool aEfectsOn = EFalse);
+    IMPORT_C static CGlxHdmiController* NewL(TRect aRect ,TBool aEfectsOn = EFalse);
 
-    /*
+    /**
      * Destructor
      */
     IMPORT_C ~CGlxHdmiController();
     
-    /*
+    /**
      * Update Image
-     * @param1 - Image file path
+     * @param aImageFile  file path
+     * @param aFsBitmap Fullscreen bitmap, make sure to send a grid bitmap if FS bitmap not present
+     * @param aStore An internal parameter to store the image path or not, clients neednot use this. 
      */
     IMPORT_C void SetImageL(const TDesC& aImageFile, CFbsBitmap* aFsBitmap = NULL, 
             TBool aStore = ETrue);
 
-    /*
+    /**
      * To intimate that the item is not supported.  
      */
     IMPORT_C void ItemNotSupported();
     
-    /*
+    /**
      * Activating zoom in posting mode 
+     * @param aAutoZoomOut if it should auto zoom out
      */
     IMPORT_C void ActivateZoom(TBool aAutoZoomOut);
-    /*
+    
+    /**
      * Deactivating zoom in posting mode 
      */
     IMPORT_C void DeactivateZoom();
     
-    /*
+    /**
      * ShiftToCloningMode
+     * Shifts the TV UI to cloning mode if it is posting
+     * else does nothing
      */
     IMPORT_C void ShiftToCloningMode();
     
-    /*
+    /**
      * ShiftToPostingMode
+     * Shifts the TV UI to posting mode if cloning mode, 
+     * else does nothing
      */
     IMPORT_C void ShiftToPostingMode();
 
-    /*
+    /**
      * Fadeing of the Surface
-     * @param1 ETrue - FadeIn ( as in gaining brightness )
-     *         EFalse - FadeOut ( as in loosing brightness ) 
+     * @param aFadeInOut ETrue - FadeIn ( as in gaining brightness )
+     *                   EFalse - FadeOut ( as in loosing brightness ) 
      */
     IMPORT_C void FadeSurface(TBool aFadeInOut);
     
-private:
-    /*
+private:/// class private method
+    /**
      * Constructor
+     * @param aRect Rect size 
+     * @param aEfectsOn if effects needs to be on(used in Slideshow only)
      */
-    CGlxHdmiController(TBool aEfectsOn);
+    CGlxHdmiController(TRect aRect ,TBool aEfectsOn);
     
-    /*
+    /**
      * ConstructL 
      */
     void ConstructL();
     
-    /*
+    /**
      * Create the Hdmi Container 
      */
     void CreateHdmiContainerL();
     
-    /*
+    /**
      * Create surface updater and update background surface 
-     * @param1 - Image file     
+     * @param aImageFile Image file     
      */
     void CreateSurfaceUpdaterL(const TDesC& aImageFile);
     
-    /*
+    /**
      * To Destroy the surface updater if present
      */
     void DestroySurfaceUpdater();
     
-    /*
+    /**
      * Detroy the container 
      */
     void DestroyContainer();
 
-    /*
+    /**
      * Stores the Image File name
-     * @param1 - Image file
+     * @param aImageFile Image file path
+     * @param aFsBitmap Fullscreen Bitmap
      */
     void StoreImageInfoL(const TDesC& aImageFile, CFbsBitmap* aFsBitmap);
 
 private:
-    CFbsBitmap* iFsBitmap;
-    HBufC*  iStoredImagePath;
-    
+    /// Fullscreen Bitmap
+    CFbsBitmap*         iFsBitmap;
+    /**
+     * Stored image path 
+     */
+    HBufC*              iStoredImagePath;
+    /**
+     * Hdmi container
+     */
     CGlxHdmiContainer*      iHdmiContainer;
+    /// Surface updater instance
     CGlxHdmiSurfaceUpdater* iSurfaceUpdater;
-    TBool   iIsImageSupported;          // Flag to see if Image is supported
-    TBool   iEffectsOn;
+    /// Rect
+    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	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/inc/glxhdmisurfaceupdater.h	Wed Aug 18 09:48:53 2010 +0300
@@ -39,229 +39,288 @@
     virtual void DoGenCallback() = 0;
     };
 
+/**
+ * Class Description
+ * This is the main class which processes images to the surface
+ *
+ */        
+
 class CGlxHdmiSurfaceUpdater: public CBase
     {
 public:
-    /*
+    /**
      * NewL
+     * @param aWindow RWindow
+     * @param aImageFile Image File path
+     * @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);
 
-    /*
+    /**
      * Destructor
      */
     ~CGlxHdmiSurfaceUpdater();
 
 public:
-    /*
+    /**
      * This is to cancel the active object from decoding 
      */
     void HandleRunL(TRequestStatus& aStatus);
 
-    /*
+    /**
      * This updates the new image.
+     * @param aImageFile image path
+     * @param aFsBitmap Fullscreen Bitmap
+     * 
+     * NOTE : if FS not available,make sure to send grid or default bitmap
+     * else it would appear white screen on TV 
      */
     void UpdateNewImageL(const TDesC& aImageFile,CFbsBitmap* aFsBitmap);
 
-    /*
+    /**
      * Activate Zoom 
+     * @param aAutoZoomOut if it should auto zoom out
      */
     void ActivateZoom(TBool aAutoZoomOut);
-    /*
+    
+    /**
      * Deactivate Zoom 
      */
     void DeactivateZoom();
 
-    /*
-	ShiftToCloningMOde
+    /**
+     * ShiftToCloningMOde
      */
     void ShiftToCloningMode();
 
-    /*
-	ShiftToPostingMode
+    /**
+     * ShiftToPostingMode
      */
     void ShiftToPostingMode();
 
-    /*
+    /**
      * Fadeing of the Surface
-     * @param1 ETrue - FadeIn ( as in gaining brightness )
-     *         EFalse - FadeOut ( as in loosing brightness ) 
+     * @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);
 
-    /*
-     * ConstructL()
+    /**
+     * ConstructL
+     * @param aFsBitmap Fullscreen Bitmap
+     * @param aImageFile image file path
      */
     void ConstructL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile);   
 
-    /*
+    /**
      * Create a New surface with given size
      */
     void CreateSurfaceL();
-    /*
-     * @param1 size 
+
+    /**
+     * MapSurfaceL
      */
     void MapSurfaceL();
 
-    /*
+    /**
      * This fundtion wont be called , could be used if double buffering is planned in future
      * to start the second decoder AO and update the surface with a new session. 
      */
     static TInt SurfBuffer0Ready(TAny* aObject);    
     
-    /*
+    /**
      * Call a refresh on the screen  
      */
     void Refresh();
 
-    /*
+    /**
      * Dump the buffer on to the surface stride 
      */
     void SwapBuffers();
 
-    /*
+    /**
      * Release contents 
      */
     void ReleaseContent();
 
-    /*
+    /**
      * Create bitmap  
      */
     void CreateBitmapL();
 
-    /*
+    /**
      * Create an image decoder with given file
-     * @param1 - Image file 
      */
     void CreateImageDecoderL();
 
-    /*
+    /**
      * Creating all enablers for HDMI
-     * @param1 if creating a surface is required, 
-     * by default it is not required
+     * @param aCreateSurface if creating a surface is required, 
+     *                       by default it is not required
      */
     void CreateHdmiL(TBool aCreateSurface = ETrue);
 
-    /*
+    /**
      * Zoom in our out depending on parameter 
+     * @param aZoom if should be zoomed
      */
     void Zoom(TBool aZoom);
 
-    /*
+    /**
      * This if for zoom timer timeout
      */
     static TInt TimeOut(TAny* aSelf);
     
-    /*
+    /**
      * Animation time out timer
      */
     static TInt AnimationTimeOut(TAny* aSelf);
     
-    /*
+    /**
      * ModifySurface positions of the surface to be displayed on screen
      */
     void ModifySurfacePostion();
 
-    /*
+    /**
      * Process the image for TV 
      */
     void ProcessTvImage();
 
-    /*
+    /**
      * Shows the FS thumbnail first before showing 
      * Decoded HD image 
      */
     void ShowFsThumbnailL();
 
-    /*
+    /**
      * Recalculate the size for png/bmp as decoder fails to 
      * decode for desired size 
+     * @return the Size of the desired image supported by the decoder 
      */
     TSize ReCalculateSizeL();
 
-    /*
+    /**
      * If the image format is non jpeg, then we need to calculate as per
      * reduction factor and reduced size as what the decoder is going to return us
      * This function returns if that needs to be done. 
+     * 
+     * @return check the image mime type and return True if the recaulation of size needs
+     * to be done else return false 
      */
     TBool DoesMimeTypeNeedsRecalculateL();
 
-    /*
+    /**
      * If the image format is non jpeg, then we need to scale the bitmap after it is
-     * decoded, as the return value would not fit the screen 
+     * decoded, as the return value would not fit the screen
+     * @param  
      */
     void ScaleDecodedBitmapL(TInt aBitmapIndex);
 
-    /*
+    /**
      * InitiateHDMI
+     * @param aFsBitmap Fullscreen Bitmap  
+     * @param aImageFile Image path
      */
     void InitiateHdmiL(CFbsBitmap* aFsBitmap,const TDesC& aImageFile);
 
-    /*
+    /**
      * Animate untill loop is complete 
      */
     void Animate();
 
 private:
-    RWindow*            iWindow;                    // window object
-    CFbsBitmap*         iFsBitmap;                  // FS bitmap
-    MGlxGenCallback*    iCallBack;                  // callback to the HdmiContainer window
-    HBufC*              iImagePath;                 // To store the image uri path
+    /// window object
+    RWindow*            iWindow;                    
+    /// FS bitmap
+    CFbsBitmap*         iFsBitmap;                  
+    /// callback to the HdmiContainer window
+    MGlxGenCallback*    iCallBack;                  
+    /// To store the image uri path
+    HBufC*              iImagePath;                 
     TBool               iEffectsOn;
 
-    TBool       iShwFsThumbnail;                    // If the Fs thumbnail is to be shown before decoding HD images
-    TBool       iIsNonJpeg;                         // If the item is non jpeg
-    TBool       iFadeIn;                            // If FadeIn or Out for only SLideshow animation
+    /// If the Fs thumbnail is to be shown before decoding HD images
+    TBool       iShwFsThumbnail;                    
+    /// If the item is non jpeg
+    TBool       iIsNonJpeg;                         
+    /// If FadeIn or Out for only SLideshow animation
+    TBool       iFadeIn;                            
     
-    // GCE Surface
+    /// GCE Surface
     RSurfaceUpdateSession iSurfUpdateSession;
-    TSurfaceId              iSurfId;                // TSurfaceId                             
-    RSurfaceManager*        iSurfManager;           // RSurfaceManager
-    RChunk*                 iSurfChunk;             // RChunk
-    TInt                    iSurfaceStride;         // surface stride
-    TSurfaceConfiguration   iConfig;                // surface configuration for zoom
+    /// TSurfaceId
+    TSurfaceId              iSurfId;                                             
+    /// RSurfaceManager
+    RSurfaceManager*        iSurfManager;           
+    /// RChunk
+    RChunk*                 iSurfChunk;             
+    /// surface stride
+    TInt                    iSurfaceStride;         
+    /// surface configuration for zoom
+    TSurfaceConfiguration   iConfig;                
 
-    CFbsBitmap*         iDecodedBitmap[3];          // Array of Decoded bitmaps of the focussed image
-                                                    // 1 - contains FS/Grid Thumbnail, 2- HD image, 
-                                                    // (optional)3-Scaled png/bmp images
+    /** Array of Decoded bitmaps of the focussed image
+     * 1 - contains FS/Grid Thumbnail, 2- HD image,
+     * (optional)3-Scaled png/bmp images 
+     */
+    CFbsBitmap*         iDecodedBitmap[3];         
 
-    void*               iSurfBuffer;               // Surface buffer
-    CGlxActiveCallBack* iSurfBufferAO;             // Surface buffer AO 
+    /// Surface buffer
+    void*               iSurfBuffer;               
+    /// Surface buffer AO
+    CGlxActiveCallBack* iSurfBufferAO;              
 
     CAlfCompositionSource* ialfCompositionSurface;
 
-    //ICL
-    CGlxHdmiDecoderAO*  iGlxDecoderAO;              // Internal Image decoder AO              
-    CImageDecoder*      iImageDecoder;              // Image Decoder
-    RFs                 iFsSession;                 // RFs
+    /// Internal Image decoder AO
+    CGlxHdmiDecoderAO*  iGlxDecoderAO;                            
+    /// Image Decoder
+    CImageDecoder*      iImageDecoder;              
+    /// RFs
+    RFs                 iFsSession;                 
 
-    TPoint      iLeftCornerForZoom;                 //  
-    CPeriodic*  iTimer;                             // Timer for Zoom 
-    CPeriodic*  iAnimTimer;                         // Timer for Animation
+    TPoint      iLeftCornerForZoom;                   
+    /// Timer for Zoom
+    CPeriodic*  iTimer;                              
+    /// Timer for Animation
+    CPeriodic*  iAnimTimer;                         
     TInt        iAnimCounter;
 
-    // Various objects to store sizes and count
-    TSize       iTvScreenSize;                      // to store the Tv screen size
-    TSize       iTargetBitmapSize;                  // To Store the target bitmap size to display(as per Aspect Ratio)
+    /// Various objects to store sizes and count
+    /// to store the Tv screen size
+    TSize       iTvScreenSize;                      
+    /// To Store the target bitmap size to display(as per Aspect Ratio)
+    TSize       iTargetBitmapSize;                  
     
-    // Various flags to store values
-    TBool       iZoom;                              // Is zoomed
-    TBool       iBitmapReady;                       // If the bitmap is decoded and ready
-    TBool       iAutoZoomOut;                       // If the UI has asked for auto zoomout
-    TBool       iSurfSessionConnected;              // If surface session is connected
+    /// Various flags to store values
+    /// Is zoomed
+    TBool       iZoom;                              
+    /// If the bitmap is decoded and ready
+    TBool       iBitmapReady;                       
+    /// If the UI has asked for auto zoomout
+    TBool       iAutoZoomOut;                       
+    /// If surface session is connected
+    TBool       iSurfSessionConnected;            
+    /// If it is set to shift to cloning mode
 	TBool       iShiftToCloning;
 #ifdef _DEBUG
     TTime iStartTime;
     TTime iStopTime;
 #endif   
-	// The bitmap index in the array of bitmaps
+	/// The bitmap index in the array of bitmaps
     enum {
         EFSBitmapIndex = 0,
         EJpgDecodedBitmapIndex,
--- a/tvout/tvoutengine/inc/glxtv.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/inc/glxtv.h	Wed Aug 18 09:48:53 2010 +0300
@@ -68,7 +68,6 @@
 /**
  * Class Description
  * A class that handles and propagates UI change notifications
- * @author Loughlin
  */        
 NONSHARABLE_CLASS (CGlxTv) : public CBase,
                              public MGlxWindowVisibilityObserver,
@@ -94,12 +93,12 @@
      */
     CGlxTv(MGlxTvObserver& aTvObserver);
     
-    /*
+    /**
      * Symbian second stage construction
      */
     void ConstructL(); 
    
-public: // class public method   
+public: /// class public method   
    
     /**
      * Get the current screen size
@@ -158,30 +157,30 @@
     void StopMonitoringEnvironment();
     
 private: // class member data    
-    // Not Owned: The TV out observer 
+    /// Not Owned: The TV out observer 
     MGlxTvObserver& iTvObserver;
 
-    // Owned: The Window visibility monitor
+    /// Owned: The Window visibility monitor
     CGlxWindowVisibilityMonitor* iWindowVisibilityMonitor;
 
-    // Owned: The TV connection monitor
+    /// Owned: The TV connection monitor
     CGlxTvConnectionMonitor* iTvConnectionMonitor;
  
-    // Size of the TV Out display size
+    /// Size of the TV Out display size
     TSize iSzInPixels;
     
-    // Owned: The central repository where TV display ratio is held.
+    /// Owned: The central repository where TV display ratio is held.
     CRepository* iCenRep;
     
-     // The implementation of the class, hidden from clients
+    /// The implementation of the class, hidden from clients
 	class CGlxTvOutCenRepMonitor;
 	
-	// Owned: Monitoring class for Tv Ratio Values
+	/// Owned: Monitoring class for Tv Ratio Values
 	CGlxTvOutCenRepMonitor* iTvDisplayAspectRatioMonitor; 
 	
-	// The TV aspect ratio
+	/// The TV aspect ratio
 	TInt iAspectRatio;
     };
     
     
-#endif // __GLXTV_H__
\ No newline at end of file
+#endif // __GLXTV_H__
--- a/tvout/tvoutengine/inc/glxtvconnectionmonitor.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/inc/glxtvconnectionmonitor.h	Wed Aug 18 09:48:53 2010 +0300
@@ -16,11 +16,6 @@
 */
 
 
-
-/**
- * @internal reviewed 24/08/2007 by D Holland
- */
-
 #ifndef __GLX_WNDWCONNECTION_MONITOR_H__
 #define __GLX_WNDWCONNECTION_MONITOR_H__
 
@@ -40,7 +35,6 @@
 /**
  * Class Description
  * An Active object derived class is used to monitor the TV out connection
- * @author Loughlin
  */
 NONSHARABLE_CLASS(CGlxTvConnectionMonitor) : public CActive
     {
@@ -65,20 +59,20 @@
     CGlxTvConnectionMonitor(
                         MGlxTvConnectionObserver& aConnectionObserver);
 
-    /*
+    /**
      * Symbian second stage construction
      */
     void ConstructL();
 
 public: // class member functions
 
-    /*
+    /**
      * Provides the caller with the current TV connetion state
      * @return The TV connection state
      */
     TBool IsConnected() const;
 
-    /*
+    /**
      * Provides the caller with the current HDMI connetion state
      * @return The HDMI connection state
      */
@@ -120,30 +114,30 @@
 
 private: // class member data
 
-    // Not owned: TV connection observer
+    /// Not owned: TV connection observer
     MGlxTvConnectionObserver& iConnectionObserver;
 
-    // TVout The Connection state
+    /// TVout The Connection state
     TBool iIsTvOutConnected;
 
-    // TVout The Connection state
+    /// TVout The Connection state
     TBool iIsHDMIConnected;
 
-    // Headset The Connection state
+    /// Headset The Connection state
     TBool iIsHeadSetConnected;
 
-    // The (external device) Accessory Server
+    /// The (external device) Accessory Server
     RAccessoryServer iTvAccServer;
 
-    // Accessory mode
+    /// Accessory mode
     RAccessoryMode iTvAccMode;
 
-    // Accessory Connection - details the type of accessory
+    /// Accessory Connection - details the type of accessory
     RAccessoryConnection iTvAccCon;
 
-    //Class gives Generic ID
+    ///Class gives Generic ID
     TAccPolGenericIDArray iCurrentAccArray;
     };
 
 
-#endif // __GLX_WNDWCONNECTION_MONITOR_H__
\ No newline at end of file
+#endif // __GLX_WNDWCONNECTION_MONITOR_H__
--- a/tvout/tvoutengine/inc/glxwindowvisibilitymonitor.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/inc/glxwindowvisibilitymonitor.h	Wed Aug 18 09:48:53 2010 +0300
@@ -16,11 +16,6 @@
 */
 
 
-
-/**
- * @internal reviewed 24/08/2007 by D Holland
- */
-
 #ifndef __GLXWINVISIBILITYMONITOR_H__
 #define __GLXWINVISIBILITYMONITOR_H__
 
@@ -33,12 +28,10 @@
 class MGlxWindowVisibilityObserver;       
 
 
-
 /**
  * Class Description
  * An Active object derived class is used to monitor the visibility of the
  * TV out window.
- * @author Loughlin
  */        
 NONSHARABLE_CLASS(CGlxWindowVisibilityMonitor) : public CBase, 
                                                  public MAknWsEventObserver
@@ -74,9 +67,9 @@
      */
     void ConstructL(); 
 
-public: // class member functions
+public: /// class member functions
 
-    /*
+    /**
      * Provides the caller with the current visible state
      * @return ETrue if the window is visible or false otherwise
      */
@@ -86,14 +79,14 @@
 
     void HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination );     
 
-private: // class member data
-    // Not ownded: The Akn event monitor
+private: /// class member data
+    /// Not ownded: The Akn event monitor
     CAknWsEventMonitor* iAknEventMonitor;
     
-    // Not owned: Window visibility observer
+    /// Not owned: Window visibility observer
     MGlxWindowVisibilityObserver& iVisibilityObserver;
 
-    // The visible state 
+    /// The visible state 
     TBool iIsVisible; 
     };
        
--- a/tvout/tvoutengine/src/glxhdmicontroller.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/src/glxhdmicontroller.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -16,7 +16,6 @@
 */
 
 #include <w32std.h>
-#include <alf/alfutil.h>
 #include <glxtracer.h>
 #include <glxlog.h>
 
@@ -28,10 +27,10 @@
 // -----------------------------------------------------------------------------
 // NewLC
 // -----------------------------------------------------------------------------
-EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(TBool aEfectsOn)
+EXPORT_C CGlxHdmiController* CGlxHdmiController::NewL(TRect aRect ,TBool aEfectsOn)
     {
     TRACER("CGlxHdmiController* CGlxHdmiController::NewL()");
-    CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aEfectsOn);
+    CGlxHdmiController* self = new (ELeave) CGlxHdmiController(aRect,aEfectsOn);
     CleanupStack::PushL(self);
     self->ConstructL();
     CleanupStack::Pop(self);
@@ -183,9 +182,10 @@
 // -----------------------------------------------------------------------------
 // Constructor
 // -----------------------------------------------------------------------------
-CGlxHdmiController::CGlxHdmiController(TBool aEffectsOn):
+CGlxHdmiController::CGlxHdmiController(TRect aRect,TBool aEffectsOn):
             iFsBitmap(NULL),
             iStoredImagePath(NULL),
+            iRect(aRect),
             iEffectsOn(aEffectsOn)
     {
     TRACER("CGlxHdmiController::CGlxHdmiController()");
@@ -233,8 +233,7 @@
 void CGlxHdmiController::CreateHdmiContainerL()
     {
     TRACER("CGlxHdmiController::CreateHdmiContainer()");
-    TRect rect = AlfUtil::ScreenSize();
-    iHdmiContainer = CGlxHdmiContainer::NewL(rect);
+    iHdmiContainer = CGlxHdmiContainer::NewL(iRect);
     }
 
 // -----------------------------------------------------------------------------
--- a/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/src/glxhdmisurfaceupdater.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -595,7 +595,7 @@
     TRACER("CGlxHdmiController::CreateImageDecoderL()");
      // Create a decoder for the image in the named file
     TRAPD(error,iImageDecoder = CImageDecoder::FileNewL(iFsSession, 
-            iImagePath->Des(), CImageDecoder::EOptionNone, KNullUid));
+            iImagePath->Des(), CImageDecoder::EOptionAlwaysThread, KNullUid));
     GLX_LOG_INFO1("CreateImageDecoderL CImageDecoder:FileNewL error %d",error);
     User::LeaveIfError(error);
     }
--- a/tvout/tvoutengine/src/glxtvconnectionmonitor.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/src/glxtvconnectionmonitor.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -21,16 +21,15 @@
 #include "glxtvconnectionmonitor.h"
 
 //  EXTERNAL INCLUDES
+#include <AccPolGenericIdDefinitions.h>
+#include <AccPolSubblockNameArray.h>
 
 //  INTERNAL INCLUDES
-
 #include <glxlog.h>
 #include <glxtracer.h>
-
 #include <glxpanic.h>
 #include "glxtv.h"
-#include <AccPolGenericIdDefinitions.h>
-#include <AccPolSubblockNameArray.h>
+
 //-----------------------------------------------------------------------------
 // Return new object
 //-----------------------------------------------------------------------------
--- a/tvout/tvoutengine/src/glxwindowvisibilitymonitor.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutengine/src/glxwindowvisibilitymonitor.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -17,10 +17,6 @@
 
 
 
-/**
- * @internal reviewed 24/08/2007 by D Holland
- */
-
 //  CLASS HEADER
 #include "glxwindowvisibilitymonitor.h"
 
--- a/tvout/tvoutwrapper/inc/glxtvconnectionobserver.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutwrapper/inc/glxtvconnectionobserver.h	Wed Aug 18 09:48:53 2010 +0300
@@ -25,41 +25,52 @@
 class CGlxTv;
 class GlxTvOutWrapperPrivate;
 
+/**
+ * Class Description This class basically obseves the connection changes
+ * 
+ * Client shouldnt access this directly, meant to be used from GlxTvOutWrapperPrivate only
+ * 
+ */
+
 class CGlxConnectionObserver : public CBase,
                 public MGlxTvObserver
     {
 public:
-    /*
+    /**
      * NewL() 
+     * @param aTvWrapperPrivate GlxTvOutWrapperPrivate instance
      */
     static CGlxConnectionObserver* NewL(GlxTvOutWrapperPrivate* aTvWrapperPrivate);
     
-    /*
+    /**
      * destructor
      */
     ~CGlxConnectionObserver();
     
-    /*
+    /**
      * IsHdmiConnected()
      */
     TBool IsHdmiConnected();
     
 private:
-    /*
+    /**
      * ConstructL
      */
     void ConstructL();
     
-    /*
+    /**
      * constructor 
+     * @param aTvWrapperPrivate GlxTvOutWrapperPrivate Instance
      */
     CGlxConnectionObserver(GlxTvOutWrapperPrivate* aTvWrapperPrivate);
     
-private:// From MGlxTvObserver
+private:/// @see MGlxTvObserver
     void HandleTvStatusChangedL ( TTvChangeType aChangeType );
 
 private:
+    /// TvOut instance
     CGlxTv*                     iGlxTvOut;
+    /// wrapper private instance
     GlxTvOutWrapperPrivate*     iTvWrapperPrivate;
     };
 #endif // GLXTVCONNECTIONOBSERVER_H
--- a/tvout/tvoutwrapper/inc/glxtvoutwrapper.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper.h	Wed Aug 18 09:48:53 2010 +0300
@@ -19,6 +19,7 @@
 #define GLXTVOUTWRAPPER_H
 
 #include <QAbstractItemModel>
+#include <QSize>
 
 // forward decleration
 class GlxTvOutWrapperPrivate;
@@ -29,70 +30,85 @@
 #define GLX_TVOUTWRAPPER_EXPORT Q_DECL_IMPORT
 #endif
 
+/**
+ * Class Description This is Wrapper entry point for Qt based classes for HDMI
+ * 
+ * Client needs to create an instance of this class and setModel() 
+ * 
+ * To Shift from native to clone and vice versa, use setToNativeMode() and 
+ * setToCloningMode() respectively 
+ *
+ * For Not supported items, make sure to call itemNotSupported() API
+ */
+
 class GLX_TVOUTWRAPPER_EXPORT GlxTvOutWrapper
 {
 public:
-    /*
+    /**
      * Constructor
      */
     GlxTvOutWrapper();
     
-    /*
+    /**
      * Destructor
      */
     ~GlxTvOutWrapper();
 
-    /*
+    /**
      * Setting the model
      * This also creates the private instance of the wrapper
      * 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,bool aEfectsOn = false);
+    void setModel(QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn = false);
     
-    /*
+    /**
      * Set the image on to HDMI
      */
     void setImagetoHDMI();
     
-    /*
+    /**
      * Sets HDMI to cloning mode
      */
     void setToCloningMode();
     
-    /*
+    /**
      * Sets HDMI to Native posting mode
      */
     void setToNativeMode();
     
-    /*
+    /**
      * views should call this if for any item it doesnt want to move to 
      * HDMI posting mode
      */
     void itemNotSupported();
     
-    /*
+    /**
      * Activate zoom in posting mode
      * This can be called if the zoom animation in HDMI(bounce back effect)
      * needs to be shown 
-     * @param1 - send true if want to auto zoom out on animation effect
+     * @param autoZoomOut send true if want to auto zoom out on animation effect
      */
     void activateZoom(bool autoZoomOut);
     
-    /*
+    /**
      * Deactivate zoom in posting mode.
      * This can be called when zoom animation needs to bounce back.
      * Note : This function is not required if bounce back effect finishes automatically
      */
     void deactivateZoom();
     
-    /*
+    /**
      * Fadeing of the Surface
-     * @param1 ETrue - FadeIn ( as in gaining brightness )
-     *         EFalse - FadeOut ( as in loosing brightness ) 
+     * @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	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h	Wed Aug 18 09:48:53 2010 +0300
@@ -21,6 +21,7 @@
 #include <QAbstractItemModel>
 #include <fbs.h>
 #include <QMetaType>
+#include <QSize>
 
 class GlxTvOutWrapper;
 class CGlxConnectionObserver;
@@ -29,88 +30,104 @@
 // Converting the QVariant to CFbsBitmap*
 Q_DECLARE_METATYPE(CFbsBitmap*)
 
+/**
+ * Class Description This is Private Wrapper class for HDMI
+ * 
+ * Client shouldnt access this directly, instead access through GlxTvOutWrapper 
+ * 
+ */
+
 class GlxTvOutWrapperPrivate
     {
 public:
-    /*
+    /**
      * Static method to create an instance
-     * @param3 - to On the Effects of Slideshow - currently only fade in fade out
+     * @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,bool aEfectsOn);
+            QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn);
 
-    /*
+    /**
      * destructor
      */
     ~GlxTvOutWrapperPrivate();
 
-    /*
+    /**
      *  HandleConnectionChange
-     *  @param1 true if connected, false if disconnected
+     *  @param aConnected true if connected, false if disconnected
      *  Note this is only being done for HDMI as there is no 
      *  implementation for Analog TV. 
      */
     void HandleConnectionChange(bool aConnected);
     
-    /*
-     * SetImagetoHDMI()
+    /**
+     * SetImagetoHDMI
      */
     void SetImagetoHDMI();
 
-    /*
+    /**
      * Sets HDMI to cloning mode
      */
     void SetToCloningMode();
     
-    /*
+    /**
      * Sets HDMI to Native posting mode
      */
     void SetToNativeMode();
     
-    /*
+    /**
      * views should call this if for any item it doesnt want to move to 
      * HDMI posting mode
      */
     void ItemNotSupported();
     
-    /*
+    /**
      * Activate zoom in posting mode
      */
     void ActivateZoom(bool autoZoomOut);
     
-    /*
+    /**
      * Deactivate zoom in posting mode.
      */
     void DeactivateZoom();
     
-    /*
+    /**
      * Fadeing of the Surface
-     * @param1 ETrue - FadeIn ( as in gaining brightness )
-     *         EFalse - FadeOut ( as in loosing brightness ) 
+     * @param aFadeInOut - ETrue - FadeIn ( as in gaining brightness )
+     *                     EFalse - FadeOut ( as in loosing brightness ) 
      */
     void FadeSurface(bool aFadeInOut);
 
 private:
-    /*
+    /**
      * constructor
+     * @param tvoutwrapper GlxTvOutWrapper instance
+     * @param model QAbstractItemModel instance
      */
     GlxTvOutWrapperPrivate(GlxTvOutWrapper* aTvOutWrapper,
             QAbstractItemModel* aModel);
     
-    /*
+    /**
      * constructL()
-     * @param1 - to On the Effects of Slideshow - currently only fade in fade out
+     * @param aScreenSize screensize 
+     * @param aEffectsOn to On the Effects of Slideshow - currently only fade in fade out
      */
-    void ConstructL(bool aEfectsOn);
+    void ConstructL(QSize aScreenSize,bool aEfectsOn);
     
-    /*
+    /**
      * SetNewImage
      * Get the uri and bmp from the media model 
      * and pass it to HDMI controller
      */
     void SetNewImage();
     
-    /*
+    /**
      * getsubstate
      */
     int getSubState();
--- a/tvout/tvoutwrapper/src/glxtvoutwrapper.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutwrapper/src/glxtvoutwrapper.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -43,11 +43,11 @@
 // setModel 
 // and Create the private instance to pass the model
 // -----------------------------------------------------------------------------
-void GlxTvOutWrapper::setModel(QAbstractItemModel* aModel,bool aEfectsOn)
+void GlxTvOutWrapper::setModel(QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn)
     {
     if (!mTvOutWrapperPrivate)
         {
-        mTvOutWrapperPrivate = GlxTvOutWrapperPrivate::Instance(this,aModel,aEfectsOn);
+        mTvOutWrapperPrivate = GlxTvOutWrapperPrivate::Instance(this,aModel,aScreenSize,aEfectsOn);
         }
     else
         {
--- a/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -29,12 +29,12 @@
 // Static method to create the private wrapper instance 
 // -----------------------------------------------------------------------------
 GlxTvOutWrapperPrivate* GlxTvOutWrapperPrivate::Instance(GlxTvOutWrapper* aTvOutWrapper,
-        QAbstractItemModel* aModel,bool aEfectsOn)
+        QAbstractItemModel* aModel,QSize aScreenSize,bool aEfectsOn)
     {
     TRACER("GlxTvOutWrapperPrivate::Instance()");
     GlxTvOutWrapperPrivate* self = new GlxTvOutWrapperPrivate(aTvOutWrapper,aModel);
     if (self){
-        TRAPD(err,self->ConstructL(aEfectsOn));
+        TRAPD(err,self->ConstructL(aScreenSize,aEfectsOn));
         if(err != KErrNone){
             delete self;
             self = NULL;
@@ -47,12 +47,14 @@
 // ConstructL
 // This creates the Connection observer and the Hdmi Controller
 // -----------------------------------------------------------------------------
-void GlxTvOutWrapperPrivate::ConstructL(bool aEfectsOn)
+void GlxTvOutWrapperPrivate::ConstructL(QSize aScreenSize,bool aEfectsOn)
     {
     TRACER("GlxTvOutWrapperPrivate::ConstructL()");
     iConnectionObserver = CGlxConnectionObserver::NewL(this);
     if (!iHdmiController) {
-        iHdmiController = CGlxHdmiController::NewL(aEfectsOn);
+        TRect rect(0,0,aScreenSize.width(),aScreenSize.height());
+        iHdmiController = CGlxHdmiController::NewL(rect,
+                aEfectsOn);
         iHdmiConnected = iConnectionObserver->IsHdmiConnected();
         }
     }
--- a/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/bwins/glxcommoncommandhandlersu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -1,81 +1,76 @@
 EXPORTS
-	?doHandleUserAction@GlxCommandHandlerRotateImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 1 NONAME ; void GlxCommandHandlerRotateImage::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
-	??_EGlxCommandHandlerRemoveFrom@@UAE@I@Z @ 2 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(unsigned int)
-	?iSelectionCount@GlxCommandHandlerAddToContainer@@0HA @ 3 NONAME ; int GlxCommandHandlerAddToContainer::iSelectionCount
-	?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 4 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>)
-	?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 5 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?doHandleUserAction@GlxCommandHandlerCropImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 6 NONAME ; void GlxCommandHandlerCropImage::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
-	?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 7 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const
-	??0GlxCommandHandlerRename@@QAE@XZ @ 8 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void)
-	??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 9 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void)
-	?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 10 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void)
-	?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 11 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short)
-	?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 12 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const
-	??_EGlxCommandHandlerSend@@UAE@I@Z @ 13 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int)
-	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *)
-	?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 15 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int)
-	??1GlxCommandHandlerCropImage@@UAE@XZ @ 16 NONAME ; GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage(void)
-	?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 17 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const
-	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int)
-	?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 19 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &)
-	?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 20 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const
-	?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const
-	?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 22 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 23 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 24 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const
-	?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 25 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
-	??0GlxCommandHandlerComment@@QAE@XZ @ 26 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void)
-	?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 27 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const
-	??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 28 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void)
-	?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 29 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *)
-	??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 30 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void)
-	?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 31 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *)
-	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 32 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *)
-	?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 33 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const
-	?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 34 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void)
-	??_EGlxCommandHandlerComment@@UAE@I@Z @ 35 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int)
-	??1GlxCommandHandlerRotate@@UAE@XZ @ 36 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void)
-	?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 37 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const
-	??1GlxCommandHandlerNewMedia@@UAE@XZ @ 38 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void)
-	??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 39 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int)
-	?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 40 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const
-	??_EGlxCommandHandlerDelete@@UAE@I@Z @ 41 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int)
-	?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 42 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const
-	?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 43 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const
-	?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 44 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject
-	?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 45 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void)
-	??0GlxCommandHandlerDelete@@QAE@XZ @ 46 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void)
-	??1GlxCommandHandlerRename@@UAE@XZ @ 47 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void)
-	??0GlxCommandHandlerSend@@QAE@XZ @ 48 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void)
-	?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 49 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int)
-	??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 50 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void)
-	??_EGlxCommandHandlerRename@@UAE@I@Z @ 51 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int)
-	?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 52 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const
-	?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 53 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int)
-	??1GlxCommandHandlerRotateImage@@UAE@XZ @ 54 NONAME ; GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage(void)
-	??0GlxCommandHandlerRotateImage@@QAE@XZ @ 55 NONAME ; GlxCommandHandlerRotateImage::GlxCommandHandlerRotateImage(void)
-	??_EGlxCommandHandlerRotate@@UAE@I@Z @ 56 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int)
-	??_EGlxCommandHandlerCropImage@@UAE@I@Z @ 57 NONAME ; GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage(unsigned int)
-	?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 58 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const
-	??1GlxCommandHandlerComment@@UAE@XZ @ 59 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void)
-	??1GlxCommandHandlerSend@@UAE@XZ @ 60 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void)
-	?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 61 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const
-	??0GlxCommandHandlerNewMedia@@QAE@XZ @ 62 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void)
-	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 63 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int)
-	?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 64 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
-	??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 65 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int)
-	?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 66 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const
-	?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@@Z @ 67 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &)
-	?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 68 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 69 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 70 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const
-	?executeCommand@GlxCommandHandlerRotateImage@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 71 NONAME ; void GlxCommandHandlerRotateImage::executeCommand(int, int, class QList<class QModelIndex>)
-	??_EGlxCommandHandlerRotateImage@@UAE@I@Z @ 72 NONAME ; GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage(unsigned int)
-	?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 73 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const
-	?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 74 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short)
-	?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 75 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>)
-	??1GlxCommandHandlerDelete@@UAE@XZ @ 76 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void)
-	?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 77 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const
-	??0GlxCommandHandlerCropImage@@QAE@XZ @ 78 NONAME ; GlxCommandHandlerCropImage::GlxCommandHandlerCropImage(void)
-	??0GlxCommandHandlerRotate@@QAE@XZ @ 79 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void)
+	??_EGlxCommandHandlerRemoveFrom@@UAE@I@Z @ 1 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(unsigned int)
+	?RotateImageL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 2 NONAME ; void GlxCommandHandlerRotate::RotateImageL(class TBuf<256>)
+	?qt_metacall@GlxCommandHandlerNewMedia@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 3 NONAME ; int GlxCommandHandlerNewMedia::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?ProgressTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 4 NONAME ; class QString GlxCommandHandlerRemoveFrom::ProgressTextL(void) const
+	??0GlxCommandHandlerRename@@QAE@XZ @ 5 NONAME ; GlxCommandHandlerRename::GlxCommandHandlerRename(void)
+	??1GlxCommandHandlerAddToContainer@@UAE@XZ @ 6 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(void)
+	?getStaticMetaObject@GlxCommandHandlerNewMedia@@SAABUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const & GlxCommandHandlerNewMedia::getStaticMetaObject(void)
+	?SetImageOrientationL@GlxCommandHandlerRotate@@AAEXG@Z @ 8 NONAME ; void GlxCommandHandlerRotate::SetImageOrientationL(unsigned short)
+	?ConfirmationTextL@GlxCommandHandlerDelete@@EBE?AVQString@@_N@Z @ 9 NONAME ; class QString GlxCommandHandlerDelete::ConfirmationTextL(bool) const
+	??_EGlxCommandHandlerSend@@UAE@I@Z @ 10 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(unsigned int)
+	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *)
+	?HandleErrorL@GlxCommandHandlerNewMedia@@MAEXH@Z @ 12 NONAME ; void GlxCommandHandlerNewMedia::HandleErrorL(int)
+	?GetName@GlxCommandHandlerRename@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 13 NONAME ; class QString GlxCommandHandlerRename::GetName(class MGlxMediaList &) const
+	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 14 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *, int)
+	?DoExecuteCommandL@GlxCommandHandlerRotate@@UAEXHAAVMGlxMediaList@@AAH@Z @ 15 NONAME ; void GlxCommandHandlerRotate::DoExecuteCommandL(int, class MGlxMediaList &, int &)
+	?CompletionTextL@GlxCommandHandlerComment@@EBE?AVQString@@XZ @ 16 NONAME ; class QString GlxCommandHandlerComment::CompletionTextL(void) const
+	?metaObject@GlxCommandHandlerNewMedia@@UBEPBUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const * GlxCommandHandlerNewMedia::metaObject(void) const
+	?CreateCommandL@GlxCommandHandlerDelete@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 18 NONAME ; class CMPXMedia * GlxCommandHandlerDelete::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CreateCommandL@GlxCommandHandlerAddToContainer@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 19 NONAME ; class CMPXMedia * GlxCommandHandlerAddToContainer::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CompletionTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 20 NONAME ; class QString GlxCommandHandlerDelete::CompletionTextL(void) const
+	?DoHandleCommandCompleteL@GlxCommandHandlerNewMedia@@MAEXPAXPAVCMPXMedia@@HPAVMGlxMediaList@@@Z @ 21 NONAME ; void GlxCommandHandlerNewMedia::DoHandleCommandCompleteL(void *, class CMPXMedia *, int, class MGlxMediaList *)
+	??0GlxCommandHandlerComment@@QAE@XZ @ 22 NONAME ; GlxCommandHandlerComment::GlxCommandHandlerComment(void)
+	?GenerateNewMediaItemTitleL@GlxCommandHandlerNewMedia@@ABE?AVQString@@V2@AAVMGlxMediaList@@@Z @ 23 NONAME ; class QString GlxCommandHandlerNewMedia::GenerateNewMediaItemTitleL(class QString, class MGlxMediaList &) const
+	??1GlxCommandHandlerRemoveFrom@@UAE@XZ @ 24 NONAME ; GlxCommandHandlerRemoveFrom::~GlxCommandHandlerRemoveFrom(void)
+	??_EGlxCommandHandlerEditImage@@UAE@I@Z @ 25 NONAME ; GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage(unsigned int)
+	?qt_metacast@GlxCommandHandlerNewMedia@@UAEPAXPBD@Z @ 26 NONAME ; void * GlxCommandHandlerNewMedia::qt_metacast(char const *)
+	??0GlxCommandHandlerRemoveFrom@@QAE@XZ @ 27 NONAME ; GlxCommandHandlerRemoveFrom::GlxCommandHandlerRemoveFrom(void)
+	?HandleItemAddedL@GlxCommandHandlerNewMedia@@MAEXHHPAVMGlxMediaList@@@Z @ 28 NONAME ; void GlxCommandHandlerNewMedia::HandleItemAddedL(int, int, class MGlxMediaList *)
+	?tr@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString GlxCommandHandlerNewMedia::tr(char const *, char const *)
+	?createNewMedia@GlxCommandHandlerAddToContainer@@ABEXXZ @ 30 NONAME ; void GlxCommandHandlerAddToContainer::createNewMedia(void) const
+	?ReadImageOrientationL@GlxCommandHandlerRotate@@AAEGXZ @ 31 NONAME ; unsigned short GlxCommandHandlerRotate::ReadImageOrientationL(void)
+	??_EGlxCommandHandlerComment@@UAE@I@Z @ 32 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(unsigned int)
+	??1GlxCommandHandlerRotate@@UAE@XZ @ 33 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(void)
+	?CreateCommandL@GlxCommandHandlerRename@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 34 NONAME ; class CMPXMedia * GlxCommandHandlerRename::CreateCommandL(int, class MGlxMediaList &, int &) const
+	??1GlxCommandHandlerNewMedia@@UAE@XZ @ 35 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(void)
+	??_EGlxCommandHandlerNewMedia@@UAE@I@Z @ 36 NONAME ; GlxCommandHandlerNewMedia::~GlxCommandHandlerNewMedia(unsigned int)
+	?CompletionTextL@GlxCommandHandlerRemoveFrom@@EBE?AVQString@@XZ @ 37 NONAME ; class QString GlxCommandHandlerRemoveFrom::CompletionTextL(void) const
+	??_EGlxCommandHandlerDelete@@UAE@I@Z @ 38 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(unsigned int)
+	?ProgressTextL@GlxCommandHandlerDelete@@EBE?AVQString@@XZ @ 39 NONAME ; class QString GlxCommandHandlerDelete::ProgressTextL(void) const
+	?CompletionTextL@GlxCommandHandlerRename@@EBE?AVQString@@XZ @ 40 NONAME ; class QString GlxCommandHandlerRename::CompletionTextL(void) const
+	?staticMetaObject@GlxCommandHandlerNewMedia@@2UQMetaObject@@B @ 41 NONAME ; struct QMetaObject const GlxCommandHandlerNewMedia::staticMetaObject
+	?DestroyExifWriter@GlxCommandHandlerRotate@@AAEXXZ @ 42 NONAME ; void GlxCommandHandlerRotate::DestroyExifWriter(void)
+	??0GlxCommandHandlerDelete@@QAE@XZ @ 43 NONAME ; GlxCommandHandlerDelete::GlxCommandHandlerDelete(void)
+	??1GlxCommandHandlerRename@@UAE@XZ @ 44 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(void)
+	??0GlxCommandHandlerSend@@QAE@XZ @ 45 NONAME ; GlxCommandHandlerSend::GlxCommandHandlerSend(void)
+	?HandleError@GlxCommandHandlerNewMedia@@MAEXH@Z @ 46 NONAME ; void GlxCommandHandlerNewMedia::HandleError(int)
+	??0GlxCommandHandlerAddToContainer@@QAE@XZ @ 47 NONAME ; GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer(void)
+	??_EGlxCommandHandlerRename@@UAE@I@Z @ 48 NONAME ; GlxCommandHandlerRename::~GlxCommandHandlerRename(unsigned int)
+	?GetName@GlxCommandHandlerComment@@ABE?AVQString@@AAVMGlxMediaList@@@Z @ 49 NONAME ; class QString GlxCommandHandlerComment::GetName(class MGlxMediaList &) const
+	?HandleErrorL@GlxCommandHandlerRename@@EAEXH@Z @ 50 NONAME ; void GlxCommandHandlerRename::HandleErrorL(int)
+	?doHandleUserAction@GlxCommandHandlerEditImage@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 51 NONAME ; void GlxCommandHandlerEditImage::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
+	??_EGlxCommandHandlerRotate@@UAE@I@Z @ 52 NONAME ; GlxCommandHandlerRotate::~GlxCommandHandlerRotate(unsigned int)
+	?ExecuteLD@GlxCommandHandlerNewMedia@@QAEHAAVTGlxMediaId@@AAVQString@@@Z @ 53 NONAME ; int GlxCommandHandlerNewMedia::ExecuteLD(class TGlxMediaId &, class QString &)
+	?ProgressTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 54 NONAME ; class QString GlxCommandHandlerAddToContainer::ProgressTextL(void) const
+	??1GlxCommandHandlerComment@@UAE@XZ @ 55 NONAME ; GlxCommandHandlerComment::~GlxCommandHandlerComment(void)
+	??0GlxCommandHandlerEditImage@@QAE@XZ @ 56 NONAME ; GlxCommandHandlerEditImage::GlxCommandHandlerEditImage(void)
+	??1GlxCommandHandlerSend@@UAE@XZ @ 57 NONAME ; GlxCommandHandlerSend::~GlxCommandHandlerSend(void)
+	?CompletionTextL@GlxCommandHandlerAddToContainer@@EBE?AVQString@@XZ @ 58 NONAME ; class QString GlxCommandHandlerAddToContainer::CompletionTextL(void) const
+	??0GlxCommandHandlerNewMedia@@QAE@XZ @ 59 NONAME ; GlxCommandHandlerNewMedia::GlxCommandHandlerNewMedia(void)
+	?executeCommand@GlxCommandHandlerEditImage@@UAEXHHV?$QList@VQModelIndex@@@@@Z @ 60 NONAME ; void GlxCommandHandlerEditImage::executeCommand(int, int, class QList<class QModelIndex>)
+	?trUtf8@GlxCommandHandlerNewMedia@@SA?AVQString@@PBD0H@Z @ 61 NONAME ; class QString GlxCommandHandlerNewMedia::trUtf8(char const *, char const *, int)
+	?doHandleUserAction@GlxCommandHandlerSend@@UBEXPAVGlxMediaModel@@V?$QList@VQModelIndex@@@@@Z @ 62 NONAME ; void GlxCommandHandlerSend::doHandleUserAction(class GlxMediaModel *, class QList<class QModelIndex>) const
+	??_EGlxCommandHandlerAddToContainer@@UAE@I@Z @ 63 NONAME ; GlxCommandHandlerAddToContainer::~GlxCommandHandlerAddToContainer(unsigned int)
+	?ProgressTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 64 NONAME ; class QString GlxCommandHandlerNewMedia::ProgressTextL(void) const
+	?CreateCommandL@GlxCommandHandlerRotate@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 65 NONAME ; class CMPXMedia * GlxCommandHandlerRotate::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CreateCommandL@GlxCommandHandlerComment@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 66 NONAME ; class CMPXMedia * GlxCommandHandlerComment::CreateCommandL(int, class MGlxMediaList &, int &) const
+	?CompletionTextL@GlxCommandHandlerNewMedia@@EBE?AVQString@@XZ @ 67 NONAME ; class QString GlxCommandHandlerNewMedia::CompletionTextL(void) const
+	?CreateCommandL@GlxCommandHandlerRemoveFrom@@UBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 68 NONAME ; class CMPXMedia * GlxCommandHandlerRemoveFrom::CreateCommandL(int, class MGlxMediaList &, int &) const
+	??1GlxCommandHandlerEditImage@@UAE@XZ @ 69 NONAME ; GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage(void)
+	?CalculateFinalOrientationL@GlxCommandHandlerRotate@@AAEGG@Z @ 70 NONAME ; unsigned short GlxCommandHandlerRotate::CalculateFinalOrientationL(unsigned short)
+	?InitializeExifWriterL@GlxCommandHandlerRotate@@AAEXV?$TBuf@$0BAA@@@@Z @ 71 NONAME ; void GlxCommandHandlerRotate::InitializeExifWriterL(class TBuf<256>)
+	??1GlxCommandHandlerDelete@@UAE@XZ @ 72 NONAME ; GlxCommandHandlerDelete::~GlxCommandHandlerDelete(void)
+	?CreateCommandL@GlxCommandHandlerNewMedia@@MBEPAVCMPXMedia@@HAAVMGlxMediaList@@AAH@Z @ 73 NONAME ; class CMPXMedia * GlxCommandHandlerNewMedia::CreateCommandL(int, class MGlxMediaList &, int &) const
+	??0GlxCommandHandlerRotate@@QAE@XZ @ 74 NONAME ; GlxCommandHandlerRotate::GlxCommandHandlerRotate(void)
 
--- a/ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/inc/glxcommandhandler.h	Wed Aug 18 09:48:53 2010 +0300
@@ -19,6 +19,7 @@
 #define GLXCOMMANDHANDLER_H
 
 #include <QObject>
+#include <QModelIndex>
 
 #ifdef BUILD_COMMANDHANDLERBASE
 #define GLX_COMMANDHANDLERBASE_EXPORT Q_DECL_EXPORT
@@ -26,7 +27,6 @@
 #define GLX_COMMANDHANDLERBASE_EXPORT Q_DECL_IMPORT
 #endif
 
-class QModelIndex;
 class GLX_COMMANDHANDLERBASE_EXPORT GlxCommandHandler : public QObject
 {
 public:
--- a/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commandhandlerbase/src/glxmpxcommandhandler.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -487,7 +487,7 @@
             }
             // (else) If error, assume confirmed anyway
         CleanupStack::PopAndDestroy(attributeContext);
-        HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*)));  
+        HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*)),HbMessageBox::Ok | HbMessageBox::Cancel);
         }
     else{
         executeMpxCommand(true);
@@ -499,7 +499,7 @@
     QString qtText = ConfirmationTextL(true);
     if(!qtText.isEmpty ())
         {
-        HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*)));
+        HbMessageBox::question(qtText, this, SLOT(messageDialogClose(HbAction*)),HbMessageBox::Ok |HbMessageBox::Cancel);
         }    
     else{
         executeMpxCommand(true);
--- a/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/commoncommandhandlers.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -71,8 +71,8 @@
 HEADERS += inc/glxcommandhandlerrename.h
 HEADERS += inc/glxcommondialogs.h
 HEADERS += inc/glxcommandhandlercomment.h
-HEADERS += inc/glxcommandhandlercropimage.h
-HEADERS += inc/glxcommandhandlerrotateimage.h
+HEADERS += inc/glxcommandhandlereditimage.h
+
 
 SOURCES += src/glxcommandhandlerdelete.cpp
 SOURCES += src/glxcommandhandleraddtocontainer.cpp
@@ -83,8 +83,8 @@
 SOURCES += src/glxcommandhandlerrename.cpp
 SOURCES += src/glxcommondialogs.cpp
 SOURCES += src/glxcommandhandlercomment.cpp
-SOURCES += src/glxcommandhandlercropimage.cpp
-SOURCES += src/glxcommandhandlerrotateimage.cpp
+SOURCES += src/glxcommandhandlereditimage.cpp
+
 
 DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
 
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandleraddtocontainer.h	Wed Aug 18 09:48:53 2010 +0300
@@ -33,7 +33,6 @@
 class QGraphicsGridLayout;
 class GlxAlbumModel;
 class QGraphicsItem;
-class HbDialog;
 class QItemSelectionModel;
 class QEventLoop;
 
@@ -51,9 +50,9 @@
     void createNewMedia() const;
 
 private:
-    static TInt iSelectionCount;
     mutable bool mNewMediaAdded ;
     mutable CMPXCollectionPath* mTargetContainers ;
+    mutable QString mAlbumName;
 };
 
 class GlxAlbumSelectionPopup: public QObject
@@ -66,11 +65,9 @@
     QModelIndexList GetSelectionList(GlxAlbumModel *model,bool *ok = 0) ;
     
 private slots:
-    void changeButtonText();
     void dialogClosed( HbAction *action ) ;
     
 private :
-    HbDialog* mPopupDlg;
     QItemSelectionModel * mSelectionModel; //no owner ship
     QEventLoop *mEventLoop;
     bool mResult;        
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlercropimage.h	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-#ifndef GLXCOMMANDHANDLERCROPIMAGE_H_
-#define GLXCOMMANDHANDLERCROPIMAGE_H_
-
-
-#include "glxmodelcommandhandler.h"
-#include <xqappmgr.h>               // for XQApplicationManager
-
-#ifdef BUILD_COMMONCOMMANDHANDLERS
-#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT
-#else
-#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT
-#endif
-
-//Forward Declaration
-class XQAiwRequest;
-
-class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerCropImage : public GlxModelCommandHandler
-{
-  
-public:
-    GlxCommandHandlerCropImage();
-    ~GlxCommandHandlerCropImage();
-    void doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList) const ;
-
-private:
-    mutable XQAiwRequest* mReq;
-    mutable XQApplicationManager mAppmgr;
-};
-
-
-#endif /* GLXCOMMANDHANDLERCROPIMAGE_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlereditimage.h	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,59 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: 
+*
+*/
+
+#ifndef GlxCommandHandlerEditImage_H_
+#define GlxCommandHandlerEditImage_H_
+
+
+#include <glxmodelcommandhandler.h>
+#include <xqappmgr.h>               // for XQApplicationManager
+
+#ifdef BUILD_COMMONCOMMANDHANDLERS
+#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT
+#else
+#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT
+#endif
+
+//Forward Declaration
+class XQAiwRequest;
+
+class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerEditImage : public GlxModelCommandHandler
+{
+  Q_OBJECT
+  
+public:
+    GlxCommandHandlerEditImage();
+    ~GlxCommandHandlerEditImage();
+    void executeCommand(int commandId,int collectionId, QList<QModelIndex> indexList = QList<QModelIndex>() );
+    void doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList) const ;
+
+public slots:
+    void handleOk(const QVariant& result);
+    void handleError(int errorCode, const QString& errorMessage);
+    void storeItems(const QModelIndex &parent, int start, int end);
+
+private:
+    void clearMediaModel();
+    
+private:
+    XQAiwRequest* mReq;
+    XQApplicationManager mAppmgr;
+	GlxMediaModel* mMediaModel;
+};
+
+
+#endif /* GlxCommandHandlerEditImage_H_ */
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlernewmedia.h	Wed Aug 18 09:48:53 2010 +0300
@@ -36,7 +36,7 @@
     GlxCommandHandlerNewMedia();
     ~GlxCommandHandlerNewMedia();
 
-    TInt ExecuteLD(TGlxMediaId& aNewMediaId);
+    TInt ExecuteLD(TGlxMediaId& aNewMediaId,QString& aTitle);
 
 private:
     QString CompletionTextL() const;
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlerrotateimage.h	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: 
-*
-*/
-
-#ifndef GLXCOMMANDHANDLERROTATEIMAGE_H_
-#define GLXCOMMANDHANDLERROTATEIMAGE_H_
-
-
-#include <glxmodelcommandhandler.h>
-#include <xqappmgr.h>               // for XQApplicationManager
-
-#ifdef BUILD_COMMONCOMMANDHANDLERS
-#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_EXPORT
-#else
-#define GLX_COMMONCOMMANDHANDLERS_EXPORT Q_DECL_IMPORT
-#endif
-
-//Forward Declaration
-class XQAiwRequest;
-
-class GLX_COMMONCOMMANDHANDLERS_EXPORT GlxCommandHandlerRotateImage : public GlxModelCommandHandler
-{
-  
-public:
-    GlxCommandHandlerRotateImage();
-    ~GlxCommandHandlerRotateImage();
-    void executeCommand(int commandId,int collectionId, QList<QModelIndex> indexList = QList<QModelIndex>() );
-    void doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList) const ;
-
-private:
-    XQAiwRequest* mReq;
-    XQApplicationManager mAppmgr;
-};
-
-
-#endif /* GLXCOMMANDHANDLERROTATEIMAGE_H_ */
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandleraddtocontainer.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -35,7 +35,8 @@
 #include <hbview.h>
 #include <hbpushbutton.h>
 #include <QGraphicsGridLayout>
-#include <hbdialog.h>
+#include <hbselectiondialog.h>
+
 #include <hbmessagebox.h>
 
 #include <glxcommandhandlers.hrh>
@@ -47,14 +48,10 @@
 #endif
 
 
-TInt GlxCommandHandlerAddToContainer::iSelectionCount = 0;
-
 const TInt KSelectionPopupListHierarchy = 5;
-const TInt KListPrefferedHeight = 400;
 
 GlxAlbumSelectionPopup::GlxAlbumSelectionPopup() 
-    : mPopupDlg( 0 ), 
-      mSelectionModel( 0 ),
+    : mSelectionModel( 0 ),
       mEventLoop( 0 ),
       mResult( false )
 {
@@ -66,71 +63,44 @@
 
 QModelIndexList GlxAlbumSelectionPopup::GetSelectionList(GlxAlbumModel *model, bool *ok) 
 {
-    // Create a popup
-    HbDialog popup;
+    HbSelectionDialog *dlg = new HbSelectionDialog;
+	dlg->setHeadingWidget(new HbLabel(GLX_ALBUM_SELECTION_TITLE));
+    dlg->setSelectionMode(HbAbstractItemView::SingleSelection);
+    dlg->setModel(model);
+    dlg->setAttribute(Qt::WA_DeleteOnClose);
+    dlg->clearActions();
+    HbAction *action;
+    action= new HbAction(GLX_BUTTON_NEW);
+    action->setObjectName( "ch_new_album_button" );
+    dlg->addAction(action);
+    action= new HbAction(GLX_BUTTON_CANCEL);
+    action->setObjectName( "ch_cancel_album_button" );
+    dlg->addAction(action);
+    dlg->open(this, SLOT(dialogClosed(HbAction*)));
+    
     QEventLoop eventLoop;
     mEventLoop = &eventLoop;
-    
-    popup.setPreferredHeight( KListPrefferedHeight );
-    // Set dismiss policy that determines what tap events will cause the popup
-    // to be dismissed
-    popup.setDismissPolicy(HbDialog::NoDismiss);
-
-    // Set timeout to zero to wait user to either click Ok or Cancel
-    popup.setTimeout(HbDialog::NoTimeout);
-    popup.setHeadingWidget( new HbLabel("Select Album") );      
-    
-    mPopupDlg = &popup;
-    HbListView *listview = new HbListView();
-    listview->setSelectionMode(HbAbstractItemView::MultiSelection);
-    listview->setModel(model);
-    mSelectionModel = listview->selectionModel() ;
-    connect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) );
-    
-    HbAction *primary = new HbAction( "New" );
-    primary->setObjectName( "Cmd New" );
-    popup.addAction( primary ) ;
-
-    HbAction *secondary = new HbAction( GLX_BUTTON_CANCEL );
-    secondary->setObjectName( "Cmd Cancel" );
-    popup.addAction( secondary );
-    
-    popup.setContentWidget( listview ); //ownership transfer
-    listview->show();
-    
-    popup.open( this, SLOT( dialogClosed( HbAction* ) ) ); 
+  
     eventLoop.exec( );
     mEventLoop = 0 ;
     if ( ok ) {
         *ok = mResult ;
     }
-    QModelIndexList selectedIndexes = mSelectionModel->selectedIndexes();       
-    disconnect( mSelectionModel, SIGNAL( selectionChanged( const QItemSelection &, const QItemSelection& ) ), this, SLOT( changeButtonText() ) );
-    delete primary;
-    delete secondary;
 
+    QModelIndexList selectedIndexes = dlg->selectedModelIndexes();
     return selectedIndexes;
 }
 
-void GlxAlbumSelectionPopup::changeButtonText()
-{
-    if ( mSelectionModel->selectedIndexes().count() ) {
-        mPopupDlg->actions().first()->setText( GLX_BUTTON_OK );
-    }
-    else {
-        mPopupDlg->actions().first()->setText("New");
-    }    
-}
-
 
 void GlxAlbumSelectionPopup::dialogClosed(HbAction *action)
 {
-    HbDialog *dlg = static_cast<HbDialog*>(sender());
-    if( action == dlg->actions().first() ) {
-        mResult = true ;
+    HbSelectionDialog *dlg = (HbSelectionDialog*)(sender());
+
+    if( action == dlg->actions().at(1) ) {
+        mResult = false ;
     }
     else {
-        mResult = false ;
+        mResult = true ;
     }
     if ( mEventLoop && mEventLoop->isRunning( ) ) {
         mEventLoop->exit( 0 );
@@ -138,7 +108,7 @@
 }
 
 GlxCommandHandlerAddToContainer::GlxCommandHandlerAddToContainer() :
-    mNewMediaAdded(false)
+    mNewMediaAdded(false),mAlbumName(QString())
     {
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_GLXCOMMANDHANDLERADDTOCONTAINER_ENTRY );
     mTargetContainers = NULL;
@@ -156,11 +126,11 @@
         MGlxMediaList& aMediaList, TBool& /*aConsume*/) const
     {
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATECOMMANDL_ENTRY );
-    iSelectionCount = 0;
     CMPXCommand* command = NULL;
-
+    mAlbumName.clear();
     if(aCommandId == EGlxCmdAddToFav)
         {
+		   mAlbumName = GLX_ALBUM_FAV;
            CMPXCollectionPath* targetCollection = CMPXCollectionPath::NewL();
            CleanupStack::PushL(targetCollection);
            // The target collection has to be appeneded with the albums plugin id
@@ -235,6 +205,10 @@
                     delete mTargetContainers;
                     mTargetContainers = NULL;
                     mTargetContainers = targetContainers;
+
+					const TGlxMedia& item = targetMediaList->Item(targetMediaList->SelectedItemIndex(0));
+					const TDesC& title = item.Title();
+					mAlbumName = QString::fromUtf16(title.Ptr(),title.Length());
                     }
     
                 command = TGlxCommandFactory::AddToContainerCommandLC(*sourceItems,
@@ -262,14 +236,14 @@
     GlxCommandHandlerNewMedia* commandHandlerNewMedia =
             new GlxCommandHandlerNewMedia();
     TGlxMediaId newMediaId;
-    TInt error = commandHandlerNewMedia->ExecuteLD(newMediaId);
+    QString newTitle;
+    TInt error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle);
 
     while (error == KErrAlreadyExists)
         {
-        HbMessageBox::warning("Name Already Exist!!!", new HbLabel(
-                "New Album"));
+        HbMessageBox::warning(GLX_NAME_ALREADY_EXIST);
         error = KErrNone;
-        error = commandHandlerNewMedia->ExecuteLD(newMediaId);
+        error = commandHandlerNewMedia->ExecuteLD(newMediaId,newTitle);
         }
 
     if (error == KErrNone)
@@ -282,6 +256,7 @@
         delete mTargetContainers;
         mTargetContainers = NULL;
         mTargetContainers = path;
+        mAlbumName = newTitle;
         mNewMediaAdded = true;
         }
     OstTraceFunctionExit0( GLXCOMMANDHANDLERADDTOCONTAINER_CREATENEWMEDIA_EXIT );
@@ -289,10 +264,13 @@
 
 QString GlxCommandHandlerAddToContainer::CompletionTextL() const
     {
-	return QString();	
+    if(!mAlbumName.isNull()){
+        return (hbTrId(GLX_IMAGES_ADDED).arg(mAlbumName)); 
+        }
+	return 	QString();
     }
 
 QString GlxCommandHandlerAddToContainer::ProgressTextL() const
     {
-    return QString("Adding album...");
+    return GLX_ADDING_IMAGES;
     }
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlercropimage.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-#include "glxcommandhandlercropimage.h"
-
-#include <glxcommandfactory.h>
-#include <photoeditor_highway.hrh>
-#include <glxcommandhandlers.hrh>
-#include <XQServiceRequest.h>
-#include <XQAiwRequest.h>
-#include <glxmodelparm.h>
-#include <glxmediamodel.h>
-
-
-GlxCommandHandlerCropImage::GlxCommandHandlerCropImage() : mReq(NULL)
-    {
-    //Nothing to do here for now
-    }
-
-GlxCommandHandlerCropImage::~GlxCommandHandlerCropImage()
-    {
-    delete mReq;
-    mReq = NULL;
-    }
-
-void GlxCommandHandlerCropImage::doHandleUserAction(GlxMediaModel* model,
-        QList<QModelIndex> /*indexList*/) const
-    {
-    const QString interface = QLatin1String("com.nokia.symbian.imageeditor");
-    const QString operation = QLatin1String("view(QString,int)");
-    const QString service = QLatin1String("PhotoEditor");
-    
-    if(mReq == NULL)
-        {
-        //Connect to service provider    
-        mReq = mAppmgr.create(service, interface, operation, true);
-        mReq->setEmbedded(true);
-        mReq->setSynchronous(true);
-        }
-    
-    if(mReq == NULL)
-        {
-        qDebug("QtSamplePhotos::launchPhotoEditor request not Created");
-        return;
-        }
-    
-    //Get the file path for the item selected
-    QString imagePath = (model->data(model->index(model->data(model->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxUriRole)).value<QString>();
-       
-    QList<QVariant> args;
-    args << imagePath;
-    args << EEditorHighwayFreeCrop;
-    mReq->setArguments(args);
-    
-    // Send the request
-    bool res = mReq->send();
-    if  (!res) 
-        {
-       // Request failed. 
-        qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send");
-        }
-    
-    }
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerdelete.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -62,7 +62,7 @@
 
 QString GlxCommandHandlerDelete::ProgressTextL() const
     {
-    return QString("Deleting...");
+    return (GLX_DELETE_PROGRESS);
     }
 
 QString GlxCommandHandlerDelete::ConfirmationTextL(bool multiSelection ) const
@@ -70,7 +70,7 @@
     QString retString;
     if(multiSelection)
         {
-        retString = QString("Delete selected images");
+        retString = GLX_MULTIPLE_DELETE;
         }
     else
         {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlereditimage.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,156 @@
+/*
+* 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: Handles command related to mediaeditors in fullscreen 
+* for image Rotate, Crop & Set as Wallpaper
+*
+*/
+
+
+
+#include <glxcommandfactory.h>
+
+
+#ifdef FF_IMAGE_EDITOR
+    #include <photoeditor_highway.hrh>
+#endif //FF_IMAGE_EDITOR
+
+#include "glxcommandhandlereditimage.h"
+#include <glxcommandhandlers.hrh>
+#include <glxmodelparm.h>
+#include <glxmediamodel.h>
+#include <XQServiceRequest.h>
+#include <XQAiwRequest.h>
+
+GlxCommandHandlerEditImage::GlxCommandHandlerEditImage() :
+    mReq(NULL), mMediaModel(NULL)
+    {
+    //Nothing to do here
+    }
+
+GlxCommandHandlerEditImage::~GlxCommandHandlerEditImage()
+    {
+    delete mReq;
+    mReq = NULL;
+    clearMediaModel();
+    }
+
+void GlxCommandHandlerEditImage::executeCommand(int commandId,
+        int collectionId, QList<QModelIndex> /*indexList*/)
+    {
+    const QString service = QLatin1String("PhotoEditor");
+    const QString interface = QLatin1String("com.nokia.symbian.imageeditor");
+    const QString operation = QLatin1String("view(QString,int)");
+    
+    //Connect to service provider
+    if(mReq == NULL)
+        {
+        mReq = mAppmgr.create(service, interface, operation, true);
+        mReq->setEmbedded(true);
+        mReq->setSynchronous(false);
+        }
+    
+    if(mReq == NULL)
+        {
+        return;
+        } 
+    
+    connect(mReq, SIGNAL(requestOk(const QVariant&)), this, SLOT(handleOk(const QVariant&)));
+    connect(mReq, SIGNAL(requestError(int,const QString&)), this, SLOT(handleError(int,const QString&)));
+
+    GlxModelParm modelParm(collectionId, 0);
+    clearMediaModel();
+    mMediaModel = new GlxMediaModel(modelParm);
+    if (!mMediaModel)
+        {
+        return;
+        }
+
+    connect( mMediaModel, SIGNAL( rowsInserted( QModelIndex, int, int ) ), this, SLOT( storeItems( QModelIndex, int, int ) ) );
+
+    //Get the file path for the item selected
+    QString imagePath = (mMediaModel->data(
+            mMediaModel->index(mMediaModel->data(mMediaModel->index(0, 0),
+                    GlxFocusIndexRole).value<int> (), 0), GlxUriRole)).value<
+            QString> ();
+    //delete mediaModel;
+
+    QList<QVariant> args;
+    args << imagePath;
+#ifdef FF_IMAGE_EDITOR    
+    if(EGlxCmdSetWallpaper == commandId)
+        {
+        args << EEditorHighwayWallpaperCrop;
+        }
+    else if(EGlxCmdRotateImgCrop == commandId)
+        {
+        args << EEditorHighwayFreeCrop;
+        }
+    else if(EGlxCmdRotateImgCW == commandId)
+        {
+        args << EEditorHighwayRotateCW;
+        }
+    else // if(EGlxCmdRotateImgCCW == aCommandId)
+
+        {
+        args << EEditorHighwayRotateCCW;
+        }
+    mReq->setArguments(args);
+#endif //FF_IMAGE_EDITOR
+    // Send the request
+    bool res = mReq->send();
+    if (!res)
+        {
+        // Request failed. 
+        }
+    }
+
+void GlxCommandHandlerEditImage::doHandleUserAction(GlxMediaModel* /*model*/,
+        QList<QModelIndex> /*indexList*/) const
+    {
+    //Dummy, to keepup with compiler error
+    }
+
+void GlxCommandHandlerEditImage::handleOk(const QVariant& result)
+    {
+    //Nothing to do for - Needs further implementation to refine setting 
+    //default image in fullscreen view
+    }
+
+void GlxCommandHandlerEditImage::handleError(int errorCode,
+        const QString& errorMessage)
+    {
+    clearMediaModel();
+    }
+
+void GlxCommandHandlerEditImage::storeItems(const QModelIndex &parent,
+        int aStartRow, int aEndRow)
+    {
+    //This implementation assumes that we will be getting only one new 
+    //image creation notification. Needs refined implementation 
+    if (mMediaModel)
+        {
+        QModelIndex modelIndex = mMediaModel->index(aStartRow, 0);
+        mMediaModel->setData(modelIndex, modelIndex.row(), GlxFocusIndexRole);
+        }
+    }
+
+void GlxCommandHandlerEditImage::clearMediaModel()
+    {
+    if (mMediaModel)
+        {
+        disconnect(mMediaModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(storeItems(QModelIndex,int,int)));
+        delete mMediaModel;
+        mMediaModel = NULL;
+        }
+    }
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlernewmedia.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -95,7 +95,7 @@
     }
 
 
-TInt GlxCommandHandlerNewMedia::ExecuteLD(TGlxMediaId& aNewMediaId)
+TInt GlxCommandHandlerNewMedia::ExecuteLD(TGlxMediaId& aNewMediaId,QString& aTitle)
     {
     OstTraceFunctionEntry0( GLXCOMMANDHANDLERNEWMEDIA_EXECUTELD_ENTRY );
     GlxMpxCommandHandler::executeCommand(EGlxCmdAddMedia, KGlxCollectionPluginAlbumsImplementationUid);
@@ -108,6 +108,7 @@
         if (iNewMediaCreationError == KErrNone)
             {
             aNewMediaId = iNewMediaId;
+            aTitle = QString::fromUtf16(iNewMediaItemTitle->Des().Ptr(),iNewMediaItemTitle->Length());
             }
         }
 
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerremovefrom.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -21,6 +21,7 @@
 #include <glxcommandhandlerremovefrom.h>
 #include <glxcollectionpluginalbums.hrh>
 #include <glxcommandhandlers.hrh>
+#include "glxlocalisationstrings.h"
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "glxcommandhandlerremovefromTraces.h"
@@ -74,5 +75,5 @@
 
 QString GlxCommandHandlerRemoveFrom::ProgressTextL() const
     {
-    return QString("Removing...");
+    return GLX_REMOVE_IMAGES;
     }
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlerrotateimage.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-/*
-* 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: 
-*
-*/
-
-
-
-#include <glxcommandfactory.h>
-#include <photoeditor_highway.hrh>
-#include "glxcommandhandlerrotateimage.h"
-#include <glxcommandhandlers.hrh>
-#include <glxmodelparm.h>
-#include <glxmediamodel.h>
-#include <XQServiceRequest.h>
-#include <XQAiwRequest.h>
-
-GlxCommandHandlerRotateImage::GlxCommandHandlerRotateImage() : mReq(NULL)
-    {
-    //Nothing to do here
-    }
-
-GlxCommandHandlerRotateImage::~GlxCommandHandlerRotateImage()
-    {
-    delete mReq;
-    mReq = NULL;
-    }
-
-void GlxCommandHandlerRotateImage::executeCommand(int commandId,int collectionId, QList<QModelIndex> /*indexList*/)
-//void GlxCommandHandlerRotateImage::doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList) const
-    {
-    const QString service = QLatin1String("PhotoEditor");
-    const QString interface = QLatin1String("com.nokia.symbian.imageeditor");
-    const QString operation = QLatin1String("view(QString,int)");
-    
-    //Connect to service provider
-    if(mReq == NULL)
-        {
-        mReq = mAppmgr.create(service, interface, operation, true);
-        mReq->setEmbedded(true);
-        mReq->setSynchronous(true);
-        }
-    
-    if(mReq == NULL)
-        {
-        return;
-        }
-
-    GlxModelParm modelParm (collectionId, 0);
-    GlxMediaModel* mediaModel = new GlxMediaModel (modelParm);
-    
-    //Get the file path for the item selected
-    QString imagePath = (mediaModel->data(mediaModel->index(mediaModel->data(mediaModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxUriRole)).value<QString>();
-    delete mediaModel;
-    
-    QList<QVariant> args;
-    args << imagePath;
-    if(EGlxCmdRotateImgCW == commandId)
-        {
-        args << EEditorHighwayRotateCW;
-        }
-    else // if(EGlxCmdRotateImgCCW == aCommandId)
-        {
-        args << EEditorHighwayRotateCCW;
-        }
-    mReq->setArguments(args);
-    
-    // Send the request
-    bool res = mReq->send();
-    if  (!res) 
-        {
-       // Request failed. 
-        qDebug("QtSamplePhotos::launchPhotoEditor request cannot be send");
-        }
-    }
-
-void GlxCommandHandlerRotateImage::doHandleUserAction(GlxMediaModel* /*model*/,QList<QModelIndex> /*indexList*/) const 
-    {
-    //Dummy, to keepup with compiler errore
-    }
--- a/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/commandhandlers/eabi/glxcommoncommandhandlersu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -40,80 +40,71 @@
 	_ZN25GlxCommandHandlerNewMedia16staticMetaObjectE @ 39 NONAME DATA 16
 	_ZN25GlxCommandHandlerNewMedia19getStaticMetaObjectEv @ 40 NONAME
 	_ZN25GlxCommandHandlerNewMedia24DoHandleCommandCompleteLEPvP9CMPXMediaiP13MGlxMediaList @ 41 NONAME
-	_ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaId @ 42 NONAME
+	_ZN25GlxCommandHandlerNewMedia9ExecuteLDER11TGlxMediaIdR7QString @ 42 NONAME
 	_ZN25GlxCommandHandlerNewMediaC1Ev @ 43 NONAME
 	_ZN25GlxCommandHandlerNewMediaC2Ev @ 44 NONAME
 	_ZN25GlxCommandHandlerNewMediaD0Ev @ 45 NONAME
 	_ZN25GlxCommandHandlerNewMediaD1Ev @ 46 NONAME
 	_ZN25GlxCommandHandlerNewMediaD2Ev @ 47 NONAME
-	_ZN26GlxCommandHandlerCropImageC1Ev @ 48 NONAME
-	_ZN26GlxCommandHandlerCropImageC2Ev @ 49 NONAME
-	_ZN26GlxCommandHandlerCropImageD0Ev @ 50 NONAME
-	_ZN26GlxCommandHandlerCropImageD1Ev @ 51 NONAME
-	_ZN26GlxCommandHandlerCropImageD2Ev @ 52 NONAME
-	_ZN27GlxCommandHandlerRemoveFromC1Ev @ 53 NONAME
-	_ZN27GlxCommandHandlerRemoveFromC2Ev @ 54 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD0Ev @ 55 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD1Ev @ 56 NONAME
-	_ZN27GlxCommandHandlerRemoveFromD2Ev @ 57 NONAME
-	_ZN28GlxCommandHandlerRotateImage14executeCommandEii5QListI11QModelIndexE @ 58 NONAME
-	_ZN28GlxCommandHandlerRotateImageC1Ev @ 59 NONAME
-	_ZN28GlxCommandHandlerRotateImageC2Ev @ 60 NONAME
-	_ZN28GlxCommandHandlerRotateImageD0Ev @ 61 NONAME
-	_ZN28GlxCommandHandlerRotateImageD1Ev @ 62 NONAME
-	_ZN28GlxCommandHandlerRotateImageD2Ev @ 63 NONAME
-	_ZN31GlxCommandHandlerAddToContainer15iSelectionCountE @ 64 NONAME DATA 4
-	_ZN31GlxCommandHandlerAddToContainerC1Ev @ 65 NONAME
-	_ZN31GlxCommandHandlerAddToContainerC2Ev @ 66 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD0Ev @ 67 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD1Ev @ 68 NONAME
-	_ZN31GlxCommandHandlerAddToContainerD2Ev @ 69 NONAME
-	_ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 70 NONAME
-	_ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 71 NONAME
-	_ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 72 NONAME
-	_ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 73 NONAME
-	_ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 74 NONAME
-	_ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 75 NONAME
-	_ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 76 NONAME
-	_ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 77 NONAME
-	_ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 78 NONAME
-	_ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 79 NONAME
-	_ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 80 NONAME
-	_ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 81 NONAME
-	_ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 82 NONAME
-	_ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 83 NONAME
-	_ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 84 NONAME
-	_ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 85 NONAME
-	_ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 86 NONAME
-	_ZNK26GlxCommandHandlerCropImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 87 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 88 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 89 NONAME
-	_ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 90 NONAME
-	_ZNK28GlxCommandHandlerRotateImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 91 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 92 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 93 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 94 NONAME
-	_ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 95 NONAME
-	_ZTI21GlxCommandHandlerSend @ 96 NONAME
-	_ZTI23GlxCommandHandlerDelete @ 97 NONAME
-	_ZTI23GlxCommandHandlerRename @ 98 NONAME
-	_ZTI23GlxCommandHandlerRotate @ 99 NONAME
-	_ZTI24GlxCommandHandlerComment @ 100 NONAME
-	_ZTI25GlxCommandHandlerNewMedia @ 101 NONAME
-	_ZTI26GlxCommandHandlerCropImage @ 102 NONAME
-	_ZTI27GlxCommandHandlerRemoveFrom @ 103 NONAME
-	_ZTI28GlxCommandHandlerRotateImage @ 104 NONAME
-	_ZTI31GlxCommandHandlerAddToContainer @ 105 NONAME
-	_ZTV21GlxCommandHandlerSend @ 106 NONAME
-	_ZTV23GlxCommandHandlerDelete @ 107 NONAME
-	_ZTV23GlxCommandHandlerRename @ 108 NONAME
-	_ZTV23GlxCommandHandlerRotate @ 109 NONAME
-	_ZTV24GlxCommandHandlerComment @ 110 NONAME
-	_ZTV25GlxCommandHandlerNewMedia @ 111 NONAME
-	_ZTV26GlxCommandHandlerCropImage @ 112 NONAME
-	_ZTV27GlxCommandHandlerRemoveFrom @ 113 NONAME
-	_ZTV28GlxCommandHandlerRotateImage @ 114 NONAME
-	_ZTV31GlxCommandHandlerAddToContainer @ 115 NONAME
-	_ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 116 NONAME
-	_ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 117 NONAME
+	_ZN26GlxCommandHandlerEditImage14executeCommandEii5QListI11QModelIndexE @ 48 NONAME
+	_ZN26GlxCommandHandlerEditImageC1Ev @ 49 NONAME
+	_ZN26GlxCommandHandlerEditImageC2Ev @ 50 NONAME
+	_ZN26GlxCommandHandlerEditImageD0Ev @ 51 NONAME
+	_ZN26GlxCommandHandlerEditImageD1Ev @ 52 NONAME
+	_ZN26GlxCommandHandlerEditImageD2Ev @ 53 NONAME
+	_ZN27GlxCommandHandlerRemoveFromC1Ev @ 54 NONAME
+	_ZN27GlxCommandHandlerRemoveFromC2Ev @ 55 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD0Ev @ 56 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD1Ev @ 57 NONAME
+	_ZN27GlxCommandHandlerRemoveFromD2Ev @ 58 NONAME
+	_ZN31GlxCommandHandlerAddToContainerC1Ev @ 59 NONAME
+	_ZN31GlxCommandHandlerAddToContainerC2Ev @ 60 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD0Ev @ 61 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD1Ev @ 62 NONAME
+	_ZN31GlxCommandHandlerAddToContainerD2Ev @ 63 NONAME
+	_ZNK21GlxCommandHandlerSend18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 64 NONAME
+	_ZNK23GlxCommandHandlerDelete13ProgressTextLEv @ 65 NONAME
+	_ZNK23GlxCommandHandlerDelete14CreateCommandLEiR13MGlxMediaListRi @ 66 NONAME
+	_ZNK23GlxCommandHandlerDelete15CompletionTextLEv @ 67 NONAME
+	_ZNK23GlxCommandHandlerDelete17ConfirmationTextLEb @ 68 NONAME
+	_ZNK23GlxCommandHandlerRename14CreateCommandLEiR13MGlxMediaListRi @ 69 NONAME
+	_ZNK23GlxCommandHandlerRename15CompletionTextLEv @ 70 NONAME
+	_ZNK23GlxCommandHandlerRename7GetNameER13MGlxMediaList @ 71 NONAME
+	_ZNK23GlxCommandHandlerRotate14CreateCommandLEiR13MGlxMediaListRi @ 72 NONAME
+	_ZNK24GlxCommandHandlerComment14CreateCommandLEiR13MGlxMediaListRi @ 73 NONAME
+	_ZNK24GlxCommandHandlerComment15CompletionTextLEv @ 74 NONAME
+	_ZNK24GlxCommandHandlerComment7GetNameER13MGlxMediaList @ 75 NONAME
+	_ZNK25GlxCommandHandlerNewMedia10metaObjectEv @ 76 NONAME
+	_ZNK25GlxCommandHandlerNewMedia13ProgressTextLEv @ 77 NONAME
+	_ZNK25GlxCommandHandlerNewMedia14CreateCommandLEiR13MGlxMediaListRi @ 78 NONAME
+	_ZNK25GlxCommandHandlerNewMedia15CompletionTextLEv @ 79 NONAME
+	_ZNK25GlxCommandHandlerNewMedia26GenerateNewMediaItemTitleLE7QStringR13MGlxMediaList @ 80 NONAME
+	_ZNK26GlxCommandHandlerEditImage18doHandleUserActionEP13GlxMediaModel5QListI11QModelIndexE @ 81 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom13ProgressTextLEv @ 82 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom14CreateCommandLEiR13MGlxMediaListRi @ 83 NONAME
+	_ZNK27GlxCommandHandlerRemoveFrom15CompletionTextLEv @ 84 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer13ProgressTextLEv @ 85 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer14CreateCommandLEiR13MGlxMediaListRi @ 86 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer14createNewMediaEv @ 87 NONAME
+	_ZNK31GlxCommandHandlerAddToContainer15CompletionTextLEv @ 88 NONAME
+	_ZTI21GlxCommandHandlerSend @ 89 NONAME
+	_ZTI23GlxCommandHandlerDelete @ 90 NONAME
+	_ZTI23GlxCommandHandlerRename @ 91 NONAME
+	_ZTI23GlxCommandHandlerRotate @ 92 NONAME
+	_ZTI24GlxCommandHandlerComment @ 93 NONAME
+	_ZTI25GlxCommandHandlerNewMedia @ 94 NONAME
+	_ZTI26GlxCommandHandlerEditImage @ 95 NONAME
+	_ZTI27GlxCommandHandlerRemoveFrom @ 96 NONAME
+	_ZTI31GlxCommandHandlerAddToContainer @ 97 NONAME
+	_ZTV21GlxCommandHandlerSend @ 98 NONAME
+	_ZTV23GlxCommandHandlerDelete @ 99 NONAME
+	_ZTV23GlxCommandHandlerRename @ 100 NONAME
+	_ZTV23GlxCommandHandlerRotate @ 101 NONAME
+	_ZTV24GlxCommandHandlerComment @ 102 NONAME
+	_ZTV25GlxCommandHandlerNewMedia @ 103 NONAME
+	_ZTV26GlxCommandHandlerEditImage @ 104 NONAME
+	_ZTV27GlxCommandHandlerRemoveFrom @ 105 NONAME
+	_ZTV31GlxCommandHandlerAddToContainer @ 106 NONAME
+	_ZThn8_N25GlxCommandHandlerNewMedia11HandleErrorEi @ 107 NONAME
+	_ZThn8_N25GlxCommandHandlerNewMedia16HandleItemAddedLEiiP13MGlxMediaList @ 108 NONAME
 
--- a/ui/detailscustomwidget/bwins/detailsdescriptioneditu.def	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-EXPORTS
-	?qt_metacall@GlxDetailsDescriptionEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 1 NONAME ; int GlxDetailsDescriptionEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?qt_metacast@GlxDetailsDescriptionEdit@@UAEPAXPBD@Z @ 2 NONAME ; void * GlxDetailsDescriptionEdit::qt_metacast(char const *)
-	??1GlxDetailsDescriptionEdit@@UAE@XZ @ 3 NONAME ; GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit(void)
-	?staticMetaObject@GlxDetailsDescriptionEdit@@2UQMetaObject@@B @ 4 NONAME ; struct QMetaObject const GlxDetailsDescriptionEdit::staticMetaObject
-	??0GlxDetailsDescriptionEdit@@QAE@PAVQGraphicsItem@@@Z @ 5 NONAME ; GlxDetailsDescriptionEdit::GlxDetailsDescriptionEdit(class QGraphicsItem *)
-	?tr@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString GlxDetailsDescriptionEdit::tr(char const *, char const *, int)
-	??_EGlxDetailsDescriptionEdit@@UAE@I@Z @ 7 NONAME ; GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit(unsigned int)
-	?labelPressed@GlxDetailsDescriptionEdit@@IAEXXZ @ 8 NONAME ; void GlxDetailsDescriptionEdit::labelPressed(void)
-	?metaObject@GlxDetailsDescriptionEdit@@UBEPBUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const * GlxDetailsDescriptionEdit::metaObject(void) const
-	?focusInEvent@GlxDetailsDescriptionEdit@@MAEXPAVQFocusEvent@@@Z @ 10 NONAME ; void GlxDetailsDescriptionEdit::focusInEvent(class QFocusEvent *)
-	?trUtf8@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0H@Z @ 11 NONAME ; class QString GlxDetailsDescriptionEdit::trUtf8(char const *, char const *, int)
-	?focusOutEvent@GlxDetailsDescriptionEdit@@MAEXPAVQFocusEvent@@@Z @ 12 NONAME ; void GlxDetailsDescriptionEdit::focusOutEvent(class QFocusEvent *)
-	?tr@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0@Z @ 13 NONAME ; class QString GlxDetailsDescriptionEdit::tr(char const *, char const *)
-	?getStaticMetaObject@GlxDetailsDescriptionEdit@@SAABUQMetaObject@@XZ @ 14 NONAME ; struct QMetaObject const & GlxDetailsDescriptionEdit::getStaticMetaObject(void)
-	?setItemText@GlxDetailsDescriptionEdit@@QAEXABVQString@@@Z @ 15 NONAME ; void GlxDetailsDescriptionEdit::setItemText(class QString const &)
-	?trUtf8@GlxDetailsDescriptionEdit@@SA?AVQString@@PBD0@Z @ 16 NONAME ; class QString GlxDetailsDescriptionEdit::trUtf8(char const *, char const *)
-
--- a/ui/detailscustomwidget/bwins/detailsnamelabelu.def	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-EXPORTS
-	??_EGlxDetailsNameLabel@@UAE@I@Z @ 1 NONAME ; GlxDetailsNameLabel::~GlxDetailsNameLabel(unsigned int)
-	??1GlxDetailsNameLabel@@UAE@XZ @ 2 NONAME ; GlxDetailsNameLabel::~GlxDetailsNameLabel(void)
-	?tr@GlxDetailsNameLabel@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString GlxDetailsNameLabel::tr(char const *, char const *)
-	?mousePressEvent@GlxDetailsNameLabel@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 4 NONAME ; void GlxDetailsNameLabel::mousePressEvent(class QGraphicsSceneMouseEvent *)
-	?metaObject@GlxDetailsNameLabel@@UBEPBUQMetaObject@@XZ @ 5 NONAME ; struct QMetaObject const * GlxDetailsNameLabel::metaObject(void) const
-	?getStaticMetaObject@GlxDetailsNameLabel@@SAABUQMetaObject@@XZ @ 6 NONAME ; struct QMetaObject const & GlxDetailsNameLabel::getStaticMetaObject(void)
-	?staticMetaObject@GlxDetailsNameLabel@@2UQMetaObject@@B @ 7 NONAME ; struct QMetaObject const GlxDetailsNameLabel::staticMetaObject
-	?qt_metacall@GlxDetailsNameLabel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8 NONAME ; int GlxDetailsNameLabel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0GlxDetailsNameLabel@@QAE@PAVQGraphicsItem@@@Z @ 9 NONAME ; GlxDetailsNameLabel::GlxDetailsNameLabel(class QGraphicsItem *)
-	?labelPressed@GlxDetailsNameLabel@@IAEXXZ @ 10 NONAME ; void GlxDetailsNameLabel::labelPressed(void)
-	?setItemText@GlxDetailsNameLabel@@QAEXABVQString@@@Z @ 11 NONAME ; void GlxDetailsNameLabel::setItemText(class QString const &)
-	?mouseReleaseEvent@GlxDetailsNameLabel@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 12 NONAME ; void GlxDetailsNameLabel::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
-	?trUtf8@GlxDetailsNameLabel@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString GlxDetailsNameLabel::trUtf8(char const *, char const *, int)
-	?trUtf8@GlxDetailsNameLabel@@SA?AVQString@@PBD0@Z @ 14 NONAME ; class QString GlxDetailsNameLabel::trUtf8(char const *, char const *)
-	?tr@GlxDetailsNameLabel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxDetailsNameLabel::tr(char const *, char const *, int)
-	?qt_metacast@GlxDetailsNameLabel@@UAEPAXPBD@Z @ 16 NONAME ; void * GlxDetailsNameLabel::qt_metacast(char const *)
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/bwins/glxdetailscustomwidgetsu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,34 @@
+EXPORTS
+	?focusInEvent@GlxDetailsTextEdit@@MAEXPAVQFocusEvent@@@Z @ 1 NONAME ; void GlxDetailsTextEdit::focusInEvent(class QFocusEvent *)
+	??1GlxDetailsIcon@@UAE@XZ @ 2 NONAME ; GlxDetailsIcon::~GlxDetailsIcon(void)
+	??1GlxDetailsTextEdit@@UAE@XZ @ 3 NONAME ; GlxDetailsTextEdit::~GlxDetailsTextEdit(void)
+	?trUtf8@GlxDetailsIcon@@SA?AVQString@@PBD0H@Z @ 4 NONAME ; class QString GlxDetailsIcon::trUtf8(char const *, char const *, int)
+	?labelPressed@GlxDetailsTextEdit@@IAEXXZ @ 5 NONAME ; void GlxDetailsTextEdit::labelPressed(void)
+	?qt_metacall@GlxDetailsIcon@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 6 NONAME ; int GlxDetailsIcon::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?metaObject@GlxDetailsIcon@@UBEPBUQMetaObject@@XZ @ 7 NONAME ; struct QMetaObject const * GlxDetailsIcon::metaObject(void) const
+	?tr@GlxDetailsIcon@@SA?AVQString@@PBD0H@Z @ 8 NONAME ; class QString GlxDetailsIcon::tr(char const *, char const *, int)
+	?staticMetaObject@GlxDetailsIcon@@2UQMetaObject@@B @ 9 NONAME ; struct QMetaObject const GlxDetailsIcon::staticMetaObject
+	??_EGlxDetailsTextEdit@@UAE@I@Z @ 10 NONAME ; GlxDetailsTextEdit::~GlxDetailsTextEdit(unsigned int)
+	?tr@GlxDetailsTextEdit@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxDetailsTextEdit::tr(char const *, char const *)
+	?trUtf8@GlxDetailsIcon@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxDetailsIcon::trUtf8(char const *, char const *)
+	?getStaticMetaObject@GlxDetailsTextEdit@@SAABUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const & GlxDetailsTextEdit::getStaticMetaObject(void)
+	?updateFavourites@GlxDetailsIcon@@IAEXXZ @ 14 NONAME ; void GlxDetailsIcon::updateFavourites(void)
+	?mousePressEvent@GlxDetailsIcon@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 15 NONAME ; void GlxDetailsIcon::mousePressEvent(class QGraphicsSceneMouseEvent *)
+	?staticMetaObject@GlxDetailsTextEdit@@2UQMetaObject@@B @ 16 NONAME ; struct QMetaObject const GlxDetailsTextEdit::staticMetaObject
+	?setItemText@GlxDetailsTextEdit@@QAEXABVQString@@@Z @ 17 NONAME ; void GlxDetailsTextEdit::setItemText(class QString const &)
+	?tr@GlxDetailsIcon@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString GlxDetailsIcon::tr(char const *, char const *)
+	?getStaticMetaObject@GlxDetailsIcon@@SAABUQMetaObject@@XZ @ 19 NONAME ; struct QMetaObject const & GlxDetailsIcon::getStaticMetaObject(void)
+	?qt_metacall@GlxDetailsTextEdit@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 20 NONAME ; int GlxDetailsTextEdit::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@GlxDetailsTextEdit@@SA?AVQString@@PBD0H@Z @ 21 NONAME ; class QString GlxDetailsTextEdit::trUtf8(char const *, char const *, int)
+	?mouseReleaseEvent@GlxDetailsIcon@@MAEXPAVQGraphicsSceneMouseEvent@@@Z @ 22 NONAME ; void GlxDetailsIcon::mouseReleaseEvent(class QGraphicsSceneMouseEvent *)
+	?qt_metacast@GlxDetailsIcon@@UAEPAXPBD@Z @ 23 NONAME ; void * GlxDetailsIcon::qt_metacast(char const *)
+	??_EGlxDetailsIcon@@UAE@I@Z @ 24 NONAME ; GlxDetailsIcon::~GlxDetailsIcon(unsigned int)
+	?trUtf8@GlxDetailsTextEdit@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString GlxDetailsTextEdit::trUtf8(char const *, char const *)
+	?metaObject@GlxDetailsTextEdit@@UBEPBUQMetaObject@@XZ @ 26 NONAME ; struct QMetaObject const * GlxDetailsTextEdit::metaObject(void) const
+	?qt_metacast@GlxDetailsTextEdit@@UAEPAXPBD@Z @ 27 NONAME ; void * GlxDetailsTextEdit::qt_metacast(char const *)
+	?tr@GlxDetailsTextEdit@@SA?AVQString@@PBD0H@Z @ 28 NONAME ; class QString GlxDetailsTextEdit::tr(char const *, char const *, int)
+	??0GlxDetailsIcon@@QAE@PAVQGraphicsItem@@@Z @ 29 NONAME ; GlxDetailsIcon::GlxDetailsIcon(class QGraphicsItem *)
+	?focusOutEvent@GlxDetailsTextEdit@@MAEXPAVQFocusEvent@@@Z @ 30 NONAME ; void GlxDetailsTextEdit::focusOutEvent(class QFocusEvent *)
+	??0GlxDetailsTextEdit@@QAE@PAVQGraphicsItem@@@Z @ 31 NONAME ; GlxDetailsTextEdit::GlxDetailsTextEdit(class QGraphicsItem *)
+	?setItemIcon@GlxDetailsIcon@@QAEXABVHbIcon@@@Z @ 32 NONAME ; void GlxDetailsIcon::setItemIcon(class HbIcon const &)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/detailscustomplugin/detailscustomplugin.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,68 @@
+#/* 
+#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+#* All rights reserved.
+#* This component and the accompanying materials are made available
+#* under the terms of "Eclipse Public License v1.0"
+#* which accompanies this distribution, and is available
+#* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#*
+#* Initial Contributors:
+#* Nokia Corporation - initial contribution.
+#*
+#* Contributors:
+#* 
+#* Description:
+#*
+#*/ 
+
+TEMPLATE = lib
+TARGET = glxdetailscustomplugin
+
+win32{
+CONFIG(release, debug|release){
+	TARGET = glxdetailscustomplugin
+	} else {
+	TARGET = glxdetailscustomplugind
+	}
+}
+
+CONFIG += hb plugin
+
+win32{
+CONFIG(release, debug|release){
+		DESTDIR = ../release # for easy plugin loading
+		LIBS += -L../release -lglxdetailscustomwidgets
+	} else {
+		DESTDIR = ../debug # for easy plugin loading
+		LIBS += -L../debug -lglxdetailscustomwidgetsd
+	}
+}
+
+SOURCES += \
+        main.cpp
+
+INCLUDEPATH += \
+            ../detailscustomwidgets
+
+symbian: { 
+    TARGET.UID3 = 0x200071B7
+	TARGET.EPOCALLOWDLLDATA=1
+	TARGET.CAPABILITY = CAP_GENERAL_DLL
+	MMP_RULES += SMPSAFE 
+	
+	  
+	LIBS += \
+	    -lglxdetailscustomwidgets.dll
+
+	pluginstub.sources = glxdetailscustomplugin.dll
+	pluginstub.path = /resource/plugins
+	DEPLOYMENT += pluginstub
+	DESTDIR = $$HB_PLUGINS_DIR
+}
+
+!local {
+    target.path = $$HB_PLUGINS_DIR
+    INSTALLS += target
+}
+
+# End of file	--Don't remove this.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/detailscustomplugin/main.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,59 @@
+/*
+ * 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:   Details custom widgets plugin
+ *
+ */
+
+#include "glxdetailstextedit.h"
+#include "glxdetailsicon.h"
+
+#include <QtPlugin>
+#include <hbdocumentloaderplugin.h>
+
+class GlxDetailsCustomPlugin : public HbDocumentLoaderPlugin
+{
+public:
+    QObject *createObject(const QString& type, const QString &name);
+    QList<const QMetaObject *> supportedObjects();  
+};
+Q_EXPORT_PLUGIN(GlxDetailsCustomPlugin)
+
+QObject *GlxDetailsCustomPlugin::createObject(const QString& type, const QString &name )
+{ 
+ 
+    if( type == GlxDetailsTextEdit::staticMetaObject.className() ) {
+        QObject *object = new GlxDetailsTextEdit();
+        object->setObjectName(name);
+        return object;    
+    }
+    
+    if( type == GlxDetailsIcon::staticMetaObject.className() ) {
+        QObject *object = new GlxDetailsIcon();
+        object->setObjectName(name);
+        return object;    
+    }
+    
+    return 0;
+}
+
+QList<const QMetaObject *> GlxDetailsCustomPlugin::supportedObjects()
+{
+    QList<const QMetaObject *> result;
+    result.append( &GlxDetailsTextEdit::staticMetaObject );
+    result.append( &GlxDetailsIcon::staticMetaObject );
+    return result;
+}
+
+// end of file 
+
--- a/ui/detailscustomwidget/detailscustomwidget.pro	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/detailscustomwidget/detailscustomwidget.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -17,8 +17,7 @@
  
            
 TEMPLATE = subdirs
-SUBDIRS += detailsnamelabel
-SUBDIRS += detailsnamelabelplugin
-SUBDIRS += detailsdescriptionedit
-SUBDIRS += detailsdescriptioneditplugin
+
+SUBDIRS += detailscustomwidgets
+SUBDIRS += detailscustomplugin
 CONFIG += ordered
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/detailscustomwidgets/detailscustomwidgets.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,65 @@
+#/* 
+#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+#* All rights reserved.
+#* This component and the accompanying materials are made available
+#* under the terms of "Eclipse Public License v1.0"
+#* which accompanies this distribution, and is available
+#* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#*
+#* Initial Contributors:
+#* Nokia Corporation - initial contribution.
+#*
+#* Contributors:
+#* 
+#* Description:
+#*
+#*/ 
+
+TEMPLATE = lib
+TARGET = glxdetailscustomwidgets
+CONFIG += hb
+DEFINES += BUILD_DETAILSCUSTOM
+
+win32{
+CONFIG(release, debug|release){
+  TARGET = glxdetailscustomwidgets
+  DESTDIR = ../release # for easy plugin loading
+}else{
+  TARGET = glxdetailscustomwidgetsd
+  DESTDIR = ../debug # for easy plugin loading
+  }
+}
+
+DEPENDPATH += ./inc \
+              ./src
+
+INCLUDEPATH += ./inc
+
+SOURCES += \
+		   glxdetailsicon.cpp \
+		   glxdetailstextedit.cpp
+
+HEADERS += \
+		   glxdetailsicon.h \
+		   glxdetailstextedit.h
+        
+            
+symbian {
+    TARGET.UID3 = 0x2000A7BC
+    TARGET.EPOCALLOWDLLDATA = 1
+    TARGET.CAPABILITY = CAP_GENERAL_DLL
+    MMP_RULES += SMPSAFE 
+    
+    LIBS += -lbafl
+}
+
+defBlock = \      
+"$${LITERAL_HASH}if defined(EABI)" \
+"DEFFILE  ../eabi/glxdetailscustomwidgets.def" \
+	 "$${LITERAL_HASH}else" \
+	 "DEFFILE  ../bwins/glxdetailscustomwidgets.def" \
+             "$${LITERAL_HASH}endif"
+	
+MMP_RULES += defBlock
+
+# End of file	--Don't remove this
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,75 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ?Description
+*
+*/
+
+
+#include <hbiconitem.h>
+#include <hbframeitem.h>
+#include "glxdetailsicon.h"
+#include <hbstackedlayout.h>
+#include <QEvent>
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//mousePressEvent
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsIcon::mousePressEvent(QGraphicsSceneMouseEvent *event)
+{
+    Q_UNUSED(event)
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//clearCurrentModel
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsIcon::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) 
+{
+  Q_UNUSED(event)  
+  emit updateFavourites();
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//GlxDetailsIcon
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsIcon::GlxDetailsIcon(QGraphicsItem *parent) : HbWidget(parent)
+{
+  mFavIcon = new HbIconItem(this);
+  //add the layout to the icon or else the icon is not showed.
+  HbStackedLayout *stackedLayout = new HbStackedLayout;
+  stackedLayout->addItem( mFavIcon );
+  setLayout( stackedLayout );
+  
+  mFavIcon->setOpacity(0.7);
+  HbFrameItem* frame = new HbFrameItem(this);
+  frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
+  frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
+  frame->graphicsItem()->setOpacity(0.1); 
+  setBackgroundItem(frame->graphicsItem(),-1);   
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//~GlxDetailsIcon
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsIcon::~GlxDetailsIcon()
+{
+  delete mFavIcon;
+  mFavIcon = NULL;
+}
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setItemIcon
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsIcon::setItemIcon(const HbIcon &icon)
+{
+    mFavIcon->setIcon(icon);    
+} 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailsicon.h	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,57 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ?Description
+*
+*/
+
+#ifndef GLXDETAILSICON_H
+#define GLXDETAILSICON_H
+
+#include <hbwidget.h>
+
+
+#ifdef BUILD_DETAILSCUSTOM
+#define MY_EXPORT Q_DECL_EXPORT
+#else
+#define MY_EXPORT Q_DECL_IMPORT
+#endif
+
+class HbIconItem;
+class HbIcon;
+
+class MY_EXPORT GlxDetailsIcon : public HbWidget 
+{	
+    Q_OBJECT
+    
+public:
+    GlxDetailsIcon(QGraphicsItem *parent = NULL);
+    ~GlxDetailsIcon();
+    	
+	/*
+	 * Sets the  Icon of Favourite IconItem.
+	 */
+	void setItemIcon(const HbIcon &icon);
+	
+protected:
+    void mousePressEvent(QGraphicsSceneMouseEvent *event);	
+    void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
+    
+signals :
+     void updateFavourites();
+
+private:
+   HbIconItem *mFavIcon;   
+};
+
+#endif // GLXDETAILSICON_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,74 @@
+/*
+* 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:   This is custom widget for details view in photos for displaying the description of image .
+*
+*/
+ 
+
+
+#include "glxdetailstextedit.h"
+#include <hbeditorinterface>
+#include <QEvent>
+
+
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//focusInEvent
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void  GlxDetailsTextEdit::focusInEvent (QFocusEvent *event)
+    {
+    if(event->reason() == Qt::MouseFocusReason )
+        {
+          event->setAccepted(TRUE);
+          emit labelPressed();
+        }
+    
+    }
+    
+    
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//focusOutEvent
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void  GlxDetailsTextEdit::focusOutEvent (QFocusEvent *event) 
+    {
+     event->setAccepted(TRUE);    
+    }
+
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//GlxDetailsTextEdit
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsTextEdit::GlxDetailsTextEdit(QGraphicsItem *parent) : HbTextEdit( parent )
+{
+   setAlignment(Qt::AlignLeft);
+   mDesc = new HbEditorInterface(this);
+   mDesc->setInputConstraints (HbEditorConstraintIgnoreFocus);
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//~GlxDetailsTextEdit
+//--------------------------------------------------------------------------------------------------------------------------------------------
+GlxDetailsTextEdit::~GlxDetailsTextEdit()
+{
+  delete mDesc;
+   mDesc = NULL;
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//setItemText
+//--------------------------------------------------------------------------------------------------------------------------------------------
+void GlxDetailsTextEdit::setItemText( const QString &text )
+{
+    setPlainText( text );
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/detailscustomwidgets/glxdetailstextedit.h	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,50 @@
+/*
+* 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:   This is custom widget for details view in photos for displaying the description of image .
+*
+*/
+ 
+#ifndef GlXDETAILSDESCEDIT_H
+#define GlXDETAILSDESCEDIT_H
+
+#include <hbtextedit.h>
+
+#ifdef BUILD_DETAILSCUSTOM
+#define MY_EXPORT Q_DECL_EXPORT
+#else
+#define MY_EXPORT Q_DECL_IMPORT
+#endif
+
+class HbEditorInterface;
+class MY_EXPORT GlxDetailsTextEdit : public HbTextEdit 
+{	
+    Q_OBJECT
+    
+public:
+    GlxDetailsTextEdit(QGraphicsItem *parent = NULL);
+    ~GlxDetailsTextEdit();    	
+    void setItemText( const QString &text );
+		
+protected:
+    void  focusInEvent (QFocusEvent *event) ;
+    void  focusOutEvent (QFocusEvent *event) ;
+
+    
+signals :
+     void labelPressed();
+private:
+     HbEditorInterface *mDesc;     
+};
+
+#endif // GlXDETAILSDESCEDIT_H
--- a/ui/detailscustomwidget/detailsdescriptionedit/detailsdescriptionedit.pro	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-#/* 
-#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-#* All rights reserved.
-#* This component and the accompanying materials are made available
-#* under the terms of "Eclipse Public License v1.0"
-#* which accompanies this distribution, and is available
-#* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#*
-#* Initial Contributors:
-#* Nokia Corporation - initial contribution.
-#*
-#* Contributors:
-#* 
-#* Description:
-#*
-#*/ 
- 
-
-TEMPLATE = lib
-TARGET = detailsdescriptionedit
-CONFIG += hb
-DEFINES += BUILD_DESCEDIT
-
-win32{
-CONFIG(release, debug|release){
-  TARGET = detailsdescriptionedit
-  DESTDIR = ../release # for easy plugin loading
-}else{
-  TARGET = detailsdescriptioneditd
-  DESTDIR = ../debug # for easy plugin loading
-  }
-}
-
-DEPENDPATH += ./inc \
-              ./src
-
-INCLUDEPATH += ./inc
-
-SOURCES += \
-		glxdetailsdescriptionedit.cpp
-
-HEADERS += \
-        glxdetailsdescriptionedit.h 
-            
-symbian {
-    TARGET.UID3 = 0x200071B9
-    TARGET.EPOCALLOWDLLDATA = 1
-    TARGET.CAPABILITY = CAP_GENERAL_DLL
-    MMP_RULES += SMPSAFE 
-    LIBS += -lbafl
-}
-
-defBlock = \      
-"$${LITERAL_HASH}if defined(EABI)" \
-"DEFFILE  ../eabi/detailsdescriptionedit.def" \
-	 "$${LITERAL_HASH}else" \
-	 "DEFFILE  ../bwins/detailsdescriptionedit.def" \
-             "$${LITERAL_HASH}endif"
-	
-MMP_RULES += defBlock
-# End of file	--Don't remove this
--- a/ui/detailscustomwidget/detailsdescriptionedit/inc/glxdetailsdescriptionedit.h	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-/*
-* 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:   This is custom widget for details view in photos for displaying the description of image .
-*
-*/
- 
-#ifndef GlXDETAILSDESCEDIT_H
-#define GlXDETAILSDESCEDIT_H
-
-#include <hbtextedit.h>
-
-#ifdef BUILD_DESCEDIT
-#define MY_EXPORT Q_DECL_EXPORT
-#else
-#define MY_EXPORT Q_DECL_IMPORT
-#endif
-
-class HbEditorInterface;
-class MY_EXPORT GlxDetailsDescriptionEdit : public HbTextEdit 
-{	
-    Q_OBJECT
-    
-public:
-    GlxDetailsDescriptionEdit(QGraphicsItem *parent = NULL);
-    ~GlxDetailsDescriptionEdit();    	
-    void setItemText( const QString &text );
-		
-protected:
-    void  focusInEvent (QFocusEvent *event) ;
-    void  focusOutEvent (QFocusEvent *event) ;
-
-    
-signals :
-     void labelPressed();
-private:
-     HbEditorInterface *mDesc;     
-};
-
-#endif // GlXDETAILSDESCEDIT_H
--- a/ui/detailscustomwidget/detailsdescriptionedit/src/glxdetailsdescriptionedit.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-/*
-* 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:   This is custom widget for details view in photos for displaying the description of image .
-*
-*/
- 
-
-
-#include "glxdetailsdescriptionedit.h"
-#include <hbeditorinterface>
-#include <QEvent>
-
-
-
-void  GlxDetailsDescriptionEdit::focusInEvent (QFocusEvent *event)
-    {
-    if(event->reason() == Qt::MouseFocusReason )
-        {
-          event->setAccepted(TRUE);
-          emit labelPressed();
-        }
-    
-    }
-void  GlxDetailsDescriptionEdit::focusOutEvent (QFocusEvent *event) 
-    {
-     event->setAccepted(TRUE);    
-    }
-
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//GlxDetailsDescLabel
-//--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsDescriptionEdit::GlxDetailsDescriptionEdit(QGraphicsItem *parent) : HbTextEdit( parent )
-{
-   setAlignment(Qt::AlignLeft);
-   mDesc = new HbEditorInterface(this);
-   mDesc->setInputConstraints (HbEditorConstraintIgnoreFocus);
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//~GlxDetailsDescLabel
-//--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsDescriptionEdit::~GlxDetailsDescriptionEdit()
-{
-  delete mDesc;
-   mDesc = NULL;
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setItemText
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsDescriptionEdit::setItemText( const QString &text )
-{
-    setPlainText( text );
-}
--- a/ui/detailscustomwidget/detailsdescriptioneditplugin/detailsdescriptioneditplugin.pro	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-#/* 
-#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-#* All rights reserved.
-#* This component and the accompanying materials are made available
-#* under the terms of "Eclipse Public License v1.0"
-#* which accompanies this distribution, and is available
-#* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#*
-#* Initial Contributors:
-#* Nokia Corporation - initial contribution.
-#*
-#* Contributors:
-#* 
-#* Description:
-#*
-#*/ 
-
-TEMPLATE = lib
-TARGET = detailsdescriptioneditplugin
-
-win32{
-CONFIG(release, debug|release){
-	TARGET = detailsdescriptioneditplugin
-	} else {
-	TARGET = detailsdescriptioneditplugind
-	}
-}
-
-CONFIG += hb plugin
-
-win32{
-CONFIG(release, debug|release){
-		DESTDIR = ../release # for easy plugin loading
-		LIBS += -L../release -ldetailsdescriptionedit
-	} else {
-		DESTDIR = ../debug # for easy plugin loading
-		LIBS += -L../debug -ldetailsdescriptioneditd
-	}
-}
-
-SOURCES += \
-        main.cpp
-
-INCLUDEPATH += \
-            ../detailsdescriptionedit \ 
-            ../detailsdescriptionedit/inc
-
-symbian: { 
-    TARGET.UID3 = 0x2000A774
-	TARGET.EPOCALLOWDLLDATA=1
-	TARGET.CAPABILITY = CAP_GENERAL_DLL
-	MMP_RULES += SMPSAFE 
-	
-	  
-	LIBS += \
-	    -ldetailsdescriptionedit.dll
-
-	pluginstub.sources = detailsdescriptioneditplugin.dll
-	pluginstub.path = /resource/plugins
-	DEPLOYMENT += pluginstub
-	DESTDIR = $$HB_PLUGINS_DIR
-}
-
-!local {
-    target.path = $$HB_PLUGINS_DIR
-    INSTALLS += target
-}
-
-# End of file	--Don't remove this.
--- a/ui/detailscustomwidget/detailsdescriptioneditplugin/main.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
-* 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:  ??
-*
-*/
- 
-
-#include "glxdetailsdescriptionedit.h"
-#include <QtPlugin>
-#include <hbdocumentloaderplugin.h>
-
-class GlxDetailsDescriptionEditPlugin : public HbDocumentLoaderPlugin
-{
-public:
-    QObject *createObject(const QString& type, const QString &name);
-    QList<const QMetaObject *> supportedObjects();  
-};
-Q_EXPORT_PLUGIN(GlxDetailsDescriptionEditPlugin)
-
-QObject *GlxDetailsDescriptionEditPlugin::createObject(const QString& type, const QString &name )
-{
-    if( type == GlxDetailsDescriptionEdit::staticMetaObject.className() ) {
-        QObject *object = new GlxDetailsDescriptionEdit();
-        object->setObjectName(name);
-        return object;    
-    }
-    return 0;
-}
-
-QList<const QMetaObject *> GlxDetailsDescriptionEditPlugin::supportedObjects()
-{
-    QList<const QMetaObject *> result;
-    result.append( &GlxDetailsDescriptionEdit::staticMetaObject );
-    return result;
-}
-
-// end of file 
-
--- a/ui/detailscustomwidget/detailsnamelabel/detailsnamelabel.pro	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-#/* 
-#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-#* All rights reserved.
-#* This component and the accompanying materials are made available
-#* under the terms of "Eclipse Public License v1.0"
-#* which accompanies this distribution, and is available
-#* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#*
-#* Initial Contributors:
-#* Nokia Corporation - initial contribution.
-#*
-#* Contributors:
-#* 
-#* Description:
-#*
-#*/ 
-
-TEMPLATE = lib
-TARGET = detailsnamelabel
-CONFIG += hb
-DEFINES += BUILD_NAMELABEL
-
-win32{
-CONFIG(release, debug|release){
-  TARGET = detailsnamelabel
-  DESTDIR = ../release # for easy plugin loading
-}else{
-  TARGET = detailsnamelabeld
-  DESTDIR = ../debug # for easy plugin loading
-  }
-}
-
-DEPENDPATH += ./inc \
-              ./src
-
-INCLUDEPATH += ./inc
-
-SOURCES += \
-		glxdetailsnamelabel.cpp
-
-HEADERS += \
-        glxdetailsnamelabel.h 
-            
-symbian {
-    TARGET.UID3 = 0x2000A7BC
-    TARGET.EPOCALLOWDLLDATA = 1
-    TARGET.CAPABILITY = CAP_GENERAL_DLL
-    MMP_RULES += SMPSAFE 
-    
-    LIBS += -lbafl
-}
-
-defBlock = \      
-"$${LITERAL_HASH}if defined(EABI)" \
-"DEFFILE  ../eabi/detailsnamelabel.def" \
-	 "$${LITERAL_HASH}else" \
-	 "DEFFILE  ../bwins/detailsnamelabel.def" \
-             "$${LITERAL_HASH}endif"
-	
-MMP_RULES += defBlock
-
-# End of file	--Don't remove this
--- a/ui/detailscustomwidget/detailsnamelabel/inc/glxdetailsnamelabel.h	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   ?Description
-*
-*/
-
-#ifndef GlXDETAILSNAMELABEL_H
-#define GlXDETAILSNAMELABEL_H
-
-#include <hblabel.h>
-
-#ifdef BUILD_NAMELABEL
-#define MY_EXPORT Q_DECL_EXPORT
-#else
-#define MY_EXPORT Q_DECL_IMPORT
-#endif
-
-
-class MY_EXPORT GlxDetailsNameLabel : public HbLabel 
-{	
-    Q_OBJECT
-    
-public:
-    GlxDetailsNameLabel(QGraphicsItem *parent = NULL);
-    ~GlxDetailsNameLabel();    	
-    void setItemText( const QString &text );
-		
-protected:
-    void mousePressEvent(QGraphicsSceneMouseEvent *event);	
-    void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
-    
-signals :
-     void labelPressed();
-     
-};
-
-#endif // GlXDETAILSNAMELABEL_H
--- a/ui/detailscustomwidget/detailsnamelabel/src/glxdetailsnamelabel.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/*
-* 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 <hblabel.h>
-#include "glxdetailsnamelabel.h"
-#include <QEvent>
-#include <QDebug>
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//mousePressEvent
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsNameLabel::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
-    Q_UNUSED(event)
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//mouseReleaseEvent
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsNameLabel::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) 
-{
-    qDebug("GlxDetailsNameLabel::mouseReleaseEvent");
-    Q_UNUSED(event)  
-    emit labelPressed();
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//GlxDetailsNameLabel
-//--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsNameLabel::GlxDetailsNameLabel(QGraphicsItem *parent) : HbLabel( parent )
-{
-    qDebug("GlxDetailsNameLabel::GlxDetailsNameLabel");
-     setTextWrapping(Hb::TextWordWrap);
-     setAlignment(Qt::AlignHCenter);
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//~GlxDetailsCustomLabel
-//--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsNameLabel::~GlxDetailsNameLabel()
-{
-
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setItemText
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsNameLabel::setItemText( const QString &text )
-{
-    qDebug("GlxDetailsNameLabel::setItemText");
-    setHtml(text);
-}
--- a/ui/detailscustomwidget/detailsnamelabelplugin/detailsnamelabelplugin.pro	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-#/* 
-#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-#* All rights reserved.
-#* This component and the accompanying materials are made available
-#* under the terms of "Eclipse Public License v1.0"
-#* which accompanies this distribution, and is available
-#* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-#*
-#* Initial Contributors:
-#* Nokia Corporation - initial contribution.
-#*
-#* Contributors:
-#* 
-#* Description:
-#*
-#*/ 
-
-TEMPLATE = lib
-TARGET = detailsnamelabelplugin
-
-win32{
-CONFIG(release, debug|release){
-	TARGET = detailsnamelabelplugin
-	} else {
-	TARGET = detailsnamelabelplugind
-	}
-}
-
-CONFIG += hb plugin
-
-win32{
-CONFIG(release, debug|release){
-		DESTDIR = ../release # for easy plugin loading
-		LIBS += -L../release -ldetailsnamelabel
-	} else {
-		DESTDIR = ../debug # for easy plugin loading
-		LIBS += -L../debug -ldetailsnamelabeld
-	}
-}
-
-SOURCES += \
-        main.cpp
-
-INCLUDEPATH += \
-            ../detailsnamelabel \ 
-            ../detailsnamelabel/inc
-
-symbian: { 
-    TARGET.UID3 = 0x200071B7
-	TARGET.EPOCALLOWDLLDATA=1
-	TARGET.CAPABILITY = CAP_GENERAL_DLL
-	MMP_RULES += SMPSAFE 
-	
-	  
-	LIBS += \
-	    -ldetailsnamelabel.dll
-
-	pluginstub.sources = detailsnamelabelplugin.dll
-	pluginstub.path = /resource/plugins
-	DEPLOYMENT += pluginstub
-	DESTDIR = $$HB_PLUGINS_DIR
-}
-
-!local {
-    target.path = $$HB_PLUGINS_DIR
-    INSTALLS += target
-}
-
-# End of file	--Don't remove this.
--- a/ui/detailscustomwidget/detailsnamelabelplugin/main.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
-* 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 "glxdetailsnamelabel.h"
-#include <QtPlugin>
-#include <hbdocumentloaderplugin.h>
-#include <QDebug>
-
-class GlxDetailsNameLabelPlugin : public HbDocumentLoaderPlugin
-{
-public:
-    QObject *createObject(const QString& type, const QString &name);
-    QList<const QMetaObject *> supportedObjects();  
-};
-Q_EXPORT_PLUGIN(GlxDetailsNameLabelPlugin)
-
-QObject *GlxDetailsNameLabelPlugin::createObject(const QString& type, const QString &name )
-{
-    qDebug("GlxDetailsNameLabelPlugin::createObject");
-    if( type == GlxDetailsNameLabel::staticMetaObject.className() ) {
-    
-        qDebug("GlxDetailsNameLabelPlugin::createObject created");
-        QObject *object = new GlxDetailsNameLabel();
-        object->setObjectName(name);
-        return object;    
-    }
-    return 0;
-}
-
-QList<const QMetaObject *> GlxDetailsNameLabelPlugin::supportedObjects()
-{
-    qDebug("GlxDetailsNameLabelPlugin::supportedObjects");
-    QList<const QMetaObject *> result;
-    result.append( &GlxDetailsNameLabel::staticMetaObject );
-    return result;
-}
-
-// end of file 
-
--- a/ui/detailscustomwidget/eabi/detailsdescriptioneditu.def	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-EXPORTS
-	_ZN25GlxDetailsDescriptionEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
-	_ZN25GlxDetailsDescriptionEdit11qt_metacastEPKc @ 2 NONAME
-	_ZN25GlxDetailsDescriptionEdit11setItemTextERK7QString @ 3 NONAME
-	_ZN25GlxDetailsDescriptionEdit12focusInEventEP11QFocusEvent @ 4 NONAME
-	_ZN25GlxDetailsDescriptionEdit12labelPressedEv @ 5 NONAME
-	_ZN25GlxDetailsDescriptionEdit13focusOutEventEP11QFocusEvent @ 6 NONAME
-	_ZN25GlxDetailsDescriptionEdit16staticMetaObjectE @ 7 NONAME DATA 16
-	_ZN25GlxDetailsDescriptionEdit19getStaticMetaObjectEv @ 8 NONAME
-	_ZN25GlxDetailsDescriptionEditC1EP13QGraphicsItem @ 9 NONAME
-	_ZN25GlxDetailsDescriptionEditC2EP13QGraphicsItem @ 10 NONAME
-	_ZN25GlxDetailsDescriptionEditD0Ev @ 11 NONAME
-	_ZN25GlxDetailsDescriptionEditD1Ev @ 12 NONAME
-	_ZN25GlxDetailsDescriptionEditD2Ev @ 13 NONAME
-	_ZNK25GlxDetailsDescriptionEdit10metaObjectEv @ 14 NONAME
-	_ZTI25GlxDetailsDescriptionEdit @ 15 NONAME
-	_ZTV25GlxDetailsDescriptionEdit @ 16 NONAME
-	_ZThn16_N25GlxDetailsDescriptionEditD0Ev @ 17 NONAME
-	_ZThn16_N25GlxDetailsDescriptionEditD1Ev @ 18 NONAME
-	_ZThn8_N25GlxDetailsDescriptionEdit12focusInEventEP11QFocusEvent @ 19 NONAME
-	_ZThn8_N25GlxDetailsDescriptionEdit13focusOutEventEP11QFocusEvent @ 20 NONAME
-	_ZThn8_N25GlxDetailsDescriptionEditD0Ev @ 21 NONAME
-	_ZThn8_N25GlxDetailsDescriptionEditD1Ev @ 22 NONAME
-
--- a/ui/detailscustomwidget/eabi/detailsnamelabelu.def	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-EXPORTS
-	_ZN19GlxDetailsNameLabel11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
-	_ZN19GlxDetailsNameLabel11qt_metacastEPKc @ 2 NONAME
-	_ZN19GlxDetailsNameLabel11setItemTextERK7QString @ 3 NONAME
-	_ZN19GlxDetailsNameLabel12labelPressedEv @ 4 NONAME
-	_ZN19GlxDetailsNameLabel15mousePressEventEP24QGraphicsSceneMouseEvent @ 5 NONAME
-	_ZN19GlxDetailsNameLabel16staticMetaObjectE @ 6 NONAME DATA 16
-	_ZN19GlxDetailsNameLabel17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 7 NONAME
-	_ZN19GlxDetailsNameLabel19getStaticMetaObjectEv @ 8 NONAME
-	_ZN19GlxDetailsNameLabelC1EP13QGraphicsItem @ 9 NONAME
-	_ZN19GlxDetailsNameLabelC2EP13QGraphicsItem @ 10 NONAME
-	_ZN19GlxDetailsNameLabelD0Ev @ 11 NONAME
-	_ZN19GlxDetailsNameLabelD1Ev @ 12 NONAME
-	_ZN19GlxDetailsNameLabelD2Ev @ 13 NONAME
-	_ZNK19GlxDetailsNameLabel10metaObjectEv @ 14 NONAME
-	_ZTI19GlxDetailsNameLabel @ 15 NONAME
-	_ZTV19GlxDetailsNameLabel @ 16 NONAME
-	_ZThn16_N19GlxDetailsNameLabelD0Ev @ 17 NONAME
-	_ZThn16_N19GlxDetailsNameLabelD1Ev @ 18 NONAME
-	_ZThn8_N19GlxDetailsNameLabel15mousePressEventEP24QGraphicsSceneMouseEvent @ 19 NONAME
-	_ZThn8_N19GlxDetailsNameLabel17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 20 NONAME
-	_ZThn8_N19GlxDetailsNameLabelD0Ev @ 21 NONAME
-	_ZThn8_N19GlxDetailsNameLabelD1Ev @ 22 NONAME
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/detailscustomwidget/eabi/glxdetailscustomwidgetsu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,46 @@
+EXPORTS
+	_ZN14GlxDetailsIcon11qt_metacallEN11QMetaObject4CallEiPPv @ 1 NONAME
+	_ZN14GlxDetailsIcon11qt_metacastEPKc @ 2 NONAME
+	_ZN14GlxDetailsIcon11setItemIconERK6HbIcon @ 3 NONAME
+	_ZN14GlxDetailsIcon15mousePressEventEP24QGraphicsSceneMouseEvent @ 4 NONAME
+	_ZN14GlxDetailsIcon16staticMetaObjectE @ 5 NONAME DATA 16
+	_ZN14GlxDetailsIcon16updateFavouritesEv @ 6 NONAME
+	_ZN14GlxDetailsIcon17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 7 NONAME
+	_ZN14GlxDetailsIcon19getStaticMetaObjectEv @ 8 NONAME
+	_ZN14GlxDetailsIconC1EP13QGraphicsItem @ 9 NONAME
+	_ZN14GlxDetailsIconC2EP13QGraphicsItem @ 10 NONAME
+	_ZN14GlxDetailsIconD0Ev @ 11 NONAME
+	_ZN14GlxDetailsIconD1Ev @ 12 NONAME
+	_ZN14GlxDetailsIconD2Ev @ 13 NONAME
+	_ZN18GlxDetailsTextEdit11qt_metacallEN11QMetaObject4CallEiPPv @ 14 NONAME
+	_ZN18GlxDetailsTextEdit11qt_metacastEPKc @ 15 NONAME
+	_ZN18GlxDetailsTextEdit11setItemTextERK7QString @ 16 NONAME
+	_ZN18GlxDetailsTextEdit12focusInEventEP11QFocusEvent @ 17 NONAME
+	_ZN18GlxDetailsTextEdit12labelPressedEv @ 18 NONAME
+	_ZN18GlxDetailsTextEdit13focusOutEventEP11QFocusEvent @ 19 NONAME
+	_ZN18GlxDetailsTextEdit16staticMetaObjectE @ 20 NONAME DATA 16
+	_ZN18GlxDetailsTextEdit19getStaticMetaObjectEv @ 21 NONAME
+	_ZN18GlxDetailsTextEditC1EP13QGraphicsItem @ 22 NONAME
+	_ZN18GlxDetailsTextEditC2EP13QGraphicsItem @ 23 NONAME
+	_ZN18GlxDetailsTextEditD0Ev @ 24 NONAME
+	_ZN18GlxDetailsTextEditD1Ev @ 25 NONAME
+	_ZN18GlxDetailsTextEditD2Ev @ 26 NONAME
+	_ZNK14GlxDetailsIcon10metaObjectEv @ 27 NONAME
+	_ZNK18GlxDetailsTextEdit10metaObjectEv @ 28 NONAME
+	_ZTI14GlxDetailsIcon @ 29 NONAME
+	_ZTI18GlxDetailsTextEdit @ 30 NONAME
+	_ZTV14GlxDetailsIcon @ 31 NONAME
+	_ZTV18GlxDetailsTextEdit @ 32 NONAME
+	_ZThn16_N14GlxDetailsIconD0Ev @ 33 NONAME
+	_ZThn16_N14GlxDetailsIconD1Ev @ 34 NONAME
+	_ZThn16_N18GlxDetailsTextEditD0Ev @ 35 NONAME
+	_ZThn16_N18GlxDetailsTextEditD1Ev @ 36 NONAME
+	_ZThn8_N14GlxDetailsIcon15mousePressEventEP24QGraphicsSceneMouseEvent @ 37 NONAME
+	_ZThn8_N14GlxDetailsIcon17mouseReleaseEventEP24QGraphicsSceneMouseEvent @ 38 NONAME
+	_ZThn8_N14GlxDetailsIconD0Ev @ 39 NONAME
+	_ZThn8_N14GlxDetailsIconD1Ev @ 40 NONAME
+	_ZThn8_N18GlxDetailsTextEdit12focusInEventEP11QFocusEvent @ 41 NONAME
+	_ZThn8_N18GlxDetailsTextEdit13focusOutEventEP11QFocusEvent @ 42 NONAME
+	_ZThn8_N18GlxDetailsTextEditD0Ev @ 43 NONAME
+	_ZThn8_N18GlxDetailsTextEditD1Ev @ 44 NONAME
+
--- a/ui/inc/glxcommandhandlers.hrh	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/inc/glxcommandhandlers.hrh	Wed Aug 18 09:48:53 2010 +0300
@@ -96,14 +96,19 @@
     EGlxCmdShowImages,
     EGlxCmdShowVideos,
     EGlxCmdAllGridOpen,
+    EGlxCmdFetcherAllGridOpen,  //open fetcher grid in all collection
     EGlxCmdFullScreenOpen,
+    EGlxCmdFetcherFullScreenOpen,  //open fetcher in fullscreen
     EGlxCmdAlbumGridOpen,
+    EGlxCmdFetcherAlbumGridOpen,  //open fetcher album grid
     EGlxCmdAlbumListOpen,
+    EGlxCmdFetcherAlbumListOpen,  //open fetcher album list
     EGlxCmdCameraOpen,
     EGlxCmdDetailsOpen,
     EGlxCmdEmptyData,
     EGlxCmdOviOpen,
     EGlxCmdBack,
+    EGlxCmdSlideShowBack,
     EGlxCmdSelect,
     EGlxCmdCancel,
     EGlxCmdMarkAll,
@@ -119,6 +124,11 @@
     EGlxCmdRotateImgCW,
     EGlxCmdRotateImgCCW,
     EGlxCmdRotateImgCrop,
+    EGlxCmd3DEffectOn,
+    EGlxCmd3DEffectOff,
+    EGlxCmdSetWallpaper,
+    EGlxCmdPlayBackAnim,
+    EGlxCmdFetcherSelect,
     EGlxCmdAiwBase = 0x6000
     };
 
--- a/ui/inc/glxmodelroles.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/inc/glxmodelroles.h	Wed Aug 18 09:48:53 2010 +0300
@@ -45,7 +45,8 @@
 	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
+	GlxTempVisualWindowIndex,              //to store the visual index obtained from AM temporarily
+	GlxImageCorruptRole                 //To get the corrupt image status
 };
 
 
--- a/ui/inc/glxviewids.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/inc/glxviewids.h	Wed Aug 18 09:48:53 2010 +0300
@@ -38,13 +38,17 @@
 {
     NO_GRID_S = 0,
     ALL_ITEM_S,
-    ALBUM_ITEM_S,    
+    ALBUM_ITEM_S,
+	FETCHER_ITEM_S,  // all grid fetcher
+	FETCHER_ALBUM_ITEM_S,  //album grid getcher
     MAX_GRID_S
 } GridState;
 
 typedef enum 
 {
     NO_FULLSCREEN_S = MAX_GRID_S + 1,
+	ALL_FULLSCREEN_S,
+	ALBUM_FULLSCREEN_S,
     EXTERNAL_S,
     IMAGEVIEWER_S,
 	FETCHER_S,  
@@ -65,5 +69,10 @@
     IMAGEVIEWER_DETAIL_S,
     MAX_DETAIL_S
 } DetailState;
-
+typedef enum
+{
+    NO_LIST_S  = MAX_DETAIL_S+1,
+    FETCHER_ALBUM_S,  // album list fetcher
+    MAX_LIST_S
+} ListState;
 #endif /* GLXVIEWIDS_H */
--- a/ui/uiengine/bwins/glxmedialistwrapperu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/bwins/glxmedialistwrapperu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -1,60 +1,61 @@
 EXPORTS
 	?retrieveItemUri@GlxMLWrapper@@QAE?AVQString@@H@Z @ 1 NONAME ; class QString GlxMLWrapper::retrieveItemUri(int)
 	?handlepopulated@GlxMLWrapper@@QAEXXZ @ 2 NONAME ; void GlxMLWrapper::handlepopulated(void)
-	?itemCorrupted@GlxMLWrapper@@IAEXH@Z @ 3 NONAME ; void GlxMLWrapper::itemCorrupted(int)
-	?populated@GlxMLWrapper@@IAEXXZ @ 4 NONAME ; void GlxMLWrapper::populated(void)
-	?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 5 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *, int)
-	?handleGeneralError@GlxMLWrapper@@QAEXH@Z @ 6 NONAME ; void GlxMLWrapper::handleGeneralError(int)
-	?updateItem@GlxMLWrapper@@IAEXHW4GlxTBContextType@@@Z @ 7 NONAME ; void GlxMLWrapper::updateItem(int, enum GlxTBContextType)
-	?removeItems@GlxMLWrapper@@IAEXHH@Z @ 8 NONAME ; void GlxMLWrapper::removeItems(int, int)
-	?IsPopulated@GlxMLWrapper@@QAE_NXZ @ 9 NONAME ; bool GlxMLWrapper::IsPopulated(void)
-	?getItemCount@GlxMLWrapper@@QAEHXZ @ 10 NONAME ; int GlxMLWrapper::getItemCount(void)
-	?getVisibleWindowIndex@GlxMLWrapper@@QAEHXZ @ 11 NONAME ; int GlxMLWrapper::getVisibleWindowIndex(void)
-	?setFocusIndex@GlxMLWrapper@@QAEXH@Z @ 12 NONAME ; void GlxMLWrapper::setFocusIndex(int)
-	?retrieveItemDate@GlxMLWrapper@@QAE?AVQDate@@H@Z @ 13 NONAME ; class QDate GlxMLWrapper::retrieveItemDate(int)
-	?qt_metacall@GlxMLWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 14 NONAME ; int GlxMLWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?retrieveItemFrameCount@GlxMLWrapper@@QAEHH@Z @ 15 NONAME ; int GlxMLWrapper::retrieveItemFrameCount(int)
-	?retrieveListTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 16 NONAME ; class QString GlxMLWrapper::retrieveListTitle(int)
-	?retrieveListItemCount@GlxMLWrapper@@QAEHH@Z @ 17 NONAME ; int GlxMLWrapper::retrieveListItemCount(int)
-	?tr@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 18 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *)
-	?setVisibleWindowIndex@GlxMLWrapper@@QAEXH@Z @ 19 NONAME ; void GlxMLWrapper::setVisibleWindowIndex(int)
-	?getStaticMetaObject@GlxMLWrapper@@SAABUQMetaObject@@XZ @ 20 NONAME ; struct QMetaObject const & GlxMLWrapper::getStaticMetaObject(void)
-	?retrieveListSubTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 21 NONAME ; class QString GlxMLWrapper::retrieveListSubTitle(int)
-	?updateAlbumTitle@GlxMLWrapper@@IAEXVQString@@@Z @ 22 NONAME ; void GlxMLWrapper::updateAlbumTitle(class QString)
-	?staticMetaObject@GlxMLWrapper@@2UQMetaObject@@B @ 23 NONAME ; struct QMetaObject const GlxMLWrapper::staticMetaObject
-	?handleListItemAvailable@GlxMLWrapper@@QAEXH@Z @ 24 NONAME ; void GlxMLWrapper::handleListItemAvailable(int)
-	?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *)
-	?itemsRemoved@GlxMLWrapper@@QAEXHH@Z @ 26 NONAME ; void GlxMLWrapper::itemsRemoved(int, int)
-	?handleTitleAvailable@GlxMLWrapper@@QAEXVQString@@@Z @ 27 NONAME ; void GlxMLWrapper::handleTitleAvailable(class QString)
-	?metaObject@GlxMLWrapper@@UBEPBUQMetaObject@@XZ @ 28 NONAME ; struct QMetaObject const * GlxMLWrapper::metaObject(void) const
-	?insertItems@GlxMLWrapper@@IAEXHH@Z @ 29 NONAME ; void GlxMLWrapper::insertItems(int, int)
-	?isSystemItem@GlxMLWrapper@@QAE_NH@Z @ 30 NONAME ; bool GlxMLWrapper::isSystemItem(int)
-	?getFocusIndex@GlxMLWrapper@@QBEHXZ @ 31 NONAME ; int GlxMLWrapper::getFocusIndex(void) const
-	?handleIconCorrupt@GlxMLWrapper@@QAEXH@Z @ 32 NONAME ; void GlxMLWrapper::handleIconCorrupt(int)
-	?retrieveItemDimension@GlxMLWrapper@@QAE?AVQSize@@H@Z @ 33 NONAME ; class QSize GlxMLWrapper::retrieveItemDimension(int)
-	?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 34 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int)
-	?handleReceivedIcon@GlxMLWrapper@@QAEXHW4GlxTBContextType@@@Z @ 35 NONAME ; void GlxMLWrapper::handleReceivedIcon(int, enum GlxTBContextType)
-	?retrieveViewTitle@GlxMLWrapper@@QAE?AVQString@@XZ @ 36 NONAME ; class QString GlxMLWrapper::retrieveViewTitle(void)
-	?tr@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 37 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *, int)
-	?setContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 38 NONAME ; void GlxMLWrapper::setContextMode(enum GlxContextMode)
-	??_EGlxMLWrapper@@UAE@I@Z @ 39 NONAME ; GlxMLWrapper::~GlxMLWrapper(unsigned int)
-	??1GlxMLWrapper@@UAE@XZ @ 40 NONAME ; GlxMLWrapper::~GlxMLWrapper(void)
-	?RetrieveBitmap@GlxMLWrapper@@QAE?AVQVariant@@H@Z @ 41 NONAME ; class QVariant GlxMLWrapper::RetrieveBitmap(int)
-	??1CGlxTitleFetcher@@UAE@XZ @ 42 NONAME ; CGlxTitleFetcher::~CGlxTitleFetcher(void)
-	?HandleTitleAvailableL@GlxMLWrapperPrivate@@UAEXABVTDesC16@@@Z @ 43 NONAME ; void GlxMLWrapperPrivate::HandleTitleAvailableL(class TDesC16 const &)
-	?qt_metacast@GlxMLWrapper@@UAEPAXPBD@Z @ 44 NONAME ; void * GlxMLWrapper::qt_metacast(char const *)
-	?retrieveItemImage@GlxMLWrapper@@QAE?AVQImage@@HW4GlxTBContextType@@@Z @ 45 NONAME ; class QImage GlxMLWrapper::retrieveItemImage(int, enum GlxTBContextType)
-	?setSelectedIndex@GlxMLWrapper@@QAEXH@Z @ 46 NONAME ; void GlxMLWrapper::setSelectedIndex(int)
-	??0GlxMLWrapper@@QAE@HHW4TGlxFilterItemType@@VQString@@@Z @ 47 NONAME ; GlxMLWrapper::GlxMLWrapper(int, int, enum TGlxFilterItemType, class QString)
-	?itemsAdded@GlxMLWrapper@@QAEXHH@Z @ 48 NONAME ; void GlxMLWrapper::itemsAdded(int, int)
-	?retrieveItemIcon@GlxMLWrapper@@QAEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 49 NONAME ; class HbIcon * GlxMLWrapper::retrieveItemIcon(int, enum GlxTBContextType)
-	?retrieveItemSize@GlxMLWrapper@@QAEHH@Z @ 50 NONAME ; int GlxMLWrapper::retrieveItemSize(int)
-	?retrieveItemTime@GlxMLWrapper@@QAE?AVQTime@@H@Z @ 51 NONAME ; class QTime GlxMLWrapper::retrieveItemTime(int)
-	?retrieveListDesc@GlxMLWrapper@@QAE?AVQString@@H@Z @ 52 NONAME ; class QString GlxMLWrapper::retrieveListDesc(int)
-	?removeContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 53 NONAME ; void GlxMLWrapper::removeContextMode(enum GlxContextMode)
-	?updateDetails@GlxMLWrapper@@IAEXXZ @ 54 NONAME ; void GlxMLWrapper::updateDetails(void)
-	?handleDetailsItemAvailable@GlxMLWrapper@@QAEXH@Z @ 55 NONAME ; void GlxMLWrapper::handleDetailsItemAvailable(int)
-	?setDrmValid@GlxMLWrapper@@QAEXH_N@Z @ 56 NONAME ; void GlxMLWrapper::setDrmValid(int, bool)
-	?IsDrmProtected@GlxMLWrapper@@QAE_NH@Z @ 57 NONAME ; bool GlxMLWrapper::IsDrmProtected(int)
-	?IsDrmValid@GlxMLWrapper@@QAE_NH@Z @ 58 NONAME ; bool GlxMLWrapper::IsDrmValid(int)
+	?removeContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 3 NONAME ; void GlxMLWrapper::removeContextMode(enum GlxContextMode)
+	?itemCorrupted@GlxMLWrapper@@IAEXH@Z @ 4 NONAME ; void GlxMLWrapper::itemCorrupted(int)
+	?populated@GlxMLWrapper@@IAEXXZ @ 5 NONAME ; void GlxMLWrapper::populated(void)
+	?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 6 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *, int)
+	?retrieveItemSize@GlxMLWrapper@@QAEHH@Z @ 7 NONAME ; int GlxMLWrapper::retrieveItemSize(int)
+	?handleGeneralError@GlxMLWrapper@@QAEXH@Z @ 8 NONAME ; void GlxMLWrapper::handleGeneralError(int)
+	?setDrmValid@GlxMLWrapper@@QAEXH_N@Z @ 9 NONAME ; void GlxMLWrapper::setDrmValid(int, bool)
+	?updateItem@GlxMLWrapper@@IAEXHW4GlxTBContextType@@@Z @ 10 NONAME ; void GlxMLWrapper::updateItem(int, enum GlxTBContextType)
+	?removeItems@GlxMLWrapper@@IAEXHH@Z @ 11 NONAME ; void GlxMLWrapper::removeItems(int, int)
+	?IsPopulated@GlxMLWrapper@@QAE_NXZ @ 12 NONAME ; bool GlxMLWrapper::IsPopulated(void)
+	?getItemCount@GlxMLWrapper@@QAEHXZ @ 13 NONAME ; int GlxMLWrapper::getItemCount(void)
+	?getVisibleWindowIndex@GlxMLWrapper@@QAEHXZ @ 14 NONAME ; int GlxMLWrapper::getVisibleWindowIndex(void)
+	?setFocusIndex@GlxMLWrapper@@QAEXH@Z @ 15 NONAME ; void GlxMLWrapper::setFocusIndex(int)
+	?retrieveItemDate@GlxMLWrapper@@QAE?AVQDate@@H@Z @ 16 NONAME ; class QDate GlxMLWrapper::retrieveItemDate(int)
+	?qt_metacall@GlxMLWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 17 NONAME ; int GlxMLWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?updateDetails@GlxMLWrapper@@IAEXXZ @ 18 NONAME ; void GlxMLWrapper::updateDetails(void)
+	?retrieveItemFrameCount@GlxMLWrapper@@QAEHH@Z @ 19 NONAME ; int GlxMLWrapper::retrieveItemFrameCount(int)
+	?retrieveListTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 20 NONAME ; class QString GlxMLWrapper::retrieveListTitle(int)
+	?IsDrmProtected@GlxMLWrapper@@QAE_NH@Z @ 21 NONAME ; bool GlxMLWrapper::IsDrmProtected(int)
+	?retrieveListItemCount@GlxMLWrapper@@QAEHH@Z @ 22 NONAME ; int GlxMLWrapper::retrieveListItemCount(int)
+	?tr@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *)
+	?setVisibleWindowIndex@GlxMLWrapper@@QAEXH@Z @ 24 NONAME ; void GlxMLWrapper::setVisibleWindowIndex(int)
+	?getStaticMetaObject@GlxMLWrapper@@SAABUQMetaObject@@XZ @ 25 NONAME ; struct QMetaObject const & GlxMLWrapper::getStaticMetaObject(void)
+	?retrieveListSubTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 26 NONAME ; class QString GlxMLWrapper::retrieveListSubTitle(int)
+	?updateAlbumTitle@GlxMLWrapper@@IAEXVQString@@@Z @ 27 NONAME ; void GlxMLWrapper::updateAlbumTitle(class QString)
+	?staticMetaObject@GlxMLWrapper@@2UQMetaObject@@B @ 28 NONAME ; struct QMetaObject const GlxMLWrapper::staticMetaObject
+	?handleListItemAvailable@GlxMLWrapper@@QAEXH@Z @ 29 NONAME ; void GlxMLWrapper::handleListItemAvailable(int)
+	?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 30 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *)
+	?itemsRemoved@GlxMLWrapper@@QAEXHH@Z @ 31 NONAME ; void GlxMLWrapper::itemsRemoved(int, int)
+	?handleTitleAvailable@GlxMLWrapper@@QAEXVQString@@@Z @ 32 NONAME ; void GlxMLWrapper::handleTitleAvailable(class QString)
+	?retrieveItemTime@GlxMLWrapper@@QAE?AVQTime@@H@Z @ 33 NONAME ; class QTime GlxMLWrapper::retrieveItemTime(int)
+	?metaObject@GlxMLWrapper@@UBEPBUQMetaObject@@XZ @ 34 NONAME ; struct QMetaObject const * GlxMLWrapper::metaObject(void) const
+	?insertItems@GlxMLWrapper@@IAEXHH@Z @ 35 NONAME ; void GlxMLWrapper::insertItems(int, int)
+	?isCorruptedImage@GlxMLWrapper@@QAE_NH@Z @ 36 NONAME ; bool GlxMLWrapper::isCorruptedImage(int)
+	?isSystemItem@GlxMLWrapper@@QAE_NH@Z @ 37 NONAME ; bool GlxMLWrapper::isSystemItem(int)
+	?getFocusIndex@GlxMLWrapper@@QBEHXZ @ 38 NONAME ; int GlxMLWrapper::getFocusIndex(void) const
+	?handleIconCorrupt@GlxMLWrapper@@QAEXH@Z @ 39 NONAME ; void GlxMLWrapper::handleIconCorrupt(int)
+	?retrieveItemDimension@GlxMLWrapper@@QAE?AVQSize@@H@Z @ 40 NONAME ; class QSize GlxMLWrapper::retrieveItemDimension(int)
+	?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 41 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int)
+	?handleDetailsItemAvailable@GlxMLWrapper@@QAEXH@Z @ 42 NONAME ; void GlxMLWrapper::handleDetailsItemAvailable(int)
+	?retrieveListDesc@GlxMLWrapper@@QAE?AVQString@@H@Z @ 43 NONAME ; class QString GlxMLWrapper::retrieveListDesc(int)
+	?IsDrmValid@GlxMLWrapper@@QAE_NH@Z @ 44 NONAME ; bool GlxMLWrapper::IsDrmValid(int)
+	?handleReceivedIcon@GlxMLWrapper@@QAEXHW4GlxTBContextType@@@Z @ 45 NONAME ; void GlxMLWrapper::handleReceivedIcon(int, enum GlxTBContextType)
+	?retrieveViewTitle@GlxMLWrapper@@QAE?AVQString@@XZ @ 46 NONAME ; class QString GlxMLWrapper::retrieveViewTitle(void)
+	?tr@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *, int)
+	?setContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 48 NONAME ; void GlxMLWrapper::setContextMode(enum GlxContextMode)
+	??_EGlxMLWrapper@@UAE@I@Z @ 49 NONAME ; GlxMLWrapper::~GlxMLWrapper(unsigned int)
+	??1GlxMLWrapper@@UAE@XZ @ 50 NONAME ; GlxMLWrapper::~GlxMLWrapper(void)
+	?RetrieveBitmap@GlxMLWrapper@@QAE?AVQVariant@@H@Z @ 51 NONAME ; class QVariant GlxMLWrapper::RetrieveBitmap(int)
+	??1CGlxTitleFetcher@@UAE@XZ @ 52 NONAME ; CGlxTitleFetcher::~CGlxTitleFetcher(void)
+	?HandleTitleAvailableL@GlxMLWrapperPrivate@@UAEXABVTDesC16@@@Z @ 53 NONAME ; void GlxMLWrapperPrivate::HandleTitleAvailableL(class TDesC16 const &)
+	?qt_metacast@GlxMLWrapper@@UAEPAXPBD@Z @ 54 NONAME ; void * GlxMLWrapper::qt_metacast(char const *)
+	?retrieveItemImage@GlxMLWrapper@@QAE?AVQImage@@HW4GlxTBContextType@@@Z @ 55 NONAME ; class QImage GlxMLWrapper::retrieveItemImage(int, enum GlxTBContextType)
+	?setSelectedIndex@GlxMLWrapper@@QAEXH@Z @ 56 NONAME ; void GlxMLWrapper::setSelectedIndex(int)
+	??0GlxMLWrapper@@QAE@HHW4TGlxFilterItemType@@VQString@@@Z @ 57 NONAME ; GlxMLWrapper::GlxMLWrapper(int, int, enum TGlxFilterItemType, class QString)
+	?retrieveItemIcon@GlxMLWrapper@@QAEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 58 NONAME ; class HbIcon * GlxMLWrapper::retrieveItemIcon(int, enum GlxTBContextType)
+	?itemsAdded@GlxMLWrapper@@QAEXHH@Z @ 59 NONAME ; void GlxMLWrapper::itemsAdded(int, int)
 
--- a/ui/uiengine/eabi/glxmedialistwrapperu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/eabi/glxmedialistwrapperu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -1,57 +1,58 @@
 EXPORTS
-	_ZN12GlxMLWrapper10itemsAddedEii @ 1 NONAME
-	_ZN12GlxMLWrapper10updateItemEi16GlxTBContextType @ 2 NONAME
-	_ZN12GlxMLWrapper11IsPopulatedEv @ 3 NONAME
-	_ZN12GlxMLWrapper11insertItemsEii @ 4 NONAME
-	_ZN12GlxMLWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 5 NONAME
-	_ZN12GlxMLWrapper11qt_metacastEPKc @ 6 NONAME
-	_ZN12GlxMLWrapper11removeItemsEii @ 7 NONAME
-	_ZN12GlxMLWrapper12getItemCountEv @ 8 NONAME
-	_ZN12GlxMLWrapper12isSystemItemEi @ 9 NONAME
-	_ZN12GlxMLWrapper12itemsRemovedEii @ 10 NONAME
-	_ZN12GlxMLWrapper13itemCorruptedEi @ 11 NONAME
-	_ZN12GlxMLWrapper13setFocusIndexEi @ 12 NONAME
-	_ZN12GlxMLWrapper14RetrieveBitmapEi @ 13 NONAME
-	_ZN12GlxMLWrapper14setContextModeE14GlxContextMode @ 14 NONAME
-	_ZN12GlxMLWrapper15handlepopulatedEv @ 15 NONAME
-	_ZN12GlxMLWrapper15retrieveItemUriEi @ 16 NONAME
-	_ZN12GlxMLWrapper16retrieveItemDateEi @ 17 NONAME
-	_ZN12GlxMLWrapper16retrieveItemIconEi16GlxTBContextType @ 18 NONAME
-	_ZN12GlxMLWrapper16setSelectedIndexEi @ 19 NONAME
-	_ZN12GlxMLWrapper16staticMetaObjectE @ 20 NONAME DATA 16
-	_ZN12GlxMLWrapper16updateAlbumTitleE7QString @ 21 NONAME
-	_ZN12GlxMLWrapper17handleIconCorruptEi @ 22 NONAME
-	_ZN12GlxMLWrapper17retrieveItemImageEi16GlxTBContextType @ 23 NONAME
-	_ZN12GlxMLWrapper17retrieveListTitleEi @ 24 NONAME
-	_ZN12GlxMLWrapper17retrieveViewTitleEv @ 25 NONAME
-	_ZN12GlxMLWrapper18handleGeneralErrorEi @ 26 NONAME
-	_ZN12GlxMLWrapper18handleReceivedIconEi16GlxTBContextType @ 27 NONAME
-	_ZN12GlxMLWrapper19getStaticMetaObjectEv @ 28 NONAME
-	_ZN12GlxMLWrapper20handleTitleAvailableE7QString @ 29 NONAME
-	_ZN12GlxMLWrapper20retrieveListSubTitleEi @ 30 NONAME
-	_ZN12GlxMLWrapper21getVisibleWindowIndexEv @ 31 NONAME
-	_ZN12GlxMLWrapper21retrieveItemDimensionEi @ 32 NONAME
-	_ZN12GlxMLWrapper21retrieveListItemCountEi @ 33 NONAME
-	_ZN12GlxMLWrapper21setVisibleWindowIndexEi @ 34 NONAME
-	_ZN12GlxMLWrapper22retrieveItemFrameCountEi @ 35 NONAME
-	_ZN12GlxMLWrapper23handleListItemAvailableEi @ 36 NONAME
-	_ZN12GlxMLWrapper9populatedEv @ 37 NONAME
-	_ZN12GlxMLWrapperC1Eii18TGlxFilterItemType7QString @ 38 NONAME
-	_ZN12GlxMLWrapperC2Eii18TGlxFilterItemType7QString @ 39 NONAME
-	_ZN12GlxMLWrapperD0Ev @ 40 NONAME
-	_ZN12GlxMLWrapperD1Ev @ 41 NONAME
-	_ZN12GlxMLWrapperD2Ev @ 42 NONAME
-	_ZNK12GlxMLWrapper10metaObjectEv @ 43 NONAME
-	_ZNK12GlxMLWrapper13getFocusIndexEv @ 44 NONAME
-	_ZTI12GlxMLWrapper @ 45 NONAME
-	_ZTV12GlxMLWrapper @ 46 NONAME
-	_ZN12GlxMLWrapper16retrieveItemSizeEi @ 47 NONAME
-	_ZN12GlxMLWrapper16retrieveItemTimeEi @ 48 NONAME
-	_ZN12GlxMLWrapper16retrieveListDescEi @ 49 NONAME
-	_ZN12GlxMLWrapper17removeContextModeE14GlxContextMode @ 50 NONAME
-	_ZN12GlxMLWrapper13updateDetailsEv @ 51 NONAME
-	_ZN12GlxMLWrapper26handleDetailsItemAvailableEi @ 52 NONAME
-	_ZN12GlxMLWrapper10IsDrmValidEi @ 53 NONAME
-	_ZN12GlxMLWrapper11setDrmValidEib @ 54 NONAME
-	_ZN12GlxMLWrapper14IsDrmProtectedEi @ 55 NONAME
+	_ZN12GlxMLWrapper10IsDrmValidEi @ 1 NONAME
+	_ZN12GlxMLWrapper10itemsAddedEii @ 2 NONAME
+	_ZN12GlxMLWrapper10updateItemEi16GlxTBContextType @ 3 NONAME
+	_ZN12GlxMLWrapper11IsPopulatedEv @ 4 NONAME
+	_ZN12GlxMLWrapper11insertItemsEii @ 5 NONAME
+	_ZN12GlxMLWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME
+	_ZN12GlxMLWrapper11qt_metacastEPKc @ 7 NONAME
+	_ZN12GlxMLWrapper11removeItemsEii @ 8 NONAME
+	_ZN12GlxMLWrapper11setDrmValidEib @ 9 NONAME
+	_ZN12GlxMLWrapper12getItemCountEv @ 10 NONAME
+	_ZN12GlxMLWrapper12isSystemItemEi @ 11 NONAME
+	_ZN12GlxMLWrapper12itemsRemovedEii @ 12 NONAME
+	_ZN12GlxMLWrapper13itemCorruptedEi @ 13 NONAME
+	_ZN12GlxMLWrapper13setFocusIndexEi @ 14 NONAME
+	_ZN12GlxMLWrapper13updateDetailsEv @ 15 NONAME
+	_ZN12GlxMLWrapper14IsDrmProtectedEi @ 16 NONAME
+	_ZN12GlxMLWrapper14RetrieveBitmapEi @ 17 NONAME
+	_ZN12GlxMLWrapper14setContextModeE14GlxContextMode @ 18 NONAME
+	_ZN12GlxMLWrapper15handlepopulatedEv @ 19 NONAME
+	_ZN12GlxMLWrapper15retrieveItemUriEi @ 20 NONAME
+	_ZN12GlxMLWrapper16isCorruptedImageEi @ 21 NONAME
+	_ZN12GlxMLWrapper16retrieveItemDateEi @ 22 NONAME
+	_ZN12GlxMLWrapper16retrieveItemIconEi16GlxTBContextType @ 23 NONAME
+	_ZN12GlxMLWrapper16retrieveItemSizeEi @ 24 NONAME
+	_ZN12GlxMLWrapper16retrieveItemTimeEi @ 25 NONAME
+	_ZN12GlxMLWrapper16retrieveListDescEi @ 26 NONAME
+	_ZN12GlxMLWrapper16setSelectedIndexEi @ 27 NONAME
+	_ZN12GlxMLWrapper16staticMetaObjectE @ 28 NONAME DATA 16
+	_ZN12GlxMLWrapper16updateAlbumTitleE7QString @ 29 NONAME
+	_ZN12GlxMLWrapper17handleIconCorruptEi @ 30 NONAME
+	_ZN12GlxMLWrapper17removeContextModeE14GlxContextMode @ 31 NONAME
+	_ZN12GlxMLWrapper17retrieveItemImageEi16GlxTBContextType @ 32 NONAME
+	_ZN12GlxMLWrapper17retrieveListTitleEi @ 33 NONAME
+	_ZN12GlxMLWrapper17retrieveViewTitleEv @ 34 NONAME
+	_ZN12GlxMLWrapper18handleGeneralErrorEi @ 35 NONAME
+	_ZN12GlxMLWrapper18handleReceivedIconEi16GlxTBContextType @ 36 NONAME
+	_ZN12GlxMLWrapper19getStaticMetaObjectEv @ 37 NONAME
+	_ZN12GlxMLWrapper20handleTitleAvailableE7QString @ 38 NONAME
+	_ZN12GlxMLWrapper20retrieveListSubTitleEi @ 39 NONAME
+	_ZN12GlxMLWrapper21getVisibleWindowIndexEv @ 40 NONAME
+	_ZN12GlxMLWrapper21retrieveItemDimensionEi @ 41 NONAME
+	_ZN12GlxMLWrapper21retrieveListItemCountEi @ 42 NONAME
+	_ZN12GlxMLWrapper21setVisibleWindowIndexEi @ 43 NONAME
+	_ZN12GlxMLWrapper22retrieveItemFrameCountEi @ 44 NONAME
+	_ZN12GlxMLWrapper23handleListItemAvailableEi @ 45 NONAME
+	_ZN12GlxMLWrapper26handleDetailsItemAvailableEi @ 46 NONAME
+	_ZN12GlxMLWrapper9populatedEv @ 47 NONAME
+	_ZN12GlxMLWrapperC1Eii18TGlxFilterItemType7QString @ 48 NONAME
+	_ZN12GlxMLWrapperC2Eii18TGlxFilterItemType7QString @ 49 NONAME
+	_ZN12GlxMLWrapperD0Ev @ 50 NONAME
+	_ZN12GlxMLWrapperD1Ev @ 51 NONAME
+	_ZN12GlxMLWrapperD2Ev @ 52 NONAME
+	_ZNK12GlxMLWrapper10metaObjectEv @ 53 NONAME
+	_ZNK12GlxMLWrapper13getFocusIndexEv @ 54 NONAME
+	_ZTI12GlxMLWrapper @ 55 NONAME
+	_ZTV12GlxMLWrapper @ 56 NONAME
 
--- a/ui/uiengine/medialists/bwins/glxmedialistsu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/bwins/glxmedialistsu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -10,109 +10,109 @@
 	??0TGlxWindowIterator@@QAE@ABV0@@Z @ 9 NONAME ; TGlxWindowIterator::TGlxWindowIterator(class TGlxWindowIterator const &)
 	?NewL@CGlxDefaultAttributeContext@@SAPAV1@XZ @ 10 NONAME ; class CGlxDefaultAttributeContext * CGlxDefaultAttributeContext::NewL(void)
 	?SetRangeOffsets@TGlxFromFocusOutwardIterator@@QAEXHH@Z @ 11 NONAME ; void TGlxFromFocusOutwardIterator::SetRangeOffsets(int, int)
-	?GetSize@TGlxMedia@@QBEHAAH@Z @ 12 NONAME ; int TGlxMedia::GetSize(int &) const
-	??ETGlxWindowIterator@@QAEHH@Z @ 13 NONAME ; int TGlxWindowIterator::operator++(int)
-	?__DbgTestInvariant@CGlxListWindow@@QBEXXZ @ 14 NONAME ; void CGlxListWindow::__DbgTestInvariant(void) const
-	?NewL@CGlxDefaultListAttributeContext@@SAPAV1@XZ @ 15 NONAME ; class CGlxDefaultListAttributeContext * CGlxDefaultListAttributeContext::NewL(void)
-	?InstanceL@MGlxCache@@SAPAV1@XZ @ 16 NONAME ; class MGlxCache * MGlxCache::InstanceL(void)
-	?Reset@CGlxMedia@@QAEXXZ @ 17 NONAME ; void CGlxMedia::Reset(void)
-	?AddObjects@CGlxListWindow@@QAEXHHHH@Z @ 18 NONAME ; void CGlxListWindow::AddObjects(int, int, int, int)
-	??0CGlxThumbnailContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 19 NONAME ; CGlxThumbnailContext::CGlxThumbnailContext(class MGlxMediaListIterator *)
-	?SetRangeOffsetsL@CGlxListWindow@@QAEXHHHH@Z @ 20 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int, int, int)
-	??0TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 21 NONAME ; TGlxFromFocusOutwardBlockyIterator::TGlxFromFocusOutwardBlockyIterator(void)
-	?UnmarkAllL@MGlxMediaList@@SAXAAV1@@Z @ 22 NONAME ; void MGlxMediaList::UnmarkAllL(class MGlxMediaList &)
-	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 23 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
-	??1TGlxSelectionIterator@@QAE@XZ @ 24 NONAME ; TGlxSelectionIterator::~TGlxSelectionIterator(void)
-	?SetGranularity@CGlxAttributeContext@@QAEXI@Z @ 25 NONAME ; void CGlxAttributeContext::SetGranularity(unsigned int)
-	??0TGlxSelectionIterator@@QAE@XZ @ 26 NONAME ; TGlxSelectionIterator::TGlxSelectionIterator(void)
-	??0TGlxFromFocusOutwardIterator@@QAE@XZ @ 27 NONAME ; TGlxFromFocusOutwardIterator::TGlxFromFocusOutwardIterator(void)
-	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 28 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
-	??1TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 29 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::~TGlxFromManualIndexOutwardBlockyIterator(void)
-	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 30 NONAME ; int TGlxMedia::GetFrameCount(int &) const
-	??0TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 31 NONAME ; TGlxFromManualIndexBlockyIterator::TGlxFromManualIndexBlockyIterator(void)
-	?SetRangeOffsets@TGlxFromIndexOutwardBlockyIterator@@QAEXHH@Z @ 32 NONAME ; void TGlxFromIndexOutwardBlockyIterator::SetRangeOffsets(int, int)
-	?SetFocusIndex@CGlxListWindow@@QAEXH@Z @ 33 NONAME ; void CGlxListWindow::SetFocusIndex(int)
-	??1TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 34 NONAME ; TGlxFromFocusOutwardBlockyIterator::~TGlxFromFocusOutwardBlockyIterator(void)
-	??1CGlxDefaultThumbnailContext@@UAE@XZ @ 35 NONAME ; CGlxDefaultThumbnailContext::~CGlxDefaultThumbnailContext(void)
-	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 36 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
-	??0TGlxFromIndexOutwardBlockyIterator@@QAE@ABVMGlxIndex@0@@Z @ 37 NONAME ; TGlxFromIndexOutwardBlockyIterator::TGlxFromIndexOutwardBlockyIterator(class TGlxFromIndexOutwardBlockyIterator::MGlxIndex const &)
-	?ConstructL@CGlxListWindow@@QAEXXZ @ 38 NONAME ; void CGlxListWindow::ConstructL(void)
-	?SetRange@TGlxSequentialIterator@@QAEXH@Z @ 39 NONAME ; void TGlxSequentialIterator::SetRange(int)
-	??1TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 40 NONAME ; TGlxFromVisibleIndexOutwardListIterator::~TGlxFromVisibleIndexOutwardListIterator(void)
-	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 41 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
-	??0TGlxScrollingDirectionIterator@@QAE@XZ @ 42 NONAME ; TGlxScrollingDirectionIterator::TGlxScrollingDirectionIterator(void)
-	?SetRangeOffsets@TGlxFromManualIndexBlockyIterator@@QAEXHH@Z @ 43 NONAME ; void TGlxFromManualIndexBlockyIterator::SetRangeOffsets(int, int)
-	?SetIndex@TGlxFromManualIndexOutwardBlockyIterator@@QAEXH@Z @ 44 NONAME ; void TGlxFromManualIndexOutwardBlockyIterator::SetIndex(int)
-	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 45 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
-	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 46 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
-	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 47 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
-	?SetRange@TGlxSelectionIterator@@QAEXH@Z @ 48 NONAME ; void TGlxSelectionIterator::SetRange(int)
-	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 49 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
-	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 50 NONAME ; int TGlxMedia::GetDate(class TTime &) const
-	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 51 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
-	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 52 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
-	?SetDefaultSpec@CGlxAttributeContext@@QAEXHH@Z @ 53 NONAME ; void CGlxAttributeContext::SetDefaultSpec(int, int)
-	?IsStatic@TGlxMedia@@QBEHXZ @ 54 NONAME ; int TGlxMedia::IsStatic(void) const
-	??0CGlxListWindow@@QAE@AAVMGlxWindowObjectFactory@@@Z @ 55 NONAME ; CGlxListWindow::CGlxListWindow(class MGlxWindowObjectFactory &)
-	?AddSpecForItemL@CGlxThumbnailContext@@QAEXHHH@Z @ 56 NONAME ; void CGlxThumbnailContext::AddSpecForItemL(int, int, int)
-	??1CGlxDefaultAttributeContext@@UAE@XZ @ 57 NONAME ; CGlxDefaultAttributeContext::~CGlxDefaultAttributeContext(void)
-	?ThumbnailAttribute@TGlxMedia@@QBEPBVCGlxThumbnailAttribute@@AAVTMPXAttribute@@@Z @ 58 NONAME ; class CGlxThumbnailAttribute const * TGlxMedia::ThumbnailAttribute(class TMPXAttribute &) const
-	??1TGlxFirstThenLastIterator@@QAE@XZ @ 59 NONAME ; TGlxFirstThenLastIterator::~TGlxFirstThenLastIterator(void)
-	?Title@TGlxMedia@@QBEABVTDesC16@@XZ @ 60 NONAME ; class TDesC16 const & TGlxMedia::Title(void) const
-	??ETGlxSelectionIterator@@UAEHH@Z @ 61 NONAME ; int TGlxSelectionIterator::operator++(int)
-	?AddAttributeL@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 62 NONAME ; void CGlxAttributeContext::AddAttributeL(class TMPXAttribute const &)
-	?SetRangeOffsets@CGlxDefaultThumbnailContext@@QAEXHH@Z @ 63 NONAME ; void CGlxDefaultThumbnailContext::SetRangeOffsets(int, int)
-	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 64 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
-	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 65 NONAME ; int TGlxMedia::GetDuration(float &) const
-	?SetRangeOffsets@TGlxScrollingDirectionIterator@@QAEXHH@Z @ 66 NONAME ; void TGlxScrollingDirectionIterator::SetRangeOffsets(int, int)
-	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 67 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
-	?InstanceL@MGlxMediaList@@SAPAV1@ABVCMPXCollectionPath@@ABV?$TGlxId@VTGlxIdHierarchyBase@@@@PAVCMPXMedia@@@Z @ 68 NONAME ; class MGlxMediaList * MGlxMediaList::InstanceL(class CMPXCollectionPath const &, class TGlxId<class TGlxIdHierarchyBase> const &, class CMPXMedia *)
-	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 69 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
-	?RemoveObjects@CGlxListWindow@@QAEXHHHH@Z @ 70 NONAME ; void CGlxListWindow::RemoveObjects(int, int, int, int)
-	?Iterator@CGlxListWindow@@QBE?AVTGlxWindowIterator@@XZ @ 71 NONAME ; class TGlxWindowIterator CGlxListWindow::Iterator(void) const
-	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 72 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
-	??0CGlxAttributeContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 73 NONAME ; CGlxAttributeContext::CGlxAttributeContext(class MGlxMediaListIterator *)
-	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 74 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
-	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 75 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
-	?AddObjects@CGlxListWindow@@QAEXHH@Z @ 76 NONAME ; void CGlxListWindow::AddObjects(int, int)
-	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 77 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 78 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
-	??0TGlxSequentialIterator@@QAE@XZ @ 79 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
-	?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 80 NONAME ; int CGlxAttributeContext::AttributeCount(void)
-	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 81 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
-	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 82 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
-	?SetFocusIndex@CGlxListWindow@@QAEXHH@Z @ 83 NONAME ; void CGlxListWindow::SetFocusIndex(int, int)
-	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 84 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
-	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 85 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
-	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 86 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
-	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 87 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
-	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 88 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
-	??1CGlxMedia@@UAE@XZ @ 89 NONAME ; CGlxMedia::~CGlxMedia(void)
-	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 90 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
-	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 91 NONAME ; int TGlxMedia::IsDrmProtected(void) const
-	??1CGlxThumbnailContext@@UAE@XZ @ 92 NONAME ; CGlxThumbnailContext::~CGlxThumbnailContext(void)
-	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 93 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
-	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 94 NONAME ; int TGlxMedia::GetSystemItem(int &) const
-	?RemoveObjects@CGlxListWindow@@QAEXHH@Z @ 95 NONAME ; void CGlxListWindow::RemoveObjects(int, int)
-	?Close@TGlxFetchContextRemover@@QAEXXZ @ 96 NONAME ; void TGlxFetchContextRemover::Close(void)
-	?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 97 NONAME ; class CBase const * CGlxListWindow::At(int) const
-	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 98 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
-	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 99 NONAME ; class CBase * CGlxListWindow::At(int)
-	??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void)
-	?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 101 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &)
-	??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 102 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void)
-	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 103 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
-	??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 104 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void)
-	?Cleanup@CGlxListWindow@@QAEXXZ @ 105 NONAME ; void CGlxListWindow::Cleanup(void)
-	??1TGlxScrollingDirectionIterator@@QAE@XZ @ 106 NONAME ; TGlxScrollingDirectionIterator::~TGlxScrollingDirectionIterator(void)
-	??1TGlxExclusionIterator@@QAE@XZ @ 107 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
-	??1CGlxDefaultListAttributeContext@@UAE@XZ @ 108 NONAME ; CGlxDefaultListAttributeContext::~CGlxDefaultListAttributeContext(void)
-	??1TGlxFetchContextRemover@@QAE@XZ @ 109 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
-	?SetRangeOffsets@TGlxFromVisibleIndexOutwardListIterator@@QAEXHH@Z @ 110 NONAME ; void TGlxFromVisibleIndexOutwardListIterator::SetRangeOffsets(int, int)
-	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 111 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
+	??ETGlxWindowIterator@@QAEHH@Z @ 12 NONAME ; int TGlxWindowIterator::operator++(int)
+	?__DbgTestInvariant@CGlxListWindow@@QBEXXZ @ 13 NONAME ; void CGlxListWindow::__DbgTestInvariant(void) const
+	?NewL@CGlxDefaultListAttributeContext@@SAPAV1@XZ @ 14 NONAME ; class CGlxDefaultListAttributeContext * CGlxDefaultListAttributeContext::NewL(void)
+	?InstanceL@MGlxCache@@SAPAV1@XZ @ 15 NONAME ; class MGlxCache * MGlxCache::InstanceL(void)
+	?Reset@CGlxMedia@@QAEXXZ @ 16 NONAME ; void CGlxMedia::Reset(void)
+	??0CGlxThumbnailContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 17 NONAME ; CGlxThumbnailContext::CGlxThumbnailContext(class MGlxMediaListIterator *)
+	?SetRangeOffsetsL@CGlxListWindow@@QAEXHHHH@Z @ 18 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int, int, int)
+	??0TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 19 NONAME ; TGlxFromFocusOutwardBlockyIterator::TGlxFromFocusOutwardBlockyIterator(void)
+	?UnmarkAllL@MGlxMediaList@@SAXAAV1@@Z @ 20 NONAME ; void MGlxMediaList::UnmarkAllL(class MGlxMediaList &)
+	?IdSpaceId@TGlxMedia@@QBE?AV?$TGlxId@VTGlxIdSpaceIdBase@@@@XZ @ 21 NONAME ; class TGlxId<class TGlxIdSpaceIdBase> TGlxMedia::IdSpaceId(void) const
+	??1TGlxSelectionIterator@@QAE@XZ @ 22 NONAME ; TGlxSelectionIterator::~TGlxSelectionIterator(void)
+	?SetGranularity@CGlxAttributeContext@@QAEXI@Z @ 23 NONAME ; void CGlxAttributeContext::SetGranularity(unsigned int)
+	??0TGlxSelectionIterator@@QAE@XZ @ 24 NONAME ; TGlxSelectionIterator::TGlxSelectionIterator(void)
+	??0TGlxFromFocusOutwardIterator@@QAE@XZ @ 25 NONAME ; TGlxFromFocusOutwardIterator::TGlxFromFocusOutwardIterator(void)
+	?AddObjectsL@CGlxListWindow@@QAEXHH@Z @ 26 NONAME ; void CGlxListWindow::AddObjectsL(int, int)
+	?SubTitle@TGlxMedia@@QBEABVTDesC16@@XZ @ 27 NONAME ; class TDesC16 const & TGlxMedia::SubTitle(void) const
+	??1TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 28 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::~TGlxFromManualIndexOutwardBlockyIterator(void)
+	?GetFrameCount@TGlxMedia@@QBEHAAH@Z @ 29 NONAME ; int TGlxMedia::GetFrameCount(int &) const
+	??0TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 30 NONAME ; TGlxFromManualIndexBlockyIterator::TGlxFromManualIndexBlockyIterator(void)
+	?SetRangeOffsets@TGlxFromIndexOutwardBlockyIterator@@QAEXHH@Z @ 31 NONAME ; void TGlxFromIndexOutwardBlockyIterator::SetRangeOffsets(int, int)
+	??1TGlxFromFocusOutwardBlockyIterator@@QAE@XZ @ 32 NONAME ; TGlxFromFocusOutwardBlockyIterator::~TGlxFromFocusOutwardBlockyIterator(void)
+	??1CGlxDefaultThumbnailContext@@UAE@XZ @ 33 NONAME ; CGlxDefaultThumbnailContext::~CGlxDefaultThumbnailContext(void)
+	?IsFullThumbnail@GlxThumbnailUtility@@SAHABVTMPXAttribute@@@Z @ 34 NONAME ; int GlxThumbnailUtility::IsFullThumbnail(class TMPXAttribute const &)
+	??0TGlxFromIndexOutwardBlockyIterator@@QAE@ABVMGlxIndex@0@@Z @ 35 NONAME ; TGlxFromIndexOutwardBlockyIterator::TGlxFromIndexOutwardBlockyIterator(class TGlxFromIndexOutwardBlockyIterator::MGlxIndex const &)
+	?ConstructL@CGlxListWindow@@QAEXXZ @ 36 NONAME ; void CGlxListWindow::ConstructL(void)
+	?SetRange@TGlxSequentialIterator@@QAEXH@Z @ 37 NONAME ; void TGlxSequentialIterator::SetRange(int)
+	??1TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 38 NONAME ; TGlxFromVisibleIndexOutwardListIterator::~TGlxFromVisibleIndexOutwardListIterator(void)
+	?GetStaticItemCommand@TGlxMedia@@QBEHAAH@Z @ 39 NONAME ; int TGlxMedia::GetStaticItemCommand(int &) const
+	??0TGlxScrollingDirectionIterator@@QAE@XZ @ 40 NONAME ; TGlxScrollingDirectionIterator::TGlxScrollingDirectionIterator(void)
+	?SetRangeOffsets@TGlxFromManualIndexBlockyIterator@@QAEXHH@Z @ 41 NONAME ; void TGlxFromManualIndexBlockyIterator::SetRangeOffsets(int, int)
+	?SetIndex@TGlxFromManualIndexOutwardBlockyIterator@@QAEXH@Z @ 42 NONAME ; void TGlxFromManualIndexOutwardBlockyIterator::SetIndex(int)
+	?HandleModified@CGlxMedia@@QAEXABV?$RArray@VTMPXAttribute@@@@@Z @ 43 NONAME ; void CGlxMedia::HandleModified(class RArray<class TMPXAttribute> const &)
+	?GetLastModifiedDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 44 NONAME ; int TGlxMedia::GetLastModifiedDate(class TTime &) const
+	?GetContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 45 NONAME ; int TGlxMedia::GetContainedItemCount(int &) const
+	?SetRange@TGlxSelectionIterator@@QAEXH@Z @ 46 NONAME ; void TGlxSelectionIterator::SetRange(int)
+	?GetDimensions@TGlxMedia@@QBEHAAVTSize@@@Z @ 47 NONAME ; int TGlxMedia::GetDimensions(class TSize &) const
+	?GetDate@TGlxMedia@@QBEHAAVTTime@@@Z @ 48 NONAME ; int TGlxMedia::GetDate(class TTime &) const
+	?GetValueText@CGlxMedia@@QBEHAAVTPtrC16@@ABVTMPXAttribute@@@Z @ 49 NONAME ; int CGlxMedia::GetValueText(class TPtrC16 &, class TMPXAttribute const &) const
+	?SetTextValueL@CGlxMedia@@QAEXABVTMPXAttribute@@ABVTDesC16@@@Z @ 50 NONAME ; void CGlxMedia::SetTextValueL(class TMPXAttribute const &, class TDesC16 const &)
+	?SetDefaultSpec@CGlxAttributeContext@@QAEXHH@Z @ 51 NONAME ; void CGlxAttributeContext::SetDefaultSpec(int, int)
+	?RemoveObjectsL@CGlxListWindow@@QAEXHH@Z @ 52 NONAME ; void CGlxListWindow::RemoveObjectsL(int, int)
+	?IsStatic@TGlxMedia@@QBEHXZ @ 53 NONAME ; int TGlxMedia::IsStatic(void) const
+	??0CGlxListWindow@@QAE@AAVMGlxWindowObjectFactory@@@Z @ 54 NONAME ; CGlxListWindow::CGlxListWindow(class MGlxWindowObjectFactory &)
+	?AddSpecForItemL@CGlxThumbnailContext@@QAEXHHH@Z @ 55 NONAME ; void CGlxThumbnailContext::AddSpecForItemL(int, int, int)
+	??1CGlxDefaultAttributeContext@@UAE@XZ @ 56 NONAME ; CGlxDefaultAttributeContext::~CGlxDefaultAttributeContext(void)
+	?ThumbnailAttribute@TGlxMedia@@QBEPBVCGlxThumbnailAttribute@@AAVTMPXAttribute@@@Z @ 57 NONAME ; class CGlxThumbnailAttribute const * TGlxMedia::ThumbnailAttribute(class TMPXAttribute &) const
+	??1TGlxFirstThenLastIterator@@QAE@XZ @ 58 NONAME ; TGlxFirstThenLastIterator::~TGlxFirstThenLastIterator(void)
+	?Title@TGlxMedia@@QBEABVTDesC16@@XZ @ 59 NONAME ; class TDesC16 const & TGlxMedia::Title(void) const
+	??ETGlxSelectionIterator@@UAEHH@Z @ 60 NONAME ; int TGlxSelectionIterator::operator++(int)
+	?AddAttributeL@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 61 NONAME ; void CGlxAttributeContext::AddAttributeL(class TMPXAttribute const &)
+	?SetRangeOffsets@CGlxDefaultThumbnailContext@@QAEXHH@Z @ 62 NONAME ; void CGlxDefaultThumbnailContext::SetRangeOffsets(int, int)
+	?__DbgTestInvariant@CGlxStaticItemList@@QBEXXZ @ 63 NONAME ; void CGlxStaticItemList::__DbgTestInvariant(void) const
+	?GetDuration@TGlxMedia@@QBEHAAM@Z @ 64 NONAME ; int TGlxMedia::GetDuration(float &) const
+	?SetRangeOffsets@TGlxScrollingDirectionIterator@@QAEXHH@Z @ 65 NONAME ; void TGlxScrollingDirectionIterator::SetRangeOffsets(int, int)
+	?DeleteAttribute@CGlxMedia@@QAEXABVTMPXAttribute@@@Z @ 66 NONAME ; void CGlxMedia::DeleteAttribute(class TMPXAttribute const &)
+	?InstanceL@MGlxMediaList@@SAPAV1@ABVCMPXCollectionPath@@ABV?$TGlxId@VTGlxIdHierarchyBase@@@@PAVCMPXMedia@@@Z @ 67 NONAME ; class MGlxMediaList * MGlxMediaList::InstanceL(class CMPXCollectionPath const &, class TGlxId<class TGlxIdHierarchyBase> const &, class CMPXMedia *)
+	?SetCObjectValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAVCBase@@@Z @ 68 NONAME ; void CGlxMedia::SetCObjectValueL(class TMPXAttribute const &, class CBase *)
+	?Iterator@CGlxListWindow@@QBE?AVTGlxWindowIterator@@XZ @ 69 NONAME ; class TGlxWindowIterator CGlxListWindow::Iterator(void) const
+	?Category@TGlxMedia@@QBE?AW4TMPXGeneralCategory@@XZ @ 70 NONAME ; enum TMPXGeneralCategory TGlxMedia::Category(void) const
+	??0CGlxAttributeContext@@QAE@PAVMGlxMediaListIterator@@@Z @ 71 NONAME ; CGlxAttributeContext::CGlxAttributeContext(class MGlxMediaListIterator *)
+	?GetIconInfo@TGlxMedia@@QBEHAAUTIconInfo@@@Z @ 72 NONAME ; int TGlxMedia::GetIconInfo(struct TIconInfo &) const
+	?__DbgTestInvariant@CGlxItemList@@QBEXXZ @ 73 NONAME ; void CGlxItemList::__DbgTestInvariant(void) const
+	?Comment@TGlxMedia@@QBEABVTDesC16@@XZ @ 74 NONAME ; class TDesC16 const & TGlxMedia::Comment(void) const
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@ABVTMPXAttribute@@@Z @ 75 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, class TMPXAttribute const &)
+	??0TGlxSequentialIterator@@QAE@XZ @ 76 NONAME ; TGlxSequentialIterator::TGlxSequentialIterator(void)
+	?SetFocusIndexL@CGlxListWindow@@QAEXHH@Z @ 77 NONAME ; void CGlxListWindow::SetFocusIndexL(int, int)
+	?AttributeCount@CGlxAttributeContext@@QAEHXZ @ 78 NONAME ; int CGlxAttributeContext::AttributeCount(void)
+	?GetDrmValidity@TGlxMedia@@QBEHAAW4TGlxMediaGeneralRightsValidity@@@Z @ 79 NONAME ; int TGlxMedia::GetDrmValidity(enum TGlxMediaGeneralRightsValidity &) const
+	?__DbgTestInvariant@CGlxNavigableList@@QBEXXZ @ 80 NONAME ; void CGlxNavigableList::__DbgTestInvariant(void) const
+	?SetValueL@CGlxMedia@@QAEXABVTMPXAttribute@@PAXW4TMPXAttributeType@@@Z @ 81 NONAME ; void CGlxMedia::SetValueL(class TMPXAttribute const &, void *, enum TMPXAttributeType)
+	?ValueText@CGlxMedia@@QBEABVTDesC16@@ABVTMPXAttribute@@@Z @ 82 NONAME ; class TDesC16 const & CGlxMedia::ValueText(class TMPXAttribute const &) const
+	??0CGlxMedia@@QAE@ABVTGlxMediaId@@@Z @ 83 NONAME ; CGlxMedia::CGlxMedia(class TGlxMediaId const &)
+	?DeleteLocationAttribute@TGlxMedia@@QAEXXZ @ 84 NONAME ; void TGlxMedia::DeleteLocationAttribute(void)
+	?GetClosestThumbnail@TGlxMedia@@QBEHAAVTMPXAttribute@@ABVTSize@@H@Z @ 85 NONAME ; int TGlxMedia::GetClosestThumbnail(class TMPXAttribute &, class TSize const &, int) const
+	??1CGlxMedia@@UAE@XZ @ 86 NONAME ; CGlxMedia::~CGlxMedia(void)
+	?__DbgTestInvariant@CGlxMedia@@QBEXXZ @ 87 NONAME ; void CGlxMedia::__DbgTestInvariant(void) const
+	?IsDrmProtected@TGlxMedia@@QBEHXZ @ 88 NONAME ; int TGlxMedia::IsDrmProtected(void) const
+	?GetSystemItem@TGlxMedia@@QBEHAAH@Z @ 89 NONAME ; int TGlxMedia::GetSystemItem(int &) const
+	??1CGlxThumbnailContext@@UAE@XZ @ 90 NONAME ; CGlxThumbnailContext::~CGlxThumbnailContext(void)
+	?GetDrmProtected@TGlxMedia@@QBEHAAH@Z @ 91 NONAME ; int TGlxMedia::GetDrmProtected(int &) const
+	?Close@TGlxFetchContextRemover@@QAEXXZ @ 92 NONAME ; void TGlxFetchContextRemover::Close(void)
+	?At@CGlxListWindow@@QBEPBVCBase@@H@Z @ 93 NONAME ; class CBase const * CGlxListWindow::At(int) const
+	?HasAttributeErrorL@GlxErrorManager@@SAHPBVCGlxMedia@@H@Z @ 94 NONAME ; int GlxErrorManager::HasAttributeErrorL(class CGlxMedia const *, int)
+	?At@CGlxListWindow@@QAEPAVCBase@@H@Z @ 95 NONAME ; class CBase * CGlxListWindow::At(int)
+	??1TGlxFromManualIndexBlockyIterator@@QAE@XZ @ 96 NONAME ; TGlxFromManualIndexBlockyIterator::~TGlxFromManualIndexBlockyIterator(void)
+	?RemoveAttribute@CGlxAttributeContext@@QAEXABVTMPXAttribute@@@Z @ 97 NONAME ; void CGlxAttributeContext::RemoveAttribute(class TMPXAttribute const &)
+	??1TGlxFromIndexOutwardBlockyIterator@@QAE@XZ @ 98 NONAME ; TGlxFromIndexOutwardBlockyIterator::~TGlxFromIndexOutwardBlockyIterator(void)
+	?ClosestThumbnail@GlxThumbnailUtility@@SAHABVTSize@@ABVCGlxMedia@@H@Z @ 99 NONAME ; int GlxThumbnailUtility::ClosestThumbnail(class TSize const &, class CGlxMedia const &, int)
+	??0TGlxFromManualIndexOutwardBlockyIterator@@QAE@XZ @ 100 NONAME ; TGlxFromManualIndexOutwardBlockyIterator::TGlxFromManualIndexOutwardBlockyIterator(void)
+	?GetSize@TGlxMedia@@QBEHAAI@Z @ 101 NONAME ; int TGlxMedia::GetSize(unsigned int &) const
+	??1TGlxScrollingDirectionIterator@@QAE@XZ @ 102 NONAME ; TGlxScrollingDirectionIterator::~TGlxScrollingDirectionIterator(void)
+	?SetFocusIndexL@CGlxListWindow@@QAEXH@Z @ 103 NONAME ; void CGlxListWindow::SetFocusIndexL(int)
+	??1TGlxExclusionIterator@@QAE@XZ @ 104 NONAME ; TGlxExclusionIterator::~TGlxExclusionIterator(void)
+	??1CGlxDefaultListAttributeContext@@UAE@XZ @ 105 NONAME ; CGlxDefaultListAttributeContext::~CGlxDefaultListAttributeContext(void)
+	??1TGlxFetchContextRemover@@QAE@XZ @ 106 NONAME ; TGlxFetchContextRemover::~TGlxFetchContextRemover(void)
+	?RemoveObjectsL@CGlxListWindow@@QAEXHHHH@Z @ 107 NONAME ; void CGlxListWindow::RemoveObjectsL(int, int, int, int)
+	?CleanupL@CGlxListWindow@@QAEXXZ @ 108 NONAME ; void CGlxListWindow::CleanupL(void)
+	?SetRangeOffsets@TGlxFromVisibleIndexOutwardListIterator@@QAEXHH@Z @ 109 NONAME ; void TGlxFromVisibleIndexOutwardListIterator::SetRangeOffsets(int, int)
+	?SetDefaultSpec@CGlxThumbnailContext@@QAEXHH@Z @ 110 NONAME ; void CGlxThumbnailContext::SetDefaultSpec(int, int)
+	?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 111 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const
 	??0TGlxFromVisibleIndexOutwardListIterator@@QAE@XZ @ 112 NONAME ; TGlxFromVisibleIndexOutwardListIterator::TGlxFromVisibleIndexOutwardListIterator(void)
 	??0TGlxSpecificIdIterator@@QAE@ABV?$TGlxId@VTGlxIdSpaceIdBase@@@@VTGlxMediaId@@@Z @ 113 NONAME ; TGlxSpecificIdIterator::TGlxSpecificIdIterator(class TGlxId<class TGlxIdSpaceIdBase> const &, class TGlxMediaId)
-	?GetSlideshowPlayableContainedItemCount@TGlxMedia@@QBEHAAH@Z @ 114 NONAME ; int TGlxMedia::GetSlideshowPlayableContainedItemCount(int &) const
+	?AddObjectsL@CGlxListWindow@@QAEXHHHH@Z @ 114 NONAME ; void CGlxListWindow::AddObjectsL(int, int, int, int)
 	?MatchById@TGlxMedia@@SAHABV1@0@Z @ 115 NONAME ; int TGlxMedia::MatchById(class TGlxMedia const &, class TGlxMedia const &)
 	?SetRangeOffsetsL@CGlxListWindow@@QAEXHH@Z @ 116 NONAME ; void CGlxListWindow::SetRangeOffsetsL(int, int)
 	?SetRangeOffsets@CGlxDefaultListAttributeContext@@QAEXHH@Z @ 117 NONAME ; void CGlxDefaultListAttributeContext::SetRangeOffsets(int, int)
--- a/ui/uiengine/medialists/eabi/glxmedialistsu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/eabi/glxmedialistsu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -1,17 +1,17 @@
 EXPORTS
 	_ZN13MGlxMediaList10UnmarkAllLERS_ @ 1 NONAME
 	_ZN13MGlxMediaList9InstanceLERK18CMPXCollectionPathRK6TGlxIdI19TGlxIdHierarchyBaseEP9CMPXMedia @ 2 NONAME
-	_ZN14CGlxListWindow10AddObjectsEii @ 3 NONAME
-	_ZN14CGlxListWindow10AddObjectsEiiii @ 4 NONAME
-	_ZN14CGlxListWindow10ConstructLEv @ 5 NONAME
-	_ZN14CGlxListWindow13RemoveObjectsEii @ 6 NONAME
-	_ZN14CGlxListWindow13RemoveObjectsEiiii @ 7 NONAME
-	_ZN14CGlxListWindow13SetFocusIndexEi @ 8 NONAME
-	_ZN14CGlxListWindow13SetFocusIndexEii @ 9 NONAME
+	_ZN14CGlxListWindow10ConstructLEv @ 3 NONAME
+	_ZN14CGlxListWindow11AddObjectsLEii @ 4 NONAME
+	_ZN14CGlxListWindow11AddObjectsLEiiii @ 5 NONAME
+	_ZN14CGlxListWindow14RemoveObjectsLEii @ 6 NONAME
+	_ZN14CGlxListWindow14RemoveObjectsLEiiii @ 7 NONAME
+	_ZN14CGlxListWindow14SetFocusIndexLEi @ 8 NONAME
+	_ZN14CGlxListWindow14SetFocusIndexLEii @ 9 NONAME
 	_ZN14CGlxListWindow16SetRangeOffsetsLEii @ 10 NONAME
 	_ZN14CGlxListWindow16SetRangeOffsetsLEiiii @ 11 NONAME
 	_ZN14CGlxListWindow2AtEi @ 12 NONAME
-	_ZN14CGlxListWindow7CleanupEv @ 13 NONAME
+	_ZN14CGlxListWindow8CleanupLEv @ 13 NONAME
 	_ZN14CGlxListWindowC1ER23MGlxWindowObjectFactory @ 14 NONAME
 	_ZN14CGlxListWindowC2ER23MGlxWindowObjectFactory @ 15 NONAME
 	_ZN14CGlxListWindowD0Ev @ 16 NONAME
@@ -133,80 +133,85 @@
 	_ZN9MGlxCache9InstanceLEv @ 132 NONAME
 	_ZN9TGlxMedia23DeleteLocationAttributeEv @ 133 NONAME
 	_ZN9TGlxMedia9MatchByIdERKS_S1_ @ 134 NONAME
-	_ZNK14CGlxListWindow2AtEi @ 135 NONAME
-	_ZNK14CGlxListWindow8IteratorEv @ 136 NONAME
-	_ZNK21TGlxSelectionIterator7InRangeEi @ 137 NONAME
-	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 138 NONAME
-	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 139 NONAME
-	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 140 NONAME
-	_ZNK9TGlxMedia11GetDurationERf @ 141 NONAME
-	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 142 NONAME
-	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 143 NONAME
-	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 144 NONAME
-	_ZNK9TGlxMedia13GetFrameCountERi @ 145 NONAME
-	_ZNK9TGlxMedia13GetSystemItemERi @ 146 NONAME
-	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 147 NONAME
-	_ZNK9TGlxMedia14IsDrmProtectedEv @ 148 NONAME
-	_ZNK9TGlxMedia15GetDrmProtectedERi @ 149 NONAME
-	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 150 NONAME
-	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 151 NONAME
-	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 152 NONAME
-	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 153 NONAME
-	_ZNK9TGlxMedia21GetContainedItemCountERi @ 154 NONAME
-	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 155 NONAME
-	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 156 NONAME
-	_ZNK9TGlxMedia3UriEv @ 157 NONAME
-	_ZNK9TGlxMedia5TitleEv @ 158 NONAME
-	_ZNK9TGlxMedia7CommentEv @ 159 NONAME
-	_ZNK9TGlxMedia7GetDateER5TTime @ 160 NONAME
-	_ZNK9TGlxMedia7GetSizeERi @ 161 NONAME
-	_ZNK9TGlxMedia8CategoryEv @ 162 NONAME
-	_ZNK9TGlxMedia8IsStaticEv @ 163 NONAME
-	_ZNK9TGlxMedia8MimeTypeEv @ 164 NONAME
-	_ZNK9TGlxMedia8SubTitleEv @ 165 NONAME
-	_ZNK9TGlxMedia9IdSpaceIdEv @ 166 NONAME
-	_ZTI13CGlxMediaList @ 167 NONAME
-	_ZTI14CGlxListWindow @ 168 NONAME
-	_ZTI15CGlxImageReader @ 169 NONAME
-	_ZTI16CGlxCacheManager @ 170 NONAME
-	_ZTI20CGlxAttributeContext @ 171 NONAME
-	_ZTI20CGlxGarbageCollector @ 172 NONAME
-	_ZTI20CGlxThumbnailContext @ 173 NONAME
-	_ZTI21TGlxExclusionIterator @ 174 NONAME
-	_ZTI21TGlxSelectionIterator @ 175 NONAME
-	_ZTI22TGlxSequentialIterator @ 176 NONAME
-	_ZTI22TGlxSpecificIdIterator @ 177 NONAME
-	_ZTI25TGlxFirstThenLastIterator @ 178 NONAME
-	_ZTI27CGlxDefaultAttributeContext @ 179 NONAME
-	_ZTI27CGlxDefaultThumbnailContext @ 180 NONAME
-	_ZTI28TGlxFromFocusOutwardIterator @ 181 NONAME
-	_ZTI30TGlxScrollingDirectionIterator @ 182 NONAME
-	_ZTI31CGlxDefaultListAttributeContext @ 183 NONAME
-	_ZTI33TGlxFromManualIndexBlockyIterator @ 184 NONAME
-	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 185 NONAME
-	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 186 NONAME
-	_ZTI39TGlxFromVisibleIndexOutwardListIterator @ 187 NONAME
-	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 188 NONAME
-	_ZTV13CGlxMediaList @ 189 NONAME
-	_ZTV14CGlxListWindow @ 190 NONAME
-	_ZTV15CGlxImageReader @ 191 NONAME
-	_ZTV16CGlxCacheManager @ 192 NONAME
-	_ZTV20CGlxAttributeContext @ 193 NONAME
-	_ZTV20CGlxGarbageCollector @ 194 NONAME
-	_ZTV20CGlxThumbnailContext @ 195 NONAME
-	_ZTV21TGlxExclusionIterator @ 196 NONAME
-	_ZTV21TGlxSelectionIterator @ 197 NONAME
-	_ZTV22TGlxSequentialIterator @ 198 NONAME
-	_ZTV22TGlxSpecificIdIterator @ 199 NONAME
-	_ZTV25TGlxFirstThenLastIterator @ 200 NONAME
-	_ZTV27CGlxDefaultAttributeContext @ 201 NONAME
-	_ZTV27CGlxDefaultThumbnailContext @ 202 NONAME
-	_ZTV28TGlxFromFocusOutwardIterator @ 203 NONAME
-	_ZTV30TGlxScrollingDirectionIterator @ 204 NONAME
-	_ZTV31CGlxDefaultListAttributeContext @ 205 NONAME
-	_ZTV33TGlxFromManualIndexBlockyIterator @ 206 NONAME
-	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 207 NONAME
-	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 208 NONAME
-	_ZTV39TGlxFromVisibleIndexOutwardListIterator @ 209 NONAME
-	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 210 NONAME
+	_ZNK12CGlxItemList18__DbgTestInvariantEv @ 135 NONAME
+	_ZNK14CGlxListWindow18__DbgTestInvariantEv @ 136 NONAME
+	_ZNK14CGlxListWindow2AtEi @ 137 NONAME
+	_ZNK14CGlxListWindow8IteratorEv @ 138 NONAME
+	_ZNK17CGlxNavigableList18__DbgTestInvariantEv @ 139 NONAME
+	_ZNK18CGlxStaticItemList18__DbgTestInvariantEv @ 140 NONAME
+	_ZNK21TGlxSelectionIterator7InRangeEi @ 141 NONAME
+	_ZNK9CGlxMedia12GetValueTextER7TPtrC16RK13TMPXAttribute @ 142 NONAME
+	_ZNK9CGlxMedia12ValueCObjectERK13TMPXAttribute @ 143 NONAME
+	_ZNK9CGlxMedia18__DbgTestInvariantEv @ 144 NONAME
+	_ZNK9CGlxMedia9ValueTextERK13TMPXAttribute @ 145 NONAME
+	_ZNK9TGlxMedia11GetDurationERf @ 146 NONAME
+	_ZNK9TGlxMedia11GetIconInfoER9TIconInfo @ 147 NONAME
+	_ZNK9TGlxMedia13GetCoordinateER11TCoordinate @ 148 NONAME
+	_ZNK9TGlxMedia13GetDimensionsER5TSize @ 149 NONAME
+	_ZNK9TGlxMedia13GetFrameCountERi @ 150 NONAME
+	_ZNK9TGlxMedia13GetSystemItemERi @ 151 NONAME
+	_ZNK9TGlxMedia14GetDrmValidityER30TGlxMediaGeneralRightsValidity @ 152 NONAME
+	_ZNK9TGlxMedia14IsDrmProtectedEv @ 153 NONAME
+	_ZNK9TGlxMedia15GetDrmProtectedERi @ 154 NONAME
+	_ZNK9TGlxMedia18ThumbnailAttributeER13TMPXAttribute @ 155 NONAME
+	_ZNK9TGlxMedia19GetClosestThumbnailER13TMPXAttributeRK5TSizei @ 156 NONAME
+	_ZNK9TGlxMedia19GetLastModifiedDateER5TTime @ 157 NONAME
+	_ZNK9TGlxMedia20GetStaticItemCommandERi @ 158 NONAME
+	_ZNK9TGlxMedia21GetContainedItemCountERi @ 159 NONAME
+	_ZNK9TGlxMedia26IsSlideShowPlayableContentEv @ 160 NONAME
+	_ZNK9TGlxMedia38GetSlideshowPlayableContainedItemCountERi @ 161 NONAME
+	_ZNK9TGlxMedia3UriEv @ 162 NONAME
+	_ZNK9TGlxMedia5TitleEv @ 163 NONAME
+	_ZNK9TGlxMedia7CommentEv @ 164 NONAME
+	_ZNK9TGlxMedia7GetDateER5TTime @ 165 NONAME
+	_ZNK9TGlxMedia7GetSizeERj @ 166 NONAME
+	_ZNK9TGlxMedia8CategoryEv @ 167 NONAME
+	_ZNK9TGlxMedia8IsStaticEv @ 168 NONAME
+	_ZNK9TGlxMedia8MimeTypeEv @ 169 NONAME
+	_ZNK9TGlxMedia8SubTitleEv @ 170 NONAME
+	_ZNK9TGlxMedia9IdSpaceIdEv @ 171 NONAME
+	_ZTI13CGlxMediaList @ 172 NONAME
+	_ZTI14CGlxListWindow @ 173 NONAME
+	_ZTI15CGlxImageReader @ 174 NONAME
+	_ZTI16CGlxCacheManager @ 175 NONAME
+	_ZTI20CGlxAttributeContext @ 176 NONAME
+	_ZTI20CGlxGarbageCollector @ 177 NONAME
+	_ZTI20CGlxThumbnailContext @ 178 NONAME
+	_ZTI21TGlxExclusionIterator @ 179 NONAME
+	_ZTI21TGlxSelectionIterator @ 180 NONAME
+	_ZTI22TGlxSequentialIterator @ 181 NONAME
+	_ZTI22TGlxSpecificIdIterator @ 182 NONAME
+	_ZTI25TGlxFirstThenLastIterator @ 183 NONAME
+	_ZTI27CGlxDefaultAttributeContext @ 184 NONAME
+	_ZTI27CGlxDefaultThumbnailContext @ 185 NONAME
+	_ZTI28TGlxFromFocusOutwardIterator @ 186 NONAME
+	_ZTI30TGlxScrollingDirectionIterator @ 187 NONAME
+	_ZTI31CGlxDefaultListAttributeContext @ 188 NONAME
+	_ZTI33TGlxFromManualIndexBlockyIterator @ 189 NONAME
+	_ZTI34TGlxFromFocusOutwardBlockyIterator @ 190 NONAME
+	_ZTI34TGlxFromIndexOutwardBlockyIterator @ 191 NONAME
+	_ZTI39TGlxFromVisibleIndexOutwardListIterator @ 192 NONAME
+	_ZTI40TGlxFromManualIndexOutwardBlockyIterator @ 193 NONAME
+	_ZTV13CGlxMediaList @ 194 NONAME
+	_ZTV14CGlxListWindow @ 195 NONAME
+	_ZTV15CGlxImageReader @ 196 NONAME
+	_ZTV16CGlxCacheManager @ 197 NONAME
+	_ZTV20CGlxAttributeContext @ 198 NONAME
+	_ZTV20CGlxGarbageCollector @ 199 NONAME
+	_ZTV20CGlxThumbnailContext @ 200 NONAME
+	_ZTV21TGlxExclusionIterator @ 201 NONAME
+	_ZTV21TGlxSelectionIterator @ 202 NONAME
+	_ZTV22TGlxSequentialIterator @ 203 NONAME
+	_ZTV22TGlxSpecificIdIterator @ 204 NONAME
+	_ZTV25TGlxFirstThenLastIterator @ 205 NONAME
+	_ZTV27CGlxDefaultAttributeContext @ 206 NONAME
+	_ZTV27CGlxDefaultThumbnailContext @ 207 NONAME
+	_ZTV28TGlxFromFocusOutwardIterator @ 208 NONAME
+	_ZTV30TGlxScrollingDirectionIterator @ 209 NONAME
+	_ZTV31CGlxDefaultListAttributeContext @ 210 NONAME
+	_ZTV33TGlxFromManualIndexBlockyIterator @ 211 NONAME
+	_ZTV34TGlxFromFocusOutwardBlockyIterator @ 212 NONAME
+	_ZTV34TGlxFromIndexOutwardBlockyIterator @ 213 NONAME
+	_ZTV39TGlxFromVisibleIndexOutwardListIterator @ 214 NONAME
+	_ZTV40TGlxFromManualIndexOutwardBlockyIterator @ 215 NONAME
 
--- a/ui/uiengine/medialists/inc/glxlistwindow.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/inc/glxlistwindow.h	Wed Aug 18 09:48:53 2010 +0300
@@ -108,7 +108,7 @@
      * classes implement MGlxWindowObjectFactory, since vtable would not
      * be valid in the destructor 
 	 */
-	IMPORT_C void Cleanup();
+	IMPORT_C void CleanupL();
 
 	/**
 	 * Updates range offset. The range is the span of indexes that defined 
@@ -128,16 +128,16 @@
  	 * Sets the focus. 
  	 * @param aFocusIndex index of the object to be focused in the list
  	 */
-	/* @todo depricated */ IMPORT_C void SetFocusIndex( TInt aFocusIndex ); 
-	IMPORT_C void SetFocusIndex( TInt aFocusIndex, TInt aTotalSize );
+	/* @todo depricated */ IMPORT_C void SetFocusIndexL( TInt aFocusIndex ); 
+	IMPORT_C void SetFocusIndexL( TInt aFocusIndex, TInt aTotalSize );
 
 	/**
 	 * Adds objects to the list. Updates window if necessary.
 	 * The function assumes that the underlying data structure has
 	 * already changed.
 	 */
-	/* @todo depricated */ IMPORT_C void AddObjects( TInt aFirstNewIndex, TInt aLastNewIndex ); 
-	IMPORT_C void AddObjects( TInt aFocusIndex, TInt aTotalSize,
+	/* @todo depricated */ IMPORT_C void AddObjectsL( TInt aFirstNewIndex, TInt aLastNewIndex ); 
+	IMPORT_C void AddObjectsL( TInt aFocusIndex, TInt aTotalSize,
 	    TInt aFirstNewIndex, TInt aLastNewIndex );
 	
 	/**
@@ -145,8 +145,8 @@
 	 * The function assumes that the underlying data structure has
 	 * already changed.
 	 */
-	/* @todo depricated */ IMPORT_C void RemoveObjects( TInt aFirstRemovedIndex, TInt aLastRemovedIndex ); 
-	IMPORT_C void RemoveObjects( TInt aFocusIndex, TInt aTotalSize, 
+	/* @todo depricated */ IMPORT_C void RemoveObjectsL( TInt aFirstRemovedIndex, TInt aLastRemovedIndex ); 
+	IMPORT_C void RemoveObjectsL( TInt aFocusIndex, TInt aTotalSize, 
 	    TInt aFirstRemovedIndex, TInt aLastRemovedIndex );
 	
 	/**
@@ -192,9 +192,9 @@
         };
 
     /** Update the window based on the change */
-    void Update( const TChange& aChange );
+    void UpdateL( const TChange& aChange );
     /** Move objects from main window to working window, or object pool if not needed */
-    void PopulateExistingAndUnuseOld( const TChange& aChange );
+    void PopulateExistingAndUnuseOldL( const TChange& aChange );
     /** Populate main window with items from object pool */
     void PopulateNew();
     /** Make working window the main window and vice versa */
--- a/ui/uiengine/medialists/inc/glxmedia.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/inc/glxmedia.h	Wed Aug 18 09:48:53 2010 +0300
@@ -128,7 +128,7 @@
      * @return EFalse if unable to get size - aSize is unchanged. 
      *         ETrue if size successfully put in aSize.
      */
-    IMPORT_C TBool GetSize(TInt& aSize) const;
+    IMPORT_C TBool GetSize(TUint& aSize) const;
     
     /**
      * Get the duration associated with the media.
--- a/ui/uiengine/medialists/inc/glxmedialist.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/inc/glxmedialist.h	Wed Aug 18 09:48:53 2010 +0300
@@ -99,7 +99,10 @@
      * @param aAttributes attributes to request for the items
      * @param aDetailedSpecs attribute specifications
      */
-    void AttributeRequestL(RArray<TInt>& aItemIndexes, RArray<TGlxMediaId>& aItemIds, RArray<TMPXAttribute>& aAttributes, CMPXAttributeSpecs*& aDetailedSpecs) const;
+    void AttributeRequestL(RArray<TInt>& aItemIndexes,
+            RArray<TGlxMediaId>& aItemIds,
+            RArray<TMPXAttribute>& aAttributes,
+            CMPXAttributeSpecs*& aDetailedSpecs) const;
 
     /**
      * Ordering function for attributes
--- a/ui/uiengine/medialists/src/glxattributecontext.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxattributecontext.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -236,12 +236,14 @@
         return;
         }
 
+    CleanupClosePushL(aAttributes);
     // Just list all attributes specified for this context
     TInt count = iAttributes.Count();
     for (TInt i = 0; i < count; i++) 
         {
         aAttributes.AppendL(iAttributes[i]);
         }
+    CleanupStack::Pop(&aAttributes);
     }
 
 // -----------------------------------------------------------------------------
@@ -343,7 +345,7 @@
         const TMPXAttribute& aAttribute) const
     {
     TRACER("CGlxAttributeContext::AddItemAttributeL");
-    
+    CleanupClosePushL(aAttributes);
     TIdentityRelation<TMPXAttribute> match(&TMPXAttribute::Match);
     TInt index = aAttributes.Find(aAttribute, match);
 
@@ -351,6 +353,7 @@
         {
         aAttributes.AppendL(aAttribute);
         }
+    CleanupStack::Pop(&aAttributes);
     }
 
 // -----------------------------------------------------------------------------
--- a/ui/uiengine/medialists/src/glxcache.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxcache.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -241,6 +241,7 @@
         RArray<TMPXAttribute>& aNewAttributes)
     {
     TRACER("CGlxCache::CopyNewAndModifiedL");
+    CleanupClosePushL(aNewAttributes);
     
     /// @todo This is all temporary until global chunk based CMPXMedia is available
     TInt count = aSource.Count();
@@ -305,11 +306,14 @@
                         }
                     else if (attrib == KGlxMediaGeneralLastModifiedDate)
                         {
-                        aTarget.SetTObjectValueL(attrib, aSource.ValueTObjectL<TInt64>(attrib));
+                        TTime modified = aSource.ValueTObjectL<TInt64>(attrib);
+                        TTimeIntervalSeconds utcOffset = User::UTCOffset();
+                        modified += utcOffset;
+                        aTarget.SetTObjectValueL(attrib, modified);
                         }
                     else if (attrib == KMPXMediaGeneralSize)
                         {
-                        aTarget.SetTObjectValueL(attrib, aSource.ValueTObjectL<TInt>(attrib));
+                        aTarget.SetTObjectValueL(attrib, aSource.ValueTObjectL<TUint>(attrib));
                         }
                     else if (attrib == KMPXMediaColDetailSpaceId)
                         {
@@ -373,6 +377,7 @@
                 }
             }
         }
+    CleanupStack::Pop(&aNewAttributes);
     }
 
 // -----------------------------------------------------------------------------
--- a/ui/uiengine/medialists/src/glxcachemanager.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxcachemanager.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -348,7 +348,7 @@
             TInt userCount = item->UserCount();
             for ( TInt userIndex = 0; userIndex < userCount; userIndex++ )
                 {
-                users.InsertInAddressOrder( &item->User( userIndex ) );
+				users.InsertInAddressOrderL( &item->User( userIndex ) );
                 }
             }
 
@@ -661,7 +661,9 @@
 						    iThumbnailRequestIds.AppendL(TLoadingTN(iTnEngine->GetThumbnailL(itemId.Value()), spaceId, tnSize, itemId));
 #else
 						    CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC(item.Uri(), 0);
-						    iThumbnailRequestIds.AppendL(TLoadingTN(iTnEngine->GetThumbnailL(*source), spaceId, tnSize, itemId));
+                                iThumbnailRequestIds.AppendL(TLoadingTN(
+                                        iTnEngine->GetThumbnailL(*source), 
+                                        spaceId, tnSize, itemId));
 						    CleanupStack::PopAndDestroy(source);
 #endif
                                 }
@@ -738,7 +740,7 @@
                                 RFile64& imageHandle = imageVwrMgr->ImageFileHandle();
                                 if ( &imageHandle != NULL )
                                     {
-                                    fileName.Append(imageHandle.FullName(fileName));
+                                    imageHandle.FullName(fileName);
                                     }
                                 else
                                     {
@@ -933,10 +935,7 @@
                                 if(errInImage == KErrNone)
                                     {
                                     //need to fetch the original file dimensions
-                                    if(errInImage == KErrNone)
-                                        {
                                         dimensions = iReader->GetDimensions();
-                                        }
                                     iMPXMedia->SetTObjectValueL(KGlxMediaGeneralDimensions, dimensions);
                                     }
                                 else
--- a/ui/uiengine/medialists/src/glxgarbagecollector.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxgarbagecollector.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -163,6 +163,7 @@
 //
 void CGlxGarbageCollector::FlushPagesL(TInt aCount)
     {
+    TRACER("CGlxGarbageCollector::FlushPagesL");
     TBool reachedEnd = CleanupCaches(aCount);
     
     if ( reachedEnd )
--- a/ui/uiengine/medialists/src/glxitemlist.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxitemlist.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -538,7 +538,7 @@
 // ---------------------------------------------------------------------------
 // Test invariant
 // ---------------------------------------------------------------------------
-void CGlxItemList::__DbgTestInvariant() const
+EXPORT_C void CGlxItemList::__DbgTestInvariant() const
     {
     #ifdef _DEBUG
     
--- a/ui/uiengine/medialists/src/glxlistwindow.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxlistwindow.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -52,7 +52,7 @@
         }
         
     /** Preparet the window to accept items */
-    void Initialize( const CGlxListWindow::TRange& aRange, TInt aTotalSize )
+    void InitializeL( const CGlxListWindow::TRange& aRange, TInt aTotalSize )
         {
         __TEST_INVARIANT;
         
@@ -68,7 +68,7 @@
         for ( TInt i = iObjects.Count(); i < aRange.iLength; i++ ) 
             {
             // Append cannot fail since reservation has been made
-            ( void ) iObjects.Append( NULL );
+            ( void ) iObjects.AppendL( NULL );
             }
 
         // remove unnecessary pointers
@@ -276,12 +276,12 @@
 // Cleans up remaining objects in the window
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CGlxListWindow::Cleanup() 
+EXPORT_C void CGlxListWindow::CleanupL() 
 	{
-	TRACER("CGlxListWindow::Cleanup");
+	TRACER("CGlxListWindow::CleanupL");
 	
     // make the window empty. this will clean up all remaining objects.
-    Update( TChange( KErrNotFound, 0, EChangeObjectsRemoved, 0, iWindow->TotalSize() - 1 ) );
+    UpdateL( TChange( KErrNotFound, 0, EChangeObjectsRemoved, 0, iWindow->TotalSize() - 1 ) );
 	}
 	
 // -----------------------------------------------------------------------------
@@ -326,10 +326,10 @@
     for ( TInt i = iWindow->Size() + iUnusedObjects.Count(); i < maxObjectCount; i++ )
         {
         // cannot fail since reservation made above
-        ( void ) iUnusedObjects.Append( iObjectFactory.CreateObjectL() );
+        ( void )iUnusedObjects.AppendL( iObjectFactory.CreateObjectL() );
         }
 	
-	Update( TChange( aFocusIndex, aTotalSize, EChangeNone, 0, 0 ) );
+	UpdateL( TChange( aFocusIndex, aTotalSize, EChangeNone, 0, 0 ) );
 	}
     
 // -----------------------------------------------------------------------------
@@ -347,27 +347,27 @@
 // SetFocusIndexL
 // -----------------------------------------------------------------------------
 // DEPRICATED
-EXPORT_C void CGlxListWindow::SetFocusIndex( TInt aFocusIndex ) 
+EXPORT_C void CGlxListWindow::SetFocusIndexL( TInt aFocusIndex ) 
 	{
-	TRACER("CGlxListWindow::SetFocusIndex");
+	TRACER("CGlxListWindow::SetFocusIndexL");
 	
-	SetFocusIndex( aFocusIndex, iWindow->TotalSize() );
+	SetFocusIndexL( aFocusIndex, iWindow->TotalSize() );
 	}
 	
 // -----------------------------------------------------------------------------
 // SetFocusIndexL
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CGlxListWindow::SetFocusIndex( TInt aFocusIndex, TInt aTotalSize ) 
+EXPORT_C void CGlxListWindow::SetFocusIndexL( TInt aFocusIndex, TInt aTotalSize ) 
 	{
-	TRACER("CGlxListWindow::SetFocusIndex");
+	TRACER("CGlxListWindow::SetFocusIndexL");
 	
 	__ASSERT_DEBUG( ( 0 <= aFocusIndex && aFocusIndex < aTotalSize ) ||
                     ( KErrNotFound == aFocusIndex && 0 == aTotalSize ), 
                     Panic( EGlxPanicIllegalArgument ) );
     __TEST_INVARIANT;
     
-	Update( TChange( aFocusIndex, aTotalSize, EChangeNone, 0, 0 ) );
+	UpdateL( TChange( aFocusIndex, aTotalSize, EChangeNone, 0, 0 ) );
     
     __TEST_INVARIANT;
 	}
@@ -376,9 +376,9 @@
 // AddObjects
 // -----------------------------------------------------------------------------
 // DEPRICATED
-EXPORT_C void CGlxListWindow::AddObjects( TInt aFirstNewIndex, TInt aLastNewIndex ) 
+EXPORT_C void CGlxListWindow::AddObjectsL( TInt aFirstNewIndex, TInt aLastNewIndex ) 
 	{
-	TRACER("CGlxListWindow::AddObjects");
+	TRACER("CGlxListWindow::AddObjectsL");
 	
 	TInt newItemCount = aLastNewIndex - aFirstNewIndex + 1;
 	TInt newTotalSize = iWindow->TotalSize() + newItemCount;
@@ -398,17 +398,17 @@
 		newFocusIndex += newItemCount;
 		}
 		
-    AddObjects( newFocusIndex, newTotalSize, aFirstNewIndex, aLastNewIndex );
+    AddObjectsL( newFocusIndex, newTotalSize, aFirstNewIndex, aLastNewIndex );
 	}
 		
 // -----------------------------------------------------------------------------
 // AddObjects
 // -----------------------------------------------------------------------------
 //
-EXPORT_C void CGlxListWindow::AddObjects( TInt aFocusIndex, 
+EXPORT_C void CGlxListWindow::AddObjectsL( TInt aFocusIndex, 
         TInt aTotalSize, TInt aFirstNewIndex, TInt aLastNewIndex ) 
 	{
-	TRACER("CGlxListWindow::AddObjects");
+	TRACER("CGlxListWindow::AddObjectsL");
 	
     __ASSERT_DEBUG( 0 <= aFirstNewIndex && aFirstNewIndex <= aLastNewIndex && 
                     aLastNewIndex < aTotalSize &&
@@ -416,7 +416,7 @@
                     Panic( EGlxPanicIllegalArgument ) ); 
     __TEST_INVARIANT;
 	
-	Update( TChange( aFocusIndex, aTotalSize, EChangeObjectsAdded, 
+	UpdateL( TChange( aFocusIndex, aTotalSize, EChangeObjectsAdded, 
         aFirstNewIndex, aLastNewIndex ) );
 		
     __TEST_INVARIANT;
@@ -426,9 +426,9 @@
 // RemoveObjects
 // -----------------------------------------------------------------------------
 // DEPRICATED
-EXPORT_C void CGlxListWindow::RemoveObjects( TInt aFirstRemovedIndex, TInt aLastRemovedIndex ) 
+EXPORT_C void CGlxListWindow::RemoveObjectsL( TInt aFirstRemovedIndex, TInt aLastRemovedIndex ) 
 	{
-	TRACER("CGlxListWindow::RemoveObjects");
+	TRACER("CGlxListWindow::RemoveObjectsL");
 	
 	TInt itemsRemovedCount = aLastRemovedIndex - aFirstRemovedIndex + 1;
 	TInt newTotalSize = iWindow->TotalSize() - itemsRemovedCount;
@@ -461,17 +461,17 @@
 	    	}
 	    }
 
-	RemoveObjects( newFocusIndex, newTotalSize, aFirstRemovedIndex, aLastRemovedIndex );
+	RemoveObjectsL( newFocusIndex, newTotalSize, aFirstRemovedIndex, aLastRemovedIndex );
 	}	
 
 // -----------------------------------------------------------------------------
 // RemoveObjects
 // -----------------------------------------------------------------------------
 //	
-EXPORT_C void CGlxListWindow::RemoveObjects( TInt aFocusIndex, 
+EXPORT_C void CGlxListWindow::RemoveObjectsL( TInt aFocusIndex, 
         TInt aTotalSize, TInt aFirstRemovedIndex, TInt aLastRemovedIndex ) 
 	{
-	TRACER("CGlxListWindow::RemoveObjects");
+	TRACER("CGlxListWindow::RemoveObjectsL");
 	
     __ASSERT_DEBUG( 0 <= aFirstRemovedIndex && aFirstRemovedIndex <= aLastRemovedIndex &&
                     ( ( 0 <= aFocusIndex && aFocusIndex < aTotalSize ) || 
@@ -479,7 +479,7 @@
                     Panic( EGlxPanicIllegalArgument ) ); 
     __TEST_INVARIANT;
     
-	Update( TChange( aFocusIndex, aTotalSize, EChangeObjectsRemoved, 
+	UpdateL( TChange( aFocusIndex, aTotalSize, EChangeObjectsRemoved, 
         aFirstRemovedIndex, aLastRemovedIndex ) );
 
     __TEST_INVARIANT;
@@ -489,9 +489,9 @@
 // Update
 // -----------------------------------------------------------------------------
 //
-void CGlxListWindow::Update( const TChange& aChange )
+void CGlxListWindow::UpdateL( const TChange& aChange )
 	{
-	TRACER("CGlxListWindow::Update");
+	TRACER("CGlxListWindow::UpdateL");
 	
     // (in a list of:  |abcdefghijklm|
     // iWindow:        |----efghi----|
@@ -500,14 +500,14 @@
     //                      is shorter than max window length)
     
     // Prepare the working window to accept objects
-    iWorkingWindow->Initialize( Range( aChange ), aChange.iNewTotalSize );
+    iWorkingWindow->InitializeL( Range( aChange ), aChange.iNewTotalSize );
 
     // iWindow:        |----efghi----|
     // iWorkingWindow: |------00000--|
     // iUnusedObjects: XXX 
     
     // move unused objects to pool, and reusable objects to working window
-    PopulateExistingAndUnuseOld( aChange );
+    PopulateExistingAndUnuseOldL( aChange );
 
     // iWindow:        |----efghi----|
     // iWorkingWindow: |------ghi00--|
@@ -537,9 +537,9 @@
 // PopulateExistingAndUnuseOld
 // -----------------------------------------------------------------------------
 //	
-void CGlxListWindow::PopulateExistingAndUnuseOld( const TChange& aChange ) 
+void CGlxListWindow::PopulateExistingAndUnuseOldL( const TChange& aChange ) 
     {
-    TRACER("CGlxListWindow::PopulateExistingAndUnuseOld");
+    TRACER("CGlxListWindow::PopulateExistingAndUnuseOldL");
     
     // move objects that are needed after the change into the working window, 
     // and objects that are not needed into the object pool
@@ -563,7 +563,7 @@
             iObjectFactory.CleanupObject( index, *( *iWindow )[ index ] );
             // add the object to the unused objects pool
             // cannot fail since reservation made
-            ( void ) iUnusedObjects.Append( ( *iWindow )[ index ] );
+            ( void )iUnusedObjects.AppendL( ( *iWindow )[ index ] );
             }
             
         // clear the pointer in the existing window. it is not strictly necessary
@@ -732,7 +732,7 @@
 // ---------------------------------------------------------------------------
 // Test invariant
 // ---------------------------------------------------------------------------
-void CGlxListWindow::__DbgTestInvariant() const
+EXPORT_C void CGlxListWindow::__DbgTestInvariant() const
     {
     TRACER("CGlxListWindow::__DbgTestInvariant");
     
--- a/ui/uiengine/medialists/src/glxmedia.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxmedia.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -153,7 +153,7 @@
 // -----------------------------------------------------------------------------
 // Gets the (file) size
 // -----------------------------------------------------------------------------
-EXPORT_C TBool TGlxMedia::GetSize(TInt& aSize) const
+EXPORT_C TBool TGlxMedia::GetSize(TUint& aSize) const
     {
     TRACER("TGlxMedia::GetSize");
     
@@ -580,7 +580,7 @@
 
     __DEBUG_ONLY( _iUserReservationCount-- );
 
-	iUsers.Append( TMediaUser( &aUser, aIndex ) ); // Ignore error, cannot fail since reservation made 
+	iUsers.AppendL( TMediaUser( &aUser, aIndex ) ); // Ignore error, cannot fail since reservation made 
 	}
 
 // -----------------------------------------------------------------------------
@@ -984,7 +984,7 @@
 // ---------------------------------------------------------------------------
 // Test invariant
 // ---------------------------------------------------------------------------
-void CGlxMedia::__DbgTestInvariant() const
+EXPORT_C void CGlxMedia::__DbgTestInvariant() const
     {
     TRACER("CGlxMedia::__DbgTestInvariant");
     
--- a/ui/uiengine/medialists/src/glxmedialist.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxmedialist.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -39,6 +39,16 @@
 #include "mglxmedialistobserver.h"
 #include "glxmediastaticitemdefs.h"
 
+/**
+ * Min & Max wait interval for a modify event, in microseconds
+ * This is to allow thumbnail manager to procees the event first.
+ */
+const TInt KModifyEventMinWaitInterval = 2000000;
+const TInt KModifyEventMaxWaitInterval = 3000000;
+/**
+ * Maximum items count for minimum wait interval.
+ */
+const TInt KMaxItemsCount = 500;
 namespace NGlxMediaList
     {
     /**
@@ -1327,7 +1337,7 @@
     for (TInt level = 0; level < levels; level++) 
         {
         TGlxMediaId id(aPath.Id(level));
-        iPath.Append(id); 
+        iPath.AppendL(id); 
         }
 
     
@@ -1530,6 +1540,28 @@
             }
 
         CleanupStack::PopAndDestroy(&itemIndices);
+        RPointerArray<CGlxMediaList>& mediaLists = iMediaListArray->Array();
+        TInt listCount = mediaLists.Count();
+        GLX_DEBUG2("ML:HandleItemModifiedL listCount=%d", listCount);
+        if (listCount > 0)
+            {
+            CGlxMediaList* mediaList = mediaLists[listCount-1];
+            if (mediaList == this)
+                {
+                GLX_DEBUG3("ML:HandleItemModifiedL(wait) listCount=%d, Id=%d",
+                                                  listCount, id.Value());
+                TTimeIntervalMicroSeconds32 timeout;
+                timeout = (mediaList->Count() > KMaxItemsCount ?
+                  KModifyEventMaxWaitInterval : KModifyEventMinWaitInterval );
+                RTimer timer;
+                CleanupClosePushL(timer);
+                TRequestStatus status;
+                timer.CreateLocal();
+                timer.After(status, timeout);
+                User::WaitForRequest(status);
+                CleanupStack::PopAndDestroy(&timer);
+                }
+            }
         }
     }
 
@@ -1757,6 +1789,7 @@
     TRACER("CGlxMediaList::UpdateMedia");
     
     TInt count = iItemList->Count();
+    GLX_DEBUG2("CGlxMediaList::UpdateMedia() count=%d", count);    
     for (TInt i = 0; i < count; ++i)
         {
         TGlxMedia& item = iItemList->Item( i );
@@ -1859,15 +1892,8 @@
 	{
 	TRACER("CGlxMediaList::CancelPreviousRequests");	
 	
-	TInt focusIndex = FocusIndex();
 	
-	if(focusIndex >= KErrNone)
-		{	
-		if(!Item(focusIndex).Properties())
-			{
 			// If media is NULL, cancel the previous pending request.
 			// Place a new request for the item in focus, to fetch the media attributes
 			iManager->CancelPreviousRequest();		
 			}
-		}
-	}
--- a/ui/uiengine/medialists/src/glxnavigablelist.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxnavigablelist.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -561,6 +561,7 @@
     {
     TRACER( "CGlxNavigableList::SelectionL");
     
+    CleanupClosePushL(aItemIds);
     aItemIds.Reset();
 
     // Reserve full required space to avoid reallocations during loop
@@ -571,6 +572,7 @@
         {
         aItemIds.AppendL( iItemList->Item( iSelectedItemIndices[ i ] ).Id() );
         }
+    CleanupStack::Pop(&aItemIds);
     }
 
 // -----------------------------------------------------------------------------
@@ -924,7 +926,7 @@
 // ---------------------------------------------------------------------------
 // Test invariant
 // ---------------------------------------------------------------------------
-void CGlxNavigableList::__DbgTestInvariant() const
+EXPORT_C void CGlxNavigableList::__DbgTestInvariant() const
     {
     TRACER( "CGlxNavigableList::__DbgTestInvariant");
     
--- a/ui/uiengine/medialists/src/glxstaticitemlist.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxstaticitemlist.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -720,7 +720,7 @@
 // ---------------------------------------------------------------------------
 // Test invariant
 // ---------------------------------------------------------------------------
-void CGlxStaticItemList::__DbgTestInvariant() const
+EXPORT_C void CGlxStaticItemList::__DbgTestInvariant() const
     {
     TRACER( "CGlxStaticItemList::__DbgTestInvariant");
     
--- a/ui/uiengine/medialists/src/glxthumbnailcontext.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialists/src/glxthumbnailcontext.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -32,7 +32,6 @@
 #include "glxmedialist.h"
 #include "glxerrormanager.h"
 #include "glxthumbnailutility.h"
-//#include "mglxcache.h"
 #include "glxlistutils.h"
 
 /**
@@ -80,10 +79,7 @@
 void CGlxThumbnailContext::ConstructL()    
     {
     TRACER( "CGlxThumbnailContext::ConstructL");
-    
-    //iCache = MGlxCache::InstanceL();
     iResolutionUtility = CGlxResolutionUtility::InstanceL();
-  //  iResolutionUtility->AddObserverL( *this );
 
     iDrmUtility = CGlxDRMUtility::InstanceL();
 
@@ -130,16 +126,9 @@
 
     iSpecs.Close();
 
-    if ( iResolutionUtility )
-        {
-      //  iResolutionUtility->RemoveObserver( *this );
-        iResolutionUtility->Close();
-        }
+
 
-    /*if ( iCache )
-        {
-        iCache->Close();
-        }*/
+
     }
 
 // -----------------------------------------------------------------------------
@@ -363,17 +352,7 @@
     return requestCount;
     }
 
-// -----------------------------------------------------------------------------
-// HandleResolutionChanged
-// -----------------------------------------------------------------------------
-//
-/*void CGlxThumbnailContext::HandleResolutionChangedL()
-    {
-    TRACER( "CGlxThumbnailContext::HandleResolutionChanged");
-    
-    // Ask cache manager to refresh, to fetch thumbnails in new size
-    iCache->RefreshL();
-    }*/
+
 
 // -----------------------------------------------------------------------------
 // SelectItemL
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h	Wed Aug 18 09:48:53 2010 +0300
@@ -134,6 +134,7 @@
 	bool isSystemItem( int aItemIndex );
 	void handleTitleAvailable(QString aTitle);
 	
+    bool isCorruptedImage( int index );
 signals:
      void updateItem(int index, GlxTBContextType tbContextType);
 	 void insertItems(int startIndex,int endIndex);
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Wed Aug 18 09:48:53 2010 +0300
@@ -138,6 +138,7 @@
 	bool IsDrmProtected(int index );
 	bool IsDrmValid(int index);
 	void setDrmValid(int index,bool valid);			
+	bool IsCorruptedImage( int aItemIndex );				
 private:
 
     /**
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -308,7 +308,7 @@
 //
 void GlxMLWrapper::handleDetailsItemAvailable(int itemIndex)
 {
-
+    Q_UNUSED( itemIndex )
     emit updateDetails();
 }
 
@@ -330,3 +330,7 @@
     emit updateAlbumTitle(aTitle);
 }
 
+bool GlxMLWrapper::isCorruptedImage( int index )
+{
+    return mMLWrapperPrivate->IsCorruptedImage( index );
+}
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -41,6 +41,7 @@
 #include "glxmlgenericobserver.h"
 #include "glxattributeretriever.h"
 #include "glxicondefs.h" //Contains the icon names/Ids
+#include "glxerrors.h"
 
 //#define GLXPERFORMANCE_LOG  
 #include <glxperformancemacro.h>
@@ -94,8 +95,8 @@
       iLsFsContextActivated(EFalse),
       iPtFsContextActivated(EFalse), 
       iPtListContextActivated(EFalse),
-      iSelectionListContextActivated(EFalse),
-	  iDetailsContextActivated(EFalse)
+      iDetailsContextActivated(EFalse),
+      iSelectionListContextActivated(EFalse)	  
 {
     TRACER("GlxMLWrapperPrivate::GlxMLWrapperPrivate");
 	iGridThumbnailContext = NULL;
@@ -700,12 +701,8 @@
     {  
         GLX_LOG_INFO1("### GlxMLWrapperPrivate::HandleAttributesAvailableL GetIconInfo-Index is %d",aItemIndex);
     }*/
-    else if( tnError == KErrCANoRights)	{
         //handle DRM case
-    }
-    else if( tnError ) {
-        return (new HbIcon(GLXICON_CORRUPT));
-    }
+
     
     GLX_LOG_INFO1("### GlxMLWrapperPrivate::RetrieveItemIcon value-Index is %d and have returned empty icon",aItemIndex);
     return NULL;
@@ -884,7 +881,7 @@
 int GlxMLWrapperPrivate::RetrieveItemSize(int aItemIndex)
 {
     const TGlxMedia& item = iMediaList->Item( aItemIndex );
-    int itemSize ;
+    TUint itemSize ;
     item.GetSize(itemSize);
     return itemSize;
  }
@@ -1187,7 +1184,7 @@
 void GlxMLWrapperPrivate::CheckDetailsAttributes(TInt aItemIndex, const RArray<TMPXAttribute>& aAttributes)
 {
     qDebug("GlxMLWrapperPrivate::CheckDetailsAttributes");
-    TBool attribPresent = EFalse;
+    
     TMPXAttribute titleAttrib(KMPXMediaGeneralComment);
     TIdentityRelation< TMPXAttribute > match ( &TMPXAttribute::Match );
 
@@ -1196,7 +1193,7 @@
     if (KErrNotFound != aAttributes.Find(titleAttrib, match))
         {
         qDebug("GlxMLWrapperPrivate::CheckDetailsAttributes TRUE");
-        attribPresent = ETrue;
+    
         iMLWrapper->handleDetailsItemAvailable(aItemIndex);
         GLX_LOG_INFO1("### GlxMLWrapperPrivate::CheckDetailsAttributes title present %d",aItemIndex);
         }     
@@ -1319,9 +1316,8 @@
     QImage image(data, aBitmap->SizeInPixels().iWidth, aBitmap->SizeInPixels().iHeight, bytesPerLine, QImage::Format_RGB16);
         
     QPixmap pixmap = QPixmap::fromImage(image);
-    if ( aBitmap->SizeInPixels().iWidth > itemWidth || aBitmap->SizeInPixels().iHeight > itemHeight ) {
-        pixmap = pixmap.scaled( itemWidth, itemHeight, Qt::KeepAspectRatio );
-    }
+    pixmap = pixmap.scaled( itemWidth, itemHeight, Qt::KeepAspectRatio );
+  
     
     aBitmap->UnlockHeap();
     HbIcon* targetIcon = new HbIcon( QIcon( pixmap ) );
@@ -1480,3 +1476,19 @@
 		}
 	}
 
+bool GlxMLWrapperPrivate::IsCorruptedImage( int aItemIndex )
+{
+    const TGlxMedia& item = iMediaList->Item( aItemIndex );
+    qDebug("GlxMLWrapperPrivate::IsCorruptedImage item property %u ", item.Properties() );
+    TInt tnError = GlxErrorManager::HasAttributeErrorL( item.Properties(), KGlxMediaIdThumbnail );
+    qDebug("GlxMLWrapperPrivate::IsCorruptedImage index %d error %d ", aItemIndex, tnError);
+    if ( KErrNone == tnError 
+            || KErrNotSupported == tnError 
+            || KErrCANoRights == tnError 
+            || KErrGlxEmptyContainer == tnError ) {
+        return false ;
+    }
+    else {
+        return true ;
+    }
+}
--- a/ui/uiengine/model/bwins/glxlistmodelu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/bwins/glxlistmodelu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -29,4 +29,5 @@
 	?setData@GlxAlbumModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 28 NONAME ; bool GlxAlbumModel::setData(class QModelIndex const &, class QVariant const &, int)
 	?listPopulated@GlxAlbumModel@@IAEXXZ @ 29 NONAME ; void GlxAlbumModel::listPopulated(void)
 	?modelPopulated@GlxAlbumModel@@QAEXXZ @ 30 NONAME ; void GlxAlbumModel::modelPopulated(void)
+	?getCorruptDefaultIcon@GlxAlbumModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 31 NONAME ; class HbIcon * GlxAlbumModel::getCorruptDefaultIcon(class QModelIndex const &) const
 
--- a/ui/uiengine/model/bwins/glxmediamodelu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/bwins/glxmediamodelu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -1,42 +1,45 @@
 EXPORTS
-	?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const
-	?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 2 NONAME ; void GlxMediaModel::itemsAdded(int, int)
-	?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void)
-	?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 4 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType)
-	?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 5 NONAME ; void * GlxMediaModel::qt_metacast(char const *)
-	?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 6 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const
-	?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 7 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &)
-	?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 8 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &)
-	?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 9 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode)
-	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int)
-	?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 11 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject
-	?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 12 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const
-	??_EGlxMediaModel@@UAE@I@Z @ 13 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int)
-	?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 14 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const
-	?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int)
-	?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 16 NONAME ; void GlxMediaModel::itemCorrupted(int)
-	?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 17 NONAME ; void GlxMediaModel::addExternalItems(class QList<struct GlxInterfaceParams> *)
-	?modelpopulated@GlxMediaModel@@QAEXXZ @ 18 NONAME ; void GlxMediaModel::modelpopulated(void)
-	?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 19 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const
-	?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString GlxMediaModel::tr(char const *, char const *)
-	?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 21 NONAME ; void GlxMediaModel::itemsRemoved(int, int)
-	?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 22 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const
-	?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 23 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const
-	??1GlxMediaModel@@UAE@XZ @ 24 NONAME ; GlxMediaModel::~GlxMediaModel(void)
-	?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 26 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString)
-	?itemUpdated1@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 27 NONAME ; void GlxMediaModel::itemUpdated1(int, enum GlxTBContextType)
-	?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 28 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int)
-	?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 29 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const
-	?clearExternalItems@GlxMediaModel@@QAEXXZ @ 30 NONAME ; void GlxMediaModel::clearExternalItems(void)
-	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 31 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *)
-	?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 32 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const
-	?populated@GlxMediaModel@@IAEXXZ @ 33 NONAME ; void GlxMediaModel::populated(void)
-	??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 34 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &)
-	?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 35 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const
-	?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 36 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const
-	?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 37 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString)
-	?updateDetailsView@GlxMediaModel@@IAEXXZ @ 38 NONAME ; void GlxMediaModel::updateDetailsView(void)
+	?thumbnailPopulated@GlxMediaModel@@IAEXXZ @ 1 NONAME ; void GlxMediaModel::thumbnailPopulated(void)
+	?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const
+	?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 3 NONAME ; void GlxMediaModel::itemsAdded(int, int)
+	?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void)
+	?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 5 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType)
+	?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 6 NONAME ; void * GlxMediaModel::qt_metacast(char const *)
+	?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 7 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const
+	?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 8 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &)
+	?itemUpdated@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 9 NONAME ; void GlxMediaModel::itemUpdated(int, enum GlxTBContextType)
+	?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 10 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &)
+	?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 11 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode)
+	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 12 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int)
+	?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject
+	?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 14 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const
+	??_EGlxMediaModel@@UAE@I@Z @ 15 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int)
+	?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 16 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const
+	?getCorruptDefaultIcon@GlxMediaModel@@ABEPAVHbIcon@@ABVQModelIndex@@@Z @ 17 NONAME ; class HbIcon * GlxMediaModel::getCorruptDefaultIcon(class QModelIndex const &) const
+	?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int)
+	?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 19 NONAME ; void GlxMediaModel::itemCorrupted(int)
+	?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 20 NONAME ; void GlxMediaModel::addExternalItems(class QList<struct GlxInterfaceParams> *)
+	?modelpopulated@GlxMediaModel@@QAEXXZ @ 21 NONAME ; void GlxMediaModel::modelpopulated(void)
+	?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 22 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const
+	?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxMediaModel::tr(char const *, char const *)
+	?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 24 NONAME ; void GlxMediaModel::itemsRemoved(int, int)
+	?thumbnailPopulatedCheck@GlxMediaModel@@AAEXH@Z @ 25 NONAME ; void GlxMediaModel::thumbnailPopulatedCheck(int)
+	?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 26 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const
+	?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 27 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const
+	??1GlxMediaModel@@UAE@XZ @ 28 NONAME ; GlxMediaModel::~GlxMediaModel(void)
+	?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 29 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?updateDetailsView@GlxMediaModel@@IAEXXZ @ 30 NONAME ; void GlxMediaModel::updateDetailsView(void)
+	?albumTitleUpdated@GlxMediaModel@@QAEXVQString@@@Z @ 31 NONAME ; void GlxMediaModel::albumTitleUpdated(class QString)
+	?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 32 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int)
+	?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 33 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const
+	?clearExternalItems@GlxMediaModel@@QAEXXZ @ 34 NONAME ; void GlxMediaModel::clearExternalItems(void)
+	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 35 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *)
+	?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 36 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const
+	?populated@GlxMediaModel@@IAEXXZ @ 37 NONAME ; void GlxMediaModel::populated(void)
+	??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 38 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &)
 	?removeContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 39 NONAME ; void GlxMediaModel::removeContextMode(enum GlxContextMode)
 	?updateDetailItems@GlxMediaModel@@QAEXXZ @ 40 NONAME ; void GlxMediaModel::updateDetailItems(void)
+	?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 41 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const
+	?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 42 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const
+	?albumTitleAvailable@GlxMediaModel@@IAEXVQString@@@Z @ 43 NONAME ; void GlxMediaModel::albumTitleAvailable(class QString)
 
--- a/ui/uiengine/model/eabi/glxlistmodelu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/eabi/glxlistmodelu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -29,4 +29,5 @@
 	_ZTV13GlxAlbumModel @ 28 NONAME
 	_ZN13GlxAlbumModel13listPopulatedEv @ 29 NONAME
 	_ZN13GlxAlbumModel14modelPopulatedEv @ 30 NONAME
+	_ZNK13GlxAlbumModel21getCorruptDefaultIconERK11QModelIndex @ 31 NONAME
 
--- a/ui/uiengine/model/eabi/glxmediamodelu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/eabi/glxmediamodelu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -1,8 +1,8 @@
 EXPORTS
 	_ZN13GlxMediaModel10itemsAddedEii @ 1 NONAME
-	_ZN13GlxMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 2 NONAME
-	_ZN13GlxMediaModel11qt_metacastEPKc @ 3 NONAME
-	_ZN13GlxMediaModel12itemUpdated1Ei16GlxTBContextType @ 4 NONAME
+	_ZN13GlxMediaModel11itemUpdatedEi16GlxTBContextType @ 2 NONAME
+	_ZN13GlxMediaModel11qt_metacallEN11QMetaObject4CallEiPPv @ 3 NONAME
+	_ZN13GlxMediaModel11qt_metacastEPKc @ 4 NONAME
 	_ZN13GlxMediaModel12itemsRemovedEii @ 5 NONAME
 	_ZN13GlxMediaModel13itemCorruptedEi @ 6 NONAME
 	_ZN13GlxMediaModel13setFocusIndexERK11QModelIndex @ 7 NONAME
@@ -13,30 +13,33 @@
 	_ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 12 NONAME
 	_ZN13GlxMediaModel16staticMetaObjectE @ 13 NONAME DATA 16
 	_ZN13GlxMediaModel17albumTitleUpdatedE7QString @ 14 NONAME
-	_ZN13GlxMediaModel18clearExternalItemsEv @ 15 NONAME
-	_ZN13GlxMediaModel19albumTitleAvailableE7QString @ 16 NONAME
-	_ZN13GlxMediaModel19getStaticMetaObjectEv @ 17 NONAME
-	_ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 18 NONAME
-	_ZN13GlxMediaModel9populatedEv @ 19 NONAME
-	_ZN13GlxMediaModelC1ER12GlxModelParm @ 20 NONAME
-	_ZN13GlxMediaModelC2ER12GlxModelParm @ 21 NONAME
-	_ZN13GlxMediaModelD0Ev @ 22 NONAME
-	_ZN13GlxMediaModelD1Ev @ 23 NONAME
-	_ZN13GlxMediaModelD2Ev @ 24 NONAME
-	_ZNK13GlxMediaModel10metaObjectEv @ 25 NONAME
-	_ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 26 NONAME
-	_ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 27 NONAME
-	_ZNK13GlxMediaModel13getFocusIndexEv @ 28 NONAME
-	_ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 29 NONAME
-	_ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 30 NONAME
-	_ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 31 NONAME
-	_ZNK13GlxMediaModel4dataERK11QModelIndexi @ 32 NONAME
-	_ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 33 NONAME
-	_ZNK13GlxMediaModel6parentERK11QModelIndex @ 34 NONAME
-	_ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 35 NONAME
-	_ZTI13GlxMediaModel @ 36 NONAME
-	_ZTV13GlxMediaModel @ 37 NONAME
-	_ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 38 NONAME
-	_ZN13GlxMediaModel17updateDetailItemsEv @ 39 NONAME
-	_ZN13GlxMediaModel17updateDetailsViewEv @ 40 NONAME
+	_ZN13GlxMediaModel17removeContextModeE14GlxContextMode @ 15 NONAME
+	_ZN13GlxMediaModel17updateDetailItemsEv @ 16 NONAME
+	_ZN13GlxMediaModel17updateDetailsViewEv @ 17 NONAME
+	_ZN13GlxMediaModel18clearExternalItemsEv @ 18 NONAME
+	_ZN13GlxMediaModel18thumbnailPopulatedEv @ 19 NONAME
+	_ZN13GlxMediaModel19albumTitleAvailableE7QString @ 20 NONAME
+	_ZN13GlxMediaModel19getStaticMetaObjectEv @ 21 NONAME
+	_ZN13GlxMediaModel23thumbnailPopulatedCheckEi @ 22 NONAME
+	_ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 23 NONAME
+	_ZN13GlxMediaModel9populatedEv @ 24 NONAME
+	_ZN13GlxMediaModelC1ER12GlxModelParm @ 25 NONAME
+	_ZN13GlxMediaModelC2ER12GlxModelParm @ 26 NONAME
+	_ZN13GlxMediaModelD0Ev @ 27 NONAME
+	_ZN13GlxMediaModelD1Ev @ 28 NONAME
+	_ZN13GlxMediaModelD2Ev @ 29 NONAME
+	_ZNK13GlxMediaModel10metaObjectEv @ 30 NONAME
+	_ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 31 NONAME
+	_ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 32 NONAME
+	_ZNK13GlxMediaModel13getFocusIndexEv @ 33 NONAME
+	_ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 34 NONAME
+	_ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 35 NONAME
+	_ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 36 NONAME
+	_ZNK13GlxMediaModel21getCorruptDefaultIconERK11QModelIndex @ 37 NONAME
+	_ZNK13GlxMediaModel4dataERK11QModelIndexi @ 38 NONAME
+	_ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 39 NONAME
+	_ZNK13GlxMediaModel6parentERK11QModelIndex @ 40 NONAME
+	_ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 41 NONAME
+	_ZTI13GlxMediaModel @ 42 NONAME
+	_ZTV13GlxMediaModel @ 43 NONAME
 
--- a/ui/uiengine/model/listmodel/inc/glxalbummodel.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/listmodel/inc/glxalbummodel.h	Wed Aug 18 09:48:53 2010 +0300
@@ -64,6 +64,7 @@
     void setSelectedIndex(const QModelIndex &index);
     QModelIndex getFocusIndex() const;
     HbIcon* GetPreviewIconItem(int itemIndex, GlxTBContextType tbContextType) const;
+    HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const;
     
 signals :
     void iconAvailable(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) const;
@@ -83,6 +84,8 @@
     HbIcon* mDefaultIcon;
     QCache<int, HbIcon> itemIconCache;
     int mTempVisibleWindowIndex;
+    HbIcon* m_CorruptIcon;
+    int mSubState;
 };
 
 #endif /* GLXALBUMMODEL_H */
--- a/ui/uiengine/model/listmodel/src/glxalbummodel.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/listmodel/src/glxalbummodel.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -25,14 +25,10 @@
 
 #include "glxicondefs.h" //Contains the icon names/Ids
 
-const QColor KListOddRowColor(211, 211, 211, 127);
-const QColor KListEvenRowColor(255, 250, 250, 127);
-
-
 GlxAlbumModel::GlxAlbumModel(GlxModelParm & modelParm):mContextMode(GlxContextInvalid)
 {
     qDebug("GlxAlbumModel::GlxAlbumModel()");
-    
+    mSubState = -1;
     mMLWrapper = new GlxMLWrapper(modelParm.collection(),modelParm.depth(),modelParm.filterType());
     // mMLWrapper->setContextMode(GlxContextPtList);
     // mContextMode = GlxContextPtList;
@@ -41,6 +37,7 @@
     
     //todo get this Default icon from some generic path and not directly.
      mDefaultIcon = new HbIcon(GLXICON_DEFAULT);
+	 m_CorruptIcon = new HbIcon( GLXICON_CORRUPT );
 
 	int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType)));
 	qDebug("updateItem() connection status %d", err);
@@ -61,6 +58,7 @@
     qDebug("GlxAlbumModel::~GlxAlbumModel()");
     delete mDefaultIcon;
     mDefaultIcon = NULL;
+	delete m_CorruptIcon;
 	int err = disconnect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType)));
 	err = disconnect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int)));
 	err = disconnect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int)));
@@ -103,6 +101,10 @@
     HbIcon* itemIcon = NULL;
     QModelIndex idx;
     
+    if ( role == GlxSubStateRole ){
+        return mSubState;
+    }
+    
     if ( (!index.isValid()) || (rowIndex >= rowCount()) ) {
         return QVariant();
     }
@@ -117,7 +119,7 @@
            
     case Qt::DecorationRole :
         if(mContextMode == GlxContextSelectionList){
-            return HbIcon();
+            return QVariant();
         }
         else
         {
@@ -128,21 +130,10 @@
             }
             else {
                 qDebug("GlxAlbumModel::data, Item inValid");
-                itemIcon = mDefaultIcon;
+                itemIcon = getCorruptDefaultIcon( index ) ;;
                 return *itemIcon;
             }
         }
-    case Qt::BackgroundRole:
-        {
-            if (rowIndex % 2 == 0)
-            {
-                return QBrush(KListEvenRowColor);
-            }
-            else
-            {
-                return QBrush(KListOddRowColor);
-            }
-        }
 
     case GlxFocusIndexRole :
         idx = getFocusIndex();
@@ -160,6 +151,13 @@
         return QVariant();
     }
 }
+HbIcon * GlxAlbumModel::getCorruptDefaultIcon( const QModelIndex &index ) const
+{
+    if ( mMLWrapper->isCorruptedImage( index.row() ) ) {
+        return m_CorruptIcon ;
+    }
+    return mDefaultIcon ;
+}
 
 bool GlxAlbumModel::setData ( const QModelIndex & idx, const QVariant & value, int role )
 {
@@ -171,6 +169,11 @@
             return TRUE;
         }
     }
+
+    if ( role == GlxSubStateRole && value.isValid() &&  value.canConvert <int> ()) {
+        mSubState = value.value <int> () ;
+        return TRUE;
+    }
     
     if ( GlxFocusIndexRole == role ) {
         if ( value.isValid() &&  value.canConvert <int> () ) {
@@ -247,11 +250,18 @@
 void GlxAlbumModel::modelPopulated()
 {
     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);
+          }
+          else {
+              mMLWrapper->setVisibleWindowIndex(0);
+          }
         mTempVisibleWindowIndex = -1;
+    }
         emit listPopulated();
     }
-}
+
 void GlxAlbumModel::itemUpdated1(int mlIndex,GlxTBContextType tbContextType  )
 {
 	Q_UNUSED(tbContextType);
@@ -265,6 +275,7 @@
 {
     qDebug("GlxAlbumModel::itemsAdded %d %d", startIndex, endIndex);
     beginInsertRows(QModelIndex(), startIndex, endIndex);
+	itemIconCache.clear();
     endInsertRows();	
 }
 
@@ -272,6 +283,7 @@
 {
 	qDebug("GlxAlbumModel::itemsRemoved %d %d", startIndex, endIndex);
 	beginRemoveRows(QModelIndex(), startIndex, endIndex);
+	itemIconCache.clear();
    	endRemoveRows();
 	//emit rowsRemoved(index(startIndex,0), startIndex, endIndex );
 	
--- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Wed Aug 18 09:48:53 2010 +0300
@@ -43,76 +43,227 @@
 {
 Q_OBJECT
 public :	
-	
-    GlxMediaModel(GlxModelParm & modelParm);
-    ~GlxMediaModel();
-    int rowCount(const QModelIndex &parent = QModelIndex()) const;
-    int columnCount(const QModelIndex &parent = QModelIndex()) const;
-    QModelIndex parent(const QModelIndex &child) const;
-    QVariant data(const QModelIndex &index, int role) const;
-    bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole);
-    QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const;
+    /**
+     * Constructor
+     * @param - model parm struct collectionID, depth, filter, context mode etc
+     */	
+    GlxMediaModel( GlxModelParm & modelParm );
 
-	/*
-	*for setting external image data to the model. 
+    /**
+     * Destructor
+     */
+    ~GlxMediaModel();
+    
+    /**
+     * rowCount() - return the number of rows in the model.
+     * @param - parent model index, not used
+     */
+    int rowCount( const QModelIndex &parent = QModelIndex() ) const;
+    
+    /**
+     * columnCount() - return 1
+     * @param - parent model index, not used
+     */
+    int columnCount( const QModelIndex &parent = QModelIndex() ) const;
+    
+    /**
+     * parent() - return the model index of the child.
+     * It always return invalid model index since no there is no parent
+     */
+    QModelIndex parent( const QModelIndex &child ) const;
+    
+    /**
+     * data() -  return the data of corresponding role.
+     * @param - model index of interested item.
+     * @param - role of corresponding data.
+     */
+    QVariant data( const QModelIndex &index, int role ) const;
+    
+    /**
+     * setData() - to set the data for corresponding item and role.
+     * @param - model index of interested item.
+     * @param - data of the item
+     * @param - role of corresponding data.
+     */
+    bool setData ( const QModelIndex & index, const QVariant & value, int role = Qt::EditRole );
+    
+    /**
+     * index -  create a new model index for an item.
+     * @param - row index of the item.
+     * @param - column index of the item, it is always one.
+     */
+    QModelIndex index( int row, int column, const QModelIndex &parent = QModelIndex() ) const;
+
+	/**
+	* addExternalItems() - for setting external image data to the model. 
 	*/
-	void addExternalItems(GlxExternalData* externalItems);
-	/*
-	*for removing all external image data from the model. 
-	*/
+	void addExternalItems( GlxExternalData* externalItems );
+	
+	/**
+	 * clearExternalItems() - for removing all external image data from the model. 
+	 */
 	void clearExternalItems();
-	/*
-	* for checking if the item is editab
-	*/
 
 signals :
-	void albumTitleAvailable(QString aTitle);
+    /**
+     * albumTitleAvailable() - emit this signal when album title is available.
+     * @parma - album title
+     */
+	void albumTitleAvailable( QString aTitle );
+	
+	/**
+	 * populated() - emit this signal once medialist is populated
+	 */
 	void populated();
+	
+	/**
+	 * thumbnailPopulated() - emit the signal once some initial page of thumbnail are loaded 
+	 * into cache. 
+	 */
+	void thumbnailPopulated();
+	
+	/**
+	 * iconAvailable() - emit the signal to update the icon in the cache.
+	 * @param - item index
+	 * @param - HbIcon
+	 * @param - media list context type
+	 */
+    void iconAvailable( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType ) const;
+    
+    /**
+     * updateDetailsView() - emit the signal to update the details view
+     */
+    void updateDetailsView();
 
 private:
-	HbIcon* GetGridIconItem(int itemIndex, GlxTBContextType tbContextType) const;
-	HbIcon* GetFsIconItem(int itemIndex,GlxTBContextType tbContextType)const;
-	HbIcon* GetExternalIconItem(int itemIndex,GlxTBContextType tbContextType)const;
-/**
- * for setting the attribute context mode will be used mainly for retreiving thumbnail of different sizes.
- */
-    void setContextMode(GlxContextMode contextMode);
-	/*
-	 *Removes the context
+    /**
+     * GetGridIconItem() - To fetch the grid size thumbnail
+     * @param - item index
+     * @param - media list context type
+     * @return - return the hbicon of the item
+     */
+	HbIcon* GetGridIconItem( int itemIndex, GlxTBContextType tbContextType ) const;
+
+    /**
+     * GetFsIconItem() - To fetch the full screen size thumbnail
+     * @param - item index
+     * @param - media list context type
+     * @return - return the hbicon of the item
+     */	
+	HbIcon* GetFsIconItem( int itemIndex,GlxTBContextType tbContextType )const;
+
+    /**
+     * GetExternalIconItem() - To fetch the grid size thumbnail of external item.
+     * @param - item index
+     * @param - media list context type
+     * @return - return the hbicon of the item
+     */ 	
+	HbIcon* GetExternalIconItem( int itemIndex,GlxTBContextType tbContextType )const;
+	
+    /**
+     * setContextMode() - for setting the attribute context mode will be used mainly for 
+     * retreiving thumbnail of different sizes.
+     */
+    void setContextMode( GlxContextMode contextMode );
+    
+	/**
+	 *removeContextMode() - Removes the context
 	 */
-    void removeContextMode(GlxContextMode contextMode);
-    void setFocusIndex(const QModelIndex &index);
+    void removeContextMode( GlxContextMode contextMode );
+    
+    /**
+     * setFocusIndex() -  To set the focus index in medialist
+     * @param - selected item index( focus index )
+     */
+    void setFocusIndex( const QModelIndex &index );
+    
+    /**
+     * getFocusIndex() - Retrun the focus index from the medialist.
+     * @return -  focus index.
+     */
     QModelIndex getFocusIndex() const;
-    void setSelectedIndex(const QModelIndex &index);
-
+    
+    /**
+     * setSelectedIndex() - To make the item as seleted in media list to perform some coomand.
+     * @param - selected item index
+     */
+    void setSelectedIndex( const QModelIndex &index );
 
-	
-signals :
-    void iconAvailable(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType) const;
-	/*
-	 *signal to update the details view
-	 */
-    void updateDetailsView();
+    /**
+     * getCorruptDefaultIcon() - IT will return the corrupt icon if item is corrupted else return the 
+     * default item.
+     * @param - item index 
+     */    
+    HbIcon *getCorruptDefaultIcon ( const QModelIndex &index ) const;
+    
+    /**
+     * thumbnailPopulatedCheck() - To check the some initial page of item is loaded into cache or not
+     * @param -  loaded thumbnail image index in cache.
+     */
+    void thumbnailPopulatedCheck( int index );
+    
 public slots:
-	void itemUpdated1(int mlIndex, GlxTBContextType tbContextType);
-	void itemsAdded(int startIndex, int endIndex);
-	void itemsRemoved(int startIndex, int endIndex);
-	void itemCorrupted(int itemIndex);
-	void albumTitleUpdated(QString aTitle);
+    /**
+     * itemUpdated() - call back fuction, when thumbnail is added into cache.
+     * It remove the icon from the local cache and emit the signal of data change.
+     * @param - item index
+     * @param - media list context type 
+     */
+	void itemUpdated( int mlIndex, GlxTBContextType tbContextType );
+	
+	/**
+	 * itemsAdded() - call back function when new items are added into collection.
+	 * @param - start index of the newly added item
+	 * @param - end endex of the newlyadd item
+	 */
+	void itemsAdded( int startIndex, int endIndex );
+	
+	/**
+	 * itemsRemoved() - call back function when some item are removed from the collection.
+     * @param - start index of the remove items
+     * @param - end endex of the remove items
+	 */
+	void itemsRemoved( int startIndex, int endIndex );
+	
+	/**
+	 * itemCorrupted() - call back function, when a item is corrupted.
+	 * @param - index of the corrupt item
+	 */
+	void itemCorrupted( int itemIndex );
+	
+    /**
+     * albumTitleUpdated() - call back function, when a album collection title is available.
+     * @param - title of the album.
+     */	
+	void albumTitleUpdated( QString aTitle );
+	
+	/**
+	 * modelpopulated() - callback function, when meida list item is populated.
+	 * It set the visual window index and emit the signal to view about it.
+	 */
 	void modelpopulated();
-	/*
-	 *Emits signal to update the details view
+	
+	/**
+	 * updateDetailItems() - Emits signal to update the details view
 	 */
 	void updateDetailItems();
-protected:
 	
 private slots:
-    void updateItemIcon(int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType);
+    /**
+     * updateItemIcon() - update the icon into local cache.
+     * @param - item index
+     * @param - HbIcon
+     * @param - media list context type
+     */
+    void updateItemIcon( int itemIndex, HbIcon* itemIcon, GlxTBContextType tbContextType );
+    
 private:
 	GlxMLWrapper* mMLWrapper;	
 	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;
@@ -122,6 +273,7 @@
 	int mSubState;
 	GlxDRMUtilityWrapper* mDRMUtilityWrapper;
 	int mTempVisibleWindowIndex;
+	bool thumbnailPopulatedFlag;
 };
 
 
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -33,17 +33,23 @@
 #include <glxperformancemacro.h>
 
 #include "glxicondefs.h" //Contains the icon names/Ids
-#include<glxviewids.h>
+#include "glxcollectionpluginall.hrh"
+#include "glxviewids.h"
+
+#define DELTA_IMAGE 5
+#define INITIAL_POPULATE_IMAGE_COUNT 30
 
 GlxMediaModel::GlxMediaModel(GlxModelParm & modelParm)
 {
 	qDebug("GlxMediaModel::GlxMediaModel");
 	
+	thumbnailPopulatedFlag = modelParm.collection() == KGlxCollectionPluginAllImplementationUid ? false : true;
 	mMLWrapper = new GlxMLWrapper(modelParm.collection(),0,EGlxFilterImage);
 	mMLWrapper->setContextMode( modelParm.contextMode() );
 	mContextMode = modelParm.contextMode( ) ; 
 	mDRMUtilityWrapper = new GlxDRMUtilityWrapper();
-	int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType)));
+	
+	int err = connect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated(int, GlxTBContextType)));
 	qDebug("updateItem() connection status %d", err);
 	err = connect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int)));
 	qDebug("itemCorrupted() connection status %d", err);
@@ -62,8 +68,8 @@
 	itemFsIconCache.setMaxCost(5);
 	itemExternalIconCache.setMaxCost(0);
 	
-	//todo get this Default icon from some generic path and not directly.
-	m_DefaultIcon = new HbIcon(GLXICON_DEFAULT);
+	m_DefaultIcon = new HbIcon( GLXICON_DEFAULT );
+	m_CorruptIcon = new HbIcon( GLXICON_CORRUPT );
 	mExternalItems = NULL;
 	externalDataCount = 0;
 	mFocusIndex = -1;
@@ -79,15 +85,9 @@
 	itemFsIconCache.clear();
 	delete m_DefaultIcon;
 	m_DefaultIcon = NULL;
+	delete m_CorruptIcon;
+	m_CorruptIcon = NULL;
 	clearExternalItems();
-  int err = disconnect(mMLWrapper, SIGNAL(updateItem(int, GlxTBContextType)), this, SLOT(itemUpdated1(int, GlxTBContextType)));
-	err = disconnect(mMLWrapper, SIGNAL(itemCorrupted(int)), this, SLOT(itemCorrupted(int)));
-	err = disconnect(mMLWrapper, SIGNAL(insertItems(int, int)), this, SLOT(itemsAdded(int, int)));
-	err = disconnect(mMLWrapper, SIGNAL(removeItems(int, int)), this, SLOT(itemsRemoved(int, int)));
-	err = disconnect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType)));
-	err = disconnect(mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString)));	    
-	err = disconnect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated()));
-	err = disconnect(mMLWrapper, SIGNAL(updateDetails()), this, SLOT(updateDetailItems()));
     delete mMLWrapper;
 	delete mDRMUtilityWrapper;
 }
@@ -177,12 +177,11 @@
 
 
 //todo refactor this whole function ... too many return statements are not good
-QVariant GlxMediaModel::data(const QModelIndex &index, int role) const
+QVariant GlxMediaModel::data( const QModelIndex &index, int role ) const
 {
-    if (role == GlxViewTitle)
-        {
+    if (role == GlxViewTitle) {
         return mMLWrapper->retrieveViewTitle();
-        }
+    }
 
     if(role == GlxPopulated) {
         return mMLWrapper->IsPopulated();
@@ -204,12 +203,11 @@
         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);
-    }
+            return m_DefaultIcon->pixmap().toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied);
+        }
         else {
             return QImage();
-        }
-            
+        }            
     }
 
     HbIcon* itemIcon = NULL;
@@ -220,31 +218,18 @@
          return QVariant();
     }
     
-//external data are always placed at the beginning of the Media List
-//Check if the index can be mapped to the external data
-//if not then map the index to Ml Index
-    if(itemIndex < externalDataCount) {
-        if(role == Qt::DecorationRole || role == GlxFsImageRole){
-            return *(GetExternalIconItem(itemIndex,GlxTBContextExternal));
-        }
-    }
-    else {
-        itemIndex -=  externalDataCount;
-    }
-    
-//retrieve Data from Media List		
-    if (role == Qt::DecorationRole) {
+    //retrieve Data from Media List		
+    if ( role == Qt::DecorationRole ) {
         itemIcon = GetGridIconItem(itemIndex,GlxTBContextGrid);
-        if(itemIcon == NULL || itemIcon->isNull() ){
-            itemIcon = m_DefaultIcon;
+        if( itemIcon == NULL || itemIcon->isNull() ) {
+            itemIcon = getCorruptDefaultIcon( index );
         }
         return *itemIcon;
     }
 		
-    if (role == GlxQImageSmall)
-        {
+    if (role == GlxQImageSmall) {
         return mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid);
-        }
+    }
 
     if (role == GlxFsImageRole){
         if(mContextMode == GlxContextLsFs){
@@ -254,14 +239,17 @@
             itemIcon = GetFsIconItem(itemIndex,GlxTBContextPtFs);
         }
         
-        if ( itemIcon == NULL) {
-            //itemIcon = GetGridIconItem(itemIndex,GlxTBContextGrid);    
+        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 );
-                tempPixmap = tempPixmap.scaled(sz, Qt::KeepAspectRatio );
+                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;
@@ -270,79 +258,76 @@
         }
 		  
         if ( itemIcon == NULL || itemIcon->isNull() ) {
-            itemIcon = m_DefaultIcon;
+            itemIcon = getCorruptDefaultIcon( index ) ;
         }
         return *itemIcon;
     }
 	
-    if (role == GlxQImageLarge)
-        {
-        if(mContextMode == GlxContextLsFs)
-            {
+    if (role == GlxQImageLarge) {
+        if(mContextMode == GlxContextLsFs) {
             itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextLsFs);
-            }
-        else
-            {
+        }
+        else {
             itemImage = mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextPtFs);
-            }
-        if(!itemImage.isNull()) 
-            {
+        }
+        if(!itemImage.isNull()) {
             return itemImage;
-            }
-        else 
-            {
+        }
+        else {
             itemImage =  mMLWrapper->retrieveItemImage(itemIndex, GlxTBContextGrid);
-            if (!itemImage.isNull()) 
-                {
+            if (!itemImage.isNull()) {
                 QSize sz = ( mContextMode == GlxContextLsFs ) ? QSize ( 640, 360) : QSize ( 360, 640 );
                 itemImage = itemImage.scaled(sz,Qt::KeepAspectRatio); 
-                }
-                return itemImage;
             }
+            return itemImage;
         }
+    }
     
-    if (role == GlxVisualWindowIndex)
-        {
+    if (role == GlxVisualWindowIndex) {
         return mMLWrapper->getVisibleWindowIndex();
-        }
+    }
 	
     QModelIndex idx;
     if ( GlxFocusIndexRole == role ) {
         idx = getFocusIndex();
         return idx.row();
     }
+    
     if(role == GlxUriRole) {
         return (mMLWrapper->retrieveItemUri(itemIndex));
     }
+    
     if(role == GlxDimensionsRole) {
         return (mMLWrapper->retrieveItemDimension(itemIndex));
     }
     
     if(role == GlxDateRole ) {
-    	qDebug("GlxMediaModel::data GlxDateRole ");
     	return (mMLWrapper->retrieveItemDate(itemIndex));
     }
     
     if (role == GlxFrameCount) {
-    qDebug("GlxMediaModel:: GlxFrameCount ");
-    return (mMLWrapper->retrieveItemFrameCount(itemIndex));
+        return (mMLWrapper->retrieveItemFrameCount(itemIndex));
     }
     
     if (role == GlxHdmiBitmap) {
         return mMLWrapper->RetrieveBitmap(itemIndex);
     }
+
+    if ( role == GlxImageCorruptRole ) {
+        return mMLWrapper->isCorruptedImage( itemIndex );
+    }
     
     if (role == GlxTimeRole) {
         return mMLWrapper->retrieveItemTime(itemIndex);
     }
 	
     if (role == GlxSizeRole) {
-            return mMLWrapper->retrieveItemSize(itemIndex);
-        }
+        return mMLWrapper->retrieveItemSize(itemIndex);
+     }
     
-    if (role == GlxDescRole) {
-              return mMLWrapper->retrieveListDesc(itemIndex);
-          }
+     if (role == GlxDescRole) {
+        return mMLWrapper->retrieveListDesc(itemIndex);
+     }
     return QVariant();
 }
 
@@ -411,32 +396,43 @@
 }
 
 
-void GlxMediaModel::itemUpdated1(int mlIndex,GlxTBContextType tbContextType  )
+void GlxMediaModel::itemUpdated(int mlIndex,GlxTBContextType tbContextType  )
 {
 	qDebug("GlxMediaModel::itemUpdated %d", mlIndex);
 	//clear the grid and FS cache if they have any icons with them for that index
-	if(tbContextType == GlxTBContextGrid) {
-		itemIconCache.remove(mlIndex);
+	if( tbContextType == GlxTBContextGrid ) {
+	    if ( !thumbnailPopulatedFlag ) {
+	        thumbnailPopulatedCheck( mlIndex ); 
+	    }		
+	    itemIconCache.remove(mlIndex);
 	}
 	if(tbContextType == GlxTBContextLsFs || tbContextType == GlxTBContextPtFs) {
 		itemFsIconCache.remove(mlIndex);
 	}
-	emit dataChanged(index(mlIndex+externalDataCount,0),index(mlIndex+externalDataCount,0));
-	
+	emit dataChanged( index( mlIndex , 0 ), index( mlIndex, 0 ) );	
 }
 
 void GlxMediaModel::itemCorrupted(int itemIndex)
 {
 	qDebug("GlxMediaModel::itemCorrupted %d", itemIndex);
-	emit dataChanged(index(itemIndex+externalDataCount,0),index(itemIndex+externalDataCount,0));	
+    if ( !thumbnailPopulatedFlag ) {
+        thumbnailPopulatedCheck( itemIndex ); 
+    }
+	emit dataChanged( index( itemIndex , 0 ), index( itemIndex, 0 ) );	
 }
 
 void GlxMediaModel::modelpopulated()
 {
     if ( mTempVisibleWindowIndex!=-1) {
-        mMLWrapper->setVisibleWindowIndex(mTempVisibleWindowIndex);
+        //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);
+        }
+        else {
+            mMLWrapper->setVisibleWindowIndex(0);
+        }
         mTempVisibleWindowIndex = -1;
-	}
+    }
     emit populated();
 }
 
@@ -550,6 +546,24 @@
     mMLWrapper->setSelectedIndex(itemIndex);
 }
 
+HbIcon * GlxMediaModel::getCorruptDefaultIcon( const QModelIndex &index ) const
+{
+    if ( mMLWrapper->isCorruptedImage( index.row() ) ) {
+        return m_CorruptIcon ;
+    }
+    return m_DefaultIcon ;
+}
+
+void GlxMediaModel::thumbnailPopulatedCheck( int index )
+{
+    int count = rowCount() - DELTA_IMAGE ;
+    int maxRange = INITIAL_POPULATE_IMAGE_COUNT + DELTA_IMAGE ;
+    if ( index >= count ||  ( index >= INITIAL_POPULATE_IMAGE_COUNT && index < maxRange ) ) {
+        thumbnailPopulatedFlag = TRUE;
+        emit thumbnailPopulated();
+    }
+}
+
 bool GlxMediaModel::setData ( const QModelIndex & idx, const QVariant & value, int role )
 {
     Q_UNUSED( idx )
--- a/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/uiengine/model/modelwrapper/src/glxmodelwrapper.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -173,7 +173,20 @@
 
 void GlxModelWrapper::dataChangedinModel(QModelIndex startIndex, QModelIndex endIndex)
     {
-    emit dataChanged(index(startIndex.row(),startIndex.column()),index(endIndex.row(),endIndex.column()));
+    int aStartRow = startIndex.row();
+
+    if((aStartRow  == 14) || (aStartRow+1 == rowCount()))
+        {
+        emit dataChanged(index(0,0),index(endIndex.row(),0));
+        }
+    else if(aStartRow  >= 15)
+        {
+        emit dataChanged(index(aStartRow,0),index(endIndex.row(),0));
+        }
+    else
+        {
+        // Do Nothing
+        }
     }
 
 void GlxModelWrapper::rowsAboutToBeInserted(const QModelIndex &parent,int start,int end)
--- a/ui/viewmanagement/bwins/glxstatehandleru.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/bwins/glxstatehandleru.def	Wed Aug 18 09:48:53 2010 +0300
@@ -1,42 +1,46 @@
 EXPORTS
-	?metaObject@GlxStateManager@@UBEPBUQMetaObject@@XZ @ 1 NONAME ; struct QMetaObject const * GlxStateManager::metaObject(void) const
-	?actionTriggered@GlxStateManager@@QAEXH@Z @ 2 NONAME ; void GlxStateManager::actionTriggered(int)
-	?setupItemsSignal@GlxStateManager@@IAEXXZ @ 3 NONAME ; void GlxStateManager::setupItemsSignal(void)
-	??_EGlxStateManager@@UAE@I@Z @ 4 NONAME ; GlxStateManager::~GlxStateManager(unsigned int)
-	?updateTNProgress@GlxStateManager@@QAEXH@Z @ 5 NONAME ; void GlxStateManager::updateTNProgress(int)
-	?goBack@GlxStateManager@@QAEXHH@Z @ 6 NONAME ; void GlxStateManager::goBack(int, int)
-	?enterMarkingMode@GlxStateManager@@QAEXXZ @ 7 NONAME ; void GlxStateManager::enterMarkingMode(void)
-	??1GlxStateManager@@UAE@XZ @ 8 NONAME ; GlxStateManager::~GlxStateManager(void)
-	?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void)
-	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int)
-	?eventHandler@GlxStateManager@@AAEXAAH@Z @ 11 NONAME ; void GlxStateManager::eventHandler(int &)
-	?executeCommand@GlxStateManager@@QAE_NH@Z @ 12 NONAME ; bool GlxStateManager::executeCommand(int)
-	?setupItems@GlxStateManager@@QAEXXZ @ 13 NONAME ; void GlxStateManager::setupItems(void)
-	?previousState@GlxStateManager@@QAEXXZ @ 14 NONAME ; void GlxStateManager::previousState(void)
-	?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 15 NONAME ; class GlxState * GlxStateManager::createState(int)
-	?exitApplication@GlxStateManager@@AAEXXZ @ 16 NONAME ; void GlxStateManager::exitApplication(void)
-	?changeState@GlxStateManager@@QAEXHH@Z @ 17 NONAME ; void GlxStateManager::changeState(int, int)
-	?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 18 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0GlxStateManager@@QAE@XZ @ 19 NONAME ; GlxStateManager::GlxStateManager(void)
-	?cleanupExternal@GlxStateManager@@QAEXXZ @ 20 NONAME ; void GlxStateManager::cleanupExternal(void)
-	?setFullScreenContext@GlxStateManager@@AAEXXZ @ 21 NONAME ; void GlxStateManager::setFullScreenContext(void)
-	?cleanAllModel@GlxStateManager@@QAEXXZ @ 22 NONAME ; void GlxStateManager::cleanAllModel(void)
-	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *)
-	?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 24 NONAME ; void * GlxStateManager::qt_metacast(char const *)
-	?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 25 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject
-	?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int)
-	?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString GlxStateManager::tr(char const *, char const *)
-	?nextState@GlxStateManager@@QAEXHH@Z @ 28 NONAME ; void GlxStateManager::nextState(int, int)
-	?launchFromExternal@GlxStateManager@@QAEXXZ @ 29 NONAME ; void GlxStateManager::launchFromExternal(void)
-	?externalCommand@GlxStateManager@@IAEXH@Z @ 30 NONAME ; void GlxStateManager::externalCommand(int)
-	?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 31 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir)
-	?launchApplication@GlxStateManager@@QAEXXZ @ 32 NONAME ; void GlxStateManager::launchApplication(void)
-	?exitMarkingMode@GlxStateManager@@QAEXXZ @ 33 NONAME ; void GlxStateManager::exitMarkingMode(void)
-	?removeCurrentModel@GlxStateManager@@QAEXXZ @ 34 NONAME ; void GlxStateManager::removeCurrentModel(void)
-	?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 35 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir)
-	?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 36 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *)
-	?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 37 NONAME ; void GlxStateManager::vanishProgressDialog(void)
-	?launchProgressDialog@GlxStateManager@@AAEXXZ @ 38 NONAME ; void GlxStateManager::launchProgressDialog(void)
-	?saveData@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::saveData(void)
-	?launchActivity@GlxStateManager@@AAE_NXZ @ 40 NONAME ; bool GlxStateManager::launchActivity(void)
+	?launchFetcher@GlxStateManager@@QAEXXZ @ 1 NONAME ; void GlxStateManager::launchFetcher(void)
+	?saveData@GlxStateManager@@QAEXXZ @ 2 NONAME ; void GlxStateManager::saveData(void)
+	?metaObject@GlxStateManager@@UBEPBUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const * GlxStateManager::metaObject(void) const
+	?actionTriggered@GlxStateManager@@QAEXH@Z @ 4 NONAME ; void GlxStateManager::actionTriggered(int)
+	?setupItemsSignal@GlxStateManager@@IAEXXZ @ 5 NONAME ; void GlxStateManager::setupItemsSignal(void)
+	??_EGlxStateManager@@UAE@I@Z @ 6 NONAME ; GlxStateManager::~GlxStateManager(unsigned int)
+	?updateTNProgress@GlxStateManager@@QAEXH@Z @ 7 NONAME ; void GlxStateManager::updateTNProgress(int)
+	?goBack@GlxStateManager@@QAEXHH@Z @ 8 NONAME ; void GlxStateManager::goBack(int, int)
+	?eventFilter@GlxStateManager@@UAE_NPAVQObject@@PAVQEvent@@@Z @ 9 NONAME ; bool GlxStateManager::eventFilter(class QObject *, class QEvent *)
+	?enterMarkingMode@GlxStateManager@@QAEXXZ @ 10 NONAME ; void GlxStateManager::enterMarkingMode(void)
+	??1GlxStateManager@@UAE@XZ @ 11 NONAME ; GlxStateManager::~GlxStateManager(void)
+	?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void)
+	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 13 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int)
+	?eventHandler@GlxStateManager@@AAEXAAH@Z @ 14 NONAME ; void GlxStateManager::eventHandler(int &)
+	?executeCommand@GlxStateManager@@QAE_NH@Z @ 15 NONAME ; bool GlxStateManager::executeCommand(int)
+	?thumbnailPopulated@GlxStateManager@@QAEXXZ @ 16 NONAME ; void GlxStateManager::thumbnailPopulated(void)
+	?setupItems@GlxStateManager@@QAEXXZ @ 17 NONAME ; void GlxStateManager::setupItems(void)
+	?previousState@GlxStateManager@@QAEXXZ @ 18 NONAME ; void GlxStateManager::previousState(void)
+	?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 19 NONAME ; class GlxState * GlxStateManager::createState(int)
+	?exitApplication@GlxStateManager@@AAEXXZ @ 20 NONAME ; void GlxStateManager::exitApplication(void)
+	?changeState@GlxStateManager@@QAEXHH@Z @ 21 NONAME ; void GlxStateManager::changeState(int, int)
+	?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 22 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0GlxStateManager@@QAE@XZ @ 23 NONAME ; GlxStateManager::GlxStateManager(void)
+	?vanishProgressDialog@GlxStateManager@@AAEXXZ @ 24 NONAME ; void GlxStateManager::vanishProgressDialog(void)
+	?saveImage@GlxStateManager@@AAEXXZ @ 25 NONAME ; void GlxStateManager::saveImage(void)
+	?cleanupExternal@GlxStateManager@@QAEXXZ @ 26 NONAME ; void GlxStateManager::cleanupExternal(void)
+	?gridItemSelected@GlxStateManager@@IAEXABVQModelIndex@@AAVQAbstractItemModel@@@Z @ 27 NONAME ; void GlxStateManager::gridItemSelected(class QModelIndex const &, class QAbstractItemModel &)
+	?setFullScreenContext@GlxStateManager@@AAEXXZ @ 28 NONAME ; void GlxStateManager::setFullScreenContext(void)
+	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 29 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *)
+	?cleanAllModel@GlxStateManager@@QAEXXZ @ 30 NONAME ; void GlxStateManager::cleanAllModel(void)
+	?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int)
+	?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 32 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject
+	?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 33 NONAME ; void * GlxStateManager::qt_metacast(char const *)
+	?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 34 NONAME ; class QString GlxStateManager::tr(char const *, char const *)
+	?nextState@GlxStateManager@@QAEXHH@Z @ 35 NONAME ; void GlxStateManager::nextState(int, int)
+	?launchFromExternal@GlxStateManager@@QAEXXZ @ 36 NONAME ; void GlxStateManager::launchFromExternal(void)
+	?externalCommand@GlxStateManager@@IAEXH@Z @ 37 NONAME ; void GlxStateManager::externalCommand(int)
+	?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 38 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir)
+	?launchApplication@GlxStateManager@@QAEXXZ @ 39 NONAME ; void GlxStateManager::launchApplication(void)
+	?exitMarkingMode@GlxStateManager@@QAEXXZ @ 40 NONAME ; void GlxStateManager::exitMarkingMode(void)
+	?removeCurrentModel@GlxStateManager@@QAEXXZ @ 41 NONAME ; void GlxStateManager::removeCurrentModel(void)
+	?launchProgressDialog@GlxStateManager@@AAEXXZ @ 42 NONAME ; void GlxStateManager::launchProgressDialog(void)
+	?launchActivity@GlxStateManager@@AAE_NXZ @ 43 NONAME ; bool GlxStateManager::launchActivity(void)
+	?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 44 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir)
 
--- a/ui/viewmanagement/bwins/glxviewmanageru.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/bwins/glxviewmanageru.def	Wed Aug 18 09:48:53 2010 +0300
@@ -8,45 +8,46 @@
 	?qt_metacast@GlxViewManager@@UAEPAXPBD@Z @ 7 NONAME ; void * GlxViewManager::qt_metacast(char const *)
 	??_EGlxViewManager@@UAE@I@Z @ 8 NONAME ; GlxViewManager::~GlxViewManager(unsigned int)
 	?addBackSoftKeyAction@GlxViewManager@@QAEXXZ @ 9 NONAME ; void GlxViewManager::addBackSoftKeyAction(void)
-	?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 10 NONAME ; class GlxView * GlxViewManager::findView(int)
-	?createActions@GlxViewManager@@AAEXXZ @ 11 NONAME ; void GlxViewManager::createActions(void)
-	?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 12 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
-	?handleAction@GlxViewManager@@QAEXXZ @ 13 NONAME ; void GlxViewManager::handleAction(void)
-	?handleUserAction@GlxViewManager@@QAEXHH@Z @ 14 NONAME ; void GlxViewManager::handleUserAction(int, int)
-	?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 15 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
-	?actionTriggered@GlxViewManager@@IAEXH@Z @ 16 NONAME ; void GlxViewManager::actionTriggered(int)
-	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 17 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
-	?handleMenuAction@GlxViewManager@@QAEXH@Z @ 18 NONAME ; void GlxViewManager::handleMenuAction(int)
-	?externalCommand@GlxViewManager@@IAEXH@Z @ 19 NONAME ; void GlxViewManager::externalCommand(int)
-	??0GlxViewManager@@QAE@XZ @ 20 NONAME ; GlxViewManager::GlxViewManager(void)
-	?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 21 NONAME ; void GlxViewManager::exitMarkingMode(int)
-	?cancelTimer@GlxViewManager@@QAEXXZ @ 22 NONAME ; void GlxViewManager::cancelTimer(void)
-	?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 23 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *)
-	?createToolBar@GlxViewManager@@AAEXXZ @ 24 NONAME ; void GlxViewManager::createToolBar(void)
-	?removeConnection@GlxViewManager@@AAEXXZ @ 25 NONAME ; void GlxViewManager::removeConnection(void)
-	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 26 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
-	?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::createMarkingModeActions(void)
-	?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 28 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?deActivateView@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::deActivateView(void)
-	?destroyView@GlxViewManager@@QAEXH@Z @ 30 NONAME ; void GlxViewManager::destroyView(int)
-	?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 31 NONAME ; class GlxView * GlxViewManager::resolveView(int)
-	??1GlxViewManager@@UAE@XZ @ 32 NONAME ; GlxViewManager::~GlxViewManager(void)
-	?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 33 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
-	?addConnection@GlxViewManager@@AAEXXZ @ 34 NONAME ; void GlxViewManager::addConnection(void)
-	?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 35 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
-	?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
-	?checkMarked@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::checkMarked(void)
-	?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 38 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
-	?setupItems@GlxViewManager@@QAEXXZ @ 39 NONAME ; void GlxViewManager::setupItems(void)
-	?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 40 NONAME ; void GlxViewManager::enterMarkingMode(int)
-	?actionProcess@GlxViewManager@@QAEXH@Z @ 41 NONAME ; void GlxViewManager::actionProcess(int)
-	?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 42 NONAME ; void GlxViewManager::deactivateCurrentView(void)
-	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 43 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
-	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
-	?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 45 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
-	?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 46 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
-	?activateView@GlxViewManager@@AAEXXZ @ 47 NONAME ; void GlxViewManager::activateView(void)
-	?hideProgressDialog@GlxViewManager@@AAEXXZ @ 48 NONAME ; void GlxViewManager::hideProgressDialog(void)
-	?applicationReady@GlxViewManager@@IAEXXZ @ 49 NONAME ; void GlxViewManager::applicationReady(void)
-	?handleReadyView@GlxViewManager@@QAEXXZ @ 50 NONAME ; void GlxViewManager::handleReadyView(void)
+	?applicationReady@GlxViewManager@@IAEXXZ @ 10 NONAME ; void GlxViewManager::applicationReady(void)
+	?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 11 NONAME ; class GlxView * GlxViewManager::findView(int)
+	?createActions@GlxViewManager@@AAEXXZ @ 12 NONAME ; void GlxViewManager::createActions(void)
+	?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 13 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
+	?handleAction@GlxViewManager@@QAEXXZ @ 14 NONAME ; void GlxViewManager::handleAction(void)
+	?handleUserAction@GlxViewManager@@QAEXHH@Z @ 15 NONAME ; void GlxViewManager::handleUserAction(int, int)
+	?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 16 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
+	?actionTriggered@GlxViewManager@@IAEXH@Z @ 17 NONAME ; void GlxViewManager::actionTriggered(int)
+	?getSubState@GlxViewManager@@AAEHXZ @ 18 NONAME ; int GlxViewManager::getSubState(void)
+	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 19 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
+	?handleMenuAction@GlxViewManager@@QAEXH@Z @ 20 NONAME ; void GlxViewManager::handleMenuAction(int)
+	?externalCommand@GlxViewManager@@IAEXH@Z @ 21 NONAME ; void GlxViewManager::externalCommand(int)
+	??0GlxViewManager@@QAE@XZ @ 22 NONAME ; GlxViewManager::GlxViewManager(void)
+	?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 23 NONAME ; void GlxViewManager::exitMarkingMode(int)
+	?cancelTimer@GlxViewManager@@QAEXXZ @ 24 NONAME ; void GlxViewManager::cancelTimer(void)
+	?setModel@GlxViewManager@@QAEXPAVQAbstractItemModel@@@Z @ 25 NONAME ; void GlxViewManager::setModel(class QAbstractItemModel *)
+	?createToolBar@GlxViewManager@@AAEXXZ @ 26 NONAME ; void GlxViewManager::createToolBar(void)
+	?removeConnection@GlxViewManager@@AAEXXZ @ 27 NONAME ; void GlxViewManager::removeConnection(void)
+	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 28 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
+	?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 29 NONAME ; void GlxViewManager::createMarkingModeActions(void)
+	?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 30 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?deActivateView@GlxViewManager@@AAEXXZ @ 31 NONAME ; void GlxViewManager::deActivateView(void)
+	?destroyView@GlxViewManager@@QAEXH@Z @ 32 NONAME ; void GlxViewManager::destroyView(int)
+	?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 33 NONAME ; class GlxView * GlxViewManager::resolveView(int)
+	??1GlxViewManager@@UAE@XZ @ 34 NONAME ; GlxViewManager::~GlxViewManager(void)
+	?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 35 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
+	?addConnection@GlxViewManager@@AAEXXZ @ 36 NONAME ; void GlxViewManager::addConnection(void)
+	?hideProgressDialog@GlxViewManager@@AAEXXZ @ 37 NONAME ; void GlxViewManager::hideProgressDialog(void)
+	?handleReadyView@GlxViewManager@@QAEXXZ @ 38 NONAME ; void GlxViewManager::handleReadyView(void)
+	?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 39 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
+	?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 40 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
+	?checkMarked@GlxViewManager@@AAEXXZ @ 41 NONAME ; void GlxViewManager::checkMarked(void)
+	?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 42 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
+	?setupItems@GlxViewManager@@QAEXXZ @ 43 NONAME ; void GlxViewManager::setupItems(void)
+	?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 44 NONAME ; void GlxViewManager::enterMarkingMode(int)
+	?actionProcess@GlxViewManager@@QAEXH@Z @ 45 NONAME ; void GlxViewManager::actionProcess(int)
+	?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 46 NONAME ; void GlxViewManager::deactivateCurrentView(void)
+	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
+	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 48 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
+	?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 49 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
+	?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 50 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
+	?activateView@GlxViewManager@@AAEXXZ @ 51 NONAME ; void GlxViewManager::activateView(void)
 
--- a/ui/viewmanagement/eabi/glxstatehandleru.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/eabi/glxstatehandleru.def	Wed Aug 18 09:48:53 2010 +0300
@@ -3,40 +3,44 @@
 	_ZN15GlxStateManager11changeStateEii @ 2 NONAME
 	_ZN15GlxStateManager11createModelEi13NavigationDir @ 3 NONAME
 	_ZN15GlxStateManager11createStateEi @ 4 NONAME
-	_ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 5 NONAME
-	_ZN15GlxStateManager11qt_metacastEPKc @ 6 NONAME
-	_ZN15GlxStateManager12eventHandlerERi @ 7 NONAME
-	_ZN15GlxStateManager13cleanAllModelEv @ 8 NONAME
-	_ZN15GlxStateManager13previousStateEv @ 9 NONAME
-	_ZN15GlxStateManager14executeCommandEi @ 10 NONAME
-	_ZN15GlxStateManager15actionTriggeredEi @ 11 NONAME
-	_ZN15GlxStateManager15cleanupExternalEv @ 12 NONAME
-	_ZN15GlxStateManager15createGridModelEi13NavigationDir @ 13 NONAME
-	_ZN15GlxStateManager15exitApplicationEv @ 14 NONAME
-	_ZN15GlxStateManager15exitMarkingModeEv @ 15 NONAME
-	_ZN15GlxStateManager15externalCommandEi @ 16 NONAME
-	_ZN15GlxStateManager16enterMarkingModeEv @ 17 NONAME
-	_ZN15GlxStateManager16setupItemsSignalEv @ 18 NONAME
-	_ZN15GlxStateManager16staticMetaObjectE @ 19 NONAME DATA 16
-	_ZN15GlxStateManager16updateTNProgressEi @ 20 NONAME
-	_ZN15GlxStateManager17launchApplicationEv @ 21 NONAME
-	_ZN15GlxStateManager18launchFromExternalEv @ 22 NONAME
-	_ZN15GlxStateManager18removeCurrentModelEv @ 23 NONAME
-	_ZN15GlxStateManager19getStaticMetaObjectEv @ 24 NONAME
-	_ZN15GlxStateManager20setFullScreenContextEv @ 25 NONAME
-	_ZN15GlxStateManager6goBackEii @ 26 NONAME
-	_ZN15GlxStateManager9nextStateEii @ 27 NONAME
-	_ZN15GlxStateManagerC1Ev @ 28 NONAME
-	_ZN15GlxStateManagerC2Ev @ 29 NONAME
-	_ZN15GlxStateManagerD0Ev @ 30 NONAME
-	_ZN15GlxStateManagerD1Ev @ 31 NONAME
-	_ZN15GlxStateManagerD2Ev @ 32 NONAME
-	_ZNK15GlxStateManager10metaObjectEv @ 33 NONAME
-	_ZTI15GlxStateManager @ 34 NONAME
-	_ZTV15GlxStateManager @ 35 NONAME
-	_ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 36 NONAME
-	_ZN15GlxStateManager20launchProgressDialogEv @ 37 NONAME
-	_ZN15GlxStateManager20vanishProgressDialogEv @ 38 NONAME
-	_ZN15GlxStateManager14launchActivityEv @ 39 NONAME
-	_ZN15GlxStateManager8saveDataEv @ 40 NONAME
+	_ZN15GlxStateManager11eventFilterEP7QObjectP6QEvent @ 5 NONAME
+	_ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME
+	_ZN15GlxStateManager11qt_metacastEPKc @ 7 NONAME
+	_ZN15GlxStateManager12eventHandlerERi @ 8 NONAME
+	_ZN15GlxStateManager13cleanAllModelEv @ 9 NONAME
+	_ZN15GlxStateManager13launchFetcherEv @ 10 NONAME
+	_ZN15GlxStateManager13previousStateEv @ 11 NONAME
+	_ZN15GlxStateManager14executeCommandEi @ 12 NONAME
+	_ZN15GlxStateManager14launchActivityEv @ 13 NONAME
+	_ZN15GlxStateManager15actionTriggeredEi @ 14 NONAME
+	_ZN15GlxStateManager15cleanupExternalEv @ 15 NONAME
+	_ZN15GlxStateManager15createGridModelEi13NavigationDir @ 16 NONAME
+	_ZN15GlxStateManager15exitApplicationEv @ 17 NONAME
+	_ZN15GlxStateManager15exitMarkingModeEv @ 18 NONAME
+	_ZN15GlxStateManager15externalCommandEi @ 19 NONAME
+	_ZN15GlxStateManager16enterMarkingModeEv @ 20 NONAME
+	_ZN15GlxStateManager16gridItemSelectedERK11QModelIndexR18QAbstractItemModel @ 21 NONAME
+	_ZN15GlxStateManager16setupItemsSignalEv @ 22 NONAME
+	_ZN15GlxStateManager16staticMetaObjectE @ 23 NONAME DATA 16
+	_ZN15GlxStateManager16updateTNProgressEi @ 24 NONAME
+	_ZN15GlxStateManager17launchApplicationEv @ 25 NONAME
+	_ZN15GlxStateManager18launchFromExternalEv @ 26 NONAME
+	_ZN15GlxStateManager18removeCurrentModelEv @ 27 NONAME
+	_ZN15GlxStateManager18thumbnailPopulatedEv @ 28 NONAME
+	_ZN15GlxStateManager19getStaticMetaObjectEv @ 29 NONAME
+	_ZN15GlxStateManager20launchProgressDialogEv @ 30 NONAME
+	_ZN15GlxStateManager20setFullScreenContextEv @ 31 NONAME
+	_ZN15GlxStateManager20vanishProgressDialogEv @ 32 NONAME
+	_ZN15GlxStateManager6goBackEii @ 33 NONAME
+	_ZN15GlxStateManager8saveDataEv @ 34 NONAME
+	_ZN15GlxStateManager9nextStateEii @ 35 NONAME
+	_ZN15GlxStateManager9saveImageEv @ 36 NONAME
+	_ZN15GlxStateManagerC1Ev @ 37 NONAME
+	_ZN15GlxStateManagerC2Ev @ 38 NONAME
+	_ZN15GlxStateManagerD0Ev @ 39 NONAME
+	_ZN15GlxStateManagerD1Ev @ 40 NONAME
+	_ZN15GlxStateManagerD2Ev @ 41 NONAME
+	_ZNK15GlxStateManager10metaObjectEv @ 42 NONAME
+	_ZTI15GlxStateManager @ 43 NONAME
+	_ZTV15GlxStateManager @ 44 NONAME
 
--- a/ui/viewmanagement/eabi/glxviewmanageru.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/eabi/glxviewmanageru.def	Wed Aug 18 09:48:53 2010 +0300
@@ -5,48 +5,49 @@
 	_ZN14GlxViewManager11cancelTimerEv @ 4 NONAME
 	_ZN14GlxViewManager11checkMarkedEv @ 5 NONAME
 	_ZN14GlxViewManager11destroyViewEi @ 6 NONAME
-	_ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 7 NONAME
-	_ZN14GlxViewManager11qt_metacastEPKc @ 8 NONAME
-	_ZN14GlxViewManager11resolveViewEi @ 9 NONAME
-	_ZN14GlxViewManager12activateViewEv @ 10 NONAME
-	_ZN14GlxViewManager12handleActionEv @ 11 NONAME
-	_ZN14GlxViewManager13actionProcessEi @ 12 NONAME
-	_ZN14GlxViewManager13addConnectionEv @ 13 NONAME
-	_ZN14GlxViewManager13createActionsEv @ 14 NONAME
-	_ZN14GlxViewManager13createToolBarEv @ 15 NONAME
-	_ZN14GlxViewManager14deActivateViewEv @ 16 NONAME
-	_ZN14GlxViewManager14effectFinishedEv @ 17 NONAME
-	_ZN14GlxViewManager15actionTriggeredEi @ 18 NONAME
-	_ZN14GlxViewManager15exitMarkingModeEi @ 19 NONAME
-	_ZN14GlxViewManager15externalCommandEi @ 20 NONAME
-	_ZN14GlxViewManager16enterMarkingModeEi @ 21 NONAME
-	_ZN14GlxViewManager16handleMenuActionEi @ 22 NONAME
-	_ZN14GlxViewManager16handleUserActionEii @ 23 NONAME
-	_ZN14GlxViewManager16removeConnectionEv @ 24 NONAME
-	_ZN14GlxViewManager16staticMetaObjectE @ 25 NONAME DATA 16
-	_ZN14GlxViewManager17getSelectionModelEi @ 26 NONAME
-	_ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 27 NONAME
-	_ZN14GlxViewManager17updateToolBarIconEi @ 28 NONAME
-	_ZN14GlxViewManager19getStaticMetaObjectEv @ 29 NONAME
-	_ZN14GlxViewManager20addBackSoftKeyActionEv @ 30 NONAME
-	_ZN14GlxViewManager20launchProgressDialogEi @ 31 NONAME
-	_ZN14GlxViewManager20updateProgressDialogEi @ 32 NONAME
-	_ZN14GlxViewManager21deactivateCurrentViewEv @ 33 NONAME
-	_ZN14GlxViewManager24createMarkingModeActionsEv @ 34 NONAME
-	_ZN14GlxViewManager24createMarkingModeToolBarEv @ 35 NONAME
-	_ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 36 NONAME
-	_ZN14GlxViewManager8findViewEi @ 37 NONAME
-	_ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 38 NONAME
-	_ZN14GlxViewManagerC1Ev @ 39 NONAME
-	_ZN14GlxViewManagerC2Ev @ 40 NONAME
-	_ZN14GlxViewManagerD0Ev @ 41 NONAME
-	_ZN14GlxViewManagerD1Ev @ 42 NONAME
-	_ZN14GlxViewManagerD2Ev @ 43 NONAME
-	_ZNK14GlxViewManager10metaObjectEv @ 44 NONAME
-	_ZNK14GlxViewManager11orientationEv @ 45 NONAME
-	_ZTI14GlxViewManager @ 46 NONAME
-	_ZTV14GlxViewManager @ 47 NONAME
-	_ZN14GlxViewManager18hideProgressDialogEv @ 48 NONAME
-	_ZN14GlxViewManager15handleReadyViewEv @ 49 NONAME
-	_ZN14GlxViewManager16applicationReadyEv @ 50 NONAME
+	_ZN14GlxViewManager11getSubStateEv @ 7 NONAME
+	_ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 8 NONAME
+	_ZN14GlxViewManager11qt_metacastEPKc @ 9 NONAME
+	_ZN14GlxViewManager11resolveViewEi @ 10 NONAME
+	_ZN14GlxViewManager12activateViewEv @ 11 NONAME
+	_ZN14GlxViewManager12handleActionEv @ 12 NONAME
+	_ZN14GlxViewManager13actionProcessEi @ 13 NONAME
+	_ZN14GlxViewManager13addConnectionEv @ 14 NONAME
+	_ZN14GlxViewManager13createActionsEv @ 15 NONAME
+	_ZN14GlxViewManager13createToolBarEv @ 16 NONAME
+	_ZN14GlxViewManager14deActivateViewEv @ 17 NONAME
+	_ZN14GlxViewManager14effectFinishedEv @ 18 NONAME
+	_ZN14GlxViewManager15actionTriggeredEi @ 19 NONAME
+	_ZN14GlxViewManager15exitMarkingModeEi @ 20 NONAME
+	_ZN14GlxViewManager15externalCommandEi @ 21 NONAME
+	_ZN14GlxViewManager15handleReadyViewEv @ 22 NONAME
+	_ZN14GlxViewManager16applicationReadyEv @ 23 NONAME
+	_ZN14GlxViewManager16enterMarkingModeEi @ 24 NONAME
+	_ZN14GlxViewManager16handleMenuActionEi @ 25 NONAME
+	_ZN14GlxViewManager16handleUserActionEii @ 26 NONAME
+	_ZN14GlxViewManager16removeConnectionEv @ 27 NONAME
+	_ZN14GlxViewManager16staticMetaObjectE @ 28 NONAME DATA 16
+	_ZN14GlxViewManager17getSelectionModelEi @ 29 NONAME
+	_ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 30 NONAME
+	_ZN14GlxViewManager17updateToolBarIconEi @ 31 NONAME
+	_ZN14GlxViewManager18hideProgressDialogEv @ 32 NONAME
+	_ZN14GlxViewManager19getStaticMetaObjectEv @ 33 NONAME
+	_ZN14GlxViewManager20addBackSoftKeyActionEv @ 34 NONAME
+	_ZN14GlxViewManager20launchProgressDialogEi @ 35 NONAME
+	_ZN14GlxViewManager20updateProgressDialogEi @ 36 NONAME
+	_ZN14GlxViewManager21deactivateCurrentViewEv @ 37 NONAME
+	_ZN14GlxViewManager24createMarkingModeActionsEv @ 38 NONAME
+	_ZN14GlxViewManager24createMarkingModeToolBarEv @ 39 NONAME
+	_ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 40 NONAME
+	_ZN14GlxViewManager8findViewEi @ 41 NONAME
+	_ZN14GlxViewManager8setModelEP18QAbstractItemModel @ 42 NONAME
+	_ZN14GlxViewManagerC1Ev @ 43 NONAME
+	_ZN14GlxViewManagerC2Ev @ 44 NONAME
+	_ZN14GlxViewManagerD0Ev @ 45 NONAME
+	_ZN14GlxViewManagerD1Ev @ 46 NONAME
+	_ZN14GlxViewManagerD2Ev @ 47 NONAME
+	_ZNK14GlxViewManager10metaObjectEv @ 48 NONAME
+	_ZNK14GlxViewManager11orientationEv @ 49 NONAME
+	_ZTI14GlxViewManager @ 50 NONAME
+	_ZTV14GlxViewManager @ 51 NONAME
 
--- a/ui/viewmanagement/statehandler/inc/glxactionhandler.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/inc/glxactionhandler.h	Wed Aug 18 09:48:53 2010 +0300
@@ -22,9 +22,9 @@
 
 #include <QObject>
 #include <QHash>
+#include <QModelIndex>
 
 class GlxCommandHandler;
-class QModelIndex;
 
 class GlxActionHandler : public QObject
 {
--- a/ui/viewmanagement/statehandler/inc/glxdetailstate.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/inc/glxdetailstate.h	Wed Aug 18 09:48:53 2010 +0300
@@ -27,6 +27,11 @@
 public :
 	GlxDetailState(GlxState *preState = NULL);
 	void eventHandler(qint32 &id);
+	int state() const { return (int) mState; }
+/*
+ *  This Function set the internal state of details state
+ */ 
+    void setState(int internalState) { mState = (DetailState) internalState; }
 /*
  *  This function set the transition parameter ( for animation) from full screen view to other view
  */ 
@@ -45,6 +50,7 @@
 //Functions
 
 private:
+    DetailState mState;
 //Data Member
 	
 };
--- a/ui/viewmanagement/statehandler/inc/glxfullscreenstate.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/inc/glxfullscreenstate.h	Wed Aug 18 09:48:53 2010 +0300
@@ -21,11 +21,12 @@
 #define GLXFULLSCREENSTATE_H
 
 #include <glxbasestate.h>
+class GlxStateManager;
 
 class GlxFullScreenState : public GlxState
 {
 public :
-    GlxFullScreenState(GlxState *preState = NULL);
+    GlxFullScreenState( GlxStateManager *stateManager, GlxState *preState = NULL );
     int state() const { return (int) mState; }
 /*
  *  This Function set the internal state of full screen state
@@ -49,6 +50,7 @@
 
 private:
     FullScreenState mState;
+    GlxStateManager *mStateManager;
 	
 };
 
--- a/ui/viewmanagement/statehandler/inc/glxliststate.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/inc/glxliststate.h	Wed Aug 18 09:48:53 2010 +0300
@@ -20,12 +20,43 @@
 
 #include <glxbasestate.h>
 
+/**
+ * class to manage list state
+ */
 class GlxListState : public GlxState
 {
 public :
+    /**
+     * constructor
+     */
 	GlxListState(GlxState *preState = NULL);
+
+	/**
+	 * return current state of list
+	 * @return current state
+	 */
+	int state() const { return (int) mState; }
+	/**
+	 * set current state
+	 * @param internalState substate of list to be set
+	 */
+    void setState(int internalState) { mState = (ListState) internalState; }
+	
+    /**
+     * event handler
+     */
 	void eventHandler(qint32 &id);
-	void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect);	
+	/**
+	 * set transition parameter
+	 * @param dir navigation direction
+	 * @param effect effect to be run on view transition
+	 * @param viewEffect 
+	 */
+	void setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect);
+private:
+    ///list internal state
+	ListState mState;   
+	
 };
 
 #endif /* GLXLISTSTATE_H */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/viewmanagement/statehandler/inc/glxorientationsensorfilter.h	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,61 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ?Description
+*
+*/
+
+#ifndef GLXORIENTATIONSENSORFILTER_H
+#define GLXORIENTATIONSENSORFILTER_H
+
+#include <QOrientationSensor>
+#include <QOrientationFilter>
+QTM_USE_NAMESPACE
+
+/**
+ * Class Description
+ * To read the current orientaion from the sensor
+ */
+class GlxOrientationSensorFilter : public QOrientationFilter
+{
+public :
+    /**
+     * Constructor
+     */	
+     GlxOrientationSensorFilter();
+
+     /**
+      * Destructor
+      */
+     ~GlxOrientationSensorFilter();
+     
+     /**
+      * filter() - callback function to get the current Orientation information
+      * @param QOrientationReading
+      * @return please look /// @see QOrientationFilter
+      */
+     bool filter( QOrientationReading *reading );
+     
+     /**
+      * orientation() - return the current device orientation
+      */
+     int orientation() { return mOrient; }
+	
+private :
+    int mOrient;
+    QOrientationSensor *m_orientation ;
+};
+
+/// for detail please @see QOrientationFilter
+
+#endif /* GLXORIENTATIONSENSORFILTER_H */
\ No newline at end of file
--- a/ui/viewmanagement/statehandler/inc/glxslideshowstate.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/inc/glxslideshowstate.h	Wed Aug 18 09:48:53 2010 +0300
@@ -21,21 +21,56 @@
 #include <glxbasestate.h>
 
 class GlxStateManager;
+class GlxOrientationSensorFilter;
 
+/**
+ * Class Description
+ * This is slide show state corresponding to slide show view.
+ */
 class GlxSlideShowState : public GlxState
 {
 public :
+    /**
+     * constructor
+     * @param pointer of state manager.
+     * @param pointer of perivious state.
+     */
 	GlxSlideShowState(GlxStateManager *stateManager, GlxState *preState = NULL);
+	
+	/**
+	 * state()
+	 * @return return the substate.
+	 */
 	int state() const { return (int) mState; }
+	
+	/**
+	 * setState() - set the current substate
+	 * @param substate of the this state
+	 */
 	void setState(int internalState) { mState = (SlideShowState) internalState; }
-	void eventHandler(qint32 &id);
+	
+	/**
+	 * eventHandler() - A command handler of this state
+	 * @param command id 
+	 */
+	void eventHandler(qint32 &commandId);
+	
+	/**
+	 * albumItemEventHandler() - A command handle for album substate
+	 * @param command id 
+	 */
 	void albumItemEventHandler( qint32 &id );
-	~GlxSlideShowState() {}	
+	
+	/**
+	 * Destructor
+	 */
+	~GlxSlideShowState();	
 	
 private:
     //slide show internal state
     SlideShowState mState;
     GlxStateManager *mStateManager;
+    GlxOrientationSensorFilter *mOrientSensorFilter;
 };
 
 #endif /* GLXSLIDESHOWSTATE_H */
--- a/ui/viewmanagement/statehandler/inc/glxstatemanager.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/inc/glxstatemanager.h	Wed Aug 18 09:48:53 2010 +0300
@@ -25,6 +25,7 @@
 #include <QList>
 #include <glxbasestate.h>
 #include <qmap.h>
+#include <QModelIndex>
 
 class GlxState;
 class GlxViewManager;
@@ -40,178 +41,236 @@
 #define GLX_STATEMANAGER_EXPORT Q_DECL_IMPORT
 #endif
 
+/**
+ * Class Description
+ * class to create and manage different states and view navigation 
+ */
+
 class GLX_STATEMANAGER_EXPORT GlxStateManager : public QObject
 {
     Q_OBJECT
 	friend class TestGlxStateManager;
 	
 public :
-    /*
+    /**
      * Constructor
      */
     GlxStateManager();
     
-    /*
+    /**
      * Destructor
      */
     virtual ~GlxStateManager();
-    
-    /*
-     * Fuction to launch the application from some external world
+
+    /**
+     * launchFetcher() - launch image fetcher
+     */
+	void launchFetcher();    
+
+	/**
+     * launchFromExternal() - Fuction to launch the application from some external world
      */
     void launchFromExternal();
     
-    /*
-     * Clean the all externel data
+    /**
+     * cleanupExternal() - Clean the all externel data
      */
     void cleanupExternal();
     
-    /*
-     *  Move the views to the multiple item selection state
+    /**
+     *  enterMarkingMode() - Move the views to the multiple item selection state
      */
     void enterMarkingMode();
     
-    /*
-     * Exit from the multiselection state
+    /**
+     * exitMarkingMode() - Exit from the multiselection state
      */
     void exitMarkingMode();
     
-    /*
-     * Execute the commant on multiple selected item
+    /**
+     * executeCommand() - Execute the commant on multiple selected item.
+     * @param - command Id to execute.
      */
-    bool executeCommand(qint32 commandId);
+    bool executeCommand( qint32 commandId );
     
-    /*
-     *  when application goes into background or come back to foreground
+    /**
+     *  eventFilter() - when application goes into background or come back to foreground
      *  set and reset the background thumbnail generation property
+     *  @param QObject
+     *  @param QEvent
      */
-    bool eventFilter(QObject *obj, QEvent *ev);    
+    bool eventFilter( QObject *obj, QEvent *ev );    
 
 signals :
-    /*
-     * Send the user activities ( command ) to the external world
+    /**
+     * externalCommand() - Send the user activities ( command ) to the external world
+     * @param - command Id to execute.
      */
-    void externalCommand(int cmdId);
+    void externalCommand( int cmdId );
     
-    /*
-     * TO send the signal to initialise the rest of items
+    /**
+     * setupItemsSignal() - TO send the signal to initialise the non critical resoruce
      * which is not created in the launch sequence
      */
     void setupItemsSignal();
+
+    /**
+     * gridItemSelected() - signal to send current model and selected index for fetcher service
+     * @param - selected item model index
+     * @param - model
+     */
+    void gridItemSelected( const QModelIndex &,QAbstractItemModel & );   
     
 public slots:
-    /*
-     * To launch the application
+    /**
+     * launchApplication() - To launch the application
      */
     void launchApplication();
     
-    /*
-     * To handle the user action, view switching etc
+    /**
+     * actionTriggered() - To handle the user action, view switching etc
+     * @param - user action ID.
      */
-    void actionTriggered(qint32 id);
+    void actionTriggered( qint32 id );
     
-    /*
-     * To create the items which is not created in the aluch sequence
+    /**
+     * setupItems() -To create the items which is not created in the aluch sequence
      */
     void setupItems();
     
-    /*
-     * call back function to monitor the change in thumbnail manager
+    /**
+     * updateTNProgress() - call back function to monitor the change in thumbnail manager
+     * @param - number of item left to generate the thumbnail
      */
-    void updateTNProgress( int count);
+    void updateTNProgress( int count );
+    
+    /**
+     * thumbnailPopulated() - call back to get the information that some initial page are loaded 
+     * into cache.
+     * It will vanish the progressbar dialog.
+     */
+    void thumbnailPopulated();
+    
+    /**
+     * saveData() - To save the activity data
+     */
     void saveData();
 
 public :
-    /*
-     * It will create a new state and replace the current state with new state in the stack.
+    /**
+     * changeState() - It will create a new state and replace the current state with new state in the stack.
      * It will use in the case of state switching.
      * use -1 if state does not have internal state
+     * @param - new state id.
+     * @param - internal or substate of new state.
      */    
-    void changeState(qint32 newStateId, int internalState );
+    void changeState( qint32 newStateId, int internalState );
     
-    /*
-     * Go back to previous state 
+    /**
+     * previousState() - Go back to previous state and if there is no state in the stack
+     * then exit the application. 
      */    
     void previousState();
 
-    /*
-     * Go back to a state in hierarchy and pop all the state upto that level.
+    /**
+     * goBack() - Go back to a state in hierarchy and pop all the state upto that level.
      * if state is not found, then all the state from the hierachy is removed and create a new state on level 0
      * This function will be use in the case when more then one back is required in single event.
+     * @param - new state id.
+     * @param - internal or substate of new state.
      */
-    void goBack(qint32 stateId, int internalState);
+    void goBack( qint32 stateId, int internalState );
        
-    /*
-     * Create a new state and current state should be pushed into stack.
+    /**
+     * nextState() - Create a new state and current state should be pushed into stack.
      * use -1 if state does not have internal state
+     * @param - new state id.
+     * @param - internal or substate of new state.
      */  
-    void nextState(qint32 newStateId, int internalState );
+    void nextState( qint32 newStateId, int internalState );
 
-    /*
-     * It will delete the current model
+    /**
+     * removeCurrentModel() - It will delete the current model
      */      
     void removeCurrentModel();
     
-    /*
-     * It will delete the all model used by state manager
+    /**
+     * cleanAllModel() - It will delete the all model used by state manager
      */
     void cleanAllModel();
     
-
 private:
 
-    /*
-     *  Launch the harvesting and TN generation progress bar dialog
+    /**
+     *  launchProgressDialog() - Launch the harvesting and TN generation progress bar dialog
      */
     void launchProgressDialog();
     
-    /*
-     * remove the harvesting and TN generation progress bar dialog
+    /**
+     * vanishProgressDialog() - create the grid view model and wait for loading of some initial page of data into 
+     * cache.
      */
     void vanishProgressDialog();
     
-    /*
-     * Factory function to create the state.
+    /**
+     * createState() - Factory function to create the state.
      */  
-    GlxState * createState(qint32 state);
+    GlxState * createState( qint32 state );
     
-    /*
-     * Factory function to create the model.
+    /**
+     * createModel() - Factory function to create the model.
+     * @param - state id of the state.
+     * @param -  state navigation direction
      */  	
-    void createModel(qint32 stateId, NavigationDir dir = NO_DIR);
+    void createModel( qint32 stateId, NavigationDir dir = NO_DIR );
 
-    /*
-     * Factory function to create the grid model.
+    /**
+     * createGridModel() - Factory function to create the grid model.
+     * @param -  internal state of grid state.
+     * @param - state navigation direction.
      */  	
-    void createGridModel(int internalState, NavigationDir dir = NO_DIR);
+    void createGridModel( int internalState, NavigationDir dir = NO_DIR );
 
-    /*
-     * To set the fullscreen context based on the currrent orientation
+    /**
+     * setFullScreenContext() - To set the fullscreen context based on the currrent orientation
      */    
     void setFullScreenContext();
     
-    /*
-     * Apllication event handler function
+    /**
+     * setFullScreenContext() - Apllication event handler function
+     * @param - event id
      */
-    void eventHandler(qint32 &id);
+    void eventHandler( qint32 &id );
     
-    /*
-     * A function to care the exit for application, in the case when application launch from internal and external
+    /**
+     * exitApplication() - A function to care the exit for application, in the case when application launch from internal and external
      */        
     void exitApplication();
 
-    /*Launch Application as an acitivyt.
+    /**
+     * launchActivity() -Launch Application as an activity.
      * Return Value @0 : If launching an activity fails
      *              @1 : If launch activity passes
      */
      bool launchActivity();
+
+     /**
+      * saveImage() - save current image if it is launched from private path.
+      */
+     void saveImage();
+     
 private:
     GlxViewManager      *mViewManager;
-    GlxMediaModel       *mAllMediaModel;        // for all grid
-    GlxMediaModel       *mAlbumGridMediaModel;  // for album grid 
-    GlxAlbumModel       *mAlbumMediaModel;      // for album list
-	GlxMediaModel       *mImageviewerMediaModel;// for image viewer 
-    QAbstractItemModel  *mCurrentModel;         // no owner ship
+    /// for all grid
+    GlxMediaModel       *mAllMediaModel;        
+    /// for album grid
+    GlxMediaModel       *mAlbumGridMediaModel;  
+    /// for album list
+    GlxAlbumModel       *mAlbumMediaModel;      
+    /// for image viewer
+	GlxMediaModel       *mImageviewerMediaModel;
+	/// no owner ship
+    QAbstractItemModel  *mCurrentModel;         
     GlxState            *mCurrentState;		
     GlxActionHandler    *mActionHandler;
     GlxTNObserver       *mTNObserver;
--- a/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxcommandhandlerfactory.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -21,15 +21,13 @@
 #include<glxcommandhandlerdelete.h>
 #include <glxcommandhandleraddtocontainer.h>
 #include <glxcommandhandlerrotate.h>
-#include <glxcommandhandlerrotateimage.h>
-#include <glxcommandhandlercropimage.h>
+#include <glxcommandhandlereditimage.h>
 #include <glxcommandhandlerremovefrom.h>
 #include <glxcommandhandlernewmedia.h>
 #include <glxcommandhandlersend.h>
 #include <glxcommandhandlerrename.h>
 #include <glxcommandhandlercomment.h>
 
-
 GlxCommandHandler* GlxCommandHandlerFactory::CreateCommandHandler(int commandId)
 {
     GlxCommandHandler* cmdHandler = NULL;
@@ -60,9 +58,9 @@
                    break;
         case EGlxCmdRotateImgCW:
         case EGlxCmdRotateImgCCW:
-            					cmdHandler = new GlxCommandHandlerRotateImage();
-            break;
-        case EGlxCmdRotateImgCrop: cmdHandler = new GlxCommandHandlerCropImage();
+		case EGlxCmdRotateImgCrop:
+		case EGlxCmdSetWallpaper:
+            				cmdHandler = new GlxCommandHandlerEditImage();
             break;
         default:
            break;
--- a/ui/viewmanagement/statehandler/src/glxdetailstate.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxdetailstate.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -21,7 +21,7 @@
 
 GlxDetailState::GlxDetailState(GlxState *preState) : GlxState(GLX_DETAILSVIEW_ID, preState)
 {
-	
+	mState = NO_DETAIL_S ;
 }
 
 
--- a/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxfullscreenstate.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -18,15 +18,31 @@
 
 
 #include <glxfullscreenstate.h>
+#include <glxstatemanager.h>
+#include <glxcommandhandlers.hrh>
 
-GlxFullScreenState::GlxFullScreenState(GlxState *preState) : GlxState(GLX_FULLSCREENVIEW_ID, preState)
+GlxFullScreenState::GlxFullScreenState(GlxStateManager *stateManager, GlxState *preState) : GlxState(GLX_FULLSCREENVIEW_ID, preState)
 {
-	
+    mStateManager = stateManager ;
 }
 
 void GlxFullScreenState::eventHandler(qint32 &id)
 {
-    Q_UNUSED(id);	
+    switch ( id ){
+    case EGlxCmdDetailsOpen :
+        if ( mState == IMAGEVIEWER_S ) {
+
+            mStateManager->nextState( GLX_DETAILSVIEW_ID, IMAGEVIEWER_DETAIL_S );
+        }
+        else {
+
+            mStateManager->nextState( GLX_DETAILSVIEW_ID, NO_DETAIL_S );
+        }
+        id = EGlxCmdHandled;
+        break ;
+    default :
+        break ;
+    }
 }
 
 void GlxFullScreenState::setTranstionParameter(NavigationDir dir, GlxEffect &effect, GlxViewEffect &viewEffect)
--- a/ui/viewmanagement/statehandler/src/glxgridstate.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxgridstate.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -43,10 +43,12 @@
     
     switch ( mState ) {
     case ALL_ITEM_S :
+	case FETCHER_ITEM_S :
         allItemEventHandler ( id ) ;
         break;
         
     case ALBUM_ITEM_S :
+    case FETCHER_ALBUM_ITEM_S :
     	albumItemEventHandler ( id ) ;
     	break;
     	
@@ -60,11 +62,10 @@
    qDebug("GlxGridState::defaultEventHandler() action id = %d", id);
    
    switch(id) { 
-   case EGlxCmdFullScreenOpen :
-        id = EGlxCmdHandled;
-        mStateManager->nextState( GLX_FULLSCREENVIEW_ID, -1 );
-        break;
-        
+   case EGlxCmdFetcherFullScreenOpen:
+       id = EGlxCmdHandled;
+       mStateManager->nextState( GLX_FULLSCREENVIEW_ID, FETCHER_S );
+       break;
    case EGlxCmdAddToAlbum :
    case EGlxCmdDelete :
    case EGlxCmdRemoveFrom :
@@ -110,9 +111,13 @@
     
     switch(id) {
     case EGlxCmdAllGridOpen :
+    case EGlxCmdFetcherAllGridOpen :   
     	id = EGlxCmdHandled;
     	break ;
-    	
+    case EGlxCmdFullScreenOpen :
+        mStateManager->nextState( GLX_FULLSCREENVIEW_ID, ALL_FULLSCREEN_S );
+        id = EGlxCmdHandled;
+    	break;
     default :
     	break;    
     }
@@ -128,14 +133,25 @@
         mStateManager->goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S );
         id = EGlxCmdHandled;
         break ;
+
+    case EGlxCmdFetcherAllGridOpen :
+        mStateManager->removeCurrentModel();
+        mStateManager->goBack( GLX_GRIDVIEW_ID, FETCHER_ITEM_S );
+        id = EGlxCmdHandled;
+        break ;
         
     case EGlxCmdAlbumListOpen :
+    case EGlxCmdFetcherAlbumListOpen:        
     case EGlxCmdBack :
         mStateManager->removeCurrentModel();
         mStateManager->previousState();
         id = EGlxCmdHandled;
         break;
-    	
+
+    case EGlxCmdFullScreenOpen :
+        mStateManager->nextState( GLX_FULLSCREENVIEW_ID, ALBUM_FULLSCREEN_S );
+        id = EGlxCmdHandled;
+    	break;
     default :
         break;
     }
--- a/ui/viewmanagement/statehandler/src/glxliststate.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxliststate.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -30,6 +30,7 @@
     qDebug("GlxListState::eventHandler action id = %d", id);
     switch(id) {
     case EGlxCmdAlbumListOpen :
+    case EGlxCmdFetcherAlbumListOpen:
 	    id = EGlxCmdHandled;
 	    break ;
 	
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/viewmanagement/statehandler/src/glxorientationsensorfilter.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -0,0 +1,42 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ?Description
+*
+*/
+
+#include "glxorientationsensorfilter.h"
+
+GlxOrientationSensorFilter::GlxOrientationSensorFilter()
+{
+    qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() enter" );
+    m_orientation = new QOrientationSensor();
+    m_orientation->addFilter( this );
+    m_orientation->start();
+    mOrient = QOrientationReading::Undefined ;
+    qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() exit" );
+}
+
+GlxOrientationSensorFilter::~GlxOrientationSensorFilter()
+{
+    m_orientation->stop();
+    delete m_orientation;
+}
+
+bool GlxOrientationSensorFilter::filter( QOrientationReading *reading )
+{
+    qDebug("GlxOrientationSensorFilter::GlxOrientationSensor() filter " );
+    mOrient = reading->orientation() ;
+    qDebug("GlxOrientationSensorFilter::filter() orientation = %d", mOrient );
+    return false;
+}
--- a/ui/viewmanagement/statehandler/src/glxslideshowstate.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxslideshowstate.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -15,37 +15,53 @@
 *
 */
 
-#include <glxslideshowstate.h>
-#include <glxstatemanager.h>
-#include <glxcommandhandlers.hrh>
 #include <QDebug>
 
+#include "glxslideshowstate.h"
+#include "glxstatemanager.h"
+#include "glxcommandhandlers.hrh"
+#include "glxorientationsensorfilter.h"
+
 GlxSlideShowState::GlxSlideShowState(GlxStateManager *stateManager, GlxState *preState) : GlxState(GLX_SLIDESHOWVIEW_ID, preState)
 {
     mStateManager = stateManager;
+	mOrientSensorFilter = NULL;
+    //mOrientSensorFilter = new GlxOrientationSensorFilter();
     mState = NO_SLIDESHOW_S;
 }
 
 void GlxSlideShowState::eventHandler( qint32 &id )
 {
-    qDebug("GlxSlideShowState::GlxSlideShowState() action id = %d", id);	
+    qDebug("GlxSlideShowState::GlxSlideShowState() action id = %d", id);
+    
+    /*switch ( id ) {
+    case EGlxCmdBack :
+        if ( mOrientSensorFilter->orientation() == QOrientationReading::TopUp ) {
+            id = EGlxCmdPlayBackAnim ;
+        }
+        break;
+        
+    default :
+        break ;
+    }*/
     
     if ( mState == SLIDESHOW_ALBUM_ITEM_S  ) {
         albumItemEventHandler( id );
     }   
 }
 
-void GlxSlideShowState::albumItemEventHandler( qint32 &id )
+void GlxSlideShowState::albumItemEventHandler( qint32 &commandId )
 {
-    switch ( id ) {
+    switch ( commandId ) {
     /* in the case of slide show play through list view item specfice menu option, a new model was
      * created so first remove the current model and then go back to pervious state 
      */    
+    case EGlxCmdSlideShowBack :
     case EGlxCmdBack :
     case EGlxCmdEmptyData : //memory card was removed ( no data )
         mStateManager->removeCurrentModel();
         mStateManager->previousState();
-        id = EGlxCmdHandled;
+        commandId = EGlxCmdHandled;
         break;
         
     default :
@@ -53,3 +69,8 @@
     }    
 }
 
+GlxSlideShowState::~GlxSlideShowState()
+{
+    delete 	mOrientSensorFilter;
+}
+
--- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -51,7 +51,7 @@
 #include "glxplugincommandid.hrh"
 #include "glxlog.h"
 #include "glxtracer.h"
-
+#include <glximageviewermanager.h>
 
 GlxStateManager::GlxStateManager() 
     : mAllMediaModel( NULL ), 
@@ -69,7 +69,6 @@
         mViewManager = new GlxViewManager();
     }
     mTNObserver = new GlxTNObserver();
-    mSaveActivity.clear();
     
     connect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ), Qt::QueuedConnection );
     connect ( mViewManager, SIGNAL(actionTriggered( qint32 )), this, SLOT(actionTriggered( qint32 )), Qt::QueuedConnection );
@@ -122,39 +121,50 @@
     return QObject::eventFilter(obj, event);
 }
 
+void GlxStateManager::launchFetcher()
+{
+    qDebug("GlxStateManager::launchFetcher");
+    mCurrentState = createState(GLX_GRIDVIEW_ID);
+    mCurrentState->setState(FETCHER_ITEM_S);
+    
+    createModel(GLX_GRIDVIEW_ID);
+    mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
+}
+
 void GlxStateManager::launchApplication()
 {
     qDebug("GlxStateManager::launchApplication");   
-     bool activitySuccess = false;  
+    bool activitySuccess = false;  
     //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S)
-     HbApplication* app = qobject_cast<HbApplication*>(qApp);
-     if(app->activateReason() == Hb::ActivationReasonActivity) {
-          activitySuccess = launchActivity();
-     }
-     if( !activitySuccess ) { 
-    mCurrentState = createState( GLX_GRIDVIEW_ID );
-    mCurrentState->setState( ALL_ITEM_S );
-    
-    int leftCount = mTNObserver->getTNLeftCount() ;
-    if (  leftCount > 0  ) {
-        mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
-        launchProgressDialog();
-    }
-    else {
-        createModel( GLX_GRIDVIEW_ID );
-        mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
+    HbApplication* app = qobject_cast<HbApplication*>(qApp);
+    if(app->activateReason() == Hb::ActivationReasonActivity) {
+        activitySuccess = launchActivity();
     }
     
-    mTNObserver->startTNObserving() ; 
-     }
-     //Remove the previous activity
-     HbActivityManager* activityManager = app->activityManager();
-     bool ok = activityManager->removeActivity("PhotosMainView");
-     if ( !ok )
-     {
+    if( !activitySuccess ) { 
+        mCurrentState = createState( GLX_GRIDVIEW_ID );
+        mCurrentState->setState( ALL_ITEM_S );
+       
+        int leftCount = mTNObserver->getTNLeftCount() ;
+        if (  leftCount > 0  ) {
+            mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel );
+            launchProgressDialog();
+        }
+        else {
+            createModel( GLX_GRIDVIEW_ID );
+            mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel );
+        }    
+        mTNObserver->startTNObserving() ; 
+    }
+    
+    HbActivityManager* activityManager = app->activityManager();
+    bool ok = activityManager->removeActivity("PhotosMainView");
+    if ( !ok )
+    {
          qDebug("launchapplication::Remove activity failed" );
-     } 
+    } 
 }
+
 bool GlxStateManager::launchActivity()
 {
     HbApplication* app = qobject_cast<HbApplication*>(qApp);
@@ -162,30 +172,29 @@
     if ( !ok )
     {
         qDebug("subscribing to activity manager failed" );
-        //return false;  TBD: waitActivity is always returning false. Could be some issue with AM.
     }
     QVariant data = app->activityManager()->activityData( "PhotosMainView" );
     QByteArray serializedModel = data.toByteArray();
     QDataStream stream(&serializedModel, QIODevice::ReadOnly);
+    
     //Fetch the data from the activity Manager
-    QMap<QString, qint32> fetchActivity;
-    stream >> fetchActivity;  
-    qint32 stateId = fetchActivity.value("ID");
+    stream >> mSaveActivity;  
+    qint32 stateId = mSaveActivity.value("ID");
     mCurrentState = createState(stateId);
-    mCurrentState->setState( fetchActivity.value("InternalState") );
+    mCurrentState->setState( mSaveActivity.value("InternalState") );
     createModel( stateId);
 	/*Model might not be populated yet to set the visibleWindowIndex right away.
 	*So, let us store the visible index as a temporary Variable, so that  visible Window Index 
 	*is set once the model is populated.
     */
-    mCurrentModel->setData(QModelIndex(), fetchActivity.value("VisibleIndex") , GlxTempVisualWindowIndex );
+    mCurrentModel->setData(QModelIndex(), mSaveActivity.value("VisibleIndex") , GlxTempVisualWindowIndex );
     mViewManager->launchApplication(stateId, mCurrentModel); 
     return true;
 }
 
 void GlxStateManager::launchFromExternal()
 {
-    qDebug("GlxStateManager::launchApplication");
+    qDebug("GlxStateManager::launchFromExternal");
     mCurrentState = createState(GLX_FULLSCREENVIEW_ID);
     mCurrentState->setState(IMAGEVIEWER_S);
     
@@ -210,17 +219,23 @@
     mActionHandler = new GlxActionHandler();
     connect ( mViewManager, SIGNAL(externalCommand(int )), this, SIGNAL(externalCommand(int )) );
     mViewManager->setupItems();
-    mViewManager->updateToolBarIcon(GLX_ALL_ACTION_ID);
+    switch( mSaveActivity.value( "ID" ) ){
+        case GLX_LISTVIEW_ID:
+            mViewManager->updateToolBarIcon(GLX_ALBUM_ACTION_ID);
+            break;
+            
+        case GLX_GRIDVIEW_ID:
+        default:
+            mViewManager->updateToolBarIcon(GLX_ALL_ACTION_ID);
+    }
 }
 
 void GlxStateManager::updateTNProgress( int count)
 {    
     TRACER("GlxStateManager::updateTNProgress() ");
-// mCurrentModel ------------this is case when progress bar is not showing
-// count > 5 ----------------in the case of rename of an image or capture the single item
-//                           it is also launching the progress bar, to avoid this scenario add the check of count more than 5
-// count == KErrNotReady ----A case when memory card is inserted but it is not harvest so it is given an error
-//                           In that case also user should be block to browse the images
+    // this is case when progress bar is not showing
+    // in the case of rename of an image or capture the single item
+    // it is also launching the progress bar, to avoid this scenario add the check of count more than 5
     if ( mCurrentModel && ( count > 5  ) ) { 
          goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S ) ;
          cleanAllModel();
@@ -229,8 +244,6 @@
     
     if ( isProgressbarRunning ){
         if ( count == 0 ) {
-            createModel( mCurrentState->id() );
-            mViewManager->setModel( mCurrentModel );
             vanishProgressDialog();
         }
         else {
@@ -239,43 +252,46 @@
     }   
 }
 
+void GlxStateManager::thumbnailPopulated()
+{
+    mViewManager->setModel( mCurrentModel );
+    isProgressbarRunning = false;
+    mViewManager->updateProgressDialog( 0 );  
+    disconnect ( mCurrentModel, SIGNAL( thumbnailPopulated() ), this, SLOT( thumbnailPopulated() ) );
+}
+
 void GlxStateManager::saveData()
 {
     if( (mCurrentState->id() == GLX_GRIDVIEW_ID && mCurrentState->state() == ALL_ITEM_S) || mCurrentState->id() == GLX_LISTVIEW_ID ) {
-    mSaveActivity.insert("ID",mCurrentState->id()); 
-    mSaveActivity.insert("InternalState",mCurrentState->state());
-    
-    //Store the visual Index
-    if(mCurrentModel)
-    {
-    	QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex );
-    	if ( variant.isValid() &&  variant.canConvert<int> () ) {
-         mSaveActivity.insert("VisibleIndex",variant.value<int>());
-    	}
+        mSaveActivity.insert("ID",mCurrentState->id()); 
+        mSaveActivity.insert("InternalState",mCurrentState->state());
+        if(mCurrentModel) {
+            QVariant variant = mCurrentModel->data( mCurrentModel->index(0,0), GlxVisualWindowIndex );
+            if ( variant.isValid() &&  variant.canConvert<int> () ) {
+                mSaveActivity.insert("VisibleIndex",variant.value<int>());
+            }
  		}
- 		else
- 			   mSaveActivity.insert("VisibleIndex",0);
- 			   
-    HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
+ 		else {
+ 			mSaveActivity.insert("VisibleIndex",0);
+ 		}
     
-    //Take a screenshot
-    QVariantHash metadata;
-    HbMainWindow *window = hbInstance->allMainWindows().first();
-    metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect()));
-
-     QByteArray serializedModel;
-     QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append);
-     stream << mSaveActivity;
-     //Add the activity
-    bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata);
-     if ( !ok )
-     {
-        qDebug("SaveData::Add activity failed" );
+        HbActivityManager* activityManager = qobject_cast<HbApplication*>(qApp)->activityManager();
+        QVariantHash metadata;
+        HbMainWindow *window = hbInstance->allMainWindows().first();
+        metadata.insert("screenshot", QPixmap::grabWidget(window, window->rect()));
+        
+        QByteArray serializedModel;
+        QDataStream stream(&serializedModel, QIODevice::WriteOnly | QIODevice::Append);
+        stream << mSaveActivity;
+        
+        bool ok = activityManager->addActivity("PhotosMainView", serializedModel, metadata);
+        if ( !ok )
+        {
+            qDebug("SaveData::Add activity failed" );
+        }
     }
-   }
 }
 
-
 void GlxStateManager::nextState(qint32 state, int internalState)
 {
     qDebug("GlxStateManager::nextState next state = %u", state);
@@ -309,6 +325,7 @@
     GlxState *state = mCurrentState; // To delete the current state later  
 
     if ( mCurrentState->previousState() == NULL ) { //In the case only one state in stack then exit from the application
+        saveImage(); // save image if it is in private folder
         exitApplication() ;
         return ;
     }
@@ -327,7 +344,34 @@
     }
     delete state;
 }
-   
+
+void GlxStateManager::saveImage()
+    {
+    CGlxImageViewerManager *imageViewerInstance = CGlxImageViewerManager::InstanceL();
+    if(imageViewerInstance->IsPrivate())
+        {
+        HBufC* imagePath = imageViewerInstance->ImageUri();
+		QString srcPath = QString::fromUtf16(imagePath->Des().Ptr(),imagePath->Length());
+		QString imageName = srcPath.section('\\', -1);
+		QString imagesFolderPath("c:/data/images/");
+		QString destPath;
+		destPath.append(imagesFolderPath);
+		destPath.append(imageName);
+		int cnt = 1;
+		qDebug() << "GlxStateManager::saveImage path before while = "<< destPath;
+		while(!QFile::copy(srcPath,destPath))
+			{
+			QString filename = imageName.section('.', 0,0);
+			QString ext = imageName.section('.', -1);
+			destPath.clear();
+			destPath = imagesFolderPath + filename + QString::number(cnt) + "." + ext;
+			qDebug() << "GlxStateManager::saveImage path = "<< destPath;
+			cnt++;
+			}
+        }
+    imageViewerInstance->Close();
+    }
+	
 void GlxStateManager::goBack(qint32 stateId, int internalState)
 {
     qDebug("GlxStateManager::goBack()");
@@ -428,23 +472,23 @@
 void GlxStateManager::launchProgressDialog()
 {
     TRACER("GlxStateManager::launchProgressDialog() ");
-    //HbMainWindow *window = hbInstance->allMainWindows().first();
-    //window->setAutomaticOrientationEffectEnabled( true );
     
     QCoreApplication::instance()->installEventFilter( this );
-    mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() );
+    if ( isProgressbarRunning ) {
+        mViewManager->updateProgressDialog( mTNObserver->getTNLeftCount() );
+    }
+    else {
+        mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() );
+    }
     isProgressbarRunning = true ;
 }
 
 void GlxStateManager::vanishProgressDialog()
 {
     TRACER("GlxStateManager::vanishProgressDialog() ");
-    //HbMainWindow *window = hbInstance->allMainWindows().first();
-    //window->setAutomaticOrientationEffectEnabled( false );
-    
     QCoreApplication::instance()->removeEventFilter( this );
-    isProgressbarRunning = false;
-    mViewManager->updateProgressDialog( 0 );    
+    createModel( mCurrentState->id() );
+    connect ( mCurrentModel, SIGNAL( thumbnailPopulated() ), this, SLOT( thumbnailPopulated() ) );
 }
 
 GlxState * GlxStateManager::createState(qint32 stateId)
@@ -459,7 +503,7 @@
         return new GlxListState( mCurrentState );    	
     	
     case GLX_FULLSCREENVIEW_ID :
-        return new GlxFullScreenState( mCurrentState );
+        return new GlxFullScreenState( this, mCurrentState );
         
     case GLX_DETAILSVIEW_ID:
         return new GlxDetailState( mCurrentState );
@@ -544,6 +588,7 @@
     
     switch( internalState) {
     case ALL_ITEM_S :
+	case FETCHER_ITEM_S:
         if ( mAllMediaModel == NULL ) {
             modelParm.setCollection( KGlxCollectionPluginAllImplementationUid );
             modelParm.setDepth(0);
@@ -556,6 +601,7 @@
         break;
         
     case ALBUM_ITEM_S :
+    case FETCHER_ALBUM_ITEM_S :    
         if ( dir != BACKWARD_DIR ) { 
             modelParm.setCollection( KGlxAlbumsMediaId );
             modelParm.setDepth(0);
@@ -592,17 +638,30 @@
         changeState( GLX_GRIDVIEW_ID, ALL_ITEM_S );
         id = EGlxCmdHandled;
         break;
+
+    case EGlxCmdFetcherAllGridOpen :
+        changeState( GLX_GRIDVIEW_ID, FETCHER_ITEM_S );
+        id = EGlxCmdHandled;
+        break;
     	
     case EGlxCmdAlbumListOpen:
         changeState( GLX_LISTVIEW_ID, -1 );
         id = EGlxCmdHandled;
         break;
-    	
+    case EGlxCmdFetcherAlbumListOpen:
+        changeState( GLX_LISTVIEW_ID, FETCHER_ALBUM_S );
+        id = EGlxCmdHandled;
+        break;
+        
     case EGlxCmdAlbumGridOpen:
         nextState( GLX_GRIDVIEW_ID, ALBUM_ITEM_S );
         id = EGlxCmdHandled;
         break;
-      
+    case EGlxCmdFetcherAlbumGridOpen:
+        nextState( GLX_GRIDVIEW_ID, FETCHER_ALBUM_ITEM_S );
+        id = EGlxCmdHandled;
+        break;
+        
     case EGlxCmdFirstSlideshow :
         //play the slide show with first item
         mCurrentModel->setData( mCurrentModel->index(0, 0), 0, GlxFocusIndexRole );
@@ -645,6 +704,7 @@
     }
     	
     case EGlxCmdBack :
+    case EGlxCmdSlideShowBack :
     	previousState();
     	id = EGlxCmdHandled;
     	break;
@@ -684,17 +744,28 @@
 		}
         break;
         
-   case EGlxCmdMarkAll:
-   case EGlxCmdUnMarkAll:
-       mViewManager->handleUserAction(mCurrentState->id(), id);
+   case EGlxCmdMarkAll :
+   case EGlxCmdUnMarkAll :
+   case EGlxCmd3DEffectOn :
+   case EGlxCmd3DEffectOff :
+   case EGlxCmdPlayBackAnim :
+       mViewManager->handleUserAction( mCurrentState->id(), id );
        id = EGlxCmdHandled;
        break;
        
    case EGlxCmdSetupItem :
        emit setupItemsSignal();
        break;
+   
+   case EGlxCmdFetcherSelect: 
+       {
+       QModelIndex selectedIndex = mCurrentModel->index(mCurrentModel->data(mCurrentModel->index(0,0),GlxFocusIndexRole).value<int>(),0);
+       emit gridItemSelected(selectedIndex,*mCurrentModel);
+       id = EGlxCmdHandled;
+       }
+       break;
        
-    default :
+   default :
         mActionHandler->handleAction(id,mCollectionId);
     	break;
     }	
@@ -713,6 +784,7 @@
 {
     qDebug("GlxStateManager::~GlxStateManager");
     cleanAllModel();
+    mSaveActivity.clear();
     delete mActionHandler;
     qDebug("GlxStateManager::~GlxStateManager delete Model");
     
--- a/ui/viewmanagement/statehandler/statehandler.pro	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/statehandler/statehandler.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -19,6 +19,8 @@
 DEPENDPATH += . inc src
 
 CONFIG += hb
+CONFIG += mobility
+MOBILITY += sensors
 
 INCLUDEPATH += . \
             ../../inc \
@@ -30,8 +32,8 @@
             ../../uiengine/model/mediamodel/inc \
             ../../uiengine/model/listmodel/inc \
             ../viewmanager/inc \
-            ../../commandhandlers\commandhandlerbase\inc \
-            ../../commandhandlers\commoncommandhandlers\inc
+            ../../commandhandlers/commandhandlerbase/inc \
+            ../../commandhandlers/commoncommandhandlers/inc
             
 DEFINES += BUILD_STATEMANAGER
 
@@ -50,7 +52,9 @@
         -lglxloggerqt.dll \
         -lglxcommoncommandhandlers.dll \
         -lglxlogging.dll \
-        -lglxcommon.dll
+        -lglxcommon.dll \
+	-lglximageviewermanager.dll
+
 
 # Input
 HEADERS += inc/glxbasestate.h \
@@ -63,7 +67,8 @@
            inc/glxslideshowstate.h \
            inc/glxactionhandler.h \
            inc/glxcommandhandlerfactory.h \
-           inc/glxtnobserver.h
+           inc/glxtnobserver.h \
+           inc/glxorientationsensorfilter.h
 
 SOURCES += src/glxbasestate.cpp \
            src/glxfullscreenstate.cpp \
@@ -75,7 +80,8 @@
            src/glxslideshowstate.cpp \
            src/glxactionhandler.cpp \
            src/glxcommandhandlerfactory.cpp \
-           src/glxtnobserver.cpp
+           src/glxtnobserver.cpp \
+           src/glxorientationsensorfilter.cpp
 
 DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
 
--- a/ui/viewmanagement/viewmanager/inc/glxmainwindoweventfilter.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/viewmanager/inc/glxmainwindoweventfilter.h	Wed Aug 18 09:48:53 2010 +0300
@@ -23,4 +23,4 @@
 
 };
 
-#endif
\ No newline at end of file
+#endif
--- a/ui/viewmanagement/viewmanager/inc/glxmenumanager.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/viewmanager/inc/glxmenumanager.h	Wed Aug 18 09:48:53 2010 +0300
@@ -21,6 +21,7 @@
 class QAbstractItemModel;
 class QAction;
 class HbMainWindow;
+class GlxSettingInterface;
 
 
 //Grid view option menu
@@ -29,7 +30,21 @@
    GlxGridViewSlideShow,
    GlxGridViewAddToAlbum,
    GlxGridViewRemoveFromAlbum,
-   GlxGridViewDelete
+   GlxGridViewDelete,
+   GlxGridView3DEffect
+};
+
+//Fullscreen view option menu
+enum {
+   GlxFullScreenViewSend,
+   GlxFullScreenViewSlideShow,
+#ifndef __WINSCW__
+   GlxFullScreenViewUseImage,
+   GlxFullScreenViewMenuRotate,
+   GlxFullScreenViewCrop,
+#endif
+   GlxFullScreenViewAddToAlbum,
+   GlxFullScreenViewRemoveoAlbum
 };
 
 class GlxMenuManager : public QObject
@@ -37,22 +52,23 @@
 Q_OBJECT
 
 public :
-	GlxMenuManager(HbMainWindow* mainWindow);
+	GlxMenuManager( HbMainWindow* mainWindow );
 	~GlxMenuManager();
-    void createMarkingModeMenu(HbMenu* menu);
-    void ShowItemSpecificMenu(qint32 viewId,QPointF pos);
-    void setModel(QAbstractItemModel *model) { mModel = model ; }
-    void addMenu(qint32 viewId, HbMenu* menu);
-    void removeMenu(qint32 viewId, HbMenu* menu);
-    void disableAction(HbMenu* menu,bool disable);
+    void createMarkingModeMenu( HbMenu* menu );
+    void ShowItemSpecificMenu( qint32 viewId,QPointF pos );
+    void setModel( QAbstractItemModel *model ) { mModel = model ; }
+    void addMenu( qint32 viewId, HbMenu* menu );
+    void removeMenu( qint32 viewId, HbMenu* menu );
+    void disableAction( HbMenu* menu,bool disable );
     
 signals :
-    void commandTriggered(qint32 commandId);
+    void commandTriggered( qint32 commandId );
     
 private:
-    void CreateGridMenu(HbMenu* menu);
-    void CreateListMenu(HbMenu* menu);
-    void CreateFullscreenMenu(HbMenu* menu);
+    void CreateGridMenu( HbMenu* menu );
+    void CreateListMenu( HbMenu* menu );
+    void CreateFullscreenMenu( HbMenu* menu );
+    void createSlideShowMenu( HbMenu* menu );
     void setAllActionVisibility( QList<QAction*> actionList, bool visible );
     int  viewSubState();
 
@@ -67,4 +83,8 @@
 	HbMainWindow* mMainWindow;
 	HbMenu *mContextMenu;
 	HbMenu* mSubMenu;
+	HbMenu* m3DEffectSubMenu;
+	HbMenu* mRotateSubMenu;
+	HbMenu* mUseImgSubMenu;
+	GlxSettingInterface *mSettings;
 };
--- a/ui/viewmanagement/viewmanager/inc/glxviewmanager.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/viewmanager/inc/glxviewmanager.h	Wed Aug 18 09:48:53 2010 +0300
@@ -24,6 +24,7 @@
 #include <QList>
 #include <hbeffect.h>
 #include "glxuistd.h"
+#include <QModelIndex>
 
 class GlxView;
 class HbMainWindow;
@@ -54,97 +55,132 @@
     GLX_ALL_ID             = 0xFF
 } glxToolBarActionIds;
 
+/**
+ * view manager class
+ */
 class GLX_VIEWMANAGER_EXPORT GlxViewManager : public QObject
 {
 Q_OBJECT
 
 public :
+    /**
+     * Constructor
+     */
     GlxViewManager();
+    /**
+     * Destructor
+     */
     ~GlxViewManager();
+
     void setupItems( );
+
+    /**
+     * launch application
+     * @param id viewId
+     * @param model model to be used for the view
+     */
     void launchApplication(qint32 id, QAbstractItemModel *model);
+
+    /**
+     * add back key action
+     */
     void addBackSoftKeyAction();
-/*
- * This will return the orientation of main window
- */    
+
+    /**
+     * This will return the orientation of main window
+     */    
     Qt::Orientation orientation() const;
-/*
- * This will deactivate the current function
- * to be used only in cases where External launch was done
- */     
+
+    /**
+     * This will deactivate the current function
+     * to be used only in cases where External launch was done
+     */     
     void deactivateCurrentView();
-/*
- *  To update the tool bar enable and disable icon
- *  id = This should be selected toolbar tab id
- */    
+
+    /**
+     *  To update the tool bar enable and disable icon
+     *  id = This should be selected toolbar tab id
+     */    
     void updateToolBarIcon(int id);
-/*
- * Enable the marking mode of the view to select multiple item
- */    
+
+    /**
+     * Enable the marking mode of the view to select multiple item
+     */    
     void enterMarkingMode(qint32 viewId);
-/*
- * Enable the normal mode of the view
- */    
+
+    /**
+     * Enable the normal mode of the view
+     */    
     void exitMarkingMode(qint32 viewId);
-/*
- * Pass the user action to the view
- */    
+
+    /**
+     * Pass the user action to the view
+     */    
     void handleUserAction(qint32 viewId, qint32 commandId);
-/*
- *  Return the selection model to the user
- */    
+
+    /**
+     *  Return the selection model to the user
+     */    
     QItemSelectionModel * getSelectionModel(qint32 viewId);
-/*
- * To set the model of current view
- */
+
+    /**
+     * To set the model of current view
+     */
     void setModel( QAbstractItemModel *model );
 	    
 signals :
-/*
- *  emit the user action
- */
+    /**
+     *  emit the user action
+     */
     void actionTriggered(qint32 id);
     void externalCommand(int cmdId);
     void applicationReady();
 
 public slots:
-/*
- *  This public slot is used to launch the view
- */
+    /**
+     *  This public slot is used to launch the view
+     */
     void launchView (qint32 id, QAbstractItemModel *model);
-/*
- *  It is over load slot and used to run the animation for view transition and launch the view
- */    
+
+    /**
+     *  It is over load slot and used to run the animation for view transition and launch the view
+     */    
     void launchView (qint32 id, QAbstractItemModel *model, GlxEffect effect, GlxViewEffect viewEffect);
     
     void launchProgressDialog( int maxValue );
     void updateProgressDialog( int currentValue);
-/*
- *  It will removed and deleted the view.
- *  Currently It is not used so may be in future, It will be removed.
- */    
+
+    /**
+     *  It will removed and deleted the view.
+     *  Currently It is not used so may be in future, It will be removed.
+     */    
     void destroyView (qint32 id);
-/*
- *  It will pass the user action to the state manager
- */    
+
+    /**
+     *  It will pass the user action to the state manager
+     */    
     void actionProcess(qint32 id);
-/*
- *  It will pass the user selected menu action to state manager 
- *  check for depricated with actionProcess api
- */    
+
+    /**
+     *  It will pass the user selected menu action to state manager 
+     *  check for depricated with actionProcess api
+     */    
     void handleMenuAction(qint32 commandId);
-/*
- *  It will pass the user action ( tool bar + back ) to state manager
- */    
+
+    /**
+     *  It will pass the user action ( tool bar + back ) to state manager
+     */    
     void handleAction();
     void cancelTimer();
-/*
- *  This is slot used for the animation finished call back
- */    
+
+    /**
+     *  This is slot used for the animation finished call back
+     */    
     void effectFinished( );
-/*
- *  This will open the item specifc Menu
- */    
+
+    /**
+     *  This will open the item specifc Menu
+     */    
     void itemSpecificMenuTriggered(qint32,QPointF );
     
     void handleReadyView();
@@ -156,46 +192,60 @@
    void hideProgressDialog();
    
 private:
-/*
- * It will create and return the view
- */
+    /**
+     * It will create and return the view
+     */
     GlxView * resolveView (qint32 id);
-/*
- *  It will find a view from the view list and return it
- */    
+
+    /**
+     *  It will find a view from the view list and return it
+     */    
     GlxView * findView (qint32 id);
-/*
- *  It will deativate the current view
- */    
+
+    /**
+     *  It will deativate the current view
+     */    
     void deActivateView();
-/*
- *  It will activate and show the view
- */
+
+    /**
+     *  It will activate and show the view
+     */
     void activateView();
-/*
- *  It will create the grid and list view tool bar action
- */    
+
+    /**
+     *  It will create the grid and list view tool bar action
+     */    
     void createActions();
-/*
- *  It will create the marking mode toll bar action
- */    
+
+    /**
+     *  It will create the marking mode toll bar action
+     */    
     void createMarkingModeActions(); 
-/*
- *  It will create the grid and list view tool bar
- */    
+
+    /**
+     *  It will create the grid and list view tool bar
+     */    
     void createToolBar();
-/*
- *  It will create the marking mode tool bar
- */    
+
+    /**
+     *  It will create the marking mode tool bar
+     */    
     void createMarkingModeToolBar();
-/*
- *  It will add all the view manager related connection
- */    
+
+    /**
+     *  It will add all the view manager related connection
+     */    
     void addConnection();
-/*
- *  It will remove all the view manager releted connection
- */    
+
+    /**
+     *  It will remove all the view manager releted connection
+     */    
     void removeConnection();
+    
+    /**
+     * 
+     */    
+    int getSubState();
 
 private:
     QList<GlxView *> mViewList;  //It contains all the view created by it self.
--- a/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/viewmanager/src/glxmenumanager.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -28,6 +28,7 @@
 #include "glxcommandhandlers.hrh"
 #include "glxmodelparm.h"
 #include "glxlocalisationstrings.h"
+#include "glxsettinginterface.h"
 
 
 GlxMenuManager::GlxMenuManager(HbMainWindow* mainWindow)
@@ -35,6 +36,7 @@
       mMainWindow( mainWindow ),
       mContextMenu( 0 )
 {
+    mSettings = GlxSettingInterface::instance();
 }
 
 GlxMenuManager::~GlxMenuManager()
@@ -71,10 +73,14 @@
 
 void GlxMenuManager::addMenu(qint32 viewId, HbMenu* menu)
 {
+    int curState = viewSubState();
+    if( curState == FETCHER_ITEM_S || curState == FETCHER_S || curState == FETCHER_ALBUM_S ||  curState == IMAGEVIEWER_S)
+        return;
+    
     switch(viewId) {
     case GLX_GRIDVIEW_ID:
+        CreateGridMenu( menu );
         connect( menu, SIGNAL( aboutToShow() ), this, SLOT( updateGridMenu() ) );
-        CreateGridMenu( menu );
         break;                            
 
     case GLX_LISTVIEW_ID: 
@@ -82,9 +88,13 @@
         break;
         
     case GLX_FULLSCREENVIEW_ID:
+        CreateFullscreenMenu( menu );
         connect( menu, SIGNAL( aboutToShow() ), this, SLOT( updateFullscreenMenu() ) );
-        CreateFullscreenMenu( menu );
         break;
+        
+    case GLX_SLIDESHOWVIEW_ID :
+        createSlideShowMenu( menu );
+        break ;
                 
     default:
         break;
@@ -145,6 +155,22 @@
     action->setData(EGlxCmdDelete);
     action->setObjectName( "GridMenu Delete" );
     connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+    
+    m3DEffectSubMenu = menu->addMenu(GLX_GRID_OPT_EFFECT);
+    m3DEffectSubMenu->setObjectName( "GridMenu 3DEffect" );
+    
+    action = m3DEffectSubMenu->addAction(GLX_GRID_OPT_ON); 
+    action->setCheckable(ETrue);
+    action->setData(EGlxCmd3DEffectOn);
+    action->setObjectName( "GridMenu 3DOn" );
+    connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+    
+    action = m3DEffectSubMenu->addAction(GLX_GRID_OPT_OFF);
+    action->setCheckable(ETrue);
+    action->setData(EGlxCmd3DEffectOff);
+    action->setObjectName( "GridMenu 3DOff" );
+    connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); 
+
 }
 
 void GlxMenuManager::CreateListMenu(HbMenu* menu)
@@ -186,15 +212,21 @@
 	CFeatureDiscovery* featManager = CFeatureDiscovery::NewL();
     if(featManager->IsFeatureSupportedL(KFeatureIdFfImageEditor))
         {
-		mSubMenu = menu->addMenu(QString("Rotate"));
-		action = mSubMenu->addAction(QString("90 CW")); 
+        mUseImgSubMenu = menu->addMenu(GLX_MENU_USE_IMAGE);
+        action = mUseImgSubMenu->addAction(GLX_MENU_SET_WALLPAPER); 
+        action->setData(EGlxCmdSetWallpaper);
+        connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); 
+        
+            
+        mRotateSubMenu = menu->addMenu(GLX_MENU_ROTATE);
+		action = mRotateSubMenu->addAction(GLX_MENU_90_CW); 
 		action->setData(EGlxCmdRotateImgCW);
 		connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected())); 
-		action = mSubMenu->addAction(QString("90 CCW"));
+		action = mRotateSubMenu->addAction(GLX_MENU_90_CCW);
 		action->setData(EGlxCmdRotateImgCCW);
 		connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
 		
-		action = menu->addAction(QString("Crop"));
+		action = menu->addAction(GLX_MENU_CROP);
 		action->setData(EGlxCmdRotateImgCrop);
 		connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));   
         }
@@ -205,6 +237,21 @@
     action->setData(EGlxCmdAddToAlbum);
     action->setObjectName( "FSMenu AddToAlbum" );
     connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+	action = menu->addAction( GLX_OPTION_REMOVE_FROM_ALBUM );
+	action->setData( EGlxCmdRemoveFrom );
+	action->setObjectName( "FSMenu RemoveAlbum" );
+	connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
+}
+
+void GlxMenuManager::createSlideShowMenu( HbMenu* menu )
+{
+    HbAction *action = NULL;
+    menu->setObjectName( "SSMenu" );
+    
+    action = menu->addAction( GLX_OPTION_SS_SETTINGS );
+    action->setData( EGlxCmdSlideshowSettings );
+    action->setObjectName( "SSMenu Setting" );
+    connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) ); 
 }
 
 void GlxMenuManager::setAllActionVisibility( QList<QAction*> actionList, bool visible )
@@ -217,9 +264,11 @@
 
 int GlxMenuManager::viewSubState()
 {
-    QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );    
-    if ( variant.isValid() &&  variant.canConvert<int> () ) {
-        return variant.value<int>() ;
+    if(mModel){
+        QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );
+        if ( variant.isValid() &&  variant.canConvert<int> () ) {
+            return variant.value<int>() ;
+        }
     }
     return -1;
 }
@@ -257,6 +306,26 @@
             actionList.at(GlxGridViewRemoveFromAlbum)->setVisible( FALSE );
             break ;
         }       
+        
+        if(mMainWindow->orientation() == Qt::Horizontal)
+            {
+            actionList.at(GlxGridView3DEffect)->setVisible( TRUE );
+            QList<QAction*> subActionList = m3DEffectSubMenu->actions();
+            if(mSettings->mediaWall3DEffect())
+                {
+                subActionList.at(0)->setChecked(ETrue);
+                subActionList.at(1)->setChecked(EFalse);
+                }
+            else
+                {
+                subActionList.at(0)->setChecked(EFalse);
+                subActionList.at(1)->setChecked(ETrue);
+                }
+            }
+        else
+            {
+            actionList.at(GlxGridView3DEffect)->setVisible( FALSE );
+            }
     }    
 }
 
@@ -276,6 +345,34 @@
         setAllActionVisibility( actionList, TRUE );
         isAllActionDisable = FALSE;
     }    
+    
+
+
+#ifndef __WINSCW__
+    if ( state != IMAGEVIEWER_S)
+        {
+        int frameCount = (mModel->data(mModel->index((
+                mModel->data(mModel->index(0, 0),GlxFocusIndexRole)).value<int> (), 0),
+                        GlxFrameCount)).value<int>();
+        bool setVisible = true;
+        if (frameCount > 1) 
+            {
+            //Check for animated image, if found hide editor specific menu
+            setVisible = false;
+            }
+		//If Use Image contains any sub menu item other then related to Editor
+		//then individual sub menu item needs to be hidden rather then
+		//complete "Use Image"menu
+        actionList[GlxFullScreenViewUseImage]->setVisible(setVisible);
+        actionList[GlxFullScreenViewMenuRotate]->setVisible(setVisible);
+        actionList[GlxFullScreenViewCrop]->setVisible(setVisible);
+        }
+#endif    
+	if( state != ALBUM_FULLSCREEN_S ){
+		actionList[GlxFullScreenViewRemoveoAlbum]->setVisible(false);
+	}else{
+		actionList[GlxFullScreenViewRemoveoAlbum]->setVisible(true);
+	}
 }
 
 void GlxMenuManager::menuItemSelected()
@@ -292,62 +389,87 @@
     mContextMenu = new HbMenu();
     mContextMenu->setObjectName( "ContextMenu" );
     HbAction *action = NULL;
-
     switch ( viewId ) {
 	    case GLX_GRIDVIEW_ID :
-	        action = mContextMenu->addAction(GLX_MENU_SHARE);
-	        action->setData(EGlxCmdContextSend);
+			if ( viewSubState() == FETCHER_ITEM_S || viewSubState() == FETCHER_ALBUM_ITEM_S) {        
+                action = mContextMenu->addAction( GLX_MENU_OPEN );
+                action->setData( EGlxCmdFetcherFullScreenOpen );
+                action->setObjectName( "CM Open1" );
+                connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
+				break;
+	        }
+			
+	        action = mContextMenu->addAction( GLX_MENU_OPEN );
+            action->setData( EGlxCmdFullScreenOpen );
+            action->setObjectName( "CM Open" );
+            connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );	        
+	        
+            action = mContextMenu->addAction( GLX_MENU_SHARE );
+	        action->setData( EGlxCmdContextSend );
 	        action->setObjectName( "CM Send" );
-	        connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+	        connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 	        
-	        action = mContextMenu->addAction(GLX_MENU_SLIDESHOW);
-	        action->setData(EGlxCmdSelectSlideshow);
+	        action = mContextMenu->addAction( GLX_MENU_SLIDESHOW );
+	        action->setData( EGlxCmdSelectSlideshow );
 	        action->setObjectName( "CM SlideShow" );
-	        connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+	        connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 
+	        action = mContextMenu->addAction( GLX_MENU_ADD_TO_ALBUM );
+		    action->setData( EGlxCmdContextAddToAlbum );
+		    action->setObjectName( "CM AddToAlbum" );
+		    connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
+		    
 	        if ( viewSubState() == ALBUM_ITEM_S ) {        
-                action = mContextMenu->addAction(GLX_OPTION_REMOVE_FROM_ALBUM);
-                action->setData(EGlxCmdContextRemoveFrom);
+                action = mContextMenu->addAction( GLX_OPTION_REMOVE_FROM_ALBUM );
+                action->setData( EGlxCmdContextRemoveFrom );
                 action->setObjectName( "CM RemoveAlbum" );
-                connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+                connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 	        }
 	        
-	        action = mContextMenu->addAction(GLX_MENU_ADD_TO_ALBUM);
-		    action->setData(EGlxCmdContextAddToAlbum);
-		    action->setObjectName( "CM AddToAlbum" );
-		    connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
-		    
-		    action = mContextMenu->addAction(GLX_MENU_DELETE);
-		    action->setData(EGlxCmdContextDelete);
+		    action = mContextMenu->addAction( GLX_MENU_DELETE );
+		    action->setData( EGlxCmdContextDelete );
 		    action->setObjectName( "CM Delete" );
-		    connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+		    connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 			break;
 	    	
 	    case GLX_LISTVIEW_ID : {
+            if ( viewSubState() == FETCHER_ALBUM_S ) {        
+                action = mContextMenu->addAction( GLX_MENU_OPEN );
+                action->setData( EGlxCmdFetcherAlbumGridOpen );
+                action->setObjectName( "CM Open1" );
+                connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
+                break;
+            }
+	    
 	        int count = 0;
             QVariant variant = mModel->data( mModel->index(0,0), GlxListItemCount );    
 	        if ( variant.isValid() &&  variant.canConvert<int> () ) {
 	            count = variant.value<int>();  
-	        }  
+	        }
+	        
+	        action = mContextMenu->addAction( GLX_MENU_OPEN );
+            action->setData( EGlxCmdAlbumGridOpen );
+            action->setObjectName( "CM Album Open" );
+            connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 
 	        if ( count ) {
-                action = mContextMenu->addAction(GLX_MENU_SLIDESHOW);
-                action->setData(EGlxCmdAlbumSlideShow);
+                action = mContextMenu->addAction( GLX_MENU_SLIDESHOW );
+                action->setData( EGlxCmdAlbumSlideShow );
                 action->setObjectName( "CM Album SlideShow" );
-                connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+                connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
 	        }
 	        
 	        variant = mModel->data( mModel->index(0,0), GlxSystemItemRole );    
             if ( variant.isValid() &&  variant.canConvert<bool> () && ( variant.value<bool>() == false ) ) {           
-                action = mContextMenu->addAction(GLX_MENU_RENAME);
-                action->setData(EGlxCmdContextRename);
+                action = mContextMenu->addAction( GLX_MENU_RENAME );
+                action->setData( EGlxCmdContextRename );
                 action->setObjectName( "CM Rename" );
-                connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+                connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
                             
-                action = mContextMenu->addAction(GLX_MENU_DELETE);
-                action->setData(EGlxCmdContextAlbumDelete);
+                action = mContextMenu->addAction( GLX_MENU_DELETE );
+                action->setData( EGlxCmdContextAlbumDelete );
                 action->setObjectName( "CM Album Delete" );
-                connect(action, SIGNAL(triggered()), this, SLOT(menuItemSelected()));
+                connect( action, SIGNAL( triggered() ), this, SLOT( menuItemSelected() ) );
             }
 	    }
 			break;
--- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -40,7 +40,8 @@
 #include <glxmainwindoweventfilter.h>
 #include <xqsettingsmanager.h>
 #include <xqsettingskey.h>
-
+#include <glxviewids.h>
+#include "glxmodelroles.h"
 
 GlxViewManager::GlxViewManager() 
     : mBackAction( NULL ), 
@@ -52,22 +53,23 @@
       mProgressDialog( NULL )
 {
     qDebug("GlxViewManager::GlxViewManager() ");
-    PERFORMANCE_ADV ( viewMgrD1, "main window creation time" ) {
-        //check the case when application launch through some other application (view plugin)
-        mMainWindow = GlxExternalUtility::instance()->getMainWindow();
-        if(mMainWindow == NULL)	{
-            mMainWindow = new HbMainWindow();
-            connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() ));
-        }
-		//Without this Zoom Does not work
 
-		mWindowEventFilter = new GlxMainWindowEventFilter;
-		mMainWindow->scene()->installEventFilter(mWindowEventFilter);
-		mMainWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
-		mMainWindow->viewport()->grabGesture(Qt::PinchGesture);
+    //check the case when application launch through some other application (view plugin)
+    mMainWindow = GlxExternalUtility::instance()->getMainWindow();
+    if(mMainWindow == NULL)	{
+        mMainWindow = new HbMainWindow();
     }
+    connect(mMainWindow, SIGNAL( viewReady() ), this, SLOT( handleReadyView() ));
+    //Without this Zoom Does not work
+
+    mWindowEventFilter = new GlxMainWindowEventFilter;
+    mMainWindow->scene()->installEventFilter(mWindowEventFilter);
+    mMainWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents);
+    mMainWindow->viewport()->grabGesture(Qt::PinchGesture);
+
     HbStyleLoader::registerFilePath(":/data/photos.css");
 }
+
 void GlxViewManager::handleReadyView()
 {
     emit actionTriggered( EGlxCmdSetupItem );
@@ -77,21 +79,18 @@
 
 void GlxViewManager::setupItems( )
 {
-    mMenuManager = new GlxMenuManager(mMainWindow);
     addBackSoftKeyAction();    
-    addConnection();    
-    mMenuManager->addMenu( mView->viewId(), mView->menu() );
-    mMenuManager->setModel( mModel );
+    addConnection();
 }
 
 void GlxViewManager::launchApplication(qint32 id, QAbstractItemModel *model)
 {
     mModel = model;
-    PERFORMANCE_ADV ( viewMgrD1, "View Creation time" ) {
-        mView = resolveView(id);
-    }
+    mMenuManager = new GlxMenuManager( mMainWindow );  //menu manager should be created before view.
+    mMenuManager->setModel( mModel );
+    mView = resolveView( id );
+
     createToolBar();
-    mView->addToolBar(mViewToolBar);
     
     /* We are showing the toolBar before activating the 
      * view. This is done to avoid the animation effect seen otherwise 
@@ -103,14 +102,11 @@
      * 
      */
     mView->activate();
-    
-    PERFORMANCE_ADV ( viewMgrD3, "Set Model time")  
-        mView->setModel(mModel);
-        
-    PERFORMANCE_ADV( viewMgrD4, "View Display time") {
-        mMainWindow->setCurrentView(mView, false);
-        mMainWindow->showFullScreen();           
-    }    
+    mView->setModel( mModel );
+    //visibility of tool bar dependes of view internal state so add the toolbar after setting model
+    mView->addToolBar( mViewToolBar ); 
+    mMainWindow->setCurrentView( mView, false );
+    mMainWindow->showFullScreen();
 }
 
 void GlxViewManager::handleMenuAction(qint32 commandId)
@@ -121,6 +117,7 @@
 void GlxViewManager::handleAction()
 {
     HbAction *action = qobject_cast<HbAction*>(sender());
+    action->setChecked( TRUE );
     qint32 commandId = action->data().toInt();
     emit actionTriggered(commandId);
 }
@@ -129,8 +126,8 @@
 {
     qDebug("GlxViewManager::addBackSoftKeyAction ");
     //create the back soft key action and set the data
-    mBackAction = new HbAction(Hb::BackNaviAction, this);
-    mBackAction->setData(EGlxCmdBack);
+    mBackAction = new HbAction( Hb::BackNaviAction, this );
+    mBackAction->setData( EGlxCmdBack );
     mBackAction->setObjectName( "App Back" );
     mView->setNavigationAction( mBackAction );
 }
@@ -140,16 +137,13 @@
     return mMainWindow->orientation();
 }
 
-void GlxViewManager::launchView(qint32 id, QAbstractItemModel *model)
+void GlxViewManager::launchView( qint32 id, QAbstractItemModel *model )
 {
-    qDebug("GlxViewManager::launchView Id = %d ", id);
+    qDebug( "GlxViewManager::launchView Id = %d ", id );
     mModel = model;
     deActivateView();
-    
-    PERFORMANCE_ADV ( viewMgrD1, "View Creation time" ) {
-        mView = resolveView(id);
-    }
-    
+    mMenuManager->setModel( mModel ); //set the model to get the item type info and row count info
+    mView = resolveView( id );
     activateView();
 }
 
@@ -176,10 +170,11 @@
     //partially clean the view so that animation run smoothly
     GlxView *curr_view = (GlxView *) mMainWindow->currentView();
     curr_view->resetView();
-    
+
+    mMenuManager->setModel( model ); //set the model to get the item type info and row count info
     mView = resolveView(id);
     //partially initialise the view so that animation run smoothly
-    mView->initializeView( model);
+    mView->initializeView( model, curr_view );
     mModel = model; 
 
     if ( viewEffect == CURRENT_VIEW || viewEffect == BOTH_VIEW ) { 
@@ -201,6 +196,10 @@
         }
     }
     
+    if ( effect == GRID_TO_FULLSCREEN ) {
+        mViewToolBar->setZValue( item->zValue() - 5 );
+    }
+    
     //error check
     if ( itemList.count() > 0 ) {
         mEffectEngine->runEffect(itemList, effect);
@@ -247,38 +246,8 @@
     //To:Do temp code remove later
     if ( mProgressDialog ) {
         i = ++i % 10;
-        switch ( i ) {
-        case 0 :
-            icon = HbIcon( QString(":/data/Image1.jpg") );
-            break;
-        case 1 :
-            icon = HbIcon( QString(":/data/Image2.jpg") );
-            break;
-        case 2 :
-            icon = HbIcon( QString(":/data/Image3.jpg") );
-            break;
-        case 3 :
-            icon = HbIcon( QString(":/data/Image4.jpg") );
-            break;
-        case 4 :
-            icon = HbIcon( QString(":/data/Image5.jpg") );
-            break;
-        case 5 :
-            icon = HbIcon( QString(":/data/Image6.jpg") );
-            break;
-        case 6 :
-            icon = HbIcon( QString(":/data/Image7.jpg") );
-            break;
-        case 7 :
-            icon = HbIcon( QString(":/data/Image8.jpg") );
-            break;
-        case 8 :
-            icon = HbIcon( QString(":/data/Image9.jpg") );
-            break;
-        case 9 :
-            icon = HbIcon( QString(":/data/Image10.jpg") );
-            break;            
-        }
+        icon = HbIcon( QString( ":/data/Wait/qgn_graf_ring_wait_%1.svg" ).arg( i + 1, 2, 10, QChar( '0' ) ) );
+        mProgressDialog->setIcon(icon);
         
         int max = mProgressDialog->maximum() ;
         if ( currentValue > max ) {
@@ -286,10 +255,8 @@
             max = currentValue ;
         }
         
-        mProgressDialog->setIcon(icon);
-        
         if ( currentValue < 0 ) {
-            mProgressDialog->setText( QString( "Refreshing" ) ); //To:Do string will change later
+            mProgressDialog->setText( QString( GLX_REFRESHING ) ); //To:Do string will change later
             mProgressDialog->setProgressValue( 0 );
         }
         else {
@@ -317,22 +284,18 @@
     
     qDebug("GlxViewManager::updateToolBarIcon() action ID list %d count %d", id, count);
     
-    for ( int i = 0; i < count ; i++ )
-        {
+    for ( int i = 0; i < count ; i++ ) {
         qDebug("GlxViewManager::updateToolBarIcon() toolBarActionId %d value %d", toolBarActionId, ( id & toolBarActionId ) );
         //check and get the icon path
-        if ( ( id & toolBarActionId ) == toolBarActionId )
-            {
-            mActionList[i]->setCheckable(TRUE);
+        if ( ( id & toolBarActionId ) == toolBarActionId ) {
             mActionList[i]->setChecked(TRUE);                        
-            }
-        else 
-            {
+        }
+        else {
             mActionList[i]->setChecked(FALSE);
-            }
+        }
         //to get it the next action id to verify it is selecter or not
         toolBarActionId = toolBarActionId << 1; 
-        }
+    }
 }
 
 void GlxViewManager::checkMarked()
@@ -343,7 +306,6 @@
         if( mMarkingActionList.at(i)->data()==EGlxCmdSelect) {
        	    bool noSelection=selectedModelIndex.empty();
             mMarkingActionList.at(i)->setDisabled(noSelection);
-            mMenuManager->disableAction(mView->menu(),noSelection);
             break;
         }
     }
@@ -417,23 +379,22 @@
     }    
 }
 
-GlxView * GlxViewManager::resolveView(qint32 id)
+GlxView * GlxViewManager::resolveView( qint32 id )
 {
-    qDebug("GlxViewManager::resolveView %d", id);
+    qDebug("GlxViewManager::resolveView %d", id );
     GlxView *view = findView ( id );
     if ( view ) {
         return view ;
     }
     
-    view = GlxViewsFactory::createView(id, mMainWindow);
+    view = GlxViewsFactory::createView( id, mMainWindow );
     if ( view ) {
-        connect ( view, SIGNAL(actionTriggered(qint32 )), this, SLOT(actionProcess(qint32 )), Qt::QueuedConnection );
-        connect ( view, SIGNAL(itemSpecificMenuTriggered(qint32,QPointF ) ), this, SLOT( itemSpecificMenuTriggered(qint32,QPointF ) ), Qt::QueuedConnection );
-        mViewList.append(view);
-        mMainWindow->addView(view);
-        if ( mMenuManager ) {
-            mMenuManager->addMenu( id, view->menu());
-        }
+        connect ( view, SIGNAL( actionTriggered( qint32 ) ), this, SLOT( actionProcess( qint32 ) ), Qt::QueuedConnection );
+        connect ( view, SIGNAL( itemSpecificMenuTriggered( qint32, QPointF ) ), this, SLOT( itemSpecificMenuTriggered( qint32, QPointF ) ), Qt::QueuedConnection );
+        mViewList.append( view );
+        mMainWindow->addView( view );
+        mMenuManager->addMenu( id, view->menu() );
+        
         if ( mBackAction ) {
             view->setNavigationAction( mBackAction );
         }
@@ -488,42 +449,53 @@
 void GlxViewManager::activateView()
 {
     qDebug("GlxViewManager::activateView()");
-        
-    PERFORMANCE_ADV ( viewMgrD2, "View Activation time") {
-        mView->addToolBar(mViewToolBar);
-        mView->activate();
-        mView->show();
-        mMenuManager->setModel( mModel ); //set the model to get the item type info and row count info
-    }        
-      
-    PERFORMANCE_ADV ( viewMgrD3, "Set Model time")  
-        mView->setModel(mModel);
-        
-    PERFORMANCE_ADV( viewMgrD4, "View Display time") {
-        mMainWindow->setCurrentView(mView, false);
-        mMainWindow->showFullScreen();           
-    }
+
+    mView->activate();
+    mView->show();
+    mView->setModel( mModel );
+    //visibility of tool bar dependes of view internal state so add the toolbar after setting model
+    mView->addToolBar( mViewToolBar );
+    mMainWindow->setCurrentView(mView, false);
+    mMainWindow->showFullScreen(); 
 }
 
 void GlxViewManager::createActions()
 {
     qDebug("GlxViewManager::createActions() " );
     mActionList.clear();  
+
+    int curSubstate = getSubState();    
     
     //create the All tool bar button action
     HbAction* allAction = new HbAction( this );
-    allAction->setData( EGlxCmdAllGridOpen );
+
+    if( curSubstate == FETCHER_ITEM_S ) {
+        allAction->setData( EGlxCmdFetcherAllGridOpen );
+    }else{
+        allAction->setData( EGlxCmdAllGridOpen );
+    }
+
     mActionList.append( allAction );    
     allAction->setIcon( HbIcon( GLXICON_ALL ) ) ;
     allAction->setObjectName( "All Action" );
        
     //create the Album tool bar button action
     HbAction* albumAction = new HbAction( this );
-    albumAction->setData( EGlxCmdAlbumListOpen );
+
+    if( curSubstate == FETCHER_ITEM_S ) {
+        albumAction->setData( EGlxCmdFetcherAlbumListOpen );
+    }else{
+        albumAction->setData( EGlxCmdAlbumListOpen );
+    }
+
     mActionList.append( albumAction );
     albumAction->setIcon( HbIcon( GLXICON_ALBUMS ) ) ;
     albumAction->setObjectName( "Album Action" );
-   
+	
+	//in case of fetcher no need to create other actions
+	if( curSubstate == FETCHER_ITEM_S ) {
+		return;
+		}	
     //create the album tool bar button action
     HbAction* cameraAction = new HbAction( this );
     cameraAction->setData( EGlxCmdCameraOpen );
@@ -607,6 +579,7 @@
     int count = mActionList.count();
     for ( int i = 0; i < count; i++ ) {
         connect( mActionList.at(i), SIGNAL(triggered( )), this, SLOT(handleAction( )) );
+        mActionList.at(i)->setCheckable( TRUE );
         mViewToolBar->addAction( mActionList.at(i) );      
     }
     qDebug("GlxViewManager::createToolBar() exit" );
@@ -705,7 +678,7 @@
     }
  
     if( mMainWindow != GlxExternalUtility::instance()->getMainWindow() ){
-        qDebug("GlxViewManager::~GlxViewManager remove view");
+        qDebug("GlxViewManager::~GlxViewManager delete mainwindow");
         delete mMainWindow;
     }
     delete mWindowEventFilter;
@@ -713,3 +686,15 @@
     qDebug("GlxViewManager::~GlxViewManager Exit");
 }
 
+int GlxViewManager::getSubState()
+{
+    int curSubstate = NO_GRID_S;    
+    
+    if ( mModel  ) {    
+        QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );    
+        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
+            curSubstate = variant.value<int>();
+        }
+    }
+    return curSubstate;
+}
--- a/ui/viewmanagement/viewmanager/viewmanager.pro	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewmanagement/viewmanager/viewmanager.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -25,6 +25,7 @@
                  ../../../loggers/loggerqt/inc \
                  ../../../commonutilities/externalutility/inc \
                  ../../viewutilities/effectengine/inc \
+                 ../../viewutilities/settingutility/inc 
         
 CONFIG += hb
 
--- a/ui/views/detailsview/inc/glxdetailscustomicon.h	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   ?Description
-*
-*/
-
-#ifndef GLXDETAILSCUSTOMICON_H
-#define GLXDETAILSCUSTOMICON_H
-
-#include <hbwidget.h>
-class HbIconItem;
-class HbIcon;
-
-class GlxDetailsCustomIcon : public HbWidget 
-{	
-    Q_OBJECT
-    
-public:
-    GlxDetailsCustomIcon(QGraphicsItem *parent);
-    ~GlxDetailsCustomIcon();
-    /*
-     * Sets the Geometry of the Custom Widget
-     */
-    void setItemGeometry(QRect screenRect);
-    
-    /*
-     * Sets the Size of the Favourite Icon
-     */
-	void setItemSize(const QSizeF &size);
-	
-	/*
-	 * Sets the Position of the Favourite Icon
-	 */
-	void setItemPos(qreal ax, qreal ay);
-	
-	/*
-	 * Sets the  Icon of Favourite IconItem.
-	 */
-	void setItemIcon(const HbIcon &icon);
-	
-protected:
-    void mousePressEvent(QGraphicsSceneMouseEvent *event);	
-    void mouseReleaseEvent (QGraphicsSceneMouseEvent *event);
-    
-signals :
-     void updateFavourites();
-
-private:
-   HbIconItem *mFavIcon;   
-};
-
-#endif // GLXDETAILSCUSTOMICON_H
--- a/ui/views/detailsview/inc/glxdetailsview.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/detailsview/inc/glxdetailsview.h	Wed Aug 18 09:48:53 2010 +0300
@@ -29,8 +29,9 @@
 class HbDocumentLoader;
 class HbLabel;
 class HbPushButton;
-class GlxDetailsNameLabel;
-class GlxDetailsDescriptionEdit;
+class GlxDetailsTextEdit;
+class GlxDetailsIcon;
+
 class GlxDetailsViewDocLoader;
 
 class GlxDetailsView : public GlxView  
@@ -61,7 +62,7 @@
     /*
      * This is called from the view manager before the view is going to Activated.
      */
-    void initializeView(QAbstractItemModel *model);
+    void initializeView( QAbstractItemModel *model, GlxView *preView );
 
     /*
      * This is called from the view manager before the view is going to de-activated.
@@ -82,6 +83,7 @@
     void updateLayout(Qt::Orientation);
     void rowsRemoved(const QModelIndex &parent, int start, int end);
     void dataChanged(QModelIndex startIndex, QModelIndex endIndex);
+    void modelDestroyed();
     void updateFavourites();
     void UpdateDescription();
     void FillDetails();
@@ -146,13 +148,14 @@
      */
     void clearConnections();
     
+    int getSubState();
 private:
     
     //Contains the thumbnail shown in teh details view.
     HbLabel *mDetailsIcon;
     
     //Contains the favourite icon which adds or removes the image to favourite folder
-    HbPushButton *mFavIcon;
+    GlxDetailsIcon *mFavIcon;
    
     //The media Model to acess the attributes; not owned,dont delete.
     QAbstractItemModel *mModel; 
@@ -169,10 +172,10 @@
     GlxDetailsViewDocLoader *mDocLoader;
   
     //Shows the Images
-    GlxDetailsNameLabel *mImageName;
+    GlxDetailsTextEdit *mImageName;
 	
 	//Shows the descriptions
-     GlxDetailsDescriptionEdit *mDescriptions;
+    GlxDetailsTextEdit *mDescriptions;
 	
 	//Shows the Date 
     HbLabel *mDateLabel;
@@ -182,5 +185,8 @@
 	
 	//Shows the time 
     HbLabel *mTimeLabel;    
+    
+    HbIcon mFavIconEnabled;
+    HbIcon mFavIconDisabled;
 };
 #endif //GLXDETAILSVIEW_H
--- a/ui/views/detailsview/src/glxdetailscustomicon.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,95 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:   ?Description
-*
-*/
-
-
-#include <hbiconitem.h>
-#include <hbframeitem.h>
-#include <glxdetailscustomicon.h>
-#include <QEvent>
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//mousePressEvent
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsCustomIcon::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
-    Q_UNUSED(event)
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//clearCurrentModel
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsCustomIcon::mouseReleaseEvent (QGraphicsSceneMouseEvent *event) 
-{
-  Q_UNUSED(event)  
-  emit updateFavourites();
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//GlxDetailsCustomIcon
-//--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsCustomIcon::GlxDetailsCustomIcon(QGraphicsItem *parent) : HbWidget(parent)
-{
-  mFavIcon = new HbIconItem(this);
-  HbFrameItem* frame = new HbFrameItem(this);
-  frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-  frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-  frame->graphicsItem()->setOpacity(0.2); 
-  setBackgroundItem(frame->graphicsItem(),-1);
-  
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//~GlxDetailsCustomIcon
-//--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsCustomIcon::~GlxDetailsCustomIcon()
-{
-  delete mFavIcon;
-  mFavIcon = NULL;
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setItemGeometry
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsCustomIcon::setItemGeometry(QRect screenRect) 
-{
-     setGeometry(screenRect);    
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setItemSize
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsCustomIcon::setItemSize(const QSizeF &size) 
-{
-     mFavIcon->setSize(size);
-} 
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setItemPos
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsCustomIcon::setItemPos(const qreal ax,const qreal ay)
-{
-    //place the FavIcon with respect to the parent i.e HbWidget 
-    mFavIcon->setPos(ax ,ay);    
-}
-
-//--------------------------------------------------------------------------------------------------------------------------------------------
-//setItemIcon
-//--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsCustomIcon::setItemIcon(const HbIcon &icon)
-{
-    mFavIcon->setIcon(icon);    
-} 
--- a/ui/views/detailsview/src/glxdetailscustomwidgets.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-/*
-* 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 "glxdetailscustomwidgets.h"
-#include <hbdataform.h>
-#include <hbdataformmodelitem.h> 
-#include <hbdataformmodel.h> 
-#include <hbdataformviewitem.h>
-
-#include <hblineedit.h>
-#include <hblabel.h>
-//#include "hbsettingformitem_p.h"
-#include <hbpushbutton.h>
-#include <hbiconitem.h>
-#include <QDir>
-#include <QGraphicsLinearLayout>
-
-GlxDetailsCustomWidgets::GlxDetailsCustomWidgets(QGraphicsItem *parent):
-HbDataFormViewItem(parent)
-     {
-     }
-
-GlxDetailsCustomWidgets::~GlxDetailsCustomWidgets()
-    {
-    }
-
-HbAbstractViewItem* GlxDetailsCustomWidgets::createItem()
-    {
-    return new GlxDetailsCustomWidgets(*this);
-    }
-
-HbWidget* GlxDetailsCustomWidgets::createCustomWidget()
-    {
-    qDebug("GlxDetailsCustomWidgets::createCustomWidget");
-    HbDataFormModelItem::DataItemType itemType = static_cast<HbDataFormModelItem::DataItemType>(
-            modelIndex().data(HbDataFormModelItem::ItemTypeRole).toInt());
-    switch(itemType)
-        {
-        
-		case DateLabelItem :
-            {
-            qDebug("GlxDetailsCustomWidgets::createCustomWidget:DateLabelItem");
-            HbLabel *dateLabel = new HbLabel();
-            return dateLabel;
-            }
-        
-
-
-        default:
-            return 0;
-
-        }
-    }
-
-bool GlxDetailsCustomWidgets::canSetModelIndex(const QModelIndex &index) const
-{
-    HbDataFormModelItem::DataItemType itemType =
-    static_cast<HbDataFormModelItem::DataItemType>(
-            index.data(HbDataFormModelItem::ItemTypeRole).toInt());
-
-    if(itemType >= ImageNameItem && 
-            itemType <= CommentsItem )
-        {
-        return true;
-        }
-    return false;
-}
-
-//EOF
--- a/ui/views/detailsview/src/glxdetailsview.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/detailsview/src/glxdetailsview.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -34,7 +34,7 @@
 #include <hbdocumentloader.h>
 #include <hbdataformmodelitem.h>
 #include <hbdataformviewitem.h>
-
+#include <hbparameterlengthlimiter.h>
 //--------------------------------------------------------------------------------------------------------------------------------------------
 #include "glxviewids.h"
 #include "glxicondefs.h" //Contains the icon names/Ids
@@ -44,8 +44,9 @@
 #include "glxfavmediamodel.h"
 #include "glxdocloaderdefs.h"
 #include <glxcommandhandlers.hrh>
-#include "glxdetailsdescriptionedit.h"
-#include "glxdetailsnamelabel.h"
+#include  "glxlocalisationstrings.h"
+#include "glxdetailstextedit.h"
+#include "glxdetailsicon.h"
 
 
 #include "glxviewdocloader.h"
@@ -61,7 +62,8 @@
 #endif
 
 //SIZE OF THE IMAGE , LAYOUTS TEAM NEED TO GIVER THE SIZE IN UNITS
-#define GLX_IMAGE_SIZE 215 
+#define GLX_IMAGE_WIDTH 333
+#define GLX_IMAGE_HEIGHT 215 
 const int KBytesInKB = 1024;
 const int KBytesInMB = 1024 * 1024;
 const int KBytesInGB = 1024 * 1024 * 1024;
@@ -69,29 +71,39 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //GlxDetailsView
 //--------------------------------------------------------------------------------------------------------------------------------------------
-GlxDetailsView::GlxDetailsView(HbMainWindow *window) :
-GlxView(GLX_DETAILSVIEW_ID), mDetailsIcon(NULL), mFavIcon(NULL), mModel(
-        NULL), mFavModel(NULL), mWindow(window),
-        mSelIndex(0),mDocLoader(NULL),mImageName(NULL),mDescriptions(NULL),mDateLabel(NULL),mSizeLabel(NULL),mTimeLabel(NULL)
-   {
+GlxDetailsView::GlxDetailsView(HbMainWindow *window) 
+    : GlxView( GLX_DETAILSVIEW_ID ),
+      mDetailsIcon( NULL ),
+      mFavIcon( NULL ), 
+      mModel( NULL ), 
+      mFavModel( NULL ),
+      mWindow( window ),
+      mSelIndex( 0 ),
+      mDocLoader( NULL ),
+      mImageName( NULL ),
+      mDescriptions( NULL ),
+      mDateLabel( NULL ),
+      mSizeLabel( NULL ),
+      mTimeLabel( NULL )
+{
     GLX_LOG_INFO("GlxDetailsView::GlxDetailsView");
     OstTraceFunctionEntry0( GLXDETAILSVIEW_GLXDETAILSVIEW_ENTRY );
     setContentFullScreen(true);//for smooth transtion between grid to full screen and vice versa
     OstTraceFunctionExit0( GLXDETAILSVIEW_GLXDETAILSVIEW_EXIT );
-   }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //~GlxDetailsView
 //--------------------------------------------------------------------------------------------------------------------------------------------
 GlxDetailsView::~GlxDetailsView()
-    {
+{
     OstTrace0( TRACE_IMPORTANT, GLXDETAILSVIEW_GLXDETAILSVIEW, "GlxDetailsView::~GlxDetailsView" );
     
     delete mDocLoader;
     mDocLoader = NULL;
     
     cleanUp();
-    }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //activate
@@ -100,7 +112,9 @@
     {
     OstTraceFunctionEntry0( GLXDETAILSVIEW_ACTIVATE_ENTRY );
     //create and set the Favourite Model
-    setFavModel();
+    if(getSubState() != IMAGEVIEWER_DETAIL_S) {
+       setFavModel();
+    }
     
     //fill the data
     FillDetails();
@@ -120,34 +134,33 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //initializeView
 //--------------------------------------------------------------------------------------------------------------------------------------------
-void GlxDetailsView::initializeView(QAbstractItemModel *model)
-    {
+void GlxDetailsView::initializeView( QAbstractItemModel *model, GlxView *preView)
+{
+    Q_UNUSED( preView )
     OstTraceFunctionEntry0( GLXDETAILSVIEW_INITIALIZEVIEW_ENTRY );
     bool loaded = false;
-    
+
     if(!mDocLoader)
         {
          mDocLoader = new GlxDetailsViewDocLoader();
         }
-    
+
     //Load the docml
     mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, &loaded);     
-    
+
     HbView *mView = static_cast<HbView*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_VIEW));
     
-    HbWidget *mwidget = static_cast<HbWidget*> (mDocLoader->findWidget(
-            "MainWidget"));
-
     mDetailsIcon = static_cast<HbLabel*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_IMAGE));
-    mFavIcon = static_cast<HbPushButton*> (mDocLoader->findWidget(
+    mFavIcon = static_cast<GlxDetailsIcon*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_FAVICON));
 
-    mDescriptions = static_cast<GlxDetailsDescriptionEdit*> (mDocLoader->findWidget(
+
+    mDescriptions = static_cast<GlxDetailsTextEdit*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_DESCRPTIONTEXT));
     
-    mImageName = static_cast<GlxDetailsNameLabel*> (mDocLoader->findWidget(
+    mImageName = static_cast<GlxDetailsTextEdit*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_IMGNAME));
     
     mDateLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
@@ -159,25 +172,24 @@
     mSizeLabel = static_cast<HbLabel*> (mDocLoader->findWidget(
             GLX_DETAILSVIEW_SIZETEXT));
 
-    //set the frame graphics to the background of the fav icon
-    HbFrameItem* frame = new HbFrameItem(this);
-    frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-    frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-    frame->graphicsItem()->setOpacity(0.2);
-    mFavIcon->setBackgroundItem(frame->graphicsItem(), -1);
-    mFavIcon->setBackground(HbIcon("qtg_fr_multimedia_trans"));
-    mFavIcon->setIcon(HbIcon(GLXICON_REMOVE_FAV));
-    
-    setWidget(mView);
-
+    mFavIconEnabled  =  HbIcon(GLXICON_ADD_TO_FAV);
+    mFavIconDisabled =  HbIcon(GLXICON_REMOVE_FAV);   
+        
     //Set the Model
     mModel = model;  
-
+   if(getSubState() == IMAGEVIEWER_DETAIL_S) {
+       mFavIcon->hide();
+    }
+    else
+    {
+       mFavIcon->setItemIcon(HbIcon(GLXICON_REMOVE_FAV));
+     }	
+	 
+	setWidget(mView);
+	
     //Set the Layout Correspondingly.
     updateLayout(mWindow->orientation());
 
-    //Shows the Image 
-    showImage();
     OstTraceFunctionExit0( GLXDETAILSVIEW_INITIALIZEVIEW_EXIT );
     }
 
@@ -211,14 +223,15 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::cleanUp()
     {
+    qDebug("GlxDetailsView::cleanUp Enter");
+	//clear the connections
+    clearConnections();   
+    
     clearCurrentModel();
 
-    //clear the connections
-    clearConnections();   
-
     delete mFavModel;
     mFavModel = NULL;
-
+       
     delete mFavIcon;
     mFavIcon = NULL;
 
@@ -251,80 +264,80 @@
             mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
             GlxUriRole)).value<QString> ();
 
-    if (mFavModel == NULL)
-        {
+    if (mFavModel == NULL) {
         modelParm.setCollection(KGlxCollectionPluginFavoritesAlbumId);
         modelParm.setContextMode(GlxContextFavorite);
         modelParm.setPath(imagePath);
         mFavModel = new GlxFavMediaModel(modelParm);
-        }
+    }
 }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //initializeNewModel
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::initializeNewModel()
-    {
+{
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_INITIALIZENEWMODEL, "GlxDetailsView::initializeNewModel" );
-
-    if (mModel)
-        {
-    connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
-            SLOT(rowsRemoved(QModelIndex,int,int)));
-        }
+    
+    if (mModel) {
+        connect( mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
+        connect( mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
+        connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
     }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //clearCurrentModel
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::clearCurrentModel()
-    {
+{
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_CLEARCURRENTMODEL, "GlxDetailsView::clearCurrentModel" );
 
-    if (mModel)
-        {
-        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this,
-                SLOT(rowsRemoved(QModelIndex,int,int)));
+    if (mModel) {
+        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(rowsRemoved(QModelIndex,int,int)));
+        disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
+        disconnect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
         mModel = NULL;
-        }
     }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //setConnections
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::setConnections()
-    {
+{
     connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
             SLOT(updateLayout(Qt::Orientation)));
-    connect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites()));
+    
+    if(getSubState() != IMAGEVIEWER_DETAIL_S) {    
+    connect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
     
     connect(mDescriptions, SIGNAL(labelPressed()), this,
             SLOT(UpdateDescription()));
     
-    connect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
-    
     connect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
-               this, SLOT( dataChanged(QModelIndex,QModelIndex) ));    
+                   this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
     }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //clearConnections
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::clearConnections()
-    {
+{
+    
+    qDebug("GlxDetailsView:: clearConnections");
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this,
             SLOT(updateLayout(Qt::Orientation)));
-    
-    disconnect(mFavIcon, SIGNAL(clicked()), this, SLOT(updateFavourites()));
-    
+           
+    if(mModel && getSubState() != IMAGEVIEWER_DETAIL_S) {
+    disconnect(mFavIcon, SIGNAL(updateFavourites()), this, SLOT(updateFavourites()));
     disconnect(mDescriptions, SIGNAL(labelPressed()), this,
             SLOT(UpdateDescription()));
-    
-    disconnect(mModel, SIGNAL( updateDetailsView() ), this, SLOT( FillDetails() ));
-    
     disconnect(mFavModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ),
-                this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
+                    this, SLOT( dataChanged(QModelIndex,QModelIndex) ));
     }
+}
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //getAnimationItem
@@ -363,11 +376,11 @@
     //Load the Sections
     mDocLoader->load(GLX_DETAILSVIEW_DOCMLPATH, section, &loaded);
 
-    //This is just to over come the bug in docloader,once that is fixed we can remove the 
+    showImage();
+	//This is just to over come the bug in docloader,once that is fixed we can remove the 
     //below lines of code
-     setImageName();
-     setDate();
-
+    FillDetails();
+    
     GLX_LOG_INFO1("GlxDetailsView::updateLayout =%d\n",loaded);
     }
 
@@ -393,6 +406,11 @@
         }
     }
 
+void GlxDetailsView::modelDestroyed()
+{
+    mModel = NULL;
+}
+
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //FillData
 //--------------------------------------------------------------------------------------------------------------------------------------------
@@ -421,7 +439,7 @@
 //showImage
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::showImage()
-    {
+ {
     OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SHOWIMAGE, "GlxDetailsView::showImage" );
 
     QVariant variant = mModel->data(mModel->index(0, 0), GlxFocusIndexRole);
@@ -431,17 +449,12 @@
         }
 
     variant = mModel->data(mModel->index(mSelIndex, 0), GlxFsImageRole);
+    
     if (variant.isValid() && variant.canConvert<HbIcon> ())
         {
-        QIcon itemIcon = variant.value<HbIcon> ().qicon();
-        QPixmap itemPixmap = itemIcon.pixmap(GLX_IMAGE_SIZE, GLX_IMAGE_SIZE);
-        QSize sz(GLX_IMAGE_SIZE, GLX_IMAGE_SIZE);
-        itemPixmap = itemPixmap.scaled(sz, Qt::IgnoreAspectRatio);
-
-        HbIcon tmp = HbIcon(QIcon(itemPixmap));
-        mDetailsIcon->setIcon(tmp);
+         mDetailsIcon->setIcon(variant.value<HbIcon> ());
         }
-    }
+   }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
 //setImageName
@@ -449,15 +462,12 @@
 void GlxDetailsView::setImageName()
     {
     OstTraceFunctionEntry0( GLXDETAILSVIEW_SETIMAGENAME_ENTRY );
-    QString temp = "<u>";
     QString imagePath = (mModel->data(mModel->index(mModel->data(
             mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
             GlxUriRole)).value<QString> ();
     QString imageName = imagePath.section('\\', -1);
     
-    temp.append(imageName);
-    temp.append("</u>");
-    mImageName->setItemText(temp);    
+    mImageName->setItemText(imageName);    
     OstTraceFunctionExit0( GLXDETAILSVIEW_SETIMAGENAME_EXIT );
     }
 
@@ -466,10 +476,15 @@
 //--------------------------------------------------------------------------------------------------------------------------------------------
 void GlxDetailsView::setDesc()
     {
+    
+    //This is a hack , Initialize to some characters and then set the text
+    //as of know if the description text is Null , we cant see the Description edit box
+    //The issue has been informed to Application designer team.
+    mDescriptions->setItemText("a");
     QString description = (mModel->data(mModel->index(mModel->data(
             mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
             GlxDescRole)).value<QString> ();
-    mDescriptions->setItemText(description);
+     mDescriptions->setItemText(description);       
     }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
@@ -484,12 +499,12 @@
     QDate date = (mModel->data(mModel->index(mModel->data(
             mModel->index(0, 0), GlxFocusIndexRole).value<int> (), 0),
             GlxDateRole)).value<QDate> ();
-    
-    datestring = QString("Date: ");
+        
     if (date.isNull() == FALSE)
         {
         OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setDate is not NULL" );
-        datestring.append(date.toString(dateFormat));
+        QString dateStringValue = date.toString(dateFormat);
+        datestring = hbTrId(GLX_DETAILS_DATE).arg(dateStringValue);
         }
 
     mDateLabel->setPlainText(datestring);
@@ -507,13 +522,14 @@
     QTime timevalue = (mModel->data(mModel->index(mModel->data(mModel->index(
             0, 0), GlxFocusIndexRole).value<int> (), 0), GlxTimeRole)).value<
             QTime> ();
-    timestring = QString("Time: ");
+        
     if (timevalue.isNull() == FALSE)
         {
         OstTrace0( TRACE_NORMAL, GLXDETAILSVIEW_SETDATE, "GlxDetailsView::setTime is not NULL" );
-        timestring.append(timevalue.toString(timeFormat));
+        QString timeStringValue = timevalue.toString(timeFormat);
+        timestring = hbTrId(GLX_DETAILS_TIME).arg(timeStringValue);
         }
-    mTimeLabel->setPlainText(timestring);
+     mTimeLabel->setPlainText(timestring);
     }
 
 //--------------------------------------------------------------------------------------------------------------------------------------------
@@ -524,12 +540,10 @@
     int size = 0;
     size = (mModel->data(mModel->index(mModel->data(mModel->index(0, 0),
             GlxFocusIndexRole).value<int> (), 0), GlxSizeRole)).value<int> ();
-    QString sizelabel;
-    QString sizestring;
-    sizelabel = QString("Size  : ");
-    sizestring = sizeinStrings(size);
-    sizelabel.append(sizestring);
-    mSizeLabel->setPlainText(sizelabel);
+    
+    QString sizeString;
+    sizeString = sizeinStrings(size);
+    mSizeLabel->setPlainText(sizeString);
     
    }
 
@@ -545,11 +559,11 @@
         {
         if (variant.value<bool> ())
             {
-            mFavIcon->setIcon(HbIcon(GLXICON_ADD_TO_FAV));
+            mFavIcon->setItemIcon(mFavIconEnabled);
             }
         else
             {
-            mFavIcon->setIcon(HbIcon(GLXICON_REMOVE_FAV));
+            mFavIcon->setItemIcon(mFavIconDisabled);
             }
         }
     }
@@ -592,25 +606,38 @@
     if (size >= KBytesInGB)
         {
         int gbSize = size / KBytesInGB; // Size in GB
-        sizeString.setNum(gbSize);
-        sizeString.append("GB");
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_GB, gbSize);         
         }
     else if (size >= KBytesInMB)
         {
         int mbSize = size / KBytesInMB; // Size in MB
-        sizeString.setNum(mbSize);
-        sizeString.append("MB");
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_MB, mbSize);         
         }
     else if (size >= KBytesInKB)
         {
-        TInt kBsize = size / KBytesInKB; // bytes to kB
-        sizeString.setNum(kBsize);
-        sizeString.append("KB");
+        int kbSize = size / KBytesInKB; // Size in KB
+        sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_KB, kbSize);
         }
     else
         {
-        sizeString.setNum(size);
-        sizeString.append("Bytes");
+         sizeString = HbParameterLengthLimiter(GLX_DETAILS_SIZE_BYTES, size);
         }
     return sizeString;
     }
+
+//--------------------------------------------------------------------------------------------------------------------------------------------
+//getSubState
+//--------------------------------------------------------------------------------------------------------------------------------------------
+int GlxDetailsView::getSubState()
+  {
+    int substate = NO_DETAIL_S;
+
+    if (mModel) {
+      QVariant variant = mModel->data(mModel->index(0, 0), GlxSubStateRole);
+
+      if (variant.isValid() && variant.canConvert<int> ()) {
+           substate = variant.value<int> ();
+      }
+    } 
+    return substate;
+ }
--- a/ui/views/docloaders/src/glxviewdocloader.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/docloaders/src/glxviewdocloader.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -30,8 +30,9 @@
 #include "glxslideshowwidget.h"
 #include "glxslideshowview.h"
 #include "glxzoomwidget.h"
-#include "glxdetailsnamelabel.h"
-#include "glxdetailsdescriptionedit.h"
+
+#include "glxdetailstextedit.h"
+#include "glxdetailsicon.h"
 
 //----------------------------------------------------------------------------------------
 // createObject:creates the custom widget and views of fullscreen view
@@ -112,7 +113,7 @@
         {
         qDebug() << "GlxDetailsViewDocLoader::createObject:GLX_DETAILSVIEW_IMGNAME -->";
 
-        QObject *object = new GlxDetailsNameLabel();
+        QObject *object = new GlxDetailsTextEdit();
         object->setObjectName(name);
         return object;
         }
@@ -121,12 +122,21 @@
         {
         qDebug() << "GlxDetailsViewDocLoader::createObject:GLX_DETAILSVIEW_DESCRPTIONTEXT -->";
 
-        QObject *object = new GlxDetailsDescriptionEdit();
+        QObject *object = new GlxDetailsTextEdit();
         object->setObjectName(name);
         return object;
         }
     
-   
+    if (GLX_DETAILSVIEW_FAVICON == name)
+        {
+        qDebug() << "GlxDetailsViewDocLoader::createObject:ICON -->";
+
+        QObject *object = new GlxDetailsIcon();
+        object->setObjectName(name);
+        return object;
+        }
+    
+    
     return HbDocumentLoader::createObject(type, name);
     }
 
--- a/ui/views/fullscreenview/inc/glxcoverflow.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/fullscreenview/inc/glxcoverflow.h	Wed Aug 18 09:48:53 2010 +0300
@@ -44,7 +44,8 @@
 {
     TAP_EVENT, //send the signal when user tap on full screen
     PANNING_START_EVENT, //send the signal when panning of full screen start
-    EMPTY_ROW_EVENT //send the signal when model have no data
+    EMPTY_ROW_EVENT, //send the signal when model have no data
+    ZOOM_START_EVENT
 } GlxCoverFlowEvent;
 
 class GlxCoverFlow : public HbWidget
@@ -59,10 +60,20 @@
     void indexChanged (int index);
     void setUiOn(bool uiOn) { mUiOn = uiOn; }
     void partiallyClean();
-    void partiallyCreate(QAbstractItemModel *model, QSize itemSize);
+    void partiallyCreate(QAbstractItemModel *model, QSize itemSize, int posY = 0 );
 	void setCoverFlow();
     void ClearCoverFlow();
 	void setMultitouchFilter(QGraphicsItem* multitouchFilter);
+	
+	/*
+     * To get the focus index
+     */
+    int getFocusIndex( );
+
+    /*
+     * To get the full screen icon of the image
+     */
+    HbIcon getIcon( int index );
 		    
 public slots:
 	void zoomStarted(int index);
@@ -121,16 +132,6 @@
     void resetCoverFlow();
     int getSubState();
     void timerEvent(QTimerEvent *event);
-
-    /*
-     * To get the focus index
-     */
-    int getFocusIndex( );
-
-    /*
-     * To get the full screen icon of the image
-     */
-    HbIcon getIcon( int index );
     
     /*
      * To get the URI of the image
@@ -159,6 +160,7 @@
 	bool mZoomOn;
 	QGraphicsItem* mMultitouchFilter;
     int mTimerId;
+    bool mIsInit;
 };
 
 #endif /* GLXCOVERFLOW_H_ */
--- a/ui/views/fullscreenview/inc/glxfullscreenview.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/fullscreenview/inc/glxfullscreenview.h	Wed Aug 18 09:48:53 2010 +0300
@@ -26,6 +26,9 @@
 //User Defined Includes
 #include <glxview.h>
 #include <glxcoverflow.h>
+
+#define NBR_ANIM_ITEM 2
+
 //Orbit/Qt forward declartion
 class QTimer;
 class HbAction;
@@ -40,83 +43,261 @@
 class GlxZoomWidget;
 class GlxTvOutWrapper;
 
+/**
+ * Class Description
+ * This is full screen view class to show the image in fullscreen, zoom the image and
+ * browse the image through coverflow and imagstrip
+ */
 class GlxFullScreenView : public GlxView
 {
     Q_OBJECT
 public :
+    /**
+     * Constructor
+     * @param - HbMainWindow object
+     * @param - fullscreen docloader object
+     */
     GlxFullScreenView(HbMainWindow *window,HbDocumentLoader *DocLoader);
+    
+    /**
+     * Destructor
+     */
     ~GlxFullScreenView();
+    
+    /**
+     * activate()
+     * ///From GlxView
+     */
     void activate() ;
+    
+    /**
+     * deActivate()
+     * ///From GlxView
+     */
     void deActivate();
 
-    /*
-     * Initialize the coverflow and partially creates the coverflow with one image
+    /**
+     * initializeView() - Initialize the coverflow and partially creates the coverflow with one image
      * to make the widget light weight in order to make transition smooth
      * and also loads the widgets. 
+     * @param - pointer of model to retreive the view releted data
+     * @parm - previous view pointer to get the staus of fullscreen mode of the view
      */
-    void initializeView(QAbstractItemModel *model);
+    void initializeView( QAbstractItemModel *model, GlxView *preView );
     
-   /*
-     * resets the view, with just one icon being present in the widget
-     * to make the widget light weight in order to make
-     * transition smooth
+    /**
+     * resetView() - resets the view, with just one icon being present in the widget
+     * to make the widget light weight in order to make transition smooth
      */
     void resetView();
+    
+    /**
+     * setmodel() 
+     * ///from GlxView
+     */
     void setModel(QAbstractItemModel *model);
+    
+    /**
+     * setModelContext() - to set the context mode of the model.
+     */
     void setModelContext ( );
+    
+    /**
+     * cleanUp() - To clean the custom widgets.
+     */
     void cleanUp();
+    
+    /**
+     * getAnimationItem() - To return the animation object to play the view transition animation.
+     * @return pointer of widget on which animation are suppose to play.
+     */
     QGraphicsItem * getAnimationItem(GlxEffect transitionEffect);
     
     
 public slots:
-    void orientationChanged(Qt::Orientation);
+    /**
+     * orientationChanged() - Slot to upadte the layout when orientation of device has changed
+     * @param new orientation
+     */
+    void orientationChanged( Qt::Orientation );
+    
+    /**
+     * activateUI() - To show the ui content like status bar, toolbar, and imzge strip.
+     */
     void activateUI();
+    
+    /**
+     * hideUi() - To hide the ui content like status bar, toolbar, and imzge strip.
+     */
     void hideUi();
+    
+    /**
+     * changeSelectedIndex() - Call back when index is chnaged due to browsing of images in coverflow
+     * It will update the selected index in model and notify other widget about index changed.
+     * @param - index of new selected item.
+     */
     void changeSelectedIndex(const QModelIndex &index);
+    
+    /**
+     * indexChanged() - call back when index is changed from the image strip.
+     * It will update the selected index in model and notify other widget about index changed.
+     * @param - index of new selected item.  
+     */
     void indexChanged(const QModelIndex &index );
+    
+    /**
+     * scrollingStarted() - Call back function to get notification of when scrolling of
+     * image strip is start.
+     */
     void scrollingStarted();
+    
+    /**
+     * scrollingEnded() - Call back function to get notification of when scrolling of
+     * image strip is stop.
+     */
     void scrollingEnded();
+
+    /**
+     * pressed() - Call back function to get notification of user pressed mouse key or touch the fingure.
+     * @param - index of selected item.
+     */
     void pressed(const QModelIndex &index );
+    
+    /**
+     * released() - Call back function to get notification of user released mouse key or released the fingure.
+     * @param - index of new selected item.
+     */
     void released(const QModelIndex &index );
-	void setVisvalWindowIndex();
+
+    /**
+     * setVisvalWindowIndex() - Set the viisual window index of medialist.
+     */
+    void setVisvalWindowIndex();
+    
+    /**
+     * coverFlowEventHandle() -  Handle the event generated by cover flow.
+     * @param - cover flow event type
+     */
     void coverFlowEventHandle( GlxCoverFlowEvent e);
+    
+    /**
+     * effectFinished() -  call back when ui on\off effect has finished.
+     * @param - staus of effect
+     */
     void effectFinished( const HbEffect::EffectStatus  );
+    
+    /**
+     * imageSelectionEffectFinished() -  call back when ui image strip selection effect has been finished.
+     * @param - staus of effect
+     */
     void imageSelectionEffectFinished( const HbEffect::EffectStatus  );
+
+    /**
+     * orientChangeAnimFinished() -  call back when custom orientation change effect has been finished.
+     * @param - staus of effect
+     */
+    void orientChangeAnimFinished( const HbEffect::EffectStatus );
+    
+    /**
+     * effectFinished -  call back when ui on\off effect has finished
+     * @param - staus of effect
+     */
     void handleToolBarAction();
+    
+    /**
+     * In case of image fetcher handle select command and emit selected index and model 
+     */
+    void handleFSSelect();
 
 protected :
+    /**
+     * eventFilter - To handle the application foregrond and background event
+     * ///From HbView
+     */
     bool eventFilter(QObject *obj, QEvent *ev);
-private:
     
-    /*
-     * The widgets are retrieved from the docml
+private:    
+    /**
+     * loadWidgets() - The widgets are retrieved from the docml
      */
     void loadWidgets();
 
-    /*
-     * Loads the corresponding sections in the docml while the orentation is changed.
+    /**
+     * loadViewSection() - Loads the corresponding sections in the docml while the orentation is changed.
      */
     void loadViewSection();
     
+    /**
+     * setLayout() - To set the widgets laout.
+     */
     void setLayout();
+    
+    /**
+     * addConnection() - Add the call back of the widgets.
+     */
     void addConnection();
-    void addImageStripConnection();
+    
+    /**
+     * removeConnection() - Remove the call back of widgets.
+     */
     void removeConnection();
-    void createUiControl();
+    
+    /**
+     * setImageStripModel() - set the image strip model.
+     */
     void setImageStripModel();
     
+    /**
+     * loadFullScreenToolBar() - load the fullscreen tool bar from the docml.
+     */
     void loadFullScreenToolBar();
+    
+    /**
+     * addToolBarAction() - Crete and add the toolbar acton in toolbar.
+     * @param - coomand id to recognise the action.
+     * @param - toolbar action icon.
+     * @param - action name it is used for automation of test cases. 
+     */
     void addToolBarAction( int commandId, const QString &iconName, const QString &name) ;
+    
+    /**
+     * initAnimationItem() - Initialise the custom animation item.
+     */
+    void initAnimationItem();
+    
+    /**
+     * imageSelectionAnimation() - To trigger the image setection animtaion form the imge strip.
+     */
     void imageSelectionAnimation( const QModelIndex &index );
+    
+    /**
+     * cancelSelectionAnimation()- To cancel the image selection animation.
+     */
+    void cancelSelectionAnimation( );
+    
+    /**
+     * playOrientChangeAnim() - To trigger the custom orientation change animation.
+     */
+    void playOrientChangeAnim();
+    
+    /**
+     * get the substate of fullscreen state.
+     */
     int getSubState();
+    
+    /**
+     * setHdmiModel() - set the image strip model.
+     * @param - model
+     */
     void setHdmiModel( QAbstractItemModel *model );
+    
 private:
     QAbstractItemModel  *mModel;   //no ownership
     HbMainWindow        *mWindow;  //no ownership
     GlxCoverFlow        *mCoverFlow;
     HbGridView          *mImageStrip;
     QTimer              *mUiOffTimer;  //use for ui off after 30 sec
-    HbIconItem          *mIconItem ;   //temporary item for play the image strip select animation
+    HbIconItem          *mIconItems[ NBR_ANIM_ITEM ] ;   //temporary item for play the image strip select animation
     GlxTvOutWrapper     *mTvOutWrapper;
     HbToolBar           *mFullScreenToolBar; //Fullscreen Toolbar
     //for Zoom
--- a/ui/views/fullscreenview/src/glxcoverflow.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/fullscreenview/src/glxcoverflow.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -24,6 +24,7 @@
 #include <QGesture>
 #include <hbpangesture.h>
 #include <hbiconanimator.h>
+#include <hbinstance.h>
 
 //User Includes
 #include <glxmodelparm.h>
@@ -34,25 +35,25 @@
 #define GLX_BOUNCEBACK_SPEED 16
 #define GLX_BOUNCEBACK_DELTA 8
 
-GlxCoverFlow::GlxCoverFlow(QGraphicsItem *parent ) 
-     : HbWidget(parent), 
-       mSelItemIndex (0),
-       mRows(0),
-       mSelIndex (0),
-       mStripLen (0),
-       mCurrentPos(0),
-       mItemSize (QSize(0,0)),
-       mModel ( NULL),
-       mMoveDir(NO_MOVE),
+GlxCoverFlow::GlxCoverFlow( QGraphicsItem *parent ) 
+     : HbWidget( parent ), 
+       mSelItemIndex ( 0 ),
+       mRows( 0 ),
+       mSelIndex ( 0 ),
+       mStripLen ( 0 ),
+       mCurrentPos( 0 ),
+       mItemSize ( QSize( 0, 0 ) ),
+       mModel ( NULL ),
+       mMoveDir( NO_MOVE ),
        mSpeed ( GLX_COVERFLOW_SPEED ),
-	   mZoomOn(false),
-	   mMultitouchFilter(NULL),
-       mTimerId(0)
+	   mZoomOn( false ),
+	   mMultitouchFilter( NULL ),
+       mTimerId( 0 ),
+       mIsInit( false )
 {
-//TO:DO through exception
-   qDebug("GlxCoverFlow::GlxCoverFlow");
-   grabGesture(Qt::PanGesture);
-   grabGesture(Qt::TapGesture);
+   qDebug( "GlxCoverFlow::GlxCoverFlow" );
+   grabGesture( Qt::PanGesture );
+   grabGesture( Qt::TapGesture );
    connect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ), Qt::QueuedConnection );
    connect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ), Qt::QueuedConnection );   
 }
@@ -61,6 +62,7 @@
 {
 	mMultitouchFilter = mtFilter;
 }
+
 void GlxCoverFlow::setCoverFlow()
 {
     qDebug("GlxCoverFlow::setCoverFlow");
@@ -74,7 +76,8 @@
         mIconItem[i]->setObjectName( QString( "Cover%1" ).arg( i ) );
     }
     
-    mUiOn = FALSE;
+    mIsInit = true;
+    mUiOn = false;
     mBounceBackDeltaX = GLX_BOUNCEBACK_DELTA;
 }
 
@@ -119,7 +122,7 @@
             else {
                 killTimer(mTimerId);
                 mTimerId = 0;
-                emit doubleTapEventReceived(gesture->position());
+                emit doubleTapEventReceived(hbInstance->allMainWindows().first()->mapToScene(gesture->position().toPoint()));
             }
             event->accept(gesture);
         }
@@ -160,10 +163,11 @@
 void GlxCoverFlow::panGesture ( const QPointF & delta )  
 {
     qDebug("GlxCoverFlow::panGesture deltaX= %d", (int)delta.x());  
-    if(getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S ) {
+   
+    if( !mIsInit || getSubState() == IMAGEVIEWER_S || getSubState() == FETCHER_S ) {
         return;
     }
-    move((int) delta.x());    
+    move( ( int ) delta.x() );    
     if( delta.x() > 0 ) {     
         mMoveDir = RIGHT_MOVE;
     }
@@ -238,8 +242,11 @@
     int width = mItemSize.width() ;
     
     qDebug("GlxCoverFlow::autoLeftMove current pos = %d mBounceBackDeltaX x = %d", mCurrentPos, mBounceBackDeltaX);
+    if ( !mIsInit ) {
+        return;
+    }
     
-    if ( mSelIndex == ( mRows -1 )) {
+    if ( mSelIndex == ( mRows -1 ) ) {
         mSpeed = GLX_BOUNCEBACK_SPEED;
     }
     //for bounce back effect for last image ( it will do the back)
@@ -288,9 +295,12 @@
 void GlxCoverFlow::autoRightMove()
 {
     qDebug("GlxCoverFlow::autoRightMove ");
+    if ( !mIsInit ) {
+        return;
+    }
     int width = mItemSize.width()  ;
     int diffX = mStripLen - mCurrentPos ;
-    
+ 
     //slow the speed for bounce back effect
     if ( mSelIndex == 0 ) {
         mSpeed = GLX_BOUNCEBACK_SPEED;
@@ -400,6 +410,11 @@
 void GlxCoverFlow::loadIconItems()
 {  
     qDebug("GlxCoverFlow::loadIconItems ");
+    
+    if ( !mIsInit ) {
+        return ;
+    }
+
     int index = 0;
     stopAnimation();
     mSelIndex = getFocusIndex();
@@ -429,6 +444,7 @@
 void GlxCoverFlow::stopAnimation()
 {
     mIconItem[ mSelItemIndex ]->animator().stopAnimation();
+    mIconItem[ mSelItemIndex ]->setIcon( getIcon( mSelIndex ) );
 }
 
 void GlxCoverFlow::updateIconItem (qint16 selIndex, qint16 selItemIndex, qint16 posX)
@@ -478,6 +494,7 @@
 {
     qDebug("GlxCoverFlow::partiallyClean Enter");
     clearCurrentModel(); //during the animation data update will not cause the crash
+    mIsInit = false;
     for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) {
         if ( mSelItemIndex != i){
             delete mIconItem[i] ;
@@ -486,11 +503,11 @@
     }      
 }
 
-void GlxCoverFlow::partiallyCreate(QAbstractItemModel *model, QSize itemSize)
+void GlxCoverFlow::partiallyCreate( QAbstractItemModel *model, QSize itemSize, int posY )
 {
-    qDebug("GlxCoverFlow::resetpartiallyCreated");
+    qDebug("GlxCoverFlow::resetpartiallyCreated poxY %d", posY );
     mIconItem[2]->setSize ( itemSize );
-    mIconItem[2]->setPos ( QPointF ( 0, 0) ); 
+    mIconItem[2]->setPos ( QPointF ( 0, posY ) ); 
     mModel = model ; 
     mSelIndex = getFocusIndex();
     mIconItem[2]->setIcon( getIcon( mSelIndex ) ) ;
@@ -508,6 +525,7 @@
 void GlxCoverFlow::ClearCoverFlow()
 {
     qDebug("GlxCoverFlow::ClearCoverFlow  " );
+    mIsInit = false;
     clearCurrentModel();    
     for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) {
         if(mIconItem[i] != NULL ) {
@@ -530,6 +548,7 @@
 void GlxCoverFlow::zoomStarted(int index)
 {
     Q_UNUSED(index)
+    emit coverFlowEvent( ZOOM_START_EVENT );
     stopAnimation();
 	mZoomOn = true;	
 }
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -30,7 +30,7 @@
 #include <hbabstractviewitem.h>
 #include <hbiconitem.h>
 #include <QCoreApplication>
-
+#include <xqserviceutil.h>
 //User Includes
 #include "glxlog.h"
 #include "glxtracer.h"
@@ -44,7 +44,7 @@
 #include "glxfullscreenview.h" 
 #include "glxcommandhandlers.hrh"
 #include "glxzoomwidget.h"
-
+#include "glxlocalisationstrings.h"
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
 #include "glxfullscreenviewTraces.h"
@@ -54,29 +54,34 @@
 const int KUiOffTime = 3000;
 
 GlxFullScreenView::GlxFullScreenView(HbMainWindow *window,HbDocumentLoader *DocLoader) : 
-    GlxView ( GLX_FULLSCREENVIEW_ID), 
-    mModel(NULL), 
-    mWindow( window), 
-    mCoverFlow(NULL) , 
-    mImageStrip (NULL), 
-    mUiOffTimer(NULL),
-    mIconItem(NULL),
-    mTvOutWrapper(NULL),
-    mFullScreenToolBar(NULL),
-	mZoomWidget(NULL)
+    GlxView ( GLX_FULLSCREENVIEW_ID ), 
+    mModel( NULL ), 
+    mWindow( window ), 
+    mCoverFlow( NULL ) , 
+    mImageStrip( NULL ), 
+    mUiOffTimer( NULL ),
+    mTvOutWrapper( NULL ),
+    mFullScreenToolBar( NULL ),
+	mZoomWidget( NULL ),
+	mUiOff ( false)
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
-    
+    mIconItems[0] = NULL;
+    mIconItems[1] = NULL;
     mDocLoader = DocLoader;
     setContentFullScreen( true );
-    HbEffect::add( QString("HbGridView"), QString(":/data/transitionup.fxml"), QString( "TapShow" ));
-    HbEffect::add( QString("HbGridView"), QString(":/data/transitiondown.fxml"), QString( "TapHide" ));
-    HbEffect::add( QString("HbGridViewItem"), QString(":/data/gridtofullscreenhide.fxml"), QString( "Select" ));
+    
+    HbEffect::add( QString( "HbGridView" ), QString( ":/data/transitionup.fxml" ), QString( "TapShow" ) );
+    HbEffect::add( QString( "HbGridView" ), QString( ":/data/transitiondown.fxml" ), QString( "TapHide" ) );
+    HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) );
+    HbEffect::add( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) );
+    HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) );
+    HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) );
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
 }
 
-void GlxFullScreenView::initializeView(QAbstractItemModel *model)
+void GlxFullScreenView::initializeView( QAbstractItemModel *model, GlxView *preView )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INITIALIZEVIEW_ENTRY );
     
@@ -87,9 +92,23 @@
     setHdmiModel(model);
     loadWidgets();
 
-    // Initialize the coverflow and partially creates the coverflow with one image
-    // to make the widget light weight in order to make transition smooth 
-    mCoverFlow->partiallyCreate( model, screenSize() );
+    /* 
+     * Initialize the coverflow and partially creates the coverflow with one image
+     * to make the widget light weight in order to make transition smooth 
+     */
+    /* 
+     * Grid view is not in full screen mode so this view have some flicker after transtion is finshed 
+     * and some cases in grid view status bar is visible and some cases it is not
+     * so adjust the initial postion of fullscreen base on status bar visiblity.
+     */
+    if ( preView->compare( GLX_GRIDVIEW_ID ) && preView->isItemVisible ( Hb::StatusBarItem ) ) {
+        qreal chromeHeight = 0;
+        style()->parameter( "hb-param-widget-chrome-height", chromeHeight );
+        mCoverFlow->partiallyCreate( model, screenSize(), -chromeHeight );
+    }
+    else {
+        mCoverFlow->partiallyCreate( model, screenSize() );
+    }
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_INITIALIZEVIEW_EXIT );
 }
@@ -113,6 +132,7 @@
     mImageStrip->hide();      
 	mImageStrip->setLayoutName( QString( "ImageStrip" ) ); // To distinguish in CSS file
 	mImageStrip->setEnabledAnimations( HbAbstractItemView::None );
+	mImageStrip->setHorizontalScrollBarPolicy( HbScrollArea::ScrollBarAlwaysOff );
 	
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT );
 }
@@ -166,23 +186,47 @@
     }
     //Loads the widgets corresponding to the orientation.
     loadViewSection();
-    
-    setStatusBarVisible(FALSE);
-    setTitleBarVisible(FALSE);
+	
+    HbView::HbViewFlags flags( HbView::ViewTitleBarTransparent | HbView::ViewStatusBarTransparent);
+    setViewFlags(flags);
+	
+	// In case of fetcher don't hide status pane and title bar
+    if(!(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))) {
+        setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
+		mUiOff = true;
+	}
+    else
+        {
+        HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT);
+        selectAction->setObjectName( "FS Select" );
+        
+        connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect()));
+        HbToolBar* toolBar = new HbToolBar();
+        toolBar->setOrientation( Qt::Horizontal );
+        toolBar->setVisible(true);
+        toolBar->addAction(selectAction);
+        setToolBar(toolBar);
+        }
         
     mUiOffTimer = new QTimer();
-    mUiOff = true;
     mUiOffTimer->stop();        
     mCoverFlow->setUiOn(FALSE);    
     addConnection(); 
     setLayout();
      
-    if (!mTvOutWrapper){
+    if (!mTvOutWrapper) {
         mTvOutWrapper = new GlxTvOutWrapper();
     }
+    
+    mWindow->setAutomaticOrientationEffectEnabled( false );
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATE_EXIT );
 }
 
+void GlxFullScreenView::handleFSSelect()
+{
+    emit actionTriggered( EGlxCmdFetcherSelect );
+}
+
 void GlxFullScreenView::loadViewSection()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY );    
@@ -204,6 +248,7 @@
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_RESETVIEW_ENTRY );    
 
+    cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view
     //Clean up the rest of the resources allocated
     cleanUp(); 
         
@@ -217,6 +262,7 @@
 { 
     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);
@@ -227,7 +273,7 @@
     //the coverflow is initialised to null 
     //to just reset to the initial state
     mCoverFlow = NULL;
-    
+    mWindow->setAutomaticOrientationEffectEnabled( true );
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT );
 }
 
@@ -246,6 +292,7 @@
 
     if(mFullScreenToolBar) {
        mFullScreenToolBar->clearActions();
+       mFullScreenToolBar->hide();
        mFullScreenToolBar = NULL;
     }
     
@@ -285,11 +332,10 @@
     mCoverFlow->setModel(mModel);
     setImageStripModel();
     if(getSubState() == IMAGEVIEWER_S) {
-        setTitle("Image Viewer");
+        setTitle(GLX_IMAGE_VIEWER);
     }
-	else if(getSubState() == FETCHER_S){
-		setStatusBarVisible(TRUE);
-        setTitleBarVisible(TRUE);
+	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 );
 }
@@ -297,7 +343,7 @@
 void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model)
 {
     if (mTvOutWrapper) {
-        mTvOutWrapper->setModel(model); 
+        mTvOutWrapper->setModel(model, screenSize()); 
         mTvOutWrapper->setImagetoHDMI(); // for the first image on screen
     }    
 }
@@ -332,6 +378,7 @@
     setModelContext();
     loadViewSection();
     setLayout();
+    playOrientChangeAnim();
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT );
 }
@@ -340,7 +387,7 @@
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY );
     
-    if ( mUiOff && getSubState() != FETCHER_S){      
+    if ( mUiOff && getSubState() != FETCHER_S ){      
         if( !mFullScreenToolBar ) {
             loadFullScreenToolBar();
         }
@@ -351,18 +398,18 @@
             mImageStrip->setCurrentIndex ( mModel->index( variant.value<int>(), 0) );    
             mImageStrip->scrollTo( mModel->index( variant.value<int>(), 0), HbGridView::PositionAtTop ); 
         }
-        
-        mFullScreenToolBar->show();
-		setStatusBarVisible(TRUE);
-        setTitleBarVisible(TRUE);
+
+        setItemVisible( Hb::AllItems, TRUE );
+        setViewFlags( viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden );
        
         if ( mImageStrip && getSubState() != IMAGEVIEWER_S) {
             mImageStrip->show(); 
             HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapShow"), this, "effectFinished" );
         }
         else if( getSubState() == IMAGEVIEWER_S){
-            setTitle("Image Viewer");
+            setTitle(GLX_IMAGE_VIEWER);
         }
+        mFullScreenToolBar->show();
     }
     else {
         hideUi();
@@ -384,11 +431,10 @@
     
     mUiOff = TRUE;
 	if ( getSubState() != FETCHER_S ) {
-		setStatusBarVisible(FALSE);
-        setTitleBarVisible(FALSE);
+	    setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
 	}
-    if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S )) {
-        HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" );
+    if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S ) ) {
+        HbEffect::start( mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" );
     }
 
     if(mFullScreenToolBar) {
@@ -419,6 +465,7 @@
     mModel->setData( index, index.row(), GlxFocusIndexRole );
     mModel->setData( index, index.row(), GlxVisualWindowIndex );
 	mZoomWidget->indexChanged(index.row());  
+
     if (mTvOutWrapper){
         // for the image changed on swipe
         mTvOutWrapper->setImagetoHDMI();
@@ -435,16 +482,17 @@
        OstTraceFunctionExit0( GLXFULLSCREENVIEW_INDEXCHANGED_EXIT );
        return;
     }         
-    mModel->setData( index, index.row(), GlxFocusIndexRole );
-	mZoomWidget->indexChanged(index.row());
-    mCoverFlow->indexChanged(index.row());
-    mImageStrip->scrollTo(index, HbGridView::EnsureVisible );
+    
     if (mTvOutWrapper){
-    // for the indexchnaged through filmstrip
-    mTvOutWrapper->setImagetoHDMI();
+        // for the indexchnaged through filmstrip
+        mTvOutWrapper->setImagetoHDMI();
     }
     //disable the animation for the time being
-    //imageSelectionAnimation( index );
+    imageSelectionAnimation( index );
+    
+    mModel->setData( index, index.row(), GlxFocusIndexRole );
+    mZoomWidget->indexChanged(index.row());
+    mZoomWidget->setVisible( false );
     
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_INDEXCHANGED_EXIT );
 }
@@ -531,6 +579,18 @@
         hideUi();
         break ;
         
+    //hide the ui component without animation  
+    case ZOOM_START_EVENT : {
+        HbEffect::EffectStatus e;
+        mUiOff = TRUE;
+        if( mFullScreenToolBar ) {
+           mFullScreenToolBar->hide();
+        }
+        setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
+        effectFinished( e );
+    }
+        break;
+        
     case EMPTY_ROW_EVENT :
         emit actionTriggered( EGlxCmdEmptyData );
         break ;
@@ -554,6 +614,7 @@
         mUiOffTimer->stop();        
         mCoverFlow->setUiOn(FALSE);
         mImageStrip->hide();
+        setItemVisible( Hb::AllItems, FALSE );
     }
     else {
         mUiOffTimer->start(KUiOffTime);
@@ -567,17 +628,30 @@
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_IMAGESELECTIONEFFECTFINISHED_ENTRY );
     
-    mIconItem->resetTransform();
-    mIconItem->setVisible( false );
+    for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) { 
+        mIconItems[ i ]->resetTransform();
+        mIconItems[ i ]->setVisible( false );
+    }
     
     QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
     if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
         mCoverFlow->indexChanged( variant.value<int>() ) ;         
     }
+    mCoverFlow->setVisible( true );
+    mZoomWidget->setVisible( true );
 
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONEFFECTFINISHED_EXIT );
 }
 
+void GlxFullScreenView::orientChangeAnimFinished( const HbEffect::EffectStatus status )
+{
+    qDebug( "GlxFullScreenView::LsOrientChangeAnimFinished reason %d ", status.reason );
+    mIconItems[ 0 ]->resetTransform();   
+    mIconItems[ 0 ]->setVisible( false );
+    mCoverFlow->setVisible( true );
+    mZoomWidget->setVisible( true );
+}
+
 void GlxFullScreenView::setLayout()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY );
@@ -596,28 +670,28 @@
     
     if ( mCoverFlow ) {    
         connect( mCoverFlow, SIGNAL( coverFlowEvent( GlxCoverFlowEvent ) ), this, SLOT( coverFlowEventHandle( GlxCoverFlowEvent ) ) );
-        connect( mCoverFlow, SIGNAL(changeSelectedIndex(const QModelIndex &)), this, SLOT( changeSelectedIndex( const QModelIndex & )));
+        connect( mCoverFlow, SIGNAL( changeSelectedIndex( const QModelIndex & ) ), this, SLOT( changeSelectedIndex( const QModelIndex & ) ) );
     }
 
     if ( mImageStrip ) {
-        connect(mImageStrip, SIGNAL( activated(const QModelIndex &) ), this, SLOT( indexChanged(const QModelIndex &) ));
-        connect(mImageStrip, SIGNAL( scrollingStarted()),  this, SLOT( scrollingStarted()));
-        connect(mImageStrip, SIGNAL( scrollingEnded()),    this, SLOT( scrollingEnded()));
-        connect(mImageStrip, SIGNAL( pressed(const QModelIndex &) ),      this, SLOT( pressed(const QModelIndex &) ));
-        connect(mImageStrip, SIGNAL( released(const QModelIndex &) ),     this, SLOT( released(const QModelIndex &) ));
+        connect( mImageStrip, SIGNAL( activated(const QModelIndex &) ), this, SLOT( indexChanged(const QModelIndex &) ) );
+        connect( mImageStrip, SIGNAL( scrollingStarted()), this, SLOT( scrollingStarted() ) );
+        connect( mImageStrip, SIGNAL( scrollingEnded()), this, SLOT( scrollingEnded() ) );
+        connect( mImageStrip, SIGNAL( pressed( const QModelIndex & ) ), this, SLOT( pressed( const QModelIndex & ) ) );
+        connect( mImageStrip, SIGNAL( released( const QModelIndex & ) ),     this, SLOT( released( const QModelIndex & ) ) );
     }
 
     if ( mUiOffTimer ) {
-        connect(mUiOffTimer, SIGNAL(timeout()), this, SLOT(hideUi()));
+        connect( mUiOffTimer, SIGNAL( timeout() ), this, SLOT( hideUi() ) );
     }
     
-    if(mCoverFlow && mZoomWidget) {
-		connect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) );
-		connect(mZoomWidget,SIGNAL( zoomWidgetMovedBackground(int) ), mCoverFlow, SLOT( zoomFinished(int) ) );
-        connect(mCoverFlow,SIGNAL( doubleTapEventReceived(QPointF) ), mZoomWidget, SLOT( animateZoomIn(QPointF) ) );
+    if( mCoverFlow && mZoomWidget ) {
+		connect( mZoomWidget, SIGNAL( pinchGestureReceived( int ) ), mCoverFlow, SLOT( zoomStarted( int ) ) );
+		connect( mZoomWidget, SIGNAL( zoomWidgetMovedBackground( int ) ), mCoverFlow, SLOT( zoomFinished( int ) ) );
+        connect( mCoverFlow, SIGNAL( doubleTapEventReceived( QPointF ) ), mZoomWidget, SLOT( animateZoomIn( QPointF ) ) );
 	}
 
-    connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
+    connect( mWindow, SIGNAL( orientationChanged( Qt::Orientation ) ), this, SLOT( orientationChanged( Qt::Orientation ) ) );
 
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ADDCONNECTION_EXIT );
 }
@@ -675,8 +749,9 @@
     OstTraceFunctionEntry0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
     
 	cleanUp();
-	
-	delete mIconItem ;
+	for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
+	    delete mIconItems[ i ] ;
+	}
     delete mImageStrip;
     delete mFullScreenToolBar;
     delete mCoverFlow;
@@ -689,36 +764,73 @@
     
     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/gridtofullscreenhide.fxml"), QString( "Select" ));
+    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomin.fxml" ), QString( "SelectHide" ) );
+    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/zoomout.fxml" ), QString( "SelectShow" ) );
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) );
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) );
+        
+    OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
+}
 
-    OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
+void GlxFullScreenView::initAnimationItem()
+{
+    if( mIconItems[0] == NULL ) {
+        for( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
+            mIconItems[ i ] = new HbIconItem( mImageStrip->parentItem() );
+            mIconItems[ i ]->setBrush( QBrush( Qt::black ) );
+            mIconItems[ i ]->setZValue( mImageStrip->zValue() - 2 );
+            mIconItems[ i ]->setPos( 0, 0 );
+            mIconItems[ i ]->setAlignment( Qt::AlignCenter );
+        }
+    }
 }
 
 void GlxFullScreenView::imageSelectionAnimation(const QModelIndex &index)
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_ENTRY );
-
-    if ( mIconItem == NULL ) {
-        mIconItem = new HbIconItem( mCoverFlow );
-        mIconItem->setBrush( QBrush( Qt::black ) );
-        mIconItem->setZValue( mCoverFlow->zValue() );
+    
+    initAnimationItem();
+    for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
+        mIconItems[ i ]->setVisible( true );
+        mIconItems[ i ]->setSize( screenSize() );
     }
     
-    HbAbstractViewItem *mItem = mImageStrip->itemByIndex( index );    
-    mIconItem->setSize( mItem->size() );    
-    mIconItem->setPos( mItem->sceneTransform().map( QPoint(0,0)).x() , screenSize().height() - 2 * mItem->size().height() ); 
-    mIconItem->setVisible( true );
+    mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) );    
+    mIconItems[ 1 ]->setIcon( mCoverFlow->getIcon( index.row() ) );   
+    mCoverFlow->setVisible( false );
+    mZoomWidget->setVisible( false );
     
-    QVariant variant = mModel->data( index, Qt::DecorationRole );
-    if ( variant.isValid() &&  variant.canConvert<HbIcon> () ) {
-        mIconItem->setIcon ( variant.value<HbIcon>() ) ; 
+    HbEffect::start( mIconItems[ 0 ], QString( "HbGridViewItem" ), QString( "SelectHide" ) );
+    HbEffect::start( mIconItems[ 1 ], QString( "HbGridViewItem" ), QString( "SelectShow" ), this, "imageSelectionEffectFinished" );
+
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_EXIT );
+}
+
+void GlxFullScreenView::cancelSelectionAnimation()
+{
+    if ( mIconItems[0] && HbEffect::effectRunning( mIconItems[1], QString( "SelectShow" ) ) ) {
+        HbEffect::cancel( mIconItems[0], QString( "SelectHide" ), false, false, true );
+        HbEffect::cancel( mIconItems[1], QString( "SelectShow" ), false, true, true );
+    }
+}
+
+void GlxFullScreenView::playOrientChangeAnim()
+{
+    qDebug("GlxFullScreenView::playOrientChangeAnim()");
+    initAnimationItem();
+    mIconItems[ 0 ]->setOpacity( 1 );
+    mIconItems[ 0 ]->setSize( screenSize() );
+    mIconItems[ 0 ]->setVisible( true );
+    mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) );
+    
+    mCoverFlow->setVisible( false );
+    mZoomWidget->setVisible( false );
+    if ( mWindow->orientation() == Qt::Horizontal ) {
+        HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSLS" ), this, "orientChangeAnimFinished" );
     }
     else {
-        mIconItem->setIcon( HbIcon() );
-    }    
-    HbEffect::start( mIconItem, QString("HbGridViewItem"), QString("Select"), this, "imageSelectionEffectFinished" ); 
-
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_IMAGESELECTIONANIMATION_EXIT );
+        HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "orientChangeAnimFinished" );
+    }
 }
 	
 void GlxFullScreenView::handleToolBarAction()
@@ -752,9 +864,15 @@
         GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi");
         mTvOutWrapper->setToNativeMode();    
     }
-    if ( ev->type() ==  QEvent::ApplicationDeactivate && mTvOutWrapper) {
-        GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi");
-        mTvOutWrapper->setToCloningMode();    
+    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/inc/glxgridview.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/gridview/inc/glxgridview.h	Wed Aug 18 09:48:53 2010 +0300
@@ -26,12 +26,15 @@
 //Qt/Orbit forward declarations
 class HbMainWindow;
 class QAbstractItemModel;
-class HgWidget;
+class HgGrid;
 class GlxModelWrapper;
 class HbPushButton;
 class HbIconItem;
 class HbCheckBox;
 class HbLabel;
+class GlxSettingInterface;
+class HbGroupBox;
+class QGraphicsLinearLayout;
 
 class GlxGridView : public GlxView
 {
@@ -42,7 +45,7 @@
     ~GlxGridView();
     void activate() ;
     void deActivate();
-    void initializeView(QAbstractItemModel *model);
+    void initializeView( QAbstractItemModel *model, GlxView *preView );
     void setModel(QAbstractItemModel *model);
     void addToolBar( HbToolBar *toolBar );
     void enableMarking() ;
@@ -86,22 +89,28 @@
     void showHbItems();
     int getSubState();
     void showNoImageString();
+    
+    //It is used to hide and show the toolbar
+    //In album grid it is not required to show the tool bar
+    void updateToolBar();
 
 	HbMainWindow        *mWindow;          // no ownership
 	QAbstractItemModel  *mModel ;
-	HgWidget            *mWidget;          // HG Grid Widget
+	HgGrid              *mWidget;          // HG Grid Widget
 	QItemSelectionModel *mSelectionModel;  // Selected items model
     GlxModelWrapper     *mModelWrapper;    // Temp Model Wrapper, so That Role Change not a problem
-    HbPushButton        *mUiOnButton;
-    HbPushButton        *mCameraButton;    // Camera Button, when item count is zero
+    HbPushButton        *mUiOnButton;    
     bool                 mScrolling;
     HbIconItem          *mIconItem;
     HbCheckBox          *mMarkCheckBox;    // Mark All checkbox 
-    HbLabel             *mCountItem;       // Item count of the grid
-    HbLabel             *mMainLabel;       
-    HbLabel             *mCountLabel;      // Marked item count
+    HbGroupBox          *mTotalImagesCount;       // Item count of the grid
+    HbGroupBox          *mMarkSelectHeading;    
+    HbLabel             *mMarkCountLabel;      // Marked item count
     HbLabel             *mZeroItemLabel;   // zero itemcount
-    HbLabel             *mAlbumName;
+    HbGroupBox          *mAlbumNameHeading;
+    QGraphicsLinearLayout *mMarkContainer;
+    GlxSettingInterface *mSettings;    
+    HbWidget *mMarkingWidget;
 };
 
 #endif /* GLXGRIDVIEW_H_ */
--- a/ui/views/gridview/src/glxgridview.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/gridview/src/glxgridview.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -30,6 +30,9 @@
 #include <hblabel.h>
 #include <QString>
 #include <hbframeitem.h>
+#include <hbgroupbox.h>
+#include <hbparameterlengthlimiter.h>
+#include <QGraphicsLinearLayout>
 
 //User Includes
 #include "glxviewids.h"
@@ -38,6 +41,8 @@
 #include "glxcommandhandlers.hrh"
 #include "glxicondefs.h"
 #include "glxlocalisationstrings.h"
+#include "glxsettinginterface.h"
+
 
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
@@ -51,21 +56,31 @@
       mWidget(NULL),
       mSelectionModel(NULL),
       mModelWrapper(NULL),
-      mUiOnButton(NULL),
-      mCameraButton(NULL),
+      mUiOnButton(NULL),      
       mScrolling(FALSE),
       mIconItem(NULL),
       mMarkCheckBox(NULL),
-      mCountItem(NULL),
-      mMainLabel(NULL),
-      mCountLabel(NULL),
+      mTotalImagesCount(NULL),
+      mMarkSelectHeading(NULL),
+      mMarkCountLabel(NULL),
       mZeroItemLabel(NULL),
-      mAlbumName(NULL)
+      mAlbumNameHeading(NULL),
+      mMarkContainer(NULL),
+      mMarkingWidget(NULL)
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
     mModelWrapper = new GlxModelWrapper();
     mModelWrapper->setRoles(GlxQImageSmall);
     mIconItem = new HbIconItem(this);
+    mSettings = GlxSettingInterface::instance() ;
+    
+    mUiOnButton = new HbPushButton(this);
+    connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
+    mUiOnButton->setGeometry(QRectF(590,0,40,40));
+    mUiOnButton->setZValue(1);
+    mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON));
+    mUiOnButton->setObjectName( "UiOn Button" );
+
     OstTraceFunctionExit0( GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
 }
 
@@ -74,15 +89,10 @@
     OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
     loadGridView();
 	connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection);
-    if(mCountItem == NULL) {
-        mCountItem = new HbLabel(this);
-        mCountItem->setObjectName( "Count" );
-        HbFrameItem *frame = new HbFrameItem(this); //graphics for mCountItem
-        frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame->graphicsItem()->setOpacity(1);
-        mCountItem->setBackgroundItem(frame->graphicsItem(),-1);
-        mCountItem->hide();
+    if(mTotalImagesCount == NULL) {
+        mTotalImagesCount = new HbGroupBox(this);
+        mTotalImagesCount->setObjectName( "Count" );
+        mTotalImagesCount->hide();
     }
     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
 }
@@ -100,24 +110,23 @@
         mIconItem->setOpacity(0);
         mIconItem->setZValue(mIconItem->zValue()-20);
     }
-    if (mCountItem) {
-        mCountItem->hide();
+    if (mTotalImagesCount) {
+        mTotalImagesCount->hide();
     }
-    if (mAlbumName) {
-        mAlbumName->hide();
+    if (mAlbumNameHeading) {
+        mAlbumNameHeading->hide();
     }
     if(mZeroItemLabel) {
         mZeroItemLabel->hide();
     }
-    if(mCameraButton) {
-        mCameraButton->hide();
-    }
+    
     disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
     OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
 }
 
-void GlxGridView::initializeView(QAbstractItemModel *model)
+void GlxGridView::initializeView( QAbstractItemModel *model, GlxView *preView )
 {
+    Q_UNUSED( preView )
     activate();
     setModel(model);
 }
@@ -140,7 +149,9 @@
         connect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(showItemCount()));
         connect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(showItemCount()));
         connect(mModel, SIGNAL(destroyed()), this, SLOT( clearCurrentModel()));
-        connect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString)));
+        if(getSubState() == ALBUM_ITEM_S){
+            connect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString)));
+        }
         connect(mModel, SIGNAL(populated()), this, SLOT( populated()));
     }
 }
@@ -188,7 +199,7 @@
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_ADDTOOLBAR_ENTRY );
     setToolBar(toolBar);
-    hideorshowitems(mWindow->orientation());
+    showHbItems();
     OstTraceFunctionExit0( GLXGRIDVIEW_ADDTOOLBAR_EXIT );
 }
 
@@ -196,33 +207,27 @@
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
     mWidget->setSelectionMode(HgWidget::MultiSelection);
-    if (mMainLabel == NULL) {
-        mMainLabel = new HbLabel("Select Photos", this);
-        mMainLabel->setObjectName( "Select Photos");
-        HbFrameItem *frame1 = new HbFrameItem(this);    //graphics for mMainLabel
-        frame1->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame1->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame1->graphicsItem()->setOpacity(1);
-        mMainLabel->setBackgroundItem(frame1->graphicsItem(),-1);
-    }
-    if (mMarkCheckBox == NULL) {
-        mMarkCheckBox = new HbCheckBox(GLX_OPTION_MARK_ALL, this);
-        mMarkCheckBox->setObjectName( "CheckB MarkAll" );
-        HbFrameItem *frame2 = new HbFrameItem(this);    //graphics for mMarkCheckBox
-        frame2->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame2->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame2->graphicsItem()->setOpacity(1);
-        mMarkCheckBox->setBackgroundItem(frame2->graphicsItem(),-1);
-    }
-    if (mCountLabel == NULL) {
-        mCountLabel = new HbLabel(this);
-        mCountLabel->setObjectName( "MarkCount" );
-        HbFrameItem *frame3 = new HbFrameItem(this);    //graphics for mCountLabel
-        frame3->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame3->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame3->graphicsItem()->setOpacity(1);
-        mCountLabel->setBackgroundItem(frame3->graphicsItem(),-1);
-    }
+   
+    if (mMarkingWidget == NULL)
+        {
+        mMarkingWidget = new HbWidget(this);
+        mMarkContainer = new QGraphicsLinearLayout(Qt::Horizontal, 0);
+        mMarkingWidget->setLayout(mMarkContainer);
+
+        mMarkSelectHeading = new HbGroupBox(this);
+        mMarkSelectHeading->setHeading(GLX_SELECT_IMAGES);
+        mMarkSelectHeading->setObjectName("Select Photos");
+               
+        mMarkCountLabel = new HbLabel(mMarkingWidget);
+        mMarkCountLabel->setObjectName("MarkCount");
+        mMarkCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
+        
+        mMarkCheckBox = new HbCheckBox(GLX_LABEL_MARK_ALL, mMarkingWidget);
+        mMarkCheckBox->setObjectName("CheckB MarkAll");
+       
+        mMarkContainer->addItem(mMarkCheckBox);
+        mMarkContainer->addItem(mMarkCountLabel);        
+        }
 
     hideorshowitems(mWindow->orientation());
 
@@ -237,18 +242,16 @@
     mWidget->setSelectionMode(HgWidget::NoSelection);
     disconnect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
     disconnect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int)));
-    if (mMainLabel) {
-        mMainLabel->hide();
-    }
-    if (mMarkCheckBox) {
-        mMarkCheckBox->setCheckState(Qt::Unchecked);
-        mMarkCheckBox->hide();
-    }
-    if (mCountLabel) {
-        mCountLabel->hide();
+    
+    if (mMarkSelectHeading) {
+        mMarkSelectHeading->hide();
     }
 
-    hideorshowitems(mWindow->orientation());
+    if (mMarkingWidget) {
+        mMarkingWidget->hide();
+    }        
+    
+    showHbItems();
 }
 
 void GlxGridView::stateChanged(int state)
@@ -264,9 +267,10 @@
     int count = mModel->rowCount();
     QModelIndexList indexList = mWidget->selectionModel()->selectedIndexes();
     int markItemCount = indexList.count();
-
-    QString text= QString("%1 / %2").arg( markItemCount ).arg( count );
-    mCountLabel->setPlainText( text );
+    
+    QString text= HbParameterLengthLimiter(GLX_LABEL_MARK_COUNT).arg(markItemCount).arg(count);    
+    
+    mMarkCountLabel->setPlainText( text );    
 }
 
 void GlxGridView::showItemCount()
@@ -281,27 +285,24 @@
             if(mZeroItemLabel) {
                 mZeroItemLabel->hide();
             }
-            if(mCameraButton) {
-                mCameraButton->hide();
-            }
+            
             if(isItemVisible(Hb::TitleBarItem)) {
                 QString text;
                 if(XQServiceUtil::isService())
                     {
-                    showAlbumTitle(GLX_FETCHER_TITLE);
+                    showAlbumTitle(GLX_SELECT_IMAGE);
                     }
                 else if (getSubState() == ALL_ITEM_S) {
-					if (mAlbumName) {
-                    	mAlbumName->hide();
+					if (mAlbumNameHeading) {
+                    	mAlbumNameHeading->hide();
 					}
-                    mCountItem->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
-                    text = QString("%1 Items").arg( count );
-                    mCountItem->setPlainText( text );
-                    mCountItem->setAlignment(Qt::AlignLeft);
-                    mCountItem->show();
+                    mTotalImagesCount->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
+                    text = HbParameterLengthLimiter(GLX_GRID_VIEW_COUNT_LABEL, count); 
+                    mTotalImagesCount->setHeading ( text );
+                    mTotalImagesCount->show();
                 }
                 else if (getSubState() == ALBUM_ITEM_S) {
-                    mCountItem->hide();
+                    mTotalImagesCount->hide();
                     QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
                     if (variant.toString() != NULL) {
                         showAlbumTitle(variant.toString());
@@ -309,11 +310,11 @@
                 }
             }
             else {
-                if (mCountItem) {
-                    mCountItem->hide();
+                if (mTotalImagesCount) {
+                    mTotalImagesCount->hide();
                 }
-                if (mAlbumName) {
-                    mAlbumName->hide();
+                if (mAlbumNameHeading) {
+                    mAlbumNameHeading->hide();
                 }
             }
 
@@ -326,11 +327,11 @@
                 populated = variant.value<bool>();
                 }
             if(populated) {
-                if (mCountItem) {
-                    mCountItem->hide();
+                if (mTotalImagesCount) {
+                    mTotalImagesCount->hide();
                 }
-                if (mAlbumName) {
-                    mAlbumName->hide();
+                if (mAlbumNameHeading) {
+                    mAlbumNameHeading->hide();
                 }
 
                 showNoImageString();
@@ -352,42 +353,29 @@
     QSize deviceSize = HbDeviceProfile::current().logicalSize();
     QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
                                                                    : QSize( deviceSize.height(), deviceSize.width() )  ;
-    if(mAlbumName == NULL) {
-        mAlbumName = new HbLabel(this);
-        mAlbumName->setObjectName( "Album Name" );
-        HbFrameItem *frame = new HbFrameItem(this); //graphics for mAlbumName
-        frame->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
-        frame->frameDrawer().setFrameGraphicsName("qtg_fr_multimedia_trans");
-        frame->graphicsItem()->setOpacity(1);
-        mAlbumName->setBackgroundItem(frame->graphicsItem(),-1);
-    }
-    
-	//If fetcher service set only title text
-	if((XQServiceUtil::isService() ) && isItemVisible(Hb::TitleBarItem)) {
-        mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
-        QString text = QString(aTitle);
-        mAlbumName->setPlainText( text );
-        mAlbumName->show();
-    }
-	else{ //handle album tiltle and count display logic here
-	    if( count && isItemVisible(Hb::TitleBarItem)) {        
-	        mAlbumName->setGeometry(QRectF(0,0,screenSize.width()/2,deviceSize.height()/24));
-	        QString text = QString(aTitle);
-	        mAlbumName->setPlainText( text );
-	        mAlbumName->show();
-	        mCountItem->setGeometry(QRectF(screenSize.width()/2,0,screenSize.width()/2,deviceSize.height()/24));
-	        text = QString("(%1)").arg(count);
-	        mCountItem->setPlainText( text );
-	        mCountItem->setAlignment(Qt::AlignRight);
-	        mCountItem->show();
-	    }    
-	    else if((!count) && isItemVisible(Hb::TitleBarItem)) {
-	        mAlbumName->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
-	        QString text = QString(aTitle);
-	        mAlbumName->setPlainText( text );
-	        mAlbumName->show();
-	    }
-	}
+    if (mAlbumNameHeading == NULL)
+        {
+        mAlbumNameHeading = new HbGroupBox(this);
+        mAlbumNameHeading->setObjectName("Album Name");
+        }
+
+    //If fetcher service set only title text
+    if ((XQServiceUtil::isService()) && isItemVisible(Hb::TitleBarItem))
+        {
+        mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));
+        mAlbumNameHeading->setHeading(aTitle);
+        mAlbumNameHeading->show();
+        }
+    else
+        { //handle album tiltle and count display logic here
+        if (count && isItemVisible(Hb::TitleBarItem))
+            {
+            mAlbumNameHeading->setGeometry(QRectF(0, 0, screenSize.width(),deviceSize.height() / 24));
+            QString text = HbParameterLengthLimiter(GLX_ALBUM_NAME_COUNT_LABEL).arg(aTitle).arg(count);            
+            mAlbumNameHeading->setHeading(text);
+            mAlbumNameHeading->show();
+            }
+        }
 }
 
 void GlxGridView::showNoImageString()
@@ -403,28 +391,13 @@
     }
     if (mZeroItemLabel == NULL) {
         QString displayText(GLX_GRID_NO_IMAGE); 
-        if(!XQServiceUtil::isService())
-            {
-            displayText.append(GLX_GRID_OPEN_CAMERA);
-            }
         mZeroItemLabel = new HbLabel(displayText, this);
         mZeroItemLabel->setObjectName( "No Image" );
     }
     mZeroItemLabel->setGeometry(QRectF(0, midHeight - deviceSize.height()/16, screenSize.width(), 3*deviceSize.height()/32));
     mZeroItemLabel->setAlignment(Qt::AlignHCenter);
     mZeroItemLabel->show();
-    if (mCameraButton == NULL) {
-        mCameraButton = new HbPushButton(this);
-        mCameraButton->setObjectName( "Camera Button" );
-        mCameraButton->setIcon(HbIcon(GLXICON_CAMERA));
-        mCameraButton->hide();
-        connect(mCameraButton, SIGNAL(clicked(bool)), this, SLOT(cameraButtonClicked(bool)));
-    }
-    if(!XQServiceUtil::isService())
-        {
-        mCameraButton->setGeometry(QRectF(screenSize.width()/2 - 3*deviceSize.height()/64, midHeight + deviceSize.height()/32, deviceSize.height()/32, deviceSize.height()/32));
-        mCameraButton->show();
-        }
+   
 }
 
 void GlxGridView::populated()
@@ -450,6 +423,18 @@
             mWidget->clearSelection();
             break;
 
+        case EGlxCmd3DEffectOn:
+            mSettings->setmediaWall3DEffect(1);
+            if(mWidget && !mWidget->effect3dEnabled())
+                mWidget->setEffect3dEnabled(ETrue);
+            break;
+            
+        case EGlxCmd3DEffectOff:
+            mSettings->setmediaWall3DEffect(0);
+            if(mWidget && mWidget->effect3dEnabled())
+                mWidget->setEffect3dEnabled(EFalse);
+            break;
+
         default :
             break;
     }
@@ -528,17 +513,28 @@
         mWidget->setObjectName( "Media Wall" );
         mWidget->setLongPressEnabled(true);
         mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide);
+        if(XQServiceUtil::isService())
+            {
+            mWidget->setEffect3dEnabled(EFalse);
+            }
+        else
+            {
+            mWidget->setEffect3dEnabled(mSettings->mediaWall3DEffect());
+            }
         setWidget( mWidget );
         addViewConnection();
-        hideorshowitems(orient);
     }
     OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
 }
 
 void GlxGridView::orientationchanged(Qt::Orientation orient)
 {
-    hideorshowitems(orient);
+    if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) {
+        hideorshowitems(orient);
+    }
+    showHbItems();
 }
+
 void GlxGridView::hideorshowitems(Qt::Orientation orient)
 {
     if ( mWidget && mWidget->selectionMode() == HgWidget::NoSelection ) {
@@ -561,27 +557,30 @@
         }
     }
     else if (mWidget && mWidget->selectionMode() == HgWidget::MultiSelection) {
-        setItemVisible(Hb::TitleBarItem, FALSE) ;
+        setItemVisible(Hb::AllItems, FALSE) ;
+        setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
         if (mUiOnButton) {
             mUiOnButton->hide();
         }
-        if (mCountItem) {
-            mCountItem->hide();
+        if (mTotalImagesCount) {
+            mTotalImagesCount->hide();
         }
-        if (mAlbumName) {
-            mAlbumName->hide();
+        if (mAlbumNameHeading) {
+            mAlbumNameHeading->hide();
         }
+        
         QSize deviceSize = HbDeviceProfile::current().logicalSize();
         QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
                                                                        : QSize( deviceSize.height(), deviceSize.width() )  ;
-        mMainLabel->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));
-        mMarkCheckBox->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width()/2,deviceSize.height()/72));
-        mCountLabel->setGeometry(QRectF(screenSize.width()/2,deviceSize.height()/24,screenSize.width()/2,deviceSize.height()/12 - 3));
-        mCountLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter);
-        mMainLabel->show();
-        mMarkCheckBox->show();
-        mCountLabel->show();
+        
+        mMarkSelectHeading->setGeometry(QRectF(0,0,screenSize.width(),deviceSize.height()/24));       
+        mMarkingWidget->setGeometry(QRectF(0,deviceSize.height()/24,screenSize.width(),deviceSize.height()/72));          
+              
+        mMarkSelectHeading->show();
+        mMarkingWidget->show();
+        
         showMarkedItemCount();
+        
     }
 }
 
@@ -631,21 +630,22 @@
     if ( mWidget->selectionMode() == HgWidget::MultiSelection ) {
         return ;
     }
-    if(XQServiceUtil::isService()){
-        emit gridItemSelected(index);
-        return;
-    }
     OstTraceEventStart0( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START, "Fullscreen Launch Time" );
     if ( mModel ) {
         mModel->setData( index, index.row(), GlxFocusIndexRole );
     }
+    if(XQServiceUtil::isService()){
+        qDebug("GlxGridView::itemSelected actionTriggered( EGlxCmdFetcherSelect )" );
+        emit actionTriggered( EGlxCmdFetcherSelect );
+        return;
+    }
     emit actionTriggered( EGlxCmdFullScreenOpen );
     OstTraceEventStop( EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_STOP, "Fullscreen Launch Time", EVENT_DUP1_GLXGRIDVIEW_ITEMSELECTED_START );
 }
 
 void GlxGridView::scrollingStarted()
 {
-    if ((mWindow->orientation() == Qt::Horizontal) && mWidget->selectionMode() == HgWidget::NoSelection)
+    if ((mWindow->orientation() == Qt::Horizontal)/* && mWidget->selectionMode() == HgWidget::NoSelection*/)
         {
         setItemVisible(Hb::AllItems, FALSE) ;
         setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
@@ -653,11 +653,11 @@
             {
             mUiOnButton->hide();
             }
-		if (mCountItem) {
-			mCountItem->hide();
+		if (mTotalImagesCount) {
+			mTotalImagesCount->hide();
 		}
-		if (mAlbumName) {
-            mAlbumName->hide();
+		if (mAlbumNameHeading) {
+            mAlbumNameHeading->hide();
 		}
     }
 
@@ -703,17 +703,16 @@
         disconnect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
         delete mUiOnButton;
     }
-    if(mCameraButton) {
-        disconnect(mCameraButton, SIGNAL(clicked()), this, SLOT(cameraButtonClicked()));
-        delete mCameraButton;
-    }
+    
     delete mIconItem;
-    delete mCountItem;
-    delete mAlbumName;
-    delete mMainLabel;
+    delete mTotalImagesCount;
+    delete mAlbumNameHeading;
+    delete mMarkSelectHeading;
     delete mMarkCheckBox;
-    delete mCountLabel;
+    delete mMarkCountLabel;
+    delete mMarkingWidget;
     delete mZeroItemLabel;
+    
     OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
 }
 
@@ -739,15 +738,16 @@
 
 void GlxGridView::showHbItems()
 {
-        setItemVisible(Hb::AllItems, TRUE) ;
-    setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden);
+    if(mWidget && mWidget->selectionMode() == HgWidget::NoSelection) {
+        setItemVisible( Hb::TitleBarItem, TRUE );
+        setItemVisible( Hb::StatusBarItem, TRUE );
+        setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden);
         showItemCount();
-		toolBar()->resetTransform(); // Temp, this is for HbToolbar issue to get fixed
-        toolBar()->show();
-    if (mUiOnButton)
-        {
+    }    
+    updateToolBar();
+    if (mUiOnButton) {
         mUiOnButton->hide();
-        }
+    }
 }
 
 void GlxGridView::cameraButtonClicked(bool /*checked*/)
@@ -758,10 +758,30 @@
 int GlxGridView::getSubState()
 {
     int substate = NO_GRID_S;
-    QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );
-    if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
-        substate = variant.value<int>();
+    if ( mModel ) {
+        QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );
+        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
+            substate = variant.value<int>();
+        }
     }
     return substate;
 }
 
+void GlxGridView::updateToolBar()
+{
+    //In the case of multiselection show the tool bar.
+    if ( mWidget && mWidget->selectionMode() == HgWidget::MultiSelection ) {
+        setItemVisible( Hb::ToolBarItem, TRUE ) ;
+        return ;
+    }
+    
+    //In Album grid it is not required to show tool bar
+    int subState = getSubState();
+    if ( subState == ALBUM_ITEM_S || subState == FETCHER_ALBUM_ITEM_S ) {
+        setItemVisible( Hb::ToolBarItem, FALSE ) ;
+    }
+    else {
+        setItemVisible( Hb::ToolBarItem, TRUE );
+    }
+}
+
--- a/ui/views/listview/inc/glxlistview.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/listview/inc/glxlistview.h	Wed Aug 18 09:48:53 2010 +0300
@@ -38,7 +38,7 @@
     void deActivate();
     void setModel(QAbstractItemModel *model);
     void addToolBar( HbToolBar *toolBar );
-    void initializeView(QAbstractItemModel *model);
+    void initializeView( QAbstractItemModel *model, GlxView *preView );
     QGraphicsItem * getAnimationItem( GlxEffect transtionEffect );
 
 public slots:
--- a/ui/views/listview/src/glxlistview.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/listview/src/glxlistview.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -57,7 +57,6 @@
 void GlxListView::deActivate()
 {
     qDebug("GlxListView::deActivate()");
-    disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
 }
 
 void GlxListView::setModel(QAbstractItemModel *model) 
@@ -76,13 +75,14 @@
     setToolBar(toolBar) ;
 }
 
-void GlxListView::initializeView(QAbstractItemModel *model)
+void GlxListView::initializeView( QAbstractItemModel *model, GlxView *preView )
 {
+    Q_UNUSED( preView )
     qDebug("GlxListView::initializeView()");
-    if (mListView == NULL) {
+    if ( mListView == NULL ) {
         createListView();
     }
-    setModel(model);
+    setModel( model );
 }
 
 QGraphicsItem * GlxListView::getAnimationItem( GlxEffect transtionEffect )
@@ -205,7 +205,19 @@
     if ( mModel ) {
         mModel->setData( index, index.row(), GlxFocusIndexRole );
     }
-    emit actionTriggered( EGlxCmdAlbumGridOpen );
+    
+    int curstate = NO_LIST_S; 
+    qDebug() << "GlxListView::itemSelected READING STATE ";
+    QVariant variant = mModel->data( mModel->index(0,0), GlxSubStateRole );    
+    if ( variant.isValid() &&  variant.canConvert<int> () ) {
+        curstate = variant.value<int>();
+    }
+    qDebug() << "GlxMenuManager::viewSubState = " << curstate ;
+    if(curstate == FETCHER_ALBUM_S ){
+        emit actionTriggered( EGlxCmdFetcherAlbumGridOpen );
+    }else {        
+        emit actionTriggered( EGlxCmdAlbumGridOpen );
+    }
 }
 
 
--- a/ui/views/slideshowview/inc/glxslideshowview.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/slideshowview/inc/glxslideshowview.h	Wed Aug 18 09:48:53 2010 +0300
@@ -33,29 +33,115 @@
 class GlxSlideShowWidget;
 class GlxTvOutWrapper;
 
+/**
+ * Class Description
+ * This is Slideshow view class used to play the slide show on set of images.
+ */
 class GlxSlideShowView : public GlxView
 {
     Q_OBJECT
 
 public:
-    GlxSlideShowView(HbMainWindow *window,HbDocumentLoader *Docloader);
+    /**
+     * Constructor
+     * @param - HbMainWindow object
+     * @param - fullscreen docloader object
+     */
+    GlxSlideShowView( HbMainWindow *window, HbDocumentLoader *Docloader );
+    
+    /**
+     * Destructor
+     */    
     ~GlxSlideShowView();
+
+    /**
+     * activate()
+     * ///From GlxView
+     */    
     void activate() ;
+    
+    /**
+     * deActivate()
+     * ///From GlxView
+     */    
     void deActivate();
-    void setModel(QAbstractItemModel *model);
+    
+    /**
+     * setmodel() 
+     * ///from GlxView
+     */    
+    void setModel( QAbstractItemModel *model );
+
+    /**
+     * setModelContext() - to set the context mode of the model.
+     */    
     void setModelContext();
+    
+    /**
+     * handleUserAction() - To handle the used action like back to paly the orientation change animation.
+     */
+    void handleUserAction( qint32 commandId );
         
 public slots :
-    void orientationChanged(Qt::Orientation);   
-    void slideShowEventHandler( GlxSlideShowEvent e);
+    /**
+     * orientationChanged() - Slot to upadte the layout when orientation of device has changed
+     * @param new orientation
+     */
+    void orientationChanged( Qt::Orientation ) ;
+    
+    /**
+     * slideShowEventHandler() - to handle the widget events like ui on / off, empty data etc
+     * @param slide show widget event type 
+     */
+    void slideShowEventHandler( GlxSlideShowEvent e );
+    
+    /**
+     * indexchanged() - call back to handle the selected image change. 
+     */
     void indexchanged();
+    
+    /**
+     * modelDestroyed() - call back to monitor the model destroy.
+     */
     void modelDestroyed();
     
+    /**
+     * playLsOrientChangeAnim() - To play the protrait to landscape orientation animation.
+     */
+    void playLsOrientChangeAnim();
+
+    /**
+     * playLsOrientChangeAnim() - To play the landscape to protrait orientation animation.
+     */
+    void playPtOrientChangeAnim();
+    
+    /**
+     * LsOrientChangeAnimFinished() - Call back fuction when protrait to landscape orientation animation 
+     * has been finished.
+     * @param - staus of effect
+     */
+    void LsOrientChangeAnimFinished( const HbEffect::EffectStatus );
+    
+    /**
+     * PtOrientChangeAnimFinished() - Call back fuction when landscape to protrait orientation animation 
+     * has been finished.
+     * @param - staus of effect
+     */    
+    void PtOrientChangeAnimFinished( const HbEffect::EffectStatus );
+    
 protected :
-    bool eventFilter(QObject *obj, QEvent *ev);
+    /**
+     * eventFilter - To handle the application foregrond and background event
+     * ///From HbView
+     */
+    bool eventFilter( QObject *obj, QEvent *ev );
     
 private:
+    /**
+     * loadWidgets() - The widgets are retrieved from the docml
+     */
     void loadObjects();
+
 private:
     QAbstractItemModel  *mModel;
     HbMainWindow        *mWindow;
--- a/ui/views/slideshowview/inc/glxslideshowwidget.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/slideshowview/inc/glxslideshowwidget.h	Wed Aug 18 09:48:53 2010 +0300
@@ -34,6 +34,7 @@
 class QGraphicsItem;
 class HbDocumentLoader;
 class HbAbstractDataModel;
+class HbLabel;
 
 //User Forward Declarations
 class GlxEffectEngine;
@@ -48,83 +49,273 @@
     EFFECT_STARTED  // sends the signal when effect is started.
 } GlxSlideShowEvent;
 
-typedef enum 
-{
-    MOVE_FORWARD,
-    MOVE_BACKWARD,
-} GlxSlideShowMoveDir;
-
+/**
+ * Class Description
+ * This is Slideshow widget class used to play the slide show animation and ahndle the user action like pause and play.
+ */
 class GlxSlideShowWidget : public HbWidget
 {
 Q_OBJECT
 
 public :
-    GlxSlideShowWidget (QGraphicsItem *parent = NULL);
+    /**
+     * Constructor
+     * @param - QGraphicsItem
+     */    
+    GlxSlideShowWidget ( QGraphicsItem *parent = NULL );
+    
+    /**
+     * Destructor
+     */    
     ~GlxSlideShowWidget ();
-    void setModel (QAbstractItemModel *model);
-    void setItemGeometry(QRect screenRect);
+    
+    /**
+     * setmodel() - To set the model of the widget.
+     * @param - QAbstractItemModel.
+     */    
+    void setModel ( QAbstractItemModel *model );
+    
+    /**
+     * setItemGeometry() - To Set the layout data of widgets item.
+     * @param scrren gemoetry
+     */
+    void setItemGeometry( QRect screenRect );
+    
+    /**
+     * startSlideShow() - To start the slide show timer to run the slide show.
+     */
     void startSlideShow();
+    
+    /**
+     * stopSlideShow() - To stop slide show timer.
+     */
     void stopSlideShow();
-    /*
-     * Initialise the slideshow widget
-     * creation of the icons are done here
-     */
-    void setSlideShowWidget(HbDocumentLoader *DocLoader);
     
     /*
-     * Cleans up the slide show widget
+     * setSlideShowWidget() - Initialise the slideshow widget and creation of the icons are done here.
+     * @param - docloader
+     */
+    void setSlideShowWidget( HbDocumentLoader *DocLoader );
+    
+    /*
+     * cleanUp() -Cleans up the slide show widget
      */
     void cleanUp();
     
+    /*
+     * animationItem() - Return the icon to use for some transition effect
+     */
+    QGraphicsItem * animationItem();
+    
+    /**
+     * updateAnimationItem() - upadte the z value of anition item for smooth effect.
+     */    
+    void updateAnimationItem();
+    
+    
 signals:
-    void slideShowEvent(GlxSlideShowEvent e);
+    /**
+     * slideShowEvent() - This signal is emitted when slide show event happend lide ui on/off
+     * @param - GlxSlideShowEvent.
+     */
+    void slideShowEvent( GlxSlideShowEvent e );
+    
+    /**
+     * indexchanged() - This signal is emmitted when image selected index is changed. 
+     */
     void indexchanged();
     
 public slots :
+    /**
+     * triggeredEffect() - To start the slide show animation.
+     */
     void triggeredEffect();
+
+    /**
+     * continueSlideShow() - Play the slide show.
+     * @param - From HbAbstractButton.
+     */
+    void continueSlideShow( bool check );
+    
+    /**
+     * effectFinshed() -  Call back to get notification of slide show animation has been finshed.
+     */
     void effectFinshed();
-    void cancelEffect();
-    void pauseSlideShow();
-    void continueSlideShow(bool check);
-    void dataChanged(QModelIndex startIndex, QModelIndex endIndex);
-    void rowsInserted(const QModelIndex &parent, int start, int end);
-    void rowsRemoved(const QModelIndex &parent, int start, int end);
+    
+    /**
+     * dataChanged() - call back to monitor the widget data changed.
+     * @param - start index of data changed.
+     * @param - end index of data changed.
+     */
+    void dataChanged( QModelIndex startIndex, QModelIndex endIndex );
+    
+    /**
+     * rowsInserted() - call back of new row inserted in the model.
+     * @param - Items are inserted under parent.
+     * @param - start index of items inserted.
+     * @param - end index of items removed.
+     */
+    void rowsInserted( const QModelIndex &parent, int start, int end );
+    
+    /**
+     * rowsRemoved() - call back of new row removed in the model.
+     * @param - Items are removed from parent item.
+     * @param - start index of items inserted.
+     * @param - end index of items removed.
+     */    
+    void rowsRemoved( const QModelIndex &parent, int start, int end );
+    
+    /**
+     * modelDestroyed() - call back to monitor the model destroy.
+     */
     void modelDestroyed();
-    void orientationChanged(QRect screenRect);
+    
+    /**
+     * orientationChanged() - relayout the data when orientation has been changed
+     * @param - Screen Geometry
+     */
+    void orientationChanged( QRect screenRect );
 
+    /**
+     * leftMoveEffectFinished() - call back, when animation of browse the image in forward direction
+     * has been finished.
+     * @param - staus of effect
+     */
     void leftMoveEffectFinished( const HbEffect::EffectStatus &status );
+
+    /**
+     * leftMoveEffectFinished() - call back, when animation of browse the image in backward direction
+     * has been finished.
+     * @param - staus of effect
+     */
     void rightMoveEffectFinished( const HbEffect::EffectStatus &status );
     
 protected slots :
-    void leftGesture (int value);
-    void rightGesture (int value);
+    /**
+     * leftGesture() - To handle the left move event
+     * @parma number of pixel  move.
+     */
+    void leftGesture ( int value );
+    
+    /**
+     * rightGesture() - To handle the right move event
+     * @parma number of pixel  move.
+     */
+    void rightGesture ( int value );
     
 protected :
-    void gestureEvent(QGestureEvent *event);
+    /**
+     * gestureEvent() - gesture event handler.
+     * @param - QGestureEvent
+     */
+    void gestureEvent( QGestureEvent *event );
     
 private :
-    //clear all the model connection
+    /**
+     * clearCurrentModel() - clear all the model call backs
+     */
     void clearCurrentModel();
-    //add the connection to the model
+    
+    /**
+     * initializeNewModel() - register the model data change call backs
+     */
     void initializeNewModel();
+    
+    /**
+     * resetSlideShow() - Reinitialise the widget property.
+     */
     void resetSlideShow();
-    void setIconItems( int moveDir );
+    
+    /**
+     * moveImage() - Sopport function to handle the user browsing.
+     * @param -  next selected image index.
+     * @param - position of next image index.
+     * @param - effect event
+     * @param - animation finished callback function
+     */
     void moveImage( int nextIndex, int posX, const QString & move, char * callBack );
+    
+    /**
+     * addConnections() - register the internal and effect engine callback.
+     */
     void addConnections();
+	
+    /**
+     * removeConnections() - deregister the internal and effect engine callback.
+     */
     void removeConnections();
+    
+    /**
+     * cancelEffect() - To cancel the currnet effect running.
+     */
+    void cancelEffect();
+    
+    /**
+     * pauseSlideShow() - Pause the slide show.
+     */
+    void pauseSlideShow();
+    
+    /**
+     * getFocusIndex() -To get the focus index
+     */
+    int getFocusIndex( );
+
+    /*
+     * getIcon() - To get the full screen icon of the image
+     * @param - index of the icon
+     */
+    HbIcon getIcon( int index );
+    
+    /**
+     * isCorrupt() - To check the itemis corrupted or not
+     * @param - index of the icon
+     */
+    bool isCorrupt( int index );
+    
+    /**
+     * setFocusItemIcon() - To set the current ( focus ) item icon
+     * @return - return the success or failure status
+     */
+    bool setFocusItemIcon();
+    
+    /**
+     * setNextItemIcon() - To set the next itme icon in the list
+     * @return - return the success or failure status
+     */
+    bool setNextItemIcon();
+    
+    /**
+     * setPreItemIcon() - To set the previous icon in the list
+     * @return - return the success or failure status
+     */
+    bool setPreItemIcon();
+    
+    /**
+     * showErrorNote() - In the case of all the image are corrupted then show the error notes
+     */
+    void showErrorNote();
+    
+    /**
+     * hideErrorNote() - It will hide the corrupted images note
+     */
+    void hideErrorNote();    
 
 private:
     GlxEffectEngine          *mEffectEngine;
     GlxSettingInterface      *mSettings;               //no ownership
-    HbIconItem               *mIconItems[NBR_ITEM]; 
+    HbIconItem               *mIconItems[ NBR_ITEM ]; 
+    HbIconItem               *mAnimItem;
+    HbIconItem               *mBackGroundItem;
     HbPushButton             *mContinueButton;
+    HbLabel                  *mErrorNote ;               //when all the image are corrupted then show the no image label
     int                      mItemIndex;
-    int                      mSelIndex;
+    int                      mSelIndex[ NBR_ITEM ];
     QTimer                   *mSlideTimer;
     QAbstractItemModel       *mModel;
     QRect                    mScreenRect;
     QList <QGraphicsItem *>  mItemList;
     bool                     mIsPause;
+    int                      mSlideShowItemCount;
 };
 
 #endif /* GLXSLIDESHOWWIDGET_H */
--- a/ui/views/slideshowview/src/glxslideshowview.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/slideshowview/src/glxslideshowview.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -43,6 +43,8 @@
 {
     TRACER("GlxSlideShowView::GlxSlideShowView()");
     mDocLoader = DocLoader;
+    HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotatelandscape.fxml" ), QString( "RotateLS" ) );
+    HbEffect::add( QString( "HbIconItem" ), QString( ":/data/rotateprotrait.fxml" ), QString( "RotatePT" ) );
 }
 
 GlxSlideShowView::~GlxSlideShowView()
@@ -59,12 +61,13 @@
         delete mDocLoader;
         mDocLoader = NULL;
     }
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotate.fxml" ), QString( "RotateStart" ) );
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotate1.fxml" ), QString( "RotateEnd" ) );
 }
 
 void GlxSlideShowView::activate()
 {
     TRACER("GlxSlideShowView::activate()");
-    mWindow->setOrientation(Qt::Horizontal, false);
 
     //finds the widgets from the docml
     loadObjects();
@@ -72,6 +75,7 @@
     setStatusBarVisible(FALSE);
     connect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) ); 
     connect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) );
+    connect( mWindow, SIGNAL( viewReady() ), this, SLOT( playLsOrientChangeAnim() ) );
     
     QCoreApplication::instance()->installEventFilter(this);
     
@@ -83,14 +87,14 @@
 void GlxSlideShowView::deActivate()
 {
     TRACER("GlxSlideShowView::deActivate()");
-    mWindow->unsetOrientation(false);
+    mWindow->unsetOrientation( false );
     
     setStatusBarVisible(TRUE);
-    setTitleBarVisible(TRUE);
-    
+    setTitleBarVisible(TRUE);    
                 
     disconnect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) );
     disconnect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) );
+    disconnect( mWindow, SIGNAL( viewReady() ), this, SLOT( playLsOrientChangeAnim() ) );
         
     //Delete the Items in the slide show widget
     mSlideShowWidget->cleanUp();
@@ -107,17 +111,18 @@
 {
     TRACER("GlxSlideShowView::setModel()");
     GLX_LOG_INFO2("GlxSlideShowView::setModel() model %u mModel %u", model, mModel);
-    if ( mModel != model ) {
     
-    modelDestroyed();
-    mModel = model;
-    connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
+    if ( mModel != model ) {    
+        modelDestroyed();
+        mModel = model;
+        connect( mModel, SIGNAL( destroyed() ), this, SLOT( modelDestroyed() ) );
     } 
+    
     setModelContext();    
     mSlideShowWidget->setModel(mModel);
     
     if (mTvOutWrapper){
-        mTvOutWrapper->setModel(mModel,true);
+        mTvOutWrapper->setModel(mModel, screenSize(), true);
         mTvOutWrapper->setImagetoHDMI();
     }
 }
@@ -127,14 +132,24 @@
     TRACER("GlxSlideShowView::setModelContext()");
     if ( mModel && mWindow ) {
         GLX_LOG_INFO1("GlxSlideShowView::setModelContext %d", mWindow->orientation() );
-    
-            mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
-      /* if ( mWindow->orientation() == Qt::Horizontal ) {
+        if ( mWindow->orientation() == Qt::Horizontal ) {
             mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
         }
         else {
             mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
-        } */
+        }
+    }
+}
+
+void GlxSlideShowView::handleUserAction( qint32 commandId )
+{
+    switch( commandId ){
+    case EGlxCmdPlayBackAnim :
+        playPtOrientChangeAnim();
+        break;
+        
+    default :
+        break;
     }
 }
 
@@ -191,6 +206,40 @@
     }
 }
 
+void GlxSlideShowView::playLsOrientChangeAnim()
+{
+    qDebug( "GlxSlideShowView::playLsOrientChangeAnim() enter ");
+    if ( mWindow->orientation( ) == Qt ::Vertical ) {
+        mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
+        mSlideShowWidget->updateAnimationItem();
+        HbEffect::start( mSlideShowWidget->animationItem(), QString( "HbIconItem" ), QString( "RotateLS" ), this, "LsOrientChangeAnimFinished" );
+        qDebug( "GlxSlideShowView::playLsOrientChangeAnim() exit1 ");
+    }
+    else {
+        mWindow->setOrientation( Qt::Horizontal, false );
+    }
+}
+
+void GlxSlideShowView::playPtOrientChangeAnim()
+{
+    mModel->setData( QModelIndex(), ( int )GlxContextPtFs, GlxContextRole );
+    setTitleBarVisible( FALSE );
+    setStatusBarVisible( FALSE );
+    mSlideShowWidget->updateAnimationItem();
+    HbEffect::start( mSlideShowWidget->animationItem(), QString( "HbIconItem" ), QString( "RotatePT" ), this, "PtOrientChangeAnimFinished" );   
+}
+
+void GlxSlideShowView::LsOrientChangeAnimFinished( const HbEffect::EffectStatus )
+{
+    mWindow->setOrientation( Qt::Horizontal, false );
+    orientationChanged( Qt::Horizontal );
+}
+
+void GlxSlideShowView::PtOrientChangeAnimFinished( const HbEffect::EffectStatus )
+{
+    emit actionTriggered( EGlxCmdSlideShowBack );
+}
+
 bool GlxSlideShowView::eventFilter(QObject *obj, QEvent *event)
 {
     TRACER("GlxSlideShowView::event()");
--- a/ui/views/slideshowview/src/glxslideshowwidget.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -28,6 +28,7 @@
 #include <QAbstractItemModel>
 #include <QGesture>
 #include <hbpangesture.h>
+#include <hblabel.h>
 
 //User Includes
 #include "glxicondefs.h" //Contains the icon names/Ids
@@ -36,19 +37,23 @@
 #include "glxdocloaderdefs.h"
 #include "glxslideshowwidget.h"
 #include "glxsettinginterface.h"
+#include "glxlocalisationstrings.h"
 #include "glxlog.h"
 #include "glxtracer.h"
 
 
 GlxSlideShowWidget::GlxSlideShowWidget( QGraphicsItem *parent ) 
-    : HbWidget(parent), 
-      mEffectEngine(NULL), 
+    : HbWidget( parent ), 
+      mEffectEngine( NULL ), 
       mSettings( NULL ),
-      mContinueButton(NULL), 
-      mItemIndex(1), 
-      mSelIndex(0), 
-      mSlideTimer(NULL), 
-      mModel(NULL)
+      mAnimItem( NULL ),
+      mBackGroundItem( NULL ),
+      mContinueButton( NULL ), 
+      mErrorNote( NULL ),
+      mItemIndex( 1 ),  
+      mSlideTimer( NULL ), 
+      mModel( NULL ), 
+      mSlideShowItemCount( 0 )
 {
     TRACER("GlxSlideShowWidget::GlxSlideShowWidget()");
     mSettings = GlxSettingInterface::instance() ; //no owner ship
@@ -63,21 +68,27 @@
     
     //create the effect engine
     mEffectEngine = new GlxEffectEngine();
-
+    mItemIndex = 1;
+    
+    mBackGroundItem = new HbIconItem( this );
+    mBackGroundItem->setBrush( QBrush( Qt::black ) );
+    mAnimItem = new HbIconItem( this );
+    mAnimItem->setAlignment( Qt::AlignCenter );
+    
     // Now load the view and the contents.
     // and then set the play icon to the button
-    mContinueButton = static_cast<HbPushButton*>(DocLoader->findWidget(GLXSLIDESHOW_PB));
-    mContinueButton->setIcon(HbIcon(GLXICON_PLAY));
+    mContinueButton = static_cast<HbPushButton*>( DocLoader->findWidget( GLXSLIDESHOW_PB ) );
+    mContinueButton->setIcon( HbIcon( GLXICON_PLAY ) );
     mContinueButton->hide();
     mIsPause = false;
 
     for ( int i = 0; i < NBR_ITEM ; i++) {
-        mIconItems[i] = new HbIconItem(this);
-        mIconItems[i]->setBrush(QBrush(Qt::black));
-        mIconItems[i]->setAlignment( Qt::AlignCenter );
-        mIconItems[i]->setObjectName( QString( "SlideShowIcon%1" ).arg( i ) );
-    }
-
+        mSelIndex[ i ] = -1;
+        mIconItems[ i ] = new HbIconItem( this );
+        mIconItems[ i ]->setAlignment( Qt::AlignCenter );
+        mIconItems[ i ]->setObjectName( QString( "SlideShowIcon%1" ).arg( i ) );
+    }    
+    
     mSlideTimer = new QTimer();
     mItemList.clear();    
 
@@ -111,7 +122,7 @@
     TRACER("GlxSlideShowWidget::cleanUp()");
     removeConnections();
 
-    if(mEffectEngine) {
+    if( mEffectEngine ) {
         mEffectEngine->deRegisterEffect( QString("HbIconItem") );    
         delete mEffectEngine;
         mEffectEngine = NULL;
@@ -121,11 +132,22 @@
         delete mIconItems[i] ;
         mIconItems[i] = NULL;
     }
+    
+    delete mBackGroundItem ;
+    mBackGroundItem = NULL;
+    
+    delete mAnimItem;
+    mAnimItem = NULL;
 
-    if(mSlideTimer) {
+    if( mSlideTimer ) {
         delete mSlideTimer;
         mSlideTimer = NULL;
     }
+    
+    if ( mErrorNote ) {
+        delete mErrorNote ;
+        mErrorNote = NULL;
+    }
 
     clearCurrentModel();
     HbEffect::remove( QString("HbIconItem"), QString(":/data/transition.fxml"), QString( "Move" ));
@@ -133,7 +155,19 @@
     HbEffect::remove( QString("HbIconItem"), QString(":/data/transitionright.fxml"), QString( "RightMove" ));
 }
 
-void GlxSlideShowWidget::setModel (QAbstractItemModel *model)
+QGraphicsItem * GlxSlideShowWidget::animationItem() 
+{ 
+    mAnimItem->setIcon( getIcon( mSelIndex[ mItemIndex ] ) ); 
+    return mAnimItem;
+}
+
+void GlxSlideShowWidget::updateAnimationItem() 
+{
+    mIconItems[ mItemIndex ]->setIcon( HbIcon() );
+    mAnimItem->setZValue( mAnimItem->zValue() + 10 );
+}
+
+void GlxSlideShowWidget::setModel ( QAbstractItemModel *model )
 {
     TRACER("GlxSlideShowWidget::setModel()");
     if ( model == mModel ) {
@@ -145,16 +179,19 @@
     resetSlideShow();
 }
 
-void GlxSlideShowWidget::setItemGeometry(QRect screenRect)
+void GlxSlideShowWidget::setItemGeometry( QRect screenRect )
 {
     TRACER("GlxSlideShowWidget::setItemGeometry()");
     int index = mItemIndex;
     mScreenRect = screenRect;   
-    mIconItems[index]->setGeometry(mScreenRect);
-    index = ( mItemIndex + 1) % NBR_ITEM;
-    mIconItems[index]->setGeometry( QRect( mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) );
+    mIconItems[ index ]->setGeometry( mScreenRect );
+    index = ( mItemIndex + 1 ) % NBR_ITEM;
+    mIconItems[ index ]->setGeometry( QRect( mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) );
     index = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1;    
-    mIconItems[index]->setGeometry( QRect( -mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) );     
+    mIconItems[ index ]->setGeometry( QRect( -mScreenRect.width(), mScreenRect.top(), mScreenRect.width(), mScreenRect.height() ) );
+    mBackGroundItem->setGeometry( mScreenRect );
+    int xPos = ( mScreenRect.width() - mScreenRect.height() ) >> 1 ;
+    mAnimItem->setGeometry( QRect( xPos, -xPos, mScreenRect.height(), mScreenRect.width() ) );
 }
 
 void GlxSlideShowWidget::triggeredEffect()
@@ -176,22 +213,16 @@
 
 void GlxSlideShowWidget::effectFinshed()
 {
-    TRACER("GlxSlideShowWidget::effectFinshed()");
-    //To:Do boundery condition or last item check implemented after behaviour of slide show clear
-    int rowCount = mModel->rowCount();
     GLX_LOG_INFO2("GlxSlideShowWidget::effectFinshed() before image selected index %d array index %d", mSelIndex, mItemIndex); 
 
-    mSelIndex = ( ++mSelIndex ) % rowCount;
     mItemIndex = ( ++mItemIndex ) % NBR_ITEM;
-    mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole );
-    mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex );
-    setIconItems( MOVE_FORWARD );
+    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole );
+    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex );
+    setNextItemIcon();
   
     GLX_LOG_INFO2("GlxSlideShowWidget::effectFinshed() after image selected index %d array index %d ", mSelIndex, mItemIndex);
     
-    if ( mIsPause == false ) {
-        mSlideTimer->start( mSettings->slideShowDelayTime() );  
-    } 
+    startSlideShow();
     mItemList.clear();
     emit indexchanged(); // on each item change
 }
@@ -211,7 +242,7 @@
     cancelEffect();
     mContinueButton->setZValue( this->zValue() + 2);
     mContinueButton->show() ;
-    emit slideShowEvent(UI_ON_EVENT);
+    emit slideShowEvent( UI_ON_EVENT );
 }
 
 void GlxSlideShowWidget::continueSlideShow(bool checked)
@@ -219,11 +250,11 @@
     Q_UNUSED( checked )
     TRACER("GlxSlideShowWidget::continueSlideShow()");
     mIsPause = false;
-    if ( mModel &&  mModel->rowCount() > 1 ) {
+    if ( mModel &&  mSlideShowItemCount > 1 ) {
         mSlideTimer->start( mSettings->slideShowDelayTime() ); 
     }
     mContinueButton->hide(); 
-    emit slideShowEvent(UI_OFF_EVENT);
+    emit slideShowEvent( UI_OFF_EVENT );
 }
 
 void GlxSlideShowWidget::dataChanged(QModelIndex startIndex, QModelIndex endIndex)
@@ -231,20 +262,16 @@
     Q_UNUSED( endIndex )
     TRACER("GlxSlideShowWidget::dataChanged()");
     GLX_LOG_INFO2("GlxSlideShowWidget::dataChanged startIndex = %d mSelIndex = %d ", startIndex.row(), mSelIndex  );
-    int deltaIndex = startIndex.row() - mSelIndex;
 
-    if ( deltaIndex <= 1 && deltaIndex >= -1 ) {
-        int index = ( mItemIndex + deltaIndex + NBR_ITEM ) % NBR_ITEM; //calculated the array index in which data sould be updated
-        GLX_LOG_INFO2("GlxSlideShowWidget::dataChanged index = %d mSelItemIndex = %d ", index, mItemIndex );
+    if ( HbEffect::effectRunning( mAnimItem ) ) {
+        return ;
+    }
     
-        QVariant variant = mModel->data( startIndex, GlxFsImageRole );
-        if ( variant.isValid() &&  variant.canConvert<HbIcon> () ) {
-            mIconItems[index]->setIcon ( variant.value<HbIcon>() ) ;
+    for( int i = 0; i < NBR_ITEM; ++i ) {
+        if ( mSelIndex[ i ] == startIndex.row() ) {
+            mIconItems[ i ]->setIcon( getIcon( startIndex.row() ) );
         }
-        else {
-            mIconItems[index]->setIcon ( HbIcon() ) ; 
-        }
-    }	
+    }
 }
 
 void GlxSlideShowWidget::rowsInserted(const QModelIndex &parent, int start, int end)
@@ -253,6 +280,9 @@
     Q_UNUSED(parent);
     Q_UNUSED(start);
     Q_UNUSED(end);
+    if ( HbEffect::effectRunning( mAnimItem ) ) {
+        return ;
+    }
     resetSlideShow();  
 }
 
@@ -284,12 +314,13 @@
 void GlxSlideShowWidget::orientationChanged(QRect screenRect)
 {
     TRACER("GlxSlideShowWidget::orientationChanged()");
+    mAnimItem->setIcon( HbIcon() );
+    mAnimItem->setZValue( mAnimItem->zValue() - 10 );
     cancelEffect();
     setItemGeometry( screenRect);
     resetSlideShow();
 }
 
-
 void GlxSlideShowWidget::leftGesture(int value)
 {
     Q_UNUSED(value)
@@ -313,14 +344,11 @@
     Q_UNUSED(status)
     TRACER("GlxSlideShowWidget::leftMoveEffectFinished()");
     GLX_LOG_INFO1("GlxSlideShowWidget::leftMoveEffectFinished() %d status", status.reason);
-
-    int rowCount = mModel->rowCount();
-    mSelIndex = ( ++mSelIndex ) % rowCount;
+   
     mItemIndex = ( ++mItemIndex ) % NBR_ITEM;
-    mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole );
-    mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex );
-
-    setIconItems( MOVE_FORWARD );
+    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole );
+    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex );
+    setNextItemIcon();
     startSlideShow();
     emit indexchanged(); // on left swipe
 }
@@ -331,13 +359,10 @@
     TRACER ( "GlxSlideShowWidget::rightMoveEffectFinished( ) ");
     GLX_LOG_INFO1("GlxSlideShowWidget::rightMoveEffectFinished() %d status", status.reason);
 
-    int rowCount = mModel->rowCount();
-    mSelIndex = mSelIndex ? --mSelIndex : rowCount - 1;
     mItemIndex = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1;
-    mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxFocusIndexRole );
-    mModel->setData( mModel->index(mSelIndex, 0), mSelIndex, GlxVisualWindowIndex );
-
-    setIconItems( MOVE_BACKWARD );
+    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxFocusIndexRole );
+    mModel->setData( mModel->index( 0, 0 ), mSelIndex[ mItemIndex ], GlxVisualWindowIndex );
+    setPreItemIcon();
     startSlideShow();
     emit indexchanged(); // on right swipe
 } 
@@ -374,7 +399,11 @@
 {
     TRACER ( "GlxSlideShowWidget::startSlideShow( ) ");
     GLX_LOG_INFO1 ( "GlxSlideShowWidget::startSlideShow( ) is pause %d", mIsPause);    
-    if ( mIsPause == false && mModel &&  mModel->rowCount() > 1 ) {
+    
+    if ( mSlideShowItemCount == 0 ) { 
+        showErrorNote();
+    }
+    if ( mIsPause == false && mModel &&  mSlideShowItemCount > 1 ) {
         mSlideTimer->start( mSettings->slideShowDelayTime() );  
     }    
 }
@@ -396,10 +425,6 @@
         disconnect(mModel, SIGNAL(destroyed()), this, SLOT( modelDestroyed()));
         mModel = NULL ;
     }
-/*
-    disconnect(mModel, SIGNAL(destroyed()), this, SLOT(_q_modelDestroyed()));
-    disconnect(mModel, SIGNAL(rowsAboutToBeRemoved(QModelIndex,int,int)), this, SLOT(rowsAboutToBeRemoved(QModelIndex,int,int)));
- */	
 }
 
 void GlxSlideShowWidget::initializeNewModel()
@@ -413,70 +438,30 @@
     }	
 }
 
-
 void GlxSlideShowWidget::resetSlideShow()
 {
     TRACER("GlxSlideShowWidget::resetSlideShow()" );
-	if(! mModel) {
+	if(  mModel == NULL || mModel->rowCount() == 0 ) {
 		return;
 	}
-    QVariant variant = mModel->data( mModel->index( mSelIndex, 0 ), GlxFocusIndexRole );
-    if ( variant.isValid() &&  variant.canConvert<int> () ) {
-        mSelIndex = variant.value<int>() ;
-        GLX_LOG_INFO1("GlxSlideShowWidget::resetSlideShow() selected index %d", mSelIndex ); 
-    }
-
-    variant = mModel->data( mModel->index( mSelIndex, 0 ), GlxFsImageRole );
-    if ( variant.isValid() &&  variant.canConvert<HbIcon> () ) {
-        mIconItems[mItemIndex]->setIcon ( variant.value<HbIcon>() ) ; 
-    }
-    else {
-        mIconItems[mItemIndex]->setIcon ( HbIcon() ) ; 
-    }
-    
-    setIconItems(MOVE_FORWARD);
-    setIconItems(MOVE_BACKWARD);
-    if ( mIsPause == false && mModel &&  mModel->rowCount() > 1 ) {
-        mSlideTimer->start( mSettings->slideShowDelayTime() );  
-    }  
-}
-
-void GlxSlideShowWidget::setIconItems( int moveDir )
-{
-    TRACER("GlxSlideShowWidget::setIconItems()");
-    int index = 0, itemIndex = 0;
-    int rowCount = mModel->rowCount();
-    GLX_LOG_INFO1("GlxSlideShowWidget::setIconItems() rowcount %d ", rowCount);
-
-    if ( rowCount == 0 ) {
-        return ;
-    }
-    
-    if ( moveDir == MOVE_FORWARD ) {
-        index = ( mSelIndex + 1 ) % rowCount;
-        itemIndex = ( mItemIndex + 1) % NBR_ITEM;
-    }
-    else {
-        index = mSelIndex ? mSelIndex - 1 : rowCount - 1;  
-        itemIndex = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1; 
-    }
-
-    GLX_LOG_INFO4("GlxSlideShowWidget::setIconItems() image selected index %d array index %d index %d icon index %d", mSelIndex, mItemIndex, index, itemIndex);
-
-    QVariant variant = mModel->data( mModel->index( index, 0 ), GlxFsImageRole );
-    if ( variant.isValid() &&  variant.canConvert<HbIcon> () ) {
-        mIconItems[itemIndex]->setIcon ( variant.value<HbIcon>() ) ; 
-    }
-    else {
-        mIconItems[itemIndex]->setIcon ( HbIcon() ) ;
-    } 
+	
+	mSlideShowItemCount = mModel->rowCount();
+	setFocusItemIcon() ;
+	setNextItemIcon() ;
+	setPreItemIcon() ;
+	startSlideShow();
+	
+	qDebug( "GlxSlideShowWidget::resetSlideShow slide show item count %d" , mSlideShowItemCount );
+	if ( mErrorNote && mErrorNote->isVisible() && mSlideShowItemCount > 1 ){
+	    hideErrorNote();
+	}
 }
 
 void GlxSlideShowWidget::moveImage(int nextIndex, int posX, const QString & move, char * callBack)
 {
     TRACER("GlxSlideShowWidget::MoveImage()");
 
-    if ( mModel->rowCount() <= 1 || mEffectEngine->isEffectRuning( mItemList ) ) {
+    if ( mSlideShowItemCount <= 1 || mEffectEngine->isEffectRuning( mItemList ) ) {
         return ;
     }
 
@@ -514,3 +499,123 @@
         disconnect( mContinueButton, SIGNAL( clicked(bool) ), this, SLOT( continueSlideShow(bool) ) );
     }
 }
+
+int GlxSlideShowWidget::getFocusIndex( )
+{
+    QVariant variant = mModel->data( mModel->index( 0, 0 ), GlxFocusIndexRole ) ;
+    if ( variant.isValid() && variant.canConvert< int > () ) {
+        return variant.value< int > ();
+    }
+    return -1;
+}
+
+HbIcon GlxSlideShowWidget::getIcon( int index )
+{
+    QVariant variant = mModel->data( mModel->index( index, 0 ), GlxFsImageRole );
+    if ( variant.isValid() &&  variant.canConvert< HbIcon > () ) {
+        return variant.value< HbIcon > () ;       
+    }
+    return HbIcon() ;
+}
+
+bool GlxSlideShowWidget::isCorrupt( int index )
+{
+    QVariant variant = mModel->data( mModel->index( index, 0 ), GlxImageCorruptRole );
+    if ( variant.isValid() && variant.canConvert< bool> () ) {
+        return variant.value< bool > () ;
+    }
+    return false ;
+}
+
+bool GlxSlideShowWidget::setFocusItemIcon( )
+{
+    int nbrItem = mModel->rowCount();
+    int focusIndex = getFocusIndex();
+    
+    for ( int i = 0; i < nbrItem ; ++i ) {
+        if ( isCorrupt( focusIndex  ) == false ) {  
+            qDebug( "GlxSlideShowWidget::setFocusItemIcon1 focus index %d" , focusIndex );
+            mIconItems[ mItemIndex ]->setIcon( getIcon( focusIndex ) ) ;
+            mSelIndex[ mItemIndex ] = focusIndex ;
+            mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxFocusIndexRole );
+            mModel->setData( mModel->index( 0, 0 ), focusIndex, GlxVisualWindowIndex );
+            return true;
+        }
+        focusIndex = ( focusIndex + 1 ) % nbrItem;
+    }
+    mSlideShowItemCount = 0;
+    return false;    
+}
+
+bool GlxSlideShowWidget::setNextItemIcon( )
+{
+    int nbrItem = mModel->rowCount();
+    int imageIndex = ( mSelIndex[ mItemIndex ] + 1 ) % nbrItem ;
+    int itemIndex = ( mItemIndex + 1 ) % NBR_ITEM ;
+    
+    for( int i = 1; i < nbrItem; ++i ) {
+       if ( isCorrupt( imageIndex ) == false ) {
+           mIconItems[ itemIndex ]->setIcon( getIcon( imageIndex ) );
+           mSelIndex[ itemIndex ] = imageIndex ;
+           return true;
+       }
+       imageIndex = ( imageIndex + 1 ) % nbrItem ;
+    }
+    
+    if ( isCorrupt( imageIndex ) ) {
+        mSlideShowItemCount = 0;
+    }
+    else {
+        mSlideShowItemCount = 1;
+    }
+    return false ;
+}
+
+bool GlxSlideShowWidget::setPreItemIcon()
+{
+    int nbrItem = mModel->rowCount() ;
+    int imageIndex = mSelIndex[ mItemIndex ] > 0 ? mSelIndex[ mItemIndex ] - 1 : nbrItem - 1 ;
+    int itemIndex = mItemIndex > 0 ? mItemIndex - 1 : NBR_ITEM - 1  ;
+    
+    for( int i = 1; i < nbrItem; ++i ) {
+        if ( isCorrupt( imageIndex ) == false ) {
+            mIconItems[ itemIndex ]->setIcon( getIcon( imageIndex ) ) ;
+            mSelIndex[ itemIndex ] = imageIndex ;
+            return true;        
+        }
+        imageIndex = imageIndex > 0 ? imageIndex - 1 : nbrItem - 1 ; 
+    }
+    if ( isCorrupt( imageIndex ) ) {
+        mSlideShowItemCount = 0;
+    }
+    else {
+        mSlideShowItemCount = 1;
+    }
+    return false;
+}
+
+void GlxSlideShowWidget::showErrorNote()
+{
+    if ( mErrorNote == NULL ){
+        mErrorNote = new HbLabel( QString( GLX_NOIMAGE_PLAY_SLIDESHOW ), this);
+        mErrorNote->setObjectName( "No Image" );
+        mErrorNote->setGeometry( mIconItems[ 0 ]->geometry() );
+        mErrorNote->setAlignment( Qt::AlignCenter );
+    }
+    
+    for( int i = 0; i < NBR_ITEM; ++i ){
+        mIconItems[ i ]->setVisible( false );
+    }
+    mErrorNote->setVisible( true );
+    emit slideShowEvent( UI_ON_EVENT );
+}
+
+void GlxSlideShowWidget::hideErrorNote()
+{
+    for( int i = 0; i < NBR_ITEM; ++i ){
+        mIconItems[ i ]->setVisible( true );
+    }
+    mErrorNote->setVisible( false );
+    emit slideShowEvent( UI_OFF_EVENT );
+}
+
--- a/ui/views/viewbase/inc/glxview.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/viewbase/inc/glxview.h	Wed Aug 18 09:48:53 2010 +0300
@@ -37,19 +37,28 @@
 Q_OBJECT
     
 public :
-    GlxView(qint32 id, QGraphicsItem *parent = 0 );
+    GlxView( qint32 id, QGraphicsItem *parent = 0 );
     virtual void activate() = 0;
     virtual void deActivate() = 0;
-    virtual void setModel(QAbstractItemModel *model) = 0;
+    virtual void setModel( QAbstractItemModel *model ) = 0;
 
-    virtual bool compare (qint32 id);
+    virtual bool compare ( qint32 id );
     virtual void addToolBar( HbToolBar *toolBar ) { Q_UNUSED(toolBar) }
     virtual void enableMarking() { }
     virtual void disableMarking() { }
-    virtual void handleUserAction(qint32 commandId) { Q_UNUSED(commandId) }
+    virtual void handleUserAction( qint32 commandId ) { Q_UNUSED(commandId) }
     virtual QItemSelectionModel * getSelectionModel() { return NULL ; }
     virtual void resetView() {}
-    virtual void initializeView(QAbstractItemModel *model) {Q_UNUSED(model)}
+    /*
+     * model - Model to retreive the initial set up data
+     * preView - previous view pointer to retrieve the mode , state information 
+     */
+    virtual void initializeView( QAbstractItemModel *model, GlxView *preView ) 
+    {
+        Q_UNUSED( model )
+        Q_UNUSED( preView )
+    }
+     
     inline qint32 viewId() { return mId;}
     QSize screenSize();
     QRect screenGeometry(); 
@@ -57,10 +66,8 @@
     virtual ~GlxView() {   }   
 	
 signals:
-    void actionTriggered(qint32 id);
-    void itemSpecificMenuTriggered(qint32,QPointF );
-    void gridItemSelected(const QModelIndex &);
-   
+    void actionTriggered( qint32 id );
+    void itemSpecificMenuTriggered( qint32,QPointF );
     
 private :
 	qint32 mId;	
--- a/ui/views/views.pro	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/views/views.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -32,11 +32,9 @@
         -lganeswidgets.dll \
         -lglxmodelwrapper.dll \
         -lglxviewutilities.dll \
-	 -lglxzoomwidget.dll \
-        -ldetailsnamelabel.dll \
-        -ldetailsnamelabelplugin.dll \
-        -ldetailsdescriptionedit.dll \
-        -ldetailsdescriptioneditplugin.dll
+	    -lglxzoomwidget.dll \
+        -lglxdetailscustomwidgets.dll \
+        -lglxdetailscustomplugin.dll
 
 DEFINES += BUILD_GLXVIEWS
 
@@ -55,8 +53,8 @@
           ../viewutilities/effectengine/inc \
           ../viewutilities/settingutility/inc \
           /epoc32/include/mw/hgwidgets \
-          ../detailscustomwidget/detailsnamelabel/inc \
-          ../detailscustomwidget/detailsdescriptionedit/inc
+          ../detailscustomwidget/detailscustomwidgets 
+          
 
 symbian: { 
 TARGET.UID3 = 0x200009EF
--- a/ui/viewutilities/effectengine/src/glxtransitioneffect.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewutilities/effectengine/src/glxtransitioneffect.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -50,44 +50,44 @@
             break;
             
         case GRID_TO_ALBUMLIST:
-            mEffectFileList.append( QString(":/data/gridtoalbumlisthide.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click4") );
+            mEffectFileList.append( QString( "view_hide_normal" ) );
+            mItemType.append( QString( "HbView" ) );
+            mEventType.append(QString( "click4" ) );
                         
-            mEffectFileList.append( QString(":/data/gridtoalbumlist.fxml"));
-            mItemType.append( QString("HbListView") );
-            mEventType.append(QString("click5") );
+            mEffectFileList.append( QString( "view_show_normal" ) );
+            mItemType.append( QString( "HbListView" ) );
+            mEventType.append( QString( "click5" ) );
             break;
              
         case ALBUMLIST_TO_GRID:
-            mEffectFileList.append( QString(":/data/albumlisttogrid.fxml"));
-            mItemType.append( QString("HbListView") );
-            mEventType.append(QString("click6") );
+            mEffectFileList.append( QString( "view_hide_back" ) );
+            mItemType.append( QString( "HbListView" ) );
+            mEventType.append( QString( "click6" ) );
                         
-            mEffectFileList.append( QString(":/data/albumlisttogridshow.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click7") );
+            mEffectFileList.append( QString( "view_show_back" ) );
+            mItemType.append( QString( "HbView" ) );
+            mEventType.append( QString( "click7" ) );
             break;
             
         case FULLSCREEN_TO_DETAIL :
-            mEffectFileList.append( QString(":/data/view_flip_hide.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click8") );
+            mEffectFileList.append( QString( "view_hide_normal_alt" ) );
+            mItemType.append( QString( "HbView" ) );
+            mEventType.append( QString( "click8" ) );
                         
-            mEffectFileList.append( QString(":/data/view_flip_show.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click9") );
+            mEffectFileList.append( QString( "view_show_normal_alt" ) );
+            mItemType.append( QString( "HbView" ) );
+            mEventType.append(QString( "click9" ) );
             mTransitionLater = true;
             break;
             
         case DETAIL_TO_FULLSCREEN :
-            mEffectFileList.append( QString(":/data/view_flip_hide.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click10") );
+            mEffectFileList.append( "view_hide_back_alt" );
+            mItemType.append( QString( "HbView" ) );
+            mEventType.append( QString( "click10" ) );
                         
-            mEffectFileList.append( QString(":/data/view_flip_show.fxml"));
-            mItemType.append( QString("HbView") );
-            mEventType.append(QString("click11") );
+            mEffectFileList.append( "view_show_back_alt" );
+            mItemType.append( QString( "HbView" ) );
+            mEventType.append( QString( "click11" ) );
             mTransitionLater = true;
             break;            
             
--- a/ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewutilities/effectplugin/inc/glxzoominoutplugin.h	Wed Aug 18 09:48:53 2010 +0300
@@ -20,6 +20,7 @@
 #define GLXZOOMINOUTEFFECTPLUGIN_H
 
 #include "glxeffectpluginbase.h"
+#include "glxlocalisationstrings.h"
 
 class GlxZoomInOutEffectPlugin : public GlxEffectPluginBase
 {
@@ -47,7 +48,7 @@
     /*
      * get the name of the effect, use to shown in the slide show setting view
      */
-    static QString effectName() { return QString ("ZoomInOut") ; }
+    static QString effectName() { return   (GLX_EFFECTS_ZOOMIN_ZOOMOUT) ; }
     
 private :
     QList <QString > mEffectFileList;
--- a/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewutilities/effectplugin/src/glxflipeffectplugin.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -18,6 +18,7 @@
 
 #include "glxflipeffectplugin.h"
 #include "glxuistd.h"
+#include "glxlocalisationstrings.h"
 
 GlxFlipEffectPlugin::GlxFlipEffectPlugin() : GlxEffectPluginBase( FLIP_EFFECT )
 {
@@ -36,7 +37,7 @@
 
 QString GlxFlipEffectPlugin::effectName() 
 { 
-    return ( "FLip" ) ; 
+    return GLX_EFFECTS_FLIP ; 
 }
 
 GlxFlipEffectPlugin::~GlxFlipEffectPlugin()
--- a/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewutilities/effectplugin/src/glxhelixeffectplugin.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -37,7 +37,7 @@
 
 QString GlxHelixEffectPlugin::effectName() 
 { 
-    return ( "Helix" ) ; 
+    return ( GLX_EFFECTS_ZOOM_AND_PAN ) ; 
 }
 
 GlxHelixEffectPlugin::~GlxHelixEffectPlugin()
--- a/ui/viewutilities/settingutility/inc/glxsetting.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewutilities/settingutility/inc/glxsetting.h	Wed Aug 18 09:48:53 2010 +0300
@@ -81,6 +81,18 @@
      */
     int slideShowEffectId( int index ) ;
     
+    /* 
+     * Returns Current Media Wall 3D effect Status
+     * This value is fetched from Central repository 
+     */
+    int mediaWall3DEffect();
+    
+    /*
+     * Set Media Wall 3D effect. True = 3D Effect On / False = 3D Effect Off 
+     * This data will be written to the Central Repository
+     */
+    void setmediaWall3DEffect( int index );
+    
 protected :
     /*
      * Constructor
@@ -109,6 +121,8 @@
     XQSettingsKey *mMediumCenRepKey;
     XQSettingsKey *mFastCenRepKey;
     
+    XQSettingsKey *m3DEffectCenRepKey;
+    
     static GlxSetting mObj;
 };
 
--- a/ui/viewutilities/settingutility/inc/glxsettinginterface.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewutilities/settingutility/inc/glxsettinginterface.h	Wed Aug 18 09:48:53 2010 +0300
@@ -82,6 +82,19 @@
      */
     virtual int slideShowEffectId( int index ) = 0;
     
+    
+    /* 
+     * Returns Current Media Wall 3D effect Status
+     * This value is fetched from Central repository 
+     */
+    virtual int mediaWall3DEffect() = 0 ;
+    
+    /*
+     * Set Media Wall 3D effect. True = 3D Effect On / False = 3D Effect Off 
+     * This data will be written to the Central Repository
+     */
+    virtual void setmediaWall3DEffect( int index ) = 0 ;
+    
 protected :
     /*
      * Constructor
--- a/ui/viewutilities/settingutility/src/glxsetting.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/viewutilities/settingutility/src/glxsetting.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -30,6 +30,7 @@
 const TUint32 KGlxMeduim  = 0x4;
 const TUint32 KGlxFast  = 0x5;
 const TUint32 KGlxSlideShowEffect[ ]  = { 0x6, 0x7, 0x8, 0x9 };
+const TUint32 KGlx3DEffect  = 0xA;
 const TUint32 KCRUidGallery = 0x20007194;
 
 GlxSetting GlxSetting::mObj ;
@@ -43,6 +44,7 @@
     mSlowCenRepKey = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxSlow );
     mMediumCenRepKey = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxMeduim );
     mFastCenRepKey = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlxFast );
+    m3DEffectCenRepKey = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery ,KGlx3DEffect );
 
     for ( int i = 0; i < NBR_SLIDESHOW_EFFECT; i++ ) {
         mSlideShowEffectCenRepKey[ i ] = new XQSettingsKey( XQSettingsKey::TargetCentralRepository, KCRUidGallery , KGlxSlideShowEffect[ i ] );
@@ -62,6 +64,7 @@
     delete mTransitionDelayCenrepKey;
     delete mTransitionEffectCenrepKey;
     delete mSettingsManager;
+    delete m3DEffectCenRepKey;
     
     for ( int i = 0 ; i < NBR_SLIDESHOW_EFFECT ; i++ ) {
         delete mSlideShowEffectCenRepKey[ i ];
@@ -136,3 +139,16 @@
     return mSettingsManager->readItemValue( * mSlideShowEffectCenRepKey[ index ] ).toInt() ;
 }
 
+int GlxSetting::mediaWall3DEffect()
+{
+    QVariant effectvalue = mSettingsManager->readItemValue(*m3DEffectCenRepKey);
+    return effectvalue.toInt();
+}
+
+void GlxSetting::setmediaWall3DEffect( int index )
+{
+    mSettingsManager->writeItemValue( *m3DEffectCenRepKey, index ) ;
+}
+
+
+
--- a/ui/widgets/bwins/glxzoomwidgetu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/widgets/bwins/glxzoomwidgetu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -9,34 +9,38 @@
 	?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 *)
-	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 11 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *)
-	?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 12 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void)
-	?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 13 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *)
-	?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 14 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void)
-	?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 15 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *)
-	?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 16 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF)
-	?activate@GlxZoomWidget@@QAEXXZ @ 17 NONAME ; void GlxZoomWidget::activate(void)
-	?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 18 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void)
-	?indexChanged@GlxZoomWidget@@QAEXH@Z @ 19 NONAME ; void GlxZoomWidget::indexChanged(int)
-	?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 20 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF)
-	?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void)
-	?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 22 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void)
-	?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 23 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 24 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int)
-	?indexChanged@GlxZoomWidget@@QAEXXZ @ 25 NONAME ; void GlxZoomWidget::indexChanged(void)
-	?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 26 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF)
-	?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 27 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *)
-	?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 28 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &)
-	?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 29 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const
-	?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 30 NONAME ; void GlxZoomWidget::decodedImageAvailable(void)
-	??_EGlxZoomWidget@@UAE@I@Z @ 31 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int)
-	??1GlxZoomWidget@@UAE@XZ @ 32 NONAME ; GlxZoomWidget::~GlxZoomWidget(void)
-	?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 33 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *)
-	?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 34 NONAME ; void GlxZoomWidget::pinchGestureReceived(int)
-	?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 35 NONAME ; void GlxZoomWidget::setWindowSize(class QSize)
-	?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 36 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void)
-	?animationFrameChanged@GlxZoomWidget@@QAEXH@Z @ 37 NONAME ; void GlxZoomWidget::animationFrameChanged(int)
-	?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *)
-	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 39 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int)
-	?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 40 NONAME ; void GlxZoomWidget::modelDestroyed(void)
+	?forceZoomToBackground@GlxZoomWidget@@QAEXXZ @ 11 NONAME ; void GlxZoomWidget::forceZoomToBackground(void)
+	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 12 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *)
+	?getFocusedImage@GlxZoomWidget@@AAE?AVQPixmap@@XZ @ 13 NONAME ; class QPixmap GlxZoomWidget::getFocusedImage(void)
+	?animateDoubleTap@GlxZoomWidget@@QAEXXZ @ 14 NONAME ; void GlxZoomWidget::animateDoubleTap(void)
+	?setModel@GlxZoomWidget@@QAEXPAVQAbstractItemModel@@@Z @ 15 NONAME ; void GlxZoomWidget::setModel(class QAbstractItemModel *)
+	?finalizeWidgetTransform@GlxZoomWidget@@AAEXXZ @ 16 NONAME ; void GlxZoomWidget::finalizeWidgetTransform(void)
+	?executeGestureEvent@GlxZoomWidget@@AAE_NPAVQGraphicsItem@@PAVQGestureEvent@@@Z @ 17 NONAME ; bool GlxZoomWidget::executeGestureEvent(class QGraphicsItem *, class QGestureEvent *)
+	?zoomImage@GlxZoomWidget@@AAEXMVQPointF@@@Z @ 18 NONAME ; void GlxZoomWidget::zoomImage(float, class QPointF)
+	?activate@GlxZoomWidget@@QAEXXZ @ 19 NONAME ; void GlxZoomWidget::activate(void)
+	?connectDecodeRequestToPinchEvent@GlxZoomWidget@@QAEXXZ @ 20 NONAME ; void GlxZoomWidget::connectDecodeRequestToPinchEvent(void)
+	?indexChanged@GlxZoomWidget@@QAEXH@Z @ 21 NONAME ; void GlxZoomWidget::indexChanged(int)
+	?animateZoomIn@GlxZoomWidget@@QAEXVQPointF@@@Z @ 22 NONAME ; void GlxZoomWidget::animateZoomIn(class QPointF)
+	?getStaticMetaObject@GlxZoomWidget@@SAABUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const & GlxZoomWidget::getStaticMetaObject(void)
+	?animationTimeLineFinished@GlxZoomWidget@@QAEXXZ @ 24 NONAME ; void GlxZoomWidget::animationTimeLineFinished(void)
+	?isFocussedItemCorrupt@GlxZoomWidget@@AAE_NXZ @ 25 NONAME ; bool GlxZoomWidget::isFocussedItemCorrupt(void)
+	?qt_metacall@GlxZoomWidget@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 26 NONAME ; int GlxZoomWidget::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?zoomWidgetMovedBackground@GlxZoomWidget@@IAEXH@Z @ 27 NONAME ; void GlxZoomWidget::zoomWidgetMovedBackground(int)
+	?indexChanged@GlxZoomWidget@@QAEXXZ @ 28 NONAME ; void GlxZoomWidget::indexChanged(void)
+	?animateZoomOut@GlxZoomWidget@@QAEXVQPointF@@@Z @ 29 NONAME ; void GlxZoomWidget::animateZoomOut(class QPointF)
+	?timerEvent@GlxZoomWidget@@MAEXPAVQTimerEvent@@@Z @ 30 NONAME ; void GlxZoomWidget::timerEvent(class QTimerEvent *)
+	?adjustGestureCenter@GlxZoomWidget@@AAEXAAVQPointF@@AAM@Z @ 31 NONAME ; void GlxZoomWidget::adjustGestureCenter(class QPointF &, float &)
+	?stepZoom@GlxZoomWidget@@IAEXXZ @ 32 NONAME ; void GlxZoomWidget::stepZoom(void)
+	?metaObject@GlxZoomWidget@@UBEPBUQMetaObject@@XZ @ 33 NONAME ; struct QMetaObject const * GlxZoomWidget::metaObject(void) const
+	?decodedImageAvailable@GlxZoomWidget@@QAEXXZ @ 34 NONAME ; void GlxZoomWidget::decodedImageAvailable(void)
+	??_EGlxZoomWidget@@UAE@I@Z @ 35 NONAME ; GlxZoomWidget::~GlxZoomWidget(unsigned int)
+	??1GlxZoomWidget@@UAE@XZ @ 36 NONAME ; GlxZoomWidget::~GlxZoomWidget(void)
+	?sceneEventFilter@GlxZoomWidget@@MAE_NPAVQGraphicsItem@@PAVQEvent@@@Z @ 37 NONAME ; bool GlxZoomWidget::sceneEventFilter(class QGraphicsItem *, class QEvent *)
+	?pinchGestureReceived@GlxZoomWidget@@IAEXH@Z @ 38 NONAME ; void GlxZoomWidget::pinchGestureReceived(int)
+	?setZoomParams@GlxZoomWidget@@AAEXXZ @ 39 NONAME ; void GlxZoomWidget::setZoomParams(void)
+	?setWindowSize@GlxZoomWidget@@QAEXVQSize@@@Z @ 40 NONAME ; void GlxZoomWidget::setWindowSize(class QSize)
+	?retreiveFocusedImage@GlxZoomWidget@@AAEXXZ @ 41 NONAME ; void GlxZoomWidget::retreiveFocusedImage(void)
+	?modelDestroyed@GlxZoomWidget@@IAEXXZ @ 42 NONAME ; void GlxZoomWidget::modelDestroyed(void)
+	?tr@GlxZoomWidget@@SA?AVQString@@PBD0@Z @ 43 NONAME ; class QString GlxZoomWidget::tr(char const *, char const *)
+	?trUtf8@GlxZoomWidget@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString GlxZoomWidget::trUtf8(char const *, char const *, int)
 
--- a/ui/widgets/eabi/glxzoomwidgetu.def	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/widgets/eabi/glxzoomwidgetu.def	Wed Aug 18 09:48:53 2010 +0300
@@ -8,41 +8,45 @@
 	_ZN13GlxZoomWidget12indexChangedEv @ 7 NONAME
 	_ZN13GlxZoomWidget13animateZoomInE7QPointF @ 8 NONAME
 	_ZN13GlxZoomWidget13setWindowSizeE5QSize @ 9 NONAME
-	_ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 10 NONAME
-	_ZN13GlxZoomWidget15getFocusedImageEv @ 11 NONAME
-	_ZN13GlxZoomWidget15setMinMaxZValueEii @ 12 NONAME
-	_ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 13 NONAME
-	_ZN13GlxZoomWidget16staticMetaObjectE @ 14 NONAME DATA 16
-	_ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 15 NONAME
-	_ZN13GlxZoomWidget17sendDecodeRequestEi @ 16 NONAME
-	_ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 17 NONAME
-	_ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 18 NONAME
-	_ZN13GlxZoomWidget19getStaticMetaObjectEv @ 19 NONAME
-	_ZN13GlxZoomWidget20pinchGestureReceivedEi @ 20 NONAME
-	_ZN13GlxZoomWidget20retreiveFocusedImageEv @ 21 NONAME
-	_ZN13GlxZoomWidget21animationFrameChangedEi @ 22 NONAME
-	_ZN13GlxZoomWidget21decodedImageAvailableEv @ 23 NONAME
-	_ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 24 NONAME
-	_ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 25 NONAME
-	_ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 26 NONAME
-	_ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 27 NONAME
-	_ZN13GlxZoomWidget7cleanUpEv @ 28 NONAME
-	_ZN13GlxZoomWidget8activateEv @ 29 NONAME
-	_ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 30 NONAME
-	_ZN13GlxZoomWidget9zoomImageEf7QPointF @ 31 NONAME
-	_ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 32 NONAME
-	_ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 33 NONAME
-	_ZN13GlxZoomWidgetD0Ev @ 34 NONAME
-	_ZN13GlxZoomWidgetD1Ev @ 35 NONAME
-	_ZN13GlxZoomWidgetD2Ev @ 36 NONAME
-	_ZNK13GlxZoomWidget10metaObjectEv @ 37 NONAME
-	_ZTI13GlxZoomWidget @ 38 NONAME
-	_ZTV13GlxZoomWidget @ 39 NONAME
-	_ZThn16_N13GlxZoomWidgetD0Ev @ 40 NONAME
-	_ZThn16_N13GlxZoomWidgetD1Ev @ 41 NONAME
-	_ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 42 NONAME
-	_ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 43 NONAME
-	_ZThn8_N13GlxZoomWidgetD0Ev @ 44 NONAME
-	_ZThn8_N13GlxZoomWidgetD1Ev @ 45 NONAME
-	_ZN13GlxZoomWidget14modelDestroyedEv @ 46 NONAME
+	_ZN13GlxZoomWidget13setZoomParamsEv @ 10 NONAME
+	_ZN13GlxZoomWidget14animateZoomOutE7QPointF @ 11 NONAME
+	_ZN13GlxZoomWidget14modelDestroyedEv @ 12 NONAME
+	_ZN13GlxZoomWidget15getFocusedImageEv @ 13 NONAME
+	_ZN13GlxZoomWidget15setMinMaxZValueEii @ 14 NONAME
+	_ZN13GlxZoomWidget16animateDoubleTapEv @ 15 NONAME
+	_ZN13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 16 NONAME
+	_ZN13GlxZoomWidget16staticMetaObjectE @ 17 NONAME DATA 16
+	_ZN13GlxZoomWidget17limitRequiredSizeER6QSizeF @ 18 NONAME
+	_ZN13GlxZoomWidget17sendDecodeRequestEi @ 19 NONAME
+	_ZN13GlxZoomWidget19adjustGestureCenterER7QPointFRf @ 20 NONAME
+	_ZN13GlxZoomWidget19executeGestureEventEP13QGraphicsItemP13QGestureEvent @ 21 NONAME
+	_ZN13GlxZoomWidget19getStaticMetaObjectEv @ 22 NONAME
+	_ZN13GlxZoomWidget20pinchGestureReceivedEi @ 23 NONAME
+	_ZN13GlxZoomWidget20retreiveFocusedImageEv @ 24 NONAME
+	_ZN13GlxZoomWidget21decodedImageAvailableEv @ 25 NONAME
+	_ZN13GlxZoomWidget21forceZoomToBackgroundEv @ 26 NONAME
+	_ZN13GlxZoomWidget21isFocussedItemCorruptEv @ 27 NONAME
+	_ZN13GlxZoomWidget23finalizeWidgetTransformEv @ 28 NONAME
+	_ZN13GlxZoomWidget25animationTimeLineFinishedEv @ 29 NONAME
+	_ZN13GlxZoomWidget25zoomWidgetMovedBackgroundEi @ 30 NONAME
+	_ZN13GlxZoomWidget32connectDecodeRequestToPinchEventEv @ 31 NONAME
+	_ZN13GlxZoomWidget7cleanUpEv @ 32 NONAME
+	_ZN13GlxZoomWidget8activateEv @ 33 NONAME
+	_ZN13GlxZoomWidget8setModelEP18QAbstractItemModel @ 34 NONAME
+	_ZN13GlxZoomWidget8stepZoomEv @ 35 NONAME
+	_ZN13GlxZoomWidget9zoomImageEf7QPointF @ 36 NONAME
+	_ZN13GlxZoomWidgetC1EP13QGraphicsItem @ 37 NONAME
+	_ZN13GlxZoomWidgetC2EP13QGraphicsItem @ 38 NONAME
+	_ZN13GlxZoomWidgetD0Ev @ 39 NONAME
+	_ZN13GlxZoomWidgetD1Ev @ 40 NONAME
+	_ZN13GlxZoomWidgetD2Ev @ 41 NONAME
+	_ZNK13GlxZoomWidget10metaObjectEv @ 42 NONAME
+	_ZTI13GlxZoomWidget @ 43 NONAME
+	_ZTV13GlxZoomWidget @ 44 NONAME
+	_ZThn16_N13GlxZoomWidgetD0Ev @ 45 NONAME
+	_ZThn16_N13GlxZoomWidgetD1Ev @ 46 NONAME
+	_ZThn8_N13GlxZoomWidget10sceneEventEP6QEvent @ 47 NONAME
+	_ZThn8_N13GlxZoomWidget16sceneEventFilterEP13QGraphicsItemP6QEvent @ 48 NONAME
+	_ZThn8_N13GlxZoomWidgetD0Ev @ 49 NONAME
+	_ZThn8_N13GlxZoomWidgetD1Ev @ 50 NONAME
 
--- a/ui/widgets/glxzoomwidget/glxzoomwidget.pro	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/widgets/glxzoomwidget/glxzoomwidget.pro	Wed Aug 18 09:48:53 2010 +0300
@@ -49,6 +49,8 @@
 HEADERS += inc/glxzoomwidget.h inc/glxzoomwidget_global.h
 SOURCES += src/glxzoomwidget.cpp
 
+DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
+
 defBlock = \      
 "$${LITERAL_HASH}if defined(EABI)" \
 "DEFFILE  ../eabi/glxzoomwidget.def" \
--- a/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/widgets/glxzoomwidget/inc/glxzoomwidget.h	Wed Aug 18 09:48:53 2010 +0300
@@ -33,6 +33,8 @@
 
 const int MAXZVALUE = 100;
 const int MINZVALUE = 0;
+const int NOOFSTEPS = 20;
+const float MAXDTZOOMIN = 3.5;
 
 class GLXZOOMWIDGETSHARED_EXPORT GlxZoomWidget : public HbScrollArea
 {
@@ -53,11 +55,13 @@
      * This is an overloaded function when an index is changes due to deletion 
      */
     void indexChanged();
+    void forceZoomToBackground();
     
     signals:
     void pinchGestureReceived(int index);
     void zoomWidgetMovedBackground(int index);
-
+    void stepZoom();
+    
     public slots:
     //for Decoder support
     void decodedImageAvailable();
@@ -66,9 +70,11 @@
 	//for animation effects
 	void animateZoomIn(QPointF animRefPoint);
 	void animateZoomOut(QPointF animRefPoint);
-	void animationFrameChanged(int frameNumber);
 	void animationTimeLineFinished();
 
+	//animate double tap
+	void animateDoubleTap();
+	
     protected:
     bool sceneEvent(QEvent *event);
     bool sceneEventFilter(QGraphicsItem *watched,QEvent *event);
@@ -94,23 +100,36 @@
     void finalizeWidgetTransform();
     //get the focused image from the model
     QPixmap getFocusedImage();
+    //set all the zoom parameters as per the circumstances
+    void setZoomParams();
 
+    bool isFocussedItemCorrupt();
     //data members
-    private:
+private:
+    //to be in sync with the model
+    QAbstractItemModel *mModel;
+
+    //view Z values 
+    //might push to layouts later
+    int mMinZValue ;
+    int mMaxZValue ;
+    int mTimerId;
+
+    //status flags
+    //To check if the decode request has already been send or not
+    bool mImageDecodeRequestSend; 
+    //To check if the pinch gesture is in progress to block any events to HbScrollArea
+    bool mPinchGestureOngoing; 
+    //to check if decoded image is available
+    bool mDecodedImageAvailable;
+    //to check if the widget is actually in Foreground
+    bool mZoomOngoing;
+
     //view widgets
     QGraphicsPixmapItem *mZoomItem;   //Item containing the pixmap
     QGraphicsWidget *mZoomWidget;     //container :all scaling and transforms would be done on this widget
     HbIconItem* mBlackBackgroundItem; //for setting black background
 
-    //view Z values 
-    //might push to layouts later
-
-    int mMinZValue ;
-    int mMaxZValue ;
-
-
-    //to be in sync with the model
-    QAbstractItemModel *mModel;
     int mFocusIndex;
 
     //size parameter
@@ -129,14 +148,13 @@
     //for Decoder support
     GlxImageDecoderWrapper* mImageDecoder;
 
-    //status flags
-	//To check if the decode request has already been send or not
-    bool mImageDecodeRequestSend; 
-	//To check if the pinch gesture is in progress to block any events to HbScrollArea
-    bool mPinchGestureOngoing; 
-    //to check if decoded image is available
-    bool mDecodedImageAvailable;
-    int mTimerId;
-
+    //stores the incremental scalingfactor(sf) while performing double tap animation
+    qreal mIncSF;
+    //stores the scalingfactor increment applicable for each step of double tap animation
+    qreal msfInc;
+    //stores the item size before performing zoomout(zo)
+    QSizeF mzoSize;
+    //counter to track the double tap animation steps
+    int mdoubletapSteps;
 };
 #endif  //GLXZOOMWIDGET_H
--- a/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Tue Jul 06 14:16:16 2010 +0300
+++ b/ui/widgets/glxzoomwidget/src/glxzoomwidget.cpp	Wed Aug 18 09:48:53 2010 +0300
@@ -19,11 +19,17 @@
 #include <hbiconitem.h>
 #include <QTimeLine>
 #include <QGesture>
+#include <hbinstance.h>
 #include "glximagedecoderwrapper.h"
 #include "glxmodelparm.h"
 #include "glxzoomwidget.h"
 
-GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), mModel(NULL), mMinZValue(MINZVALUE), mMaxZValue(MAXZVALUE), mImageDecodeRequestSend(false), mPinchGestureOngoing(false), mDecodedImageAvailable(false), mTimerId(0)
+GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), 
+            mModel(NULL), mMinZValue(MINZVALUE), 
+            mMaxZValue(MAXZVALUE), mTimerId(0),
+            mImageDecodeRequestSend(false), 
+            mPinchGestureOngoing(false), mDecodedImageAvailable(false),
+            mZoomOngoing(false)
 {
     grabGesture(Qt::PinchGesture);
     grabGesture(Qt::TapGesture);
@@ -45,17 +51,18 @@
     //initializing the image decoder
     mImageDecoder = new GlxImageDecoderWrapper;
 
-	//inititalizing the timer for animation
-	m_AnimTimeLine = new QTimeLine(500, this);
-	m_AnimTimeLine->setFrameRange(0, 100);
-	connect(m_AnimTimeLine, SIGNAL(frameChanged(int)), this, SLOT(animationFrameChanged(int)));
-	connect(m_AnimTimeLine, SIGNAL(finished()), this, SLOT(animationTimeLineFinished()));
+	
+	//AA: signal and slot to perform double tap animation
+    //after every step redraw, signal is emitted to perform the next step
+	connect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap() ), Qt::QueuedConnection );
 }
 
 GlxZoomWidget::~GlxZoomWidget()
 {
     //disconnect all existing signals
     disconnect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ) );
+    //AA
+    disconnect( this, SIGNAL( stepZoom() ), this, SLOT( animateDoubleTap()));
     //no Null checks required
     delete mZoomItem;
 //    delete mZoomWidget; //as this is a content widegt it will automatically be deleted
@@ -83,11 +90,30 @@
     mWindowSize = windowSize;
     mBlackBackgroundItem->setGeometry(QRectF(QPointF(0,0), mWindowSize));
     //try to reset the max and min zoomed size here
+    //In case the zoom widget is in background reset it
+    if(!mZoomOngoing && mModel) {
+        retreiveFocusedImage();
+    }
+    setZoomParams();
+}
+
+void GlxZoomWidget::forceZoomToBackground()
+{
+    mBlackBackgroundItem->hide();
+    //push the widget back to background
+    setZValue(mMinZValue);
+    mZoomOngoing = false;
+    emit zoomWidgetMovedBackground(mFocusIndex);
+    //this actually resets the ZoomWidget and decoder
+    if(mImageDecoder) {
+        mImageDecoder->resetDecoder();
+    }
+    retreiveFocusedImage();
+
 }
 
 void GlxZoomWidget::indexChanged(int index)
 {
-    Q_UNUSED(index);
     if(mFocusIndex != index) {
         mImageDecoder->resetDecoder();//reset the decoder first to cancel pending tasks
         mImageDecodeRequestSend = false;
@@ -139,7 +165,7 @@
 
 bool GlxZoomWidget::sceneEventFilter(QGraphicsItem *watched,QEvent *event)
 {
-     qDebug("GlxCoverFlow::eventFilter " );
+    qDebug( "GlxZoomWidget::sceneEventFilter enter event type %d ", event->type() );
     bool consume = false;
     if (event->type() == QEvent::Gesture) {
         consume = executeGestureEvent(watched, static_cast<QGestureEvent*>(event));
@@ -162,17 +188,21 @@
             else {
                 killTimer(mTimerId);
                 mTimerId = 0;
-                animateZoomOut(gesture->position());
+                animateZoomOut(hbInstance->allMainWindows().first()->mapToScene(gesture->position().toPoint()));
             }
         }
         event->accept(gesture);
         return true;
     }
      if (QGesture *pinch = event->gesture(Qt::PinchGesture))  {
+         if (isFocussedItemCorrupt()){
+         return true;
+         }
        QPinchGesture* pinchG = static_cast<QPinchGesture *>(pinch);
        QPinchGesture::ChangeFlags changeFlags = pinchG->changeFlags();
        if (changeFlags & QPinchGesture::ScaleFactorChanged) {
             mPinchGestureOngoing = true;
+            mZoomOngoing = true;
             //bring the zoom widget to foreground
             setZValue(mMaxZValue);
             //show the black background
@@ -184,7 +214,7 @@
             qreal value = pinchG->scaleFactor() / pinchG->lastScaleFactor();
             QPointF center = pinchG->property("centerPoint").toPointF();
             //set the gesture center to the scene coordinates
-            QPointF sceneGestureCenter = source->sceneTransform().map(center);
+            QPointF sceneGestureCenter = hbInstance->allMainWindows().first()->mapToScene(center.toPoint());
             zoomImage(value, sceneGestureCenter);
 
         }
@@ -211,6 +241,7 @@
                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
            }
@@ -228,6 +259,10 @@
 
 void GlxZoomWidget::zoomImage(qreal zoomFactor, QPointF center)
 {
+        // Pinch event filtering for very small zoom factors
+    if (qAbs(1.0 - zoomFactor) < 0.007) {
+        return;
+    }
     adjustGestureCenter(center, zoomFactor);
     QSizeF requiredSize(mCurrentSize.width()*zoomFactor, mCurrentSize.height()*zoomFactor);
     limitRequiredSize(requiredSize);
@@ -259,6 +294,7 @@
 //makes sure that the gesture is on the screen center if the image is smaller than the screen
 void GlxZoomWidget::adjustGestureCenter(QPointF & gestureCenter, qreal& zoomFactor)
 {
+    /* commenting this tweak, not necessary, needs to be reimplemented for pinch: IN progress
     if(zoomFactor > 1 &&zoomFactor > 1.2 )  {
         zoomFactor = 1.2;
     }
@@ -266,6 +302,7 @@
     if(zoomFactor < 1 &&zoomFactor < 0.8 )   {
         zoomFactor = 0.8;
     }
+	*/
     QSizeF requiredSize(mCurrentSize.width()*zoomFactor, mCurrentSize.height()*zoomFactor);
     //keep smaller image centered
     if(mCurrentSize.width() <= mWindowSize.width() )
@@ -279,42 +316,49 @@
 
     }
     //maintains the boundary of the edges for zoom out conditions
-    if(zoomFactor < 1)
-    {
+    if(zoomFactor < 1) {
         QPointF itemOriginPos = mZoomWidget->sceneTransform().map(QPointF(0,0));
         bool hasWidthExceededWindow = mCurrentSize.width() > mWindowSize.width();
         bool hasHeightExceededWindow = mCurrentSize.height() > mWindowSize.height();
-        if(itemOriginPos.x() >= 0)  {
-        //image has crossed left boundry leaving blank space
-            if(hasWidthExceededWindow) {
+        if(hasWidthExceededWindow) {
+            bool hasItemCrossedBoundary = false;
+            if(itemOriginPos.x() >= -5)  {
+                //image has crossed left boundry leaving blank space
                 //stick the gesture to the left corner
                 gestureCenter.setX(itemOriginPos.x());
+                hasItemCrossedBoundary = true;
+            }
+        
+            //Check if the right boundry can be adjusted
+            if(itemOriginPos.x()+ mCurrentSize.width() <= mWindowSize.width()+5) {
+                //Image is before the right boundry leaving blank space
+                gestureCenter.setX(itemOriginPos.x()+ mCurrentSize.width() );
+                hasItemCrossedBoundary = true;
+            }
+            if((mCurrentSize.width() - mWindowSize.width() <= 20) && !hasItemCrossedBoundary) {
+                gestureCenter.setX(mWindowSize.width()/2 + (qAbs(itemOriginPos.x()) - 10));
             }
         }
-        //Check if the right boundry can be adjusted
-        if(itemOriginPos.x()+ mCurrentSize.width() <= mWindowSize.width()) {
+
+        if(hasHeightExceededWindow) {
+             bool hasItemCrossedBoundary = false;
+            //check if the upper boundry could be adjusted
+            if(itemOriginPos.y() >= -5) {
+                //image has crossed the upper boundry leaving blank space
+                //stick the image to the upper boundry
+                gestureCenter.setY(itemOriginPos.y());
+                hasItemCrossedBoundary = true;
+            }
+            //check if the lower boundry could be adjusted
+            if(itemOriginPos.y()+ mCurrentSize.height() <= mWindowSize.height()+5) {
                 //Image is before the right boundry leaving blank space
-                if(hasWidthExceededWindow) {
-                    //stick the gesture to the right corner
-                    gestureCenter.setX(itemOriginPos.x()+ mCurrentSize.width());
-                }
-        }
-        //check if the upper boundry could be adjusted
-        if(itemOriginPos.y() >= 0) {
-                //image has crossed the upper boundry leaving blank space
-                if(hasHeightExceededWindow) {
-                    //stick the image to the upper boundry
-                    gestureCenter.setY(itemOriginPos.y());
-                }
-        }
-        //check if the lower boundry could be adjusted
-        if(itemOriginPos.y()+ mCurrentSize.height() <= mWindowSize.height()) {
-        //Image is before the right boundry leaving blank space
-            if(hasHeightExceededWindow) {
                 //stick the image to the right corner
                 gestureCenter.setY(itemOriginPos.y()+ mCurrentSize.height());
+                hasItemCrossedBoundary = true;
             }
-
+            if((mCurrentSize.height() - mWindowSize.height() <= 20) && !hasItemCrossedBoundary) {
+                gestureCenter.setY(mWindowSize.height()/2 + (qAbs(itemOriginPos.y()) - 10));
+            }
         }
     }
     //control the zoom Factor to boundaries
@@ -460,48 +504,107 @@
 
 }
 
+void GlxZoomWidget::setZoomParams()
+{
+    if (mModel)  {
+        QVariant sizeVariant = mModel->data(mModel->index(mFocusIndex,0),GlxDimensionsRole);
+        QSize fsSize;
+        if(sizeVariant.isValid() &&  sizeVariant.canConvert<QSize> ()) {
+            fsSize = sizeVariant.toSize();
+            if(!(fsSize.width() < mWindowSize.width() && fsSize.height() < mWindowSize.height()))  {
+                fsSize.scale( mWindowSize, Qt::KeepAspectRatio);
+            }
+            mMaxScaleSize = fsSize;
+            mMaxScaleSize.scale(mWindowSize*13, Qt::KeepAspectRatio);
+            mMaxScaleDecSize = fsSize;
+            mMaxScaleDecSize.scale(mWindowSize*7, Qt::KeepAspectRatio);
+            mMinScaleSize = fsSize* 0.7;
+            mMinDecScaleSize = fsSize;
+        }
+    }
 
 
+}
+
 
 
 void GlxZoomWidget::animateZoomIn(QPointF animRefPoint)
 {
-      emit pinchGestureReceived(mFocusIndex);
-            //bring the zoom widget to foreground
-            setZValue(mMaxZValue);
-            //show the black background
-            mBlackBackgroundItem->setParentItem(parentItem());
-            mBlackBackgroundItem->setZValue(mMaxZValue - 1);
-            mBlackBackgroundItem->show();
-	m_AnimRefPoint = animRefPoint;
+    if (isFocussedItemCorrupt()){
+    return;
+    }
+    emit pinchGestureReceived(mFocusIndex);
+    //bring the zoom widget to foreground
+    mZoomOngoing = true;
+    setZValue(mMaxZValue);
+    //show the black background
+    mBlackBackgroundItem->setParentItem(parentItem());
+    mBlackBackgroundItem->setZValue(mMaxZValue - 1);
+    mBlackBackgroundItem->show();
+    m_AnimRefPoint = animRefPoint;
     QSizeF requiredSize = mItemSize;
-    requiredSize.scale(mWindowSize*3.5, Qt::KeepAspectRatio);
+    //MAXDTZOOMIN size is set to 3.5 times window size
+    requiredSize.scale(mWindowSize*MAXDTZOOMIN, Qt::KeepAspectRatio);
 	m_FinalAnimatedScaleFactor = requiredSize.width()/mMinDecScaleSize.width();
-	m_AnimTimeLine->setDirection(QTimeLine::Forward);
-	m_AnimTimeLine->start();
-  //  zoomImage(5, m_AnimRefPoint);
+	//initiale variable for double tap animation
+    mIncSF = 1;
+    //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
+    //SF has to always greater than 1 for upscaling, hence range for zoomout is [1,m_FinalAnimatedScaleFactor]
+    msfInc = (m_FinalAnimatedScaleFactor-1)/NOOFSTEPS;
+    //set the no. of steps for double tap animation 
+    mdoubletapSteps = NOOFSTEPS;
+    animateDoubleTap();
 
 }
 void GlxZoomWidget::animateZoomOut(QPointF animRefPoint)
 {
-	m_AnimRefPoint = animRefPoint;
-	m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width();
-	//m_AnimTimeLine->setDirection(QTimeLine::Backward);
-	m_AnimTimeLine->start();
+    m_AnimRefPoint = animRefPoint;
+    //Zoom out to FS (mMinDecScaleSize) from the currentsize
+    m_FinalAnimatedScaleFactor = mMinDecScaleSize.width()/mCurrentSize.width();
+    //initiale variable for double tap animation
+    mIncSF = 1;
+    //calculate the step increment SF for each step
+    msfInc = (1 - m_FinalAnimatedScaleFactor)/NOOFSTEPS;
+    //preserve the size when zoom out was initiated, requried for calculates applicable/req scale factor
+    mzoSize = mCurrentSize;
+    //set the no. of steps for double tap animation 
+    //AA:: the no.of steps are kept the same for zoomin/zoomout, however tweaking them can be considered
+    mdoubletapSteps = NOOFSTEPS;
+    animateDoubleTap();
+    //AA
+   
 }
-void GlxZoomWidget::animationFrameChanged(int frameNumber)
-{
-qreal scaleFactor = 1;
-	if(m_FinalAnimatedScaleFactor > 1) {
-        scaleFactor = (1.0 + (((m_FinalAnimatedScaleFactor - 1)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width());
-	}
-	if(m_FinalAnimatedScaleFactor < 1) {
-        scaleFactor = (m_FinalAnimatedScaleFactor+ (((1 - m_FinalAnimatedScaleFactor)/100)*frameNumber))/(mCurrentSize.width()/mMinDecScaleSize.width());
-	}
+
 
-	zoomImage(scaleFactor, m_AnimRefPoint);
-
-}
+void GlxZoomWidget::animateDoubleTap()
+    {
+    //calculate increamental scale factor based on the step and then calculate the applicable scale factor this step
+    //increamental SF works on the ImageSize when double tap started, applicable(required) SF calculates the delate SF
+    if(m_FinalAnimatedScaleFactor > 1) {
+        //AA::zoomin case
+        mIncSF += msfInc;
+        qreal reqSF = (mItemSize.width()*(mIncSF))/mCurrentSize.width();
+        zoomImage(reqSF, m_AnimRefPoint);
+        }
+    if(m_FinalAnimatedScaleFactor < 1) {
+        //AA::zoomout case
+        mIncSF -= msfInc;
+        qreal reqSF = (mzoSize.width()* mIncSF)/mCurrentSize.width();
+        zoomImage(reqSF, m_AnimRefPoint);
+        }   
+    //check if all steps are done,if not emit signal to continue the animation
+    if(mdoubletapSteps >= 1 ){
+        mdoubletapSteps -= 1;
+        emit stepZoom();    
+        }
+    else {
+        //animation is complete, finalize the widget transform using setgeometry
+        //reset the counter
+        mdoubletapSteps = 0;
+        animationTimeLineFinished();
+        }
+        
+    }
 void GlxZoomWidget::animationTimeLineFinished()
 {
 	finalizeWidgetTransform();
@@ -510,6 +613,7 @@
                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
            }
@@ -524,3 +628,13 @@
         mTimerId = 0;
     }
 }
+
+bool GlxZoomWidget::isFocussedItemCorrupt()
+{
+    QVariant variant = mModel->data( mModel->index( mFocusIndex, 0 ), GlxImageCorruptRole );
+    if ( variant.isValid() && variant.canConvert< bool> () ) {
+        return variant.value< bool > () ;
+    }
+    return false ;    
+}
+