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 } |