diff options
author | 2014-08-12 11:35:13 +0300 | |
---|---|---|
committer | 2014-08-12 11:35:13 +0300 | |
commit | 08fd3af7d3c9ab429ef7a68d681ef3f3b355bfc0 (patch) | |
tree | c2f5692f4663145394e70bcf8e8e9f2ddbe2ccef | |
parent | d748e6db8281757a599cae9a03909b0138da2de0 (diff) |
Added clean html method to rendeder delegate
-rw-r--r-- | src/core/renderer/MCHTMLRenderer.cc | 2 | ||||
-rw-r--r-- | src/core/renderer/MCHTMLRendererCallback.cc | 5 | ||||
-rw-r--r-- | src/core/renderer/MCHTMLRendererCallback.h | 2 | ||||
-rw-r--r-- | src/objc/abstract/MCOAbstractMessageRendererCallback.h | 1 | ||||
-rw-r--r-- | src/objc/abstract/MCOAbstractMessageRendererCallback.mm | 12 | ||||
-rw-r--r-- | src/objc/abstract/MCOHTMLRendererDelegate.h | 2 |
6 files changed, 23 insertions, 1 deletions
diff --git a/src/core/renderer/MCHTMLRenderer.cc b/src/core/renderer/MCHTMLRenderer.cc index 8d0b4ecb..568c939e 100644 --- a/src/core/renderer/MCHTMLRenderer.cc +++ b/src/core/renderer/MCHTMLRenderer.cc @@ -313,7 +313,7 @@ static String * htmlForAbstractSinglePart(AbstractPart * part, htmlRendererConte return NULL; String * str = data->stringWithDetectedCharset(charset, true); - str = str->cleanedHTMLString(); + str = context->htmlCallback->cleanHTMLForPart(str); str = context->htmlCallback->filterHTMLForPart(str); context->firstRendered = true; return str; diff --git a/src/core/renderer/MCHTMLRendererCallback.cc b/src/core/renderer/MCHTMLRendererCallback.cc index 1028118e..93c0a409 100644 --- a/src/core/renderer/MCHTMLRendererCallback.cc +++ b/src/core/renderer/MCHTMLRendererCallback.cc @@ -248,6 +248,11 @@ mailcore::String * HTMLRendererTemplateCallback::filterHTMLForMessage(mailcore:: return html; } +mailcore::String * HTMLRendererTemplateCallback::cleanHTMLForPart(mailcore::String * html) +{ + return html->cleanedHTMLString(); +} + mailcore::String * HTMLRendererTemplateCallback::filterHTMLForPart(mailcore::String * html) { return html; diff --git a/src/core/renderer/MCHTMLRendererCallback.h b/src/core/renderer/MCHTMLRendererCallback.h index 5a7c28a9..030b691f 100644 --- a/src/core/renderer/MCHTMLRendererCallback.h +++ b/src/core/renderer/MCHTMLRendererCallback.h @@ -45,6 +45,8 @@ namespace mailcore { virtual String * templateForEmbeddedMessageHeader(MessageHeader * header); virtual String * templateForAttachmentSeparator(); + virtual String * cleanHTMLForPart(String * html); + // Can be used to filter some HTML tags. virtual String * filterHTMLForPart(String * html); diff --git a/src/objc/abstract/MCOAbstractMessageRendererCallback.h b/src/objc/abstract/MCOAbstractMessageRendererCallback.h index 08997c84..f9d22a4d 100644 --- a/src/objc/abstract/MCOAbstractMessageRendererCallback.h +++ b/src/objc/abstract/MCOAbstractMessageRendererCallback.h @@ -33,6 +33,7 @@ public: virtual mailcore::String * templateForEmbeddedMessage(mailcore::AbstractMessagePart * part); virtual mailcore::String * templateForEmbeddedMessageHeader(mailcore::MessageHeader * header); virtual mailcore::String * templateForAttachmentSeparator(); + virtual mailcore::String * cleanHTMLForPart(mailcore::String * html); virtual mailcore::String * filterHTMLForPart(mailcore::String * html); virtual mailcore::String * filterHTMLForMessage(mailcore::String * html); diff --git a/src/objc/abstract/MCOAbstractMessageRendererCallback.mm b/src/objc/abstract/MCOAbstractMessageRendererCallback.mm index 20812058..392f0747 100644 --- a/src/objc/abstract/MCOAbstractMessageRendererCallback.mm +++ b/src/objc/abstract/MCOAbstractMessageRendererCallback.mm @@ -146,6 +146,18 @@ String * MCOAbstractMessageRendererCallback::templateForAttachmentSeparator() return result; } +String * MCOAbstractMessageRendererCallback::cleanHTMLForPart(String * html) +{ + String * result = NULL; + if ([mRendererDelegate respondsToSelector:@selector(MCOAbstractMessage:cleanHTMLForPart:)]) { + result = MCO_FROM_OBJC(String, [mRendererDelegate MCOAbstractMessage:mMessage cleanHTMLForPart:MCO_TO_OBJC(html)]); + } + if (result == NULL) { + result = HTMLRendererTemplateCallback::cleanHTMLForPart(html); + } + return result; +} + String * MCOAbstractMessageRendererCallback::filterHTMLForPart(String * html) { String * result = NULL; diff --git a/src/objc/abstract/MCOHTMLRendererDelegate.h b/src/objc/abstract/MCOHTMLRendererDelegate.h index 5a1296cf..e92c32c7 100644 --- a/src/objc/abstract/MCOHTMLRendererDelegate.h +++ b/src/objc/abstract/MCOHTMLRendererDelegate.h @@ -84,6 +84,8 @@ If not, the attachment template will be used.*/ This delegate method returns the template for the header of an embedded message.*/ - (NSString *) MCOAbstractMessage_templateForAttachmentSeparator:(MCOAbstractMessage *)msg; +- (NSString *) MCOAbstractMessage:(MCOAbstractMessage *)msg cleanHTMLForPart:(NSString *)html; + /** @name Filters The following methods will filter the HTML content and may apply some filters to |