diff -r fb37077c270f -r 743eb0b9959e ui/views/fullscreenview/src/glxfullscreenview.cpp --- a/ui/views/fullscreenview/src/glxfullscreenview.cpp Wed Aug 18 09:48:53 2010 +0300 +++ b/ui/views/fullscreenview/src/glxfullscreenview.cpp Thu Sep 02 20:26:45 2010 +0300 @@ -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 () ) { @@ -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() {