<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/127263/">https://git.reviewboard.kde.org/r/127263/</a>
</td>
</tr>
</table>
<br />
<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
<p style="margin-top: 0;">On březen 3rd, 2016, 12:35 odp. UTC, <b>Lamarque Souza</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/127263/diff/1/?file=447897#file447897line49" style="color: black; font-weight: bold; text-decoration: underline;">daemon/actions/bundled/wirelesspowersaving.cpp</a>
<span style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" align="right"><font size="2"></font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
<th bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid #C0C0C0;" align="right"><font size="2">49</font></th>
<td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span class="k">if</span> <span class="p">(</span><span class="n">m_lastWifiState</span> <span class="o">!=</span> <span class="o">!</span><span class="n">m_currentProfileDisableWifi</span><span class="p">)</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 next two if are a bit strange. Shouldn't this be:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">if (m_lastWifiState != m_currentProfileDisableWifi) {</p></pre>
</blockquote>
<p>On březen 3rd, 2016, 1:31 odp. UTC, <b>Jan Grulich</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;">Nope, it's correct. While the configuration checks whether it should be disabled, the NM::isWifiEnabled() returns if it's enabled, so when comparing "enabled" vs "disabled" I need to adjust one of them.</p></pre>
</blockquote>
<p>On březen 3rd, 2016, 1:58 odp. UTC, <b>Lamarque Souza</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;">Ok about that being correct, but then the syntax is kind of unusual. You have three negations in that if expression: operator !=, operator ! and the "Disable" word in m_currentProfileDisableWifi. That makes the code difficult to read. It is because situations like that that I do not like using negative words in variable's name. That line could be:</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">if (m_lastWifiState != m_currentProfileEnableWifi) {</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">which is cleaner in my oppinion. Of course, you will have to change your code to cope with changing of m_currentProfileDisableWifi to m_currentProfileEnableWifi. That is just a suggestion, Powerdevil's maintainer has the final word about that.</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;">Yeah, you are right. I started this with just using m_currentProfileDisableWifi according to the UI options, then I added the rest and didn't bother with making it easier to read, but I have to admit that even I had problems with the logic. I'll change that so it's understandable.</p></pre>
<br />
<p>- Jan</p>
<br />
<p>On březen 3rd, 2016, 1:30 odp. UTC, Jan Grulich 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, Solid, KDE Usability, and Kai Uwe Broulik.</div>
<div>By Jan Grulich.</div>
<p style="color: grey;"><i>Updated Bře. 3, 2016, 1:30 odp.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
powerdevil
</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 action adds an option to turn off wifi/wwan/bt once you switch profile (e.g you unplugg the power cable and start running on battery).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">One more thing. Due to usage of NetworkManagerQt I had to add add_definitions(-DQT_NO_KEYWORDS) into CMakeLists.txt like we do in plasma-nm to avoid compilation error (thanks to NetworkManager) and replace all keywords by their Qt equivalent (e.g signals ? Q_SIGNALS).</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">How it behaves:
1) Switching from "AC" profile to "battery" (or from "battery" to "low battery" which is the same situation):
a) When the action is enabled in "AC" profile and options to turn off wifi/wwan/bt are enabled
x) Switching to a profile where the action is enabled too and options are turned on ? will do nothing as they should be already turned off
y) Switching to a profile where the action is enabled too but options are turned off ? will do nothing as the "battery" profile is more conservative and we have those devices disabled already in less conservative profile
z) Switching to a profile where the action is disabled ? will do nothing as there is nothing to do
b) When the action is enabled in "AC" profile and options to turn off wifi/wwan/bt are disabled
? this should behave according to the more conservative profile, if the options are enabled then all devices will be disabled too
C) When the action is disabled in "AC" profile
? should behave as in the case 1-b
2) Switching from "battery" profile to "AC" profile (or from "low battery" to "battery" which is the same situation):
a) When the action is enabled in "battery" profile and options to turn off wifi/wwan/bt are enabled
x) Switching to a profile where the action is enabled too and options are turned on ? will do nothing as it's same setup
y) Switching to a profile where the action is enabled too and options are turned off ? will turn on the wifi/wwan/bt
z) Switching to a profile where the action is disabled ? will recover the previous state of the wifi/wwan/bt
b) When the action is enabled in "battery" profile and options to turn off wifi/wwan/bt are disabled
x) Switching to a profile where the action is enabled too and options are turned on ? will do nothing as the option in "battery" should be ignored in this case due to more conservative profile
y) Switching to a profile where the action is enabled too and options are turned off ? will do nothing, same configuration
z) Switching to a profile where the action is disabled ? will recover the previous state of the wifi/wwan/bt
c) When the action is diabled in "battery" profile
? will just recover the previous state of the wifi/wwan/bt as there is nothing to change according to the new profile</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;">I did some basic testing like (un)plugging the power cable and checking whether it applied the correct configuration.</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>CMakeLists.txt <span style="color: grey">(e7fff17)</span></li>
<li>daemon/CMakeLists.txt <span style="color: grey">(bbfe191)</span></li>
<li>daemon/actions/bundled/CMakeLists.txt <span style="color: grey">(45abea3)</span></li>
<li>daemon/actions/bundled/handlebuttonevents.h <span style="color: grey">(5d602d7)</span></li>
<li>daemon/actions/bundled/handlebuttonevents.cpp <span style="color: grey">(7e1d16e)</span></li>
<li>daemon/actions/bundled/handlebuttoneventsconfig.cpp <span style="color: grey">(b1d4ef0)</span></li>
<li>daemon/actions/bundled/org.kde.Solid.PowerManagement.Actions.WirelessPowerSaving.xml <span style="color: grey">(PRE-CREATION)</span></li>
<li>daemon/actions/bundled/powerdevilwirelesspowersavingaction.desktop <span style="color: grey">(PRE-CREATION)</span></li>
<li>daemon/actions/bundled/suspendsession.h <span style="color: grey">(d0fc78d)</span></li>
<li>daemon/actions/bundled/wirelesspowersaving.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>daemon/actions/bundled/wirelesspowersaving.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>daemon/actions/bundled/wirelesspowersavingconfig.h <span style="color: grey">(PRE-CREATION)</span></li>
<li>daemon/actions/bundled/wirelesspowersavingconfig.cpp <span style="color: grey">(PRE-CREATION)</span></li>
<li>daemon/backends/upower/backlighthelper.h <span style="color: grey">(b5ce7dc)</span></li>
<li>daemon/backends/upower/backlighthelper.cpp <span style="color: grey">(58b82be)</span></li>
<li>daemon/backends/upower/powerdevilupowerbackend.h <span style="color: grey">(32f0ee4)</span></li>
<li>daemon/backends/upower/powerdevilupowerbackend.cpp <span style="color: grey">(6133887)</span></li>
<li>daemon/backends/upower/udevqtclient.cpp <span style="color: grey">(52b17f6)</span></li>
<li>daemon/kwinkscreenhelpereffect.h <span style="color: grey">(bc1c21b)</span></li>
<li>daemon/kwinkscreenhelpereffect.cpp <span style="color: grey">(dec5d65)</span></li>
<li>daemon/powerdevilactionconfig.cpp <span style="color: grey">(2565b0d)</span></li>
<li>daemon/powerdevilactionpool.cpp <span style="color: grey">(2091879)</span></li>
<li>daemon/powerdevilbackendinterface.cpp <span style="color: grey">(7aadb01)</span></li>
<li>daemon/powerdevilcore.cpp <span style="color: grey">(f02d474)</span></li>
<li>daemon/powerdevilfdoconnector.cpp <span style="color: grey">(d9a3ee6)</span></li>
<li>daemon/powerdevilpolicyagent.cpp <span style="color: grey">(e0d1ec6)</span></li>
<li>daemon/powerdevilprofilegenerator.cpp <span style="color: grey">(cff3120)</span></li>
<li>kcmodule/activities/activitypage.cpp <span style="color: grey">(ec18dee)</span></li>
<li>kcmodule/activities/activitywidget.cpp <span style="color: grey">(5992a4d)</span></li>
<li>kcmodule/common/actioneditwidget.cpp <span style="color: grey">(216399c)</span></li>
<li>kcmodule/global/GeneralPage.h <span style="color: grey">(a34d54f)</span></li>
<li>kcmodule/global/GeneralPage.cpp <span style="color: grey">(b2d9767)</span></li>
<li>kcmodule/profiles/EditPage.h <span style="color: grey">(4791017)</span></li>
<li>kcmodule/profiles/EditPage.cpp <span style="color: grey">(30973b2)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/127263/diff/" style="margin-left: 3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>