62 CalendarWidget::CalendarWidget(QGraphicsItem* parent, Qt::WindowFlags flags) |
62 CalendarWidget::CalendarWidget(QGraphicsItem* parent, Qt::WindowFlags flags) |
63 : HbWidget(parent, flags) |
63 : HbWidget(parent, flags) |
64 { |
64 { |
65 LOGS("CalendarWidget::CalendarWidget"); |
65 LOGS("CalendarWidget::CalendarWidget"); |
66 grabGesture(Qt::TapGesture); |
66 grabGesture(Qt::TapGesture); |
67 grabGesture(Qt::PanGesture); |
|
68 grabGesture(Qt::PinchGesture); |
|
69 grabGesture(Qt::SwipeGesture); |
|
70 mWidgetLoaded = false; |
67 mWidgetLoaded = false; |
|
68 mIsTapAndHold = false; |
71 } |
69 } |
72 |
70 |
73 /* |
71 /* |
74 * CalendarWidget::~CalendarWidget() |
72 * CalendarWidget::~CalendarWidget() |
75 */ |
73 */ |
333 if (QTapGesture *tap = (QTapGesture*)event->gesture(Qt::TapGesture)) { |
321 if (QTapGesture *tap = (QTapGesture*)event->gesture(Qt::TapGesture)) { |
334 QPointF posFromScene = mapFromScene(event->mapToGraphicsScene(tap->position())); |
322 QPointF posFromScene = mapFromScene(event->mapToGraphicsScene(tap->position())); |
335 switch(tap->state()) { |
323 switch(tap->state()) { |
336 case Qt::GestureStarted: |
324 case Qt::GestureStarted: |
337 emit mousePressed(posFromScene); |
325 emit mousePressed(posFromScene); |
|
326 mIsTapAndHold = false; |
338 LOGS("CalendarWidget::gestureEvent => gestureStarted"); |
327 LOGS("CalendarWidget::gestureEvent => gestureStarted"); |
339 break; |
328 break; |
340 case Qt::GestureUpdated: |
329 case Qt::GestureUpdated: |
341 LOGS("CalendarWidget::gestureEvent => gestureUpdated"); |
330 LOGS("CalendarWidget::gestureEvent => gestureUpdated"); |
|
331 emit mouseReleased(); |
|
332 mIsTapAndHold = true; |
342 break; |
333 break; |
343 case Qt::GestureFinished: |
334 case Qt::GestureFinished: |
344 emit tapGesture(posFromScene); |
335 LOGS("CalendarWidget::gestureEvent => gestureFinished"); |
|
336 if( !mIsTapAndHold ) { |
|
337 /*workaround for calendar launch: calendar should launched only in case of tap |
|
338 *this seems to be a bug in the framework as the tap |
|
339 *gesture should be canceled and not finished when a tap and hold gesture is started |
|
340 */ |
|
341 emit tapGesture(posFromScene); |
|
342 } |
|
343 //highlight should be turned off |
345 emit mouseReleased(); |
344 emit mouseReleased(); |
346 LOGS("CalendarWidget::gestureEvent => gestureFinished"); |
|
347 break; |
345 break; |
348 case Qt::GestureCanceled: |
346 case Qt::GestureCanceled: |
349 LOGS("CalendarWidget::gestureEvent => gestureCanceled"); |
347 LOGS("CalendarWidget::gestureEvent => gestureCanceled"); |
|
348 emit mouseReleased(); |
350 break; |
349 break; |
351 default: |
350 default: |
352 break; |
351 break; |
353 } |
352 } |
354 } |
353 } |
355 |
354 |
356 if(QPanGesture *pan = (QPanGesture*)event->gesture(Qt::PanGesture)) { |
|
357 switch (pan->state()) { |
|
358 case Qt::GestureFinished: |
|
359 emit mouseReleased(); |
|
360 break; |
|
361 default: |
|
362 break; |
|
363 } |
|
364 } |
|
365 |
|
366 if (QSwipeGesture *swipe = (QSwipeGesture*)event->gesture(Qt::SwipeGesture)) { |
|
367 switch (swipe->state()) { |
|
368 case Qt::GestureFinished: |
|
369 emit mouseReleased(); |
|
370 break; |
|
371 default: |
|
372 break; |
|
373 } |
|
374 } |
|
375 |
|
376 if (QPinchGesture *pinch = (QPinchGesture*)event->gesture(Qt::PinchGesture)) { |
|
377 switch (pinch->state()) { |
|
378 case Qt::GestureFinished: |
|
379 emit mouseReleased(); |
|
380 break; |
|
381 default: |
|
382 break; |
|
383 } |
|
384 } |
|
385 } |
355 } |
386 |
356 |
387 /* |
357 /* |
388 * CalendarWidget::mousePressEvent() |
358 * CalendarWidget::mousePressEvent() |
389 */ |
359 */ |