Ok guys, i am getting mad here. I am trying to enable pinch zoom in my app but with no luck whatsoever. What i am doing wrong?
And:Code:class PreviewWidget : public QWidget { Q_OBJECT public: PreviewWidget(QWidget *parent = 0); protected: void paintEvent(QPaintEvent *); void resizeEvent(QResizeEvent *); void mousePressEvent(QMouseEvent *); void mouseMoveEvent(QMouseEvent *); void mouseReleaseEvent(QMouseEvent *); void pinchGesture(QPinchGesture *); bool event(QEvent *event); bool gestureEvent(QGestureEvent *event); private: QPixmap image; QPointF _viewOffset; qreal _zoomFactor; bool isDragging; };
i have oimitted some extra methods which are not relevant. The point is my widget NEVER receive any gesture... Why is this? Can somebody help me?Code:PreviewWidget::PreviewWidget(QWidget *parent) : QWidget(parent) { grabGesture(Qt::PinchGesture); isDragging = false; } void PreviewWidget::resizeEvent(QResizeEvent * re) { calculateZoom(re->size()); update(); } void PreviewWidget::paintEvent(QPaintEvent *) { QPainter painter(this); painter.scale( _zoomFactor, _zoomFactor ); painter.translate( -_viewOffset ); painter.drawPixmap( 0,0, image ); } void PreviewWidget::mousePressEvent(QMouseEvent * me) { isDragging = true; _dragStart = me->posF(); } void PreviewWidget::mouseMoveEvent(QMouseEvent *me) { if ( isDragging ) { [...omitted...] } } void PreviewWidget::mouseReleaseEvent(QMouseEvent *me) { isDragging = false; } bool PreviewWidget::event(QEvent *event) { if (event->type() == QEvent::Gesture) return gestureEvent(static_cast<QGestureEvent*>(event)); return QWidget::event(event); } bool PreviewWidget::gestureEvent(QGestureEvent *event) { if (QGesture *pinch = event->gesture(Qt::PinchGesture)) pinchGesture(static_cast<QPinchGesture *>(pinch)); return true; } void PreviewWidget::pinchGesture(QPinchGesture * gesture) { _zoomFactor *= gesture->scaleFactor(); }
I am building using Qt 4.7.3 for Symbian^3 and testing on a C6-01...
I cannot see the problem and i have been trying hard, also the imagegestures kinda work (pinch seems, other does not seems)



