diff -r b2d662d68a49 -r 6ea82847f1b7 calendarwidgetplugin/src/calendarwidget.cpp --- a/calendarwidgetplugin/src/calendarwidget.cpp Fri Sep 17 08:27:22 2010 +0300 +++ b/calendarwidgetplugin/src/calendarwidget.cpp Mon Oct 04 00:05:38 2010 +0300 @@ -64,10 +64,8 @@ { LOGS("CalendarWidget::CalendarWidget"); grabGesture(Qt::TapGesture); - grabGesture(Qt::PanGesture); - grabGesture(Qt::PinchGesture); - grabGesture(Qt::SwipeGesture); mWidgetLoaded = false; + mIsTapAndHold = false; } /* @@ -238,16 +236,6 @@ emit themeChanged(); } - if (eventType == QEvent::Gesture) { - QGestureEvent* gesture = static_cast(event); - QList gestureList = gesture->gestures(); - for (int i = 0; i < gestureList.count(); i++) { - int type = gestureList.at(i)->gestureType(); - qDebug() << "type = " << type; - } - gestureEvent(static_cast(event)); - consumed = true; - } return consumed; } @@ -335,53 +323,35 @@ switch(tap->state()) { case Qt::GestureStarted: emit mousePressed(posFromScene); + mIsTapAndHold = false; LOGS("CalendarWidget::gestureEvent => gestureStarted"); break; case Qt::GestureUpdated: LOGS("CalendarWidget::gestureEvent => gestureUpdated"); + emit mouseReleased(); + mIsTapAndHold = true; break; case Qt::GestureFinished: - emit tapGesture(posFromScene); + LOGS("CalendarWidget::gestureEvent => gestureFinished"); + if( !mIsTapAndHold ) { + /*workaround for calendar launch: calendar should launched only in case of tap + *this seems to be a bug in the framework as the tap + *gesture should be canceled and not finished when a tap and hold gesture is started + */ + emit tapGesture(posFromScene); + } + //highlight should be turned off emit mouseReleased(); - LOGS("CalendarWidget::gestureEvent => gestureFinished"); break; case Qt::GestureCanceled: LOGS("CalendarWidget::gestureEvent => gestureCanceled"); + emit mouseReleased(); break; default: break; } } - if(QPanGesture *pan = (QPanGesture*)event->gesture(Qt::PanGesture)) { - switch (pan->state()) { - case Qt::GestureFinished: - emit mouseReleased(); - break; - default: - break; - } - } - - if (QSwipeGesture *swipe = (QSwipeGesture*)event->gesture(Qt::SwipeGesture)) { - switch (swipe->state()) { - case Qt::GestureFinished: - emit mouseReleased(); - break; - default: - break; - } - } - - if (QPinchGesture *pinch = (QPinchGesture*)event->gesture(Qt::PinchGesture)) { - switch (pinch->state()) { - case Qt::GestureFinished: - emit mouseReleased(); - break; - default: - break; - } - } } /*