void DisplayGroupGraphicsView::gestureEvent( QGestureEvent* evt ) { QGesture* gesture = 0; if( ( gesture = evt->gesture( Qt::SwipeGesture ))) { evt->accept( Qt::SwipeGesture ); swipe( static_cast< QSwipeGesture* >( gesture )); } else if( ( gesture = evt->gesture( PanGestureRecognizer::type( )))) { evt->accept( PanGestureRecognizer::type( )); pan( static_cast< PanGesture* >( gesture )); } else if( ( gesture = evt->gesture( PinchGestureRecognizer::type( )))) { evt->accept( PinchGestureRecognizer::type( )); pinch( static_cast< PinchGesture* >( gesture )); } else if( ( gesture = evt->gesture( Qt::TapGesture ))) { evt->accept( Qt::TapGesture ); tap( static_cast< QTapGesture* >( gesture )); } else if( ( gesture = evt->gesture( Qt::TapAndHoldGesture ))) { evt->accept( Qt::TapAndHoldGesture ); tapAndHold( static_cast< QTapAndHoldGesture* >( gesture )); } }
void MouseMachine::slotTapAndHold() { qDebug() << "--- slotTapAndHold " << curPos << " : " << theParent->mapFromGlobal(QCursor::pos()); tapHoldTimer.stop(); emit tapAndHold(firstPress); }
void DisplayGroupGraphicsView::gestureEvent( QGestureEvent* event ) { if( QGesture* gesture = event->gesture( Qt::SwipeGesture )) { event->accept( Qt::SwipeGesture ); swipe( static_cast< QSwipeGesture* >( gesture )); } else if( QGesture* gesture = event->gesture( Qt::PanGesture )) { event->accept( Qt::PanGesture ); pan( static_cast< QPanGesture* >( gesture )); } else if( QGesture* gesture = event->gesture( Qt::PinchGesture )) { event->accept( Qt::PinchGesture ); pinch( static_cast< QPinchGesture* >( gesture )); } else if( QGesture* gesture = event->gesture( Qt::TapGesture )) { event->accept( Qt::TapGesture ); tap( static_cast< QTapGesture* >( gesture )); } else if( QGesture* gesture = event->gesture( Qt::TapAndHoldGesture )) { event->accept( Qt::TapAndHoldGesture ); tapAndHold( static_cast< QTapAndHoldGesture* >( gesture )); } }
TapAndHoldDetector::TapAndHoldDetector( const uint tapAndHoldTimeoutMs, const qreal moveThresholdPx ) : _moveThresholdPx( moveThresholdPx ) { _tapAndHoldTimer.setInterval( tapAndHoldTimeoutMs ); connect( &_tapAndHoldTimer, &QTimer::timeout, [this]() { emit tapAndHold( MathUtils::computeCenter( _touchStartPos ), _touchStartPos.size( )); }); }