ui/views/fullscreenview/src/glxfullscreenview.cpp
changeset 69 45459746d5e8
parent 62 36d93b4dc635
child 71 27f2d7aec52a
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon Sep 20 12:39:08 2010 +0530
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon Sep 27 15:13:20 2010 +0530
@@ -82,15 +82,44 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
 }
 
+GlxFullScreenView::~GlxFullScreenView()
+{
+    OstTraceFunctionEntry0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
+    
+    cleanUp();
+    for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
+        delete mIconItems[ i ] ;
+    }
+    delete mBackGroundItem;
+    delete mImageStrip;
+    delete mFullScreenToolBar;
+    delete mCoverFlow;
+    delete mZoomWidget;
+
+    if( mDocLoader != NULL ) {
+        mDocLoader->reset();
+        delete mDocLoader;    
+    }
+    
+    HbEffect::remove( QString( "HbGridView" ), QString( ":/data/transitionup.fxml" ), QString( "TapShow" ) );
+    HbEffect::remove( QString( "HbGridView" ), QString( ":/data/transitiondown.fxml" ), QString( "TapHide" ) );
+    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomin.fxml" ), QString( "SelectHide" ) );
+    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomout.fxml" ), QString( "SelectShow" ) );
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) );
+    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) );
+        
+    OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
+}
+
 void GlxFullScreenView::initializeView( QAbstractItemModel *model, GlxView *preView )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INITIALIZEVIEW_ENTRY );
     
     // if animations is on, then Set the image to HDMI here
-    if (!mTvOutWrapper){
+    if ( !mTvOutWrapper ){
         mTvOutWrapper = new GlxTvOutWrapper();
     }
-    setHdmiModel(model);
+    setHdmiModel( model );
     loadWidgets();
 
     /* 
@@ -114,104 +143,44 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_INITIALIZEVIEW_EXIT );
 }
 
-void GlxFullScreenView::loadWidgets()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADWIDGETS_ENTRY );
-       
-    mCoverFlow = qobject_cast<GlxCoverFlow*> (mDocLoader->findWidget(GLXFULLSCREEN_COVERFLOW));
-    
-    mZoomWidget  =  qobject_cast<GlxZoomWidget*> (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET));
-    mZoomWidget->connectDecodeRequestToPinchEvent();
-    mCoverFlow->setMultitouchFilter(mZoomWidget);
-    
-    //initialise the cover flow for basic connections and the rest
-    mCoverFlow->setCoverFlow();
-    mImageStrip = qobject_cast<HbGridView*> (mDocLoader->findWidget(GLXFULLSCREEN_FILMSTRIP));
-     
-    //When the widget is loaded/retreived the widgets are shown by default.
-    //@to do : hide the widgets by default in docml
-    mImageStrip->hide();      
-	mImageStrip->setLayoutName( QString( "ImageStrip" ) ); // To distinguish in CSS file
-	mImageStrip->setEnabledAnimations( HbAbstractItemView::None );
-	mImageStrip->setHorizontalScrollBarPolicy( HbScrollArea::ScrollBarAlwaysOff );
-	
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT );
-}
-
-void GlxFullScreenView::loadFullScreenToolBar()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_ENTRY );
-    
-    //The fullscreen tool bar is delted when ever the view is deactivated
-    //so load the docml once again and retreive the object
-    bool loaded =true;      
-    mDocLoader->load(GLXFULLSCREENDOCMLPATH,&loaded);
-    loadViewSection();
-
-    mFullScreenToolBar = qobject_cast<HbToolBar *> (mDocLoader->findObject(QString("toolBar")));
-    mFullScreenToolBar->clearActions();
-    
-    addToolBarAction( EGlxCmdDetailsOpen, GLXICON_FLIP, "Flip Action" ); //create  Flip tool bar button action
-    addToolBarAction( EGlxCmdSend, GLXICON_SEND, "Send Action" );        //create  Send tool bar button action
-    if( getSubState() != IMAGEVIEWER_S ) {        
-        addToolBarAction( EGlxCmdDelete, GLXICON_DELETE, "Delete Action" ); //create  Delete tool bar button action
-    }
-    else {
-        addToolBarAction( EGlxCmdHandled, GLXICON_USEIMAGE, "Use Action" ); //create  Use Image tool bar button action
-    }
- 
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_EXIT );
-}
-
-void GlxFullScreenView::addToolBarAction( int commandId, const QString &iconName, const QString &name )
-{
-    HbAction *action = new HbAction( this ); 
-    action->setData( commandId );
-    action->setIcon( HbIcon( iconName ) ); 
-    action->setObjectName( name );
-    mFullScreenToolBar->addAction( action );
-    connect(action, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); 
-}
-
 void GlxFullScreenView::activate()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATE_ENTRY );    
 //for zoom might not be required after wk15 release
-	mWindow->viewport()->setAttribute(Qt::WA_AcceptTouchEvents,true); 
-	mWindow->viewport()->grabGesture(Qt::PinchGesture);
-	
-	QCoreApplication::instance()->installEventFilter(this);
+    mWindow->viewport()->setAttribute( Qt::WA_AcceptTouchEvents, true ); 
+    mWindow->viewport()->grabGesture( Qt::PinchGesture );
+    
+    QCoreApplication::instance()->installEventFilter( this );
 
     if( !mCoverFlow ) {
         loadWidgets();  //retrives the widgets
     }
     //Loads the widgets corresponding to the orientation.
     loadViewSection();
-	
+    
     HbView::HbViewFlags flags( HbView::ViewTitleBarTransparent | HbView::ViewStatusBarTransparent);
     setViewFlags(flags);
-	
-	// In case of fetcher don't hide status pane and title bar
+    
+    // In case of fetcher don't hide status pane and title bar
     if(!(XQServiceUtil::isService() && (0 == XQServiceUtil::interfaceName().compare(QLatin1String("com.nokia.symbian.IImageFetch"))))) {
         setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
-		mUiOff = true;
-	}
-    else
-        {
-        HbAction* selectAction = new HbAction(GLX_BUTTON_SELECT);
+        mUiOff = true;
+    }
+    else {
+        HbAction* selectAction = new HbAction( GLX_BUTTON_SELECT );
         selectAction->setObjectName( "FS Select" );
         
-        connect(selectAction, SIGNAL(triggered()), this, SLOT(handleFSSelect()));
+        connect( selectAction, SIGNAL( triggered() ), this, SLOT( handleFSSelect() ) );
         HbToolBar* toolBar = new HbToolBar();
         toolBar->setOrientation( Qt::Horizontal );
-        toolBar->setVisible(true);
-        toolBar->addAction(selectAction);
-        setToolBar(toolBar);
-        }
+        toolBar->setVisible( true );
+        toolBar->addAction( selectAction );
+        setToolBar( toolBar );
+    }
         
     mUiOffTimer = new QTimer();
     mUiOffTimer->stop();        
-    mCoverFlow->setUiOn(FALSE);    
+    mCoverFlow->setUiOn( FALSE );    
     addConnection(); 
     setLayout();
      
@@ -223,26 +192,23 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATE_EXIT );
 }
 
-void GlxFullScreenView::handleFSSelect()
-{
-    emit actionTriggered( EGlxCmdFetcherSelect );
-}
-
-void GlxFullScreenView::loadViewSection()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY );    
+void GlxFullScreenView::deActivate()
+{ 
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_DEACTIVATE_ENTRY );    
+    
+    cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view
+    //Clean up the rest of the resources allocated
+    cleanUp();
+    QCoreApplication::instance()->removeEventFilter( this );
+    //deletes the iconitems in the coverflow   
+    mCoverFlow->ClearCoverFlow();
 
-    bool loaded =true;
-    if( mWindow->orientation() == Qt::Horizontal ) {
-        //Load the Landscape section for Horizontal
-        mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENLSSECTION,&loaded);
-    }
-    else{
-        //Load the Portrait section for Horizontal
-        mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENPTSECTION,&loaded);    
-    }
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADVIEWSECTION_EXIT );
+    //the coverflow is not deleted as it is loaded by document loader
+    //the coverflow is initialised to null 
+    //to just reset to the initial state
+    mCoverFlow = NULL;
+    mWindow->setAutomaticOrientationEffectEnabled( true );
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT );
 }
 
 void GlxFullScreenView::resetView()
@@ -259,23 +225,42 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_RESETVIEW_EXIT );
 }
 
-void GlxFullScreenView::deActivate()
-{ 
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_DEACTIVATE_ENTRY );    
+void GlxFullScreenView::setModel( QAbstractItemModel *model )
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODEL_ENTRY );
+    OstTraceExt2( TRACE_NORMAL, GLXFULLSCREENVIEW_SETMODEL, "GlxFullScreenView::setModel; model=%x; mModel=%u", ( TUint )( model ), ( TUint ) mModel );
     
-    cancelSelectionAnimation(); //cancel the image selection effect before cleaning the view
-	//Clean up the rest of the resources allocated
-    cleanUp();
-    QCoreApplication::instance()->removeEventFilter(this);
-    //deletes the iconitems in the coverflow   
-    mCoverFlow->ClearCoverFlow();
+    mModel = model;     
+    setModelContext();  
+    setHdmiModel( mModel );
+    mZoomWidget->setModel( mModel );  
+    mCoverFlow->setModel( mModel );
+    setImageStripModel();
+    if( getSubState() == IMAGEVIEWER_S ) {
+        setTitle(GLX_IMAGE_VIEWER);
+    }
+	else if(getSubState() == FETCHER_S){ //do not hide UI in case of fetcher
+        disconnect(mZoomWidget,SIGNAL( pinchGestureReceived(int) ), mCoverFlow, SLOT( zoomStarted(int) ) );
+    }
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODEL_EXIT );
+}
 
-    //the coverflow is not deleted as it is loaded by document loader
-    //the coverflow is initialised to null 
-    //to just reset to the initial state
-    mCoverFlow = NULL;
-    mWindow->setAutomaticOrientationEffectEnabled( true );
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_DEACTIVATE_EXIT );
+void GlxFullScreenView::setModelContext()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODELCONTEXT_ENTRY );
+    
+    if ( mModel && mWindow ) {
+        if ( mWindow->orientation() == Qt::Horizontal ) {
+            WRITE_TIMESTAMP("set the fullscreen landscape context")
+            mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
+        }
+        else {
+            WRITE_TIMESTAMP("set the fullscreen portrait context")
+            mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
+        }
+    }
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODELCONTEXT_EXIT );
 }
 
 void GlxFullScreenView::cleanUp()
@@ -321,52 +306,6 @@
     return NULL;    
 }
 
-void GlxFullScreenView::setModel( QAbstractItemModel *model )
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODEL_ENTRY );
-    OstTraceExt2( TRACE_NORMAL, GLXFULLSCREENVIEW_SETMODEL, "GlxFullScreenView::setModel; model=%x; mModel=%u", ( TUint )( model ), ( TUint ) mModel );
-    
-    mModel = model;     
-	setModelContext();  
-    setHdmiModel(mModel);
-	mZoomWidget->setModel(mModel);  
-    mCoverFlow->setModel(mModel);
-    setImageStripModel();
-    if(getSubState() == IMAGEVIEWER_S) {
-        setTitle(GLX_IMAGE_VIEWER);
-    }
-	else if(getSubState() == FETCHER_S){ //do not zoom in case of fetcher
-		disconnect(mCoverFlow,SIGNAL( doubleTapEventReceived(QPointF) ), mZoomWidget, SLOT( animateZoomIn(QPointF) ) );
-	}
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODEL_EXIT );
-}
-
-void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model)
-{
-    if (mTvOutWrapper) {
-        mTvOutWrapper->setModel(model, screenSize()); 
-        mTvOutWrapper->setImagetoHDMI(); // for the first image on screen
-    }    
-}
-
-void GlxFullScreenView::setModelContext()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETMODELCONTEXT_ENTRY );
-    
-    if ( mModel && mWindow ) {
-        if ( mWindow->orientation() == Qt::Horizontal ) {
-            WRITE_TIMESTAMP("set the fullscreen landscape context")
-            mModel->setData(QModelIndex(), (int)GlxContextLsFs, GlxContextRole );
-        }
-        else {
-            WRITE_TIMESTAMP("set the fullscreen portrait context")
-            mModel->setData(QModelIndex(), (int)GlxContextPtFs, GlxContextRole );
-        }
-    }
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETMODELCONTEXT_EXIT );
-}
-
 void GlxFullScreenView::orientationChanged(Qt::Orientation orient)
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_ENTRY );
@@ -390,42 +329,6 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT );
 }
 
-void GlxFullScreenView::activateUI()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY );
-    
-    if ( mUiOff && getSubState() != FETCHER_S ){      
-        if( !mFullScreenToolBar ) {
-            loadFullScreenToolBar();
-        }
-        mUiOff = FALSE;
-        
-        QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
-        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
-            mImageStrip->setCurrentIndex ( mModel->index( variant.value<int>(), 0) );    
-            mImageStrip->scrollTo( mModel->index( variant.value<int>(), 0), HbGridView::PositionAtTop ); 
-        }
-
-        setItemVisible( Hb::AllItems, TRUE );
-        setViewFlags( viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden );
-       
-        if ( mImageStrip && getSubState() != IMAGEVIEWER_S) {
-            mImageStrip->show(); 
-            HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapShow"), this, "effectFinished" );
-        }
-        else if( getSubState() == IMAGEVIEWER_S){
-            setTitle(GLX_IMAGE_VIEWER);
-        }
-        mFullScreenToolBar->setOpacity( 1 );
-        mFullScreenToolBar->show();
-    }
-    else {
-        hideUi();
-    }
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATEUI_EXIT );
-}
-
 void GlxFullScreenView::hideUi()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HIDEUI_ENTRY );
@@ -452,7 +355,7 @@
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_HIDEUI_EXIT );
 }
 
-void GlxFullScreenView::changeSelectedIndex(const QModelIndex &index)
+void GlxFullScreenView::changeSelectedIndex( const QModelIndex &index )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_ENTRY );
     
@@ -481,7 +384,7 @@
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_CHANGESELECTEDINDEX_EXIT );
 }
 
-void GlxFullScreenView::indexChanged(const QModelIndex &index)
+void GlxFullScreenView::indexChanged( const QModelIndex &index )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_INDEXCHANGED_ENTRY );    
     
@@ -494,12 +397,11 @@
     if (mTvOutWrapper){
         // for the indexchnaged through filmstrip
         mTvOutWrapper->setImagetoHDMI();
-    }
-    //disable the animation for the time being
+    } 
     imageSelectionAnimation( index );
     
     mModel->setData( index, index.row(), GlxFocusIndexRole );
-    mZoomWidget->indexChanged(index.row());
+    mZoomWidget->indexChanged( index.row() );
     mZoomWidget->setVisible( false );
     
     OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_INDEXCHANGED_EXIT );
@@ -554,26 +456,6 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_RELEASED_EXIT );
 }
 
-void GlxFullScreenView::setVisvalWindowIndex()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_ENTRY );
-    
-    QList< HbAbstractViewItem * >  visibleItemList =  mImageStrip->visibleItems();
-    if ( visibleItemList.count() <= 0 )
-        return ;
-
-    HbAbstractViewItem *item = visibleItemList.at(0);
-    if ( item == NULL ) 
-        return ;
-
-    if (  item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() )
-        return ;
-
-    mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex);
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_EXIT );
-}
-
 void GlxFullScreenView::coverFlowEventHandle( GlxCoverFlowEvent e )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_COVERFLOWEVENTHANDLE_ENTRY );
@@ -621,15 +503,16 @@
        return ;
     }
     
+    mImageStrip->resetTransform();
     if ( mUiOff ) {
         mUiOffTimer->stop();        
-        mCoverFlow->setUiOn(FALSE);
+        mCoverFlow->setUiOn( FALSE );
         mImageStrip->hide();
         setItemVisible( Hb::AllItems, FALSE );
     }
     else {
-        mUiOffTimer->start(KUiOffTime);
-        mCoverFlow->setUiOn(TRUE);               
+        mUiOffTimer->start( KUiOffTime );
+        mCoverFlow->setUiOn( TRUE );               
     }
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_EFFECTFINISHED_EXIT );
@@ -670,6 +553,84 @@
     mZoomWidget->resetTransform();
 }
 
+void GlxFullScreenView::handleToolBarAction()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_ENTRY );
+    
+    HbAction *action = qobject_cast<HbAction*>(sender());
+    qint32 commandId = action->data().toInt();
+    emit actionTriggered( commandId );
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_EXIT );
+}
+
+void GlxFullScreenView::handleFSSelect()
+{
+    emit actionTriggered( EGlxCmdFetcherSelect );
+}
+
+bool GlxFullScreenView::eventFilter(QObject *obj, QEvent *ev)
+{
+    GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", ev->type());
+    if ( ev->type() ==  QEvent::ApplicationActivate && mTvOutWrapper) {
+        GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi");
+        mTvOutWrapper->setToNativeMode();    
+    }
+    if (ev->type() ==  QEvent::ApplicationDeactivate)
+    {
+        if(mZoomWidget) {
+            mZoomWidget->forceZoomToBackground();
+        }
+        if (mTvOutWrapper) {
+            GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi");
+            mTvOutWrapper->setToCloningMode();    
+        }
+    }
+    return HbView::eventFilter(obj,ev);
+}
+
+void GlxFullScreenView::loadWidgets()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADWIDGETS_ENTRY );
+       
+    mCoverFlow = qobject_cast<GlxCoverFlow*> (mDocLoader->findWidget(GLXFULLSCREEN_COVERFLOW));
+    
+    mZoomWidget  =  qobject_cast<GlxZoomWidget*> (mDocLoader->findWidget(GLXFULLSCREENZOOMWIDGET));
+    mZoomWidget->connectDecodeRequestToPinchEvent();
+    mCoverFlow->setMultitouchFilter(mZoomWidget);
+    
+    //initialise the cover flow for basic connections and the rest
+    mCoverFlow->setCoverFlow();
+    mImageStrip = qobject_cast<HbGridView*> (mDocLoader->findWidget(GLXFULLSCREEN_FILMSTRIP));
+     
+    //When the widget is loaded/retreived the widgets are shown by default.
+    //@to do : hide the widgets by default in docml
+    mImageStrip->hide();      
+    mImageStrip->setLayoutName( QString( "ImageStrip" ) ); // To distinguish in CSS file
+    mImageStrip->setEnabledAnimations( HbAbstractItemView::None );
+    //mImageStrip->setHorizontalScrollBarPolicy( HbScrollArea::ScrollBarAlwaysOff );
+	mImageStrip->setItemPixmapCacheEnabled( true );
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADWIDGETS_EXIT );
+}
+
+void GlxFullScreenView::loadViewSection()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADVIEWSECTION_ENTRY );    
+
+    bool loaded =true;
+    if( mWindow->orientation() == Qt::Horizontal ) {
+        //Load the Landscape section for Horizontal
+        mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENLSSECTION,&loaded);
+    }
+    else{
+        //Load the Portrait section for Horizontal
+        mDocLoader->load(GLXFULLSCREENDOCMLPATH,GLXFULLSCREENPTSECTION,&loaded);    
+    }
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADVIEWSECTION_EXIT );
+}
+
 void GlxFullScreenView::setLayout()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY );
@@ -682,6 +643,42 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETLAYOUT_EXIT );
 }
 
+void GlxFullScreenView::activateUI()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ACTIVATEUI_ENTRY );
+    
+    if ( mUiOff && getSubState() != FETCHER_S ){      
+        if( !mFullScreenToolBar ) {
+            loadFullScreenToolBar();
+        }
+        mUiOff = FALSE;
+        
+        QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
+        if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
+            mImageStrip->setCurrentIndex ( mModel->index( variant.value<int>(), 0) );    
+            mImageStrip->scrollTo( mModel->index( variant.value<int>(), 0), HbGridView::PositionAtTop ); 
+        }
+
+        setItemVisible( Hb::AllItems, TRUE );
+        setViewFlags( viewFlags() &~ HbView::ViewTitleBarHidden &~ HbView::ViewStatusBarHidden );
+       
+        if ( mImageStrip && getSubState() != IMAGEVIEWER_S) {
+            mImageStrip->show(); 
+            HbEffect::start(mImageStrip, QString("HbGridView"), QString("TapShow"), this, "effectFinished" );
+        }
+        else if( getSubState() == IMAGEVIEWER_S){
+            setTitle(GLX_IMAGE_VIEWER);
+        }
+        mFullScreenToolBar->setOpacity( 1 );
+        mFullScreenToolBar->show();
+    }
+    else {
+        hideUi();
+    }
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_ACTIVATEUI_EXIT );
+}
+
 void GlxFullScreenView::addConnection()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_ADDCONNECTION_ENTRY );
@@ -763,33 +760,67 @@
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETIMAGESTRIPMODEL_EXIT );
 }
 
-GlxFullScreenView::~GlxFullScreenView()
+void GlxFullScreenView::setHdmiModel(QAbstractItemModel* model)
 {
-    OstTraceFunctionEntry0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
+    if (mTvOutWrapper) {
+        mTvOutWrapper->setModel(model, screenSize()); 
+        mTvOutWrapper->setImagetoHDMI(); // for the first image on screen
+    }    
+}
+
+void GlxFullScreenView::loadFullScreenToolBar()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_ENTRY );
     
-	cleanUp();
-	for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
-	    delete mIconItems[ i ] ;
-	}
-	delete mBackGroundItem;
-    delete mImageStrip;
-    delete mFullScreenToolBar;
-    delete mCoverFlow;
-    delete mZoomWidget;
+    //The fullscreen tool bar is delted when ever the view is deactivated
+    //so load the docml once again and retreive the object
+    bool loaded =true;      
+    mDocLoader->load(GLXFULLSCREENDOCMLPATH,&loaded);
+    loadViewSection();
 
-    if(mDocLoader != NULL) {
-        mDocLoader->reset();
-        delete mDocLoader;    
-    }
+    mFullScreenToolBar = qobject_cast<HbToolBar *> (mDocLoader->findObject(QString("toolBar")));
+    mFullScreenToolBar->clearActions();
     
-    HbEffect::remove( QString("HbGridView"), QString(":/data/transitionup.fxml"), QString( "TapShow" ));
-    HbEffect::remove( QString("HbGridView"), QString(":/data/transitiondown.fxml"), QString( "TapHide" ));
-    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomin.fxml" ), QString( "SelectHide" ) );
-    HbEffect::remove( QString( "HbGridViewItem" ), QString( ":/data/fullscreenzoomout.fxml" ), QString( "SelectShow" ) );
-    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefslandscape.fxml" ), QString( "RotateFSLS" ) );
-    HbEffect::remove( QString( "HbIconItem" ), QString( ":/data/rotatefsprotrait.fxml" ), QString( "RotateFSPT" ) );
-        
-    OstTraceFunctionExit0( DUP1_GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_EXIT );
+    addToolBarAction( EGlxCmdDetailsOpen, GLXICON_FLIP, "Flip Action" ); //create  Flip tool bar button action
+    addToolBarAction( EGlxCmdSend, GLXICON_SEND, "Send Action" );        //create  Send tool bar button action
+    if( getSubState() != IMAGEVIEWER_S ) {        
+        addToolBarAction( EGlxCmdDelete, GLXICON_DELETE, "Delete Action" ); //create  Delete tool bar button action
+    }
+    else {
+        addToolBarAction( EGlxCmdHandled, GLXICON_USEIMAGE, "Use Action" ); //create  Use Image tool bar button action
+    }
+ 
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_LOADFULLSCREENTOOLBAR_EXIT );
+}
+
+void GlxFullScreenView::addToolBarAction( int commandId, const QString &iconName, const QString &name )
+{
+    HbAction *action = new HbAction( this ); 
+    action->setData( commandId );
+    action->setIcon( HbIcon( iconName ) ); 
+    action->setObjectName( name );
+    mFullScreenToolBar->addAction( action );
+    connect(action, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); 
+}
+
+void GlxFullScreenView::setVisvalWindowIndex()
+{
+    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_ENTRY );
+    
+    QList< HbAbstractViewItem * >  visibleItemList =  mImageStrip->visibleItems();
+    if ( visibleItemList.count() <= 0 )
+        return ;
+
+    HbAbstractViewItem *item = visibleItemList.at(0);
+    if ( item == NULL ) 
+        return ;
+
+    if (  item->modelIndex().row() < 0 || item->modelIndex().row() >= mModel->rowCount() )
+        return ;
+
+    mModel->setData( item->modelIndex (), item->modelIndex().row(), GlxVisualWindowIndex);
+    
+    OstTraceFunctionExit0( GLXFULLSCREENVIEW_SETVISVALWINDOWINDEX_EXIT );
 }
 
 void GlxFullScreenView::initAnimationItem()
@@ -871,17 +902,6 @@
         HbEffect::start( mZoomWidget, QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "zoomOrientChangeAnimFinished" );
     }    
 }
-	
-void GlxFullScreenView::handleToolBarAction()
-{
-    OstTraceFunctionEntry0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_ENTRY );
-    
-    HbAction *action = qobject_cast<HbAction*>(sender());
-    qint32 commandId = action->data().toInt();
-    emit actionTriggered( commandId );
-    
-    OstTraceFunctionExit0( GLXFULLSCREENVIEW_HANDLETOOLBARACTION_EXIT );
-}
 
 int GlxFullScreenView::getSubState()
 {
@@ -896,23 +916,3 @@
 	return substate;
 }
 
-bool GlxFullScreenView::eventFilter(QObject *obj, QEvent *ev)
-{
-    GLX_LOG_INFO1("GlxFullScreenView::event() %d event type", ev->type());
-    if ( ev->type() ==  QEvent::ApplicationActivate && mTvOutWrapper) {
-        GLX_LOG_INFO("GlxFullScreenView::event() shift to native - CGlxHdmi");
-        mTvOutWrapper->setToNativeMode();    
-    }
-    if (ev->type() ==  QEvent::ApplicationDeactivate)
-    {
-        if(mZoomWidget) {
-            mZoomWidget->forceZoomToBackground();
-        }
-        if (mTvOutWrapper) {
-            GLX_LOG_INFO("GlxFullScreenView::event() shift to Clone - CGlxHdmi");
-            mTvOutWrapper->setToCloningMode();    
-        }
-    }
-    return HbView::eventFilter(obj,ev);
-}
-