<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="12" style="border: 1px #c9c399 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/121094/">https://git.reviewboard.kde.org/r/121094/</a>
</td>
</tr>
</table>
<br />
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="12" style="border: 1px #888a85 solid; border-radius: 6px; -moz-border-radius: 6px; -webkit-border-radius: 6px;">
<tr>
<td>
<div>Review request for KDE Frameworks and Michael Pyne.</div>
<div>By Daniel Vrátil.</div>
<p style="color: grey;"><i>Updated Nov. 14, 2014, 1:37 p.m.</i></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The KEmoticons plugin has been moved to from FrameworkIntegration into KEmoticons Framework</pre>
</td>
</tr>
</table>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
kcoreaddons
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This class comes from KPimUtils::LinkLocator from kdepimlibs.git. This class takes plaintext string, and converts it to HTML while perserving spacing, converting URLs and email addresses into <a href...> links and interpreting highligting markup (<em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">bold</em>, <em style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">underline</em>, /italic/) and wrapping it to corresponding HTML tags. It can also convert text emoticons into <img> smileys.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The last - emoticons conversion - depends on KEmoticons, which we can't use directly from KCoreAddons, so I moved the actual KEmoticons code into FrameworkIntegration plugin. There is a dummy implementation provided by default in KCoreAddons that is loaded when the FrameworkIntegration plugin is not available, or when the application is only a QCoreApplication (since KEmoticons require QGuiApplication, so we must not load the plugin). The dummy implementation does nothing and returns the original string unaltered.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">The reason for moving the class from KPimUtils is that KPimUtils is going to die, and while we could make this internal to KDE PIM, I think this is a rather useful code, that can be used by many applications that need to deal with 3rd party text data and want to provide user-friendly clickable links.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">If you compare this with the original KPimUtils::LinkLocator you find, that I removed all public API except for the convertToHTML method. This is because the remaining methods (getUrl, getEmailAddress) depend on the actual state of the LinkLocator object, but LinkLocator provides no API for step-by-step parsing, so they were actually useless for public use. For that reason I decided to only publish the convertToHTML method, and hide the remaining methods as internal methods of the KTextToHTMLHelper (useful for unit-testing).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This patch also contains a unit-test from KPimUtils.</p></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
<tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;"><p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Unit test passes</p></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>autotests/CMakeLists.txt <span style="color: grey">(d5a5feb)</span></li>
<li>autotests/ktexttohtmltest.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>autotests/ktexttohtmltest.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/lib/CMakeLists.txt <span style="color: grey">(1dc5627)</span></li>
<li>src/lib/text/ktexttohtml.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/lib/text/ktexttohtml.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/lib/text/ktexttohtml_p.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>src/lib/text/ktexttohtmlemoticonsinterface.h <span style="color: grey">(PRE-CREATION)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/121094/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>