emailuis/nmailui/src/nmmailboxlistviewitem.cpp
changeset 30 759dc5235cdb
parent 27 9ba4404ef423
child 47 f83bd4ae1fe3
--- a/emailuis/nmailui/src/nmmailboxlistviewitem.cpp	Thu May 27 12:43:55 2010 +0300
+++ b/emailuis/nmailui/src/nmmailboxlistviewitem.cpp	Fri Jun 11 13:27:14 2010 +0300
@@ -17,6 +17,9 @@
 
 #include "nmuiheaders.h"
 
+const QString NmMailboxListViewItemIcon = "MailboxListViewMailboxIcon";
+const QString NmMailboxListViewItemName = "MailboxListViewMailboxName";
+
 /*!
     \class NmMailboxListViewItem
     \brief Mailbox list view item inherited from HbListViewItem
@@ -29,6 +32,7 @@
 : HbListViewItem(parent),
 mLayout(NULL)
 {
+    NM_FUNCTION;
 }
 
 /*!
@@ -36,6 +40,7 @@
 */
 NmMailboxListViewItem::~NmMailboxListViewItem()
 {
+    NM_FUNCTION;
 }
 
 /*!
@@ -43,6 +48,8 @@
 */
 HbListViewItem* NmMailboxListViewItem::createItem()
 {
+    NM_FUNCTION;
+    
     return new NmMailboxListViewItem(*this);
 }
 
@@ -51,6 +58,8 @@
 */
 void NmMailboxListViewItem::updateChildItems()
 {
+    NM_FUNCTION;
+    
     // To create primitives
     HbListViewItem::updateChildItems();
 
@@ -58,12 +67,17 @@
     
     NmMailboxMetaData *mailbox =
             modelIndex().data(Qt::DisplayRole).value<NmMailboxMetaData*>();
-    if (mailbox){
+    
+    HbLabel *textLabel = findChild<HbLabel *>(NmMailboxListViewItemName);
+    HbLabel *icon = findChild<HbLabel *>(NmMailboxListViewItemIcon);
+    
+    if (mailbox && !textLabel && !icon){
         mLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);
         mLayout->setContentsMargins(0,0,0,0);
 
         HbLabel *mbIcon = new HbLabel();
-        mbIcon->setObjectName("MailboxListViewMailboxIcon");
+        mbIcon->setParent(this);
+        mbIcon->setObjectName(NmMailboxListViewItemIcon);
         
         QString domainName = mailbox->address();
         QString iconName = mailboxInfo.mailboxIcon(domainName);
@@ -71,7 +85,8 @@
         mbIcon->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
 
         HbLabel *mbName = new HbLabel();
-        mbName->setObjectName("MailboxListViewMailboxName");
+        mbName->setParent(this);
+        mbName->setObjectName(NmMailboxListViewItemName);
         mbName->setPlainText(mailbox->name());
         mbName->setAlignment(Qt::AlignVCenter);
         mbName->setFontSpec(HbFontSpec(HbFontSpec::Primary));
@@ -82,6 +97,17 @@
         mLayout->setItemSpacing(0,0);
 
         setLayout(mLayout); // Ownership is transferred
+    } else if (mailbox) {
+        
+        if (textLabel) {
+            textLabel->setPlainText(mailbox->name());
+        }
+        
+        QString iconName = mailboxInfo.mailboxIcon(mailbox->address());
+        if (icon && !iconName.isEmpty()) {
+            icon->setIcon(HbIcon(iconName));
+        }
+        
     }
 }
 
@@ -90,6 +116,8 @@
 */
 bool NmMailboxListViewItem::canSetModelIndex(const QModelIndex &index)
 {
+    NM_FUNCTION;
+    
     Q_UNUSED(index);
     return true;
 }
@@ -99,6 +127,8 @@
 */
 void NmMailboxListViewItem::polishEvent()
 {
+    NM_FUNCTION;
+    
     QGraphicsWidget::polishEvent();
 }
 
@@ -110,6 +140,8 @@
     const QStyleOptionGraphicsItem *option,
     QWidget *widget)
 {
+    NM_FUNCTION;
+    
     Q_UNUSED(option);
     Q_UNUSED(widget);
     Q_UNUSED(painter);