phonebookui/pbkcommonui/src/cntcontactcarddetailitem.cpp
changeset 37 fd64c38c277d
parent 31 2a11b5b00470
child 40 b46a585f6909
--- a/phonebookui/pbkcommonui/src/cntcontactcarddetailitem.cpp	Fri May 14 15:42:23 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntcontactcarddetailitem.cpp	Thu May 27 12:45:19 2010 +0300
@@ -31,8 +31,7 @@
 #include <hbinstantfeedback.h>
 #include <hbcolorscheme.h>
 #include <QGestureEvent>
-#include <QTapGesture>
-#include <hbtoucharea.h>
+#include <hbtapgesture.h>
 
 
 CntContactCardDetailItem::CntContactCardDetailItem(int index, QGraphicsItem *parent, bool isFocusable) :
@@ -51,10 +50,11 @@
 {  
     if (mIsFocusable)
     {
-        HbEffect::add(QString("frameitem"), QString(":/xml/edit_button_pressed.fxml"), QString("pressed"));
-        HbEffect::add(QString("frameitem"), QString(":/xml/edit_button_released.fxml"), QString("released"));
+        HbEffect::add("frameitem", "listviewitem_press", "pressed");
+        HbEffect::add("frameitem", "listviewitem_release", "released");
         initGesture();
     }
+    setProperty("state", "normal");
 }
 
 CntContactCardDetailItem::~CntContactCardDetailItem()
@@ -148,7 +148,7 @@
         style()->setItemName(mFocusItem, "highlight");
     }
    
-    updatePrimitives();
+    HbWidget::updatePrimitives();
     updateGeometry();
     repolish();
 }
@@ -162,72 +162,54 @@
 
 void CntContactCardDetailItem::initGesture()
 {
-    grabGesture(Qt::TapAndHoldGesture, Qt::ReceivePartialGestures);
-    grabGesture(Qt::TapGesture, Qt::ReceivePartialGestures);
+    grabGesture(Qt::TapGesture);
 }
 
 void CntContactCardDetailItem::gestureEvent(QGestureEvent* event)
 {
     qDebug() << "CntContactCardDetailItem::gestureEvent - IN";
-    event->accept( Qt::TapAndHoldGesture );
-    
-    if (QGesture *tap = event->gesture(Qt::TapGesture))
+    if (HbTapGesture *tap = qobject_cast<HbTapGesture *>(event->gesture(Qt::TapGesture))) 
     {
-        tapTriggered(static_cast<QTapGesture *>(tap));
-        event->accept( tap );
-    }
-    
-    if (QGesture *tapAndHold = event->gesture(Qt::TapAndHoldGesture))
+        switch(tap->state()) 
+        {
+            case Qt::GestureStarted:  //
+                if (mIsFocusable)
+                {
+                    HbInstantFeedback::play(HbFeedback::Basic);
+                }
+                mHasFocus = true;
+                updatePrimitives();
+                break;
+            case Qt::GestureCanceled: // Reset state
+                mHasFocus = false;
+                updatePrimitives();
+                break;
+            case Qt::GestureUpdated:
+                if(tap->tapStyleHint() == HbTapGesture::TapAndHold) 
+                {
+                    emit onLongPress(event->mapToGraphicsScene(tap->position()));
+                }
+                break;
+            case Qt::GestureFinished: // emit clicked
+                mHasFocus = false;
+                updatePrimitives();
+                if (tap->tapStyleHint() == HbTapGesture::Tap) 
+                {
+                    emit clicked();                  
+                }
+                break;
+            default:
+                break;
+        }  
+        event->accept();
+    } 
+    else 
     {
-        tapAndHoldTriggered(static_cast<QTapAndHoldGesture *>(tapAndHold));
-        event->accept( tapAndHold );
+        event->ignore();
     }
     qDebug() << "CntContactCardDetailItem::gestureEvent - OUT";
 }
 
-void CntContactCardDetailItem::tapTriggered(QTapGesture *gesture)
-{
-    qDebug() << "CntContactdDetailItem::tagTriggered - IN";
-    
-    Qt::GestureState state = gesture->state();
-    qDebug() << "CntContactdDetailItem::tagTriggered, state: " << state;
-    switch ( state ) 
-    {
-        case Qt::GestureStarted:
-        {
-            if (mIsFocusable)
-            {
-                HbInstantFeedback::play(HbFeedback::Basic);
-            }
-            mHasFocus = true;
-            updatePrimitives();
-            break;
-        }
-        case Qt::GestureFinished:
-        case Qt::GestureCanceled:
-        {
-            mHasFocus = false;
-            updatePrimitives();
-            emit clicked(); // also in GestureCancelled?
-            break;
-        }
-        default:
-        {
-            break;
-        }
-    }
-    qDebug() << "CntContactdDetailItem::tagTriggered - OUT";
-}
-
-void CntContactCardDetailItem::tapAndHoldTriggered(QTapAndHoldGesture *gesture)
-{
-    if (gesture->state() == Qt::GestureFinished)
-    {
-        onLongPress(gesture->position());
-    }
-}    
-
-
 void CntContactCardDetailItem::onLongPress(const QPointF &point)
 {
     mHasFocus = false;
@@ -237,54 +219,20 @@
 
 void CntContactCardDetailItem::updatePrimitives()
 {
-    HbWidget::updatePrimitives();
     if (mHasFocus && mIsFocusable)
     {
         mFocusItem->setVisible(true);
-        HbEffect::start(mFocusItem, QString("frameitem"), QString("pressed"));
+        setProperty("state", "pressed");
+        HbEffect::start(mFocusItem, QString("frameitem"), QString("pressed"));      
     }
     else
     {
         HbEffect::start(mFocusItem, QString("frameitem"), QString("released"));
+        mFocusItem->setVisible(false);
+        setProperty("state", "normal");
     }
-}
-
-/*
-void CntContactCardDetailItem::mousePressEvent(QGraphicsSceneMouseEvent *event)
-{
-    if (mIsFocusable)
-    {
-        HbInstantFeedback::play(HbFeedback::Basic);
-    }
-    event->accept();
-    mHasFocus = true;
-    updatePrimitives();
+    HbWidget::updatePrimitives();
 }
-*/
-/*
-void CntContactCardDetailItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
-{
-    if (!rect().contains(event->pos()) && mHasFocus)
-    {
-        mHasFocus = false;
-        updatePrimitives();
-    }
-    event->accept();
-}
-
-
-void CntContactCardDetailItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
-{
-    bool hadFocus = mHasFocus;
-    mHasFocus = false;
-    if (rect().contains(event->pos()) && hadFocus)
-    {
-        updatePrimitives();
-        emit clicked();
-    }
-    event->accept();
-}
-*/
 
 void CntContactCardDetailItem::setDetails(CntContactCardDataItem* aDataItem)
 {