summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpschwabauer <pschwabauer@intevation.de>2024-02-12 09:25:41 +0100
committerpschwabauer <pschwabauer@intevation.de>2024-02-12 10:45:41 +0100
commit33ffa952335f63ccaacd90dd611c6d5896412c53 (patch)
treebb09e0dbf03d49dc2fbb52cec185cb918b7b4a6a
parent38662a9772376c047b407bfd2223cbc9755446b3 (diff)
downloadtdepim-33ffa952335f63ccaacd90dd611c6d5896412c53.tar.gz
tdepim-33ffa952335f63ccaacd90dd611c6d5896412c53.zip
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
-rw-r--r--kmail/kmreaderwin.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/kmail/kmreaderwin.cpp b/kmail/kmreaderwin.cpp
index feac1d07..d0d78b72 100644
--- a/kmail/kmreaderwin.cpp
+++ b/kmail/kmreaderwin.cpp
@@ -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( "\">" );