<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="http://git.reviewboard.kde.org/r/101182/">http://git.reviewboard.kde.org/r/101182/</a>
     </td>
    </tr>
   </table>
   <br />


<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.org/media/rb/images/review_request_box_top_bg.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Plasma and Aaron J. Seigo.</div>
<div>By Alexey Chernov.</div>


<p style="color: grey;"><i>Updated May 2, 2011, 5:51 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;">Updated diff. Removed listUpdate recursive call and fixed coding style issues according comments by Marco.</pre>
  </td>
 </tr>
</table>


<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;">Smart lists in Remember The Milk are essentially special lists which contain tasks filtered by certain criteria. Most common smart list is &#39;All tasks&#39;.

The bug is that on adding/deleting/modifying any task smart lists aren&#39;t updated in RTM plasmoid. One just have to wait for the next timeout update. And it turned out that the bug concerns the design of RTM library quite deeply. So the fix contains some certain changes to several places of the RTM lib (fixes to applet and dataengine are quite cosmetic). The main idea is to make all the smart lists be updated on every change to tasks.

Few words about changes:
1. I added &#39;read-only&#39; attribute to Request class (request.h) so that split read-only requests and read-write requests which should trigger smart lists update.
2. I made few changes to xmlreaders and Session class to keep the initial request and smart lists update inside one user action (i.e. so that &#39;loading&#39; is shown during all these operations).</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;">I&#39;ve tested the code hugely with all the mentioned operations (add task, modify task, delete task) and smart lists are updated correctly with this patch. Updating smart lists on every modifying request makes it longer mainly because 1s interval between requests and slight duplication of requests here and there but I&#39;m currently testing another patch which removes most of duplications to speed up the overall process.</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>dataengines/rememberthemilk/rtmengine.cpp <span style="color: grey">(7e231efe7b0a977648c40e8438fd25a0154f0a50)</span></li>

 <li>libs/rtm/request.h <span style="color: grey">(58cb7daec491b652c5de2a1e18214df5e7baa5e9)</span></li>

 <li>libs/rtm/task_p.h <span style="color: grey">(00c794e75457f4de3680f0689dc4b741f15db4ce)</span></li>

 <li>libs/rtm/xmlreaders.h <span style="color: grey">(882f0500c7178bf5982a65b01b3cc2268ba1fe8b)</span></li>

 <li>libs/rtm/session_p.h <span style="color: grey">(34c2063a5a2015bed0e2bd8b9681df5c7b9e2802)</span></li>

 <li>libs/rtm/session.cpp <span style="color: grey">(dfd5db27c7a48a24921fd1ddbd4c4acf82fe9408)</span></li>

 <li>libs/rtm/request.cpp <span style="color: grey">(a2983300b989acd278e855623457a743948e1cdd)</span></li>

 <li>libs/rtm/session.h <span style="color: grey">(aad145c44c70fb28fe1496b93d991667e918f630)</span></li>

 <li>applets/rememberthemilk/taskmodel.cpp <span style="color: grey">(8e2ab387996ec81c6c6471c8e845ad3a881a4ce8)</span></li>

 <li>libs/rtm/xmlreaders.cpp <span style="color: grey">(507ac0d1c7f85e7e53c57ef022a78e78c619dd06)</span></li>

</ul>

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




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




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