diff options
author | Paul Young <paulyoungonline@gmail.com> | 2013-06-29 23:15:28 -0400 |
---|---|---|
committer | Paul Young <paulyoungonline@gmail.com> | 2013-06-29 23:15:28 -0400 |
commit | e0e9dcdfec2000c35e8a34d81e41c5c4bd9e06f6 (patch) | |
tree | b0fe55a6dd84c124cfbfc351eb7b77b682534a9a /src/core | |
parent | b6b7137861e087abcc6d93b61b4b13ffa3aaefeb (diff) |
Added implementation for rendering methods for IMAP session.
* Plain text methods call HTML methods and then modify the result.
* Added HTML body renderer template callback which returns an empty
header template.
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/imap/MCIMAPSession.cc | 25 | ||||
-rw-r--r-- | src/core/renderer/MCHTMLRendererCallback.cc | 5 | ||||
-rw-r--r-- | src/core/renderer/MCHTMLRendererCallback.h | 4 | ||||
-rw-r--r-- | src/core/renderer/MCMessageRendererHelper.cpp | 5 | ||||
-rw-r--r-- | src/core/renderer/MCMessageRendererHelper.h | 1 |
5 files changed, 39 insertions, 1 deletions
diff --git a/src/core/imap/MCIMAPSession.cc b/src/core/imap/MCIMAPSession.cc index 5afb8702..24974973 100644 --- a/src/core/imap/MCIMAPSession.cc +++ b/src/core/imap/MCIMAPSession.cc @@ -18,6 +18,8 @@ #include "MCConnectionLoggerUtils.h" #include "MCHTMLRenderer.h" #include "MCMessageRendererHelper.h" +#include "MCString.h" +#include "MCUtils.h" using namespace mailcore; @@ -3004,21 +3006,42 @@ ConnectionLogger * IMAPSession::connectionLogger() String * htmlRendering(IMAPMessage * message, String * folder) { MessageRendererHelper * messageRendererHelper = new MessageRendererHelper; + String * htmlString = HTMLRenderer::htmlForIMAPMessage(folder, + message, + messageRendererHelper->dataCallback(), + messageRendererHelper->htmlCallback()); - HTMLRenderer::htmlForIMAPMessage(folder, message, messageRendererHelper->dataCallback, messageRendererHelper->htmlCallback); + return htmlString; } String * htmlBodyRendering(IMAPMessage * message, String * folder) { + MessageRendererHelper * messageRendererHelper = new MessageRendererHelper; + String * htmlBodyString = HTMLRenderer::htmlForIMAPMessage(folder, + message, + messageRendererHelper->dataCallback(), + messageRendererHelper->htmlBodyCallback()); + + return htmlBodyString; } String * plainTextRendering(IMAPMessage * message, String * folder) { + String * htmlString = this->htmlRendering(message, folder); + String * plainTextString = htmlString->flattenHTML(); + return plainTextString; } String * plainTextBodyRendering(IMAPMessage * message, String * folder) { + String * htmlBodyString = this->htmlBodyRendering(message, folder); + String * plainTextBodyString = htmlBodyString->flattenHTML(); + + plainTextBodyString->replaceOccurrencesOfString(MCSTR("\n"), MCSTR(" ")); + plainTextBodyString->replaceOccurrencesOfString(MCSTR("\r"), MCSTR(" ")); + plainTextBodyString->replaceOccurrencesOfString(MCSTR("\t"), MCSTR(" ")); + return plainTextBodyString; } diff --git a/src/core/renderer/MCHTMLRendererCallback.cc b/src/core/renderer/MCHTMLRendererCallback.cc index 5147e934..ceaa0ee2 100644 --- a/src/core/renderer/MCHTMLRendererCallback.cc +++ b/src/core/renderer/MCHTMLRendererCallback.cc @@ -262,3 +262,8 @@ bool HTMLRendererTemplateCallback::shouldShowPart(AbstractPart * part) { return true; } + +mailcore::String * HTMLBodyRendererTemplateCallback::templateForMainHeader(MessageHeader * header) +{ + return MCSTR(""); +} diff --git a/src/core/renderer/MCHTMLRendererCallback.h b/src/core/renderer/MCHTMLRendererCallback.h index 84292dad..695bd8bb 100644 --- a/src/core/renderer/MCHTMLRendererCallback.h +++ b/src/core/renderer/MCHTMLRendererCallback.h @@ -48,6 +48,10 @@ namespace mailcore { // Can be used to hide quoted text. virtual String * filterHTMLForMessage(String * html); }; + + class HTMLBodyRendererTemplateCallback : public HTMLRendererTemplateCallback { + + } } diff --git a/src/core/renderer/MCMessageRendererHelper.cpp b/src/core/renderer/MCMessageRendererHelper.cpp index db13d38a..b8663309 100644 --- a/src/core/renderer/MCMessageRendererHelper.cpp +++ b/src/core/renderer/MCMessageRendererHelper.cpp @@ -19,3 +19,8 @@ HTMLRendererTemplateCallback * MessageRendererHelper::htmlCallback() { return new HTMLRendererTemplateCallback(); } + +HTMLRendererTemplateCallback * MessageRendererHelper::htmlBodyCallback() +{ + return new HTMLBodyRendererTemplateCallback(); +} diff --git a/src/core/renderer/MCMessageRendererHelper.h b/src/core/renderer/MCMessageRendererHelper.h index 3e3fe69c..292649ef 100644 --- a/src/core/renderer/MCMessageRendererHelper.h +++ b/src/core/renderer/MCMessageRendererHelper.h @@ -21,6 +21,7 @@ namespace mailcore { public: virtual HTMLRendererIMAPCallback * dataCallback(); virtual HTMLRendererTemplateCallback * htmlCallback(); + virtual HTMLBodyRendererTemplateCallback * htmlBodyCallback(); } } |