Differential D8102 Diff 20290 messageviewer/src/messagepartthemes/default/plugins/textmessagepartrenderer.cpp
Changeset View
Changeset View
Standalone View
Standalone View
messageviewer/src/messagepartthemes/default/plugins/textmessagepartrenderer.cpp
Show All 15 Lines | 1 | /* | |||
---|---|---|---|---|---|
16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | 16 | Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA | ||
17 | 02110-1301, USA. | 17 | 02110-1301, USA. | ||
18 | */ | 18 | */ | ||
19 | 19 | | |||
20 | #include "textmessagepartrenderer.h" | 20 | #include "textmessagepartrenderer.h" | ||
21 | 21 | | |||
22 | #include "quotehtml.h" | 22 | #include "quotehtml.h" | ||
23 | 23 | | |||
24 | #include "../partrendered.h" | | |||
25 | #include "../defaultrenderer_p.h" | 24 | #include "../defaultrenderer_p.h" | ||
25 | #include "../htmlblock.h" | ||||
26 | #include "../messagepartrenderermanager.h" | ||||
27 | | ||||
28 | #include <MessageCore/StringUtil> | ||||
29 | #include <MimeTreeParser/HtmlWriter> | ||||
30 | | ||||
31 | #include <grantlee/context.h> | ||||
32 | #include <grantlee/template.h> | ||||
33 | | ||||
34 | #include <QApplication> | ||||
26 | 35 | | |||
27 | TextMessagePartRenderer::TextMessagePartRenderer() | 36 | TextMessagePartRenderer::TextMessagePartRenderer() | ||
28 | { | 37 | { | ||
29 | } | 38 | } | ||
30 | 39 | | |||
31 | TextMessagePartRenderer::~TextMessagePartRenderer() | 40 | TextMessagePartRenderer::~TextMessagePartRenderer() | ||
32 | { | 41 | { | ||
33 | } | 42 | } | ||
34 | 43 | | |||
35 | QSharedPointer<PartRendered> TextMessagePartRenderer::render(DefaultRendererPrivate *drp, const MimeTreeParser::MessagePartPtr &msgPart) | 44 | static QString alignText() | ||
36 | const | 45 | { | ||
46 | return QApplication::isRightToLeft() ? QStringLiteral("rtl") : QStringLiteral("ltr"); | ||||
47 | } | ||||
48 | | ||||
49 | bool TextMessagePartRenderer::render(MimeTreeParser::DefaultRendererPrivate* drp, const MimeTreeParser::MessagePartPtr& msgPart, MimeTreeParser::HtmlWriter* htmlWriter) const | ||||
knauss: can be deleted. | |||||
vkrause: done in the DRP removal patch | |||||
knauss: nope not for TextMessagePartRenderer. | |||||
37 | { | 50 | { | ||
38 | auto mp = msgPart.dynamicCast<TextMessagePart>(); | 51 | auto mp = msgPart.dynamicCast<TextMessagePart>(); | ||
39 | if (mp) { | 52 | if (!mp) | ||
40 | return QSharedPointer<PartRendered>(new TextPartRendered(mp)); | 53 | return false; | ||
54 | | ||||
55 | auto node = mp->content(); | ||||
56 | auto nodeHelper = mp->mOtp->nodeHelper(); | ||||
57 | if (mp->isHidden()) { | ||||
58 | return true; | ||||
41 | } | 59 | } | ||
42 | return QSharedPointer<PartRendered>(); | 60 | | ||
61 | Grantlee::Template t; | ||||
62 | Grantlee::Context c = MessageViewer::MessagePartRendererManager::self()->createContext(); | ||||
63 | QObject block; | ||||
64 | c.insert(QStringLiteral("block"), &block); | ||||
65 | | ||||
66 | block.setProperty("showTextFrame", mp->showTextFrame()); | ||||
67 | block.setProperty("label", | ||||
68 | MessageCore::StringUtil::quoteHtmlChars(MimeTreeParser::NodeHelper::fileName( | ||||
69 | node), true)); | ||||
70 | block.setProperty("comment", | ||||
71 | MessageCore::StringUtil::quoteHtmlChars(node->contentDescription()-> | ||||
72 | asUnicodeString(), true)); | ||||
73 | block.setProperty("link", nodeHelper->asHREF(node, QStringLiteral("body"))); | ||||
74 | block.setProperty("showLink", mp->showLink()); | ||||
75 | block.setProperty("dir", alignText()); | ||||
knauss: we have drp that has already the method drp->alignText() | |||||
vkrause: Addressed in the subsequent patch removing drp. | |||||
76 | | ||||
77 | t = MessageViewer::MessagePartRendererManager::self()->loadByName(QStringLiteral( | ||||
78 | ":/textmessagepart.html")); | ||||
79 | | ||||
80 | QString content; | ||||
81 | foreach (const auto &_m, mp->subParts()) { | ||||
82 | DefaultRenderer::Ptr renderer = mp->source()->messagePartTheme(_m); | ||||
83 | content += renderer->html(); | ||||
84 | } | ||||
85 | c.insert(QStringLiteral("content"), content); | ||||
86 | | ||||
87 | MimeTreeParser::AttachmentMarkBlock attBlock(nullptr, mp->attachmentContent()); | ||||
88 | if (mp->isAttachment()) | ||||
89 | htmlWriter->write(attBlock.enter()); | ||||
90 | | ||||
91 | Grantlee::OutputStream s(htmlWriter->stream()); | ||||
92 | t->render(&s, &c); | ||||
93 | htmlWriter->write(attBlock.exit()); | ||||
94 | return true; | ||||
43 | } | 95 | } |
can be deleted.