<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/121355/">https://git.reviewboard.kde.org/r/121355/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On December 4th, 2014, 10:20 p.m. CET, <b>Emmanuel Pescosta</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/121355/diff/1/?file=331906#file331906line170" style="color: black; font-weight: bold; text-decoration: underline;">dataengines/powermanagement/powermanagementengine.cpp</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
<tr>
<td colspan="4"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">bool PowermanagementEngine::sourceRequestEvent(const QString &name)</pre></td>
</tr>
</tbody>
<tbody>
<tr>
<th bgcolor="#e9eaa8" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2">168</font></th>
<td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">QObject</span><span class="o">::</span><span class="n">connect</span><span class="p">(</span><span class="n">watcher</span><span class="p">,</span> <span class="n"><span class="hl">SIGNAL</span></span><span class="p"><span class="hl">(</span></span><span class="n">finished</span><span class="p">(</span><span class="n">QDBusPendingCallWatcher</span><span class="o"><span class="hl">*</span></span><span class="p"><span class="hl">)),</span></span></pre></td>
<th bgcolor="#e9eaa8" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">163</font></th>
<td bgcolor="#fdfebc" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="n">QObject</span><span class="o">::</span><span class="n">connect</span><span class="p">(</span><span class="n">watcher</span><span class="p">,</span> <span class="o"><span class="hl">&</span></span><span class="n"><span class="hl">QDBusPendingCallWatcher</span></span><span class="o"><span class="hl">::</span></span><span class="n">finished</span><span class="p"><span class="hl">,</span></span><span class="hl"> </span><span class="k"><span class="hl">this</span></span><span class="p"><span class="hl">,</span></span><span class="hl"> </span><span class="p"><span class="hl">[</span></span><span class="k"><span class="hl">this</span></span><span class="p"><span class="hl">]</span>(</span><span class="n">QDBusPendingCallWatcher</span> <span class="o"><span class="hl">*</span></span><span class="n"><span class="hl">watcher</span></span><span class="p"><span class="hl">)</span></span><span class="hl"> </span><span class="p"><span class="hl">{</span></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;">You can remove the "this" receiver here and in other connect calls.</p></pre>
</blockquote>
<p>On December 4th, 2014, 10:21 p.m. CET, <b>Kai Uwe Broulik</b> wrote:</p>
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<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;">Are you sure? We've had crashes with the connection not being removed when the receiver was deleted causing the lambda to segfault.</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;">I think that the context destroys all watchers (senders), so all connections should be removed before the context (receiver) is deleted.
But always using the sender + context connect to avoid potential sources of crashes is a good idea, definitely something to keep in mind :)
Sorry for the noise!</p></pre>
<br />
<p>- Emmanuel</p>
<br />
<p>On December 4th, 2014, 9:41 p.m. CET, Kai Uwe Broulik 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 Plasma and Solid.</div>
<div>By Kai Uwe Broulik.</div>
<p style="color: grey;"><i>Updated Dec. 4, 2014, 9:41 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
plasma-workspace
</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;">Now that we can finally use absolute brightness values, rather than a fixed 0-100% range, those values should be exposed in the dataengine instead. This allows us to eg. properly handle keyboard brightness controls which usually have just a few steps. I adjusted battery monitor accordingly.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">It also cleans up the code by moving stuff into lambdas and gets rid of the ugly availability stuff by just relying on the maximum values to determin whether it's available. We still don't have means, though, to detect changes in these at runtime.</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;">Works as expected, I need someone without keyboard or screen brightness to test the availability.</p></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>dataengines/powermanagement/powermanagementengine.h <span style="color: grey">(ffad13e)</span></li>
<li>dataengines/powermanagement/powermanagementengine.cpp <span style="color: grey">(04aa49b)</span></li>
<li>dataengines/powermanagement/powermanagementjob.cpp <span style="color: grey">(c4e4510)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/121355/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/2014/12/04/c00db2e1-5278-4a1b-bd32-ff36777b91c6__batterykeyboardsteps.png">Battery monitor with keyboard</a></li>
</ul>
</td>
</tr>
</table>
</div>
</body>
</html>