emailservices/emailclientapi/src/emailmessage.cpp
branchRCL_3
changeset 16 b5fbb9b25d57
parent 13 8592a65ad3fb
child 24 d189ee25cf9d
equal deleted inserted replaced
14:b13141f05c3d 16:b5fbb9b25d57
   503         return iContent;
   503         return iContent;
   504         }
   504         }
   505 
   505 
   506     RPointerArray<CFSMailMessagePart> parts;
   506     RPointerArray<CFSMailMessagePart> parts;
   507     CleanupResetAndDestroyPushL( parts );
   507     CleanupResetAndDestroyPushL( parts );
   508     iPluginMessage->ChildPartsL(parts);
   508     iPluginMessage->ChildPartsL( parts );
   509     TInt count( parts.Count() );
   509     TInt count( parts.Count() );
   510     if( count == 0 )
   510     if( count == 0 )
   511         {
   511         {
   512         /* No content, return NULL */
   512         /* No content, return NULL */
   513         CleanupStack::Pop(); // parts
   513         CleanupStack::PopAndDestroy( &parts ); // in case heap allocated but not used
   514         return NULL;
   514         return NULL;
   515         }
   515         }
   516     CFSMailMessagePart* part = parts[0];
   516     CFSMailMessagePart* part = parts[0];
   517     TContentType contentType( part->GetContentType() ); 
   517     TContentType contentType( part->GetContentType() ); 
   518     TMessageContentId msgContentId = TMessageContentId( 
   518     TMessageContentId msgContentId = TMessageContentId( 
   522                         iMessageId.iFolderId.iMailboxId ); 
   522                         iMessageId.iFolderId.iMailboxId ); 
   523 
   523 
   524     if ( contentType.Equals( KFSMailContentTypeTextPlain ) || 
   524     if ( contentType.Equals( KFSMailContentTypeTextPlain ) || 
   525         contentType.Equals( KFSMailContentTypeTextHtml ) )
   525         contentType.Equals( KFSMailContentTypeTextHtml ) )
   526         {                                
   526         {                                
   527         iTextContent = CEmailTextContent::NewL(iPluginData, msgContentId, part, EAPIOwns );        
   527         iTextContent = CEmailTextContent::NewL(iPluginData, msgContentId, part, EAPIOwns );
       
   528         parts[0] = NULL; // ownership of part transferred
   528         }
   529         }
   529     else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) ||
   530     else if ( contentType.Equals( KFSMailContentTypeMultipartMixed ) ||
   530               contentType.Equals( KFSMailContentTypeMultipartAlternative ) ||
   531               contentType.Equals( KFSMailContentTypeMultipartAlternative ) ||
   531               contentType.Equals( KFSMailContentTypeMultipartDigest ) ||
   532               contentType.Equals( KFSMailContentTypeMultipartDigest ) ||
   532               contentType.Equals( KFSMailContentTypeMultipartRelated ) ||
   533               contentType.Equals( KFSMailContentTypeMultipartRelated ) ||
   533               contentType.Equals( KFSMailContentTypeMultipartParallel ) )
   534               contentType.Equals( KFSMailContentTypeMultipartParallel ) )
   534         {
   535         {
   535         iContent = CEmailMultipart::NewL(iPluginData, msgContentId, part, EAPIOwns);
   536         iContent = CEmailMultipart::NewL(iPluginData, msgContentId, part, EAPIOwns);
   536         }
   537         parts[0] = NULL; // ownership of part transferred
   537     if ( count == 2 )
   538         }
   538         {
   539 
   539         CFSMailMessagePart* part = parts[1];
   540     CleanupStack::PopAndDestroy( &parts ); // parts
   540         const TDesC& contentType = part->GetContentType();
       
   541         }
       
   542     CleanupStack::Pop(); // parts
       
   543     
   541     
   544     if (iTextContent)
   542     if (iTextContent)
   545         {
   543         {
   546         return iTextContent;        
   544         return iTextContent;        
   547         }
   545         }