ui/views/fullscreenview/src/glxfullscreenview.cpp
changeset 58 383b67fbdb11
parent 54 0f0f3f26f787
child 62 36d93b4dc635
--- a/ui/views/fullscreenview/src/glxfullscreenview.cpp	Fri Aug 06 20:44:25 2010 +0530
+++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp	Mon Aug 23 18:06:16 2010 +0530
@@ -60,10 +60,11 @@
     mCoverFlow( NULL ) , 
     mImageStrip( NULL ), 
     mUiOffTimer( NULL ),
+    mBackGroundItem( NULL ),
     mTvOutWrapper( NULL ),
     mFullScreenToolBar( NULL ),
 	mZoomWidget( NULL ),
-	mUiOff ( false)
+	mUiOff ( false )
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_GLXFULLSCREENVIEW_ENTRY );
     mIconItems[0] = NULL;
@@ -168,7 +169,7 @@
     action->setData( commandId );
     action->setIcon( HbIcon( iconName ) ); 
     action->setObjectName( name );
-    mFullScreenToolBar->addAction( action);
+    mFullScreenToolBar->addAction( action );
     connect(action, SIGNAL(triggered( )), this, SLOT(handleToolBarAction( )) ); 
 }
 
@@ -378,7 +379,13 @@
     setModelContext();
     loadViewSection();
     setLayout();
-    playOrientChangeAnim();
+    
+    if ( mZoomWidget->zValue() >= mCoverFlow->zValue() ) {
+        playZoomOrientChangeAnim();
+    }
+    else {
+        playOrientChangeAnim();
+    }
     
     OstTraceFunctionExit0( GLXFULLSCREENVIEW_ORIENTATIONCHANGED_EXIT );
 }
@@ -409,6 +416,7 @@
         else if( getSubState() == IMAGEVIEWER_S){
             setTitle(GLX_IMAGE_VIEWER);
         }
+        mFullScreenToolBar->setOpacity( 1 );
         mFullScreenToolBar->show();
     }
     else {
@@ -574,17 +582,20 @@
     case TAP_EVENT :
         activateUI();
         break ;
-        
+                
+    //hide the ui component without animation  
     case PANNING_START_EVENT :
-        hideUi();
-        break ;
-        
-    //hide the ui component without animation  
     case ZOOM_START_EVENT : {
         HbEffect::EffectStatus e;
         mUiOff = TRUE;
         if( mFullScreenToolBar ) {
-           mFullScreenToolBar->hide();
+            /** 
+             * Browsing has higer priority then playing animation of hiding tool bar
+             * so it is taking time to hide the toolbar during browsing of images 
+             * so set the opacity value to 0 to immediate hide the tool bar 
+             */
+            mFullScreenToolBar->setOpacity( 0 );
+            mFullScreenToolBar->hide();
         }
         setViewFlags( viewFlags() | HbView::ViewTitleBarHidden | HbView::ViewStatusBarHidden );
         effectFinished( e );
@@ -632,6 +643,7 @@
         mIconItems[ i ]->resetTransform();
         mIconItems[ i ]->setVisible( false );
     }
+    mBackGroundItem->setVisible( false );
     
     QVariant variant = mModel->data( mModel->index(0,0), GlxFocusIndexRole );    
     if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
@@ -648,10 +660,16 @@
     qDebug( "GlxFullScreenView::LsOrientChangeAnimFinished reason %d ", status.reason );
     mIconItems[ 0 ]->resetTransform();   
     mIconItems[ 0 ]->setVisible( false );
+    mBackGroundItem->setVisible( false );
     mCoverFlow->setVisible( true );
     mZoomWidget->setVisible( true );
 }
 
+void GlxFullScreenView::zoomOrientChangeAnimFinished( const HbEffect::EffectStatus status )
+{
+    mZoomWidget->resetTransform();
+}
+
 void GlxFullScreenView::setLayout()
 {
     OstTraceFunctionEntry0( GLXFULLSCREENVIEW_SETLAYOUT_ENTRY );
@@ -752,6 +770,7 @@
 	for ( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
 	    delete mIconItems[ i ] ;
 	}
+	delete mBackGroundItem;
     delete mImageStrip;
     delete mFullScreenToolBar;
     delete mCoverFlow;
@@ -775,13 +794,16 @@
 void GlxFullScreenView::initAnimationItem()
 {
     if( mIconItems[0] == NULL ) {
+        mBackGroundItem = new HbIconItem( mImageStrip->parentItem() );
+        mBackGroundItem->setBrush( QBrush( Qt::black ) );
+        mBackGroundItem->setZValue( mImageStrip->zValue() - 3 );
+        mBackGroundItem->setPos( 0, 0 );
         for( int i = 0; i < NBR_ANIM_ITEM; i++ ) {
             mIconItems[ i ] = new HbIconItem( mImageStrip->parentItem() );
-            mIconItems[ i ]->setBrush( QBrush( Qt::black ) );
             mIconItems[ i ]->setZValue( mImageStrip->zValue() - 2 );
             mIconItems[ i ]->setPos( 0, 0 );
             mIconItems[ i ]->setAlignment( Qt::AlignCenter );
-        }
+        }        
     }
 }
 
@@ -794,6 +816,8 @@
         mIconItems[ i ]->setVisible( true );
         mIconItems[ i ]->setSize( screenSize() );
     }
+    mBackGroundItem->setVisible( true );
+    mBackGroundItem->setSize( screenSize() );
     
     mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) );    
     mIconItems[ 1 ]->setIcon( mCoverFlow->getIcon( index.row() ) );   
@@ -823,6 +847,9 @@
     mIconItems[ 0 ]->setVisible( true );
     mIconItems[ 0 ]->setIcon( mCoverFlow->getIcon( mCoverFlow->getFocusIndex() ) );
     
+    mBackGroundItem->setVisible( true );
+    mBackGroundItem->setSize( screenSize() );
+    
     mCoverFlow->setVisible( false );
     mZoomWidget->setVisible( false );
     if ( mWindow->orientation() == Qt::Horizontal ) {
@@ -832,6 +859,16 @@
         HbEffect::start( mIconItems[0], QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "orientChangeAnimFinished" );
     }
 }
+
+void GlxFullScreenView::playZoomOrientChangeAnim()
+{
+    if ( mWindow->orientation() == Qt::Horizontal ) {
+        HbEffect::start( mZoomWidget, QString( "HbIconItem" ), QString( "RotateFSLS" ), this, "zoomOrientChangeAnimFinished" );
+    }
+    else {
+        HbEffect::start( mZoomWidget, QString( "HbIconItem" ), QString( "RotateFSPT" ), this, "zoomOrientChangeAnimFinished" );
+    }    
+}
 	
 void GlxFullScreenView::handleToolBarAction()
 {