--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/emailuis/nmailui/src/nmmailboxlistviewitem.cpp Tue Aug 31 15:04:17 2010 +0300
@@ -0,0 +1,134 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#include "nmuiheaders.h"
+
+const QString NmMailboxListViewItemIcon = "MailboxListViewMailboxIcon";
+const QString NmMailboxListViewItemName = "MailboxListViewMailboxName";
+
+/*!
+ \class NmMailboxListViewItem
+ \brief Mailbox list view item inherited from HbListViewItem
+*/
+
+/*!
+ Constructor
+*/
+NmMailboxListViewItem::NmMailboxListViewItem(QGraphicsItem *parent)
+: HbListViewItem(parent),
+mLayout(NULL)
+{
+ NM_FUNCTION;
+}
+
+/*!
+ Destructor
+*/
+NmMailboxListViewItem::~NmMailboxListViewItem()
+{
+ NM_FUNCTION;
+}
+
+/*!
+ Item creation
+*/
+HbListViewItem* NmMailboxListViewItem::createItem()
+{
+ NM_FUNCTION;
+
+ return new NmMailboxListViewItem(*this);
+}
+
+/*!
+ update child items
+*/
+void NmMailboxListViewItem::updateChildItems()
+{
+ NM_FUNCTION;
+
+ // To create primitives
+ HbListViewItem::updateChildItems();
+
+ EmailMailboxInfo mailboxInfo;
+
+ NmMailboxMetaData *mailbox =
+ modelIndex().data(Qt::DisplayRole).value<NmMailboxMetaData*>();
+
+ 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->setParent(this);
+ mbIcon->setObjectName(NmMailboxListViewItemIcon);
+
+ QString domainName = mailbox->address();
+ QString iconName = mailboxInfo.mailboxIcon(domainName);
+ mbIcon->setIcon(HbIcon(iconName));
+ mbIcon->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
+
+ HbLabel *mbName = new HbLabel();
+ mbName->setParent(this);
+ mbName->setObjectName(NmMailboxListViewItemName);
+ mbName->setPlainText(mailbox->name());
+ mbName->setAlignment(Qt::AlignVCenter);
+ mbName->setFontSpec(HbFontSpec(HbFontSpec::Primary));
+ mbName->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
+
+ mLayout->addItem(mbIcon);
+ mLayout->addItem(mbName);
+ 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));
+ }
+
+ }
+}
+
+/*!
+ boolean value indicating model index availability
+*/
+bool NmMailboxListViewItem::canSetModelIndex(const QModelIndex &index)
+{
+ NM_FUNCTION;
+
+ Q_UNUSED(index);
+ return true;
+}
+
+/*!
+ polishEvent. Call to base class polish event.
+*/
+void NmMailboxListViewItem::polishEvent()
+{
+ NM_FUNCTION;
+
+ QGraphicsWidget::polishEvent();
+}
+