aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
authorGravatar Paul Young <paulyoungonline@gmail.com>2013-06-29 23:15:28 -0400
committerGravatar Paul Young <paulyoungonline@gmail.com>2013-06-29 23:15:28 -0400
commite0e9dcdfec2000c35e8a34d81e41c5c4bd9e06f6 (patch)
treeb0fe55a6dd84c124cfbfc351eb7b77b682534a9a /src/core
parentb6b7137861e087abcc6d93b61b4b13ffa3aaefeb (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.cc25
-rw-r--r--src/core/renderer/MCHTMLRendererCallback.cc5
-rw-r--r--src/core/renderer/MCHTMLRendererCallback.h4
-rw-r--r--src/core/renderer/MCMessageRendererHelper.cpp5
-rw-r--r--src/core/renderer/MCMessageRendererHelper.h1
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();
}
}