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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On November 7th, 2010, 10:07 p.m., <b>Soren Harward</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;">Okay, here are my comments on r5:

- Now that the TagMatch class has been pared down quite a bit, I agree with your original idea to get rid of the Support file.  Let&#39;s merge the code from the TagMatchComparer.cpp file into TagMatch.cpp.

- The name of a Tag Match constraint that uses &quot;Simple Search&quot; doesn&#39;t display nicely in the &quot;Constraint Tree&quot; section of the &quot;APG Preset Editor&quot; dialog.

- The trickery with having 30 days equal 1 month in the MQWidget is too much.  Not every month is 30 days, so just keep it at &quot;X days&quot; and add a further dropdown unit for months.

- The date fields display properly for TagMatch in the &quot;Constraint Tree&quot; section (with the exception of the &quot;months&quot; trickery), but they don&#39;t function properly.  Running the APG with a constraint that has a date comparison causes it to behave, well, abnormally.

- When changing the type of match in the MQWidget (eg, from number to string), the comparison in the Constraint name doesn&#39;t get updated properly

- The &quot;Match&quot; label should be disabled along with the &quot;Loose -|----- Strict&quot; slider when a string type is selected in the MQWidget.

- The date for date matching on a new constraint should default to something more reasonable than 31-Dec-1969; the best default would probably be &quot;today&quot;.

- Removing the CompareDate function from the Comparer is actually a problem; there&#39;s a long standing bug with date comparisons that I started to fix, but shelved until after the change to MQWidget.  Comparing dates isn&#39;t as easy as just comparing two numbers.  For example &quot;added to collection on [date]&quot; isn&#39;t just a straight &quot;equals&quot; comparison, because &quot;on [date]&quot; semantically covers the ~86400 seconds during that day.  So the comparison of &quot;equals&quot; actually has to encompass a range.  So date comparisons should be kept as a separate function so they can be treated properly.

The Widget itself looks great, and I think the idea to restructure the Comparer class to use static functions rather than a const object was a good one.  Once we get these regressions fixed, the patch will be good to go.

The date-handling interaction between the MQWidget and the TagMatch constraint is likely to be a bit complicated.  Could you please push this branch to a repo so we can work on it together?  It would also give me the chance to fix the CompareDate function.</pre>
 </blockquote>




 <p>On November 9th, 2010, 2:05 a.m., <b>Ralf Engels</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;">First: the repository is at http://gitorious.org/~rengels/amarok/rengelss-amarok/commits/metaquery-patch
I would need your Gitorious user name to add you as collaborator. We should have done this before :)

The trickery with 30 days is really a trickery. But I have no idea how you could convert months or years to seconds otherwise. We could use the sun year and on 1/12 as month. Actually that is a good idea. 

Date default is easy to do. Currently it set&#39;s every numeric field (dates included) to 0. 

Regarding the CompareDate. You are right. date == date actually means &quot;on the same day&quot;.
</pre>
 </blockquote>








</blockquote>

<pre style="white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Soren,
I was wondering. 
Is the branch OK now? Should I commit it?
I am for committing it once we are relatively sure that it&#39;s better than the current mainline, which it is in my opinion.
</pre>
<br />








<p>- Ralf</p>


<br />
<p>On November 7th, 2010, 7:06 p.m., Ralf Engels wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://git.reviewboard.kde.orgrb/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 Amarok.</div>
<div>By Ralf Engels.</div>


<p style="color: grey;"><i>Updated 2010-11-07 19:06:34</i></p>




<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;">Instead of implementing the whole behavior of selecting field and values I am just using the MetaQueryWidget.

Also I am moving all field related texts to src/core/meta/support/MetaConstants.cpp
This would also be a good place for the playlist to get it&#39;s texts from.</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;">Generated several advanced playlists testing a couple of the fields and all the conditions.</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>src/CMakeLists.txt <span style="color: grey">(2160670)</span></li>

 <li>src/core-impl/collections/support/XmlQueryReader.h <span style="color: grey">(0088608)</span></li>

 <li>src/core-impl/collections/support/XmlQueryReader.cpp <span style="color: grey">(b5518f0)</span></li>

 <li>src/core-impl/collections/support/XmlQueryWriter.h <span style="color: grey">(5caf7bc)</span></li>

 <li>src/core-impl/collections/support/XmlQueryWriter.cpp <span style="color: grey">(3c9cf41)</span></li>

 <li>src/core/CMakeLists.txt <span style="color: grey">(8272804)</span></li>

 <li>src/core/meta/support/MetaConstants.h <span style="color: grey">(73d03fc)</span></li>

 <li>src/core/meta/support/MetaConstants.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/core/meta/support/MetaUtility.h <span style="color: grey">(47e7c24)</span></li>

 <li>src/core/meta/support/MetaUtility.cpp <span style="color: grey">(5cf4519)</span></li>

 <li>src/dynamic/Bias.h <span style="color: grey">(082327c)</span></li>

 <li>src/dynamic/Bias.cpp <span style="color: grey">(8a8ab97)</span></li>

 <li>src/playlistgenerator/PresetModel.cpp <span style="color: grey">(9b74636)</span></li>

 <li>src/playlistgenerator/constraints/PlaylistDuration.h <span style="color: grey">(992215c)</span></li>

 <li>src/playlistgenerator/constraints/PlaylistDuration.cpp <span style="color: grey">(5d83dfe)</span></li>

 <li>src/playlistgenerator/constraints/TagMatch.h <span style="color: grey">(f23d562)</span></li>

 <li>src/playlistgenerator/constraints/TagMatch.cpp <span style="color: grey">(d8ed7db)</span></li>

 <li>src/playlistgenerator/constraints/TagMatchComparer.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>src/playlistgenerator/constraints/TagMatchEditWidget.ui <span style="color: grey">(b9d97c6)</span></li>

 <li>src/playlistgenerator/constraints/TagMatchSupport.cpp <span style="color: grey">(6b777b1)</span></li>

 <li>src/widgets/MetaQueryWidget.h <span style="color: grey">(ba64e4c)</span></li>

 <li>src/widgets/MetaQueryWidget.cpp <span style="color: grey">(32f3f24)</span></li>

</ul>

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




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








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