phonebookui/pbkcommonui/src/cntcontactcardheadingitem.cpp
changeset 27 de1630741fbe
parent 25 76a2435edfd4
child 31 2a11b5b00470
--- a/phonebookui/pbkcommonui/src/cntcontactcardheadingitem.cpp	Fri Apr 16 14:53:18 2010 +0300
+++ b/phonebookui/pbkcommonui/src/cntcontactcardheadingitem.cpp	Mon May 03 12:24:20 2010 +0300
@@ -28,19 +28,21 @@
 #include <hbstyleloader.h>
 #include <hbtoucharea.h>
 #include <hbaction.h>
+#include <hbmainwindow.h>
 
 CntContactCardHeadingItem::CntContactCardHeadingItem(QGraphicsItem *parent) :
     HbWidget(parent),
-    mIcon(0),
-    mFirstLineText(0),
-    mPrimaryText(0),
-    mSecondLineText(0),
-    mSecondaryText(0),
-    mMarqueeItem(0),
-    mFrameItem(0),
-    mGestureFilter(0),
-    mGestureLongpressed(0),
-    mPictureArea(0)
+    mIcon(NULL),
+    mSecondaryIcon(NULL),
+    mFirstLineText(NULL),
+    mPrimaryText(NULL),
+    mSecondLineText(NULL),
+    mSecondaryText(NULL),
+    mMarqueeItem(NULL),
+    mFrameItem(NULL),
+    mGestureFilter(NULL),
+    mGestureLongpressed(NULL),
+    mPictureArea(NULL)
 {
 
 }
@@ -54,7 +56,7 @@
 {
     if (!icon.isNull())
     {
-        if (!mIcon)
+        if (!mIcon && mainWindow()->orientation() != Qt::Horizontal)
         {
             mIcon = new HbIconItem(this);
             mIcon->setIcon(icon);
@@ -69,6 +71,24 @@
         }
         mIcon = 0;
     }
+    
+    if (!secondaryIcon.isNull())
+        {
+            if (!mSecondaryIcon)
+            {
+                mSecondaryIcon = new HbIconItem(this);
+                mSecondaryIcon->setIcon(secondaryIcon);
+                style()->setItemName(mSecondaryIcon, "secondary_icon");
+            }
+        }
+        else
+        {
+            if (mSecondaryIcon)
+            {
+                delete mSecondaryIcon;
+            }
+            mSecondaryIcon = 0;
+        }
 
     if (!firstLineText.isNull())
     {
@@ -172,24 +192,27 @@
     if (!mFrameItem)
     {
         mFrameItem = new HbFrameItem(this);
-        mFrameItem->frameDrawer().setFrameGraphicsName("qtg_fr_groupbox");
+        mFrameItem->frameDrawer().setFrameGraphicsName("qtg_fr_list_parent_normal");
         mFrameItem->frameDrawer().setFrameType(HbFrameDrawer::NinePieces);
         mFrameItem->setZValue(-2);
         style()->setItemName(mFrameItem, "background");
     }
     
-
-    if (!mPictureArea) {
+    if (!mPictureArea) 
+    {
         mPictureArea = new HbTouchArea(this);
         style()->setItemName(mPictureArea, "pictureArea");
-        }
+    }
 
-    initGesture();
+    if ( mainWindow()->orientation() != Qt::Horizontal)
+    {
+        initGesture();
+    }
 }
 
 void CntContactCardHeadingItem::setIcon(const HbIcon newIcon)
 {
-    if (newIcon != icon)
+    if (newIcon != icon && mainWindow()->orientation() != Qt::Horizontal)
     {
         icon = newIcon;
         createPrimitives();
@@ -198,12 +221,33 @@
     }
 }
 
+void CntContactCardHeadingItem::setSecondaryIcon(bool favoriteContact)
+{
+    secondaryIcon.clear();
+
+    if (favoriteContact)
+    {
+        secondaryIcon = HbIcon("qtg_small_favorite");
+        createPrimitives();
+        mSecondaryIcon->setIcon(secondaryIcon);
+    }
+    else
+    {
+        createPrimitives();
+    }
+    repolish();
+
+}
+
 void CntContactCardHeadingItem::recreatePrimitives()
 {
     HbWidget::recreatePrimitives();
 
     delete mIcon;
     mIcon = 0;
+    
+    delete mSecondaryIcon;
+    mSecondaryIcon = 0;
 
     delete mFirstLineText;
     mFirstLineText = 0;
@@ -242,10 +286,12 @@
 
 bool CntContactCardHeadingItem::isCompanyName(const QContact* contact)
 {
-    return (!(contact->detail<QContactOrganization>().title().isNull()) || !(contact->detail<QContactOrganization>().name().isNull()));
+    return (!(contact->detail<QContactOrganization>().title().isNull()) 
+        || !(contact->detail<QContactOrganization>().name().isNull())
+        || !(contact->detail<QContactOrganization>().department().isEmpty()));
 }
 
-void CntContactCardHeadingItem::setDetails(const QContact* contact)
+void CntContactCardHeadingItem::setDetails(const QContact* contact, bool isMyCard)
 {
     primaryText.clear();
     firstLineText.clear();
@@ -254,7 +300,14 @@
     tinyMarqueeText.clear();
 
     // icon label
-    icon = HbIcon("qtg_large_avatar");
+    if (isMyCard)
+    {
+        icon = HbIcon("qtg_large_mycard");
+    }
+    else
+    {
+        icon = HbIcon("qtg_large_avatar");
+    }
 
     QContactName name = contact->detail<QContactName>();
 
@@ -267,7 +320,7 @@
         firstLineText = nameList.join(" ").trimmed();
         if (firstLineText.isEmpty())
         {
-            firstLineText = hbTrId("Unnamed");
+            firstLineText = hbTrId("txt_phob_list_unnamed");
         }
     }
     else
@@ -278,7 +331,7 @@
         primaryText = nameList.join(" ").trimmed();
         if (primaryText.isEmpty())
         {
-            primaryText = hbTrId("Unnamed");
+            primaryText = hbTrId("txt_phob_list_unnamed");
         }
         
         /*
@@ -328,7 +381,7 @@
     
     if (primaryText.isEmpty())
     {
-        primaryText = hbTrId("Unnamed");
+        primaryText = hbTrId("txt_phob_list_unnamed");
     }
        
     recreatePrimitives();
@@ -368,9 +421,34 @@
     mGestureFilter->addGesture(mGestureLongpressed);
     mGestureFilter->setLongpressAnimation(true);
     
-    installSceneEventFilter(mGestureFilter);
+    mIcon->installSceneEventFilter(mGestureFilter);
     connect(mGestureLongpressed, SIGNAL(longPress(QPointF)), this, SLOT(processLongPress(QPointF)));    
 }
 
+QVariant CntContactCardHeadingItem::itemChange(GraphicsItemChange change, const QVariant &value)
+{
+    if (change == QGraphicsItem::ItemSceneHasChanged)
+    {
+        HbMainWindow *window = mainWindow();
+        if (window)
+        {
+            connect(window, SIGNAL(orientationChanged(Qt::Orientation)), 
+                this, SLOT(orientationChanged(Qt::Orientation)));
+        }
+        else
+        {
+            QObject::disconnect(this, SLOT(orientationChanged(Qt::Orientation)));
+        }
+    }
+    return HbWidget::itemChange(change, value);
+}
+
+void CntContactCardHeadingItem::orientationChanged(Qt::Orientation)
+{
+    recreatePrimitives();
+    repolish();
+}
+
+
 // EOF