diff -r 139d4b7b2938 -r 99bcbff212ad emailuis/nmailui/src/nmmailboxlistviewitem.cpp --- a/emailuis/nmailui/src/nmmailboxlistviewitem.cpp Mon May 24 21:02:02 2010 +0300 +++ b/emailuis/nmailui/src/nmmailboxlistviewitem.cpp Fri May 28 13:56:43 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(); - if (mailbox){ + + HbLabel *textLabel = findChild(NmMailboxListViewItemName); + HbLabel *icon = findChild(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);