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 ? }
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; }