void StorageModel::updateMessageItemData( Core::MessageItem * mi, int row ) const { KMMsgBase * msg = mFolder->getMsgBase( row ); Q_ASSERT( msg ); // We ASSUME that initializeMessageItem has been called successfully... bool dateDiffers = mi->date() != msg->date(); if ( dateDiffers ) { mi->setDate( msg->date() ); mi->recomputeMaxDate(); } KPIM::MessageStatus stat = msg->messageStatus(); mi->setStatus( stat ); setMessageItemData( mi, msg ); // FIXME: Handle MDN State ? }
QString HeaderItem::text( int col) const { KMHeaders *headers = static_cast<KMHeaders*>(listView()); KMMsgBase *mMsgBase = headers->folder()->getMsgBase( mMsgId ); QString tmp; if ( !mMsgBase ) return QString(); if ( col == headers->paintInfo()->senderCol ) { if ( (headers->folder()->whoField().lower() == "to") && !headers->paintInfo()->showReceiver ) tmp = mMsgBase->toStrip(); else tmp = mMsgBase->fromStrip(); if (tmp.isEmpty()) tmp = i18n("Unknown"); else tmp = tmp.simplifyWhiteSpace(); } else if ( col == headers->paintInfo()->receiverCol ) { tmp = mMsgBase->toStrip(); if (tmp.isEmpty()) tmp = i18n("Unknown"); else tmp = tmp.simplifyWhiteSpace(); } else if(col == headers->paintInfo()->subCol) { tmp = mMsgBase->subject(); if (tmp.isEmpty()) tmp = i18n("No Subject"); else tmp.remove(QRegExp("[\r\n]")); } else if(col == headers->paintInfo()->dateCol) { tmp = headers->mDate.dateString( mMsgBase->date() ); } else if(col == headers->paintInfo()->sizeCol && headers->paintInfo()->showSize) { if ( mMsgBase->parent()->folderType() == KMFolderTypeImap ) { tmp = KIO::convertSize( mMsgBase->msgSizeServer() ); } else { tmp = KIO::convertSize( mMsgBase->msgSize() ); } } return tmp; }
bool StorageModel::initializeMessageItem( Core::MessageItem * mi, int row, bool bUseReceiver ) const { KMMsgBase * msg = mFolder->getMsgBase( row ); if ( !msg ) return false; QString sender = msg->fromStrip(); QString receiver = msg->toStrip(); // Static for speed reasons static const QString noSubject = i18nc( "displayed as subject when the subject of a mail is empty", "No Subject" ); static const QString unknown( i18nc( "displayed when a mail has unknown sender, receiver or date", "Unknown" ) ); if ( sender.isEmpty() ) sender = unknown; if ( receiver.isEmpty() ) receiver = unknown; mi->initialSetup( msg->date(), mFolder->folderType() == KMFolderTypeImap ? msg->msgSizeServer() : msg->msgSize(), sender, receiver, bUseReceiver ? receiver : sender ); mi->setUniqueId( msg->getMsgSerNum() ); KPIM::MessageStatus stat = msg->messageStatus(); QString subject = msg->subject(); if ( subject.isEmpty() ) subject = '(' + noSubject + ')'; mi->setSubjectAndStatus( subject, stat ); setMessageItemData( mi, msg ); return true; }