emailuis/nmhswidget/src/nmhswidgetemailrow.cpp
changeset 62 a8c646b56683
parent 47 f83bd4ae1fe3
child 66 084b5b1f02a7
--- a/emailuis/nmhswidget/src/nmhswidgetemailrow.cpp	Thu Aug 05 21:09:09 2010 +0300
+++ b/emailuis/nmhswidget/src/nmhswidgetemailrow.cpp	Mon Aug 23 23:32:31 2010 +0300
@@ -23,6 +23,8 @@
 #include <hbframeitem.h>
 #include <hbcolorscheme.h>
 #include <hbevent.h>
+#include <hbtapgesture.h>
+#include <hbinstantfeedback.h>
 #include "nmicons.h"
 #include "nmcommon.h"
 #include "nmhswidgetemailrow.h"
@@ -40,6 +42,7 @@
     mBackgroundLayoutItem(0)
 {
     NM_FUNCTION;
+    grabGesture(Qt::TapGesture);
 }
 
 /*!
@@ -121,7 +124,7 @@
         mTimeLabel = static_cast<HbLabel*> (loader.findWidget(KNmHsWidgetMailRowTimeLabel));
     
         //icons
-        mNewMailIcon = static_cast<HbLabel*> (loader.findWidget(KNmHsWidgetMailRowNewMailIcon));
+        mNewMailIcon = static_cast<HbWidget*> (loader.findWidget(KNmHsWidgetMailRowNewMailIcon));
         // KNmHsWidgetMailRowLeftIcon is not yet used, because followup information is not shown in client side
         // and thus it is not wanted to be shown in widget side
         mStatusIcons.append(static_cast<HbLabel*> (loader.findWidget(KNmHsWidgetMailRowRightIcon)));
@@ -240,16 +243,18 @@
     //Time shown if message is sent today, otherwise show date
     HbExtendedLocale locale = HbExtendedLocale::system();
     QDateTime now = QDateTime::currentDateTime();
-    if ( mMessageSentTime.date() == now.date() )
+    //change time to locale time. mMessageSentTime is always in GMT
+    QDateTime localTime = mMessageSentTime.addSecs(locale.universalTimeOffset());
+    if ( localTime.date() == now.date() )
         {
         //time format specification
         QString timeSpec = r_qtn_time_usual;
-        mTimeLabel->setPlainText( locale.format(mMessageSentTime.time(), timeSpec) );
+        mTimeLabel->setPlainText( locale.format(localTime.time(), timeSpec) );
         }
     else
         {
         QString dateSpec = r_qtn_date_without_year;
-        mTimeLabel->setPlainText( locale.format(mMessageSentTime.date(), dateSpec) );
+        mTimeLabel->setPlainText( locale.format(localTime.date(), dateSpec) );
         }
     }
 
@@ -380,27 +385,39 @@
     }
     }
 
-/*!
- mousePressEvent(QGraphicsSceneMouseEvent *event)
+/*
+ * NmHsWidgetEmailRow::gestureEvent(QGestureEvent *event)
  */
-void NmHsWidgetEmailRow::mousePressEvent(QGraphicsSceneMouseEvent *event)
+void NmHsWidgetEmailRow::gestureEvent(QGestureEvent *event)
 {
     NM_FUNCTION;
-    Q_UNUSED(event); 
-    setHighlighedFontsColor(true);
-    showHighlight(true);
-}
-
-/*!
-    mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
-*/
-void NmHsWidgetEmailRow::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
-{
-    NM_FUNCTION;
-    Q_UNUSED(event);
-    setHighlighedFontsColor(false);
-    showHighlight(false);
-    emit mailViewerLaunchTriggered(mMessageId);
+    if(!event){
+        return;
+    }
+    HbTapGesture *gesture = qobject_cast<HbTapGesture *>(event->gesture(Qt::TapGesture));
+    if(!gesture){
+        return;
+    }
+    switch (gesture->state()) {
+        case Qt::GestureStarted:
+            setHighlighedFontsColor(true);
+            showHighlight(true);
+        break;
+        case Qt::GestureCanceled:
+            setHighlighedFontsColor(false);
+            showHighlight(false);
+        break;
+        case Qt::GestureFinished:
+            setHighlighedFontsColor(false);
+            showHighlight(false);
+            if (gesture->tapStyleHint() == HbTapGesture::Tap) {
+                HbInstantFeedback::play(HbFeedback::BasicItem);
+                emit mailViewerLaunchTriggered(mMessageId);
+            }
+        break;
+    default: 
+        break;
+    }
 }
 
 /*