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 10 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( '/' ); int slashPos = fileName.findRev( '/' );
if( -1 != slashPos ) if( -1 != slashPos )
fileName = fileName.mid( slashPos + 1 ); fileName = fileName.mid( slashPos + 1 );
if( fileName.isEmpty() ) if( fileName.isEmpty() ) {
fileName = "unnamed"; fileName = "unnamed";
// Save html emails with extension
if ( aMsgPart->subtype() == DwMime::kSubtypeHtml )
fileName += ".html";
}
fname += "/" + fileName; fname += "/" + fileName;
TQByteArray data = aMsgPart->bodyDecodedBinary(); TQByteArray data = aMsgPart->bodyDecodedBinary();
@ -3042,10 +3046,15 @@ TQString KMReaderWin::renderAttachments(partNode * node, const TQColor &bgColor
} }
} else { } else {
partNode::AttachmentDisplayInfo info = node->attachmentDisplayInfo(); 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 ) { if ( info.displayInHeader ) {
html += "<div style=\"float:left;\">"; 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() ); 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" ); TQString href = node->asHREF( "header" );
html += TQString::fromLatin1( "<a href=\"" ) + href + html += TQString::fromLatin1( "<a href=\"" ) + href +
TQString::fromLatin1( "\">" ); TQString::fromLatin1( "\">" );

Loading…
Cancel
Save