emailuis/nmailui/src/nmmessagelistviewitem.cpp
changeset 27 9ba4404ef423
parent 23 2dc6caa42ec3
child 30 759dc5235cdb
equal deleted inserted replaced
23:2dc6caa42ec3 27:9ba4404ef423
    19 /*!
    19 /*!
    20     \class NmMessageListViewItem
    20     \class NmMessageListViewItem
    21     \brief list view item for message list view
    21     \brief list view item for message list view
    22 */
    22 */
    23 
    23 
    24 static const qreal NmItemLineOpacity = 0.4;
    24 static const int NmFolderTypeRole = Qt::UserRole+1; 
    25 
    25 
    26 /*!
    26 /*!
    27     Constructor
    27     Constructor
    28 */
    28 */
    29 NmMessageListViewItem::NmMessageListViewItem(QGraphicsItem *parent):
    29 NmMessageListViewItem::NmMessageListViewItem(QGraphicsItem *parent):
   146 void NmMessageListViewItem::setContentsToMessageItem(const NmMessageEnvelope &envelope, 
   146 void NmMessageListViewItem::setContentsToMessageItem(const NmMessageEnvelope &envelope, 
   147                                                      bool dividersActive)
   147                                                      bool dividersActive)
   148 {
   148 {
   149     // member variables are created in previous function
   149     // member variables are created in previous function
   150     // sender
   150     // sender
   151     QString displayName = envelope.sender().displayName();
   151     mSender->setText(senderFieldText(envelope));
   152     if (displayName.length()) {
       
   153         mSender->setText(NmUtilities::cleanupDisplayName(displayName));
       
   154     } else {
       
   155         mSender->setText(envelope.sender().address());            
       
   156     }
       
   157     // time
   152     // time
   158     HbExtendedLocale locale = HbExtendedLocale::system();
   153     HbExtendedLocale locale = HbExtendedLocale::system();
   159     QDate sentLocalDate = envelope.sentTime().toLocalTime().date();
   154     QDate sentLocalDate = envelope.sentTime().toLocalTime().date();
   160     QDate currentdate = QDate::currentDate();
   155     QDate currentdate = QDate::currentDate();
   161     if (dividersActive || sentLocalDate == currentdate) {
   156     if (dividersActive || sentLocalDate == currentdate) {
   239     Q_UNUSED(option);
   234     Q_UNUSED(option);
   240     Q_UNUSED(widget);
   235     Q_UNUSED(widget);
   241     Q_UNUSED(painter);
   236     Q_UNUSED(painter);
   242 }
   237 }
   243 
   238 
       
   239 /*!
       
   240     setFontsUnread
       
   241 */
   244 void  NmMessageListViewItem::setFontsUnread()
   242 void  NmMessageListViewItem::setFontsUnread()
   245 {    
   243 {    
   246     static QColor colorRole = HbColorScheme::color("qtc_list_item_title_normal");
   244     static QColor colorRole = HbColorScheme::color("qtc_list_item_title_normal");
   247     HbFontSpec spekki(HbFontSpec::Primary);
   245     HbFontSpec spekki(HbFontSpec::Primary);
   248     setFonts(colorRole, spekki);
   246     setFonts(colorRole, spekki);
   249 }
   247 }
   250 
   248 
       
   249 /*!
       
   250     setFontsRead
       
   251 */
   251 void  NmMessageListViewItem::setFontsRead()
   252 void  NmMessageListViewItem::setFontsRead()
   252 {
   253 {
   253     static QColor colorRole = HbColorScheme::color("qtc_list_item_content_normal");
   254     static QColor colorRole = HbColorScheme::color("qtc_list_item_content_normal");
   254     HbFontSpec spekki(HbFontSpec::Secondary);
   255     HbFontSpec spekki(HbFontSpec::Secondary);
   255     setFonts(colorRole, spekki);
   256     setFonts(colorRole, spekki);
   256 }
   257 }
   257 
   258 
       
   259 /*!
       
   260     getFontSizes.
       
   261 */
   258 void  NmMessageListViewItem::getFontSizes()
   262 void  NmMessageListViewItem::getFontSizes()
   259 {
   263 {
   260     // Get font sizes from style  
   264     // Get font sizes from style  
   261     qreal currentSize;
   265     qreal currentSize;
   262     HbStyle mystyle;
   266     HbStyle mystyle;
   272     if (found) {
   276     if (found) {
   273         mTinySize = currentSize;
   277         mTinySize = currentSize;
   274     } 
   278     } 
   275 }
   279 }
   276 
   280 
       
   281 /*!
       
   282     setFonts.
       
   283 */
   277 void  NmMessageListViewItem::setFonts(const QColor &colorRole, 
   284 void  NmMessageListViewItem::setFonts(const QColor &colorRole, 
   278         HbFontSpec &spekki)
   285         HbFontSpec &spekki)
   279 {
   286 {
   280     // Change sizes explicitly since css is overwritten in polish now.    
   287     // Change sizes explicitly since css is overwritten in polish now.    
   281     if (mSender && mSubject && mTime) {
   288     if (mSender && mSubject && mTime) {
   298         mTime->setFontSpec(spekki);        
   305         mTime->setFontSpec(spekki);        
   299         mTime->setTextColor(colorRole);
   306         mTime->setTextColor(colorRole);
   300     }
   307     }
   301 }
   308 }
   302 
   309 
       
   310 /*!
       
   311     senderFieldText. Function returns sender field text from
       
   312     envelope based on currently used function
       
   313 */
       
   314 QString NmMessageListViewItem::senderFieldText(const NmMessageEnvelope &envelope)
       
   315 {
       
   316     QString ret;  
       
   317     QVariant folderType = modelIndex().data(
       
   318             NmFolderTypeRole).value<QVariant>();
       
   319     switch (folderType.toInt()) {
       
   320         // Outbox, drafts and sent folder, sender name is 
       
   321         // replaced with first recipient from to/cc list
       
   322         case NmFolderOutbox:
       
   323         case NmFolderDrafts:
       
   324         case NmFolderSent:
       
   325         {
       
   326             QList<NmAddress>& toRecipients = envelope.toRecipients();
       
   327             QList<NmAddress>& ccRecipients = envelope.ccRecipients();
       
   328             NmAddress addressToUse;
       
   329             bool foundAddress(false);
       
   330             if (toRecipients.count()){
       
   331                 addressToUse=toRecipients[0];
       
   332                 foundAddress=true;
       
   333             }
       
   334             else if (ccRecipients.count()) {
       
   335                 addressToUse=ccRecipients[0]; 
       
   336                 foundAddress=true;         
       
   337             }
       
   338             if (foundAddress){
       
   339                 QString displayName = addressToUse.displayName();
       
   340                 if (displayName.length()) {
       
   341                     ret += NmUtilities::cleanupDisplayName(displayName);
       
   342                 } 
       
   343                 else {
       
   344                     ret += addressToUse.address();                    
       
   345                 }               
       
   346             }
       
   347             
       
   348         }
       
   349         break;    
       
   350         // All other folders will show sender display name
       
   351         default: 
       
   352         {
       
   353             QString displayName = envelope.sender().displayName();
       
   354             if (displayName.length()) {
       
   355                 ret += NmUtilities::cleanupDisplayName(displayName);
       
   356             } 
       
   357             else {
       
   358                 ret += envelope.sender().address();                    
       
   359             }
       
   360         }
       
   361         break;
       
   362     }
       
   363     return ret;
       
   364 }
       
   365