emailuis/nmailui/src/nmmailboxlistviewitem.cpp
changeset 43 99bcbff212ad
parent 40 2c62ef3caffd
child 47 f83bd4ae1fe3
equal deleted inserted replaced
42:139d4b7b2938 43:99bcbff212ad
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 #include "nmuiheaders.h"
    18 #include "nmuiheaders.h"
    19 
    19 
       
    20 const QString NmMailboxListViewItemIcon = "MailboxListViewMailboxIcon";
       
    21 const QString NmMailboxListViewItemName = "MailboxListViewMailboxName";
       
    22 
    20 /*!
    23 /*!
    21     \class NmMailboxListViewItem
    24     \class NmMailboxListViewItem
    22     \brief Mailbox list view item inherited from HbListViewItem
    25     \brief Mailbox list view item inherited from HbListViewItem
    23 */
    26 */
    24 
    27 
    27 */
    30 */
    28 NmMailboxListViewItem::NmMailboxListViewItem(QGraphicsItem *parent)
    31 NmMailboxListViewItem::NmMailboxListViewItem(QGraphicsItem *parent)
    29 : HbListViewItem(parent),
    32 : HbListViewItem(parent),
    30 mLayout(NULL)
    33 mLayout(NULL)
    31 {
    34 {
       
    35     NM_FUNCTION;
    32 }
    36 }
    33 
    37 
    34 /*!
    38 /*!
    35     Destructor
    39     Destructor
    36 */
    40 */
    37 NmMailboxListViewItem::~NmMailboxListViewItem()
    41 NmMailboxListViewItem::~NmMailboxListViewItem()
    38 {
    42 {
       
    43     NM_FUNCTION;
    39 }
    44 }
    40 
    45 
    41 /*!
    46 /*!
    42     Item creation
    47     Item creation
    43 */
    48 */
    44 HbListViewItem* NmMailboxListViewItem::createItem()
    49 HbListViewItem* NmMailboxListViewItem::createItem()
    45 {
    50 {
       
    51     NM_FUNCTION;
       
    52     
    46     return new NmMailboxListViewItem(*this);
    53     return new NmMailboxListViewItem(*this);
    47 }
    54 }
    48 
    55 
    49 /*!
    56 /*!
    50     update child items
    57     update child items
    51 */
    58 */
    52 void NmMailboxListViewItem::updateChildItems()
    59 void NmMailboxListViewItem::updateChildItems()
    53 {
    60 {
       
    61     NM_FUNCTION;
       
    62     
    54     // To create primitives
    63     // To create primitives
    55     HbListViewItem::updateChildItems();
    64     HbListViewItem::updateChildItems();
    56 
    65 
    57     EmailMailboxInfo mailboxInfo;
    66     EmailMailboxInfo mailboxInfo;
    58     
    67     
    59     NmMailboxMetaData *mailbox =
    68     NmMailboxMetaData *mailbox =
    60             modelIndex().data(Qt::DisplayRole).value<NmMailboxMetaData*>();
    69             modelIndex().data(Qt::DisplayRole).value<NmMailboxMetaData*>();
    61     if (mailbox){
    70     
       
    71     HbLabel *textLabel = findChild<HbLabel *>(NmMailboxListViewItemName);
       
    72     HbLabel *icon = findChild<HbLabel *>(NmMailboxListViewItemIcon);
       
    73     
       
    74     if (mailbox && !textLabel && !icon){
    62         mLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);
    75         mLayout = new QGraphicsLinearLayout(Qt::Horizontal, 0);
    63         mLayout->setContentsMargins(0,0,0,0);
    76         mLayout->setContentsMargins(0,0,0,0);
    64 
    77 
    65         HbLabel *mbIcon = new HbLabel();
    78         HbLabel *mbIcon = new HbLabel();
    66         mbIcon->setObjectName("MailboxListViewMailboxIcon");
    79         mbIcon->setParent(this);
       
    80         mbIcon->setObjectName(NmMailboxListViewItemIcon);
    67         
    81         
    68         QString domainName = mailbox->address();
    82         QString domainName = mailbox->address();
    69         QString iconName = mailboxInfo.mailboxIcon(domainName);
    83         QString iconName = mailboxInfo.mailboxIcon(domainName);
    70         mbIcon->setIcon(HbIcon(iconName));
    84         mbIcon->setIcon(HbIcon(iconName));
    71         mbIcon->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
    85         mbIcon->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred);
    72 
    86 
    73         HbLabel *mbName = new HbLabel();
    87         HbLabel *mbName = new HbLabel();
    74         mbName->setObjectName("MailboxListViewMailboxName");
    88         mbName->setParent(this);
       
    89         mbName->setObjectName(NmMailboxListViewItemName);
    75         mbName->setPlainText(mailbox->name());
    90         mbName->setPlainText(mailbox->name());
    76         mbName->setAlignment(Qt::AlignVCenter);
    91         mbName->setAlignment(Qt::AlignVCenter);
    77         mbName->setFontSpec(HbFontSpec(HbFontSpec::Primary));
    92         mbName->setFontSpec(HbFontSpec(HbFontSpec::Primary));
    78         mbName->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
    93         mbName->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
    79 
    94 
    80         mLayout->addItem(mbIcon);
    95         mLayout->addItem(mbIcon);
    81         mLayout->addItem(mbName);
    96         mLayout->addItem(mbName);
    82         mLayout->setItemSpacing(0,0);
    97         mLayout->setItemSpacing(0,0);
    83 
    98 
    84         setLayout(mLayout); // Ownership is transferred
    99         setLayout(mLayout); // Ownership is transferred
       
   100     } else if (mailbox) {
       
   101         
       
   102         if (textLabel) {
       
   103             textLabel->setPlainText(mailbox->name());
       
   104         }
       
   105         
       
   106         QString iconName = mailboxInfo.mailboxIcon(mailbox->address());
       
   107         if (icon && !iconName.isEmpty()) {
       
   108             icon->setIcon(HbIcon(iconName));
       
   109         }
       
   110         
    85     }
   111     }
    86 }
   112 }
    87 
   113 
    88 /*!
   114 /*!
    89     boolean value indicating model index availability
   115     boolean value indicating model index availability
    90 */
   116 */
    91 bool NmMailboxListViewItem::canSetModelIndex(const QModelIndex &index)
   117 bool NmMailboxListViewItem::canSetModelIndex(const QModelIndex &index)
    92 {
   118 {
       
   119     NM_FUNCTION;
       
   120     
    93     Q_UNUSED(index);
   121     Q_UNUSED(index);
    94     return true;
   122     return true;
    95 }
   123 }
    96 
   124 
    97 /*!
   125 /*!
    98     polishEvent. Call to base class polish event.
   126     polishEvent. Call to base class polish event.
    99 */
   127 */
   100 void NmMailboxListViewItem::polishEvent()
   128 void NmMailboxListViewItem::polishEvent()
   101 {
   129 {
       
   130     NM_FUNCTION;
       
   131     
   102     QGraphicsWidget::polishEvent();
   132     QGraphicsWidget::polishEvent();
   103 }
   133 }
   104 
   134 
   105 /*!
   135 /*!
   106     paint. Paint function for line painting.
   136     paint. Paint function for line painting.
   108 void NmMailboxListViewItem::paint(
   138 void NmMailboxListViewItem::paint(
   109     QPainter *painter,
   139     QPainter *painter,
   110     const QStyleOptionGraphicsItem *option,
   140     const QStyleOptionGraphicsItem *option,
   111     QWidget *widget)
   141     QWidget *widget)
   112 {
   142 {
       
   143     NM_FUNCTION;
       
   144     
   113     Q_UNUSED(option);
   145     Q_UNUSED(option);
   114     Q_UNUSED(widget);
   146     Q_UNUSED(widget);
   115     Q_UNUSED(painter);
   147     Q_UNUSED(painter);
   116 }
   148 }