ui/views/fullscreenview/src/glxcoverflow.cpp
changeset 33 1ee2af37811f
parent 29 2c833fc9e98f
child 36 6481344a6d67
equal deleted inserted replaced
29:2c833fc9e98f 33:1ee2af37811f
    40        mStripLen (0),
    40        mStripLen (0),
    41        mCurrentPos(0),
    41        mCurrentPos(0),
    42        mItemSize (QSize(0,0)),
    42        mItemSize (QSize(0,0)),
    43        mModel ( NULL),
    43        mModel ( NULL),
    44        mMoveDir(NO_MOVE),
    44        mMoveDir(NO_MOVE),
    45        mSpeed ( GLX_COVERFLOW_SPEED )
    45        mSpeed ( GLX_COVERFLOW_SPEED ),
       
    46 	   mZoomOn(false),
       
    47 	   mMultitouchFilter(NULL)
    46 {
    48 {
    47 //TO:DO through exception
    49 //TO:DO through exception
    48    qDebug("GlxCoverFlow::GlxCoverFlow");
    50    qDebug("GlxCoverFlow::GlxCoverFlow");
    49    grabGesture(Qt::PanGesture);
    51    grabGesture(Qt::PanGesture);
    50    grabGesture(Qt::TapGesture);
    52    grabGesture(Qt::TapGesture);
    51    connect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ), Qt::QueuedConnection );
    53    connect( this, SIGNAL( autoLeftMoveSignal() ), this, SLOT( autoLeftMove() ), Qt::QueuedConnection );
    52    connect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ), Qt::QueuedConnection );   
    54    connect( this, SIGNAL( autoRightMoveSignal() ), this, SLOT( autoRightMove() ), Qt::QueuedConnection );   
    53 }
    55 }
    54 
    56 
       
    57 void GlxCoverFlow::setMultitouchFilter(QGraphicsItem* mtFilter)
       
    58 {
       
    59 	mMultitouchFilter = mtFilter;
       
    60 }
    55 void GlxCoverFlow::setCoverFlow()
    61 void GlxCoverFlow::setCoverFlow()
    56 {
    62 {
    57     qDebug("GlxCoverFlow::setCoverFlow");
    63     qDebug("GlxCoverFlow::setCoverFlow");
    58     for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) {
    64     for ( qint8 i = 0; i < NBR_ICON_ITEM ; i++ ) {
    59         mIconItem[i] = new HbIconItem(this);
    65         mIconItem[i] = new HbIconItem(this);
       
    66         mIconItem[i]->grabGesture(Qt::PinchGesture, Qt::ReceivePartialGestures);
       
    67         mIconItem[i]->installSceneEventFilter(mMultitouchFilter);
    60         mIconItem[i]->setBrush(QBrush(Qt::black));
    68         mIconItem[i]->setBrush(QBrush(Qt::black));
    61         mIconItem[i]->setSize(QSize(0,0));
    69         mIconItem[i]->setSize(QSize(0,0));
    62     }
    70     }
    63     mUiOn = FALSE;
    71     mUiOn = FALSE;
    64     mBounceBackDeltaX = 10;
    72     mBounceBackDeltaX = 10;
   284         if ( mRows == 1 || selIndex != mSelIndex ) {
   292         if ( mRows == 1 || selIndex != mSelIndex ) {
   285             mSelIndex = selIndex;
   293             mSelIndex = selIndex;
   286             mSelItemIndex = ( ++mSelItemIndex ) % NBR_ICON_ITEM;
   294             mSelItemIndex = ( ++mSelItemIndex ) % NBR_ICON_ITEM;
   287             selIndex = ( mSelItemIndex + 2 ) % NBR_ICON_ITEM;
   295             selIndex = ( mSelItemIndex + 2 ) % NBR_ICON_ITEM;
   288             updateIconItem( mSelIndex + 2, selIndex, width * 2 ) ;
   296             updateIconItem( mSelIndex + 2, selIndex, width * 2 ) ;
       
   297 			if(!mZoomOn) {
   289             emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
   298             emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
       
   299 			}
   290         }
   300         }
   291         mMoveDir = NO_MOVE;
   301         mMoveDir = NO_MOVE;
   292         mBounceBackDeltaX = 10;
   302         mBounceBackDeltaX = 10;
   293         mSpeed = GLX_COVERFLOW_SPEED;
   303         mSpeed = GLX_COVERFLOW_SPEED;
   294     }   
   304     }   
   336         if ( mRows == 1 || selIndex != mSelIndex ) {
   346         if ( mRows == 1 || selIndex != mSelIndex ) {
   337             mSelIndex = selIndex;
   347             mSelIndex = selIndex;
   338             mSelItemIndex = ( mSelItemIndex == 0 ) ?  NBR_ICON_ITEM -1 : --mSelItemIndex;
   348             mSelItemIndex = ( mSelItemIndex == 0 ) ?  NBR_ICON_ITEM -1 : --mSelItemIndex;
   339             selIndex = ( mSelItemIndex + 3 ) % NBR_ICON_ITEM;
   349             selIndex = ( mSelItemIndex + 3 ) % NBR_ICON_ITEM;
   340             updateIconItem( mSelIndex - 2, selIndex, - width * 2 ) ;
   350             updateIconItem( mSelIndex - 2, selIndex, - width * 2 ) ;
       
   351 			if(!mZoomOn) {
   341             emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
   352             emit changeSelectedIndex ( mModel->index ( mSelIndex, 0 ) ) ;
       
   353 			}
   342         }
   354         }
   343         mMoveDir = NO_MOVE;
   355         mMoveDir = NO_MOVE;
   344         mBounceBackDeltaX = 10;
   356         mBounceBackDeltaX = 10;
   345         mSpeed = GLX_COVERFLOW_SPEED;
   357         mSpeed = GLX_COVERFLOW_SPEED;
   346     }
   358     }
   540     if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
   552     if ( variant.isValid() &&  variant.canConvert<int> ()  ) {
   541         substate = variant.value<int>();
   553         substate = variant.value<int>();
   542     }
   554     }
   543     return substate;
   555     return substate;
   544 }
   556 }
       
   557 void GlxCoverFlow::zoomStarted(int index)
       
   558 {
       
   559 	mZoomOn = true;	
       
   560 }
       
   561 void GlxCoverFlow::zoomFinished(int index)
       
   562 { 
       
   563 	mZoomOn = false;
       
   564 	indexChanged(index);
       
   565 
       
   566 }