aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/rfc822/MCMessageParser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/rfc822/MCMessageParser.cpp')
-rw-r--r--src/core/rfc822/MCMessageParser.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/core/rfc822/MCMessageParser.cpp b/src/core/rfc822/MCMessageParser.cpp
index 71071c02..beddeebc 100644
--- a/src/core/rfc822/MCMessageParser.cpp
+++ b/src/core/rfc822/MCMessageParser.cpp
@@ -5,6 +5,7 @@
#include <CoreFoundation/CoreFoundation.h>
#endif
+#include "MCDefines.h"
#include "MCAttachment.h"
#include "MCMessageHeader.h"
#include "MCHTMLRenderer.h"
@@ -140,6 +141,15 @@ HashMap * MessageParser::serializable()
return result;
}
+void MessageParser::importSerializable(HashMap * serializable)
+{
+ AbstractMessage::importSerializable(serializable);
+ MC_SAFE_REPLACE_RETAIN(AbstractPart, mMainPart, Object::objectWithSerializable((HashMap *) serializable->objectForKey(MCSTR("mainPart"))));
+ if (mMainPart != NULL) {
+ mMainPart->applyUniquePartID();
+ }
+}
+
Object * MessageParser::copy()
{
return new MessageParser(this);
@@ -190,3 +200,13 @@ String * MessageParser::plainTextBodyRendering(bool stripWhitespace)
}
return plainTextBodyString;
}
+
+static void * createObject()
+{
+ return new MessageParser();
+}
+
+INITIALIZE(MessageParser)
+{
+ Object::registerObjectConstructor("mailcore::MessageParser", &createObject);
+}