calendarwidgetplugin/src/calendarwidget.cpp
changeset 4 6ea82847f1b7
parent 1 f8e7eccf5f96
--- 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<QGestureEvent*>(event);
-        QList<QGesture*> gestureList = gesture->gestures();
-        for (int i = 0; i < gestureList.count(); i++) {
-            int type = gestureList.at(i)->gestureType();
-            qDebug() << "type = " << type;
-        }
-        gestureEvent(static_cast<QGestureEvent*>(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;
-        }
-    }
 }
 
 /*