<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/127779/">https://git.reviewboard.kde.org/r/127779/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On April 28th, 2016, 1:08 p.m. UTC, <b>Milian Wolff</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; border-collapse: collapse; margin: 2px padding: 2px;">
<thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; font-size: 9pt; padding: 4px 8px; text-align: left;">
<a href="https://git.reviewboard.kde.org/r/127779/diff/5/?file=461490#file461490line66" style="color: black; font-weight: bold; text-decoration: underline;">src/kiconloader.cpp</a>
<span style="font-weight: normal;">
(Diff revision 5)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#f0f0f0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">61</font></th>
<td bgcolor="#ffffff" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="n">Q_GLOBAL_STATIC_WITH_ARGS</span><span class="p">(</span><span class="n">QString</span><span class="p">,</span> <span class="n">NULL_EFFECT_FINGERPRINT</span><span class="p">,</span> <span class="p">(</span><span class="n">QString</span><span class="o">::</span><span class="n">fromLatin1</span><span class="p">(</span><span class="s">"noeffect"</span><span class="p">)))</span></pre></td>
<th bgcolor="#f0f0f0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">66</font></th>
<td bgcolor="#ffffff" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="n">Q_GLOBAL_STATIC_WITH_ARGS</span><span class="p">(</span><span class="n">QString</span><span class="p">,</span> <span class="n">NULL_EFFECT_FINGERPRINT</span><span class="p">,</span> <span class="p">(</span><span class="n">QString</span><span class="o">::</span><span class="n">fromLatin1</span><span class="p">(</span><span class="s">"noeffect"</span><span class="p">)))</span></pre></td>
</tr>
</tbody>
</table>
<pre style="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 and the line below should be rewritten to</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">namespace {
QString NULL_EFFECT_FINGERPRINT() {
return QStringLiteral("noeffect");
}
QString STYLESHEET_TEMPLATE() {
return QStringLiteral("...");
}
}</p></pre>
</blockquote>
</blockquote>
<pre style="margin-left: 1em; 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;">but this would instantiate a new one every time is used?</p></pre>
<br />
<p>- Marco</p>
<br />
<p>On April 28th, 2016, 12:59 p.m. UTC, Marco Martin wrote:</p>
<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 Plasma.</div>
<div>By Marco Martin.</div>
<p style="color: grey;"><i>Updated April 28, 2016, 12:59 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
kiconthemes
</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;">Breeze uses stylesheet information to color its icons with some "named" colors that change depending from the current system color scheme, this is already used since some time in the icons used by the Plasma shell.
But QWidget applications have the same problem, when the user changes the color scheme from breeze to breeze dark (or any color scheme), most of the icons will be black on black.
This patch clones (a bit simplified and taking only the most "important" colors) the logic used by Plasma::Svg to color icons with the stylesheet.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">even tough it's doing more things at icon generation, an application that uses a lot of icons like Dolphin doesn't seem to have noticeable startup time difference, even when the image cache is not present yet, so i hope is not an unacceptable performance tradeoff (successive loads are unchanged as are from the image cache).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">still some questions and things that can be optimized, like</p>
<ul style="padding: 0;text-rendering: inherit;margin: 0 0 0 1em;line-height: inherit;white-space: normal;">
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">an optional key in the theme metadata file to explicitly enable this, to not have it running in themes that don't care?</p>
</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">can i use karchive in this framework?, so it would work with svgz icons as well</p>
</li>
<li style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;">
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">right now to refresh icons at runtime it depends from a patch in the colors kcm to emit iconchanges as well, alternatively kiconloader could watch for kcolorscheme changes as well, but i don't think is strictly necessary</p>
</li>
</ul></pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>CMakeLists.txt <span style="color: grey">(2e838e8)</span></li>
<li>src/CMakeLists.txt <span style="color: grey">(0e30a35)</span></li>
<li>src/kiconloader.cpp <span style="color: grey">(75ab482)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/127779/diff/" style="margin-left: 3em;">View Diff</a></p>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">File Attachments </h1>
<li><a href="https://git.reviewboard.kde.org/media/uploaded/files/2016/04/28/0fc42425-947c-479e-9759-09c7a703a456__dadel1.png">dadel1.png</a></li>
</ul>
</td>
</tr>
</table>
</div>
</body>
</html>