aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Viktor Gedzenko <foxinushka@gmail.com>2014-08-12 11:35:13 +0300
committerGravatar Viktor Gedzenko <foxinushka@gmail.com>2014-08-12 11:35:13 +0300
commit08fd3af7d3c9ab429ef7a68d681ef3f3b355bfc0 (patch)
treec2f5692f4663145394e70bcf8e8e9f2ddbe2ccef
parentd748e6db8281757a599cae9a03909b0138da2de0 (diff)
Added clean html method to rendeder delegate
-rw-r--r--src/core/renderer/MCHTMLRenderer.cc2
-rw-r--r--src/core/renderer/MCHTMLRendererCallback.cc5
-rw-r--r--src/core/renderer/MCHTMLRendererCallback.h2
-rw-r--r--src/objc/abstract/MCOAbstractMessageRendererCallback.h1
-rw-r--r--src/objc/abstract/MCOAbstractMessageRendererCallback.mm12
-rw-r--r--src/objc/abstract/MCOHTMLRendererDelegate.h2
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