<table><tr><td style="">vkrause created this revision.<br />vkrause added a reviewer: knauss.<br />Restricted Application added a project: KDE PIM.<br />Restricted Application added a subscriber: KDE PIM.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D8087" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>REVISION SUMMARY</strong><div><p>For that we need a QTextStream backed by a QIODevice. We have two<br />
implementation, one backed by a QBuffer and one by a QFile, rplacing<br />
most of the various sub-classes we had previously.</p>

<p>This means that the internal buffer is now a QByteArray rather than a<br />
QString. That however turns out to not be a problem at all, as<br />
QWebEnginePage::setHtml() basically just calls setContent(html.toUtf8()),<br />
ie. we need a QByteArray in the end anyway.</p>

<p>Another side-effect of the QIODevice usage is that this now becomes a lot<br />
more sensitive to being in the correct state, therefore also the test code<br />
needs to properly call begin/end now.</p>

<p>In order to employ this to the full extend the next step is passing this<br />
along to all render methods and writing into it directly rather than using<br />
intermediate buffers, as well as adding a custom Grantlee item for nested<br />
templates so we can do this with streaming too.</p></div></div><br /><div><strong>REPOSITORY</strong><div><div>R94 PIM: Message Library</div></div></div><br /><div><strong>BRANCH</strong><div><div>top</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D8087" rel="noreferrer">https://phabricator.kde.org/D8087</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>messagecomposer/autotests/cryptocomposertest.cpp<br />
messagecomposer/autotests/cryptofunctions.cpp<br />
messagecomposer/autotests/messagefactoryngtest.cpp<br />
messagecomposer/autotests/testhtmlwriter.h<br />
messageviewer/src/htmlwriter/webengineparthtmlwriter.cpp<br />
messageviewer/src/htmlwriter/webengineparthtmlwriter.h<br />
messageviewer/src/messagepartthemes/default/autotests/objecttreeparsertest.cpp<br />
messageviewer/src/messagepartthemes/default/autotests/quotehtmltest.cpp<br />
messageviewer/src/messagepartthemes/default/autotests/unencryptedmessagetest.cpp<br />
messageviewer/src/messagepartthemes/default/autotests/util.h<br />
messageviewer/src/messagepartthemes/default/defaultrenderer.cpp<br />
messageviewer/src/messagepartthemes/default/partrendered.cpp<br />
messageviewer/src/messagepartthemes/default/partrendered.h<br />
mimetreeparser/autotests/util.h<br />
mimetreeparser/src/CMakeLists.txt<br />
mimetreeparser/src/htmlwriter/bufferedhtmlwriter.cpp<br />
mimetreeparser/src/htmlwriter/bufferedhtmlwriter.h<br />
mimetreeparser/src/htmlwriter/filehtmlwriter.cpp<br />
mimetreeparser/src/htmlwriter/filehtmlwriter.h<br />
mimetreeparser/src/interfaces/htmlwriter.cpp<br />
mimetreeparser/src/interfaces/htmlwriter.h<br />
mimetreeparser/src/viewer/messagepart.cpp</div></div></div><br /><div><strong>To: </strong>vkrause, knauss<br /><strong>Cc: </strong>KDE PIM, dvasin, winterz, vkrause, mlaurent, knauss, dvratil<br /></div>