Fix open HTML with an external program

HTML emails can't be opened because they are not written to disk. This
fixes it by writing HTML parts of the email unconditionally to disk and
adds a '.html' file extension if the part is of type HTML. This resolves
Issue #94
pull/103/head
pschwabauer 9 months ago
parent 38662a9772
commit 33ffa95233
No known key found for this signature in database
GPG Key ID: 1244FE1E8FBB313B

@ -1775,8 +1775,12 @@ TQString KMReaderWin::writeMessagePartToTempFile( KMMessagePart* aMsgPart,
int slashPos = fileName.findRev( '/' );
if( -1 != slashPos )
fileName = fileName.mid( slashPos + 1 );
if( fileName.isEmpty() )
if( fileName.isEmpty() ) {
fileName = "unnamed";
// Save html emails with extension
if ( aMsgPart->subtype() == DwMime::kSubtypeHtml )
fileName += ".html";
}
fname += "/" + fileName;
TQByteArray data = aMsgPart->bodyDecodedBinary();
@ -3042,10 +3046,15 @@ TQString KMReaderWin::renderAttachments(partNode * node, const TQColor &bgColor
}
} else {
partNode::AttachmentDisplayInfo info = node->attachmentDisplayInfo();
// Write HTML parts and attachments to disk to allow them to be opened
bool writePartToDisk = info.displayInHeader || node->msgPart().subtype() == DwMime::kSubtypeHtml;
if ( writePartToDisk )
TQString fileName = writeMessagePartToTempFile( &node->msgPart(), node->nodeId() );
if ( info.displayInHeader ) {
html += "<div style=\"float:left;\">";
html += TQString::fromLatin1( "<span style=\"white-space:nowrap; border-width: 0px; border-left-width: 5px; border-color: %1; 2px; border-left-style: solid;\">" ).arg( bgColor.name() );
TQString fileName = writeMessagePartToTempFile( &node->msgPart(), node->nodeId() );
TQString href = node->asHREF( "header" );
html += TQString::fromLatin1( "<a href=\"" ) + href +
TQString::fromLatin1( "\">" );

Loading…
Cancel
Save