201019_01
authorhgs
Mon, 17 May 2010 13:35:26 +0530
changeset 42 5e1df1b52eb3
parent 41 ae07d189b490
child 43 72396548277c
201019_01
commonutilities/bwins/glximagedecoderwrapperu.def
commonutilities/common/bwins/glxcommonu.def
commonutilities/common/eabi/glxcommonu.def
commonutilities/common/group/glxcommon.mmp
commonutilities/common/inc/glxtnmonitor.h
commonutilities/common/src/glxtnmonitor.cpp
commonutilities/imagedecoderwrapper/inc/glximagedecoder.h
commonutilities/imagedecoderwrapper/inc/glximagedecoderwrapper.h
commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp
commonutilities/imagedecoderwrapper/src/glximagedecoderwrapper.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/fullscreen.docml
data/opacity_activate.fxml
data/opacity_deactivate.fxml
data/slideshow.docml
engine/collectionframework/group/bld.inf
gallery/gallery.pro
gallery/sis/bld_stub.inf
gallery/sis/createsis.bat
gallery/sis/createsis_udeb.bat
gallery/sis/glxgallery.pkg
gallery/sis/glxgallery.sis
gallery/sis/glxgallery.sisx
gallery/sis/glxgallery_stub.mk
gallery/sis/glxgallery_stub.pkg
gallery/sis/glxgallery_stub.sis
gallery/sis/glxgallery_udeb.pkg
gallery/sis/photos.pkg
gallery/sis/photos.sis
gallery/sis/photos.sisx
gallery/sis/photos_stub.pkg
gallery/sis/photos_stub.sis
gallery/sis/photosqt_stub.pkg
gallery/sis/photosqt_stub.sis
gallery/sis/readme.txt
inc/glxlocalisationstrings.h
main/glxaiwservicehandler.cpp
photos.pro
photos.qrc
rom/photos.iby
tvout/tvoutengine/bwins/glxtvoutu.def
tvout/tvoutengine/eabi/glxtvoutu.def
tvout/tvoutengine/group/bld.inf
tvout/tvoutengine/inc/glxhdmicontroller.h
tvout/tvoutengine/inc/glxtvconnectionmonitor.h
tvout/tvoutengine/src/glxhdmicontroller.cpp
tvout/tvoutengine/src/glxtvconnectionmonitor.cpp
tvout/tvoutwrapper/inc/glxtvconnectionobserver.h
tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h
tvout/tvoutwrapper/src/glxtvconnectionobserver.cpp
tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp
tvout/tvoutwrapper/tvoutwrapper.pro
ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h
ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp
ui/inc/glxdocloaderdefs.h
ui/inc/glxicondefs.h
ui/inc/glxmodelparm.h
ui/uiengine/bwins/glxmedialistwrapperu.def
ui/uiengine/eabi/glxmedialistwrapperu.def
ui/uiengine/medialists/src/glxmedialist.cpp
ui/uiengine/medialistwrapper/inc/glxmlgenericobserver.h
ui/uiengine/medialistwrapper/inc/glxmlwrapper.h
ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h
ui/uiengine/medialistwrapper/inc/glxtitlefetcher.h
ui/uiengine/medialistwrapper/inc/mglxtitlefetcherobserver.h
ui/uiengine/medialistwrapper/medialistwrapper.pro
ui/uiengine/medialistwrapper/src/glxmlgenericobserver.cpp
ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp
ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp
ui/uiengine/medialistwrapper/src/glxtitlefetcher.cpp
ui/uiengine/model/bwins/glxmediamodelu.def
ui/uiengine/model/eabi/glxmediamodelu.def
ui/uiengine/model/mediamodel/inc/glxmediamodel.h
ui/uiengine/model/mediamodel/src/glxmediamodel.cpp
ui/viewmanagement/bwins/glxstatehandleru.def
ui/viewmanagement/bwins/glxviewmanageru.def
ui/viewmanagement/eabi/glxstatehandleru.def
ui/viewmanagement/eabi/glxviewmanageru.def
ui/viewmanagement/statehandler/inc/glxstatemanager.h
ui/viewmanagement/statehandler/inc/glxtnobserver.h
ui/viewmanagement/statehandler/src/glxstatemanager.cpp
ui/viewmanagement/statehandler/src/glxtnobserver.cpp
ui/viewmanagement/statehandler/statehandler.pro
ui/viewmanagement/viewmanager/inc/glxmainwindoweventfilter.h
ui/viewmanagement/viewmanager/inc/glxviewmanager.h
ui/viewmanagement/viewmanager/src/glxviewmanager.cpp
ui/viewmanagement/viewmanager/viewmanager.pro
ui/views/docloaders/src/glxviewdocloader.cpp
ui/views/effectengine/effectplugin/inc/glxforwardtransitionplugin.h
ui/views/effectengine/effectplugin/src/glxfadeplugin.cpp
ui/views/effectengine/effectplugin/src/glxforwardtransitionplugin.cpp
ui/views/effectengine/src/glxeffectengine.cpp
ui/views/fullscreenview/inc/glxcoverflow.h
ui/views/fullscreenview/inc/glxfullscreenview.h
ui/views/fullscreenview/inc/glxzoomcontrol.h
ui/views/fullscreenview/inc/glxzoomslider.h
ui/views/fullscreenview/inc/glxzoomwidget.h
ui/views/fullscreenview/src/glxcoverflow.cpp
ui/views/fullscreenview/src/glxfullscreenview.cpp
ui/views/fullscreenview/src/glxzoomcontrol.cpp
ui/views/fullscreenview/src/glxzoomslider.cpp
ui/views/fullscreenview/src/glxzoomwidget.cpp
ui/views/gridview/inc/glxgridview.h
ui/views/gridview/src/glxgridview.cpp
ui/views/slideshowview/inc/glxslideshowview.h
ui/views/slideshowview/src/glxslideshowview.cpp
ui/views/views.pro
--- a/commonutilities/bwins/glximagedecoderwrapperu.def	Mon May 03 16:56:16 2010 +0530
+++ b/commonutilities/bwins/glximagedecoderwrapperu.def	Mon May 17 13:35:26 2010 +0530
@@ -6,9 +6,9 @@
 	??_EGlxImageDecoderWrapper@@UAE@I@Z @ 5 NONAME ; GlxImageDecoderWrapper::~GlxImageDecoderWrapper(unsigned int)
 	?tr@GlxImageDecoderWrapper@@SA?AVQString@@PBD0@Z @ 6 NONAME ; class QString GlxImageDecoderWrapper::tr(char const *, char const *)
 	?qt_metacast@GlxImageDecoderWrapper@@UAEPAXPBD@Z @ 7 NONAME ; void * GlxImageDecoderWrapper::qt_metacast(char const *)
-	?decodeImage@GlxImageDecoderWrapper@@QAEXVQString@@@Z @ 8 NONAME ; void GlxImageDecoderWrapper::decodeImage(class QString)
-	?getStaticMetaObject@GlxImageDecoderWrapper@@SAABUQMetaObject@@XZ @ 9 NONAME ; struct QMetaObject const & GlxImageDecoderWrapper::getStaticMetaObject(void)
-	??1GlxImageDecoderWrapper@@UAE@XZ @ 10 NONAME ; GlxImageDecoderWrapper::~GlxImageDecoderWrapper(void)
+	?getStaticMetaObject@GlxImageDecoderWrapper@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & GlxImageDecoderWrapper::getStaticMetaObject(void)
+	??1GlxImageDecoderWrapper@@UAE@XZ @ 9 NONAME ; GlxImageDecoderWrapper::~GlxImageDecoderWrapper(void)
+	?decodeImage@GlxImageDecoderWrapper@@QAE?AVQSizeF@@VQString@@@Z @ 10 NONAME ; class QSizeF GlxImageDecoderWrapper::decodeImage(class QString)
 	?pixmapDecoded@GlxImageDecoderWrapper@@IAEXXZ @ 11 NONAME ; void GlxImageDecoderWrapper::pixmapDecoded(void)
 	?staticMetaObject@GlxImageDecoderWrapper@@2UQMetaObject@@B @ 12 NONAME ; struct QMetaObject const GlxImageDecoderWrapper::staticMetaObject
 	?getPixmap@GlxImageDecoderWrapper@@QAE?AVQPixmap@@XZ @ 13 NONAME ; class QPixmap GlxImageDecoderWrapper::getPixmap(void)
--- a/commonutilities/common/bwins/glxcommonu.def	Mon May 03 16:56:16 2010 +0530
+++ b/commonutilities/common/bwins/glxcommonu.def	Mon May 17 13:35:26 2010 +0530
@@ -44,4 +44,5 @@
 	?ThumbnailCleanupCommandLC@TGlxCommandFactory@@SAPAVCMPXMedia@@XZ @ 43 NONAME ; class CMPXMedia * TGlxCommandFactory::ThumbnailCleanupCommandLC(void)
 	?CreatePreviewFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 44 NONAME ; class CMPXMedia * TGlxFilterFactory::CreatePreviewFilterL(void)
 	?CreateCameraAlbumExclusionFilterL@TGlxFilterFactory@@SAPAVCMPXMedia@@XZ @ 45 NONAME ; class CMPXMedia * TGlxFilterFactory::CreateCameraAlbumExclusionFilterL(void)
+	?NewL@CGlxTNMonitor@@SAPAV1@PAVMGlxTNObserver@@@Z @ 46 NONAME ; class CGlxTNMonitor * CGlxTNMonitor::NewL(class MGlxTNObserver *)
 
--- a/commonutilities/common/eabi/glxcommonu.def	Mon May 03 16:56:16 2010 +0530
+++ b/commonutilities/common/eabi/glxcommonu.def	Mon May 17 13:35:26 2010 +0530
@@ -45,4 +45,7 @@
 	_ZN18TGlxCommandFactory28RemoveFromContainerCommandLCERK18CMPXCollectionPath @ 44 NONAME
 	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EE @ 45 NONAME
 	_ZN21CGlxResourceUtilities20GetResourceFilenameLER4TBufILi256EER3RFs @ 46 NONAME
+	_ZN13CGlxTNMonitor4NewLEP14MGlxTNObserver @ 47 NONAME
+	_ZTI13CGlxTNMonitor @ 48 NONAME
+	_ZTV13CGlxTNMonitor @ 49 NONAME
 
--- a/commonutilities/common/group/glxcommon.mmp	Mon May 03 16:56:16 2010 +0530
+++ b/commonutilities/common/group/glxcommon.mmp	Mon May 17 13:35:26 2010 +0530
@@ -48,6 +48,7 @@
 SOURCE          glxresourceutilities.cpp
 SOURCE          glxsettingsmodel.cpp
 SOURCE          glxsingletonstore.cpp
+SOURCE          glxtnmonitor.cpp
 
 LIBRARY         bafl.lib
 LIBRARY         centralrepository.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonutilities/common/inc/glxtnmonitor.h	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,99 @@
+/*
+* ============================================================================
+*  Name        : glxscreensavermonitor.h
+*  Part of     : GLX / Collection Data Source Framework
+*  Description : 
+*  Version     :%version:  1 %
+*  Copyright © 2006-2007 Nokia.  All rights reserved.
+*  This material, including documentation and any related computer
+*  programs, is protected by copyright controlled by Nokia.  All
+*  rights are reserved.  Copying, including reproducing, storing,
+*  adapting or translating, any or all of this material requires the
+*  prior written consent of Nokia.  This material also contains
+*  confidential information which may not be disclosed to others
+*  without the prior written consent of Nokia.
+* ============================================================================
+*/
+
+#ifndef PLUGINSCREENSAVERMONITORAO_H_
+#define PLUGINSCREENSAVERMONITORAO_H_
+
+#include <e32base.h>
+#include <e32property.h>
+
+class MGlxTNObserver
+{
+public :
+    /*
+     * Constructor
+     */
+    MGlxTNObserver() {}
+    /*
+     * Call back to get the number is left to create.
+     */
+    virtual void updateTNCount(int & count) = 0;
+    /*
+     * Destructor
+     */
+    virtual ~MGlxTNObserver() {}    
+};
+
+
+/**
+* Class for monitoring harvester pause.
+*/
+class CGlxTNMonitor: public CActive
+{
+    public:
+        /** Construction */
+    	IMPORT_C static CGlxTNMonitor* NewL( MGlxTNObserver *observer );
+
+        /**
+         * Destructor - virtual and class not intended
+         * for derivation, so not exported.
+         */
+    	virtual ~CGlxTNMonitor();
+
+    protected:
+
+    	/**
+    	 * RunL
+    	 * From CActive.
+    	 */
+        virtual void RunL();
+
+    	/**
+    	 * DoCancel
+    	 * From CActive.
+    	 */
+        virtual void DoCancel();
+
+    	/**
+    	 * RunError. Error handler in case RunL() leaves.
+    	 * From CActive.
+    	 * @param aError  Leave code from RunL.
+    	 * @return  Error code. KErrNone if error was handled.
+    	 */
+        virtual TInt RunError( TInt aError );
+        
+    private:
+        /**
+         * constructor
+         */
+        CGlxTNMonitor( MGlxTNObserver *observer );
+
+        /**
+         * 2nd phase construction.
+         */    
+        void ConstructL();
+
+    private:
+        RProperty iScreenSaverProperty;
+//		TTime iStartTime;
+//		TTime iStopTime;
+		MGlxTNObserver *iObserver;
+};
+
+	
+#endif
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonutilities/common/src/glxtnmonitor.cpp	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,105 @@
+/*
+* ============================================================================
+*  Name        : glxscreensavermonitor.cpp
+*  Part of     : GLX / Collection Data Source Framework
+*  Description : 
+*  Version     : %version:  1 % 
+*
+*  Copyright © 2006-2007 Nokia.  All rights reserved.
+*  This material, including documentation and any related computer
+*  programs, is protected by copyright controlled by Nokia.  All
+*  rights are reserved.  Copying, including reproducing, storing,
+*  adapting or translating, any or all of this material requires the
+*  prior written consent of Nokia.  This material also contains
+*  confidential information which may not be disclosed to others
+*  without the prior written consent of Nokia.
+* ============================================================================
+*/
+
+#include "glxtnmonitor.h"
+#include <glxlog.h>
+
+//#include <ScreenSaverInternalPSKeys.h>
+#include <e32debug.h>
+
+const TUid KTAGDPSNotification = { 0x2001FD51 };
+//const TInt KForceBackgroundGeneration = 0x00000010;
+const TInt KItemsleft = 0x00000008;
+
+CGlxTNMonitor::CGlxTNMonitor( MGlxTNObserver *observer )
+: CActive( CActive::EPriorityHigh ),
+  iObserver( observer )
+{    
+}
+
+// ---------------------------------------------------------------------------
+// ~CGlxPauseMonitor.
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+CGlxTNMonitor::~CGlxTNMonitor()
+{
+	Cancel();
+	iScreenSaverProperty.Close();
+}
+
+// ---------------------------------------------------------------------------
+// NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C CGlxTNMonitor* CGlxTNMonitor::NewL( MGlxTNObserver *observer  )
+{
+    //GLX_LOG_ENTRY_EXIT("CGlxTNMonitor::NewL");    
+    CGlxTNMonitor* self = new (ELeave) CGlxTNMonitor( observer );
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+    return self;
+}
+
+// ---------------------------------------------------------------------------
+// ConstructL.
+// Second-phase constructor.
+// ---------------------------------------------------------------------------
+//
+void CGlxTNMonitor::ConstructL()
+{
+    iScreenSaverProperty.Attach( KTAGDPSNotification, KItemsleft );
+	CActiveScheduler::Add( this );
+    RunL();
+}
+
+void CGlxTNMonitor::RunL()
+{	
+	GLX_LOG_ENTRY_EXIT("CGlxTNMonitor::RunL");    
+    // resubscribe before processing new value to prevent missing updates
+	iScreenSaverProperty.Subscribe( iStatus );
+    SetActive();
+	//User::WaitForRequest(iStatus);
+    TInt intValue;
+	TInt err = iScreenSaverProperty.Get( intValue ) ;
+	if ( err != KErrNotFound ){
+	    iObserver->updateTNCount( intValue );
+	}
+}
+    
+// ---------------------------------------------------------------------------
+// DoCancel
+// ---------------------------------------------------------------------------
+//
+void CGlxTNMonitor::DoCancel()
+{
+	iScreenSaverProperty.Cancel();
+}
+
+// ---------------------------------------------------------------------------
+// RunError
+// ---------------------------------------------------------------------------
+//
+TInt CGlxTNMonitor::RunError( TInt )
+{
+    GLX_LOG_ENTRY_EXIT("CGlxTNMonitor::RunError");       
+    return KErrNone;
+}
+
+
--- a/commonutilities/imagedecoderwrapper/inc/glximagedecoder.h	Mon May 03 16:56:16 2010 +0530
+++ b/commonutilities/imagedecoderwrapper/inc/glximagedecoder.h	Mon May 17 13:35:26 2010 +0530
@@ -25,13 +25,13 @@
 class GlxImageDecoderWrapper;
 class CImageDecoder;
 class CFbsBitmap;
-
+const TReal KTargetSize = 1000000;
 class CGlxImageDecoder : public CActive
 {
 public:
 	static CGlxImageDecoder* NewL(GlxImageDecoderWrapper* decoderWrapper);
 	~CGlxImageDecoder();
-    void DecodeImageL(QString aSourceFileName);
+    QSizeF DecodeImageL(QString aSourceFileName);
 	QPixmap GetPixmap();
 	void ResetDecoder();
 public:    
--- a/commonutilities/imagedecoderwrapper/inc/glximagedecoderwrapper.h	Mon May 03 16:56:16 2010 +0530
+++ b/commonutilities/imagedecoderwrapper/inc/glximagedecoderwrapper.h	Mon May 17 13:35:26 2010 +0530
@@ -35,7 +35,7 @@
 	*/
 	GlxImageDecoderWrapper();
 	~GlxImageDecoderWrapper();
-	void decodeImage(QString sourcePath);
+	QSizeF decodeImage(QString sourcePath);
 	QPixmap getPixmap();
 	void resetDecoder();
 	void decodedImageAvailable();
--- a/commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/commonutilities/imagedecoderwrapper/src/glximagedecoder.cpp	Mon May 17 13:35:26 2010 +0530
@@ -21,6 +21,7 @@
 #include <bitmaptransforms.h>
 #include <imageconversion.h>
 #include <IclExtJpegApi.h>  // For CExtJpegDecoder
+#include <e32math.h>
 
 
 // ---------------------------------------------------------------------------
@@ -78,7 +79,7 @@
 // ---------------------------------------------------------------------------
 // DoDecodeImageL
 // ---------------------------------------------------------------------------	
-void CGlxImageDecoder::DecodeImageL(QString aSourceFileName)
+QSizeF CGlxImageDecoder::DecodeImageL(QString aSourceFileName)
 {
 	//convert the argument to Symbian Format
 	TPtrC16 sourceFileName(reinterpret_cast<const TUint16*>(aSourceFileName.utf16()));
@@ -88,20 +89,33 @@
         delete iImageDecoder;
         iImageDecoder = NULL;
         }
-	/*TRAPD( err, iImageDecoder = CExtJpegDecoder::FileNewL(
-            CExtJpegDecoder::EHwImplementation, iFs, sourceFileName, CImageDecoder::EOptionNone ) );
+	TRAPD( err, iImageDecoder = CExtJpegDecoder::FileNewL(
+            CExtJpegDecoder::EHwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAutoRotate ) );
     if ( KErrNone != err )
         {
         TRAP(err,iImageDecoder = CExtJpegDecoder::FileNewL(
-                CExtJpegDecoder::ESwImplementation, iFs, sourceFileName, CImageDecoder::EOptionNone ) );
+                CExtJpegDecoder::ESwImplementation, iFs, sourceFileName, CImageDecoder::EOptionAutoRotate ) );
         if ( KErrNone != err )
             {
             // Not a JPEG - use standard decoder
-            iImageDecoder = CImageDecoder::FileNewL( iFs, sourceFileName, CImageDecoder::EOptionNone );
+            iImageDecoder = CImageDecoder::FileNewL( iFs, sourceFileName, CImageDecoder::EOptionAutoRotate );
             }
-        }*/
-	iImageDecoder = CImageDecoder::FileNewL( iFs, sourceFileName, CImageDecoder::EOptionNone );
+        }
 	TSize imageSize = iImageDecoder->FrameInfo().iOverallSizeInPixels;
+	//limit size to 1MP
+	TSize decodeSize = imageSize;
+	TReal pixelsInImage = imageSize.iWidth*imageSize.iHeight;
+	if(pixelsInImage > KTargetSize)
+	{
+		TReal compressionFactor = 1;
+		TInt err = Math::Sqrt(compressionFactor, (KTargetSize/pixelsInImage) );
+		if(err != KErrNone) 
+		{
+			compressionFactor = .1;
+		}
+
+		decodeSize = TSize(imageSize.iWidth * compressionFactor, imageSize.iHeight * compressionFactor);
+	}
 	//clear the existing Bitmap
 	if(iBitmap)
 	{
@@ -112,10 +126,11 @@
     if(!iBitmap)
         {
         iBitmap = new (ELeave) CFbsBitmap();
-        iBitmap->Create( imageSize,EColor64K);
+        iBitmap->Create( decodeSize,EColor64K);
         iImageDecoder->Convert( &iStatus, *iBitmap );
 		SetActive();
 		}
+	return QSizeF(decodeSize.iWidth,decodeSize.iHeight) ;
 }
 // ---------------------------------------------------------------------------
 // RunL
@@ -126,10 +141,10 @@
     if( iStatus == KErrNone )
         {   
         iDecoderWrapper->decodedImageAvailable();
-        delete iImageDecoder;
-        iImageDecoder = NULL;
-		iFs.Close();
         }	
+     delete iImageDecoder;
+     iImageDecoder = NULL;
+     iFs.Close();
     }
 
 // ---------------------------------------------------------------------------
--- a/commonutilities/imagedecoderwrapper/src/glximagedecoderwrapper.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/commonutilities/imagedecoderwrapper/src/glximagedecoderwrapper.cpp	Mon May 17 13:35:26 2010 +0530
@@ -43,9 +43,9 @@
 // decodeImage.
 // ---------------------------------------------------------------------------
 //
-void GlxImageDecoderWrapper::decodeImage(QString sourcePath)
+QSizeF GlxImageDecoderWrapper::decodeImage(QString sourcePath)
 {
-	imageDecoder->DecodeImageL(sourcePath);
+	return imageDecoder->DecodeImageL(sourcePath);
 }
 
 QPixmap GlxImageDecoderWrapper::getPixmap()
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
--- a/data/fullscreen.docml	Mon May 03 16:56:16 2010 +0530
+++ b/data/fullscreen.docml	Mon May 17 13:35:26 2010 +0530
@@ -3,9 +3,9 @@
     <widget name="mGlxFullscreenView" type="HbView">
         <widget name="mcontent" role="HbView:widget" type="HbWidget">
             <widget name="mCoverFlow" type="HbWidget">
-                <enums name="alignment" value="AlignLeft|AlignTop|AlignLeading"/>
-                <enums name="scrollDirections" value="Horizontal"/>
                 <real name="z" value="5"/>
+                <string name="alignment" value="AlignLeft|AlignTop|AlignLeading"/>
+                <string name="scrollDirections" value="Horizontal"/>
                 <bool name="frictionEnabled" value="TRUE"/>
             </widget>
             <widget name="mImageStrip" type="HbGridView">
@@ -20,11 +20,18 @@
                 <integer name="rowCount" value="1"/>
             </widget>
             <widget name="toolBar" type="HbToolBar">
-                <enums name="layoutDirection" value="LeftToRight"/>
+                <enums name="layoutDirection" value="RightToLeft"/>
                 <real name="z" value="7"/>
                 <sizehint height="60.44776un" type="PREFERRED" width="9.40299un"/>
                 <enums name="orientation" value="Vertical"/>
+                <real name="opacity" value="0.5"/>
             </widget>
+	    <widget name="glxZoomWidget" type="HbWidget">
+                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
+                <enums name="scrollDirections" value="Horizontal|Vertical"/>
+                <bool name="frictionEnabled" value="TRUE"/>
+            </widget>
+
             <string name="toolTipText" value=""/>
             <bool name="visible" value="TRUE"/>
             <layout type="anchor">
@@ -38,12 +45,20 @@
                 <anchoritem dst="mImageStrip" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="toolBar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
                 <anchoritem dst="toolBar" dstEdge="TOP" spacing="17.46269un" src="" srcEdge="TOP"/>
-            </layout>
+                <anchoritem dst="glxZoomWidget" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="TOP" spacing="var(hb-param-margin-view-top)" src="" srcEdge="TOP"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
+         </layout>
         </widget>
         <string name="title" value="Photos"/>
         <bool name="contentFullScreen" value="TRUE"/>
+        <enums name="titleBarFlags" value="TitleBarHidden|TitleBarTransparent"/>
     </widget>
     <section name="portrait">
+        <widget name="toolBar" type="HbToolBar">
+            <sizehint height="58.50746un" type="PREFERRED" width="9.40299un"/>
+        </widget>
         <widget name="mImageStrip" type="HbGridView">
             <integer name="columnCount" value="4"/>
             <integer name="rowCount" value="1"/>
@@ -60,17 +75,21 @@
                 <anchoritem dst="mImageStrip" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="toolBar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
                 <anchoritem dst="toolBar" dstEdge="TOP" spacing="18.13433un" src="" srcEdge="TOP"/>
+		<anchoritem dst="glxZoomWidget" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="TOP" spacing="var(hb-param-margin-view-top)" src="" srcEdge="TOP"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
             </layout>
         </widget>
-        <widget name="toolBar" type="HbToolBar">
-            <sizehint height="58.50746un" type="PREFERRED" width="9.40299un"/>
-        </widget>
     </section>
     <section name="landscape">
         <widget name="mGlxFullscreenView" type="HbView">
             <real name="z" value="0"/>
             <string name="HbVkbHost" value=""/>
         </widget>
+        <widget name="toolBar" type="HbToolBar">
+            <sizehint height="46.71642un" type="PREFERRED" width="9.4427un"/>
+        </widget>
         <widget name="mImageStrip" type="HbGridView">
             <integer name="columnCount" value="6"/>
             <integer name="rowCount" value="1"/>
@@ -89,13 +108,14 @@
                 <anchoritem dst="toolBar" dstEdge="BOTTOM" spacing="0un" src="" srcEdge="BOTTOM"/>
                 <anchoritem dst="toolBar" dstEdge="LEFT" spacing="0un" src="" srcEdge="LEFT"/>
                 <anchoritem dst="toolBar" dstEdge="RIGHT" spacing="0un" src="mImageStrip" srcEdge="LEFT"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="LEFT" spacing="var(hb-param-margin-view-left)" src="" srcEdge="LEFT"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="TOP" spacing="var(hb-param-margin-view-top)" src="" srcEdge="TOP"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="RIGHT" spacing="var(hb-param-margin-view-right)" src="" srcEdge="RIGHT"/>
+                <anchoritem dst="glxZoomWidget" dstEdge="BOTTOM" spacing="var(hb-param-margin-view-bottom)" src="" srcEdge="BOTTOM"/>
             </layout>
         </widget>
-        <widget name="toolBar" type="HbToolBar">
-            <sizehint height="46.71642un" type="PREFERRED" width="9.4427un"/>
-        </widget>
     </section>
-    <metadata activeUIState="portrait" display="NHD portrait" unit="un">
+    <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
         <uistate name="Common ui state" sections="#common"/>
         <uistate name="portrait" sections="#common portrait"/>
         <uistate name="landscape" sections="#common landscape"/>
--- a/data/opacity_activate.fxml	Mon May 03 16:56:16 2010 +0530
+++ b/data/opacity_activate.fxml	Mon May 17 13:35:26 2010 +0530
@@ -1,14 +1,12 @@
-<layers>
-<visual>
-
-<param name="opacity" type="anim">
-<duration>2.0</duration>
-<style>linear</style>
-<keyframe at="0.0">0</keyframe>
-<keyframe at="0.5">0.75</keyframe>
-<keyframe at="1.0">1.0</keyframe>
-</param>
-
-</visual>
+<?xml version="1.0" encoding="UTF-8"?>
+<layers >
+	<visual>
+		<param name="opacity" type="anim">
+			<style>linear</style>
+			<duration>1.0</duration>
+			<keyframe at="0.0">0.0</keyframe>
+			<keyframe at="1.0">1.0</keyframe>
+		</param>
+	</visual>
 </layers>
 
--- a/data/opacity_deactivate.fxml	Mon May 03 16:56:16 2010 +0530
+++ b/data/opacity_deactivate.fxml	Mon May 17 13:35:26 2010 +0530
@@ -1,13 +1,12 @@
-<layers>
-<visual>
-<param name="opacity" type="anim">
-<duration>2.0</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>
+<?xml version="1.0" encoding="UTF-8"?>
+<layers >
+	<visual>
+		<param name="opacity" type="anim">
+			<style>linear</style>
+			<duration>1.0</duration>
+			<keyframe at="0.0">1.0</keyframe>
+			<keyframe at="1.0">0.0</keyframe>
+		</param>
+	</visual>
 </layers>
 
--- a/data/slideshow.docml	Mon May 03 16:56:16 2010 +0530
+++ b/data/slideshow.docml	Mon May 17 13:35:26 2010 +0530
@@ -1,12 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<hbdocument version="0.9">
+<hbdocument version="1.0">
     <widget name="mglxslideshow" type="HbView">
         <widget name="content" role="HbView:widget" type="HbWidget">
             <widget name="mslideshowwidget" type="HbWidget">
-                <enums name="alignment" value="AlignVCenter|AlignHCenter"/>
-                <enums name="scrollDirections" value="Horizontal"/>
                 <real name="z" value="14"/>
                 <sizehint height="95.52239un" type="PREFERRED" width="53.73134un"/>
+                <string name="alignment" value="AlignVCenter|AlignHCenter"/>
+                <string name="scrollDirections" value="Horizontal"/>
             </widget>
             <widget name="mContinueButton" type="HbPushButton">
                 <real name="z" value="10"/>
@@ -29,6 +29,7 @@
         <string name="title" value="Photos"/>
         <bool name="contentFullScreen" value="TRUE"/>
         <real name="z" value="10"/>
+        <enums name="titleBarFlags" value="TitleBarHidden|TitleBarTransparent"/>
     </widget>
     <metadata activeUIState="Common ui state" display="NHD portrait" unit="un">
         <uistate name="Common ui state" sections="#common"/>
--- a/engine/collectionframework/group/bld.inf	Mon May 03 16:56:16 2010 +0530
+++ b/engine/collectionframework/group/bld.inf	Mon May 17 13:35:26 2010 +0530
@@ -80,7 +80,7 @@
 ../datasource/manager/group/glxdatasourcemanager.mmp
 ../plugins/glxcollectionpluginall/group/glxcollectionpluginall.mmp
 ../plugins/glxcollectionpluginalbums/group/glxcollectionpluginalbums.mmp
-//../plugins/glxcollectionplugincamera/group/glxcollectionplugincamera.mmp
+../plugins/glxcollectionplugincamera/group/glxcollectionplugincamera.mmp
 ../plugins/glxcollectionplugindownloads/group/glxcollectionplugindownloads.mmp
 ../plugins/glxcollectionpluginmonths/group/glxcollectionpluginmonths.mmp
 ../plugins/glxcollectionpluginimageviewer/group/glxcollectionpluginimageviewer.mmp
@@ -88,12 +88,3 @@
 #include "../plugins/group/bld.inf"
 #include "../datasource/plugins/group/bld.inf"
 
-PRJ_TESTMMPFILES
-
-// Alex Birkett 16/01/2008 The following plugins will prevent gallery starting up because they don't return the 
-// KMPXMediaColDetailSpaceId attribute (the ID space ID). Build them at your own risk!
-// ../plugins/Test/albumcollectionplugin/group/glxalbumcollectionplugin.mmp
-// ../plugins/Test/glxtestcollectionplugin/group/glxtestcollectionplugin.mmp
-// ../plugins/Test/glxmedialiststestcollectionplugin/group/glxmedialiststestcollectionplugin.mmp
-
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gallery/gallery.pro	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,19 @@
+#/* 
+#* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+#* All rights reserved.
+#* This component and the accompanying materials are made available
+#* under the terms of "Eclipse Public License v1.0"
+#* which accompanies this distribution, and is available
+#* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+#*
+#* Initial Contributors:
+#* Nokia Corporation - initial contribution.
+#*
+#* Contributors:
+#* 
+#* Description:
+#*
+#*/ 
+TEMPLATE    = subdirs
+myextension = "$${LITERAL_HASH}include <gallery/sis/bld_stub.inf>"
+BLD_INF_RULES.prj_platforms += myextension
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gallery/sis/bld_stub.inf	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   Build information for project mgallery.
+*
+*/
+
+PRJ_EXTENSIONS
+#ifdef MARM
+START EXTENSION app-services/buildstubsis
+OPTION SRCDIR ../sis
+OPTION SISNAME photos_stub
+END
+
+#endif
+
--- a/gallery/sis/createsis.bat	Mon May 03 16:56:16 2010 +0530
+++ b/gallery/sis/createsis.bat	Mon May 17 13:35:26 2010 +0530
@@ -15,6 +15,7 @@
 rem
 
 
+call makesis photos_stub.pkg
 
-call makesis glxgallery.pkg
-call signsis -s glxgallery.sis glxgallery.sisx RDTest_02.der RDTest_02.key
\ No newline at end of file
+call makesis photos.pkg
+call signsis -s photos.sis photos.sisx RDTest_02.der RDTest_02.key
\ No newline at end of file
--- a/gallery/sis/createsis_udeb.bat	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-rem
-rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-rem All rights reserved.
-rem This component and the accompanying materials are made available
-rem under the terms of "Eclipse Public License v1.0"
-rem which accompanies this distribution, and is available
-rem at the URL "http://www.eclipse.org/legal/epl-v10.html".
-rem
-rem Initial Contributors:
-rem Nokia Corporation - initial contribution.
-rem
-rem Contributors:
-rem
-rem Description: 
-rem
-
-
-
-call makesis glxgallery_udeb.pkg
-call signsis -s glxgallery_udeb.sis glxgallery_udeb.sisx RDTest_02.der RDTest_02.key
\ No newline at end of file
--- a/gallery/sis/glxgallery.pkg	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,103 +0,0 @@
-;
-; Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description:   Package file for project Gallery
-;
-
-; -------- general --------
-
-; Languages
-&EN
-
-; Package header
-#{"photos"},(0x200009EE),1,0,0,TYPE=SA
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-; Dependency for S60 3.0
-[0x101F7961],0,0,0,{"Series60v3.0"}
-
-; -------- files --------
-
-; NOTE: This installation package does not include huitoolkit.dll,
-; so you have to install it separately!
-
-
-"\epoc32\release\armv5\urel\glxcollectionplugintags.dll"                      -"!:\sys\bin\glxcollectionplugintags.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionplugintags.rsc"               -"!:\resource\plugins\glxcollectionplugintags.rsc"
-"\epoc32\data\Z\resource\plugins\glxplugintags.rsc"  					 -"!:\resource\plugins\glxplugintags.rsc"
-"\epoc32\release\armv5\urel\glxcommon.dll"                     -"!:\sys\bin\glxcommon.dll"
-"\epoc32\release\armv5\urel\glxcommonui.dll"                     -"!:\sys\bin\glxcommonui.dll"
-"\epoc32\release\armv5\urel\glxdatasourcemanager.dll"           -"!:\sys\bin\glxdatasourcemanager.dll"
-"\epoc32\release\armv5\urel\glxdatasourcemde.dll"               -"!:\sys\bin\glxdatasourcemde.dll"
-"\epoc32\data\Z\resource\plugins\glxdatasourcemde.rsc"               -"!:\resource\plugins\glxdatasourcemde.rsc"
-"\epoc32\release\armv5\urel\glxcollectionpluginalbums.dll"       -"!:\sys\bin\glxcollectionpluginalbums.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionpluginalbums.rsc"  -"!:\resource\plugins\glxcollectionpluginalbums.rsc"
-"\epoc32\data\Z\resource\plugins\glxpluginalbums.rsc"  					 -"!:\resource\plugins\glxpluginalbums.rsc"
-"\epoc32\release\armv5\urel\glxcollectionpluginall.dll"         -"!:\sys\bin\glxcollectionpluginall.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionpluginall.rsc"    -"!:\resource\plugins\glxcollectionpluginall.rsc"
-"\epoc32\data\Z\resource\plugins\glxpluginall.rsc"  					 -"!:\resource\plugins\glxpluginall.rsc"
-"\epoc32\release\armv5\urel\glxcollectionplugincamera.dll"         -"!:\sys\bin\glxcollectionplugincamera.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionplugincamera.rsc"    -"!:\resource\plugins\glxcollectionplugincamera.rsc"
-"\epoc32\data\Z\resource\plugins\glxplugincamera.rsc"  					 -"!:\resource\plugins\glxplugincamera.rsc"
-"\epoc32\release\armv5\urel\glxcollectionplugindownloads.dll"         -"!:\sys\bin\glxcollectionplugindownloads.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionplugindownloads.rsc"    -"!:\resource\plugins\glxcollectionplugindownloads.rsc"
-"\epoc32\data\Z\resource\plugins\glxplugindownloads.rsc"  					 -"!:\resource\plugins\glxplugindownloads.rsc"
-"\epoc32\release\armv5\urel\glxcollectionpluginmonths.dll"         -"!:\sys\bin\glxcollectionpluginmonths.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionpluginmonths.rsc"    -"!:\resource\plugins\glxcollectionpluginmonths.rsc"
-"\epoc32\data\Z\resource\plugins\glxpluginmonths.rsc"  					 -"!:\resource\plugins\glxpluginmonths.rsc"
-
-;delete these
-;"\epoc32\release\armv5\urel\glxthumbnailcomposerplugin.dll"     -"!:\sys\bin\glxthumbnailcomposerplugin.dll"
-;"\epoc32\data\Z\resource\plugins\glxthumbnailcomposerplugin.rsc" -"!:\resource\plugins\glxthumbnailcomposerplugin.rsc"
-
-"\epoc32\release\armv5\urel\glxmedialists.dll"            -"!:\sys\bin\glxmedialists.dll"
-
-"\epoc32\release\armv5\urel\glxdrmutility.dll"                 -"!:\sys\bin\glxdrmutility.dll"
-
-; Glx logging client
-"\epoc32\release\armv5\urel\glxlogging.dll"-"!:\sys\bin\glxlogging.dll"
-
-; Glx logging app
-;"\epoc32\release\armv5\urel\glxloggingapp.exe"-"!:\sys\bin\glxloggingapp.exe"
-;"\epoc32\data\z\private\10003a3f\import\apps\glxloggingapp_reg.rsc"-"!:\private\10003a3f\import\apps\glxloggingapp_reg.rsc"		
-;"\epoc32\data\z\resource\apps\glxloggingapp_loc.rsc"-"!:\resource\apps\glxloggingapp_loc.rsc"
-;"\epoc32\data\z\resource\apps\glxloggingapp.rsc"-"!:\resource\apps\glxloggingapp.rsc"
-
-
-"\epoc32\release\armv5\urel\photos.exe"            -"!:\sys\bin\photos.exe"
-"\epoc32\data\z\private\10003a3f\import\apps\photos_reg.rsc"-"!:\private\10003a3f\import\apps\photos_reg.rsc"		
-"\epoc32\data\z\resource\apps\photos.rsc"-"!:\resource\apps\photos.rsc"
-"\epoc32\data\z\resource\apps\0xE2C223D9.mif"             - "!:\resource\apps\0xE2C223D9.mif"
-
-;qt dlls
-"\epoc32\release\armv5\urel\glxtvoutwrapper.dll"            -"!:\sys\bin\glxtvoutwrapper.dll"
-"\epoc32\release\armv5\urel\glxmedialistwrapper.dll"            -"!:\sys\bin\glxmedialistwrapper.dll"
-"\epoc32\release\armv5\urel\glxmodelwrapper.dll"            -"!:\sys\bin\glxmodelwrapper.dll"
-"\epoc32\release\armv5\urel\glxexternalutility.dll"        -"!:\sys\bin\glxexternalutility.dll"
-"\epoc32\release\armv5\urel\glxmediamodel.dll"        -"!:\sys\bin\glxmediamodel.dll"
-"\epoc32\release\armv5\urel\glxlistmodel.dll"        -"!:\sys\bin\glxlistmodel.dll"
-"\epoc32\release\armv5\urel\glxstatehandler.dll"        -"!:\sys\bin\glxstatehandler.dll"
-"\epoc32\release\armv5\urel\glxviewmanager.dll"        -"!:\sys\bin\glxviewmanager.dll"
-;"\epoc32\release\armv5\urel\GlxExternalViewPlugin.dll"        -"!:\sys\bin\GlxExternalViewPlugin.dll"
-;"\epoc32\data\Z\resource\plugins\GlxExternalViewPlugin.rsc"         -"!:\resource\plugins\GlxExternalViewPlugin.rsc"
-"\epoc32\release\armv5\urel\glxviews.dll"        -"!:\sys\bin\glxviews.dll"
-"\epoc32\release\armv5\urel\glxloggerqt.dll"        -"!:\sys\bin\glxloggerqt.dll"
-"\epoc32\release\armv5\urel\glximagedecoderwrapper.dll"        -"!:\sys\bin\glximagedecoderwrapper.dll"
-
-"\epoc32\release\armv5\urel\glxcommandhandlerbase.dll"        -"!:\sys\bin\glxcommandhandlerbase.dll"
-"\epoc32\release\armv5\urel\glxcommoncommandhandlers.dll"        -"!:\sys\bin\glxcommoncommandhandlers.dll"
Binary file gallery/sis/glxgallery.sis has changed
Binary file gallery/sis/glxgallery.sisx has changed
--- a/gallery/sis/glxgallery_stub.mk	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +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:  
-#
-
-ifeq (WINS,$(findstring WINS, $(PLATFORM)))
-    ZDIR = $(EPOCROOT)epoc32\release\$(PLATFORM)\$(CFG)\Z
-else
-    ZDIR = $(EPOCROOT)epoc32\data\z
-endif
-
-
-
-do_nothing :
-	@rem do_nothing
-MAKMAKE : do_nothing
-BLD : do_nothing
-CLEAN : do_nothing
-LIB : do_nothing
-CLEANLIB : do_nothing
-
-RESOURCE : do_nothing
-FREEZE : do_nothing
-SAVESPACE : do_nothing
-RELEASABLES : do_nothing
-FINAL : 
-	echo =============================================================
-	echo Starting to create stub file..
-	makesis -v -s photos_stub.pkg photos_stub.sis
-	echo Copying stub sis..
-	copy photos_stub.sis $(EPOCROOT)epoc32\data\Z\System\Install\photos_stub.sis
-	echo Stub created and copied.
-	echo =============================================================
--- a/gallery/sis/glxgallery_stub.pkg	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-;
-; Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description:   Stub package file for project Gallery
-;
-
-; -------- general --------
-
-; Languages
-&EN
-
-; Package header
-#{"mgallery"},(0x200009EE),1,0,0, TYPE=SA
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-; -------- files --------
-
-""-"z:\private\10003a3f\import\apps\glx_reg.rsc"
-
-""-"z:\sys\bin\glx.exe"		
-""-"z:\resource\apps\glx_loc.Rsc"
-""-"z:\resource\apps\glx.Rsc"
-
-""-"z:\resource\apps\glxicons.mbm"
-""-"z:\resource\apps\glxicons.mif"
-""-"z:\resource\apps\glx_aif.mif"
-
-
-;; language-dependent resource files
-
-;; engines
-
-""-"z:\sys\bin\glxsimplelistview.dll"
-""-"z:\sys\bin\glxtagsmanagerviewplugin.dll"
-""-"z:\resource\plugins\glxtagsmanagerviewplugin.rsc"
-""-"z:\resource\apps\glxtagsmanagerview.RSC"
-""-"z:\resource\plugins\glxlistviewplugin.rsc"
-""-"z:\sys\bin\glxmetadatadialog.dll"
-""-"z:\resource\apps\glxmetadatadialog.rsc"
-""-"z:\sys\bin\glxcloudview.dll"
-""-"z:\sys\bin\glxtagsbrowserviewplugin.dll"
-""-"z:\resource\plugins\glxtagsbrowserviewplugin.rsc"
-""-"z:\resource\apps\glxtagsbrowserview.RSC"
-""-"z:\sys\bin\glxupnpcommandhandler.dll"
-""-"z:\sys\bin\glxcollectionplugintags.dll"
-""-"z:\resource\plugins\glxcollectionplugintags.rsc"
-""-"z:\resource\plugins\glxplugintags.rsc"
-""-"z:\sys\bin\glxtexturemanager.dll"
-""-"z:\sys\bin\glxfetcher.dll"
-""-"z:\resource\plugins\glxfetcher.rsc"
-""-"z:\resource\apps\glxfetcherdialog.rsc"
-""-"z:\sys\bin\glxcollectionmanager.dll"
-;""-"z:\sys\bin\glxactivedataplugin.dll"
-;""-"z:\resource\plugins\glxactivedataplugin.rsc"
-""-"z:\sys\bin\glxviewbase.dll"
-""-"z:\resource\apps\glxviewbase.rsc"
-""-"z:\sys\bin\glxcommandhandlerbase.dll"
-""-"z:\sys\bin\glxcommoncommandhandlers.dll"
-""-"z:\resource\apps\glxcommoncommandhandlers.rsc"
-""-"z:\sys\bin\glxcommandhandlermarking.dll"
-""-"z:\sys\bin\glxcommandhandlerdrm.dll"
-""-"z:\sys\bin\glxcommandhandlermoreinfo.dll"
-""-"z:\resource\apps\glxcommandhandlermarking.rsc"
-""-"z:\sys\bin\glxcommon.dll"
-""-"z:\sys\bin\glxcommonui.dll"
-""-"z:\sys\bin\shwslideshowengine.dll"
-""-"z:\resource\apps\shwslideshowengine.rsc"
-""-"z:\sys\bin\shwslideshowviewplugin.dll"
-""-"z:\resource\plugins\shwslideshowviewplugin.rsc"
-""-"z:\resource\apps\shwslideshowview.rsc"
-""-"z:\sys\bin\shwsettingsplugin.dll"
-""-"z:\resource\plugins\shwsettingsplugin.rsc"
-""-"z:\resource\apps\shwsettingsdialog.rsc"
-""-"z:\sys\bin\glxthumbnailcreator.dll"
-""-"z:\sys\bin\glxdatasourcemanager.dll"
-""-"z:\sys\bin\glxdatasourcemde.dll"
-""-"z:\resource\plugins\glxdatasourcemde.rsc"
-""-"z:\sys\bin\glxcollectionpluginalbums.dll"
-""-"z:\resource\plugins\glxcollectionpluginalbums.rsc"
-""-"z:\resource\plugins\glxpluginalbums.rsc"
-""-"z:\sys\bin\glxcollectionpluginall.dll"
-""-"z:\resource\plugins\glxcollectionpluginall.rsc"
-""-"z:\resource\plugins\glxpluginall.rsc"
-""-"z:\sys\bin\glxcollectionplugincamera.dll"
-""-"z:\resource\plugins\glxcollectionplugincamera.rsc"
-""-"z:\resource\plugins\glxplugincamera.rsc"
-""-"z:\sys\bin\glxcollectionplugindownloads.dll"
-""-"z:\resource\plugins\glxcollectionplugindownloads.rsc"
-""-"z:\resource\plugins\glxplugindownloads.rsc"
-""-"z:\sys\bin\glxcollectionpluginmonths.dll"
-""-"z:\resource\plugins\glxcollectionpluginmonths.rsc"
-""-"z:\resource\plugins\glxpluginmonths.rsc"
-""-"z:\sys\bin\glxzoomview.dll"
-
-""-"z:\sys\bin\glxthumbnailcomposerplugin.dll"
-""-"z:\resource\plugins\glxthumbnailcomposerplugin.rsc"
-
-;""-"z:\sys\bin\glxtvout.dll"
-
-""-"z:\sys\bin\glxlayouts.dll"
-""-"z:\sys\bin\glxmedialists.dll"
-""-"z:\sys\bin\glxvisuallistmanager.dll"
-""-"z:\sys\bin\glxuiutilities.dll"
-""-"z:\resource\apps\glxuiutilities.rsc"
-""-"z:\sys\bin\glxdrmutility.dll"
-
-""-"z:\sys\bin\glxgridview.dll"
-""-"z:\resource\apps\glxgridviewdata.rsc"
-""-"z:\sys\bin\glxgridviewpluginbase.dll"
-""-"z:\sys\bin\glxgridviewplugin.dll"
-""-"z:\resource\plugins\glxgridviewplugin.rsc"
-""-"z:\resource\apps\glxdownloadtext.rsc" 
-
-
-""-"z:\sys\bin\glxfullscreenview.dll"
-
-""-"z:\sys\bin\glxlistview.dll"
-""-"z:\resource\apps\glxlistviewplugin.rsc"
-""-"z:\sys\bin\glxlistviewpluginbase.dll"
-""-"z:\sys\bin\glxlistviewplugin.dll"
-""-"z:\resource\plugins\glxlistviewplugin.rsc"
-
-""-"z:\system\data\10202BE9\200071d3.txt"
-""-"z:\system\data\10202BE9\200009EE.txt"
-
-;Files for the VIA Player component
-;""-"z:\sys\bin\glxvideoplaybackviewplugin.dll"
-;""-"z:\resource\plugins\glxvideoplaybackviewplugin.rsc"
-
-; Glx logging client
-""-"z:\sys\bin\glxlogging.dll"
-
-; Glx logging app
-""-"z:\sys\bin\glxloggingapp.exe"
-""-"z:\private\10003a3f\import\apps\glxloggingapp_reg.rsc"		
-""-"z:\resource\apps\glxloggingapp_loc.rsc"
-""-"z:\resource\apps\glxloggingapp.rsc"
-
-
-""-"z:\sys\bin\glxtileview.dll"
-""-"z:\sys\bin\glxtileviewpluginbase.dll"
-""-"z:\sys\bin\glxtileviewplugin.dll"
-""-"z:\sys\bin\glxtagcollectionplugin.dll"
-""-"z:\sys\bin\glxalbumcollectionplugin.dll"
-""-"z:\sys\bin\glxfullscreenviewpluginbase.dll"
-""-"z:\sys\bin\glxfullscreenviewplugin.dll"
-""-"z:\sys\bin\glxdataprovider.dll"
-""-"z:\sys\bin\glxunifiedmetadataviewplugin.dll"
-""-"z:\sys\bin\glxuitilities.dll"
-""-"z:\sys\bin\glxunifiedmetadataview.dll"
-""-"z:\sys\bin\glxaddtoalbumhandler.dll"
Binary file gallery/sis/glxgallery_stub.sis has changed
--- a/gallery/sis/glxgallery_udeb.pkg	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,237 +0,0 @@
-;
-; Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description:   Package file for project Gallery
-;
-
-; -------- general --------
-
-; Languages
-&EN
-
-; Package header
-#{"mgallery"},(0x200009EE),1,0,0,TYPE=SA
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-; Dependency for S60 3.0
-[0x101F7961],0,0,0,{"Series60v3.0"}
-
-; -------- files --------
-
-; NOTE: This installation package does not include huitoolkit.dll,
-; so you have to install it separately!
-
-;; ui files
-
-"..\data\abstract5.jpg"-"c:\abstract5.jpg"
-"..\data\Battle.jpg"-"c:\Battle.jpg"
-"..\data\text_element_left_cap.png"-"c:\text_element_left_cap.png"
-"..\data\text_element_mid.png"-"c:\text_element_mid.png"
-"..\data\text_element_right_cap.png"-"c:\text_element_right_cap.png"
-"..\data\qgn_prop_image_notcreated.png"-"c:\qgn_prop_image_notcreated.png"
-"..\data\Image1.jpg"-"c:\Image1.jpg"
-"..\data\Image2.jpg"-"c:\Image2.jpg"
-"..\data\Image3.jpg"-"c:\Image3.jpg"
-"..\data\Image4.jpg"-"c:\Image4.jpg"
-"..\data\Image5.jpg"-"c:\Image5.jpg"
-"..\data\Image6.jpg"-"c:\Image6.jpg"
-"..\data\Image7.jpg"-"c:\Image7.jpg"
-"..\data\Image8.jpg"-"c:\Image8.jpg"
-"..\data\Image9.jpg"-"c:\Image9.jpg"
-"..\data\Image10.jpg"-"c:\Image10.jpg"
-"..\data\Image11.jpg"-"c:\Image11.jpg"
-"..\data\Image12.jpg"-"c:\Image12.jpg"
-"..\data\Image13.jpg"-"c:\Image13.jpg"
-"..\data\Image14.jpg"-"c:\Image14.jpg"
-"..\data\Image15.jpg"-"c:\Image15.jpg"
-"..\data\Image16.jpg"-"c:\Image16.jpg"
-"..\data\Image17.jpg"-"c:\Image17.jpg"
-"..\data\Image18.jpg"-"c:\Image18.jpg"
-"..\data\Image19.jpg"-"c:\Image19.jpg"
-"..\data\Image20.jpg"-"c:\Image20.jpg"
-"..\data\Image21.jpg"-"c:\Image21.jpg"
-"..\data\Image22.jpg"-"c:\Image22.jpg"
-"..\data\newitem1.jpg"-"c:\newitem1.jpg"
-"..\data\newitem2.jpg"-"c:\newitem2.jpg"
-"..\data\newitem3.jpg"-"c:\newitem3.jpg"
-"..\data\newitem4.jpg"-"c:\newitem4.jpg"
-"..\data\newitem5.jpg"-"c:\newitem5.jpg"
-"..\data\newitem6.jpg"-"c:\newitem6.jpg"
-"..\data\newitem7.jpg"-"c:\newitem7.jpg"
-"..\data\newitem8.jpg"-"c:\newitem8.jpg"
-"..\data\newitem9.jpg"-"c:\newitem9.jpg"
-"..\data\newitem10.jpg"-"c:\newitem10.jpg"
-"..\data\newitem11.jpg"-"c:\newitem11.jpg"
-"..\data\newitem12.jpg"-"c:\newitem12.jpg"
-"..\data\newitem13.jpg"-"c:\newitem13.jpg"
-"..\data\newitem14.jpg"-"c:\newitem14.jpg"
-
-"\epoc32\release\armv5\udeb\glx.exe"-"!:\sys\bin\glx.exe"
-"\epoc32\data\z\private\10003a3f\import\apps\glx_reg.rsc"-"!:\private\10003a3f\import\apps\glx_reg.rsc"		
-"\epoc32\data\z\resource\apps\glx_loc.Rsc"-"!:\resource\apps\glx_loc.Rsc"
-"\epoc32\data\z\resource\apps\glx.Rsc"-"!:\resource\apps\glx.Rsc"
-
-;"\epoc32\release\armv5\udeb\proto.exe"-"!:\sys\bin\proto.exe"
-;"\epoc32\data\z\private\10003a3f\import\apps\proto_reg.rsc"-"!:\private\10003a3f\import\apps\proto_reg.rsc"
-;"\epoc32\data\z\resource\apps\proto.Rsc"-"!:\resource\apps\proto.Rsc"
-
-;"\epoc32\release\armv5\udeb\albumpopuptest.exe"-"!:\sys\bin\albumpopuptest.exe"
-;"\epoc32\data\z\private\10003a3f\import\apps\albumpopuptest_reg.rsc"-"!:\private\10003a3f\import\apps\albumpopuptest_reg.rsc"
-;"\epoc32\data\z\resource\apps\albumpopuptest.Rsc"-"!:\resource\apps\albumpopuptest.Rsc"
-
-;"..\..\viewframework\uiutilities\data\icon4.png"                -"!:\private\200009EE\icon4.png"
-;"..\..\viewframework\uiutilities\data\listbox_bar.png"          -"!:\private\200009EE\listbox_bar.png"
-;"..\..\viewframework\uiutilities\data\listbox_thumb.png"        -"!:\private\200009EE\listbox_thumb.png"
-;"..\..\viewframework\uiutilities\data\selector.png"             -"!:\private\200009EE\selector.png"
-;"..\..\viewframework\uiutilities\data\capped_element.png"       -"!:\private\200009EE\capped_element.png"
-
-"\epoc32\data\z\resource\apps\glxicons.mbm"                      -"!:\resource\apps\glxicons.mbm"
-"\epoc32\data\z\resource\apps\glxicons.mif"                      -"!:\resource\apps\glxicons.mif"
-"\epoc32\data\z\resource\apps\glx_aif.mif"                      -"!:\resource\apps\glx_aif.mif"
-
-
-;; language-dependent resource files
-
-;; engines
-
-
-"\epoc32\data\Z\resource\plugins\glxlistviewplugin.rsc"               -"!:\resource\plugins\glxlistviewplugin.rsc"
-;"\epoc32\release\armv5\udeb\glxunifiedmetadataview.dll"                      -"!:\sys\bin\glxunifiedmetadataview.dll"
-"\epoc32\data\Z\resource\apps\glxmetadatadialog.rsc"           -"!:\resource\apps\glxmetadatadialog.rsc"
-"\epoc32\release\armv5\udeb\glxmetadatadialog.dll"                      -"!:\sys\bin\glxmetadatadialog.dll"
-"\epoc32\data\Z\resource\apps\glxmetadatadialog.rsc"           -"!:\resource\apps\glxmetadatadialog.rsc"
-"\epoc32\release\armv5\udeb\glxcloudview.dll"                      -"!:\sys\bin\glxcloudview.dll"
-"\epoc32\release\armv5\udeb\glxtagsbrowserviewplugin.dll"                      -"!:\sys\bin\glxtagsbrowserviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\glxtagsbrowserviewplugin.rsc"               -"!:\resource\plugins\glxtagsbrowserviewplugin.rsc"
-"\epoc32\data\Z\resource\apps\glxtagsbrowserview.RSC"													 -"!:\resource\apps\glxtagsbrowserview.RSC"
-"\epoc32\release\armv5\udeb\glxupnpcommandhandler.dll"                      -"!:\sys\bin\glxupnpcommandhandler.dll"
-"\epoc32\release\armv5\udeb\glxcollectionplugintags.dll"                      -"!:\sys\bin\glxcollectionplugintags.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionplugintags.rsc"               -"!:\resource\plugins\glxcollectionplugintags.rsc"
-"\epoc32\data\Z\resource\plugins\glxplugintags.rsc"  					 -"!:\resource\plugins\glxplugintags.rsc"
-"\epoc32\release\armv5\udeb\glxtexturemanager.dll"                      -"!:\sys\bin\glxtexturemanager.dll"
-"\epoc32\release\armv5\udeb\glxfetcher.dll"                      -"!:\sys\bin\glxfetcher.dll"
-"\epoc32\data\Z\resource\plugins\glxfetcher.rsc"               -"!:\resource\plugins\glxfetcher.rsc"
-"\epoc32\data\Z\resource\apps\glxfetcherview.rsc"               -"!:\resource\apps\glxfetcherview.rsc"
-"\epoc32\release\armv5\udeb\glxcollectionmanager.dll"            -"!:\sys\bin\glxcollectionmanager.dll"
-"\epoc32\release\armv5\udeb\glxactivedataplugin.dll"              -"!:\sys\bin\glxactivedataplugin.dll"
-"\epoc32\data\Z\resource\plugins\glxactivedataplugin.rsc"               -"!:\resource\plugins\glxactivedataplugin.rsc"
-"\epoc32\release\armv5\udeb\glxviewbase.dll"            -"!:\sys\bin\glxviewbase.dll"
-"\epoc32\data\z\resource\apps\glxviewbase.rsc"            -"!:\resource\apps\glxviewbase.rsc"
-;"\epoc32\release\armv5\udeb\glxtesttileview.dll"            -"!:\sys\bin\glxtesttileview.dll"
-;"\epoc32\data\z\resource\apps\glxtesttileview.rsc"                  -"!:\resource\apps\glxtesttileview.rsc"
-;"\epoc32\release\armv5\udeb\glxtesttileviewplugin.dll"            -"!:\sys\bin\glxtesttileviewplugin.dll"
-;"\epoc32\data\Z\resource\plugins\glxtesttileviewplugin.rsc"  -"!:\resource\plugins\glxtesttileviewplugin.rsc"
-;"\epoc32\release\armv5\udeb\glxtestremovehandler.dll"            -"!:\sys\bin\glxtestremovehandler.dll"
-;"\epoc32\release\armv5\udeb\glxaddtoalbumhandler.dll"            -"!:\sys\bin\glxaddtoalbumhandler.dll"
-"\epoc32\release\armv5\udeb\glxcommandhandlerbase.dll"            -"!:\sys\bin\glxcommandhandlerbase.dll"
-"\epoc32\release\armv5\udeb\glxcommoncommandhandlers.dll"            -"!:\sys\bin\glxcommoncommandhandlers.dll"
-"\epoc32\data\Z\resource\apps\glxcommoncommandhandlers.rsc"													 -"!:\resource\apps\glxcommoncommandhandlers.rsc"
-"\epoc32\release\armv5\udeb\glxcommandhandlermarking.dll"            -"!:\sys\bin\glxcommandhandlermarking.dll"
-"\epoc32\release\armv5\udeb\glxcommandhandlerdrm.dll"                -"!:\sys\bin\glxcommandhandlerdrm.dll"
-"\epoc32\release\armv5\udeb\glxcommandhandlermoreinfo.dll"            -"!:\sys\bin\glxcommandhandlermoreinfo.dll"
-"\epoc32\data\z\resource\apps\glxcommandhandlermarking.rsc"            -"!:\resource\apps\glxcommandhandlermarking.rsc"
-"\epoc32\release\armv5\udeb\glxcommon.dll"                     -"!:\sys\bin\glxcommon.dll"
-"\epoc32\release\armv5\udeb\glxcommonui.dll"                     -"!:\sys\bin\glxcommonui.dll"
-;"\epoc32\data\z\resource\apps\glxaddtoalbumhandler.rsc"                  -"!:\resource\apps\glxaddtoalbumhandler.rsc"
-"\epoc32\release\armv5\udeb\shwslideshowengine.dll"            -"!:\sys\bin\shwslideshowengine.dll"
-"\epoc32\data\Z\resource\apps\shwslideshowengine.rsc"           -"!:\resource\apps\shwslideshowengine.rsc"
-"\epoc32\release\armv5\udeb\shwslideshowviewplugin.dll"         -"!:\sys\bin\shwslideshowviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\shwslideshowviewplugin.rsc"    -"!:\resource\plugins\shwslideshowviewplugin.rsc"
-"\epoc32\data\Z\resource\apps\shwslideshowview.rsc"           -"!:\resource\apps\shwslideshowview.rsc"
-"\epoc32\release\armv5\udeb\shwsettingsplugin.dll"            -"!:\sys\bin\shwsettingsplugin.dll"
-"\epoc32\data\Z\resource\plugins\shwsettingsplugin.rsc"		-"!:\resource\plugins\shwsettingsplugin.rsc"
-"\epoc32\data\Z\resource\apps\shwsettingsdialog.rsc"		-"!:\resource\apps\shwsettingsdialog.rsc"
-"\epoc32\release\armv5\udeb\glxthumbnailcreator.dll"            -"!:\sys\bin\glxthumbnailcreator.dll"
-"\epoc32\release\armv5\udeb\glxdatasourcemanager.dll"           -"!:\sys\bin\glxdatasourcemanager.dll"
-"\epoc32\release\armv5\udeb\glxdatasourcemde.dll"               -"!:\sys\bin\glxdatasourcemde.dll"
-"\epoc32\data\Z\resource\plugins\glxdatasourcemde.rsc"               -"!:\resource\plugins\glxdatasourcemde.rsc"
-;"\epoc32\release\armv5\udeb\glxdatasourcetest.dll"              -"!:\sys\bin\glxdatasourcetest.dll"
-;"\epoc32\data\Z\resource\plugins\glxdatasourcetest.rsc"               -"!:\resource\plugins\glxdatasourcetest.rsc"
-"\epoc32\release\armv5\udeb\glxcollectionpluginalbums.dll"       -"!:\sys\bin\glxcollectionpluginalbums.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionpluginalbums.rsc"  -"!:\resource\plugins\glxcollectionpluginalbums.rsc"
-"\epoc32\data\Z\resource\plugins\glxpluginalbums.rsc"  					 -"!:\resource\plugins\glxpluginalbums.rsc"
-;"\epoc32\release\armv5\udeb\glxalbumcollectionplugin.dll"       -"!:\sys\bin\glxalbumcollectionplugin.dll"
-;"\epoc32\release\armv5\udeb\glxtestcollectionplugin.dll"       -"!:\sys\bin\glxtestcollectionplugin.dll"
-;"\epoc32\data\Z\resource\plugins\glxtestcollectionplugin.rsc"  -"!:\resource\plugins\glxtestcollectionplugin.rsc"
-;"\epoc32\data\Z\resource\plugins\glxalbumcollectionplugin.rsc"  -"!:\resource\plugins\glxalbumcollectionplugin.rsc"
-"\epoc32\release\armv5\udeb\glxcollectionpluginall.dll"         -"!:\sys\bin\glxcollectionpluginall.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionpluginall.rsc"    -"!:\resource\plugins\glxcollectionpluginall.rsc"
-"\epoc32\data\Z\resource\plugins\glxpluginall.rsc"  					 -"!:\resource\plugins\glxpluginall.rsc"
-"\epoc32\release\armv5\udeb\glxcollectionplugincamera.dll"         -"!:\sys\bin\glxcollectionplugincamera.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionplugincamera.rsc"    -"!:\resource\plugins\glxcollectionplugincamera.rsc"
-"\epoc32\data\Z\resource\plugins\glxplugincamera.rsc"  					 -"!:\resource\plugins\glxplugincamera.rsc"
-"\epoc32\release\armv5\udeb\glxcollectionplugindownloads.dll"         -"!:\sys\bin\glxcollectionplugindownloads.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionplugindownloads.rsc"    -"!:\resource\plugins\glxcollectionplugindownloads.rsc"
-"\epoc32\data\Z\resource\plugins\glxplugindownloads.rsc"  					 -"!:\resource\plugins\glxplugindownloads.rsc"
-"\epoc32\release\armv5\udeb\glxcollectionpluginmonths.dll"         -"!:\sys\bin\glxcollectionpluginmonths.dll"
-"\epoc32\data\Z\resource\plugins\glxcollectionpluginmonths.rsc"    -"!:\resource\plugins\glxcollectionpluginmonths.rsc"
-"\epoc32\data\Z\resource\plugins\glxpluginmonths.rsc"  					 -"!:\resource\plugins\glxpluginmonths.rsc"
-"\epoc32\release\armv5\udeb\glxzoomview.dll"         -"!:\sys\bin\glxzoomview.dll"
-
-"\epoc32\release\armv5\udeb\glxthumbnailcomposerplugin.dll"     -"!:\sys\bin\glxthumbnailcomposerplugin.dll"
-"\epoc32\data\Z\resource\plugins\glxthumbnailcomposerplugin.rsc" -"!:\resource\plugins\glxthumbnailcomposerplugin.rsc"
-
-"\epoc32\release\armv5\udeb\glxlayouts.dll"                     -"!:\sys\bin\glxlayouts.dll"
-"\epoc32\release\armv5\udeb\glxmedialists.dll"            -"!:\sys\bin\glxmedialists.dll"
-"\epoc32\release\armv5\udeb\glxvisuallistmanager.dll"           -"!:\sys\bin\glxvisuallistmanager.dll"
-"\epoc32\release\armv5\udeb\glxuiutilities.dll"                 -"!:\sys\bin\glxuiutilities.dll"
-"\epoc32\data\z\resource\apps\glxuiutilities.rsc"               -"!:\resource\apps\glxuiutilities.rsc"
-"\epoc32\release\armv5\udeb\glxdrmutility.dll"                 -"!:\sys\bin\glxdrmutility.dll"
-
-"\epoc32\release\armv5\udeb\glxtileview.dll"                    -"!:\sys\bin\glxtileview.dll"
-"\epoc32\data\z\resource\apps\glxtileviewdata.rsc"              -"!:\resource\apps\glxtileviewdata.rsc"
-"\epoc32\data\z\resource\apps\glxdownloadtext.rsc"              -"!:\resource\apps\glxdownloadtext.rsc"
-"\epoc32\release\armv5\udeb\glxtileviewpluginbase.dll"          -"!:\sys\bin\glxtileviewpluginbase.dll"
-"\epoc32\release\armv5\udeb\glxtileviewplugin.dll"              -"!:\sys\bin\glxtileviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\glxtileviewplugin.rsc"         -"!:\resource\plugins\glxtileviewplugin.rsc"
-
-"\epoc32\release\armv5\udeb\glxfullscreenview.dll"              -"!:\sys\bin\glxfullscreenview.dll"
-"\epoc32\release\armv5\udeb\glxfullscreenviewpluginbase.dll"    -"!:\sys\bin\glxfullscreenviewpluginbase.dll"
-"\epoc32\release\armv5\udeb\glxfullscreenviewplugin.dll"        -"!:\sys\bin\glxfullscreenviewplugin.dll"
-"\epoc32\data\z\resource\apps\glxfullscreenviewdata.rsc"        -"!:\resource\apps\glxfullscreenviewdata.rsc"
-"\epoc32\data\Z\resource\plugins\glxfullscreenviewplugin.rsc"   -"!:\resource\plugins\glxfullscreenviewplugin.rsc"
-
-"\epoc32\release\armv5\udeb\glxlistview.dll"                    -"!:\sys\bin\glxlistview.dll"
-"\epoc32\data\z\resource\apps\glxlistviewplugin.rsc"            -"!:\resource\apps\glxlistviewplugin.rsc"
-"\epoc32\release\armv5\udeb\glxlistviewpluginbase.dll"          -"!:\sys\bin\glxlistviewpluginbase.dll"
-"\epoc32\release\armv5\udeb\glxlistviewplugin.dll"              -"!:\sys\bin\glxlistviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\glxlistviewplugin.rsc"         -"!:\resource\plugins\glxlistviewplugin.rsc"
-
-"\epoc32\data\z\private\10202be9\200071d3.txt"           -"!:\system\data\10202BE9\200071d3.txt"
-
-;Files for the VIA Player component
-"\epoc32\release\armv5\udeb\glxvideoplaybackviewplugin.dll"     -"!:\sys\bin\glxvideoplaybackviewplugin.dll"
-"\epoc32\data\Z\resource\plugins\glxvideoplaybackviewplugin.rsc"-"!:\resource\plugins\glxvideoplaybackviewplugin.rsc"
-;"\epoc32\release\armv5\udeb\ViaPlayerCore.dll"                  -"!:\sys\bin\ViaPlayerCore.dll"
-;"\epoc32\release\armv5\udeb\ViaPlayerDefaultView.dll"           -"!:\sys\bin\ViaPlayerDefaultView.dll"
-;"\epoc32\data\z\resource\apps\ViaPlayerDefaultView.Rsc"         -"!:\resource\apps\ViaPlayerDefaultView.Rsc"
-;"\epoc32\release\armv5\udeb\ViaPlayerUtilities.dll"             -"!:\sys\bin\ViaPlayerUtilities.dll"
-;"\epoc32\data\z\resource\apps\ViaPlayerUtilities.Rsc"           -"!:\resource\apps\ViaPlayerUtilities.Rsc"
-;"\epoc32\data\z\resource\apps\ViaPlayerUtilities.mif"		        -"!:\resource\apps\ViaPlayerUtilities.mif"
-;"\epoc32\release\armv5\udeb\ViaPlayerControllerBase.dll"        -"!:\sys\bin\ViaPlayerControllerBase.dll"
-;"\epoc32\data\z\resource\apps\ViaPlayer.mif"                    -"!:\resource\apps\ViaPlayer.mif"
-;"\epoc32\release\armv5\udeb\ViaDlProgressController.dll"        -"!:\sys\bin\ViaDlProgressController.dll"
-;"\epoc32\data\z\resource\plugins\ViaDlProgressController.Rsc"   -"!:\resource\plugins\ViaDlProgressController.Rsc"
-
-; Glx logging client
-"\epoc32\release\armv5\udeb\glxlogging.dll"-"!:\sys\bin\glxlogging.dll"
-; Glx logging app
-"\epoc32\release\armv5\udeb\glxloggingapp.exe"-"!:\sys\bin\glxloggingapp.exe"
-"\epoc32\data\z\private\10003a3f\apps\glxloggingapp_reg.rsc"-"!:\private\10003a3f\import\apps\glxloggingapp_reg.rsc"		
-"\epoc32\data\z\resource\apps\glxloggingapp_loc.rsc"-"!:\resource\apps\glxloggingapp_loc.rsc"
-"\epoc32\data\z\resource\apps\glxloggingapp.rsc"-"!:\resource\apps\glxloggingapp.rsc"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gallery/sis/photos.pkg	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,119 @@
+;
+; Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:   Package file for project Gallery
+;
+
+; -------- general --------
+
+; Languages
+&EN
+
+; Package header
+#{"photos"},(0x20000A14),1,1,0, TYPE=SA ,RU
+
+; Localised Vendor name
+%{"Nokia, Qt"}
+
+; Unique Vendor name
+:"Nokia, Qt"
+
+; Manual PKG pre-rules from PRO files
+; Default dependency to Qt libraries
+(0x2001E61C), 4, 5, 0, {"Qt"}
+
+; Default HW/platform dependencies
+[0x101F7961],0,0,0,{"S60ProductID"}
+[0x102032BE],0,0,0,{"S60ProductID"}
+[0x102752AE],0,0,0,{"S60ProductID"}
+[0x1028315F],0,0,0,{"S60ProductID"}
+ 
+
+; Executable and default resource files
+"\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"
+"\epoc32\release\armv5\urel\glxcommon.dll"                     		-"!:\sys\bin\glxcommon.dll"
+
+; datasource
+"\epoc32\release\armv5\urel\glxdatasourcemanager.dll"          		-"!:\sys\bin\glxdatasourcemanager.dll"
+"\epoc32\release\armv5\urel\glxdatasourcemde.dll"              		-"!:\sys\bin\glxdatasourcemde.dll"
+"\epoc32\data\Z\resource\plugins\glxdatasourcemde.rsc"              -"!:\resource\plugins\glxdatasourcemde.rsc"
+
+; Collection plugins
+"\epoc32\release\armv5\urel\glxcollectionpluginalbums.dll"      	-"!:\sys\bin\glxcollectionpluginalbums.dll"
+"\epoc32\data\Z\resource\plugins\glxcollectionpluginalbums.rsc" 	-"!:\resource\plugins\glxcollectionpluginalbums.rsc"
+"\epoc32\data\Z\resource\plugins\glxpluginalbums.rsc"  				-"!:\resource\plugins\glxpluginalbums.rsc"
+
+"\epoc32\release\armv5\urel\glxcollectionpluginall.dll"         	-"!:\sys\bin\glxcollectionpluginall.dll"
+"\epoc32\data\Z\resource\plugins\glxcollectionpluginall.rsc"    	-"!:\resource\plugins\glxcollectionpluginall.rsc"
+"\epoc32\data\Z\resource\plugins\glxpluginall.rsc"  				-"!:\resource\plugins\glxpluginall.rsc"
+
+"\epoc32\release\armv5\urel\glxcollectionplugincamera.dll"      	-"!:\sys\bin\glxcollectionplugincamera.dll"
+"\epoc32\data\Z\resource\plugins\glxcollectionplugincamera.rsc" 	-"!:\resource\plugins\glxcollectionplugincamera.rsc"
+"\epoc32\data\Z\resource\plugins\glxplugincamera.rsc"  				-"!:\resource\plugins\glxplugincamera.rsc"
+
+"\epoc32\release\armv5\urel\glxcollectionplugindownloads.dll"   	-"!:\sys\bin\glxcollectionplugindownloads.dll"
+"\epoc32\data\Z\resource\plugins\glxcollectionplugindownloads.rsc"  -"!:\resource\plugins\glxcollectionplugindownloads.rsc"
+"\epoc32\data\Z\resource\plugins\glxplugindownloads.rsc"  			-"!:\resource\plugins\glxplugindownloads.rsc"
+
+"\epoc32\release\armv5\urel\glxcollectionpluginmonths.dll"         -"!:\sys\bin\glxcollectionpluginmonths.dll"
+"\epoc32\data\Z\resource\plugins\glxcollectionpluginmonths.rsc"    -"!:\resource\plugins\glxcollectionpluginmonths.rsc"
+"\epoc32\data\Z\resource\plugins\glxpluginmonths.rsc"  			   -"!:\resource\plugins\glxpluginmonths.rsc"
+
+"\epoc32\release\armv5\urel\glxcollectionplugintags.dll"          	-"!:\sys\bin\glxcollectionplugintags.dll"
+"\epoc32\data\Z\resource\plugins\glxcollectionplugintags.rsc"      	-"!:\resource\plugins\glxcollectionplugintags.rsc"
+"\epoc32\data\Z\resource\plugins\glxplugintags.rsc"  			    -"!:\resource\plugins\glxplugintags.rsc"
+
+"\epoc32\release\armv5\urel\glxcollectionpluginimageviewer.dll"              -"!:\sys\bin\glxcollectionpluginimageviewer.dll"
+"\epoc32\data\Z\resource\plugins\glxcollectionpluginimageviewer.rsc"         -"!:\resource\plugins\glxcollectionpluginimageviewer.rsc"
+
+; Glx logging client
+"\epoc32\release\armv5\urel\glxlogging.dll"					-"!:\sys\bin\glxlogging.dll"
+
+; commandhandler
+"\epoc32\release\armv5\urel\glxcommandhandlerbase.dll"      -"!:\sys\bin\glxcommandhandlerbase.dll"
+"\epoc32\release\armv5\urel\glxcommoncommandhandlers.dll"   -"!:\sys\bin\glxcommoncommandhandlers.dll"
+
+; engines
+"\epoc32\release\armv5\urel\glxtvout.dll"            		-"!:\sys\bin\glxtvout.dll"
+"\epoc32\release\armv5\urel\glxmedialists.dll"            	-"!:\sys\bin\glxmedialists.dll"
+"\epoc32\release\armv5\urel\glxdrmutility.dll"              -"!:\sys\bin\glxdrmutility.dll"
+
+; viewmanagement
+"\epoc32\release\armv5\urel\glxstatehandler.dll"        	-"!:\sys\bin\glxstatehandler.dll"
+"\epoc32\release\armv5\urel\glxviewmanager.dll"        		-"!:\sys\bin\glxviewmanager.dll"
+
+;qt dlls
+"\epoc32\release\armv5\urel\glxexternalutility.dll"        -"!:\sys\bin\glxexternalutility.dll"
+"\epoc32\release\armv5\urel\glximagedecoderwrapper.dll"    -"!:\sys\bin\glximagedecoderwrapper.dll"
+"\epoc32\release\armv5\urel\glxtvoutwrapper.dll"           -"!:\sys\bin\glxtvoutwrapper.dll"
+"\epoc32\release\armv5\urel\glxmedialistwrapper.dll"       -"!:\sys\bin\glxmedialistwrapper.dll"
+"\epoc32\release\armv5\urel\glxfavmediamodel.dll"          -"!:\sys\bin\glxfavmediamodel.dll"
+"\epoc32\release\armv5\urel\glxmediamodel.dll"        	   -"!:\sys\bin\glxmediamodel.dll"
+"\epoc32\release\armv5\urel\glxlistmodel.dll"              -"!:\sys\bin\glxlistmodel.dll"
+"\epoc32\release\armv5\urel\glxmodelwrapper.dll"           -"!:\sys\bin\glxmodelwrapper.dll"
+"\epoc32\release\armv5\urel\glxloggerqt.dll"               -"!:\sys\bin\glxloggerqt.dll"
+"\epoc32\release\armv5\urel\glxviews.dll"                  -"!:\sys\bin\glxviews.dll"
+
+;translations
+"\epoc32\data\z\resource\qt\translations\photos_en.qm"     -"!:\resource\qt\translations\photos.qm"
+
+;cenrep
+"\epoc32\data\Z\private\10202BE9\20007194.txt"			   -"!:\private\10202BE9\20007194.txt"		
+
+
Binary file gallery/sis/photos.sis has changed
Binary file gallery/sis/photos.sisx has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gallery/sis/photos_stub.pkg	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,106 @@
+;
+; Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "Eclipse Public License v1.0"
+; which accompanies this distribution, and is available
+; at the URL "http://www.eclipse.org/legal/epl-v10.html".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description:   Stub package file for project Gallery
+;
+
+; -------- general --------
+
+; Languages
+&EN
+
+; Package header
+#{"photos"},(0x20000A14),1,0,0,TYPE=SA
+
+; Localised Vendor name
+%{"Nokia, Qt"}
+
+; Unique Vendor name
+:"Nokia, Qt"
+
+"" - "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
+"" - "z:\sys\bin\glxcommonui.dll"
+"" - "z:\sys\bin\glxcommon.dll"
+
+; datasource
+"" - "z:\sys\bin\glxdatasourcemanager.dll"
+"" - "z:\sys\bin\glxdatasourcemde.dll"
+"" - "z:\resource\plugins\glxdatasourcemde.rsc"
+
+; collection plugins
+"" - "z:\sys\bin\glxcollectionpluginalbums.dll"
+"" - "z:\resource\plugins\glxcollectionpluginalbums.rsc"
+"" - "z:\resource\plugins\glxpluginalbums.rsc"
+
+"" - "z:\sys\bin\glxcollectionpluginall.dll"
+"" - "z:\resource\plugins\glxcollectionpluginall.rsc"
+"" - "z:\resource\plugins\glxpluginall.rsc"
+
+"" - "z:\sys\bin\glxcollectionplugincamera.dll"
+"" - "z:\resource\plugins\glxcollectionplugincamera.rsc"
+"" - "z:\resource\plugins\glxplugincamera.rsc"
+
+"" - "z:\sys\bin\glxcollectionplugindownloads.dll"
+"" - "z:\resource\plugins\glxcollectionplugindownloads.rsc"
+"" - "z:\resource\plugins\glxplugindownloads.rsc"
+
+"" - "z:\sys\bin\glxcollectionpluginmonths.dll"
+"" - "z:\resource\plugins\glxcollectionpluginmonths.rsc"
+"" - "z:\resource\plugins\glxpluginmonths.rsc"
+
+"" - "z:\sys\bin\glxcollectionplugintags.dll"
+"" - "z:\resource\plugins\glxcollectionplugintags.rsc"
+"" - "z:\resource\plugins\glxplugintags.rsc"
+
+"" - "z:\sys\bin\glxcollectionpluginimageviewer.dll"
+"" - "z:\resource\plugins\glxcollectionpluginimageviewer.rsc"
+
+; Glx logging client
+"" - "z:\sys\bin\glxlogging.dll"
+
+; commandhandlers
+"" - "z:\sys\bin\glxcommandhandlerbase.dll"
+"" - "z:\sys\bin\glxcommoncommandhandlers.dll"
+
+;engines
+"" - "z:\sys\bin\glxdrmutility.dll"
+"" - "z:\sys\bin\glxmedialists.dll"
+"" - "z:\sys\bin\glxtvout.dll"
+
+; viewmanagement
+"" - "z:\sys\bin\glxstatehandler.dll"
+"" - "z:\sys\bin\glxviewmanager.dll"
+
+; qt dlls
+"" - "z:\sys\bin\glxexternalutility.dll"
+"" - "z:\sys\bin\glximagedecoderwrapper.dll"
+"" - "z:\sys\bin\glxloggerqt.dll"
+"" - "z:\sys\bin\glxtvoutwrapper.dll"
+"" - "z:\sys\bin\glxmedialistwrapper.dll"
+"" - "z:\sys\bin\glxlistmodel.dll"
+"" - "z:\sys\bin\glxfavmediamodel.dll"
+"" - "z:\sys\bin\glxlistmodel.dll"
+"" - "z:\sys\bin\glxmodelwrapper.dll"
+"" - "z:\sys\bin\glxviews.dll"
+
+"" - "z:\private\10202BE9\20007194.txt"
+
+"" - "z:\resource\qt\translations\photos.qm"
+
+
Binary file gallery/sis/photos_stub.sis has changed
--- a/gallery/sis/photosqt_stub.pkg	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,92 +0,0 @@
-;
-; Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
-; All rights reserved.
-; This component and the accompanying materials are made available
-; under the terms of "Eclipse Public License v1.0"
-; which accompanies this distribution, and is available
-; at the URL "http://www.eclipse.org/legal/epl-v10.html".
-;
-; Initial Contributors:
-; Nokia Corporation - initial contribution.
-;
-; Contributors:
-;
-; Description:   Package file for project Gallery
-;
-
-; -------- general --------
-
-; Languages
-&EN
-
-; Package header
-#{"photos"},(0x200009EE),1,0,0,TYPE=SA
-
-;Localised Vendor name
-%{"Nokia"}
-
-;Unique Vendor name
-:"Nokia"
-
-; Dependency for S60 3.0
-[0x101F7961],0,0,0,{"Series60v3.0"}
-
-; -------- files --------
-
-; NOTE: This installation package does not include huitoolkit.dll,
-; so you have to install it separately!
-
-
-""-"z:\sys\bin\glxcollectionplugintags.dll"
-""-"z:\resource\plugins\glxcollectionplugintags.rsc"
-""-"z:\resource\plugins\glxplugintags.rsc"
-""-"z:\sys\bin\glxcommon.dll"
-""-"z:\sys\bin\glxcommonui.dll"
-""-"z:\sys\bin\glxdatasourcemanager.dll"
-""-"z:\sys\bin\glxdatasourcemde.dll"
-""-"z:\resource\plugins\glxdatasourcemde.rsc"
-""-"z:\sys\bin\glxcollectionpluginalbums.dll"
-""-"z:\resource\plugins\glxcollectionpluginalbums.rsc"
-""-"z:\resource\plugins\glxpluginalbums.rsc"
-""-"z:\sys\bin\glxcollectionpluginall.dll"
-""-"z:\resource\plugins\glxcollectionpluginall.rsc"
-""-"z:\resource\plugins\glxpluginall.rsc"
-""-"z:\sys\bin\glxcollectionplugincamera.dll"
-""-"z:\resource\plugins\glxcollectionplugincamera.rsc"
-""-"z:\resource\plugins\glxplugincamera.rsc"
-""-"z:\sys\bin\glxcollectionplugindownloads.dll"
-""-"z:\resource\plugins\glxcollectionplugindownloads.rsc"
-""-"z:\resource\plugins\glxplugindownloads.rsc"
-""-"z:\sys\bin\glxcollectionpluginmonths.dll"
-""-"z:\resource\plugins\glxcollectionpluginmonths.rsc"
-""-"z:\resource\plugins\glxpluginmonths.rsc"
-
-
-""-"z:\sys\bin\glxmedialists.dll"
-
-""-"z:\sys\bin\glxdrmutility.dll"
-
-; Glx logging client
-""-"z:\sys\bin\glxlogging.dll"
-
-
-""-"z:\sys\bin\photos.exe"
-""-"z:\private\10003a3f\import\apps\photos_reg.rsc"		
-""-"z:\resource\apps\photos.rsc"
-""- "z:\resource\apps\0xE2C223D9.mif"
-
-;qt dlls
-""-"z:\sys\bin\glxtvoutwrapper.dll"
-""-"z:\sys\bin\glxmedialistwrapper.dll"
-""-"z:\sys\bin\glxmodelwrapper.dll"
-""-"z:\sys\bin\glxexternalutility.dll"
-""-"z:\sys\bin\glxmediamodel.dll"
-""-"z:\sys\bin\glxlistmodel.dll"
-""-"z:\sys\bin\glxstatehandler.dll"
-""-"z:\sys\bin\glxviewmanager.dll"
-""-"z:\sys\bin\glxviews.dll"
-""-"z:\sys\bin\glxloggerqt.dll"
-""-"z:\sys\bin\glximagedecoderwrapper.dll"
-
-""-"z:\sys\bin\glxcommandhandlerbase.dll"
-""-"z:\sys\bin\glxcommoncommandhandlers.dll"
Binary file gallery/sis/photosqt_stub.sis has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gallery/sis/readme.txt	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,38 @@
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors: Indrajit Tapadar
+*
+* Description:   Readme file is a help file to know more about the folder, its files and usage
+*
+*/
+
+This file contains the sis package installations for Photos on Qt.
+
+About the files :
+
+Photos.pkg : This contains all the information regarding the photos as a package. all new dll's should 
+	     be added to this file without fail.
+
+Photos_stub.pkg : This conatins the dll names which needs to be updated later with a sis package.
+		Any New addition of Dll's also should be added here.
+		Remember , This package is used to create a photos_stub.sis file which is then exported to
+		the install directory in epoc, which is again read from the iby file to be passed in rom image.
+
+RDTest_02.key : Key for making a sisx file
+RDTest_02.cert : certificate for creating a sisx file.
+
+Createsis.bat : this file conatins the procedure of creating the Photos_stub.sis file and Photos.sisx file.
+		The former is passed to the install directory wheras the later is installed on phone.
+	
+
+After any new addition of dll's please do not forget to update the photos_stub.sis file and also checkin the latest 
+	file.
\ No newline at end of file
--- a/inc/glxlocalisationstrings.h	Mon May 03 16:56:16 2010 +0530
+++ b/inc/glxlocalisationstrings.h	Mon May 17 13:35:26 2010 +0530
@@ -106,5 +106,6 @@
 
 #define GLX_MENU_OPEN                hbTrId("txt_common_menu_open")
 
+#define GLX_BUTTON_HIDE              hbTrId("txt_common_button_hide")
 
 #endif /* GLXLOCALISATIONSTRINGS_H_ */
--- a/main/glxaiwservicehandler.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/main/glxaiwservicehandler.cpp	Mon May 17 13:35:26 2010 +0530
@@ -164,10 +164,10 @@
     mModel = new GlxMediaModel(modelParm);
 
     if ( this->orientation() == Qt::Horizontal ) {
-        mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
+        mModel->setData(QModelIndex(), (int)GlxContextLsGrid, GlxContextRole );
     }
     else {
-        mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
+        mModel->setData(QModelIndex(), (int)GlxContextPtGrid, GlxContextRole );
     }    
 
     mView = GlxViewsFactory::createView(GLX_GRIDVIEW_ID, this);
@@ -204,6 +204,12 @@
 	
 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);
 	connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect()));
     HbToolBar* toolBar = new HbToolBar();
@@ -524,7 +530,7 @@
         {
         mImageViewerInstance = CGlxImageViewerManager::InstanceL();
         }
-    QString filepath(QDir::toNativeSeparators(file.at(0)));
+    QString filepath(QDir::toNativeSeparators(file));
     TPtrC16 str(reinterpret_cast<const TUint16*> (filepath.utf16()));
     HBufC* uri = str.Alloc();
 
--- a/photos.pro	Mon May 03 16:56:16 2010 +0530
+++ b/photos.pro	Mon May 17 13:35:26 2010 +0530
@@ -24,11 +24,13 @@
 CONFIG += ordered
 SUBDIRS	    = group \
               loggers \
-	      commonutilities \
-	      tvout\tvoutwrapper \
-	      ui \
-              main
+			  commonutilities \
+			  tvout\tvoutwrapper \
+			  ui \
+              main \
+			  gallery
               
 BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>" \
         "rom/photos.iby   CORE_APP_LAYER_IBY_EXPORT_PATH(photos.iby)" \
         "rom/photos_resources.iby   LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(photos_resources.iby)" \
+		"gallery/sis/photos_stub.sis /epoc32/data/z/system/install/photos_stub.sis" \
--- a/photos.qrc	Mon May 03 16:56:16 2010 +0530
+++ b/photos.qrc	Mon May 17 13:35:26 2010 +0530
@@ -25,5 +25,15 @@
         <file>data/listview.docml</file>
         <file>data/fullscreen.docml</file>
         <file>data/slideshow.docml</file>
-	    </qresource>
+        <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>
+    </qresource>
 </RCC>
--- a/rom/photos.iby	Mon May 03 16:56:16 2010 +0530
+++ b/rom/photos.iby	Mon May 17 13:35:26 2010 +0530
@@ -20,17 +20,15 @@
 #include <bldvariant.hrh>
 #include <data_caging_paths_for_iby.hrh>
 
-file=ABI_DIR/BUILD_DIR/glxcommonui.dll                          SHARED_LIB_DIR/glxcommonui.dll  
-
+file=ABI_DIR/BUILD_DIR/glxcommonui.dll                        SHARED_LIB_DIR/glxcommonui.dll  
 file=ABI_DIR/BUILD_DIR/glxcommon.dll                          SHARED_LIB_DIR/glxcommon.dll  
-file=ABI_DIR/BUILD_DIR/glxexternalutility.dll              SHARED_LIB_DIR/glxexternalutility.dll
-file=ABI_DIR/BUILD_DIR/glximagedecoderwrapper.dll              SHARED_LIB_DIR/glximagedecoderwrapper.dll
 file=ABI_DIR/BUILD_DIR/glximageviewermanager.dll              SHARED_LIB_DIR/glximageviewermanager.dll
 
+// datasource
 file=ABI_DIR/BUILD_DIR/glxdatasourcemanager.dll               SHARED_LIB_DIR/glxdatasourcemanager.dll  
-
 ECOM_PLUGIN( glxdatasourcemde.dll, glxdatasourcemde.rsc )
 
+// Collection plugins
 ECOM_PLUGIN( glxcollectionpluginalbums.dll, glxcollectionpluginalbums.rsc )
 data=DATAZ_/ECOM_RESOURCE_DIR/glxpluginalbums.rsc              ECOM_RESOURCE_DIR/glxpluginalbums.rsc
 
@@ -51,31 +49,39 @@
 
 ECOM_PLUGIN( glxcollectionpluginimageviewer.dll, glxcollectionpluginimageviewer.rsc )
 
-file=ABI_DIR/BUILD_DIR/glxlogging.dll              SHARED_LIB_DIR/glxlogging.dll
-file=ABI_DIR/BUILD_DIR/glxloggerqt.dll              SHARED_LIB_DIR/glxloggerqt.dll
+// logger
+file=ABI_DIR/BUILD_DIR/glxlogging.dll              			SHARED_LIB_DIR/glxlogging.dll
 
-file=ABI_DIR/BUILD_DIR/glxcommandhandlerbase.dll              SHARED_LIB_DIR/glxcommandhandlerbase.dll
-file=ABI_DIR/BUILD_DIR/glxcommoncommandhandlers.dll              SHARED_LIB_DIR/glxcommoncommandhandlers.dll
-file=ABI_DIR/BUILD_DIR/glxtvoutwrapper.dll              SHARED_LIB_DIR/glxtvoutwrapper.dll
+// commandhandlers
+file=ABI_DIR/BUILD_DIR/glxcommandhandlerbase.dll            SHARED_LIB_DIR/glxcommandhandlerbase.dll
+file=ABI_DIR/BUILD_DIR/glxcommoncommandhandlers.dll         SHARED_LIB_DIR/glxcommoncommandhandlers.dll
+
+// engine
+file=ABI_DIR/BUILD_DIR/glxdrmutility.dll					SHARED_LIB_DIR/glxdrmutility.dll
+file=ABI_DIR/BUILD_DIR/glxmedialists.dll                    SHARED_LIB_DIR/glxmedialists.dll
+file=ABI_DIR\BUILD_DIR/glxtvout.dll      					SHARED_LIB_DIR/glxtvout.dll
 
-file=ABI_DIR/BUILD_DIR/glxdrmutility.dll											SHARED_LIB_DIR/glxdrmutility.dll
-file=ABI_DIR/BUILD_DIR/glxmedialists.dll                        SHARED_LIB_DIR/glxmedialists.dll
-file=ABI_DIR/BUILD_DIR/glxmedialistwrapper.dll              SHARED_LIB_DIR/glxmedialistwrapper.dll
-file=ABI_DIR/BUILD_DIR/glxmediamodel.dll              SHARED_LIB_DIR/glxmediamodel.dll
-file=ABI_DIR/BUILD_DIR/glxlistmodel.dll              SHARED_LIB_DIR/glxlistmodel.dll
-file=ABI_DIR/BUILD_DIR/glxmodelwrapper.dll              SHARED_LIB_DIR/glxmodelwrapper.dll
-file=ABI_DIR/BUILD_DIR/glxfavmediamodel.dll          SHARED_LIB_DIR/glxfavmediamodel.dll
+// viewmanagement
+file=ABI_DIR/BUILD_DIR/glxstatehandler.dll              	SHARED_LIB_DIR/glxstatehandler.dll
+file=ABI_DIR/BUILD_DIR/glxviewmanager.dll              		SHARED_LIB_DIR/glxviewmanager.dll
 
-file=ABI_DIR/BUILD_DIR/glxstatehandler.dll              SHARED_LIB_DIR/glxstatehandler.dll
-file=ABI_DIR/BUILD_DIR/glxviewmanager.dll              SHARED_LIB_DIR/glxviewmanager.dll
-
-file=ABI_DIR/BUILD_DIR/glxviews.dll              SHARED_LIB_DIR/glxviews.dll
+//qt 
+file=ABI_DIR/BUILD_DIR/glxexternalutility.dll              	SHARED_LIB_DIR/glxexternalutility.dll
+file=ABI_DIR/BUILD_DIR/glximagedecoderwrapper.dll          	SHARED_LIB_DIR/glximagedecoderwrapper.dll
+file=ABI_DIR/BUILD_DIR/glxloggerqt.dll              	   	SHARED_LIB_DIR/glxloggerqt.dll
+file=ABI_DIR/BUILD_DIR/glxmedialistwrapper.dll             	SHARED_LIB_DIR/glxmedialistwrapper.dll
+file=ABI_DIR/BUILD_DIR/glxtvoutwrapper.dll                 	SHARED_LIB_DIR/glxtvoutwrapper.dll
+file=ABI_DIR/BUILD_DIR/glxfavmediamodel.dll          		SHARED_LIB_DIR/glxfavmediamodel.dll
+file=ABI_DIR/BUILD_DIR/glxmediamodel.dll                   	SHARED_LIB_DIR/glxmediamodel.dll
+file=ABI_DIR/BUILD_DIR/glxmodelwrapper.dll              	SHARED_LIB_DIR/glxmodelwrapper.dll
+file=ABI_DIR/BUILD_DIR/glxlistmodel.dll                    	SHARED_LIB_DIR/glxlistmodel.dll
+file=ABI_DIR/BUILD_DIR/glxviews.dll                        	SHARED_LIB_DIR/glxviews.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/0xE2C223D9.mif                     APP_RESOURCE_DIR/0xE2C223D9.mif  
-data=/epoc32/data/Z/private/10202BE9/20007194.txt		private/10202BE9/20007194.txt
-//data=/epoc32/data/z/system/install/photos_stub.sis        /system/install/photos_stub.sis
+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/system/install/photos_stub.sis        				/system/install/photos_stub.sis
 
 #endif //__PHOTOS_IBY__
\ No newline at end of file
--- a/tvout/tvoutengine/bwins/glxtvoutu.def	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutengine/bwins/glxtvoutu.def	Mon May 17 13:35:26 2010 +0530
@@ -6,12 +6,11 @@
 	??1CGlxHdmiController@@UAE@XZ @ 5 NONAME ; CGlxHdmiController::~CGlxHdmiController(void)
 	?NewL@CGlxHdmiController@@SAPAV1@XZ @ 6 NONAME ; class CGlxHdmiController * CGlxHdmiController::NewL(void)
 	?IsWidescreen@CGlxTv@@QBEHXZ @ 7 NONAME ; int CGlxTv::IsWidescreen(void) const
-	?IsHDMIConnected@CGlxHdmiController@@QAEHXZ @ 8 NONAME ; int CGlxHdmiController::IsHDMIConnected(void)
-	?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 9 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void)
-	?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 10 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void)
-	?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 11 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &)
-	?IsConnected@CGlxTv@@QBEHXZ @ 12 NONAME ; int CGlxTv::IsConnected(void) const
-	?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 13 NONAME ; void CGlxHdmiController::ItemNotSupported(void)
-	?IsHDMIConnected@CGlxTv@@QBEHXZ @ 14 NONAME ; int CGlxTv::IsHDMIConnected(void) const
-	?DeactivateZoom@CGlxHdmiController@@QAEXXZ @ 15 NONAME ; void CGlxHdmiController::DeactivateZoom(void)
+	?ShiftToPostingMode@CGlxHdmiController@@QAEXXZ @ 8 NONAME ; void CGlxHdmiController::ShiftToPostingMode(void)
+	?ShiftToCloningMode@CGlxHdmiController@@QAEXXZ @ 9 NONAME ; void CGlxHdmiController::ShiftToCloningMode(void)
+	?NewL@CGlxTv@@SAPAV1@AAVMGlxTvObserver@@@Z @ 10 NONAME ; class CGlxTv * CGlxTv::NewL(class MGlxTvObserver &)
+	?IsConnected@CGlxTv@@QBEHXZ @ 11 NONAME ; int CGlxTv::IsConnected(void) const
+	?ItemNotSupported@CGlxHdmiController@@QAEXXZ @ 12 NONAME ; void CGlxHdmiController::ItemNotSupported(void)
+	?IsHDMIConnected@CGlxTv@@QBEHXZ @ 13 NONAME ; int CGlxTv::IsHDMIConnected(void) const
+	?DeactivateZoom@CGlxHdmiController@@QAEXXZ @ 14 NONAME ; void CGlxHdmiController::DeactivateZoom(void)
 
--- a/tvout/tvoutengine/eabi/glxtvoutu.def	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutengine/eabi/glxtvoutu.def	Mon May 17 13:35:26 2010 +0530
@@ -1,29 +1,28 @@
 EXPORTS
 	_ZN18CGlxHdmiController12ActivateZoomEi @ 1 NONAME
 	_ZN18CGlxHdmiController14DeactivateZoomEv @ 2 NONAME
-	_ZN18CGlxHdmiController15IsHDMIConnectedEv @ 3 NONAME
-	_ZN18CGlxHdmiController16ItemNotSupportedEv @ 4 NONAME
-	_ZN18CGlxHdmiController18ShiftToCloningModeEv @ 5 NONAME
-	_ZN18CGlxHdmiController18ShiftToPostingModeEv @ 6 NONAME
-	_ZN18CGlxHdmiController4NewLEv @ 7 NONAME
-	_ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 8 NONAME
-	_ZN18CGlxHdmiControllerD0Ev @ 9 NONAME
-	_ZN18CGlxHdmiControllerD1Ev @ 10 NONAME
-	_ZN18CGlxHdmiControllerD2Ev @ 11 NONAME
-	_ZN6CGlxTv4NewLER14MGlxTvObserver @ 12 NONAME
-	_ZN6CGlxTvD0Ev @ 13 NONAME
-	_ZN6CGlxTvD1Ev @ 14 NONAME
-	_ZN6CGlxTvD2Ev @ 15 NONAME
-	_ZNK6CGlxTv11IsConnectedEv @ 16 NONAME
-	_ZNK6CGlxTv11ScreenSizeLEv @ 17 NONAME
-	_ZNK6CGlxTv12IsWidescreenEv @ 18 NONAME
-	_ZNK6CGlxTv15IsHDMIConnectedEv @ 19 NONAME
-	_ZTI17CGlxHdmiContainer @ 20 NONAME
-	_ZTI17CGlxHdmiDecoderAO @ 21 NONAME
-	_ZTI18CGlxHdmiController @ 22 NONAME
-	_ZTI22CGlxHdmiSurfaceUpdater @ 23 NONAME
-	_ZTV17CGlxHdmiContainer @ 24 NONAME
-	_ZTV17CGlxHdmiDecoderAO @ 25 NONAME
-	_ZTV18CGlxHdmiController @ 26 NONAME
-	_ZTV22CGlxHdmiSurfaceUpdater @ 27 NONAME
+	_ZN18CGlxHdmiController16ItemNotSupportedEv @ 3 NONAME
+	_ZN18CGlxHdmiController18ShiftToCloningModeEv @ 4 NONAME
+	_ZN18CGlxHdmiController18ShiftToPostingModeEv @ 5 NONAME
+	_ZN18CGlxHdmiController4NewLEv @ 6 NONAME
+	_ZN18CGlxHdmiController9SetImageLERK7TDesC16P10CFbsBitmapi @ 7 NONAME
+	_ZN18CGlxHdmiControllerD0Ev @ 8 NONAME
+	_ZN18CGlxHdmiControllerD1Ev @ 9 NONAME
+	_ZN18CGlxHdmiControllerD2Ev @ 10 NONAME
+	_ZN6CGlxTv4NewLER14MGlxTvObserver @ 11 NONAME
+	_ZN6CGlxTvD0Ev @ 12 NONAME
+	_ZN6CGlxTvD1Ev @ 13 NONAME
+	_ZN6CGlxTvD2Ev @ 14 NONAME
+	_ZNK6CGlxTv11IsConnectedEv @ 15 NONAME
+	_ZNK6CGlxTv11ScreenSizeLEv @ 16 NONAME
+	_ZNK6CGlxTv12IsWidescreenEv @ 17 NONAME
+	_ZNK6CGlxTv15IsHDMIConnectedEv @ 18 NONAME
+	_ZTI17CGlxHdmiContainer @ 19 NONAME
+	_ZTI17CGlxHdmiDecoderAO @ 20 NONAME
+	_ZTI18CGlxHdmiController @ 21 NONAME
+	_ZTI22CGlxHdmiSurfaceUpdater @ 22 NONAME
+	_ZTV17CGlxHdmiContainer @ 23 NONAME
+	_ZTV17CGlxHdmiDecoderAO @ 24 NONAME
+	_ZTV18CGlxHdmiController @ 25 NONAME
+	_ZTV22CGlxHdmiSurfaceUpdater @ 26 NONAME
 
--- a/tvout/tvoutengine/group/bld.inf	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutengine/group/bld.inf	Mon May 17 13:35:26 2010 +0530
@@ -23,11 +23,5 @@
  
  #include <platform_paths.hrh>
 
-PRJ_EXPORTS
-../rom/glxtvout.iby     CORE_APP_LAYER_IBY_EXPORT_PATH(glxtvout.iby)
-
 PRJ_MMPFILES
 glxtvout.mmp
-
-PRJ_TESTMMPFILES
-//../tsrc/group/t_glxtvout.mmp
--- a/tvout/tvoutengine/inc/glxhdmicontroller.h	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutengine/inc/glxhdmicontroller.h	Mon May 17 13:35:26 2010 +0530
@@ -19,17 +19,14 @@
 #define GLXHDMICONTROLLER_H_
 
 // Internal includes
-#include <mglxtvobserver.h>     // for inteface MGlxTvObserver
 
 class CGlxHdmiContainer;
 class CGlxHdmiSurfaceUpdater;
-class CGlxTv;
 
 /*
  * This class will be called from FS and Slideshow for its requirements 
  */
-class CGlxHdmiController : public CBase,
-                            public MGlxTvObserver              // for TV Out
+class CGlxHdmiController : public CBase
     {
 public:
     /*
@@ -74,14 +71,6 @@
      */
     IMPORT_C void ShiftToPostingMode();
 
-    /*
-     * Tells if HDMi is Connected.
-     */
-    IMPORT_C TBool IsHDMIConnected();
-
-private:// From MGlxTvObserver
-    void HandleTvStatusChangedL ( TTvChangeType aChangeType );
-
 private:
     /*
      * Constructor
@@ -126,9 +115,7 @@
     
     CGlxHdmiContainer*      iHdmiContainer;
     CGlxHdmiSurfaceUpdater* iSurfaceUpdater;
-    CGlxTv*  iGlxTvOut;
     TBool   iIsImageSupported;          // Flag to see if Image is supported
-    TBool   iIsPostingMode;             // Flag for determining if the image needs to be in posting mode
     };
 
 #endif /* GLXHDMICONTROLLER_H_ */
--- a/tvout/tvoutengine/inc/glxtvconnectionmonitor.h	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutengine/inc/glxtvconnectionmonitor.h	Mon May 17 13:35:26 2010 +0530
@@ -88,49 +88,52 @@
 private: // From CActive
     /**
      * @ref CActive::RunL
-     */	
+     */
 	void RunL();
-	
+
     /**
      * @ref CActive::DoCancel
-     */	
+     */
 	void DoCancel();
-    
+
     /**
      * @ref CActive::RunError
-     */    
-    TInt RunError( TInt aError );    
-    
-    
+     */
+    TInt RunError( TInt aError );
+
+
 private:
 
     /**
-     * Requests TV on/off events 
-     */        
+     * Requests TV on/off events
+     */
     void IssueRequest();
 
     /**
      * Sends notification to observers when TV Out cable is connected
-     */      
+     */
     void IssueNotificationL();
-    
-    void UpdateConnectionStatusL();
+
+    /**
+	 * Updates the ConnectionState of Tv Out and HDMI
+	 */
+	void UpdateConnectionStatusL();
 
 private: // class member data
-    
+
     // Not owned: TV connection observer
     MGlxTvConnectionObserver& iConnectionObserver;
 
-    // TVout The Connection state 
-    TBool iTvOutConnectionState;
-    
-    // TVout The Connection state 
-    TBool iHDMIConnectionState;
+    // TVout The Connection state
+    TBool iIsTvOutConnected;
+
+    // TVout The Connection state
+    TBool iIsHDMIConnected;
 
     // The (external device) Accessory Server
     RAccessoryServer iTvAccServer;
-    
-    // Accessory mode 
+
+    // Accessory mode
     RAccessoryMode iTvAccMode;
 
     // Accessory Connection - details the type of accessory
--- a/tvout/tvoutengine/src/glxhdmicontroller.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutengine/src/glxhdmicontroller.cpp	Mon May 17 13:35:26 2010 +0530
@@ -19,7 +19,7 @@
 #include <alf/alfutil.h>
 #include <glxtracer.h>
 #include <glxlog.h>
-#include "glxtv.h"                      // for CGlxTv
+
 #include "glxhdmicontainer.h"
 #include "glxhdmisurfaceupdater.h"
 
@@ -53,10 +53,6 @@
         delete iFsBitmap;
         iFsBitmap = NULL;
         }
-    if(iGlxTvOut)
-		{
-        delete iGlxTvOut;
-		}
     }
 
 // -----------------------------------------------------------------------------
@@ -66,47 +62,45 @@
                                              TBool aStore)
     {
     TRACER("CGlxHdmiController::SetImageL()");
+    if (aFsBitmap == NULL || !aImageFile.Length())
+        {
+        GLX_LOG_INFO("CGlxHdmiController::SetImageL() - NULL Uri");
+        return;
+        }
     if (aStore)
         {
         iIsImageSupported = ETrue;
         StoreImageInfoL( aImageFile, aFsBitmap );
         }
-    if (iGlxTvOut->IsHDMIConnected())
+    GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 2");
+    // do not close the surface , use the same surface instead.
+    // Call a function to pass imagefile
+    if (!iHdmiContainer)
+        {            
+        CreateHdmiContainerL(); 
+        }            
+    if (!iSurfaceUpdater)
         {
-        iIsPostingMode = ETrue;         // the image should be in posting mode
-        GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 2");
-        // do not close the surface , use the same surface instead.
-        // Call a function to pass imagefile
-        if (!iHdmiContainer)
-            {            
-            CreateHdmiContainerL(); 
-            }            
-        if (!iSurfaceUpdater)
-            {
-            // This case would come when surface updater is not created at the first instance and also
-            // it satisfies the 720p condition                
-            CreateSurfaceUpdaterL(aImageFile);
-            }
-        else
-            {
-            GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 3");
-            iSurfaceUpdater->UpdateNewImageL(aImageFile, aFsBitmap);
-            }
-        iHdmiContainer->DrawNow();
+        // This case would come when surface updater is not created at the first instance and also
+        // it satisfies the 720p condition                
+        CreateSurfaceUpdaterL(aImageFile);
         }
+    else
+        {
+        GLX_LOG_INFO("CGlxHdmiController::SetImageL() - 3");
+        iSurfaceUpdater->UpdateNewImageL(aImageFile, aFsBitmap);
+        }
+    iHdmiContainer->DrawNow();
     }
 
 // -----------------------------------------------------------------------------
-// IsVideo 
+// ItemNotSupported 
 // -----------------------------------------------------------------------------
 EXPORT_C void CGlxHdmiController::ItemNotSupported()
     {
     TRACER("CGlxHdmiController::IsVideo()");
     iIsImageSupported = EFalse;
-    if (iGlxTvOut->IsHDMIConnected())
-        {
-        DestroySurfaceUpdater();
-        }
+    DestroySurfaceUpdater();
     }
 
 
@@ -116,7 +110,7 @@
 EXPORT_C void CGlxHdmiController::ActivateZoom(TBool aAutoZoomOut)
     {
     TRACER("CGlxHdmiController::ActivateZoom()");
-    if (iGlxTvOut->IsHDMIConnected())
+    if (iSurfaceUpdater)
         {
         iSurfaceUpdater->ActivateZoom(aAutoZoomOut);
         }
@@ -128,7 +122,7 @@
 EXPORT_C void CGlxHdmiController::DeactivateZoom()
     {
     TRACER("CGlxHdmiController::DeactivateZoom()");
-    if (iGlxTvOut->IsHDMIConnected())
+    if (iSurfaceUpdater)
         {
         iSurfaceUpdater->DeactivateZoom();
         }
@@ -141,9 +135,8 @@
     {
     TRACER("CGlxHdmiController::ShiftToCloningMode()");
     // Shift to cloning only if HDMI is connected and surfaceupdater available.
-    if (iGlxTvOut->IsHDMIConnected() && iSurfaceUpdater)
+    if (iSurfaceUpdater)
         {
-        iIsPostingMode = EFalse;
         iSurfaceUpdater->ShiftToCloningMode();
         }
     }
@@ -154,41 +147,32 @@
 EXPORT_C void CGlxHdmiController::ShiftToPostingMode()
     {
     TRACER("CGlxHdmiController::ShiftToPostingMode()");
-    if (iGlxTvOut->IsHDMIConnected())
+    if (!iSurfaceUpdater)
         {
-        if (!iSurfaceUpdater)
+        GLX_LOG_INFO("CGlxHdmiController::ShiftToPostingMode() - 1");
+        // This case would come when HDMI connected, TvOut /headphones being connected
+        // and then it shows a popup of "microphone connected" 
+        // thus Background - Foreground when headphones connected during HDMI connected
+        if (iFsBitmap == NULL || !iStoredImagePath->Length())
             {
-            GLX_LOG_INFO("CGlxHdmiController::ShiftToPostingMode() - 1");
-            // This case would come when HDMI connected, TvOut /headphones being connected
-            // and then it shows a popup of "microphone connected" 
-            // thus Background - Foreground when headphones connected during HDMI connected
-            SetImageL(iStoredImagePath->Des(), iFsBitmap, EFalse);
+            GLX_LOG_INFO("CGlxHdmiController::ShiftToPostingMode() - NULL Uri");
+            return;
             }
-        else
-            {
-            GLX_LOG_INFO("CGlxHdmiController::ShiftToPostingMode() - 2");
-            iSurfaceUpdater->ShiftToPostingMode();
-            }
-        iIsPostingMode = ETrue;
+        SetImageL(iStoredImagePath->Des(), iFsBitmap, EFalse);
+        }
+    else
+        {
+        GLX_LOG_INFO("CGlxHdmiController::ShiftToPostingMode() - 2");
+        iSurfaceUpdater->ShiftToPostingMode();
         }
     }
 
 // -----------------------------------------------------------------------------
-// IsHDMIConnected 
-// -----------------------------------------------------------------------------
-EXPORT_C TBool CGlxHdmiController::IsHDMIConnected()
-    {
-    TRACER("CGlxHdmiController::IsHDMIConnected()");
-    return iGlxTvOut->IsHDMIConnected(); 
-    }
-
-
-// -----------------------------------------------------------------------------
 // Constructor
 // -----------------------------------------------------------------------------
 CGlxHdmiController::CGlxHdmiController():
             iFsBitmap(NULL),
-            iIsPostingMode(EFalse)
+            iStoredImagePath(NULL)
     {
     TRACER("CGlxHdmiController::CGlxHdmiController()");
     // Implement nothing here
@@ -200,7 +184,6 @@
 void CGlxHdmiController::ConstructL()
     {
     TRACER("CGlxHdmiController::ConstructL()");
-    iGlxTvOut = CGlxTv::NewL(*this);
     }
 
 // -----------------------------------------------------------------------------
@@ -228,7 +211,6 @@
         delete iSurfaceUpdater;
         iSurfaceUpdater = NULL;
         }    
-    iIsPostingMode = EFalse;
     }
 
 // -----------------------------------------------------------------------------
@@ -274,35 +256,3 @@
     iFsBitmap->Duplicate(aFsBitmap->Handle());
     }
 
-// -----------------------------------------------------------------------------
-// HandleTvStatusChangedL 
-// -----------------------------------------------------------------------------
-void CGlxHdmiController::HandleTvStatusChangedL( TTvChangeType aChangeType )
-    {
-    TRACER("CGlxHdmiController::HandleTvStatusChangedL()");
-    if ( aChangeType == ETvConnectionChanged )          
-        {
-        if ( iGlxTvOut->IsHDMIConnected() && iGlxTvOut->IsConnected() && iSurfaceUpdater)
-            {
-            GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI and TV Connected");
-            // Do nothing , as this means HDMI is already connected and headset/tv cable connected
-            // meaning we shouldnt destroy HDMI and neither have to create surface updater.
-            return;
-            }
-        else if ( iGlxTvOut->IsHDMIConnected() && iIsImageSupported && iIsPostingMode)
-            {
-            GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Connected");
-            // Calling SetImageL() with appropriate parameters
-            SetImageL(iStoredImagePath->Des(), iFsBitmap, EFalse);
-            }
-        else
-            {
-            GLX_LOG_INFO3("CGlxHdmiController::HandleTvStatusChangedL() iIsImageSupported=%d, iGlxTvOut->IsHDMIConnected()=%d, iIsPostingMode=%d", 
-                    iIsImageSupported,iGlxTvOut->IsHDMIConnected(),iIsPostingMode);
-            // if it gets disconnected, destroy the surface 
-            GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI Not Connected");
-            DestroySurfaceUpdater();
-            }
-        }
-    }
-
--- a/tvout/tvoutengine/src/glxtvconnectionmonitor.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutengine/src/glxtvconnectionmonitor.cpp	Mon May 17 13:35:26 2010 +0530
@@ -17,10 +17,6 @@
 
 
 
-/**
- * @internal reviewed 24/08/2007 by D Holland
- */
-
 //  CLASS HEADER
 #include "glxtvconnectionmonitor.h"
 
@@ -69,17 +65,15 @@
 // Default C++ constructor
 //-----------------------------------------------------------------------------
 //
-CGlxTvConnectionMonitor::CGlxTvConnectionMonitor
-                           ( MGlxTvConnectionObserver& aConnectionObserver ) 
-                            :CActive(EPriorityStandard), 
-                             iConnectionObserver ( aConnectionObserver ),
-                             iTvOutConnectionState(EFalse),
-                             iHDMIConnectionState(EFalse)
+CGlxTvConnectionMonitor::CGlxTvConnectionMonitor(
+		MGlxTvConnectionObserver& aConnectionObserver) :
+	CActive(EPriorityStandard), iConnectionObserver(aConnectionObserver),
+			iIsTvOutConnected(EFalse), iIsHDMIConnected(EFalse)
 
-    {
-    TRACER("CGlxTvConnectionMonitor");
-    CActiveScheduler::Add( this );
-    }
+	{
+	TRACER("CGlxTvConnectionMonitor");
+	CActiveScheduler::Add(this);
+	}
 
 
 //-----------------------------------------------------------------------------
@@ -146,8 +140,8 @@
 TBool CGlxTvConnectionMonitor::IsConnected() const
     {
     TRACER("CGlxTvConnectionMonitor::IsConnected");
-    GLX_LOG_INFO1("CGlxTvConnectionMonitor::IsConnected iTvOutConnectionState=%d",iTvOutConnectionState);
-    return iTvOutConnectionState;
+    GLX_LOG_INFO1("CGlxTvConnectionMonitor::IsConnected iIsTvOutConnected=%d",iIsTvOutConnected);
+    return iIsTvOutConnected;
     }
 
 //-----------------------------------------------------------------------------
@@ -158,8 +152,8 @@
 TBool CGlxTvConnectionMonitor::IsHDMIConnected() const
     {
     TRACER("CGlxTvConnectionMonitor::IsHDMIConnected");
-    GLX_LOG_INFO1("CGlxTvConnectionMonitor::IsHDMIConnected iHDMIConnectionState=%d",iHDMIConnectionState);
-    return iHDMIConnectionState;
+    GLX_LOG_INFO1("CGlxTvConnectionMonitor::IsHDMIConnected iIsHDMIConnected=%d",iIsHDMIConnected);
+    return iIsHDMIConnected;
     }
 
 //-----------------------------------------------------------------------------
@@ -181,21 +175,22 @@
 //-----------------------------------------------------------------------------
 //
 void CGlxTvConnectionMonitor::IssueNotificationL()
-    {
-    TRACER("CGlxTvConnectionMonitor::IssueNotificationL");
-	TBool previousTvState = iTvOutConnectionState;
-	TBool previousHDMIState = iHDMIConnectionState;
-	
+	{
+	TRACER("CGlxTvConnectionMonitor::IssueNotificationL");
+	TBool previousTvState = iIsTvOutConnected;
+	TBool previousHDMIState = iIsHDMIConnected;
+
 	// Update the connection status
 	UpdateConnectionStatusL();
-    
+
 	// trigger tvstatus change only when there is actually a change the in the connection and not 
 	// for spurious events
-	if (previousTvState !=iTvOutConnectionState || previousHDMIState != iHDMIConnectionState)
-	    {
-	    GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL - Connection Altered");
-	    iConnectionObserver.HandleTvConnectionStatusChangedL();
-	    }
+	if (previousTvState != iIsTvOutConnected || previousHDMIState
+			!= iIsHDMIConnected)
+		{
+		GLX_LOG_INFO("CGlxTvConnectionMonitor::IssueNotificationL - Connection Altered");
+		iConnectionObserver.HandleTvConnectionStatusChangedL();
+		}
 	}
 
 //-----------------------------------------------------------------------------
@@ -207,47 +202,64 @@
     TRACER("CGlxTvConnectionMonitor::UpdateConnectionStatusL()");
 
     GLX_LOG_INFO2("CGlxTvConnectionMonitor::UpdateConnectionStatusL previousTvState = %d , previousHDMIState = %d",
-            iTvOutConnectionState,iHDMIConnectionState);
+            iIsTvOutConnected,iIsHDMIConnected);
+
+    // reset the states
+    iIsHDMIConnected = EFalse;
+    iIsTvOutConnected = EFalse;
 
     //gets the TV status in to the iCurrentAccArray and haves the Latest Accesory in 0-index
     User::LeaveIfError(iTvAccCon.GetAccessoryConnectionStatus(iCurrentAccArray));
 
     CAccPolSubblockNameArray* nameArray = CAccPolSubblockNameArray::NewL();
     CleanupStack::PushL(nameArray);
+
     //  Get the number of currently connected accessories
     //  Loop through each connected accessory looking for
     //  the desired capabilities
     //
     const TInt count = iCurrentAccArray.Count();
     GLX_LOG_INFO1("CGlxTvConnectionMonitor::UpdateConnectionStatusL current count value is %d",count);
-    for (TInt index = 0; index <count; index++)
+    for (TInt index = 0; index < count; index++)
         {
-        TAccPolGenericID genId = iCurrentAccArray.GetGenericIDL(index);
-        //  Get all supported capabilities for this connected accessory.
-        iTvAccCon.GetSubblockNameArrayL(genId, *nameArray);
+        const TAccPolGenericID genId = iCurrentAccArray.GetGenericIDL(index);
         //  Check if this connected accessory supports TV-Out capabality.
         GLX_LOG_INFO1("CGlxTvConnectionMonitor::UpdateConnectionStatusL current index value is %d",index);
-        if (nameArray->HasName(KAccVideoOut))
+        GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL Video Accessory Supported");
+        TAccPolNameRecord nameRecord;
+        nameRecord.SetNameL(KAccVideoOut);
+
+        if (genId.DeviceTypeCaps( KDTAVDevice ) &&
+                genId.PhysicalConnectionCaps( KPCHDMI ))
             {
-            GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL Video Accessory Supported");
-            TAccPolNameRecord nameRecord;
-            nameRecord.SetNameL(KAccVideoOut);
             TAccValueTypeTInt value;
-            iTvAccCon.GetValueL(genId, nameRecord, value);
-            if (value.iValue == EAccVideoOutEHDMI)
+            TInt err = iTvAccCon.GetValueL(genId, nameRecord, value);
+            if (err ==KErrNone)
                 {
-                GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL HDMI is connected");
-                iHDMIConnectionState = ETrue;
+                if (value.iValue == EAccVideoOutEHDMI)
+                    {
+                    GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL HDMI is connected");
+                    iIsHDMIConnected = ETrue;
+                    }
                 }
-            else if (value.iValue == EAccVideoOutCVideo)
+            }
+        else if (genId.DeviceTypeCaps( KDTAVDevice ) &&
+                genId.PhysicalConnectionCaps( KPCWired ))
+            {
+            TAccValueTypeTInt value;
+            TInt err = iTvAccCon.GetValueL(genId, nameRecord, value);
+            if (err ==KErrNone)
                 {
-                GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL TV is connected");
-                iTvOutConnectionState = ETrue;
+                if (value.iValue == EAccVideoOutCVideo)
+                    {
+                    GLX_LOG_INFO("CGlxTvConnectionMonitor::UpdateConnectionStatusL Tv is connected");
+                    iIsTvOutConnected = ETrue;
+                    }
                 }
             }
         }
     CleanupStack::PopAndDestroy(nameArray);
 
     GLX_LOG_INFO2("CGlxTvConnectionMonitor::UpdateConnectionStatusL CurrentTvState = %d , CurrentHDMIState = %d",
-            iTvOutConnectionState,iHDMIConnectionState);
+            iIsTvOutConnected,iIsHDMIConnected);
     }
--- a/tvout/tvoutwrapper/inc/glxtvconnectionobserver.h	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutwrapper/inc/glxtvconnectionobserver.h	Mon May 17 13:35:26 2010 +0530
@@ -38,6 +38,12 @@
      * destructor
      */
     ~CGlxConnectionObserver();
+    
+    /*
+     * IsHdmiConnected()
+     */
+    TBool IsHdmiConnected();
+    
 private:
     /*
      * ConstructL
--- a/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutwrapper/inc/glxtvoutwrapper_p.h	Mon May 17 13:35:26 2010 +0530
@@ -112,6 +112,7 @@
     
     bool       iHdmiConnected;                          // To check if the HDMI is connected
     bool       isImageSetToHdmi;                        // to check if the image is set to HDMI
+    bool       iIsPhotosInForeground;                   // to check if the Photos is on foreground
     };
 
 #endif //GLXTVOUTWRAPPERPRIVATE_P_H 
--- a/tvout/tvoutwrapper/src/glxtvconnectionobserver.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutwrapper/src/glxtvconnectionobserver.cpp	Mon May 17 13:35:26 2010 +0530
@@ -19,12 +19,15 @@
 #include "glxtvconnectionobserver.h"
 #include "glxtvoutwrapper_p.h"
 
+#include <glxtracer.h>
+#include <glxlog.h>
 
 // -----------------------------------------------------------------------------
 // NewL
 // -----------------------------------------------------------------------------
 CGlxConnectionObserver* CGlxConnectionObserver::NewL(GlxTvOutWrapperPrivate* aTvWrapperPrivate)
     {
+    TRACER("CGlxConnectionObserver::NewL()");
     CGlxConnectionObserver* self = new (ELeave)CGlxConnectionObserver(aTvWrapperPrivate);
     self->ConstructL();
     return self;
@@ -35,6 +38,7 @@
 // -----------------------------------------------------------------------------
 void CGlxConnectionObserver::ConstructL()
     {
+    TRACER("CGlxConnectionObserver::ConstructL()");
     iGlxTvOut = CGlxTv::NewL(*this);    
     }
 
@@ -44,6 +48,7 @@
 CGlxConnectionObserver::CGlxConnectionObserver(GlxTvOutWrapperPrivate* aTvWrapperPrivate):
             iTvWrapperPrivate(aTvWrapperPrivate)
     {
+    TRACER("CGlxConnectionObserver::CGlxConnectionObserver()");
     // ctor
     }
 
@@ -52,6 +57,7 @@
 // -----------------------------------------------------------------------------
 CGlxConnectionObserver::~CGlxConnectionObserver()
     {
+    TRACER("CGlxConnectionObserver::~CGlxConnectionObserver()");
     if (iGlxTvOut){
         delete iGlxTvOut;
         iGlxTvOut = NULL;
@@ -63,14 +69,25 @@
 // -----------------------------------------------------------------------------
 void CGlxConnectionObserver::HandleTvStatusChangedL(TTvChangeType aChangeType)
     {
+    TRACER("CGlxConnectionObserver::HandleTvStatusChangedL()");
     if ( aChangeType == ETvConnectionChanged ){
-        if ( iGlxTvOut->IsHDMIConnected() ){
+        if ( iGlxTvOut->IsHDMIConnected() )
+            {
+            GLX_LOG_INFO("CGlxHdmiController::HandleTvStatusChangedL() - HDMI and TV Connected");
             iTvWrapperPrivate->HandleConnectionChange(ETrue);
-            // emit HDMI connected signal
             }
         else{
+            GLX_LOG_INFO("CGlxConnectionObserver::HandleTvStatusChangedL() - DisConnected");
             iTvWrapperPrivate->HandleConnectionChange(EFalse);
-            // emit HDMI disconnected
             }
         }
     }
+
+// -----------------------------------------------------------------------------
+// IsHdmiConnected
+// -----------------------------------------------------------------------------
+TBool CGlxConnectionObserver::IsHdmiConnected()
+    {
+    TRACER("CGlxConnectionObserver::IsHdmiConnected()");
+    return iGlxTvOut->IsHDMIConnected();
+    }
--- a/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutwrapper/src/glxtvoutwrapper_p.cpp	Mon May 17 13:35:26 2010 +0530
@@ -22,12 +22,16 @@
 #include "glxmodelparm.h"
 #include "glxviewids.h"
 
+#include "glxtracer.h"
+#include "glxlog.h"
+
 // -----------------------------------------------------------------------------
 // Static method to create the private wrapper instance 
 // -----------------------------------------------------------------------------
 GlxTvOutWrapperPrivate* GlxTvOutWrapperPrivate::Instance(GlxTvOutWrapper* aTvOutWrapper,
         QAbstractItemModel* aModel)
     {
+    TRACER("GlxTvOutWrapperPrivate::Instance()");
     GlxTvOutWrapperPrivate* self = new GlxTvOutWrapperPrivate(aTvOutWrapper,aModel);
     if (self){
         TRAPD(err,self->ConstructL());
@@ -45,10 +49,11 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::ConstructL()
     {
+    TRACER("GlxTvOutWrapperPrivate::ConstructL()");
     iConnectionObserver = CGlxConnectionObserver::NewL(this);
     if (!iHdmiController) {
         iHdmiController = CGlxHdmiController::NewL();
-        iHdmiConnected = iHdmiController->IsHDMIConnected();
+        iHdmiConnected = iConnectionObserver->IsHdmiConnected();
         }
     }
     
@@ -61,8 +66,10 @@
                 iConnectionObserver(NULL),
                 iHdmiController(NULL),
                 iHdmiConnected(false),
-                isImageSetToHdmi(false)
+                isImageSetToHdmi(false),
+                iIsPhotosInForeground(false)
     {
+    TRACER("GlxTvOutWrapperPrivate::GlxTvOutWrapperPrivate()");
     // Do Nothing
     }
 
@@ -71,6 +78,7 @@
 // -----------------------------------------------------------------------------
 GlxTvOutWrapperPrivate::~GlxTvOutWrapperPrivate()
     {
+    TRACER("GlxTvOutWrapperPrivate::~GlxTvOutWrapperPrivate()");
     if (iConnectionObserver){
     delete iConnectionObserver;
     iConnectionObserver = NULL;
@@ -87,10 +95,13 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::HandleConnectionChange(bool aConnected)
     {
+    TRACER("GlxTvOutWrapperPrivate::HandleConnectionChange()");
     iHdmiConnected = aConnected;
     // if Connection state positive and uri/bmp are not passed to HDMI already
     // then it is a new image - Set it.
-    if (!isImageSetToHdmi && iHdmiConnected && getSubState() !=IMAGEVIEWER_S)
+    GLX_LOG_INFO2("GlxTvOutWrapperPrivate::HandleConnectionChange() - isImageSetToHdmi-%d, iHdmiConnected-%d",
+            isImageSetToHdmi,iHdmiConnected);
+    if (!isImageSetToHdmi && iHdmiConnected && getSubState() !=IMAGEVIEWER_S && iIsPhotosInForeground)
         {
         SetNewImage();
         }
@@ -102,6 +113,8 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetImagetoHDMI()
     {
+    TRACER("GlxTvOutWrapperPrivate::SetImagetoHDMI()");
+    iIsPhotosInForeground = true;
     if (iHdmiConnected)
         {
         // Set the Image
@@ -124,10 +137,12 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetNewImage()
     {
+    TRACER("GlxTvOutWrapperPrivate::SetNewImage()");
     QVariant focusVariant =(iModel->data(iModel->index(0,0),GlxFocusIndexRole)); 
     int focusIndex;
     if (focusVariant.isValid() && focusVariant.canConvert<int>()) {
         focusIndex = (focusVariant.value<int>());
+        GLX_LOG_INFO1("GlxTvOutWrapperPrivate::SetNewImage() focusindex = %d",focusIndex);
 	}
 	else{
 		return ;
@@ -144,6 +159,7 @@
     QVariant var = (iModel->data(iModel->index(focusIndex,0),GlxHdmiBitmap));
     CFbsBitmap* bmp = var.value<CFbsBitmap*>();
     iHdmiController->SetImageL(aPtr,bmp);
+    iIsPhotosInForeground = true;
     }
 
 // -----------------------------------------------------------------------------
@@ -151,7 +167,9 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetToCloningMode()
     {
-    if(iHdmiController){
+    TRACER("GlxTvOutWrapperPrivate::SetToCloningMode()");
+    iIsPhotosInForeground = false;
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->ShiftToCloningMode();
     }
     }
@@ -161,7 +179,9 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::SetToNativeMode()
     {
-    if(iHdmiController){
+    TRACER("GlxTvOutWrapperPrivate::SetToNativeMode()");
+    iIsPhotosInForeground = true;
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->ShiftToPostingMode();
     }
     }
@@ -171,7 +191,8 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::ItemNotSupported()
     {
-    if(iHdmiController){
+    TRACER("GlxTvOutWrapperPrivate::ItemNotSupported()");
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->ItemNotSupported();
     }
     }
@@ -181,7 +202,7 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::ActivateZoom(bool autoZoomOut)
     {
-    if(iHdmiController){
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->ActivateZoom(autoZoomOut);
     }
     }
@@ -191,7 +212,7 @@
 // -----------------------------------------------------------------------------
 void GlxTvOutWrapperPrivate::DeactivateZoom()
     {
-    if(iHdmiController){
+    if(iHdmiController && iHdmiConnected){
     iHdmiController->DeactivateZoom();
     }
     }
--- a/tvout/tvoutwrapper/tvoutwrapper.pro	Mon May 03 16:56:16 2010 +0530
+++ b/tvout/tvoutwrapper/tvoutwrapper.pro	Mon May 17 13:35:26 2010 +0530
@@ -24,6 +24,7 @@
 			
 CONFIG += hb
 LIBS +=  -lglxtvout.dll \
+		-lglxlogging.dll \
 
 DEFINES += BUILD_TVOUTWRAPPER
 
--- a/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/inc/glxcommandhandlersend.h	Mon May 17 13:35:26 2010 +0530
@@ -21,6 +21,7 @@
 #include "glxmodelcommandhandler.h"
 #include <QList>
 #include <QString>
+class ShareUi;
 
 
 #ifdef BUILD_COMMONCOMMANDHANDLERS
@@ -36,5 +37,7 @@
     GlxCommandHandlerSend();
     ~GlxCommandHandlerSend();    
     void doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList)const ;  
+private:
+    ShareUi *mSendUiDialog;
 	};
 #endif // GLXCOMMANDHANDLERSEND_H
--- a/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/commandhandlers/commoncommandhandlers/src/glxcommandhandlersend.cpp	Mon May 17 13:35:26 2010 +0530
@@ -24,13 +24,14 @@
 
 GlxCommandHandlerSend::GlxCommandHandlerSend()
     {
-
+     mSendUiDialog = new ShareUi();      
     }
 
 
 GlxCommandHandlerSend::~GlxCommandHandlerSend()
     {
-   
+     delete mSendUiDialog;
+     mSendUiDialog =NULL;
     }
 
 void GlxCommandHandlerSend::doHandleUserAction(GlxMediaModel* model,QList<QModelIndex> indexList) const
@@ -51,8 +52,7 @@
         imagePath = (model->data(indexList[i],GlxUriRole)).value<QString>();
         fileList.append(QVariant(imagePath));        
         } 
-    }
-    ShareUi dialog;                               
-    dialog.init(fileList,true);
+    }                              
+    mSendUiDialog->init(fileList,true);
 }
 
--- a/ui/inc/glxdocloaderdefs.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/inc/glxdocloaderdefs.h	Mon May 17 13:35:26 2010 +0530
@@ -27,6 +27,7 @@
 #define GLXFULLSCREEN_TOOLBAR     "toolBar"
 #define GLXFULLSCREENLSSECTION    "landscape"
 #define GLXFULLSCREENPTSECTION    "portrait"
+#define GLXFULLSCREENZOOMWIDGET   "glxZoomWidget"
 #define GLXFULLSCREENDOCMLPATH    ":/data/fullscreen.docml"
 
 //SLIDE SHOW
--- a/ui/inc/glxicondefs.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/inc/glxicondefs.h	Mon May 17 13:35:26 2010 +0530
@@ -28,8 +28,8 @@
 #define GLXICON_USEIMAGE    "qtg_small_ovi"
 
 //GRID TOOLBAR
-#define GLXICON_ALL     "qtg_mono_photos_all"
-#define GLXICON_ALBUMS  "qtg_mono_albums"
+#define GLXICON_ALL     "qtg_mono_photos"
+#define GLXICON_ALBUMS  "qtg_mono_photo_albums"
 #define GLXICON_CAMERA  "qtg_mono_camera"
 #define GLXICON_OVI     "qtg_small_ovi"
 
@@ -45,4 +45,6 @@
 #define GLXICON_ADD_TO_FAV  "qtg_graf_ratingslider_rated"
 #define GLXICON_REMOVE_FAV  "qtg_graf_ratingslider_unrated"
 
+#define GLXICON_WALL_UI_ON   "qtg_mono_back"
+
 #endif /* GLXICONDEFS_H */
--- a/ui/inc/glxmodelparm.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/inc/glxmodelparm.h	Mon May 17 13:35:26 2010 +0530
@@ -42,7 +42,9 @@
     GlxFavorites,                       //to get the image is in favorites folder or not
     GlxQImageSmall,                     //To Get Grid Thumbnail as QImage
     GlxQImageLarge,                     //To Get FullScreen Thumbnail as QImage
-    GlxDefaultImage                     //To Get Default Thumbnail 
+    GlxDefaultImage,					//To Get Default Thumbnail 
+    GlxViewTitle,
+    GlxPopulated
 };
 
 
--- a/ui/uiengine/bwins/glxmedialistwrapperu.def	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/bwins/glxmedialistwrapperu.def	Mon May 17 13:35:26 2010 +0530
@@ -1,43 +1,51 @@
 EXPORTS
 	?retrieveItemUri@GlxMLWrapper@@QAE?AVQString@@H@Z @ 1 NONAME ; class QString GlxMLWrapper::retrieveItemUri(int)
-	?itemCorrupted@GlxMLWrapper@@IAEXH@Z @ 2 NONAME ; void GlxMLWrapper::itemCorrupted(int)
-	?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 3 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *, int)
-	?handleGeneralError@GlxMLWrapper@@QAEXH@Z @ 4 NONAME ; void GlxMLWrapper::handleGeneralError(int)
-	?updateItem@GlxMLWrapper@@IAEXHW4GlxTBContextType@@@Z @ 5 NONAME ; void GlxMLWrapper::updateItem(int, enum GlxTBContextType)
-	?removeItems@GlxMLWrapper@@IAEXHH@Z @ 6 NONAME ; void GlxMLWrapper::removeItems(int, int)
-	?getItemCount@GlxMLWrapper@@QAEHXZ @ 7 NONAME ; int GlxMLWrapper::getItemCount(void)
-	?getVisibleWindowIndex@GlxMLWrapper@@QAEHXZ @ 8 NONAME ; int GlxMLWrapper::getVisibleWindowIndex(void)
-	?setFocusIndex@GlxMLWrapper@@QAEXH@Z @ 9 NONAME ; void GlxMLWrapper::setFocusIndex(int)
-	?retrieveItemDate@GlxMLWrapper@@QAE?AVQDate@@H@Z @ 10 NONAME ; class QDate GlxMLWrapper::retrieveItemDate(int)
-	?qt_metacall@GlxMLWrapper@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 11 NONAME ; int GlxMLWrapper::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?retrieveItemFrameCount@GlxMLWrapper@@QAEHH@Z @ 12 NONAME ; int GlxMLWrapper::retrieveItemFrameCount(int)
-	?retrieveListTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 13 NONAME ; class QString GlxMLWrapper::retrieveListTitle(int)
-	?retrieveListItemCount@GlxMLWrapper@@QAEHH@Z @ 14 NONAME ; int GlxMLWrapper::retrieveListItemCount(int)
-	?tr@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 15 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *)
-	?setVisibleWindowIndex@GlxMLWrapper@@QAEXH@Z @ 16 NONAME ; void GlxMLWrapper::setVisibleWindowIndex(int)
-	?getStaticMetaObject@GlxMLWrapper@@SAABUQMetaObject@@XZ @ 17 NONAME ; struct QMetaObject const & GlxMLWrapper::getStaticMetaObject(void)
-	?retrieveListSubTitle@GlxMLWrapper@@QAE?AVQString@@H@Z @ 18 NONAME ; class QString GlxMLWrapper::retrieveListSubTitle(int)
-	?staticMetaObject@GlxMLWrapper@@2UQMetaObject@@B @ 19 NONAME ; struct QMetaObject const GlxMLWrapper::staticMetaObject
-	?handleListItemAvailable@GlxMLWrapper@@QAEXH@Z @ 20 NONAME ; void GlxMLWrapper::handleListItemAvailable(int)
-	?trUtf8@GlxMLWrapper@@SA?AVQString@@PBD0@Z @ 21 NONAME ; class QString GlxMLWrapper::trUtf8(char const *, char const *)
-	?itemsRemoved@GlxMLWrapper@@QAEXHH@Z @ 22 NONAME ; void GlxMLWrapper::itemsRemoved(int, int)
-	?metaObject@GlxMLWrapper@@UBEPBUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const * GlxMLWrapper::metaObject(void) const
-	?insertItems@GlxMLWrapper@@IAEXHH@Z @ 24 NONAME ; void GlxMLWrapper::insertItems(int, int)
-	?isSystemItem@GlxMLWrapper@@QAE_NH@Z @ 25 NONAME ; bool GlxMLWrapper::isSystemItem(int)
-	?getFocusIndex@GlxMLWrapper@@QBEHXZ @ 26 NONAME ; int GlxMLWrapper::getFocusIndex(void) const
-	?handleIconCorrupt@GlxMLWrapper@@QAEXH@Z @ 27 NONAME ; void GlxMLWrapper::handleIconCorrupt(int)
-	?retrieveItemDimension@GlxMLWrapper@@QAE?AVQSize@@H@Z @ 28 NONAME ; class QSize GlxMLWrapper::retrieveItemDimension(int)
-	?RetrieveL@GlxAttributeRetriever@@SAHABVMGlxFetchContext@@AAVMGlxMediaList@@H@Z @ 29 NONAME ; int GlxAttributeRetriever::RetrieveL(class MGlxFetchContext const &, class MGlxMediaList &, int)
-	?handleReceivedIcon@GlxMLWrapper@@QAEXHW4GlxTBContextType@@@Z @ 30 NONAME ; void GlxMLWrapper::handleReceivedIcon(int, enum GlxTBContextType)
-	?tr@GlxMLWrapper@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString GlxMLWrapper::tr(char const *, char const *, int)
-	??_EGlxMLWrapper@@UAE@I@Z @ 32 NONAME ; GlxMLWrapper::~GlxMLWrapper(unsigned int)
-	?setContextMode@GlxMLWrapper@@QAEXW4GlxContextMode@@@Z @ 33 NONAME ; void GlxMLWrapper::setContextMode(enum GlxContextMode)
-	??1GlxMLWrapper@@UAE@XZ @ 34 NONAME ; GlxMLWrapper::~GlxMLWrapper(void)
-	?RetrieveBitmap@GlxMLWrapper@@QAE?AVQVariant@@H@Z @ 35 NONAME ; class QVariant GlxMLWrapper::RetrieveBitmap(int)
-	?qt_metacast@GlxMLWrapper@@UAEPAXPBD@Z @ 36 NONAME ; void * GlxMLWrapper::qt_metacast(char const *)
-	?retrieveItemImage@GlxMLWrapper@@QAE?AVQImage@@HW4GlxTBContextType@@@Z @ 37 NONAME ; class QImage GlxMLWrapper::retrieveItemImage(int, enum GlxTBContextType)
-	??0GlxMLWrapper@@QAE@HHW4TGlxFilterItemType@@VQString@@@Z @ 38 NONAME ; GlxMLWrapper::GlxMLWrapper(int, int, enum TGlxFilterItemType, class QString)
-	?setSelectedIndex@GlxMLWrapper@@QAEXH@Z @ 39 NONAME ; void GlxMLWrapper::setSelectedIndex(int)
-	?itemsAdded@GlxMLWrapper@@QAEXHH@Z @ 40 NONAME ; void GlxMLWrapper::itemsAdded(int, int)
-	?retrieveItemIcon@GlxMLWrapper@@QAEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 41 NONAME ; class HbIcon * GlxMLWrapper::retrieveItemIcon(int, enum GlxTBContextType)
+	?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)
 
--- a/ui/uiengine/eabi/glxmedialistwrapperu.def	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/eabi/glxmedialistwrapperu.def	Mon May 17 13:35:26 2010 +0530
@@ -1,42 +1,48 @@
 EXPORTS
 	_ZN12GlxMLWrapper10itemsAddedEii @ 1 NONAME
 	_ZN12GlxMLWrapper10updateItemEi16GlxTBContextType @ 2 NONAME
-	_ZN12GlxMLWrapper11insertItemsEii @ 3 NONAME
-	_ZN12GlxMLWrapper11qt_metacallEN11QMetaObject4CallEiPPv @ 4 NONAME
-	_ZN12GlxMLWrapper11qt_metacastEPKc @ 5 NONAME
-	_ZN12GlxMLWrapper11removeItemsEii @ 6 NONAME
-	_ZN12GlxMLWrapper12getItemCountEv @ 7 NONAME
-	_ZN12GlxMLWrapper12isSystemItemEi @ 8 NONAME
-	_ZN12GlxMLWrapper12itemsRemovedEii @ 9 NONAME
-	_ZN12GlxMLWrapper13itemCorruptedEi @ 10 NONAME
-	_ZN12GlxMLWrapper13setFocusIndexEi @ 11 NONAME
-	_ZN12GlxMLWrapper14RetrieveBitmapEi @ 12 NONAME
-	_ZN12GlxMLWrapper14setContextModeE14GlxContextMode @ 13 NONAME
-	_ZN12GlxMLWrapper15retrieveItemUriEi @ 14 NONAME
-	_ZN12GlxMLWrapper16retrieveItemDateEi @ 15 NONAME
-	_ZN12GlxMLWrapper16retrieveItemIconEi16GlxTBContextType @ 16 NONAME
-	_ZN12GlxMLWrapper16setSelectedIndexEi @ 17 NONAME
-	_ZN12GlxMLWrapper16staticMetaObjectE @ 18 NONAME DATA 16
-	_ZN12GlxMLWrapper17handleIconCorruptEi @ 19 NONAME
-	_ZN12GlxMLWrapper17retrieveItemImageEi16GlxTBContextType @ 20 NONAME
-	_ZN12GlxMLWrapper17retrieveListTitleEi @ 21 NONAME
-	_ZN12GlxMLWrapper18handleGeneralErrorEi @ 22 NONAME
-	_ZN12GlxMLWrapper18handleReceivedIconEi16GlxTBContextType @ 23 NONAME
-	_ZN12GlxMLWrapper19getStaticMetaObjectEv @ 24 NONAME
-	_ZN12GlxMLWrapper20retrieveListSubTitleEi @ 25 NONAME
-	_ZN12GlxMLWrapper21getVisibleWindowIndexEv @ 26 NONAME
-	_ZN12GlxMLWrapper21retrieveItemDimensionEi @ 27 NONAME
-	_ZN12GlxMLWrapper21retrieveListItemCountEi @ 28 NONAME
-	_ZN12GlxMLWrapper21setVisibleWindowIndexEi @ 29 NONAME
-	_ZN12GlxMLWrapper22retrieveItemFrameCountEi @ 30 NONAME
-	_ZN12GlxMLWrapper23handleListItemAvailableEi @ 31 NONAME
-	_ZN12GlxMLWrapperC1Eii18TGlxFilterItemType7QString @ 32 NONAME
-	_ZN12GlxMLWrapperC2Eii18TGlxFilterItemType7QString @ 33 NONAME
-	_ZN12GlxMLWrapperD0Ev @ 34 NONAME
-	_ZN12GlxMLWrapperD1Ev @ 35 NONAME
-	_ZN12GlxMLWrapperD2Ev @ 36 NONAME
-	_ZNK12GlxMLWrapper10metaObjectEv @ 37 NONAME
-	_ZNK12GlxMLWrapper13getFocusIndexEv @ 38 NONAME
-	_ZTI12GlxMLWrapper @ 39 NONAME
-	_ZTV12GlxMLWrapper @ 40 NONAME
+	_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
 
--- a/ui/uiengine/medialists/src/glxmedialist.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/medialists/src/glxmedialist.cpp	Mon May 17 13:35:26 2010 +0530
@@ -1494,8 +1494,8 @@
     if (!iIsPopulated)
         {
         TListPopulatedNotificationStrategy strategy( *this );
+        iIsPopulated = ETrue; // Do this only once.
         NotifyObservers( strategy );
-        iIsPopulated = ETrue; // Do this only once.
         }
     }
 
--- a/ui/uiengine/medialistwrapper/inc/glxmlgenericobserver.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/medialistwrapper/inc/glxmlgenericobserver.h	Mon May 17 13:35:26 2010 +0530
@@ -61,6 +61,7 @@
         MGlxMediaList* aList );
     void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
     void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
+    void HandlePopulatedL(MGlxMediaList* aList);
 
 private:
 
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper.h	Mon May 17 13:35:26 2010 +0530
@@ -89,7 +89,9 @@
 	QSize retrieveItemDimension(int index);
 	QDate retrieveItemDate(int index);
 	int retrieveItemFrameCount(int index);
-	
+	QString retrieveViewTitle();
+	void handlepopulated();	
+	bool IsPopulated();
 	/*
 	 * retriveBitmap helps to retrive the bitmap
 	 * @param1 index 
@@ -105,12 +107,15 @@
      * @param1 index 
      */
 	bool isSystemItem( int aItemIndex );
+	void handleTitleAvailable(QString aTitle);
 	
 signals:
      void updateItem(int index, GlxTBContextType tbContextType);
 	 void insertItems(int startIndex,int endIndex);
 	 void removeItems(int startIndex,int endIndex);
 	 void itemCorrupted(int itemIndex);
+	 void updateAlbumTitle(QString aTitle);
+	 void populated();
 
 private:
 	GlxMLWrapperPrivate* mMLWrapperPrivate;
--- a/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/medialistwrapper/inc/glxmlwrapper_p.h	Mon May 17 13:35:26 2010 +0530
@@ -26,6 +26,9 @@
 #include <qdatetime.h>
 #include "glxmedialistiterator.h"
 #include "glxmlwrapper.h"
+#include <qimage>
+#include "mglxtitlefetcherobserver.h"
+
 //Forward Declarations
 class MGlxMediaList;
 class CGlxMLGenericObserver;
@@ -35,10 +38,10 @@
 class CGlxDefaultAttributeContext;
 class CGlxDefaultThumbnailContext;
 class CGlxDefaultListAttributeContext;
-
+class CGlxTitleFetcher;
 //to use first call GlxMLWrapperPrivate::Instance then set the mode by calling GlxMLWrapperPrivate::SetContextMode()
 //CLASS Declaration
-class GlxMLWrapperPrivate : public QObject
+class GlxMLWrapperPrivate : public QObject,public MGlxTitleFetcherObserver
 {
     
 public:
@@ -83,6 +86,10 @@
 	 */
 	 void SetVisibleWindowIndex(int aItemIndex);
 
+public:
+	 // From MGlxTitleFetcherObserver
+    IMPORT_C void HandleTitleAvailableL(const TDesC& aTitle);
+
 public: 
     void HandleItemAddedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList* aList );
     void HandleItemRemovedL( TInt aStartIndex, TInt aEndIndex, MGlxMediaList*/* aList */);
@@ -95,6 +102,7 @@
   //todo remove comment  void HandleCommandCompleteL( CMPXCommand* aCommandResult, TInt aError,MGlxMediaList* aList );
     void HandleMediaL( TInt aListIndex, MGlxMediaList* aList );
     void HandleItemModifiedL( const RArray<TInt>& aItemIndexes, MGlxMediaList* aList );
+    void HandlePopulatedL(MGlxMediaList* aList);
 
 public:
 	/**
@@ -111,6 +119,8 @@
 	CFbsBitmap* RetrieveBitmap(int aItemIndex);
 	int     RetrieveListItemCount( int aItemIndex );
 	bool    isSystemItem( int aItemIndex );
+	QString RetrieveViewTitle();
+	bool IsPopulated();
 		
 private:
 
@@ -203,6 +213,9 @@
 	TBool iLsListContextActivated; //currently not used as we have not implemented the logic for 3 thumbnails
 	TBool iPtListContextActivated; 
 	TBool iSelectionListContextActivated;
+	CGlxTitleFetcher* iTitleFetcher;
+	QImage iCorruptImage;
+	QString iViewTitle;
 
 };
 #endif //GLXMLWRAPPER_P_H 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/medialistwrapper/inc/glxtitlefetcher.h	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,137 @@
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Title fetcher 
+*
+*/
+
+
+
+
+#ifndef GLXTITLEFETCHER_H
+#define GLXTITLEFETCHER_H
+
+#include <e32base.h>
+#include <coedef.h>
+#include <w32std.h>
+#include <mglxmedialistobserver.h>
+#include "mglxtitlefetcherobserver.h"
+
+
+class CMPXCollectionPath;
+class MGlxMediaList;                   
+class CGlxDefaultAttributeContext;
+
+
+class CGlxTitleFetcher : public CBase, public MGlxMediaListObserver
+    {
+public:
+    /**
+     * Constructs an instance of CGlxTitleFetcher and initiates obtaining
+     * a title 
+     *
+     * @param aObserver Observer of this list 
+     * @param aPath The current path by which to obtain the title 
+     */
+    static CGlxTitleFetcher*  NewL(MGlxTitleFetcherObserver& aObserver,
+                                    CMPXCollectionPath* aPath);
+
+	IMPORT_C virtual ~CGlxTitleFetcher();
+                        
+    // From MGlxMediaListObserver                    
+	virtual void HandleItemAddedL(TInt aStartIndex, TInt aEndIndex,
+		MGlxMediaList* aList);
+
+    /**
+     * Notification that media object is now available for an item 
+     *
+     * @param Index of the item 
+     */
+	virtual void HandleMediaL(TInt /*aListIndex*/, MGlxMediaList* /*aList*/) {};
+
+    /**
+     * Notification that media item was removed from the list
+     *
+     * @param aStartIndex First item that was removed 
+     * @param aEndIndex Last item that was removed
+     */
+	virtual void HandleItemRemovedL(TInt /*aStartIndex*/, TInt /*aEndIndex*/,
+		MGlxMediaList* /*aList*/) {};
+
+    /**
+     * Notification that media item was changed
+     *
+     * @param aItemIndexes Indexes of items that were changed
+     */
+	virtual void HandleItemModifiedL(const RArray<TInt>& /*aItemIndexes*/, 
+		MGlxMediaList* /*aList*/) {};
+
+
+    /**
+     * Notification that an attribute is available
+     *
+     * @param aItemIndex Index of the for which the thumbnail is available
+     * @param aAttributes Array of attributes that have become available
+     * @param aList List that this callback relates to 
+     */
+	virtual void HandleAttributesAvailableL(TInt aItemIndex, 	
+		const RArray<TMPXAttribute>& aAttributes, MGlxMediaList* aList);	
+			
+    /**
+     * Notification that focus has moved
+     *
+     * @param aType the direction of the focus change
+     * @param aNewIndex the new index after the focus change
+     * @param aOldIndex the old index before the focus change
+     * @param aList List that this callback relates to
+     */
+	virtual void HandleFocusChangedL(NGlxListDefs::TFocusChangeType /*aType*/, 
+	    TInt /*aNewIndex*/, TInt /*aOldIndex*/, MGlxMediaList* /*aList*/) {};
+
+	/**
+	 * Notification that an item has been selected/deselected
+	 *
+	 * @param aIndex Index of the item that has been selected/deselected
+	 * @param aSelected Boolean to indicate selection/deselection
+	 * @param aList List that the selection relates to
+	 */
+	virtual void HandleItemSelectedL(TInt /*aIndex*/, TBool /*aSelected*/, 
+	              MGlxMediaList* /*aList*/) {};
+
+	/**
+	 * Notification from the collection.  E.g. Items added/modified/deleted and progress notifications
+	 *
+	 * @param aMessage Message notification from the collection
+	 * @param aList List that the notification relates to
+	 */
+	virtual void HandleMessageL(const CMPXMessage& /*aMessage*/, 
+	                            MGlxMediaList* /*aList*/) {};
+	
+private:
+                        
+    CGlxTitleFetcher(MGlxTitleFetcherObserver& aObserver,
+                     CMPXCollectionPath* aPath);
+    
+    void ConstructL();
+    
+private:
+
+    MGlxTitleFetcherObserver& iObserver;
+    CMPXCollectionPath* iPath;
+    TMPXItemId iPathId;
+    MGlxMediaList*  iBackMediaList; 
+    CGlxDefaultAttributeContext* iContext;                  
+    };
+
+
+#endif // GLXTITLEFETCHER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/medialistwrapper/inc/mglxtitlefetcherobserver.h	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,47 @@
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Title fetcher observer 
+*
+*/
+
+
+
+
+#ifndef MGLXTITLEFETCHEROBSERVER_H
+#define MGLXTITLEFETCHEROBSERVER_H
+
+#include <e32base.h>
+//#include <coedef.h>
+//#include <w32std.h>
+
+/**
+ * MGlxTitleFetcherObserver
+ * 
+ * Title fetcher interface
+ */
+class MGlxTitleFetcherObserver
+	{
+public:
+	/**
+	 * Handle the title
+	 * @param aTitle The title
+	 */
+	virtual void HandleTitleAvailableL(const TDesC& aTitle) = 0;
+	
+	};
+	
+
+
+
+#endif // MGLXTITLEFETCHEROBSERVER_H
--- a/ui/uiengine/medialistwrapper/medialistwrapper.pro	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/medialistwrapper/medialistwrapper.pro	Mon May 17 13:35:26 2010 +0530
@@ -44,10 +44,11 @@
 TARGET.EPOCALLOWDLLDATA = 1
 }	
 # Input
-HEADERS += inc/glxmlgenericobserver.h inc/glxmlwrapper.h inc/glxmlwrapper_p.h inc/glxattributeretriever.h
+HEADERS += inc/glxmlgenericobserver.h inc/glxmlwrapper.h inc/glxmlwrapper_p.h inc/glxattributeretriever.h inc/glxtitlefetcher.h
 SOURCES += src/glxmlgenericobserver.cpp \
            src/glxmlwrapper.cpp \
            src/glxmlwrapper_p.cpp \
-	   src/glxattributeretriever.cpp
+	       src/glxattributeretriever.cpp \
+		   src/glxtitlefetcher.cpp
 
 DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
\ No newline at end of file
--- a/ui/uiengine/medialistwrapper/src/glxmlgenericobserver.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/medialistwrapper/src/glxmlgenericobserver.cpp	Mon May 17 13:35:26 2010 +0530
@@ -206,3 +206,10 @@
     iMLWrapperPrivate->HandleItemModifiedL(aItemIndexes, aList);
     }
                   
+void CGlxMLGenericObserver::HandlePopulatedL(MGlxMediaList* aList)
+    {
+    TRACER("CGlxMLGenericObserver::HandlePopulatedL()");
+    iMLWrapperPrivate->HandlePopulatedL(aList);
+    }
+     
+
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper.cpp	Mon May 17 13:35:26 2010 +0530
@@ -119,6 +119,21 @@
     return (mMLWrapperPrivate->RetrieveItemFrameCount(index));
 }
 
+QString GlxMLWrapper::retrieveViewTitle()
+{
+    return (mMLWrapperPrivate->RetrieveViewTitle());
+}
+
+void GlxMLWrapper::handlepopulated()
+{
+    emit populated();
+}
+
+bool GlxMLWrapper::IsPopulated()
+{
+    return mMLWrapperPrivate->IsPopulated();
+}
+
 QVariant GlxMLWrapper::RetrieveBitmap(int index)
 {
     QVariant var;
@@ -238,4 +253,12 @@
 	Q_UNUSED(aError);
 }
 
+// ---------------------------------------------------------------------------
+// handleTitleAvailable.
+// ---------------------------------------------------------------------------
+//
+void GlxMLWrapper::handleTitleAvailable(QString aTitle)
+{
+    emit updateAlbumTitle(aTitle);
+}
 
--- a/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/medialistwrapper/src/glxmlwrapper_p.cpp	Mon May 17 13:35:26 2010 +0530
@@ -46,7 +46,7 @@
 
 //#define GLXPERFORMANCE_LOG  
 #include <glxperformancemacro.h>
-
+#include "glxtitlefetcher.h"
 //constant declaration
 const TInt KTBAttributeAvailable(1);
 const TInt KTBAttributeUnavailable(0);
@@ -103,7 +103,9 @@
     iFocusGridThumbnailContext = NULL;
     iFocusFsThumbnailContext = NULL;
     iFilmStripThumbnailContext = NULL;
-    iFavouriteContext = NULL;    
+    iFavouriteContext = NULL;
+    iTitleFetcher = NULL;
+    iViewTitle = QString();
     }
 
 // ---------------------------------------------------------------------------
@@ -318,7 +320,11 @@
 	    iMediaList->AddContextL(iGridThumbnailContext, KGlxFetchContextPriorityNormal );
 		iGridContextActivated = ETrue;
 		}
-    
+
+	CMPXCollectionPath* path = iMediaList->PathLC( NGlxListDefs::EPathParent );
+	iTitleFetcher = CGlxTitleFetcher::NewL(*this, path);
+	CleanupStack::PopAndDestroy(path);
+
 	}
 
 // ---------------------------------------------------------------------------
@@ -428,6 +434,8 @@
 		iGridThumbnailContext = NULL;
 		iGridContextActivated = EFalse;
 		}
+	delete iTitleFetcher;
+	iTitleFetcher = NULL;
 	}
 
 // ---------------------------------------------------------------------------
@@ -617,6 +625,8 @@
     {
     TRACER("GlxMLWrapperPrivate::CreateMediaListFavoritesItemL");
     Q_UNUSED(aHierarchyId); 
+    Q_UNUSED(aCollectionId); 
+    Q_UNUSED(aFilterType); 
     // Create path to the list of images and videos
     CMPXCollectionPath* path = CMPXCollectionPath::NewL();
     CleanupStack::PushL( path );
@@ -749,7 +759,18 @@
         }
     else if( tnError ) 
         {
-        return QImage(GLXICON_CORRUPT);
+        if(iCorruptImage.isNull())
+            {
+            HbIcon *icon = new HbIcon(GLXICON_CORRUPT);
+            if(!icon->isNull())
+                {
+                // this image Creation is Slow. 
+                // But what to do, Q class's Does not undersatnd our Localised File names
+                iCorruptImage = icon->pixmap().toImage();
+                }
+            delete icon;
+            }
+        return iCorruptImage;
         }
 
      return QImage();
@@ -928,6 +949,18 @@
     {
 	Q_UNUSED(aList);
 	iMLWrapper->itemsRemoved(aStartIndex,aEndIndex);
+	TInt mediaCount = aList->Count();
+    if (mediaCount <=0)
+        {
+        if(iMediaList->VisibleWindowIndex() > iMediaList->Count())
+            {
+            iMediaList->SetVisibleWindowIndexL(0);
+            }               
+        }
+    else if (iMediaList->VisibleWindowIndex() > iMediaList->Count())
+        {
+        iMediaList->SetVisibleWindowIndexL(iMediaList->Count()-1);
+        }
 	}
 // ---------------------------------------------------------------------------
 // HandleAttributesAvailableL
@@ -1119,6 +1152,7 @@
 //
 void GlxMLWrapperPrivate::HandleError( TInt aError )
 	{
+	Q_UNUSED(aError);
     GLX_LOG_INFO1("GlxMLWrapperPrivate::HandleError Error %d", aError);	
 	
     for ( TInt i = 0; i < iMediaList->Count(); i++ )
@@ -1162,6 +1196,12 @@
 	Q_UNUSED(aList);
 }
 
+void GlxMLWrapperPrivate::HandlePopulatedL(MGlxMediaList* aList)
+{
+    Q_UNUSED(aList);
+    iMLWrapper->handlepopulated();
+}
+
 // ---------------------------------------------------------------------------
 // GetItemCount
 // ---------------------------------------------------------------------------
@@ -1243,3 +1283,27 @@
      {
      iMediaList->SetVisibleWindowIndexL(aItemIndex);
      }
+
+// -----------------------------------------------------------------------------
+// HandleTitleAvailableL
+// -----------------------------------------------------------------------------
+//	
+void GlxMLWrapperPrivate::HandleTitleAvailableL(
+        const TDesC& aTitle)
+    {
+    iViewTitle = QString::fromUtf16(aTitle.Ptr(), aTitle.Length());	
+	iMLWrapper->handleTitleAvailable(iViewTitle);
+    RDebug::Print(_L("GlxPhotos: GlxMLWrapperPrivate : TITLE =-%S"),&aTitle);
+	}
+
+QString GlxMLWrapperPrivate::RetrieveViewTitle()
+    {
+    return iViewTitle;
+    }
+	 
+bool GlxMLWrapperPrivate::IsPopulated()
+    {
+    return iMediaList->IsPopulated();
+    }
+
+	 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/uiengine/medialistwrapper/src/glxtitlefetcher.cpp	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,205 @@
+/*
+* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:    Title fetcher
+*
+*/
+
+
+
+
+
+// INCLUDE FILES
+#include "glxtitlefetcher.h"
+
+#include <mpxcollectionpath.h>
+#include <mpxmediageneraldefs.h>
+#include <mglxmedialist.h>
+#include <glxattributecontext.h>
+#include <glxuistd.h>
+#include "glxlog.h"
+#include "glxtracer.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------------------------
+//
+CGlxTitleFetcher::CGlxTitleFetcher(MGlxTitleFetcherObserver& aObserver,
+                        CMPXCollectionPath* aPath) :
+   iObserver(aObserver), iPath(aPath)
+    {
+    TRACER("CGlxTitleFetcher::CGlxTitleFetcher");
+    }
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave.
+// ---------------------------------------------------------------------------
+// 
+    
+void CGlxTitleFetcher::ConstructL()
+    {
+    TRACER("CGlxTitleFetcher::ConstructL");
+    // Go back one level to obtain the ID
+    iPathId = iPath->Id();
+    // Go back another level from which to create a media list containing 
+    // this path
+    iPath->Back();
+    
+    if( iPath->Levels() < 0 )
+        {
+        return;
+        }
+    
+    iBackMediaList = MGlxMediaList::InstanceL(*iPath);
+    
+    /// @todo: This idSpaceId must be calculated properly
+    TGlxIdSpaceId idSpaceId = iBackMediaList->IdSpaceId(0);
+    
+    TGlxMediaId id(iPathId);
+    TBool requestAttributes = ETrue;
+    TInt index = iBackMediaList->Index(idSpaceId, id);
+    
+    if ( index != KErrNotFound )
+        {
+        const TGlxMedia& item = iBackMediaList->Item(index);
+    	const CGlxMedia* media = item.Properties();
+
+    	// get the Title from the attribute if it is already present
+    	if (media && media->IsSupported(KMPXMediaGeneralTitle)
+    	    && index != KErrNotFound)
+    		{
+            const TDesC&  title = media->ValueText(KMPXMediaGeneralTitle);
+            // notify the observer		
+            iObserver.HandleTitleAvailableL(title); 
+            requestAttributes = EFalse;
+    		}
+    	}
+    
+    if ( requestAttributes )
+	    {
+        // Otherwise add a context setting range to cover all items
+        iContext = CGlxDefaultAttributeContext::NewL();
+        iContext->SetRangeOffsets(10000,10000);
+        iContext->AddAttributeL(KMPXMediaGeneralTitle);
+        // Add the context at a high priority
+        iBackMediaList->AddContextL( iContext,
+                                     KGlxFetchContextPriorityTitleFetcher );
+        // Set self as observer
+        iBackMediaList->AddMediaListObserverL(this);
+	    }
+	}
+
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CGlxTitleFetcher* CGlxTitleFetcher::NewL(MGlxTitleFetcherObserver& aObserver,
+                        CMPXCollectionPath* aPath)
+    {
+    CGlxTitleFetcher* self = new (ELeave) CGlxTitleFetcher(aObserver, aPath);
+    CleanupStack::PushL(self);
+    self->ConstructL();
+    CleanupStack::Pop(self);
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CGlxTitleFetcher::~CGlxTitleFetcher()
+    {
+    TRACER("CGlxTitleFetcher::~CGlxTitleFetcher ()");
+
+    if(iBackMediaList)
+        {
+        if(iContext)
+            {
+            iBackMediaList->RemoveContext(iContext);
+            delete iContext;
+            }
+        iBackMediaList->RemoveMediaListObserver(this);           
+		iBackMediaList->Close();
+        }
+    
+    }
+// ---------------------------------------------------------------------------
+// CGlxTitleFetcher::HandleItemAddedL
+// ---------------------------------------------------------------------------
+//
+void CGlxTitleFetcher::HandleItemAddedL(TInt aStartIndex, TInt aEndIndex,
+        MGlxMediaList* aList)  
+    {    
+    TRACER("CGlxTitleFetcher::HandleItemAddedL ()");
+    if(aList == iBackMediaList)
+           {
+           for(TInt index = aStartIndex;index <= aEndIndex;index++)
+           // Is it the item (path) that we want
+               {
+               if(aList->Item(index).Id().Value() == (TUint32)iPathId)
+                       {
+                       const TGlxMedia& item = aList->Item(index);
+                       const CGlxMedia* media = item.Properties();
+                       // get the Title from the attribute
+                       if (media && media->IsSupported(KMPXMediaGeneralTitle))
+                           {
+                           const TDesC&  title = media->ValueText(KMPXMediaGeneralTitle);
+                           // notify the observer      
+                           iObserver.HandleTitleAvailableL(title); 
+                           iBackMediaList->RemoveContext(iContext);
+                           delete iContext;
+                           iContext = NULL;                
+                           }
+                       }
+                }
+           }
+    }
+// ---------------------------------------------------------------------------
+// CGlxTitleFetcher::HandleAttributesAvailableL
+// ---------------------------------------------------------------------------
+//
+void CGlxTitleFetcher::HandleAttributesAvailableL(TInt aItemIndex, 	
+		const RArray<TMPXAttribute>& /*aAttributes*/, MGlxMediaList* aList)
+    {
+    TRACER("CGlxTitleFetcher::HandleAttributesAvailableL ()");
+    // Is it the list that we want    
+    if(aList == iBackMediaList)
+        {
+        // Is it the item (path) that we want
+        if(aList->Item(aItemIndex).Id().Value() == (TUint32)iPathId)
+            {
+            const TGlxMedia& item = aList->Item(aItemIndex);
+			const CGlxMedia* media = item.Properties();
+			// get the Title from the attribute
+			if (media && media->IsSupported(KMPXMediaGeneralTitle))
+				{
+                const TDesC&  title = media->ValueText(KMPXMediaGeneralTitle);
+	            // notify the observer		
+                iObserver.HandleTitleAvailableL(title); 
+                iBackMediaList->RemoveContext(iContext);
+                delete iContext;
+                iContext = NULL;
+		        
+				}
+            }
+        }
+    }
+
+
+
+//  End of File
--- a/ui/uiengine/model/bwins/glxmediamodelu.def	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/model/bwins/glxmediamodelu.def	Mon May 17 13:35:26 2010 +0530
@@ -1,35 +1,39 @@
 EXPORTS
-	?addExternalItems@GlxMediaModel@@QAEXPAV?$QList@UGlxInterfaceParams@@@@@Z @ 1 NONAME ; void GlxMediaModel::addExternalItems(class QList<struct GlxInterfaceParams> *)
-	?metaObject@GlxMediaModel@@UBEPBUQMetaObject@@XZ @ 2 NONAME ; struct QMetaObject const * GlxMediaModel::metaObject(void) const
-	?parent@GlxMediaModel@@UBE?AVQModelIndex@@ABV2@@Z @ 3 NONAME ; class QModelIndex GlxMediaModel::parent(class QModelIndex const &) const
-	?itemsAdded@GlxMediaModel@@QAEXHH@Z @ 4 NONAME ; void GlxMediaModel::itemsAdded(int, int)
-	?tr@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 5 NONAME ; class QString GlxMediaModel::tr(char const *, char const *)
-	?getStaticMetaObject@GlxMediaModel@@SAABUQMetaObject@@XZ @ 6 NONAME ; struct QMetaObject const & GlxMediaModel::getStaticMetaObject(void)
-	?updateItemIcon@GlxMediaModel@@AAEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 7 NONAME ; void GlxMediaModel::updateItemIcon(int, class HbIcon *, enum GlxTBContextType)
-	?qt_metacast@GlxMediaModel@@UAEPAXPBD@Z @ 8 NONAME ; void * GlxMediaModel::qt_metacast(char const *)
-	?itemsRemoved@GlxMediaModel@@QAEXHH@Z @ 9 NONAME ; void GlxMediaModel::itemsRemoved(int, int)
-	?rowCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 10 NONAME ; int GlxMediaModel::rowCount(class QModelIndex const &) const
-	??1GlxMediaModel@@UAE@XZ @ 11 NONAME ; GlxMediaModel::~GlxMediaModel(void)
-	?GetFsIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 12 NONAME ; class HbIcon * GlxMediaModel::GetFsIconItem(int, enum GlxTBContextType) const
-	?columnCount@GlxMediaModel@@UBEHABVQModelIndex@@@Z @ 13 NONAME ; int GlxMediaModel::columnCount(class QModelIndex const &) const
-	?setSelectedIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 14 NONAME ; void GlxMediaModel::setSelectedIndex(class QModelIndex const &)
-	?qt_metacall@GlxMediaModel@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 15 NONAME ; int GlxMediaModel::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?setFocusIndex@GlxMediaModel@@AAEXABVQModelIndex@@@Z @ 16 NONAME ; void GlxMediaModel::setFocusIndex(class QModelIndex const &)
-	?setContextMode@GlxMediaModel@@AAEXW4GlxContextMode@@@Z @ 17 NONAME ; void GlxMediaModel::setContextMode(enum GlxContextMode)
-	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 18 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *, int)
-	?staticMetaObject@GlxMediaModel@@2UQMetaObject@@B @ 19 NONAME ; struct QMetaObject const GlxMediaModel::staticMetaObject
-	?itemUpdated1@GlxMediaModel@@QAEXHW4GlxTBContextType@@@Z @ 20 NONAME ; void GlxMediaModel::itemUpdated1(int, enum GlxTBContextType)
-	?setData@GlxMediaModel@@UAE_NABVQModelIndex@@ABVQVariant@@H@Z @ 21 NONAME ; bool GlxMediaModel::setData(class QModelIndex const &, class QVariant const &, int)
-	?GetGridIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 22 NONAME ; class HbIcon * GlxMediaModel::GetGridIconItem(int, enum GlxTBContextType) const
-	?data@GlxMediaModel@@UBE?AVQVariant@@ABVQModelIndex@@H@Z @ 23 NONAME ; class QVariant GlxMediaModel::data(class QModelIndex const &, int) const
-	??_EGlxMediaModel@@UAE@I@Z @ 24 NONAME ; GlxMediaModel::~GlxMediaModel(unsigned int)
-	?clearExternalItems@GlxMediaModel@@QAEXXZ @ 25 NONAME ; void GlxMediaModel::clearExternalItems(void)
-	?getFocusIndex@GlxMediaModel@@ABE?AVQModelIndex@@XZ @ 26 NONAME ; class QModelIndex GlxMediaModel::getFocusIndex(void) const
-	?trUtf8@GlxMediaModel@@SA?AVQString@@PBD0@Z @ 27 NONAME ; class QString GlxMediaModel::trUtf8(char const *, char const *)
-	?iconAvailable@GlxMediaModel@@IBEXHPAVHbIcon@@W4GlxTBContextType@@@Z @ 28 NONAME ; void GlxMediaModel::iconAvailable(int, class HbIcon *, enum GlxTBContextType) const
-	??0GlxMediaModel@@QAE@AAVGlxModelParm@@@Z @ 29 NONAME ; GlxMediaModel::GlxMediaModel(class GlxModelParm &)
-	?tr@GlxMediaModel@@SA?AVQString@@PBD0H@Z @ 30 NONAME ; class QString GlxMediaModel::tr(char const *, char const *, int)
-	?index@GlxMediaModel@@UBE?AVQModelIndex@@HHABV2@@Z @ 31 NONAME ; class QModelIndex GlxMediaModel::index(int, int, class QModelIndex const &) const
-	?GetExternalIconItem@GlxMediaModel@@ABEPAVHbIcon@@HW4GlxTBContextType@@@Z @ 32 NONAME ; class HbIcon * GlxMediaModel::GetExternalIconItem(int, enum GlxTBContextType) const
-	?itemCorrupted@GlxMediaModel@@QAEXH@Z @ 33 NONAME ; void GlxMediaModel::itemCorrupted(int)
+	?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)
 
--- a/ui/uiengine/model/eabi/glxmediamodelu.def	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/model/eabi/glxmediamodelu.def	Mon May 17 13:35:26 2010 +0530
@@ -4,32 +4,36 @@
 	_ZN13GlxMediaModel11qt_metacastEPKc @ 3 NONAME
 	_ZN13GlxMediaModel12itemUpdated1Ei16GlxTBContextType @ 4 NONAME
 	_ZN13GlxMediaModel12itemsRemovedEii @ 5 NONAME
-	_ZN13GlxMediaModel13setFocusIndexERK11QModelIndex @ 6 NONAME
-	_ZN13GlxMediaModel14setContextModeE14GlxContextMode @ 7 NONAME
-	_ZN13GlxMediaModel14updateItemIconEiP6HbIcon16GlxTBContextType @ 8 NONAME
-	_ZN13GlxMediaModel16addExternalItemsEP5QListI18GlxInterfaceParamsE @ 9 NONAME
-	_ZN13GlxMediaModel16setSelectedIndexERK11QModelIndex @ 10 NONAME
-	_ZN13GlxMediaModel16staticMetaObjectE @ 11 NONAME DATA 16
-	_ZN13GlxMediaModel18clearExternalItemsEv @ 12 NONAME
-	_ZN13GlxMediaModel19getStaticMetaObjectEv @ 13 NONAME
-	_ZN13GlxMediaModel7setDataERK11QModelIndexRK8QVarianti @ 14 NONAME
-	_ZN13GlxMediaModelC1ER12GlxModelParm @ 15 NONAME
-	_ZN13GlxMediaModelC2ER12GlxModelParm @ 16 NONAME
-	_ZN13GlxMediaModelD0Ev @ 17 NONAME
-	_ZN13GlxMediaModelD1Ev @ 18 NONAME
-	_ZN13GlxMediaModelD2Ev @ 19 NONAME
-	_ZNK13GlxMediaModel10metaObjectEv @ 20 NONAME
-	_ZNK13GlxMediaModel11columnCountERK11QModelIndex @ 21 NONAME
-	_ZNK13GlxMediaModel13GetFsIconItemEi16GlxTBContextType @ 22 NONAME
-	_ZNK13GlxMediaModel13getFocusIndexEv @ 23 NONAME
-	_ZNK13GlxMediaModel13iconAvailableEiP6HbIcon16GlxTBContextType @ 24 NONAME
-	_ZNK13GlxMediaModel15GetGridIconItemEi16GlxTBContextType @ 25 NONAME
-	_ZNK13GlxMediaModel19GetExternalIconItemEi16GlxTBContextType @ 26 NONAME
-	_ZNK13GlxMediaModel4dataERK11QModelIndexi @ 27 NONAME
-	_ZNK13GlxMediaModel5indexEiiRK11QModelIndex @ 28 NONAME
-	_ZNK13GlxMediaModel6parentERK11QModelIndex @ 29 NONAME
-	_ZNK13GlxMediaModel8rowCountERK11QModelIndex @ 30 NONAME
-	_ZTI13GlxMediaModel @ 31 NONAME
-	_ZTV13GlxMediaModel @ 32 NONAME
-	_ZN13GlxMediaModel13itemCorruptedEi @ 33 NONAME
+	_ZN13GlxMediaModel13itemCorruptedEi @ 6 NONAME
+	_ZN13GlxMediaModel13setFocusIndexERK11QModelIndex @ 7 NONAME
+	_ZN13GlxMediaModel14modelpopulatedEv @ 8 NONAME
+	_ZN13GlxMediaModel14setContextModeE14GlxContextMode @ 9 NONAME
+	_ZN13GlxMediaModel14updateItemIconEiP6HbIcon16GlxTBContextType @ 10 NONAME
+	_ZN13GlxMediaModel16addExternalItemsEP5QListI18GlxInterfaceParamsE @ 11 NONAME
+	_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
 
--- a/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/model/mediamodel/inc/glxmediamodel.h	Mon May 17 13:35:26 2010 +0530
@@ -64,6 +64,10 @@
 	* for checking if the item is editab
 	*/
 
+signals :
+	void albumTitleAvailable(QString aTitle);
+	void populated();
+
 private:
 	HbIcon* GetGridIconItem(int itemIndex, GlxTBContextType tbContextType) const;
 	HbIcon* GetFsIconItem(int itemIndex,GlxTBContextType tbContextType)const;
@@ -85,6 +89,8 @@
 	void itemsAdded(int startIndex, int endIndex);
 	void itemsRemoved(int startIndex, int endIndex);
 	void itemCorrupted(int itemIndex);
+	void albumTitleUpdated(QString aTitle);
+	void modelpopulated();
 protected:
 	
 private slots:
--- a/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/uiengine/model/mediamodel/src/glxmediamodel.cpp	Mon May 17 13:35:26 2010 +0530
@@ -52,6 +52,9 @@
 	qDebug("updateItem() connection status %d", err);
 	err = connect(this, SIGNAL(iconAvailable(int, HbIcon*, GlxTBContextType)), this, SLOT(updateItemIcon(int, HbIcon*, GlxTBContextType)));
 	qDebug("iconAvailable() connection status %d", err);
+	err = connect( mMLWrapper, SIGNAL(updateAlbumTitle(QString)), this, SLOT(albumTitleUpdated(QString)));
+	qDebug("updateAlbumTitle() connection status %d", err);
+	err = connect(mMLWrapper, SIGNAL(populated()), this, SLOT(modelpopulated()));
 	//itemadded.resize(mMLWrapper->getItemCount());
 	
 	itemIconCache.setMaxCost(20);  //Changed While Doing Media Wall
@@ -85,6 +88,8 @@
 	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()));
     delete mMLWrapper;
 
 }
@@ -157,6 +162,15 @@
 //todo refactor this whole function ... too many return statements are not good
 QVariant GlxMediaModel::data(const QModelIndex &index, int role) const
 {
+    if (role == GlxViewTitle)
+        {
+        return mMLWrapper->retrieveViewTitle();
+        }
+
+    if(role == GlxPopulated) {
+        return mMLWrapper->IsPopulated();
+    }
+
     if ( role == GlxSubStateRole ) {
         return mSubState;
     }
@@ -170,8 +184,16 @@
     }
     
     if ( role == GlxDefaultImage ) {
+        if(!m_DefaultIcon->isNull()) {
+            // this image Creation is Slow. 
+            // But what to do, Q class's Does not undersatnd our Localised File names
         return m_DefaultIcon->pixmap().toImage().convertToFormat(QImage::Format_ARGB32_Premultiplied);
     }
+        else {
+            return QImage();
+        }
+            
+    }
 
     HbIcon* itemIcon = NULL;
     QImage itemImage;
@@ -359,6 +381,11 @@
 	emit dataChanged(index(itemIndex+externalDataCount,0),index(itemIndex+externalDataCount,0));	
 }
 
+void GlxMediaModel::modelpopulated()
+{
+    emit populated();
+}
+
 void GlxMediaModel::itemsAdded(int startIndex, int endIndex)
 {
 	qDebug("GlxMediaModel::itemsAdded %d %d", startIndex, endIndex);
@@ -401,6 +428,10 @@
 	}
 }
 
+void GlxMediaModel::albumTitleUpdated(QString aTitle)
+{
+    emit albumTitleAvailable(aTitle);
+}
 
 void GlxMediaModel::setFocusIndex(const QModelIndex &index)
 {
--- a/ui/viewmanagement/bwins/glxstatehandleru.def	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/bwins/glxstatehandleru.def	Mon May 17 13:35:26 2010 +0530
@@ -3,33 +3,35 @@
 	?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)
-	?goBack@GlxStateManager@@QAEXHH@Z @ 5 NONAME ; void GlxStateManager::goBack(int, int)
-	?enterMarkingMode@GlxStateManager@@QAEXXZ @ 6 NONAME ; void GlxStateManager::enterMarkingMode(void)
-	??1GlxStateManager@@UAE@XZ @ 7 NONAME ; GlxStateManager::~GlxStateManager(void)
-	?getStaticMetaObject@GlxStateManager@@SAABUQMetaObject@@XZ @ 8 NONAME ; struct QMetaObject const & GlxStateManager::getStaticMetaObject(void)
-	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *, int)
-	?eventHandler@GlxStateManager@@AAEXAAH@Z @ 10 NONAME ; void GlxStateManager::eventHandler(int &)
-	?executeCommand@GlxStateManager@@QAE_NH@Z @ 11 NONAME ; bool GlxStateManager::executeCommand(int)
-	?setupItems@GlxStateManager@@QAEXXZ @ 12 NONAME ; void GlxStateManager::setupItems(void)
-	?previousState@GlxStateManager@@QAEXXZ @ 13 NONAME ; void GlxStateManager::previousState(void)
-	?createState@GlxStateManager@@AAEPAVGlxState@@H@Z @ 14 NONAME ; class GlxState * GlxStateManager::createState(int)
-	?exitApplication@GlxStateManager@@AAEXXZ @ 15 NONAME ; void GlxStateManager::exitApplication(void)
-	?changeState@GlxStateManager@@QAEXHH@Z @ 16 NONAME ; void GlxStateManager::changeState(int, int)
-	?qt_metacall@GlxStateManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 17 NONAME ; int GlxStateManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	??0GlxStateManager@@QAE@XZ @ 18 NONAME ; GlxStateManager::GlxStateManager(void)
-	?cleanupExternal@GlxStateManager@@QAEXXZ @ 19 NONAME ; void GlxStateManager::cleanupExternal(void)
-	?trUtf8@GlxStateManager@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString GlxStateManager::trUtf8(char const *, char const *)
-	?qt_metacast@GlxStateManager@@UAEPAXPBD@Z @ 21 NONAME ; void * GlxStateManager::qt_metacast(char const *)
-	?staticMetaObject@GlxStateManager@@2UQMetaObject@@B @ 22 NONAME ; struct QMetaObject const GlxStateManager::staticMetaObject
-	?tr@GlxStateManager@@SA?AVQString@@PBD0H@Z @ 23 NONAME ; class QString GlxStateManager::tr(char const *, char const *, int)
-	?tr@GlxStateManager@@SA?AVQString@@PBD0@Z @ 24 NONAME ; class QString GlxStateManager::tr(char const *, char const *)
-	?nextState@GlxStateManager@@QAEXHH@Z @ 25 NONAME ; void GlxStateManager::nextState(int, int)
-	?launchFromExternal@GlxStateManager@@QAEXXZ @ 26 NONAME ; void GlxStateManager::launchFromExternal(void)
-	?externalCommand@GlxStateManager@@IAEXH@Z @ 27 NONAME ; void GlxStateManager::externalCommand(int)
-	?createGridModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 28 NONAME ; void GlxStateManager::createGridModel(int, enum NavigationDir)
-	?launchApplication@GlxStateManager@@QAEXXZ @ 29 NONAME ; void GlxStateManager::launchApplication(void)
-	?exitMarkingMode@GlxStateManager@@QAEXXZ @ 30 NONAME ; void GlxStateManager::exitMarkingMode(void)
-	?removeCurrentModel@GlxStateManager@@QAEXXZ @ 31 NONAME ; void GlxStateManager::removeCurrentModel(void)
-	?createModel@GlxStateManager@@AAEXHW4NavigationDir@@@Z @ 32 NONAME ; void GlxStateManager::createModel(int, enum NavigationDir)
-	?setFullScreenContext@GlxStateManager@@AAEXXZ @ 33 NONAME ; void GlxStateManager::setFullScreenContext(void)
+	?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)
 
--- a/ui/viewmanagement/bwins/glxviewmanageru.def	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/bwins/glxviewmanageru.def	Mon May 17 13:35:26 2010 +0530
@@ -1,47 +1,50 @@
 EXPORTS
-	?updateToolBarIcon@GlxViewManager@@QAEXH@Z @ 1 NONAME ; void GlxViewManager::updateToolBarIcon(int)
-	?tr@GlxViewManager@@SA?AVQString@@PBD0@Z @ 2 NONAME ; class QString GlxViewManager::tr(char const *, char const *)
-	?getStaticMetaObject@GlxViewManager@@SAABUQMetaObject@@XZ @ 3 NONAME ; struct QMetaObject const & GlxViewManager::getStaticMetaObject(void)
-	?effectFinished@GlxViewManager@@QAEXXZ @ 4 NONAME ; void GlxViewManager::effectFinished(void)
-	?qt_metacast@GlxViewManager@@UAEPAXPBD@Z @ 5 NONAME ; void * GlxViewManager::qt_metacast(char const *)
-	??_EGlxViewManager@@UAE@I@Z @ 6 NONAME ; GlxViewManager::~GlxViewManager(unsigned int)
-	?addBackSoftKeyAction@GlxViewManager@@QAEXXZ @ 7 NONAME ; void GlxViewManager::addBackSoftKeyAction(void)
-	?findView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 8 NONAME ; class GlxView * GlxViewManager::findView(int)
-	?createActions@GlxViewManager@@AAEXXZ @ 9 NONAME ; void GlxViewManager::createActions(void)
-	?staticMetaObject@GlxViewManager@@2UQMetaObject@@B @ 10 NONAME ; struct QMetaObject const GlxViewManager::staticMetaObject
-	?handleAction@GlxViewManager@@QAEXXZ @ 11 NONAME ; void GlxViewManager::handleAction(void)
-	?handleUserAction@GlxViewManager@@QAEXHH@Z @ 12 NONAME ; void GlxViewManager::handleUserAction(int, int)
-	?metaObject@GlxViewManager@@UBEPBUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const * GlxViewManager::metaObject(void) const
-	?actionTriggered@GlxViewManager@@IAEXH@Z @ 14 NONAME ; void GlxViewManager::actionTriggered(int)
-	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@W4GlxEffect@@W4GlxViewEffect@@@Z @ 15 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *, enum GlxEffect, enum GlxViewEffect)
-	?handleMenuAction@GlxViewManager@@QAEXH@Z @ 16 NONAME ; void GlxViewManager::handleMenuAction(int)
-	?externalCommand@GlxViewManager@@IAEXH@Z @ 17 NONAME ; void GlxViewManager::externalCommand(int)
-	??0GlxViewManager@@QAE@XZ @ 18 NONAME ; GlxViewManager::GlxViewManager(void)
-	?exitMarkingMode@GlxViewManager@@QAEXH@Z @ 19 NONAME ; void GlxViewManager::exitMarkingMode(int)
-	?cancelTimer@GlxViewManager@@QAEXXZ @ 20 NONAME ; void GlxViewManager::cancelTimer(void)
-	?createToolBar@GlxViewManager@@AAEXXZ @ 21 NONAME ; void GlxViewManager::createToolBar(void)
-	?removeConnection@GlxViewManager@@AAEXXZ @ 22 NONAME ; void GlxViewManager::removeConnection(void)
-	?launchView@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 23 NONAME ; void GlxViewManager::launchView(int, class QAbstractItemModel *)
-	?createMarkingModeActions@GlxViewManager@@AAEXXZ @ 24 NONAME ; void GlxViewManager::createMarkingModeActions(void)
-	?qt_metacall@GlxViewManager@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 25 NONAME ; int GlxViewManager::qt_metacall(enum QMetaObject::Call, int, void * *)
-	?deActivateView@GlxViewManager@@AAEXXZ @ 26 NONAME ; void GlxViewManager::deActivateView(void)
-	?destroyView@GlxViewManager@@QAEXH@Z @ 27 NONAME ; void GlxViewManager::destroyView(int)
-	?resolveView@GlxViewManager@@AAEPAVGlxView@@H@Z @ 28 NONAME ; class GlxView * GlxViewManager::resolveView(int)
-	??1GlxViewManager@@UAE@XZ @ 29 NONAME ; GlxViewManager::~GlxViewManager(void)
-	?getSelectionModel@GlxViewManager@@QAEPAVQItemSelectionModel@@H@Z @ 30 NONAME ; class QItemSelectionModel * GlxViewManager::getSelectionModel(int)
-	?addConnection@GlxViewManager@@AAEXXZ @ 31 NONAME ; void GlxViewManager::addConnection(void)
-	?createMarkingModeToolBar@GlxViewManager@@AAEXXZ @ 32 NONAME ; void GlxViewManager::createMarkingModeToolBar(void)
-	?itemSpecificMenuTriggered@GlxViewManager@@QAEXHVQPointF@@@Z @ 33 NONAME ; void GlxViewManager::itemSpecificMenuTriggered(int, class QPointF)
-	?orientation@GlxViewManager@@QBE?AW4Orientation@Qt@@XZ @ 34 NONAME ; enum Qt::Orientation GlxViewManager::orientation(void) const
-	?enterMarkingMode@GlxViewManager@@QAEXH@Z @ 35 NONAME ; void GlxViewManager::enterMarkingMode(int)
-	?actionProcess@GlxViewManager@@QAEXH@Z @ 36 NONAME ; void GlxViewManager::actionProcess(int)
-	?deactivateCurrentView@GlxViewManager@@QAEXXZ @ 37 NONAME ; void GlxViewManager::deactivateCurrentView(void)
-	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 38 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *, int)
-	?trUtf8@GlxViewManager@@SA?AVQString@@PBD0@Z @ 39 NONAME ; class QString GlxViewManager::trUtf8(char const *, char const *)
-	?tr@GlxViewManager@@SA?AVQString@@PBD0H@Z @ 40 NONAME ; class QString GlxViewManager::tr(char const *, char const *, int)
-	?activateView@GlxViewManager@@AAEXXZ @ 41 NONAME ; void GlxViewManager::activateView(void)
-	?setupItems@GlxViewManager@@QAEXXZ @ 42 NONAME ABSENT ; void GlxViewManager::setupItems(void)
-	?launchApplication@GlxViewManager@@QAEXHPAVQAbstractItemModel@@@Z @ 43 NONAME ; void GlxViewManager::launchApplication(int, class QAbstractItemModel *)
-	?setupItems@GlxViewManager@@QAEXH@Z @ 44 NONAME ; void GlxViewManager::setupItems(int)
-	?checkMarked@GlxViewManager@@AAEXXZ @ 45 NONAME ; void GlxViewManager::checkMarked(void)
+	?launchProgressDialog@GlxViewManager@@QAEXH@Z @ 1 NONAME ; void GlxViewManager::launchProgressDialog(int)
+	?updateToolBarIcon@GlxViewManager@@QAEXH@Z @ 2 NONAME ; void GlxViewManager::updateToolBarIcon(int)
+	?tr@GlxViewManager@@SA?AVQString@@PBD0@Z @ 3 NONAME ; class QString GlxViewManager::tr(char const *, char const *)
+	?getStaticMetaObject@GlxViewManager@@SAABUQMetaObject@@XZ @ 4 NONAME ; struct QMetaObject const & GlxViewManager::getStaticMetaObject(void)
+	?effectFinished@GlxViewManager@@QAEXXZ @ 5 NONAME ; void GlxViewManager::effectFinished(void)
+	?updateProgressDialog@GlxViewManager@@QAEXH@Z @ 6 NONAME ; void GlxViewManager::updateProgressDialog(int)
+	?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)
 
--- a/ui/viewmanagement/eabi/glxstatehandleru.def	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/eabi/glxstatehandleru.def	Mon May 17 13:35:26 2010 +0530
@@ -6,30 +6,32 @@
 	_ZN15GlxStateManager11qt_metacallEN11QMetaObject4CallEiPPv @ 5 NONAME
 	_ZN15GlxStateManager11qt_metacastEPKc @ 6 NONAME
 	_ZN15GlxStateManager12eventHandlerERi @ 7 NONAME
-	_ZN15GlxStateManager13previousStateEv @ 8 NONAME
-	_ZN15GlxStateManager14executeCommandEi @ 9 NONAME
-	_ZN15GlxStateManager15actionTriggeredEi @ 10 NONAME
-	_ZN15GlxStateManager15cleanupExternalEv @ 11 NONAME
-	_ZN15GlxStateManager15createGridModelEi13NavigationDir @ 12 NONAME
-	_ZN15GlxStateManager15exitApplicationEv @ 13 NONAME
-	_ZN15GlxStateManager15exitMarkingModeEv @ 14 NONAME
-	_ZN15GlxStateManager15externalCommandEi @ 15 NONAME
-	_ZN15GlxStateManager16enterMarkingModeEv @ 16 NONAME
-	_ZN15GlxStateManager16setupItemsSignalEv @ 17 NONAME
-	_ZN15GlxStateManager16staticMetaObjectE @ 18 NONAME DATA 16
-	_ZN15GlxStateManager17launchApplicationEv @ 19 NONAME
-	_ZN15GlxStateManager18launchFromExternalEv @ 20 NONAME
-	_ZN15GlxStateManager18removeCurrentModelEv @ 21 NONAME
-	_ZN15GlxStateManager19getStaticMetaObjectEv @ 22 NONAME
-	_ZN15GlxStateManager6goBackEii @ 23 NONAME
-	_ZN15GlxStateManager9nextStateEii @ 24 NONAME
-	_ZN15GlxStateManagerC1Ev @ 25 NONAME
-	_ZN15GlxStateManagerC2Ev @ 26 NONAME
-	_ZN15GlxStateManagerD0Ev @ 27 NONAME
-	_ZN15GlxStateManagerD1Ev @ 28 NONAME
-	_ZN15GlxStateManagerD2Ev @ 29 NONAME
-	_ZNK15GlxStateManager10metaObjectEv @ 30 NONAME
-	_ZTI15GlxStateManager @ 31 NONAME
-	_ZTV15GlxStateManager @ 32 NONAME
-	_ZN15GlxStateManager20setFullScreenContextEv @ 33 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
 
--- a/ui/viewmanagement/eabi/glxviewmanageru.def	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/eabi/glxviewmanageru.def	Mon May 17 13:35:26 2010 +0530
@@ -1,46 +1,50 @@
 EXPORTS
 	_ZN14GlxViewManager10launchViewEiP18QAbstractItemModel @ 1 NONAME
 	_ZN14GlxViewManager10launchViewEiP18QAbstractItemModel9GlxEffect13GlxViewEffect @ 2 NONAME
-	_ZN14GlxViewManager10setupItemsEi @ 3 NONAME
+	_ZN14GlxViewManager10setupItemsEv @ 3 NONAME
 	_ZN14GlxViewManager11cancelTimerEv @ 4 NONAME
-	_ZN14GlxViewManager11destroyViewEi @ 5 NONAME
-	_ZN14GlxViewManager11qt_metacallEN11QMetaObject4CallEiPPv @ 6 NONAME
-	_ZN14GlxViewManager11qt_metacastEPKc @ 7 NONAME
-	_ZN14GlxViewManager11resolveViewEi @ 8 NONAME
-	_ZN14GlxViewManager12activateViewEv @ 9 NONAME
-	_ZN14GlxViewManager12handleActionEv @ 10 NONAME
-	_ZN14GlxViewManager13actionProcessEi @ 11 NONAME
-	_ZN14GlxViewManager13addConnectionEv @ 12 NONAME
-	_ZN14GlxViewManager13createActionsEv @ 13 NONAME
-	_ZN14GlxViewManager13createToolBarEv @ 14 NONAME
-	_ZN14GlxViewManager14deActivateViewEv @ 15 NONAME
-	_ZN14GlxViewManager14effectFinishedEv @ 16 NONAME
-	_ZN14GlxViewManager15actionTriggeredEi @ 17 NONAME
-	_ZN14GlxViewManager15exitMarkingModeEi @ 18 NONAME
-	_ZN14GlxViewManager15externalCommandEi @ 19 NONAME
-	_ZN14GlxViewManager16enterMarkingModeEi @ 20 NONAME
-	_ZN14GlxViewManager16handleMenuActionEi @ 21 NONAME
-	_ZN14GlxViewManager16handleUserActionEii @ 22 NONAME
-	_ZN14GlxViewManager16removeConnectionEv @ 23 NONAME
-	_ZN14GlxViewManager16staticMetaObjectE @ 24 NONAME DATA 16
-	_ZN14GlxViewManager17getSelectionModelEi @ 25 NONAME
-	_ZN14GlxViewManager17launchApplicationEiP18QAbstractItemModel @ 26 NONAME
-	_ZN14GlxViewManager17updateToolBarIconEi @ 27 NONAME
-	_ZN14GlxViewManager19getStaticMetaObjectEv @ 28 NONAME
-	_ZN14GlxViewManager20addBackSoftKeyActionEv @ 29 NONAME
-	_ZN14GlxViewManager21deactivateCurrentViewEv @ 30 NONAME
-	_ZN14GlxViewManager24createMarkingModeActionsEv @ 31 NONAME
-	_ZN14GlxViewManager24createMarkingModeToolBarEv @ 32 NONAME
-	_ZN14GlxViewManager25itemSpecificMenuTriggeredEi7QPointF @ 33 NONAME
-	_ZN14GlxViewManager8findViewEi @ 34 NONAME
-	_ZN14GlxViewManagerC1Ev @ 35 NONAME
-	_ZN14GlxViewManagerC2Ev @ 36 NONAME
-	_ZN14GlxViewManagerD0Ev @ 37 NONAME
-	_ZN14GlxViewManagerD1Ev @ 38 NONAME
-	_ZN14GlxViewManagerD2Ev @ 39 NONAME
-	_ZNK14GlxViewManager10metaObjectEv @ 40 NONAME
-	_ZNK14GlxViewManager11orientationEv @ 41 NONAME
-	_ZTI14GlxViewManager @ 42 NONAME
-	_ZTV14GlxViewManager @ 43 NONAME
-	_ZN14GlxViewManager11checkMarkedEv @ 44 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
 
--- a/ui/viewmanagement/statehandler/inc/glxstatemanager.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/statehandler/inc/glxstatemanager.h	Mon May 17 13:35:26 2010 +0530
@@ -31,6 +31,7 @@
 class GlxAlbumModel;
 class QAbstractItemModel;
 class GlxActionHandler;
+class GlxTNObserver;
 
 #ifdef BUILD_STATEMANAGER
 #define GLX_STATEMANAGER_EXPORT Q_DECL_EXPORT
@@ -62,6 +63,7 @@
     void launchApplication();
     void actionTriggered(qint32 id);
     void setupItems();
+    void updateTNProgress( int count);
 
 public :
 /*
@@ -93,6 +95,11 @@
  */      
     void removeCurrentModel();
     
+/*
+ * It will delete the all model used by state manager
+ */
+    void cleanAllModel();
+    
 
 private:
 /*
@@ -126,6 +133,7 @@
     QAbstractItemModel  *mCurrentModel;         // no owner ship
     GlxState            *mCurrentState;		
     GlxActionHandler    *mActionHandler;
+    GlxTNObserver       *mTNObserver;
     int                 mCollectionId;
 };
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/viewmanagement/statehandler/inc/glxtnobserver.h	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,67 @@
+/*
+* 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 GLXTNOBSERVER_H
+#define GLXTNOBSERVER_H
+
+#include <QObject>
+#include <glxtnmonitor.h>
+
+class CGlxTNMonitor;
+
+class GlxTNObserver : public QObject, public MGlxTNObserver
+{
+    Q_OBJECT
+    
+public:
+    /*
+     * constructor
+     */
+    GlxTNObserver();
+    /*
+     * Call back to get the number of TN is left to create.
+     */
+    void updateTNCount(int &count);     
+    /*
+     * It will return the number of TN is left to create.
+     */
+    int getTNLeftCount() ;
+    
+    /*
+     * It will start the tumbnail generation montior process.
+     */    
+    void startTNObserving(); 
+    
+    /*
+     * Destructor
+     */
+    ~GlxTNObserver();
+    
+signals : 
+    /*
+     * broad cast the number of thumbnail left to generate
+     */
+    void leftTNCount( int count);
+    
+private :
+    CGlxTNMonitor* mTNMonitor;
+};
+
+#endif /* GLXTNOBSERVER_H */
--- a/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/statehandler/src/glxstatemanager.cpp	Mon May 17 13:35:26 2010 +0530
@@ -25,6 +25,7 @@
 #include <glxdetailstate.h>
 #include <glxslideshowsettingsstate.h>
 #include <glxslideshowstate.h>
+#include <glxtnobserver.h>
 #include <glxmodelparm.h>
 #include <glxcollectionpluginall.hrh>
 #include <glxcollectionplugincamera.hrh>
@@ -43,15 +44,26 @@
 #include <hbnotificationdialog.h>
 #include <QProcess>
 
-GlxStateManager::GlxStateManager() : mAllMediaModel(NULL), mAlbumGridMediaModel(NULL),
-            mAlbumMediaModel(NULL),mImageviewerMediaModel(NULL), mCurrentModel (NULL), mCurrentState (NULL), mActionHandler (NULL)
+
+GlxStateManager::GlxStateManager() 
+    : mAllMediaModel( NULL ), 
+      mAlbumGridMediaModel( NULL ),
+      mAlbumMediaModel( NULL ),
+      mImageviewerMediaModel( NULL ), 
+      mCurrentModel( NULL ), 
+      mCurrentState( NULL ), 
+      mActionHandler( NULL ),
+      mTNObserver ( NULL )
 {
     qDebug("GlxStateManager::GlxStateManager");
     PERFORMANCE_ADV ( d1, "view manager creation time") {
         mViewManager = new GlxViewManager();
     }
+    mTNObserver = new GlxTNObserver();
+    
     connect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ), Qt::QueuedConnection );
-    connect ( mViewManager, SIGNAL(actionTriggered(qint32 )), this, SLOT(actionTriggered(qint32 )), Qt::QueuedConnection );
+    connect ( mViewManager, SIGNAL(actionTriggered( qint32 )), this, SLOT(actionTriggered( qint32 )), Qt::QueuedConnection );
+    connect ( mTNObserver, SIGNAL( leftTNCount( int ) ), this, SLOT( updateTNProgress( int ) ) );
 	//TO:DO TBD through exception when it is null
 }
 
@@ -87,19 +99,22 @@
 
 void GlxStateManager::launchApplication()
 {
-   qDebug("GlxStateManager::launchApplication");   
-   //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S)
-   
-   mCurrentState = createState(GLX_GRIDVIEW_ID);
-   mCurrentState->setState(ALL_ITEM_S);
-   
-   PERFORMANCE_ADV ( d1, "Media model creation time" ) {
-       createModel(GLX_GRIDVIEW_ID);
-   }
-   
-   PERFORMANCE_ADV ( d2, "Grid View Launch time" ) {
-       mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
-   }   
+    qDebug("GlxStateManager::launchApplication");   
+       
+    //To:Do use it in future once performance code is removed nextState(GLX_GRIDVIEW_ID, ALL_ITEM_S)
+    mCurrentState = createState( GLX_GRIDVIEW_ID );
+    mCurrentState->setState( ALL_ITEM_S );
+       
+    if ( mTNObserver->getTNLeftCount() > 0 ) {
+        mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
+        mViewManager->launchProgressDialog( mTNObserver->getTNLeftCount() );
+    }
+    else {
+        createModel( GLX_GRIDVIEW_ID );
+        mViewManager->launchApplication( GLX_GRIDVIEW_ID, mCurrentModel);
+    }
+    
+    mTNObserver->startTNObserving() ; 
 }
 
 void GlxStateManager::launchFromExternal()
@@ -132,6 +147,22 @@
     mViewManager->updateToolBarIcon(GLX_ALL_ACTION_ID);
 }
 
+void GlxStateManager::updateTNProgress( int count)
+{
+    if (  mCurrentState->id() != GLX_GRIDVIEW_ID  && count > 0) {
+         goBack( GLX_GRIDVIEW_ID, ALL_ITEM_S ) ;
+    }
+    if ( mCurrentModel && count > 0) {
+         cleanAllModel();   
+         mViewManager->launchProgressDialog ( count ) ;
+    }
+    if ( count == 0 ) {
+        createModel( mCurrentState->id() );
+        mViewManager->setModel( mCurrentModel );
+    }
+    mViewManager->updateProgressDialog( count );
+}
+
 void GlxStateManager::nextState(qint32 state, int internalState)
 {
     qDebug("GlxStateManager::nextState next state = %u", state);
@@ -189,12 +220,15 @@
     qDebug("GlxStateManager::goBack()");
     GlxState *state = mCurrentState;
     
-    do {
+    while ( mCurrentState ) {
+        if ( mCurrentState->id() == stateId  && mCurrentState->state() == internalState ) {
+            break ;           
+        }
+        
         mCurrentState = mCurrentState->previousState(); // set pervious state to the current state
         delete state; //delete the current state
-        state = mCurrentState;
+        state = mCurrentState;    
     }
-    while ( mCurrentState && mCurrentState->id() != stateId ); //check, cuurent state is a new state
     
     //case when new state is not hierarchy then create a new state
     if ( mCurrentState == NULL ) {
@@ -257,6 +291,19 @@
     }
 }
 
+void GlxStateManager::cleanAllModel()
+{
+    delete mAllMediaModel ;
+    mAllMediaModel = NULL ;
+    delete mAlbumMediaModel ; 
+    mAlbumMediaModel = NULL ;
+    delete mAlbumGridMediaModel ;
+    mAlbumGridMediaModel = NULL ;
+    delete mImageviewerMediaModel ;
+    mImageviewerMediaModel = NULL ;
+    mCurrentModel = NULL ;
+}
+
 GlxState * GlxStateManager::createState(qint32 stateId)
 {
     qDebug("GlxStateManager::createState state id = %d", stateId);
@@ -436,16 +483,23 @@
         nextState(GLX_SLIDESHOWSETTINGSVIEW_ID,-1 );
         id = EGlxCmdHandled;
         break;
+        
     case EGlxCmdDetailsOpen:
         qDebug("GlxStateManager::eventHandler EGlxCmdDetailsOpen");
         nextState( GLX_DETAILSVIEW_ID, -1 );
         id = EGlxCmdHandled;
         break;
         
-    case EGlxCmdEmptyData :
-        goBack(GLX_GRIDVIEW_ID, NO_GRID_S);
+    case EGlxCmdEmptyData : {
+        GlxState *tmpState = mCurrentState ;
+        while ( tmpState->id() != GLX_GRIDVIEW_ID ) {
+            tmpState = tmpState->previousState() ;
+        }
+        
+        goBack( GLX_GRIDVIEW_ID, tmpState->state() );
         id = EGlxCmdHandled;
         break;
+    }
     	
     case EGlxCmdBack :
     	previousState();
@@ -517,25 +571,26 @@
 GlxStateManager::~GlxStateManager()
 {
     qDebug("GlxStateManager::~GlxStateManager");
-    delete mAllMediaModel;
-    delete mAlbumMediaModel;
-    delete mAlbumGridMediaModel;
-	
+    cleanAllModel();
     delete mActionHandler;
     qDebug("GlxStateManager::~GlxStateManager delete Model");
     
     disconnect ( mViewManager, SIGNAL(actionTriggered(qint32 )), this, SLOT(actionTriggered(qint32 )) );
     disconnect ( mViewManager, SIGNAL(externalCommand(int )), this, SIGNAL(externalCommand(int )) );
+    disconnect ( mTNObserver, SIGNAL( leftTNCount( int ) ), this, SLOT( updateTNProgress( int ) ) );
+    disconnect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ) );
+    
+    delete mTNObserver;
     delete mViewManager; 
     qDebug("GlxStateManager::~GlxStateManager delete view manager");
-    delete mImageviewerMediaModel;
+    
     GlxState *tmp;   
     while (mCurrentState) {
         tmp = mCurrentState;
         mCurrentState = mCurrentState->previousState();
         delete tmp;        
     }
-    disconnect ( this, SIGNAL( setupItemsSignal() ), this, SLOT( setupItems() ) );
+    
     qDebug("GlxStateManager::~GlxStateManager Exit");
 }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/viewmanagement/statehandler/src/glxtnobserver.cpp	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,51 @@
+/*
+* 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 <glxtnobserver.h>
+#include <e32property.h>
+
+const TUid KTAGDPSNotification = { 0x2001FD51 };
+const TInt KForceBackgroundGeneration = 0x00000010;
+const TInt KItemsleft = 0x00000008;
+
+GlxTNObserver::GlxTNObserver() : mTNMonitor( NULL )
+{
+    RProperty::Set( KTAGDPSNotification, KForceBackgroundGeneration, ETrue );
+}
+
+void GlxTNObserver::updateTNCount(int &count)
+{
+    emit leftTNCount( count );
+}
+
+int GlxTNObserver::getTNLeftCount()
+{
+    TInt leftVariable =  0;
+    RProperty::Get( KTAGDPSNotification, KItemsleft, leftVariable );
+    //To:Do error handling
+    return leftVariable;
+}
+
+void GlxTNObserver::startTNObserving()
+{
+    mTNMonitor = CGlxTNMonitor::NewL( this );
+}
+
+GlxTNObserver::~GlxTNObserver()
+{
+    delete mTNMonitor;
+}
--- a/ui/viewmanagement/statehandler/statehandler.pro	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/statehandler/statehandler.pro	Mon May 17 13:35:26 2010 +0530
@@ -24,6 +24,7 @@
             ../../inc \
             ../../../inc \
             ../../../loggers/loggerqt/inc \
+            ../../../commonutilities/common/inc \
             ../../uiengine/medialists/inc \
             ../../uiengine/medialistwrapper/inc \
             ../../uiengine/model/mediamodel/inc \
@@ -47,7 +48,8 @@
         -lglxexternalutility.dll \
         -lglxloggerqt.dll \
         -lglxcommoncommandhandlers.dll \
-        -lglxlogging.dll
+        -lglxlogging.dll \
+        -lglxcommon.dll
 
 # Input
 HEADERS += inc/glxbasestate.h \
@@ -59,7 +61,8 @@
            inc/glxstatemanager.h \
            inc/glxslideshowstate.h \
            inc/glxactionhandler.h \
-           inc/glxcommandhandlerfactory.h
+           inc/glxcommandhandlerfactory.h \
+           inc/glxtnobserver.h
 
 SOURCES += src/glxbasestate.cpp \
            src/glxfullscreenstate.cpp \
@@ -70,6 +73,7 @@
            src/glxstatemanager.cpp \
            src/glxslideshowstate.cpp \
            src/glxactionhandler.cpp \
-           src/glxcommandhandlerfactory.cpp
+           src/glxcommandhandlerfactory.cpp \
+           src/glxtnobserver.cpp
 
 DEFINES += QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/viewmanagement/viewmanager/inc/glxmainwindoweventfilter.h	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,26 @@
+#ifndef GLXMAINWINDOWEVENTFILTER_H
+#define GLXMAINWINDOWEVENTFILTER_H
+#include <QObject>
+#include <QEvent>
+class GlxMainWindowEventFilter : public QObject {
+    Q_OBJECT
+public:
+
+    GlxMainWindowEventFilter() {}
+    virtual bool eventFilter(QObject *o, QEvent *e) {
+        Q_UNUSED(o);
+        switch(e->type()) {
+        case QEvent::TouchBegin:
+        case QEvent::TouchUpdate:
+        case QEvent::TouchEnd:
+            e->accept();
+            return true;
+        default:
+            break;
+        }
+        return false;
+    }
+
+};
+
+#endif
\ No newline at end of file
--- a/ui/viewmanagement/viewmanager/inc/glxviewmanager.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/viewmanager/inc/glxviewmanager.h	Mon May 17 13:35:26 2010 +0530
@@ -19,7 +19,7 @@
 
 #ifndef GLXVIEWMANAGER_H
 #define GLXVIEWMANAGER_H
- #include <QItemSelectionModel>
+
 #include <QObject>
 #include <QList>
 #include <hbeffect.h>
@@ -35,6 +35,8 @@
 class QItemSelectionModel;
 class HbMenu;
 class GlxSlideShowEffectEngine;
+class HbProgressDialog;
+class GlxMainWindowEventFilter;
 
 #ifdef BUILD_VIEWMANAGER
 #define GLX_VIEWMANAGER_EXPORT Q_DECL_EXPORT
@@ -59,7 +61,7 @@
 public :
     GlxViewManager();
     ~GlxViewManager();
-    void setupItems(int subState = -1);
+    void setupItems( );
     void launchApplication(qint32 id, QAbstractItemModel *model);
     void addBackSoftKeyAction();
 /*
@@ -92,6 +94,10 @@
  *  Return the selection model to the user
  */    
     QItemSelectionModel * getSelectionModel(qint32 viewId);
+/*
+ * To set the model of current view
+ */
+    void setModel( QAbstractItemModel *model );
 	    
 signals :
 /*
@@ -109,6 +115,9 @@
  *  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.
@@ -142,6 +151,8 @@
 private slots:
 
    void checkMarked();
+   void hideProgressDialog();
+   
 private:
 /*
  * It will create and return the view
@@ -197,7 +208,10 @@
     HbMenu *mMenu; 
     GlxView *mView;
     QAbstractItemModel *mModel; //no ownership
-	QItemSelectionModel * mSelectionModel;
+    QItemSelectionModel * mSelectionModel;
+    HbProgressDialog *mProgressDialog;
+    GlxMainWindowEventFilter* mWindowEventFilter;
+
 };
 
 
--- a/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/viewmanager/src/glxviewmanager.cpp	Mon May 17 13:35:26 2010 +0530
@@ -35,6 +35,9 @@
 #include <hbmenu.h>
 #include <QDebug>
 #include <hbstyleloader.h>
+#include <hbprogressdialog.h>
+#include <QItemSelectionModel>
+#include <glxmainwindoweventfilter.h>
 
 
 GlxViewManager::GlxViewManager() 
@@ -42,9 +45,10 @@
       mMenuManager( NULL ), 
       mEffectEngine( NULL ), 
       mViewToolBar( NULL ), 
-      mMarkingToolBar( NULL ),      
+      mMarkingToolBar( NULL ), 
       mMenu( NULL ),
-      mSelectionModel ( NULL )
+      mSelectionModel ( NULL ),
+      mProgressDialog( NULL )
 {
     qDebug("GlxViewManager::GlxViewManager() ");
     PERFORMANCE_ADV ( viewMgrD1, "main window creation time" ) {
@@ -54,12 +58,16 @@
             mMainWindow = new HbMainWindow();
         }
 		//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::setupItems(int subState)
+void GlxViewManager::setupItems( )
 {
     mMenuManager = new GlxMenuManager(mMainWindow);
     addBackSoftKeyAction(); 
@@ -185,6 +193,83 @@
     }    
 }
 
+void GlxViewManager::launchProgressDialog( int maxValue )
+{
+    if ( maxValue <= 0 ) {
+        return;
+    }
+    if ( mProgressDialog == NULL ) {
+        mProgressDialog = new HbProgressDialog( HbProgressDialog::ProgressDialog );
+        mProgressDialog->actions().at(0)->disconnect( SIGNAL( triggered() ) );
+        connect ( mProgressDialog->actions().at(0), SIGNAL( triggered() ), this, SLOT( hideProgressDialog() ) );
+        mProgressDialog->setMinimum( 0 );
+    }
+    mProgressDialog->setMaximum( maxValue );
+    mProgressDialog->setProgressValue( 0 );
+    mProgressDialog->setModal( true );
+    mProgressDialog->actions().at(0)->setText( GLX_BUTTON_HIDE );
+    mProgressDialog->open();
+}
+
+void GlxViewManager::hideProgressDialog( )
+{
+    mMainWindow->lower();
+}
+
+void GlxViewManager::updateProgressDialog( int currentValue)
+{
+    static int i = 0;
+    HbIcon icon;
+    User::ResetInactivityTime();  
+
+    //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;            
+        }
+        
+        int max = mProgressDialog->maximum() ;
+        if ( currentValue > max ) {
+            mProgressDialog->setMaximum( currentValue );
+            max = currentValue ;
+        }
+        int value = max - currentValue;
+        mProgressDialog->setProgressValue( value );
+        mProgressDialog->setIcon(icon);
+        mProgressDialog->setText( QString( " %1 / %2").arg( value ).arg( max ) );
+    }
+}
+
 //to be called only when the photos plugin was activated by external means
 void GlxViewManager::deactivateCurrentView()
 {
@@ -226,13 +311,14 @@
     QModelIndexList selectedModelIndex = mSelectionModel->selectedIndexes();
     for ( int i = 0 ; i <  mMarkingActionList.count(); i++) {
         if( mMarkingActionList.at(i)->data()==EGlxCmdSelect) {
-       		bool noSelection=selectedModelIndex.empty();
-          mMarkingActionList.at(i)->setDisabled(noSelection);
-          mMenuManager->disableAction(mView->menu(),noSelection);
-        	break;
+       	    bool noSelection=selectedModelIndex.empty();
+            mMarkingActionList.at(i)->setDisabled(noSelection);
+            mMenuManager->disableAction(mView->menu(),noSelection);
+            break;
         }
     }
 }
+
 void GlxViewManager::enterMarkingMode(qint32 viewId)
 {
     GlxView *view = findView ( viewId );
@@ -302,6 +388,17 @@
     return NULL;
 }
 
+void GlxViewManager::setModel( QAbstractItemModel *model )
+{
+    if ( mView ) {
+        mView->setModel( model ) ;
+    }
+    
+    if ( mMenuManager ) {
+        mMenuManager->setModel( model );
+    }    
+}
+
 GlxView * GlxViewManager::resolveView(qint32 id)
 {
     qDebug("GlxViewManager::resolveView %d", id);
@@ -545,7 +642,7 @@
     delete mViewToolBar;
     delete mMarkingToolBar;
     delete mMenu;
-             
+    delete mProgressDialog;
     if ( mEffectEngine ) {
         mEffectEngine->deregistertransitionEffect();
         delete mEffectEngine;
@@ -555,6 +652,7 @@
         qDebug("GlxViewManager::~GlxViewManager remove view");
         delete mMainWindow;
     }
+    delete mWindowEventFilter;
     
     qDebug("GlxViewManager::~GlxViewManager Exit");
 }
--- a/ui/viewmanagement/viewmanager/viewmanager.pro	Mon May 03 16:56:16 2010 +0530
+++ b/ui/viewmanagement/viewmanager/viewmanager.pro	Mon May 17 13:35:26 2010 +0530
@@ -41,7 +41,8 @@
 }
 # Input
 HEADERS += inc/glxviewmanager.h \
-           inc/glxmenumanager.h 
+           inc/glxmenumanager.h \
+	   inc/glxmainwindoweventfilter.h
 SOURCES += src/glxviewmanager.cpp\
            src/glxmenumanager.cpp 
 
--- a/ui/views/docloaders/src/glxviewdocloader.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/docloaders/src/glxviewdocloader.cpp	Mon May 17 13:35:26 2010 +0530
@@ -29,6 +29,7 @@
 #include "glxcoverflow.h"
 #include "glxslideshowwidget.h"
 #include "glxslideshowview.h"
+#include "glxzoomwidget.h"
 
 //----------------------------------------------------------------------------------------
 // createObject:creates the custom widget and views of fullscreen view
@@ -56,6 +57,14 @@
         object->setObjectName(name);
         return object;
         }
+       
+       if (GLXFULLSCREENZOOMWIDGET == name) 
+        {
+        qDebug() << "GlxFullscreenViewDocLoader::createObject:ZOOM -->";
+        QObject *object = new GlxZoomWidget();
+        object->setObjectName(name);
+        return object;
+        }
     return HbDocumentLoader::createObject(type, name);
     }
 
--- a/ui/views/effectengine/effectplugin/inc/glxforwardtransitionplugin.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/effectengine/effectplugin/inc/glxforwardtransitionplugin.h	Mon May 17 13:35:26 2010 +0530
@@ -27,9 +27,25 @@
     GlxForwardTransitionPlugin();
     ~GlxForwardTransitionPlugin();
     QList <QString > getEffectFileList() { return mEffectFileList; }
+    
+    /*
+     * setup the item postion and set the mItem value
+     */
+        void setUpItems( QList< QGraphicsItem * > &  items );
+    /*
+     * second animation will be run later
+     */    
+    bool isAnimationLater(int index) ;
+    
+    QGraphicsItem * animationItem() 
+    { 
+        mItem->show();
+        return mItem ; 
+    }
 	
 private :
     QList <QString > mEffectFileList;
+    QGraphicsItem *mItem;
 };
 
 #endif /*GLXFORWARDTRANSITIONPLUGIN_H*/
--- a/ui/views/effectengine/effectplugin/src/glxfadeplugin.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/effectengine/effectplugin/src/glxfadeplugin.cpp	Mon May 17 13:35:26 2010 +0530
@@ -20,8 +20,8 @@
 
 GlxFadePlugin::GlxFadePlugin() : mItem(NULL)
 {
-    mEffectFileList.append(QString(":/data/view_flip_hide.fxml"));
-    mEffectFileList.append(QString(":/data/view_flip_show.fxml"));
+    mEffectFileList.append(QString(":/data/opacity_deactivate.fxml"));
+    mEffectFileList.append(QString(":/data/opacity_activate.fxml"));
 }
 
 void GlxFadePlugin::setUpItems( QList< QGraphicsItem * > &  items )
@@ -30,16 +30,16 @@
         return;
     
     mItem = items.at(1);
-    mItem->hide();
+    //mItem->hide();
     mItem->setPos(0,0);
     items.at(0)->setPos(0,0);
 }
 
 bool GlxFadePlugin::isAnimationLater(int index) 
 {
-    if ( index == 1) {
+    /*if ( index == 1) {
         return true;
-    }
+    }*/
     return false;
 }
 
--- a/ui/views/effectengine/effectplugin/src/glxforwardtransitionplugin.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/effectengine/effectplugin/src/glxforwardtransitionplugin.cpp	Mon May 17 13:35:26 2010 +0530
@@ -20,8 +20,27 @@
 
 GlxForwardTransitionPlugin::GlxForwardTransitionPlugin()
 {
-    mEffectFileList.append(QString(":/data/transtionforward.fxml"));
-    mEffectFileList.append(QString(":/data/transtion.fxml"));
+    mEffectFileList.append(QString(":/data/view_flip_hide.fxml"));
+    mEffectFileList.append(QString(":/data/view_flip_show.fxml"));
+}
+
+void GlxForwardTransitionPlugin::setUpItems( QList< QGraphicsItem * > &  items )
+{
+    if ( items.count() < 2 ) 
+        return;
+    
+    mItem = items.at(1);
+    mItem->hide();
+    mItem->setPos(0,0);
+    items.at(0)->setPos(0,0);
+}
+
+bool GlxForwardTransitionPlugin::isAnimationLater(int index) 
+{
+    if ( index == 1) {
+        return true;
+    }
+    return false;
 }
 
 GlxForwardTransitionPlugin::~GlxForwardTransitionPlugin()
--- a/ui/views/effectengine/src/glxeffectengine.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/effectengine/src/glxeffectengine.cpp	Mon May 17 13:35:26 2010 +0530
@@ -76,7 +76,7 @@
 QStringList GlxSlideShowSetting::slideShowEffectList()
 {
 	if(mSettingsManager->readItemValue(*mWaveEffectCenRepKey).toInt() == WAVE_EFFECT)
-        mEffectList<<"wave";
+        mEffectList<<"Flip";
     if(mSettingsManager->readItemValue(*mFadeEffectCenRepKey).toInt() == SMOOTH_FADE)
         mEffectList<<"Fade";
     if(mSettingsManager->readItemValue(*mZoomEffectCenRepKey).toInt() == ZOOM_TO_FACE)
@@ -90,6 +90,7 @@
 }
 void GlxSlideShowSetting::setslideShowEffectIndex( int index )
 {
+    mEffect = ( GlxEffect ) ( index + 1 ) ;
     mSettingsManager->writeItemValue(*mTransitionEffectCenrepKey, index);
 }
 void GlxSlideShowSetting::readSlideShowSetting()
@@ -110,7 +111,7 @@
     				mSlideDelayTime = 3000;
                    break;
 	}
-    mEffect = FADE_EFFECT;
+    mEffect = ( GlxEffect ) ( mSettingsManager->readItemValue(*mTransitionEffectCenrepKey).toInt() + 1 )  ; 
     mMoveDir = MOVE_FORWARD;
     qDebug("GlxSlideShowSetting::readSlideShowSetting() slide delay time %d effect %d move direction %d", mSlideDelayTime, mEffect, mMoveDir);
 }
@@ -387,20 +388,25 @@
     mEffectPlugin = NULL;
     
     switch ( mSlideShowSetting.effect() ) {
-    case TRANSITION_EFFECT :
+    case WAVE_EFFECT :
+        mEffectPlugin = new GlxForwardTransitionPlugin();
+        break ;
+        
+    /*case TRANSITION_EFFECT :
         if ( slideShowMoveDir() == MOVE_FORWARD ) {
             mEffectPlugin = new GlxForwardTransitionPlugin();
         }
         else {
             mEffectPlugin = new GlxBackwardTransitionPlugin();
         }
-        break;
+        break;*/
         
-    case FADE_EFFECT :
+    case SMOOTH_FADE :
         mEffectPlugin = new GlxFadePlugin();
         break;
         
     default :
+        mEffectPlugin = new GlxFadePlugin();
         break;        
     }
 }
--- a/ui/views/fullscreenview/inc/glxcoverflow.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/fullscreenview/inc/glxcoverflow.h	Mon May 17 13:35:26 2010 +0530
@@ -62,8 +62,11 @@
     void partiallyCreate(QAbstractItemModel *model, QSize itemSize);
 	void setCoverFlow();
     void ClearCoverFlow();
+	void setMultitouchFilter(QGraphicsItem* multitouchFilter);
 		    
 public slots:
+	void zoomStarted(int index);
+	void zoomFinished(int index);
 
 signals :
     void coverFlowEvent(GlxCoverFlowEvent e);
@@ -116,6 +119,8 @@
     QAbstractItemModel *mModel;
     GlxUserMove mMoveDir;
     int mSpeed;        
+	bool mZoomOn;
+	QGraphicsItem* mMultitouchFilter;
 };
 
 #endif /* GLXCOVERFLOW_H_ */
--- a/ui/views/fullscreenview/inc/glxfullscreenview.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/fullscreenview/inc/glxfullscreenview.h	Mon May 17 13:35:26 2010 +0530
@@ -37,8 +37,7 @@
 class HbIconItem;
 
 //User Defined forward declartion
-class GlxZoomSlider;
-class GlxZoomControl;
+class GlxZoomWidget;
 class GlxTvOutWrapper;
 
 class GlxFullScreenView : public GlxView
@@ -86,8 +85,7 @@
     void handleToolBarAction();
 
 protected :
-    bool event(QEvent *event);
-
+    bool eventFilter(QObject *obj, QEvent *ev);
 private:
     
     /*
@@ -126,9 +124,7 @@
     HbAction            *mUseImageAction;
 
     //for Zoom
-    HbPushButton        *mZmPushButton;
-    GlxZoomSlider       *mZoomSlider;
-    GlxZoomControl      *mZoomControl;
+	GlxZoomWidget		*mZoomWidget;
     HbDocumentLoader    *mDocLoader;
   
     bool                mUiOff;        // to check the current status of ui on / off
--- a/ui/views/fullscreenview/inc/glxzoomcontrol.h	Mon May 03 16:56:16 2010 +0530
+++ /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 GLXZOOMCONTROL_H
-#define GLXZOOMCONTROL_H
-#include <hbscrollarea.h>
-
-class GlxMediaModel;
-class QAbstractItemModel;
-class HbIconItem;
-class GlxImageDecoderWrapper;
-class GlxZoomControl : public HbScrollArea
-{
-Q_OBJECT
-
-public:
-	GlxZoomControl(QGraphicsItem *parent = NULL);
-	~GlxZoomControl();
-	void setModel (QAbstractItemModel *model);
-    void indexChanged (int index);
-	void setWindowSize (QSize windowSize);
-signals:
-	void hideFullScreenUi();
-public slots:
-	void zoomImage(int zoomFactor);
-	void decodedImageAvailable();
-	void initialZoomFactor(int initZoomFactor);
-private:
-	void initializeZoomControl(int zoomFactor);
-	void resetZoomControl();
-	void updateItemPosition();
-	void calculatePanOffset();
-	void checkandAdjustImageBoundaries(QPointF &finalPos, QPointF undefferedPos);
-
-private:
-	QGraphicsPixmapItem *mZoomItem;
-	QGraphicsWidget *mZoomWidget;
-	GlxImageDecoderWrapper* mImageDecoder;
-	HbIconItem *mBlackBackgroundItem;
-	QSizeF mCurrentSize;
-	QSizeF mItemSize;
-	GlxMediaModel *mModel; //not owned
-	int mInitialZoomFactor;
-	int mCurrentZoomFactor;
-	bool mIsControlActivated;
-	bool mIsItemChanged;
-	QSize mWindowSize;
-	QPointF mPanOffset;
-};
-#endif //GLXZOOMCONTROL_h
--- a/ui/views/fullscreenview/inc/glxzoomslider.h	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +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 GLXZOOMSLIDER_H
-#define GLXZOOMSLIDER_H
-#include <QObject>
-#include <QSize>
-class HbSlider;
-class GlxMediaModel;
-class QAbstractItemModel;
-class QGraphicsItem;
-class GlxZoomSlider : public QObject
-{
-Q_OBJECT
-
-public:
-	GlxZoomSlider (QGraphicsItem *parent = NULL);
-	~GlxZoomSlider ();
-	void setModel (QAbstractItemModel *model);
-    void indexChanged (int index);
-signals:
-	void valueChanged(int newValue);
-	void initialZoomFactor(int initZoomFactor);
-public slots:
-	void toggleSliderVisibility();
-	void filterandEmitSliderValueChanges(int newValue);
-	void sliderThumbPressed();
-	void sliderThumbReleased();
-private:
-	void retrieveActualAndDisplayedSize(QSize& itemsize, QSize& displayedSize);
-	int calculateZoomFactor(QSize& itemsize, QSize& displayedSize);
-	void calculateAndInitializeFSZoomFactor();
-	HbSlider* mZoomSlider;
-	bool isSliderVisible; 
-	bool mSliderThumbPressed;
-	GlxMediaModel *mModel; //not owned
-};
-#endif //GLXZOOMSLIDER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/fullscreenview/inc/glxzoomwidget.h	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,113 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   glxzoomwidget.h
+*               definition of the class glxzoomwidget which controls the Zoom behavior of coverflow.
+*
+*/
+#ifndef GLXZOOMWIDGET_H
+#define GLXZOOMWIDGET_H
+
+#include <QObject>
+#include <QGraphicsWidget>
+#include <QPixmap>
+#include <hbscrollarea.h>
+
+class QGestureEvent;
+class QPinchGesture;
+class HbIconItem;
+class GlxImageDecoderWrapper;
+
+const int MAXZVALUE = 100;
+const int MINZVALUE = 0;
+
+class GlxZoomWidget : public HbScrollArea
+{
+    Q_OBJECT
+
+    public:
+    GlxZoomWidget (QGraphicsItem *parent = NULL);
+    ~GlxZoomWidget ();
+    void setModel (QAbstractItemModel *model) ;
+    void indexChanged(int index);
+    void setWindowSize(QSize windowSize);
+    void cleanUp();
+    void activate();
+
+    signals:
+    void pinchGestureReceived(int index);
+    void zoomWidgetMovedBackground(int index);
+
+    public slots:
+    //for Decoder support
+    void decodedImageAvailable();
+
+    protected:
+    bool sceneEvent(QEvent *event);
+    bool sceneEventFilter(QGraphicsItem *watched,QEvent *event);
+    protected slots:
+    void dataChanged(QModelIndex startIndex, QModelIndex endIndex);
+    void sendDecodeRequest(int index);
+
+    private:
+    bool executeGestureEvent(QGraphicsItem *source,QGestureEvent *event);
+    //Responsible for changing the transforms of the widget wrt the ZF and center
+	//Also adjusts the ZF, center and final size so as to respect the boundaries
+    void zoomImage(qreal zoomFactor, QPointF center);
+    //This API will adjust the gesture center to maintain boundaries
+	//called from GlxZoomWidget::zoomImage
+    void adjustGestureCenter(QPointF & gestureCenter, qreal& zoomFactor);
+    //this API will limit the max/min Zoom Size possible
+	//called from GlxZoomWidget::zoomImage
+    void limitRequiredSize(QSizeF &requiredSize);
+	//gets the latest focussed image from the model
+    void retreiveFocusedImage();
+    //finalize the transform and update the sizehint of mZoomWidget
+    void finalizeWidgetTransform();
+    //get the focused image from the model
+    QPixmap getFocusedImage();
+
+    //data members
+    private:
+    //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
+
+    //to be in sync with the model
+    QAbstractItemModel *mModel;
+    int mFocusIndex;
+
+    //size parameter
+    QSizeF mItemSize;        // the actual pixmap size. Keep it updated with latest pixmap size
+    QSizeF mStepCurrentSize; //to save the size before gesture started
+    QSizeF mCurrentSize;     //save sizes scaled by gesture
+    QSize mWindowSize;      //the window size
+    QSizeF mMinScaleSize;   //minimum posible size
+    QSizeF mMinDecScaleSize;   //the Minimum scale limit after which the image scaling down should be decelerated
+    QSizeF mMaxScaleSize;   // the maximum scale limit
+    QSizeF mMaxScaleDecSize;   // the Maximum scale limit after which the image scaling should be decelerated
+
+    //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;
+
+};
+#endif  //GLXZOOMWIDGET_H
--- a/ui/views/fullscreenview/src/glxcoverflow.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/fullscreenview/src/glxcoverflow.cpp	Mon May 17 13:35:26 2010 +0530
@@ -42,7 +42,9 @@
        mItemSize (QSize(0,0)),
        mModel ( NULL),
        mMoveDir(NO_MOVE),
-       mSpeed ( GLX_COVERFLOW_SPEED )
+       mSpeed ( GLX_COVERFLOW_SPEED ),
+	   mZoomOn(false),
+	   mMultitouchFilter(NULL)
 {
 //TO:DO through exception
    qDebug("GlxCoverFlow::GlxCoverFlow");
@@ -52,11 +54,17 @@
    connect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ), Qt::QueuedConnection );   
 }
 
+void GlxCoverFlow::setMultitouchFilter(QGraphicsItem* mtFilter)
+{
+	mMultitouchFilter = mtFilter;
+}
 void GlxCoverFlow::setCoverFlow()
 {
     qDebug("GlxCoverFlow::setCoverFlow");
     for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) {
         mIconItem[i] = new HbIconItem(this);
+        mIconItem[i]->grabGesture(Qt::PinchGesture, Qt::ReceivePartialGestures);
+        mIconItem[i]->installSceneEventFilter(mMultitouchFilter);
         mIconItem[i]->setBrush(QBrush(Qt::black));
         mIconItem[i]->setSize(QSize(0,0));
     }
@@ -286,7 +294,9 @@
             mSelItemIndex = ( ++mSelItemIndex ) % NBR_ICON_ITEM;
             selIndex = ( mSelItemIndex + 2 ) % NBR_ICON_ITEM;
             updateIconItem( mSelIndex + 2, selIndex, width * 2 ) ;
+			if(!mZoomOn) {
             emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
+			}
         }
         mMoveDir = NO_MOVE;
         mBounceBackDeltaX = 10;
@@ -338,7 +348,9 @@
             mSelItemIndex = ( mSelItemIndex == 0 ) ?  NBR_ICON_ITEM -1 : --mSelItemIndex;
             selIndex = ( mSelItemIndex + 3 ) % NBR_ICON_ITEM;
             updateIconItem( mSelIndex - 2, selIndex, - width * 2 ) ;
+			if(!mZoomOn) {
             emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
+			}
         }
         mMoveDir = NO_MOVE;
         mBounceBackDeltaX = 10;
@@ -542,3 +554,13 @@
     }
     return substate;
 }
+void GlxCoverFlow::zoomStarted(int index)
+{
+	mZoomOn = true;	
+}
+void GlxCoverFlow::zoomFinished(int index)
+{ 
+	mZoomOn = false;
+	indexChanged(index);
+
+}
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon May 17 13:35:26 2010 +0530
@@ -29,6 +29,7 @@
 #include <QAbstractItemModel>
 #include <hbabstractviewitem.h>
 #include <hbiconitem.h>
+#include <QCoreApplication>
 
 //User Includes
 #include "glxlog.h"
@@ -42,7 +43,7 @@
 #include "glxtvoutwrapper.h"
 #include "glxfullscreenview.h" 
 #include "glxcommandhandlers.hrh"
-//#include "glxzoomwidget.h"
+#include "glxzoomwidget.h"
 
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
@@ -65,6 +66,7 @@
 	mFlipAction(NULL),
 	mSendAction(NULL),
 	mDeleteAction(NULL),
+	mZoomWidget(NULL),
 	mUseImageAction(NULL)
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
@@ -95,7 +97,9 @@
     // to make the widget light weight in order to make
     // transition smooth 
     mCoverFlow->partiallyCreate( model, screenSize());
-    setItemVisible(Hb::AllItems, FALSE) ;
+	
+    setStatusBarVisible(FALSE);
+    setTitleBarVisible(FALSE);
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_INITIALIZEVIEW_EXIT );
 }
@@ -107,6 +111,8 @@
     //Load the Coverflow and image strip widget    
     mCoverFlow = qobject_cast<GlxCoverFlow*> (mDocLoader->findWidget(GLXFULLSCREEN_COVERFLOW));
 
+	 mZoomWidget  =  qobject_cast<GlxZoomWidget*> (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET));
+	 mCoverFlow->setMultitouchFilter(mZoomWidget);
     //initialise the cover flow for basic connections and the rest
     mCoverFlow->setCoverFlow();
 
@@ -174,12 +180,16 @@
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATE_ENTRY );    
 
-    setItemVisible(Hb::AllItems, FALSE) ;
+    setStatusBarVisible(FALSE);
+    setTitleBarVisible(FALSE);
+	
 
 //for zoom might not be required after wk15 release
 	mWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents,true); 
 	mWindow->viewport()->grabGesture(Qt::PinchGesture);
 	
+	QCoreApplication::instance()->installEventFilter(this);
+
     if(!mCoverFlow){
         loadWidgets();  //retrives the widgets
     }
@@ -236,7 +246,7 @@
     
 	//Clean up the rest of the resources allocated
     cleanUp();
-
+    QCoreApplication::instance()->removeEventFilter(this);
     //deletes the iconitems in the coverflow   
     mCoverFlow->ClearCoverFlow();
 
@@ -270,6 +280,11 @@
         delete mTvOutWrapper;
         mTvOutWrapper = NULL;
     }
+    if(mZoomWidget)
+    {
+        mZoomWidget->cleanUp();
+
+    }
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_CLEANUP_EXIT );
 }
 
@@ -292,7 +307,7 @@
     mModel = model;     
 	setModelContext();  
     setHdmiModel(mModel);
-
+	mZoomWidget->setModel(mModel);  
     mCoverFlow->setModel(mModel);
     setImageStripModel();
     if(getSubState() == IMAGEVIEWER_S)
@@ -300,7 +315,8 @@
         setTitle("Image Viewer");
         }
 	else if(getSubState() == FETCHER_S){
-		setItemVisible(Hb::AllItems, TRUE) ;
+		setStatusBarVisible(TRUE);
+        setTitleBarVisible(TRUE);
 	}
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODEL_EXIT );
 }
@@ -365,7 +381,9 @@
         }
         
         mFullScreenToolBar->show();
-        setItemVisible(Hb::AllItems, TRUE) ;
+		setStatusBarVisible(TRUE);
+        setTitleBarVisible(TRUE);
+       
 
         if ( mImageStrip && getSubState() != IMAGEVIEWER_S) {
             mImageStrip->show(); 
@@ -395,7 +413,8 @@
     
     mUiOff = TRUE;
 	if ( getSubState() != FETCHER_S ) {
-		setItemVisible(Hb::AllItems, FALSE) ;
+		setStatusBarVisible(FALSE);
+        setTitleBarVisible(FALSE);
 	}
     if ( mImageStrip && ( getSubState() != IMAGEVIEWER_S && getSubState() != FETCHER_S )) {
         HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapHide"), this, "effectFinished" );
@@ -421,7 +440,8 @@
        }
        return;
     }         
-    mModel->setData( index, index.row(), GlxFocusIndexRole );    
+    mModel->setData( index, index.row(), GlxFocusIndexRole );  
+	mZoomWidget->indexChanged(index.row());  
     if (mTvOutWrapper){
     // for the image changed on swipe
     mTvOutWrapper->setImagetoHDMI();
@@ -439,6 +459,7 @@
        return;
     }         
     mModel->setData( index, index.row(), GlxFocusIndexRole );
+	mZoomWidget->indexChanged(index.row());
     mCoverFlow->indexChanged(index.row());
     mImageStrip->scrollTo(index, HbGridView::EnsureVisible );
     if (mTvOutWrapper){
@@ -587,7 +608,9 @@
     QSize sz = screenSize();
 
     mCoverFlow->setItemSize(sz);
- 	OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETLAYOUT_EXIT );
+ 	mZoomWidget->setWindowSize(sz);
+
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETLAYOUT_EXIT );
 }
 
 void GlxFullScreenView::addConnection()
@@ -611,6 +634,11 @@
         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(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
 
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ADDCONNECTION_EXIT );
@@ -657,6 +685,10 @@
     if(mUseImageAction) {
         disconnect(mUseImageAction, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) );  
     }
+	if(mCoverFlow && mZoomWidget) {
+		disconnect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) );
+		disconnect(mZoomWidget,SIGNAL( zoomWidgetMovedBackground(int) ), mCoverFlow, SLOT( zoomFinished(int) ) );
+	}
     
 	disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationChanged(Qt::Orientation)));
 
@@ -683,22 +715,10 @@
 	cleanUp();
 	
 	delete mIconItem ;
-	mIconItem = NULL;
-    
-	if(mImageStrip) {
-        delete mImageStrip;
-        mImageStrip = NULL;
-    }
-
-    if(mFullScreenToolBar) {
-        delete mFullScreenToolBar;
-        mFullScreenToolBar = NULL;
-    }
-
-    if(mCoverFlow) {
-        delete mCoverFlow;
-        mCoverFlow = NULL;
-    }
+    delete mImageStrip;
+    delete mFullScreenToolBar;
+    delete mCoverFlow;
+    delete mZoomWidget;
 
     if(mDocLoader != NULL) {
         mDocLoader->reset();
@@ -760,19 +780,17 @@
 	return substate;
 }
 
-bool GlxFullScreenView::event(QEvent *event)
+bool GlxFullScreenView::eventFilter(QObject *obj, QEvent *ev)
 {
-    GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", event->type());
-    if ( event->type() ==  QEvent::WindowActivate && mCoverFlow) {
-        if (mTvOutWrapper){
+    GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", ev->type());
+    if ( ev->type() ==  QEvent::ApplicationActivate && mTvOutWrapper) {
+        GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi");
         mTvOutWrapper->setToNativeMode();    
-        }
     }
-    if ( event->type() ==  QEvent::WindowDeactivate && mCoverFlow) {
-        if (mTvOutWrapper){
+    if ( ev->type() ==  QEvent::ApplicationDeactivate && mTvOutWrapper) {
+        GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi");
         mTvOutWrapper->setToCloningMode();    
-        }
     }
-    return HbView::event(event);
+    return HbView::eventFilter(obj,ev);
 }
 
--- a/ui/views/fullscreenview/src/glxzoomcontrol.cpp	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,316 +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 "glxzoomcontrol.h"
-#include "glximagedecoderwrapper.h"
-#include "glxmodelparm.h"
-#include <hbicon.h>
-#include <glxmediamodel.h>
-#include <QtDebug>
-#include <hbinstance.h>
-#include <hbiconitem.h>
-#include <QDebug>
-
-GlxZoomControl::GlxZoomControl(QGraphicsItem *parent) : HbScrollArea(parent),mIsControlActivated(false), mIsItemChanged(true)
-{
-	setScrollDirections(Qt::Horizontal | Qt::Vertical);
-	hide();
-	setZValue(6);
-	setScrollingStyle(PanOrFlick);
-	mBlackBackgroundItem = new HbIconItem(parent);
-	mBlackBackgroundItem->setBrush(QBrush(Qt::black));
-	mBlackBackgroundItem->hide();
-	mZoomWidget = new QGraphicsWidget(this);
-	mZoomItem = new QGraphicsPixmapItem(mZoomWidget);
-	mImageDecoder = new GlxImageDecoderWrapper;	
-
-}
-
-GlxZoomControl::~GlxZoomControl()
-{
-	resetZoomControl();
-	delete mZoomItem;
-	delete mZoomWidget;
-	mImageDecoder->resetDecoder();
-	delete mImageDecoder;
-	delete mBlackBackgroundItem;
-
-}
-
-void GlxZoomControl::zoomImage(int zoomFactor)
-{
-	qDebug("@@@GlxZoomControl::zoomImage  ZF=%d, InitialZf=%d", zoomFactor, mInitialZoomFactor);
-	if(mIsItemChanged)	{
-		initializeZoomControl(zoomFactor);
-	}
-	if(zoomFactor > mInitialZoomFactor) {
-
-		qreal zoomPercent = qreal(zoomFactor)/100.00;
-		QSizeF requiredSize = QSize(qreal(mItemSize.width() * zoomPercent), qreal(mItemSize.height() * zoomPercent ));
-		calculatePanOffset();
-		mZoomWidget->scale(requiredSize.width()/mCurrentSize.width(), requiredSize.height()/mCurrentSize.height());
-		qDebug()<<"GlxZoomControl::zoomImage scaling factor"<<requiredSize.width()/mCurrentSize.width()<<requiredSize.height()/mCurrentSize.height();
-		qDebug()<<"GlxZoomControl::zoomImage required Size"<<requiredSize.width()<<requiredSize.height();
-		qDebug()<<"GlxZoomControl::zoomImage current Size"<<mCurrentSize.width()<<mCurrentSize.height();
-		qDebug()<<"GlxZoomControl::zoomImage item Size"<<mItemSize.width()<<mItemSize.height();
-
-		//mZoomWidget->setGeometry(QRectF(-0.5*QPointF(requiredSize.width(),requiredSize.height()),requiredSize ));
-		//mZoomWidget->setPos(mWindowSize.width()/2 - requiredSize.width()/2,mWindowSize.height()/2 - requiredSize.height()/2);
-		mCurrentSize = requiredSize;	
-		mCurrentZoomFactor = zoomFactor;
-		updateItemPosition();
-		if(!mIsControlActivated) {
-			show();
-			mBlackBackgroundItem->show();
-			mIsControlActivated = true;
-			emit hideFullScreenUi();
-		}
-	}
-	if(zoomFactor < mInitialZoomFactor)
-	{
-		mBlackBackgroundItem->hide();
-		hide();
-		mPanOffset.setX(0);
-		mPanOffset.setY(0);
-		updateItemPosition();
-		mIsControlActivated = false;
-		//mZoomWidget->resetTransform();
-	}
-}
-
-void GlxZoomControl::initializeZoomControl(int zoomFactor)
-{
-	 qDebug("@@@GlxZoomControl::initializeZoomControl Zoom Factor %d", zoomFactor);
-	 if(mIsControlActivated || zoomFactor < mInitialZoomFactor)
-	 {
-		return;
-	 }
-	 qDebug("@@@GlxZoomControl::initializeZoomControl Context not activated yet");
-	 //get the image path and request for a decoded pixmap first
-	 QString imagePath = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxUriRole)).value<QString>();
-	 mImageDecoder->decodeImage(imagePath);
-	 connect(mImageDecoder, SIGNAL(pixmapDecoded()), this, SLOT(decodedImageAvailable()));
-	 QVariant variant = mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxFsImageRole);
-	 if ( variant.isValid() &&  variant.canConvert<HbIcon> () ) {
-		 qDebug("@@@GlxZoomControl::initializeZoomControl valid icon");
-		 QIcon itemIcon = variant.value<HbIcon>().qicon();
-		 //QSize windowSize(360,640);
-		 QSize itemSize = itemIcon.actualSize(mWindowSize);
-		 QPixmap itemPixmap = itemIcon.pixmap(itemSize);
-		 //if(itemPixmap.isNull())
-		 qDebug("@@@GlxZoomControl::initializeZoomControl Null Pixmap");
-		 //set item size to the actual size
-		 mItemSize = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxDimensionsRole)).value<QSize>();
-		 mCurrentSize = itemPixmap.size();
-		 mZoomItem->setPixmap(itemPixmap);
-		 mZoomWidget->setGeometry(QRectF(-0.5*QPointF(mCurrentSize.width(),mCurrentSize.height()),mItemSize ));
-		 mZoomWidget->setPos(mWindowSize.width()/2 - mCurrentSize.width()/2,mWindowSize.height()/2 - mCurrentSize.height()/2);
-		 //show();
-         //mIsControlActivated = true;
-		 mIsItemChanged = false;
-		 setContentWidget(mZoomWidget);
-	 }
-}
-
-void GlxZoomControl::setModel(QAbstractItemModel *model)
-{
-	GlxMediaModel *glxModel = dynamic_cast<GlxMediaModel *>(model);
-    if ( glxModel ==NULL ||  glxModel == mModel) {
-        return ;
-    }
-	mModel = glxModel;
-}
-
-void GlxZoomControl::resetZoomControl()
-{
-	qDebug("@@@GlxZoomControl::resetZoomControl");
-	mBlackBackgroundItem->hide();
-	hide();
-	mZoomWidget->resetTransform();
-	mZoomItem->setPixmap(QPixmap());
-	mItemSize = QSizeF(0,0);
-	mCurrentSize = mItemSize;
-	mIsControlActivated = false;
-	mIsItemChanged = true;
-	mInitialZoomFactor = 0;
-	mPanOffset.setX(0);
-	mPanOffset.	setY(0);
-	mImageDecoder->resetDecoder();		
-}
-
-void GlxZoomControl::indexChanged(int index)
-{
-	Q_UNUSED(index);
-	qDebug("@@@GlxZoomControl::indexChanged");
-	resetZoomControl();
-
-}
-
-void GlxZoomControl::decodedImageAvailable()
-{
-	//new bitmap with better resolution is available
-	//so set it to the item
-	QPixmap decodedPixmap = mImageDecoder->getPixmap();
-	if(decodedPixmap.isNull()){
-		return;
-	}
-	mCurrentSize = decodedPixmap.size();
-	//this is important if not done then old transforms will be applied on the new image
-	mZoomWidget->resetTransform();
-	mZoomItem->setPixmap(decodedPixmap);
-	QPointF undefferedPos;
-	undefferedPos.setX(mWindowSize.width()/2 - mCurrentSize.width()/2);
-	undefferedPos.setY(mWindowSize.height()/2 - mCurrentSize.height()/2);
-	mZoomWidget->setGeometry(QRectF(undefferedPos,mCurrentSize )); //temporarily setting it to an undeffered position
-	//update the image transforms
-	zoomImage(mCurrentZoomFactor);
-}
-
-void GlxZoomControl::initialZoomFactor(int initZoomFactor)
-{
-	qDebug("@@@GlxZoomControl::initialZoomFactor initZoomFactor=%d", initZoomFactor );
-	resetZoomControl();
-	mInitialZoomFactor = initZoomFactor;
-}
-
-void GlxZoomControl::setWindowSize (QSize windowSize)
-{
-	if(mWindowSize != windowSize) {
-		mWindowSize = windowSize;
-		mBlackBackgroundItem->setSize(mWindowSize);
-		mBlackBackgroundItem->setPos(0,0);
-		if(!mIsItemChanged) {
-			//first calculate offset because after orientation change this value will be lost
-			calculatePanOffset();
-			//update the item position WRT the new window size
-			updateItemPosition();
-
-		}
-	}
-}
-void GlxZoomControl::updateItemPosition()
-{
-	qreal zoomPercent = qreal(mCurrentZoomFactor)/100.00;
-	QPointF undefferedPos;
-	//calculate position if no panning was done
-	undefferedPos.setX(mWindowSize.width()/2 - mCurrentSize.width()/2);
-	undefferedPos.setY(mWindowSize.height()/2 - mCurrentSize.height()/2);
-	QPointF offset = mPanOffset;
-	//convert offset value WRT current zoomFactor
-	offset *= zoomPercent;
-	QPointF finalPos = undefferedPos + offset;
-	//check for boundry conditions 
-	checkandAdjustImageBoundaries(finalPos, undefferedPos);
-	qDebug()<<"GlxZoomControl::updateItemPosition offset x%d, y%d "<<offset.x()<< offset.y();
-	//mZoomWidget->setPos(undefferedPos + offset);
-	mZoomWidget->setGeometry(QRectF(finalPos,mCurrentSize ));
-}
-
-void GlxZoomControl::calculatePanOffset()
-{
-	qreal zoomPercent = qreal(mCurrentZoomFactor)/100.00;
-	QPointF currentPos = mZoomWidget->pos();
-	//calculate position if no panning was done
-	QPointF undefferedPos;
-	undefferedPos.setX(mWindowSize.width()/2 - mCurrentSize.width()/2);
-	undefferedPos.setY(mWindowSize.height()/2 - mCurrentSize.height()/2);
-	//get the offset with the current zoomFactor which is the difference between currentPos and undefferedPos
-	QPointF offset = currentPos - undefferedPos ;
-	qDebug()<<"GlxZoomControl::calculatePanOffset current Pos x%d, y%d undeffered x %d, y %d"<<currentPos.x()<< currentPos.y()<< undefferedPos.x()<< undefferedPos.y();
-    mPanOffset = offset;
-	//convert the offset value WRT a 100% zoomed image as that will be used for reference 
-	mPanOffset /= zoomPercent;
-	qDebug()<<"GlxZoomControl::calculatePanOffset mPanOffset x%d, y%d "<<mPanOffset.x()<< mPanOffset.y();
-}
-
-void GlxZoomControl::checkandAdjustImageBoundaries(QPointF &finalPos, QPointF undefferedPos)
-{
-	//check for boundary conditions in X Axis
-
-	//for Left side
-	//since the image is positioned WRT to screens top left corner(0,0) so if the images top left corner's X (finalPos.x()) is positive
-	//then boundry conditions for image to be on the leftmost side is met
-	if(finalPos.x() > 0) {
-		//chk if the original image position without any offset has also reached boundry conditions
-		if(undefferedPos.x() < 0) {
-		//set the image to the leftmost axis on the screen
-		finalPos.setX(0);
-		}
-		//if original image position without any offset has also reached boundry conditions then use the undefferedPos 
-		else {
-			finalPos.setX(undefferedPos.x());
-			//set offset to 0 as it is of no use anymore
-			mPanOffset.setX(0);
-		}
-	}
-
-	//Right side
-	//since the image is positioned WRT to screens top left corner(0,0) so if image Position added to the image dimensions is 
-	//greater than the screen dimensions then boundfy conditions for rightmost and lowest points are met.
-	//for X axis width will be of our concern
-	if((finalPos.x() + mCurrentSize.width()) <  mWindowSize.width()){
-		//if original image position without any offset has also reached boundry conditions then use the undefferedPos 
-		if ((undefferedPos.x() + mCurrentSize.width()) <  mWindowSize.width()) 	{
-			finalPos.setX(undefferedPos.x());
-			//set offset to 0 as it is of no use anymore
-			mPanOffset.setX(0);			
-		}
-		else {
-			//set the image to the rightmost axis on the screen
-			finalPos.setX(mWindowSize.width()- mCurrentSize.width());
-		}
-	}
-
-
-	//check for boundary conditions in Y Axis
-
-	//top
-	//since the image is positioned WRT to screens top left corner(0,0) so if the images top left corner's Y (finalPos.y()) is positive
-	//then boundry conditions for image to be on the topmost side is met
-	if(finalPos.y() > 0) {
-		//chk if the original image position without any offset has also reached boundry conditions
-		if(undefferedPos.y() < 0) {
-		//set the image to the topmost axis on the screen
-		finalPos.setY(0);
-		}
-		//if original image position without any offset has also reached boundry conditions then use the undefferedPos 
-		else {
-			finalPos.setY(undefferedPos.y());
-			//set offset to 0 as it is of no use anymore
-			mPanOffset.setY(0);
-		}
-	}
-
-	//bottom
-	//since the image is positioned WRT to screens top left corner(0,0) so if image Position added to the image dimensions is 
-	//greater than the screen dimensions then boundfy conditions for rightmost and lowest points are met.
-	//for Y axis height will be of our concern
-
-	if((finalPos.y() + mCurrentSize.height()) <  mWindowSize.height()){
-		//if original image position without any offset has also reached boundry conditions then use the undefferedPos 
-		if ((undefferedPos.y() + mCurrentSize.height()) <  mWindowSize.height()) 	{
-			finalPos.setY(undefferedPos.y());
-			//set offset to 0 as it is of no use anymore
-			mPanOffset.setY(0);			
-		}
-		else {
-			//set the image to the lowest axis on the screen
-			finalPos.setY(mWindowSize.height()- mCurrentSize.height());
-		}
-	}
-
-}
--- a/ui/views/fullscreenview/src/glxzoomslider.cpp	Mon May 03 16:56:16 2010 +0530
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +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 "glxzoomslider.h"
-#include <hbslider.h>
-#include <glxmediamodel.h>
-#include <QAbstractItemModel>
-#include <QGraphicsItem>
-#include <QtDebug>
-#include "glxmodelparm.h"
-#include <QDebug>
-
-GlxZoomSlider::GlxZoomSlider(QGraphicsItem *parent)
-{
-	mZoomSlider = new HbSlider(Qt::Horizontal,parent);
-	mZoomSlider->hide();
-	mZoomSlider->setRange(0, 400);
-	mZoomSlider->setSingleStep(25);
-	mZoomSlider->setSliderPosition(100);
-	mZoomSlider->setZValue(7);
-	mZoomSlider->setPos(50,100);
-    mZoomSlider->resize(300.0, 0.0 );
-	isSliderVisible = false;
-	mSliderThumbPressed = false;
-	connect(mZoomSlider, SIGNAL(valueChanged(int)), this, SLOT(filterandEmitSliderValueChanges(int)));
-	connect(mZoomSlider, SIGNAL(sliderPressed()), this, SLOT(sliderThumbPressed()));
-	connect(mZoomSlider, SIGNAL(sliderReleased()), this, SLOT(sliderThumbReleased()));
-}
-
-GlxZoomSlider::~GlxZoomSlider()
-{
-	disconnect(mZoomSlider, SIGNAL(valueChanged(int)), this, SLOT(filterandEmitSliderValueChanges(int)));
-	disconnect(mZoomSlider, SIGNAL(sliderPressed()), this, SLOT(sliderThumbPressed()));
-	disconnect(mZoomSlider, SIGNAL(sliderReleased()), this, SLOT(sliderThumbReleased()));
-	delete mZoomSlider;
-	isSliderVisible = false;
-}
-
-void GlxZoomSlider::setModel (QAbstractItemModel *model)
-{
-	GlxMediaModel *glxModel = dynamic_cast<GlxMediaModel *>(model);
-    if ( glxModel ==NULL ||  glxModel == mModel) {
-        return ;
-    }
-	mModel = glxModel;
-
-}
-
-void GlxZoomSlider::indexChanged (int index)
-{
-	Q_UNUSED(index);
-	mZoomSlider->hide();
-	isSliderVisible = false;
-}
-
-void GlxZoomSlider::toggleSliderVisibility()
-{
-	if(isSliderVisible) {
-		mZoomSlider->hide();
-		isSliderVisible = false;
-	}
-	else {
-		calculateAndInitializeFSZoomFactor();
-		mZoomSlider->show();
-		isSliderVisible = true;
-	}
-}
-
-void GlxZoomSlider::retrieveActualAndDisplayedSize(QSize& itemSize, QSize& displayedSize)
-{
-	itemSize = (mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxDimensionsRole)).value<QSize>();
-	qDebug()<<"GlxZoomSlider::retrieveActualAndDisplayedSize"<<itemSize.width()<<itemSize.height();
-	 QVariant variant = mModel->data(mModel->index(mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>(),0),GlxFsImageRole);
-	 if ( variant.isValid() &&  variant.canConvert<HbIcon> () ) {
-		 QIcon itemIcon = variant.value<HbIcon>().qicon();
-		 QSize windowSize(360,640);
-		 QSize itemSize = itemIcon.actualSize(windowSize);
-		 QPixmap itemPixmap = itemIcon.pixmap(itemSize);
-		 displayedSize = itemPixmap.size();
-		 qDebug()<<"GlxZoomSlider::retrieveActualAndDisplayedSize Display"<<displayedSize.width()<<displayedSize.height();
-		 }
-
-}
-int GlxZoomSlider::calculateZoomFactor(QSize& itemSize, QSize& displayedSize)
-{
-	int zoomFactor = 100 * (displayedSize.width())/(itemSize.width());
-	return zoomFactor;
-}
-
-void GlxZoomSlider::calculateAndInitializeFSZoomFactor()
-{
-	QSize itemSize,displaySize;
-	retrieveActualAndDisplayedSize(itemSize, displaySize);
-	int sliderPosition = calculateZoomFactor(itemSize,displaySize);
-	emit initialZoomFactor(sliderPosition);
-	mZoomSlider->setSliderPosition(sliderPosition);
-}
-
-void GlxZoomSlider::filterandEmitSliderValueChanges(int newValue)
-{
-	if (mSliderThumbPressed){
-		emit valueChanged(newValue);
-	}
-	//else {
-		qDebug()<<"GlxZoomSlider::filterandEmitSliderValueChanges stray signal"<<newValue;
-	//}
-}
-
-void GlxZoomSlider::sliderThumbPressed()
-{
-	qDebug()<<"GlxZoomSlider::sliderThumbPressed";
-	mSliderThumbPressed = true;
-}
-
-void GlxZoomSlider::sliderThumbReleased()
-{
-	qDebug()<<"GlxZoomSlider::sliderThumbReleased";
-	mSliderThumbPressed = false;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ui/views/fullscreenview/src/glxzoomwidget.cpp	Mon May 17 13:35:26 2010 +0530
@@ -0,0 +1,411 @@
+ /*
+* 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:   glxzoomwidget.cpp
+*               description of the class GlxGlxZoomWidget which controls the Zoom behavior of coverflow.
+*
+*/
+#include <QPinchGesture>
+#include <hbiconitem.h>
+#include <glxmediamodel.h>
+#include "glximagedecoderwrapper.h"
+#include "glxmodelparm.h"
+#include "glxzoomwidget.h"
+
+GlxZoomWidget::GlxZoomWidget(QGraphicsItem *parent):HbScrollArea(parent), mModel(NULL), mImageDecodeRequestSend(false), mPinchGestureOngoing(false), mDecodedImageAvailable(false)
+{
+    grabGesture(Qt::PinchGesture);
+    setAcceptTouchEvents(true) ;
+    setFrictionEnabled(false);
+    setZValue(MINZVALUE);
+    //create the child items and background
+    mZoomWidget = new QGraphicsWidget(this);
+    mZoomItem = new QGraphicsPixmapItem(mZoomWidget);
+    mZoomItem->setTransformationMode(Qt::SmoothTransformation);
+    //the black background
+    //replace when a proper substitute for setting backgrounds is known
+    mBlackBackgroundItem = new HbIconItem(this);
+    mBlackBackgroundItem->setBrush(QBrush(Qt::black));
+    mBlackBackgroundItem->hide();
+    //does not work so is commented
+    //setBackgroundItem(mBlackBackgroundItem);
+
+    //initializing the image decoder
+    mImageDecoder = new GlxImageDecoderWrapper;
+    connect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ), Qt::QueuedConnection );
+}
+
+GlxZoomWidget::~GlxZoomWidget()
+{
+    //disconnect all existing signals
+    disconnect(this,SIGNAL( pinchGestureReceived(int) ), this, SLOT( sendDecodeRequest(int) ) );
+    //no Null checks required
+    delete mZoomItem;
+//    delete mZoomWidget; //as this is a content widegt it will automatically be deleted
+    delete mBlackBackgroundItem;
+    //reset the decoder to cancel pending tasks
+    if(mImageDecoder) {
+        mImageDecoder->resetDecoder();
+        delete mImageDecoder;
+    }
+}
+
+void GlxZoomWidget::setModel (QAbstractItemModel *model)
+{
+    if(model)
+    {
+        mModel = model;
+        retreiveFocusedImage(); //Update mZoomItem with focused Image
+        connect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
+    }
+}
+
+void GlxZoomWidget::setWindowSize(QSize windowSize)
+{
+    mWindowSize = windowSize;
+    mBlackBackgroundItem->setGeometry(QRectF(QPointF(0,0), mWindowSize));
+    //try to reset the max and min zoomed size here
+}
+
+void GlxZoomWidget::indexChanged(int index)
+{
+    Q_UNUSED(index);
+    if(mFocusIndex != index) {
+        mImageDecoder->resetDecoder();//reset the decoder first to cancel pending tasks
+        mImageDecodeRequestSend = false;
+        mDecodedImageAvailable = false;
+        retreiveFocusedImage();  //Update mZoomItem with focused Image
+    }
+}
+
+bool GlxZoomWidget::sceneEvent(QEvent *event)
+{
+    bool consume(false);
+    if (event->type() == QEvent::Gesture) {
+        consume = executeGestureEvent(this, static_cast<QGestureEvent*>(event));
+    }
+    if(!consume)
+    {
+        consume = HbScrollArea::sceneEvent(event);
+    }
+    return consume;
+}
+
+bool GlxZoomWidget::sceneEventFilter(QGraphicsItem *watched,QEvent *event)
+{
+     qDebug("GlxCoverFlow::eventFilter " );
+    bool consume = false;
+    if (event->type() == QEvent::Gesture) {
+        consume = executeGestureEvent(watched, static_cast<QGestureEvent*>(event));
+    }
+
+    if(!consume) {
+        consume = HbScrollArea::sceneEventFilter(watched,event);
+    }
+    return consume;
+
+}
+
+bool GlxZoomWidget::executeGestureEvent(QGraphicsItem *source,QGestureEvent *event)
+{
+     if (QGesture *pinch = event->gesture(Qt::PinchGesture))  {
+       QPinchGesture* pinchG = static_cast<QPinchGesture *>(pinch);
+       QPinchGesture::ChangeFlags changeFlags = pinchG->changeFlags();
+       if (changeFlags & QPinchGesture::ScaleFactorChanged) {
+            mPinchGestureOngoing = true;
+            //bring the zoom widget to foreground
+            setZValue(MAXZVALUE);
+            //show the black background
+            mBlackBackgroundItem->setParentItem(parentItem());
+            mBlackBackgroundItem->setZValue(MAXZVALUE - 1);
+            mBlackBackgroundItem->show();
+
+            //retreive the gesture values
+            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);
+            zoomImage(value, sceneGestureCenter);
+
+        }
+       if (pinchG->state() == Qt::GestureStarted) {
+           emit pinchGestureReceived(mFocusIndex);
+       }
+
+       if (pinchG->state() == Qt::GestureFinished) {
+           if(mStepCurrentSize != mCurrentSize) {
+               //For giving a spring effect when user has zoomed more than normal.
+               if(mStepCurrentSize.width() > mMaxScaleDecSize.width())   {
+                   //scale the image to limited size
+                   qreal value = mMaxScaleDecSize.width()/mCurrentSize.width();
+                   QPointF center(mWindowSize.width()/2, mWindowSize.height()/2);
+                   QPointF sceneGestureCenter = source->sceneTransform().map(center);
+                   zoomImage(value, sceneGestureCenter);
+               }
+               mPinchGestureOngoing = false;
+                //finalize the transforms to the geometry else panning will not work
+                finalizeWidgetTransform();
+           }
+//push the Zoom widget to background when zoomed image size nears FS image
+           if(mStepCurrentSize.width() <= mMinDecScaleSize.width()*1.3)  {
+               mBlackBackgroundItem->hide();
+               //push the widget back to background
+               setZValue(MINZVALUE);
+               emit zoomWidgetMovedBackground(mFocusIndex);
+               //do not reset the transform here as it will then zoom-in the widget to decoded image size
+           }
+       }
+       //gesture accepted
+       return true;
+     }
+     //gesture rejected
+     if(!mPinchGestureOngoing) {
+         return false; 
+     }
+     return true;
+
+}
+
+void GlxZoomWidget::zoomImage(qreal zoomFactor, QPointF center)
+{
+    adjustGestureCenter(center, zoomFactor);
+    QSizeF requiredSize(mCurrentSize.width()*zoomFactor, mCurrentSize.height()*zoomFactor);
+    limitRequiredSize(requiredSize);
+    if(requiredSize != mCurrentSize) {
+        QTransform zoomTransform = mZoomWidget->transform();
+        QPointF transformedCenter = mZoomWidget->sceneTransform().inverted().map(center);
+        zoomTransform.translate(transformedCenter.x(),transformedCenter.y());
+        zoomTransform.scale(requiredSize.width()/mCurrentSize.width(), requiredSize.height()/mCurrentSize.height());
+        zoomTransform.translate(-transformedCenter.x(),-transformedCenter.y());
+        mZoomWidget->setTransform(zoomTransform);
+        mCurrentSize = requiredSize;
+    }
+
+}
+
+
+void GlxZoomWidget::limitRequiredSize(QSizeF &requiredSize)
+{
+    if(requiredSize.width() > mMaxScaleSize.width() ) {
+        requiredSize = mMaxScaleSize ;
+    }
+    else if(requiredSize.width() < mMinDecScaleSize.width() ) {
+        requiredSize = mMinDecScaleSize ;
+    }
+
+
+}
+
+//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)
+{
+    if(zoomFactor > 1 &&zoomFactor > 1.2 )  {
+        zoomFactor = 1.2;
+    }
+
+    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() )
+    {
+        gestureCenter.setX(mWindowSize.width()/2);
+
+    }
+    if(mCurrentSize.height() <= mWindowSize.height())
+    {
+        gestureCenter.setY(mWindowSize.height()/2);
+
+    }
+    //maintains the boundary of the edges for zoom out conditions
+    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) {
+                //stick the gesture to the left corner
+                gestureCenter.setX(itemOriginPos.x());
+            }
+        }
+        //Check if the right boundry can be adjusted
+        if(itemOriginPos.x()+ mCurrentSize.width() <= mWindowSize.width()) {
+                //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());
+            }
+
+        }
+    }
+    //control the zoom Factor to boundaries
+    if(mCurrentSize.width() > mWindowSize.width() && requiredSize.width() <= mWindowSize.width())
+    {
+        zoomFactor =  mWindowSize.width()/mCurrentSize.width();
+
+    }
+    else if(mCurrentSize.height() > mWindowSize.height() && requiredSize.height() <= mWindowSize.height())
+    {
+        zoomFactor =  mWindowSize.height()/mCurrentSize.height();
+
+    }
+
+    //reduce the ZF so as to show a decelerated effect at max/min levels
+
+    if(mCurrentSize.width() > mMaxScaleDecSize.width() && zoomFactor > 1 ) {
+        zoomFactor = 1.0 + ((zoomFactor-1.0)/6) ;
+    }
+        if(mCurrentSize.width() < mMinDecScaleSize.width() && zoomFactor < 1 ) {
+        zoomFactor = 1.0 - ((1.0-zoomFactor)/6) ;
+    }
+
+
+}
+
+//get the latest focused image and set it to mZoomItem
+void GlxZoomWidget::retreiveFocusedImage()
+{
+
+    QPixmap targetPixmap(getFocusedImage());
+    //initialize all the variables wrt the focussed pixmap
+    mZoomWidget->resetTransform();
+    mItemSize = targetPixmap.size();
+    mMaxScaleSize = mItemSize;
+    mMaxScaleSize.scale(mWindowSize*13, Qt::KeepAspectRatio);
+    mMaxScaleDecSize = mItemSize;
+    mMaxScaleDecSize.scale(mWindowSize*7, Qt::KeepAspectRatio);
+    mMinScaleSize = mItemSize* 0.7;
+    mMinDecScaleSize = mItemSize;
+    QPointF originPos = sceneTransform().map(QPointF(0,0));
+    mZoomWidget->setGeometry(QRectF(QPointF(mWindowSize.width()/2 - mItemSize.width()/2,mWindowSize.height()/2 - mItemSize.height()/2),mItemSize )); //chk this
+    mZoomWidget->setPreferredSize(mItemSize);
+    mZoomItem->setPixmap(targetPixmap);
+    mCurrentSize = mItemSize;
+    mStepCurrentSize = mItemSize;
+    setContentWidget(mZoomWidget);
+    show();
+}
+
+
+void GlxZoomWidget::dataChanged(QModelIndex startIndex, QModelIndex endIndex)
+{
+    if(mFocusIndex >= startIndex.row() && mFocusIndex <= endIndex.row()) {
+        //get the latest image from the model
+        //will replace a decoded image if callback is received after decoded image is received so a fix is required
+        //retreiveFocusedImage();
+        if(!mDecodedImageAvailable)  {
+        QPixmap targetPixmap(getFocusedImage());
+        mZoomItem->setPixmap(targetPixmap);
+        finalizeWidgetTransform();
+        }
+    }
+}
+
+void GlxZoomWidget::decodedImageAvailable()
+{
+    //new bitmap with better resolution is available
+    //so set it to the item
+    QPixmap decodedPixmap = mImageDecoder->getPixmap();
+    disconnect(mImageDecoder, SIGNAL(pixmapDecoded()), this, SLOT(decodedImageAvailable()));
+    if(decodedPixmap.isNull()){
+        return;
+    }
+    mDecodedImageAvailable = true;
+    mZoomItem->setPixmap(decodedPixmap);
+    mItemSize = decodedPixmap.size();
+    //this is important if not done then old transforms will be applied on the new image
+    finalizeWidgetTransform();
+}
+
+void GlxZoomWidget::sendDecodeRequest(int index)
+{
+    if(!mImageDecodeRequestSend) {
+        QString imagePath = (mModel->data(mModel->index(index,0),GlxUriRole)).value<QString>();
+        mImageDecoder->decodeImage(imagePath);
+        connect(mImageDecoder, SIGNAL(pixmapDecoded()), this, SLOT(decodedImageAvailable()));
+        mImageDecodeRequestSend = true;
+    }
+}
+
+
+void GlxZoomWidget::finalizeWidgetTransform()
+{
+    QPointF widgetPos = mZoomWidget->sceneTransform().map(QPointF(0,0)); //Map the origin wrt scene
+    mZoomWidget->resetTransform();
+    mZoomWidget->scale(mCurrentSize.width()/mItemSize.width(), mCurrentSize.height()/mItemSize.height());
+    mZoomWidget->setGeometry(QRectF(widgetPos , mCurrentSize));
+    // this updates HbScrollArea on the sizeHint of ZoomWidget
+    mZoomWidget->setPreferredSize(mCurrentSize);
+    mStepCurrentSize = mCurrentSize;
+}
+
+QPixmap GlxZoomWidget::getFocusedImage()
+{
+    mFocusIndex = mModel->data(mModel->index(0,0),GlxFocusIndexRole).value<int>();
+    QVariant iconVariant = mModel->data(mModel->index(mFocusIndex,0),GlxFsImageRole);
+    QVariant sizeVariant = mModel->data(mModel->index(mFocusIndex,0),GlxDimensionsRole);
+    QPixmap targetPixmap;
+    //retreive pixmap from the HbIcon received from model
+    //should change the model to return and save pixmaps and convert to HbIcons Instead
+    if ( iconVariant.isValid() &&  iconVariant.canConvert<HbIcon> () ) {
+         QIcon itemIcon = iconVariant.value<HbIcon>().qicon();
+         QSize itemSize = itemIcon.actualSize(mWindowSize);
+         QSize scaleSize;
+         if(sizeVariant.isValid() &&  sizeVariant.canConvert<QSize> ()) {
+             scaleSize = sizeVariant.toSize();
+             if(!(scaleSize.width() < mWindowSize.width() && scaleSize.height() < mWindowSize.height()))  {
+                 scaleSize = mWindowSize;
+             }
+         }
+         targetPixmap = itemIcon.pixmap(itemSize).scaled(scaleSize, Qt::KeepAspectRatio);
+         mItemSize = targetPixmap.size();
+    }
+    return targetPixmap;
+
+}
+
+
+
+void GlxZoomWidget::cleanUp()
+{
+//    disconnect( mModel, SIGNAL( dataChanged(QModelIndex,QModelIndex) ), this, SLOT( dataChanged(QModelIndex,QModelIndex) ) );
+    if(mImageDecoder) {
+        mImageDecoder->resetDecoder();
+    }
+    mZoomItem->setPixmap(QPixmap());
+}
+
+void GlxZoomWidget::activate()
+{
+}
+
+
--- a/ui/views/gridview/inc/glxgridview.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/gridview/inc/glxgridview.h	Mon May 17 13:35:26 2010 +0530
@@ -30,6 +30,8 @@
 class GlxModelWrapper;
 class HbPushButton;
 class HbIconItem;
+class HbCheckBox;
+class HbLabel;
 
 class GlxGridView : public GlxView
 {
@@ -55,6 +57,17 @@
     void scrollingStarted();
     void orientationchanged(Qt::Orientation orient);
     void visibleIndexChanged(const QModelIndex& current, const QModelIndex& previous);
+    void stateChanged(int state);
+    //show the marked item count
+    void showMarkedItemCount();
+    //show item count in the grid
+    void showItemCount();
+    //clear all the model connection
+    void clearCurrentModel();
+    //add the connection to the model
+    void initializeNewModel();
+    void showAlbumTitle(QString aTitle);
+    void populated();
 
 protected :
     QVariant  itemChange (GraphicsItemChange change, const QVariant &value) ;
@@ -62,6 +75,7 @@
 private slots:
     void indicateLongPress(const QModelIndex& index, QPointF coords);
     void uiButtonClicked(bool checked);
+    void cameraButtonClicked(bool checked);
 	
 private:
     void addViewConnection();
@@ -69,15 +83,25 @@
     void hideorshowitems(Qt::Orientation orient);
     void scrolltofocus();
     void loadGridView();
-  
+    void showHbItems();
+    int getSubState();
+    void showNoImageString();
+
 	HbMainWindow        *mWindow;          // no ownership
 	QAbstractItemModel  *mModel ;
 	HgWidget            *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
     bool                 mScrolling;
     HbIconItem          *mIconItem;
+    HbCheckBox          *mMarkCheckBox;    // Mark All checkbox 
+    HbLabel             *mCountItem;       // Item count of the grid
+    HbLabel             *mMainLabel;       
+    HbLabel             *mCountLabel;      // Marked item count
+    HbLabel             *mZeroItemLabel;   // zero itemcount
+    HbLabel             *mAlbumName;
 };
 
 #endif /* GLXGRIDVIEW_H_ */
--- a/ui/views/gridview/src/glxgridview.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/gridview/src/glxgridview.cpp	Mon May 17 13:35:26 2010 +0530
@@ -26,13 +26,18 @@
 #include <hbiconitem.h>
 #include <hbicon.h>
 #include <xqserviceutil.h>
+#include <hbcheckbox.h>
+#include <hblabel.h>
+#include <QString>
+#include <hbframeitem.h>
 
 //User Includes
 #include "glxviewids.h"
 #include "glxgridview.h"
 #include "glxmodelparm.h"
 #include "glxcommandhandlers.hrh"
-
+#include "glxicondefs.h"
+#include "glxlocalisationstrings.h"
 
 #include "OstTraceDefinitions.h"
 #ifdef OST_TRACE_COMPILER_IN_USE
@@ -47,8 +52,15 @@
       mSelectionModel(NULL),
       mModelWrapper(NULL),
       mUiOnButton(NULL),
+      mCameraButton(NULL),
       mScrolling(FALSE),
-      mIconItem(NULL)
+      mIconItem(NULL),
+      mMarkCheckBox(NULL),
+      mCountItem(NULL),
+      mMainLabel(NULL),
+      mCountLabel(NULL),
+      mZeroItemLabel(NULL),
+      mAlbumName(NULL)
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_GLXGRIDVIEW_ENTRY );
     mModelWrapper = new GlxModelWrapper();
@@ -61,20 +73,31 @@
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_ACTIVATE_ENTRY );
     if(mUiOnButton == NULL) {
-        mUiOnButton = new HbPushButton("UI",this);
+        mUiOnButton = new HbPushButton(this);
         connect(mUiOnButton, SIGNAL(clicked(bool)), this, SLOT(uiButtonClicked(bool)));
-        mUiOnButton->setGeometry(QRectF(610,0,15,15));
+        mUiOnButton->setGeometry(QRectF(590,0,40,40));
         mUiOnButton->setZValue(1);
+        mUiOnButton->setIcon(HbIcon(GLXICON_WALL_UI_ON));
         mUiOnButton->hide();
     }
     loadGridView();
+	connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)),Qt::UniqueConnection);
+    if(mCountItem == NULL) {
+        mCountItem = new HbLabel(this);        
+        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);
+    }
     OstTraceFunctionExit0( GLXGRIDVIEW_ACTIVATE_EXIT );
 }
 
 void GlxGridView::deActivate()
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_DEACTIVATE_ENTRY );
-    if (mUiOnButton && mUiOnButton->isVisible())
+    mScrolling = FALSE;
+    if (mUiOnButton)
         {
         mUiOnButton->hide();
         }    
@@ -85,6 +108,23 @@
         mIconItem->setOpacity(0);
         mIconItem->setZValue(mIconItem->zValue()-20);
         }
+    if (mCountItem) 
+        {
+        mCountItem->hide();
+        }
+    if (mAlbumName) 
+        {
+        mAlbumName->hide();
+        }
+    if(mZeroItemLabel) 
+        {
+        mZeroItemLabel->hide();
+        }
+    if(mCameraButton) 
+        {
+        mCameraButton->hide();
+        }
+    disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
     OstTraceFunctionExit0( GLXGRIDVIEW_DEACTIVATE_EXIT );
 }
 
@@ -94,12 +134,37 @@
     setModel(model);
 }
 
-void GlxGridView::setModel(QAbstractItemModel *model) 
+void GlxGridView::clearCurrentModel()
+{
+    if ( mModel ) {
+        disconnect(mModel, SIGNAL(rowsInserted(QModelIndex,int,int)), this, SLOT(showItemCount()));
+        disconnect(mModel, SIGNAL(rowsRemoved(QModelIndex,int,int)), this, SLOT(showItemCount()));
+        disconnect(mModel, SIGNAL(destroyed()), this, SLOT( clearCurrentModel()));
+        disconnect(mModel, SIGNAL(albumTitleAvailable(QString)), this, SLOT(showAlbumTitle(QString)));
+        disconnect(mModel, SIGNAL(populated()), this, SLOT( populated()));
+        mModel = NULL ;
+    }
+}
+
+void GlxGridView::initializeNewModel()
+{
+    if ( mModel ) {
+        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)));
+        connect(mModel, SIGNAL(populated()), this, SLOT( populated()));
+    }
+}
+
+void GlxGridView::setModel(QAbstractItemModel *model)
 {
     OstTraceFunctionEntry0( GLXGRIDVIEW_SETMODEL_ENTRY );
     if(model)
         {
-        mModel =  model;
+        clearCurrentModel();
+        mModel = model;
+        initializeNewModel();
         QVariant variantimage = mModel->data(mModel->index(0,0),GlxDefaultImage);
         if (mWidget && variantimage.isValid() &&  variantimage.canConvert<QImage> () )
             {
@@ -114,6 +179,7 @@
             mWidget->setSelectionModel(mSelectionModel);
             }
         scrolltofocus();  // Need to do it here ?
+        showItemCount();
         }
     OstTraceFunctionExit0( GLXGRIDVIEW_SETMODEL_EXIT );
 }
@@ -142,12 +208,212 @@
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ENABLEMARKING, "GlxGridView::enableMarking" );
     mWidget->setSelectionMode(HgWidget::MultiSelection);
+    if (mMainLabel == NULL) {
+        mMainLabel = new HbLabel("Select Photos", this);        
+        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);        
+        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);        
+        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);
+    }
+
+    hideorshowitems(mWindow->orientation());
+
+    connect( mWidget->selectionModel() , SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection& ) ), this, SLOT( showMarkedItemCount() ) );
+    connect(mMarkCheckBox, SIGNAL( stateChanged(int) ), this, SLOT( stateChanged(int)));
+
 }
 
 void GlxGridView::disableMarking() 
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_DISABLEMARKING, "GlxGridView::disableMarking" );
     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();
+    }
+
+    hideorshowitems(mWindow->orientation());
+}
+
+void GlxGridView::stateChanged(int state)
+{
+    if(state)
+        handleUserAction(EGlxCmdMarkAll);
+    else
+        handleUserAction(EGlxCmdUnMarkAll);
+}
+
+void GlxGridView::showMarkedItemCount()
+{
+    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 );
+}
+
+void GlxGridView::showItemCount()
+{
+    int count = 0;
+    if(mModel) {
+        count = mModel->rowCount();
+        QSize deviceSize = HbDeviceProfile::current().logicalSize();
+        QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
+                                                                       : QSize( deviceSize.height(), deviceSize.width() )  ;
+        if(count) {
+            if(mZeroItemLabel) {
+                mZeroItemLabel->hide();
+            }
+            if(mCameraButton) {
+                mCameraButton->hide();
+            }
+            if(isItemVisible(Hb::TitleBarItem)) {
+                QString text;
+                if (getSubState() == ALL_ITEM_S) {
+					if (mAlbumName) {
+                    	mAlbumName->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();
+                }
+                else if (getSubState() == ALBUM_ITEM_S) {
+                    mCountItem->hide();
+                    QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
+                    if (variant.toString() != NULL) {
+                        showAlbumTitle(variant.toString());
+                    }
+                }
+            }
+            else {
+                if (mCountItem) {
+                    mCountItem->hide();
+                }
+                if (mAlbumName) {
+                    mAlbumName->hide();
+                }
+            }
+
+        }
+        else {
+            bool populated = FALSE;
+            QVariant variant = mModel->data(mModel->index(0,0),GlxPopulated);
+            if (variant.isValid() &&  variant.canConvert<bool>() )
+                {
+                populated = variant.value<bool>();
+                }
+            if(populated) {
+                if (mCountItem) {
+                    mCountItem->hide();
+                }
+                if (mAlbumName) {
+                    mAlbumName->hide();
+                }
+                
+                showNoImageString();            
+                
+                if (getSubState() == ALBUM_ITEM_S) {                
+                    QVariant variant = mModel->data(mModel->index(0,0),GlxViewTitle);
+                    if (variant.toString() != NULL) {
+                        showAlbumTitle(variant.toString());
+                    }
+                }
+            }
+        }
+    }
+}
+
+void GlxGridView::showAlbumTitle(QString aTitle)
+{
+    int count = mModel->rowCount();
+    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);            
+        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(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();
+    }
+}
+
+void GlxGridView::showNoImageString()
+{
+    qreal chromeHeight = 0.0;
+    QSize deviceSize = HbDeviceProfile::current().logicalSize();
+    QSize screenSize = ( mWindow->orientation() == Qt::Vertical ) ? QSize( deviceSize.width(), deviceSize.height() )
+                                                                   : QSize( deviceSize.height(), deviceSize.width() )  ;
+    qreal midHeight = screenSize.height()/2;
+    if (isItemVisible(Hb::TitleBarItem)) {
+        style()->parameter("hb-param-widget-chrome-height", chromeHeight);
+        midHeight -= chromeHeight;
+    }
+    if (mZeroItemLabel == NULL) {                
+        mZeroItemLabel = new HbLabel("(No Images)\n To capture images Open", this);
+    }
+    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->setIcon(HbIcon(GLXICON_CAMERA));
+        connect(mCameraButton, SIGNAL(clicked(bool)), this, SLOT(cameraButtonClicked(bool)));
+    }
+    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()
+{
+    showItemCount();
 }
 
 void GlxGridView::handleUserAction(qint32 commandId)
@@ -239,10 +505,9 @@
         mWidget = new HgGrid(orient);
         mWidget->setLongPressEnabled(true);
         mWidget->setScrollBarPolicy(HgWidget::ScrollBarAutoHide);  
-        //mWidget->setItemSize(QSizeF(120,120));
         setWidget( mWidget );  
         addViewConnection();
-        //hideorshowitems(orient);
+        hideorshowitems(orient);
     }
     OstTraceFunctionExit0( GLXGRIDVIEW_LOADGRIDVIEW_EXIT );
 }
@@ -253,22 +518,46 @@
 }
 void GlxGridView::hideorshowitems(Qt::Orientation orient)
 {
-    if(orient == Qt::Horizontal) 
-        {
-        if (mUiOnButton)
+    if (mWidget->selectionMode() == HgWidget::NoSelection) {
+        if(orient == Qt::Horizontal)
             {
-            mUiOnButton->show();
+			setItemVisible(Hb::AllItems, FALSE) ;
+        	setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
+        	showItemCount();
+            if (mUiOnButton)
+                {
+                mUiOnButton->show();
+                }
             }
-        setItemVisible(Hb::AllItems, FALSE) ;
+        else
+            {
+            showHbItems();
+            }
+    }
+
+    if (mWidget->selectionMode() == HgWidget::MultiSelection) {
+        setItemVisible(Hb::TitleBarItem, FALSE) ;
+        if (mUiOnButton) {
+            mUiOnButton->hide();
         }
-    else
-        {
-        if (mUiOnButton)
-            {
-            mUiOnButton->hide();
-            }
-        setItemVisible(Hb::AllItems, TRUE) ;
+        if (mCountItem) {
+            mCountItem->hide();
+        }
+        if (mAlbumName) {
+            mAlbumName->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();
+        showMarkedItemCount();
+    }
 }
 
 void GlxGridView::scrolltofocus()
@@ -298,7 +587,6 @@
 void GlxGridView::addViewConnection()
 {
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_ADDVIEWCONNECTION, "GlxGridView::addViewConnection" );
-    connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
     //connect(mWindow, SIGNAL(aboutToChangeOrientation()), mWidget, SLOT(aboutToChangeOrientation()));
     connect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), mWidget, SLOT(orientationChanged(Qt::Orientation)));
     connect(mWidget, SIGNAL(activated(const QModelIndex &)), SLOT( itemSelected(const QModelIndex &)));
@@ -312,7 +600,6 @@
     OstTrace0( TRACE_NORMAL, GLXGRIDVIEW_REMOVEVIEWCONNECTION, "GlxGridView::removeViewConnection" );
     if(mWidget)
         {
-        disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), this, SLOT(orientationchanged(Qt::Orientation)));
         //disconnect(mWindow, SIGNAL(aboutToChangeOrientation()), mWidget, SLOT(aboutToChangeOrientation()));
         disconnect(mWindow, SIGNAL(orientationChanged(Qt::Orientation)), mWidget, SLOT(orientationChanged(Qt::Orientation)));
         disconnect(mWidget, SIGNAL(activated(const QModelIndex &)),this, SLOT( itemSelected(const QModelIndex &)));
@@ -346,16 +633,32 @@
 
 void GlxGridView::scrollingStarted()
 {
-    if ((mWindow->orientation() == Qt::Horizontal))
+    if ((mWindow->orientation() == Qt::Horizontal) && mWidget->selectionMode() == HgWidget::NoSelection)
         {
         setItemVisible(Hb::AllItems, FALSE) ;
-        }    
+        setViewFlags(viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden);
+        if (mUiOnButton)
+            {
+            mUiOnButton->hide();
+            }
+		if (mCountItem) {
+			mCountItem->hide();
+		}
+		if (mAlbumName) {
+            mAlbumName->hide();
+		}
+    }
+
     mScrolling = TRUE;
 }
 
 void GlxGridView::scrollingEnded()
 {
     mScrolling = FALSE;
+    if (mUiOnButton && (mWindow->orientation() == Qt::Horizontal))
+        {
+        mUiOnButton->show();
+        }
     QList<QModelIndex> visibleIndex = mWidget->getVisibleItemIndices();
     if (visibleIndex.count() <= 0)
         {
@@ -369,6 +672,7 @@
     if(mModel)
         {
         mModel->setData( index, index.row(), GlxVisualWindowIndex);
+        mModel->setData( index, index.row(), GlxFocusIndexRole );
         }
 }
 
@@ -387,7 +691,17 @@
         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 mMarkCheckBox;
+    delete mCountLabel;
+    delete mZeroItemLabel;
     OstTraceFunctionExit0( DUP1_GLXGRIDVIEW_GLXGRIDVIEW_EXIT );
 }
 
@@ -408,13 +722,34 @@
 
 void GlxGridView::uiButtonClicked(bool /*checked*/)
 {
-    if (isItemVisible(Hb::TitleBarItem))  // W16  All item is Not Working , So Temp Fix
+    showHbItems();
+}
+
+void GlxGridView::showHbItems()
+{
+        setItemVisible(Hb::AllItems, TRUE) ;
+    setViewFlags(viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden);
+        showItemCount();
+		toolBar()->resetTransform(); // Temp, this is for HbToolbar issue to get fixed
+        toolBar()->show();
+    if (mUiOnButton)
         {
-        setItemVisible(Hb::AllItems, FALSE) ;
-        }
-    else
-        {
-        setItemVisible(Hb::AllItems, TRUE) ;
+        mUiOnButton->hide();
         }
 }
 
+void GlxGridView::cameraButtonClicked(bool /*checked*/)
+{
+    emit actionTriggered(EGlxCmdCameraOpen);
+}
+
+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>();
+    }
+    return substate;
+}
+
--- a/ui/views/slideshowview/inc/glxslideshowview.h	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/slideshowview/inc/glxslideshowview.h	Mon May 17 13:35:26 2010 +0530
@@ -52,7 +52,7 @@
     void modelDestroyed();
     
 protected :
-    bool event(QEvent *event);
+    bool eventFilter(QObject *obj, QEvent *ev);
     
 private:
     void loadObjects();
--- a/ui/views/slideshowview/src/glxslideshowview.cpp	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/slideshowview/src/glxslideshowview.cpp	Mon May 17 13:35:26 2010 +0530
@@ -19,6 +19,7 @@
 //Includes
 #include <QEvent>
 #include <QDebug>
+#include <QCoreApplication>
 #include <hbmainwindow.h>
 #include <hbdocumentloader.h>
 
@@ -67,10 +68,13 @@
 
     //finds the widgets from the docml
     loadObjects();
-    setItemVisible(Hb::AllItems, false) ;
+    setTitleBarVisible(FALSE);
+    setStatusBarVisible(FALSE);
     connect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) ); 
     connect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) );
     
+    QCoreApplication::instance()->installEventFilter(this);
+    
     if (!mTvOutWrapper) {
         mTvOutWrapper = new GlxTvOutWrapper();
     }
@@ -81,12 +85,17 @@
     TRACER("GlxSlideShowView::deActivate()");
     mWindow->unsetOrientation(true);         // Actually it is animation false, Hack for Bug in Media wall -todo- need to Address this ASAP
     
-    setItemVisible( Hb::AllItems , TRUE );
+    setStatusBarVisible(TRUE);
+    setTitleBarVisible(TRUE);
+    
+                
     disconnect( mSlideShowWidget, SIGNAL( slideShowEvent( GlxSlideShowEvent ) ), this, SLOT( slideShowEventHandler( GlxSlideShowEvent ) ) );
     disconnect( mSlideShowWidget, SIGNAL( indexchanged() ), this, SLOT( indexchanged() ) );
     //Delete the Items in the slide show widget
     mSlideShowWidget->cleanUp();
     
+    QCoreApplication::instance()->removeEventFilter(this);
+
     if (mTvOutWrapper){
         delete mTvOutWrapper;
         mTvOutWrapper = NULL;
@@ -141,11 +150,13 @@
     GLX_LOG_INFO1("GlxSlideShowView::slideShowEventHandler() event %d", e);
     switch ( e ) {
         case UI_ON_EVENT :
-            setItemVisible(Hb::AllItems, TRUE) ;
+            setTitleBarVisible(TRUE);
+            setStatusBarVisible(TRUE);
             break;
 
         case UI_OFF_EVENT :
-            setItemVisible(Hb::AllItems, false) ;
+            setTitleBarVisible(FALSE);
+            setStatusBarVisible(FALSE);
             break;
 
         case EMPTY_DATA_EVENT :
@@ -173,24 +184,25 @@
     }
 }
 
-bool GlxSlideShowView::event(QEvent *event)
+bool GlxSlideShowView::eventFilter(QObject *obj, QEvent *event)
 {
     TRACER("GlxSlideShowView::event()");
     GLX_LOG_INFO1("GlxSlideShowView::event() %d event type", event->type());
-    if ( event->type() ==  QEvent::WindowActivate && mSlideShowWidget) {
+    if ( event->type() ==  QEvent::ApplicationActivate && mSlideShowWidget) {
         if (mTvOutWrapper){
+        GLX_LOG_INFO("GlxSlideShowView::event() shift to native - CGlxHdmi");
         mTvOutWrapper->setToNativeMode();    
         }
         mSlideShowWidget->startSlideShow();
     }
-
-    if ( event->type() ==  QEvent::WindowDeactivate && mSlideShowWidget) {
+    if ( event->type() ==  QEvent::ApplicationDeactivate && mSlideShowWidget) {
         if (mTvOutWrapper){
+        GLX_LOG_INFO("GlxSlideShowView::event() shift to Clone - CGlxHdmi");
         mTvOutWrapper->setToCloningMode();    
         }
        mSlideShowWidget->stopSlideShow();
     }
-    return HbView::event(event);
+    return HbView::eventFilter(obj,event);
 }
 
 void GlxSlideShowView::loadObjects()
--- a/ui/views/views.pro	Mon May 03 16:56:16 2010 +0530
+++ b/ui/views/views.pro	Mon May 17 13:35:26 2010 +0530
@@ -61,8 +61,7 @@
 HEADERS += viewbase/inc/glxview.h \
            fullscreenview/inc/glxcoverflow.h \
            fullscreenview/inc/glxfullscreenview.h \
-           fullscreenview/inc/glxzoomslider.h  \
-           fullscreenview/inc/glxzoomcontrol.h  \
+	   fullscreenview/inc/glxzoomwidget.h \
            detailsview/inc/glxdetailsview.h  \
            detailsview/inc/glxdetailscustomwidgets.h  \
            detailsview/inc/glxdetailscustomicon.h \
@@ -82,9 +81,8 @@
 SOURCES += viewbase/src/glxview.cpp \
            fullscreenview/src/glxcoverflow.cpp \
            fullscreenview/src/glxfullscreenview.cpp \
-           fullscreenview/src/glxzoomslider.cpp \
-           fullscreenview/src/glxzoomcontrol.cpp \
-           detailsview/src/glxdetailsview.cpp \
+	   fullscreenview/src/glxzoomwidget.cpp \
+	   detailsview/src/glxdetailsview.cpp \
            detailsview/src/glxdetailscustomwidgets.cpp \
            detailsview/src/glxdetailscustomicon.cpp \
            gridview/src/glxgridview.cpp \