ui/views/slideshowview/src/glxslideshowwidget.cpp
changeset 29 2c833fc9e98f
parent 24 99ad1390cd33
child 36 6481344a6d67
--- a/ui/views/slideshowview/src/glxslideshowwidget.cpp	Mon May 03 12:31:32 2010 +0300
+++ b/ui/views/slideshowview/src/glxslideshowwidget.cpp	Fri May 14 15:52:22 2010 +0300
@@ -26,6 +26,8 @@
 #include <hbmainwindow.h>
 #include <hbdocumentloader.h>
 #include <QAbstractItemModel>
+#include <QGesture>
+#include <hbpangesture.h>
 
 
 //User Includes
@@ -38,12 +40,19 @@
 #include <glxtracer.h>
 
 
-GlxSlideShowWidget::GlxSlideShowWidget( QGraphicsItem *parent ) : HbScrollArea(parent), 
-                      mEffectEngine(NULL), mContinueButton(NULL), mItemIndex(1), 
-                      mSelIndex(0), mSlideTimer(NULL), mModel(NULL)
-    {
+GlxSlideShowWidget::GlxSlideShowWidget( QGraphicsItem *parent ) 
+    : HbWidget(parent), 
+      mEffectEngine(NULL), 
+      mContinueButton(NULL), 
+      mItemIndex(1), 
+      mSelIndex(0), 
+      mSlideTimer(NULL), 
+      mModel(NULL)
+{
     TRACER("GlxSlideShowWidget::GlxSlideShowWidget()");
-    }
+    grabGesture( Qt::PanGesture );
+    grabGesture( Qt::TapGesture );
+}
 
 void GlxSlideShowWidget::setSlideShowWidget(HbDocumentLoader *DocLoader)
     {
@@ -286,31 +295,31 @@
 
 
 void GlxSlideShowWidget::orientationChanged(QRect screenRect)
-    {
+{
     TRACER("GlxSlideShowWidget::orientationChanged()");
     cancelEffect();
     setItemGeometry( screenRect);
     resetSlideShow();
-    }
+}
 
 
 void GlxSlideShowWidget::leftGesture(int value)
-    {
+{
     Q_UNUSED(value)
     TRACER("GlxSlideShowWidget::leftGesture()");
 
     int index = ( mItemIndex + 1 ) % NBR_ITEM;
     moveImage( index, mScreenRect.width(), QString("LeftMove"), "leftMoveEffectFinished");
-    }
+}
 
 void GlxSlideShowWidget::rightGesture(int value)
-    {
+{
     Q_UNUSED(value)
     TRACER ("GlxSlideShowWidget::rightGesture()");
 
     int index = mItemIndex ? mItemIndex - 1 : NBR_ITEM - 1;
     moveImage( index, -mScreenRect.width(), QString("RightMove"), "rightMoveEffectFinished"); 
-    }
+}
 
 void GlxSlideShowWidget::leftMoveEffectFinished( const HbEffect::EffectStatus &status )
     {
@@ -344,22 +353,34 @@
     emit indexchanged(); // on right swipe
     } 
 
-void GlxSlideShowWidget::mouseReleaseEvent( QGraphicsSceneMouseEvent *event)
-    {
-    Q_UNUSED( event )
-    TRACER ( "GlxSlideShowWidget::mouseReleaseEvent( ) ");
-    GLX_LOG_INFO1 ( "GlxSlideShowWidget::mouseReleaseEvent( ) is pause %d", mIsPause);
-    if ( mIsPause == false ) {
-    pauseSlideShow();
+ 
+void GlxSlideShowWidget::gestureEvent(QGestureEvent *event)
+{  
+    if( QTapGesture *gesture = static_cast<QTapGesture *>( event->gesture( Qt::TapGesture ) ) ) {        
+        if ( gesture->state() == Qt::GestureFinished ) {
+            if ( mIsPause == false ) {
+                pauseSlideShow();
+            }
+            event->accept(gesture);
+        }
     }
+      
+    if (QPanGesture *panningGesture = qobject_cast<QPanGesture*>(event->gesture(Qt::PanGesture))) {
+        HbPanGesture *hbPanGesture = qobject_cast<HbPanGesture *>(panningGesture);
+        if ( hbPanGesture ) {
+            if( hbPanGesture->state() == Qt::GestureFinished ) {
+                QPointF delta( hbPanGesture->sceneDelta() );
+                if ( delta.x() > 0 ) {
+                    rightGesture( delta.x() );
+                }
+                else {
+                    leftGesture( delta.x() );
+                }
+            }
+            event->accept(panningGesture);
+        }
     }
-
-void GlxSlideShowWidget::mousePressEvent ( QGraphicsSceneMouseEvent * event )
-    {
-    Q_UNUSED( event )
-    TRACER ( "GlxSlideShowWidget::mousePressEvent( ) ");
-    GLX_LOG_INFO1 ( "GlxSlideShowWidget::mousePressEvent( ) is pause %d", mIsPause);
-    }
+}    
 
 void GlxSlideShowWidget::startSlideShow ( )
     {