summaryrefslogtreecommitdiffstats
path: root/kmail/kmreaderwin.cpp
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 /kmail/kmreaderwin.cpp
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
Diffstat (limited to 'kmail/kmreaderwin.cpp')
-rw-r--r--kmail/kmreaderwin.cpp13
1 files changed, 11 insertions, 2 deletions
diff --git a/kmail/kmreaderwin.cpp b/kmail/kmreaderwin.cpp
index feac1d07c..d0d78b728 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( "\">" );