aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/renderer
diff options
context:
space:
mode:
authorGravatar Matt Ronge <mronge@mronge.com>2014-03-14 16:31:14 -0500
committerGravatar Matt Ronge <mronge@mronge.com>2014-03-14 16:31:14 -0500
commit92c618dc4b8e20a556d2f46a978f88673b241485 (patch)
treec4f2eaea173c549659aac36c960691682b07c33d /src/core/renderer
parentad5e306b3af920169ae1842a7fd2cfce8fcf5022 (diff)
Moved implementation of requiredPartsForRendering
Diffstat (limited to 'src/core/renderer')
-rw-r--r--src/core/renderer/MCHTMLRenderer.cc43
-rw-r--r--src/core/renderer/MCHTMLRenderer.h1
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);
};
};