<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/116940/">https://git.reviewboard.kde.org/r/116940/</a>
     </td>
    </tr>
   </table>
   <br />










<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On August 23rd, 2014, 3:45 p.m. UTC, <b>David Edmundson</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/116940/diff/23/?file=307051#file307051line200" style="color: black; font-weight: bold; text-decoration: underline;">status-handler.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 23)

    </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">197</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="c1">//evaluate the status message plugins for on-off and utilization state</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;">I haven't had an answer that I understand when I last asked this.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Why are you turning plugins off? <br style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" />
The entire point of the queue is that some plugins have priority over others, if you make it so there's only one active there's not point having a queue.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Also can you (using simple words) explain the difference between enabled and active in plugins.</p></pre>
 </blockquote>



 <p>On August 25th, 2014, 11:15 a.m. UTC, <b>James Smith</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;">This is really useful for deactivating the entire stack of status message plugins at the same time, for instance by manually changing the requested presence with an active status message plugin. If the requested presence isn't manually altered and the active plugin deactivates due to inactivity, the queue should in theory bump to the next active plugin automatically.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">active is useful for plugin-specific changes e.g. new data events, etc. The now playing status message plugin sets active for each track change, and (de)active between track changes and (de)active for no upcoming tracks or players.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">enabled is for turning the output of a plugin on and off completely, so that it won't respond to new data events. (dis)abled overrides active.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">(de)active looks a lot like (dis)abled output-wise, but (de)active plugins still respond to new data events while (dis)abled plugins don't.</p></pre>
 </blockquote>





 <p>On August 25th, 2014, 11:26 a.m. UTC, <b>David Edmundson</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;">This differs massively from the original code which was:<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" />
 - enabled: turned on by the user in the config<br style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: normal;" />
 - active:  currently has a presence that should be used.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">Then we set ourselves to the first thing in the queue which is active.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">If you start manipulating enabled from other code you're going to break following the user's settings surely?</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;">The  current status message plugin class nicely waits on any pending activate requests meaning it's probably safe to assume setEnabled() completed safely from outside the plugin. We already disable from the contact list on-the-fly in this way, so as long as a way is provided to re-enable the plugin, we don't have have a problem doing this by changing presences. It's simple to reenable the nowplaying plugin from the contactlist, and we currently do not save the on-the-fly state to disk. The user settings are confined to a single dialog when first starting the nowplaying plugin from the contactlist and are only presented if the plugin was disabled by the kcm, or the kcm is used to enable the plugin at logon. All other methods of activation use setEnable() in some way and work on-the-fly, without saving the state to disk. The same with disabling the plugin by changing the presence with either the presence applet or the contactlist. The only real way to disable the plugin entirely is still in the kcm.</p></pre>
<br />




<p>- James</p>


<br />
<p>On August 25th, 2014, 11:15 a.m. UTC, James Smith 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 Telepathy.</div>
<div>By James Smith.</div>


<p style="color: grey;"><i>Updated Aug. 25, 2014, 11:15 a.m.</i></p>







<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="http://bugs.kde.org/show_bug.cgi?id=332082">332082</a>, 

 <a href="http://bugs.kde.org/show_bug.cgi?id=334492">334492</a>, 

 <a href="http://bugs.kde.org/show_bug.cgi?id=334542">334542</a>


</div>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
ktp-kded-module
</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;">Move status message plugins into a separate class. New infrastructure to help mitigate the occurrence of bug #334492 while using status message plugins: 1) buffering of the last n status messages, and 2) a limiter to help stop flooding the presence changer. Also strips redundant and disused data structures from both classes.</p>
<p style="padding: 0;text-rendering: inherit;margin: 0;line-height: inherit;white-space: inherit;">This patch returns the ability to engage status message plug-ins from custom status messages. Also working is the disabling of non-visible status message plug-ins. State-affinity in the 95% of previously noted cases has been vastly improved also, the few remaining issues should be due to "lite" protocols that don't have a full complement of on-line presences.</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;">Disconnect / reconnect, autoconnect / no autoconnect, suspend / resume. Enable / disable via kcm module. Added a new custom presence and engaged the now playing plugin in the contact list from the new presence. Disabled the plugin by activating another presence.</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>telepathy-mpris.cpp <span style="color: grey">(44b041fdd3764ee5f67598fcf555a2759d853bdd)</span></li>

 <li>tests/CMakeLists.txt <span style="color: grey">(7ec77495417a6790060ea5ea7126c46399dff755)</span></li>

 <li>telepathy-kded-module-message-plugin.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>telepathy-kded-module-message-plugin.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>telepathy-kded-module-plugin.h <span style="color: grey">(4c161696a706e82059a7eb314773c3644fe26bd7)</span></li>

 <li>telepathy-kded-module-plugin.cpp <span style="color: grey">(daf73c66947bc946097de7a8e8a1518555131145)</span></li>

 <li>telepathy-mpris.h <span style="color: grey">(05b77c90a50372fd9ed66bde0ab8a287caf34b51)</span></li>

 <li>CMakeLists.txt <span style="color: grey">(930267740d0bf26f42a48ea55d77148f87df5369)</span></li>

 <li>status-handler.h <span style="color: grey">(06240ff17e22148f2b128bc0eb8cec6d6abe68ff)</span></li>

 <li>status-handler.cpp <span style="color: grey">(4b9c25a2ccba451f6e608bb704626e33149108cc)</span></li>

</ul>

<p><a href="https://git.reviewboard.kde.org/r/116940/diff/" style="margin-left: 3em;">View Diff</a></p>






  </td>
 </tr>
</table>








  </div>
 </body>
</html>