diff options
author | Matt Ronge <mronge@mronge.com> | 2014-03-14 16:31:14 -0500 |
---|---|---|
committer | Matt Ronge <mronge@mronge.com> | 2014-03-14 16:31:14 -0500 |
commit | 92c618dc4b8e20a556d2f46a978f88673b241485 (patch) | |
tree | c4f2eaea173c549659aac36c960691682b07c33d /src/core/renderer | |
parent | ad5e306b3af920169ae1842a7fd2cfce8fcf5022 (diff) |
Moved implementation of requiredPartsForRendering
Diffstat (limited to 'src/core/renderer')
-rw-r--r-- | src/core/renderer/MCHTMLRenderer.cc | 43 | ||||
-rw-r--r-- | src/core/renderer/MCHTMLRenderer.h | 1 |
2 files changed, 41 insertions, 3 deletions
diff --git a/src/core/renderer/MCHTMLRenderer.cc b/src/core/renderer/MCHTMLRenderer.cc index 45c3a77a..4fbbb3f1 100644 --- a/src/core/renderer/MCHTMLRenderer.cc +++ b/src/core/renderer/MCHTMLRenderer.cc @@ -17,8 +17,32 @@ using namespace mailcore; class HTMLRendererIMAPDummyCallback : public HTMLRendererIMAPCallback { +private: + Array *mRequiredParts; + public: - virtual Data * dataForIMAPPart(String * folder, IMAPPart * part) { return Data::data(); } + HTMLRendererIMAPDummyCallback() + { + mRequiredParts = Array::array(); + } + + ~HTMLRendererIMAPDummyCallback() + { + MC_SAFE_RELEASE(mRequiredParts); + } + + + virtual Data * dataForIMAPPart(String * folder, IMAPPart * part) + { + mRequiredParts->addObject(part); + return Data::data(); + } + + Array * getRequiredParts() + { + return mRequiredParts; + } + }; enum { @@ -41,6 +65,7 @@ struct htmlRendererContext { bool hasTextPart; Array * relatedAttachments; Array * attachments; + Array * requiredParts; }; class DefaultTemplateCallback : public Object, public HTMLRendererTemplateCallback { @@ -173,8 +198,6 @@ static String * htmlForAbstractMessage(String * folder, AbstractMessage * messag htmlRendererContext context; context.dataCallback = dataCallback; context.htmlCallback = htmlCallback; - context.relatedAttachments = NULL; - context.attachments = NULL; context.firstRendered = 0; context.folder = folder; context.state = RENDER_STATE_NONE; @@ -509,3 +532,17 @@ Array * HTMLRenderer::htmlInlineAttachmentsForMessage(AbstractMessage * message) (void) ignoredResult; // remove unused variable warning. return htmlInlineAttachments; } + +Array * HTMLRenderer::requiredPartsForRendering(AbstractMessage * message) +{ + HTMLRendererIMAPDummyCallback * dataCallback = new HTMLRendererIMAPDummyCallback(); + String * ignoredResult = htmlForAbstractMessage(NULL, message, dataCallback, NULL, NULL, NULL); + + Array *requiredParts = dataCallback->getRequiredParts(); + requiredParts->retain(); + + delete dataCallback; + dataCallback = NULL; + (void) ignoredResult; // remove unused variable warning. + return requiredParts; +} diff --git a/src/core/renderer/MCHTMLRenderer.h b/src/core/renderer/MCHTMLRenderer.h index 47a21acc..6d59cb67 100644 --- a/src/core/renderer/MCHTMLRenderer.h +++ b/src/core/renderer/MCHTMLRenderer.h @@ -34,6 +34,7 @@ namespace mailcore { static Array * /* AbstractPart */ attachmentsForMessage(AbstractMessage * message); static Array * /* AbstractPart */ htmlInlineAttachmentsForMessage(AbstractMessage * message); + static Array * /* AbstractPart */ requiredPartsForRendering(AbstractMessage * message); }; }; |