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








<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On October 22nd, 2010, 7:05 p.m., <b>John Layt</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="http://svn.reviewboard.kde.org/r/5671/diff/2/?file=39911#file39911line183" style="color: black; font-weight: bold; text-decoration: underline;">trunk/KDE/kdelibs/nepomuk/utils/datefacet.cpp</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">DateRange Nepomuk::Utils::DateFacet::Private::dateRangeCandidateToDateRange( DateRangeCandidate range ) const</pre></td>

  </tr>
 </tbody>




 
 



 <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">183</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">                          <span class="n">QDate</span><span class="p">(</span> <span class="n">today</span><span class="p">.</span><span class="n">year</span><span class="p">()</span><span class="o">-</span><span class="mi">1</span><span class="p">,</span> <span class="mi">12</span><span class="p">,</span> <span class="mi">31</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;">Already here :-)  Yes, the first / last days of the year will need localizing, but it's not pretty.  In fact, it's so ugly, I'll add some public convenience methods to KCalendarSystem for them instead as it's easy to get t wrong (I already have private ones).  I'll get that done this weekend, If not ready in time free free to commit and I'll clean up afterward :-)

(The whole calendar api is just awkward anyway, I really need to do a KDate class to wrap it all).</pre>
 </blockquote>



 <p>On October 23rd, 2010, 6:16 a.m., <b>Sebastian Trueg</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;">In DateRange I use this now:

DateRange DateRange::yearOf( const QDate& date )
{
    return DateRange( QDate( date.year(), 1, 1 ),
                      QDate( date.year(),
                            KGlobal::locale()->calendar()->monthsInYear( date ),
                            KGlobal::locale()->calendar()->daysInMonth( QDate( date.year(), KGlobal::locale()->calendar()->monthsInYear( date ), 1 ) ) ) );
}

is that correct?</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;">Actually, the year needs localizing too, so it would be:

DateRange DateRange::yearOf( const QDate& date )
{
    int year = KGlobal::locale()->calendar()->year( date );
    QDate startDate, endDate;
    KGlobal::locale()->calendar()->setDate( startDate, year, 1, 1 );
    int lastMonth = KGlobal::locale()->calendar()->monthsInYear( year );
    int lastDay = KGlobal::locale()->calendar()->daysInMonth( year, lastMonth );
    KGlobal::locale()->calendar()->setDate( endDate, year, lastMonth, lastDay );
    return DateRange( startDate, endDate );
}

Too ugly, too long, no? :-(  So it would be easier to use the new api I committed last night:

DateRange DateRange::yearOf( const QDate& date )
{
    return DateRange( KGlobal::locale()->calendar()->firstDayOfYear( date ),
                      KGlobal::locale()->calendar()->lastDayOfYear( date ) );
}

Same goes for the monthOf() method which can use the new firstDayOfMonth() and lastDayOfMoth() methods.

I'm halfway through writing a new KDate class which would reduce the above to:

    KDate localizedDate( date );
    return DateRange( localizedDate.firstDayOfYear(), localizedDate.lastDayOfYear() );

But that's for later.</pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On October 22nd, 2010, 7:05 p.m., <b>John Layt</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="http://svn.reviewboard.kde.org/r/5671/diff/2/?file=39912#file39912line31" style="color: black; font-weight: bold; text-decoration: underline;">trunk/KDE/kdelibs/nepomuk/utils/daterange.h</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </span>
   </th>
  </tr>
 </thead>

 <tbody style="background-color: #e4d9cb; padding: 4px 8px; text-align: center;">
  <tr>

   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td>
   <td colspan="2"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">class QDebug;</pre></td>

  </tr>
 </tbody>




 
 



 <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">31</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm"> * \brief A simple data structure storing a start and an end date.</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;">Now, where else in KDE have a seen a DateRange class?  Somewhere in kdepim?  Perhaps we need one in kdelibs?</pre>
 </blockquote>



 <p>On October 23rd, 2010, 6:16 a.m., <b>Sebastian Trueg</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;">I agree. I will write a unit test and then propose DateRange for kdecore</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;">I'll try find all the date range classes and work out a common set of requirements.  I'll definitely need to talk to the pim guys about their needs, and Dave Jarvie about how it would work with KDateTime as well.</pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On October 22nd, 2010, 7:05 p.m., <b>John Layt</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="http://svn.reviewboard.kde.org/r/5671/diff/2/?file=39916#file39916line100" style="color: black; font-weight: bold; text-decoration: underline;">trunk/KDE/kdelibs/nepomuk/utils/daterangeselectionwidget.ui</a>
    <span style="font-weight: normal;">

     (Diff revision 2)

    </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; "></pre></td>

  </tr>
 </tbody>




 
 



 <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">100</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <widget class="QCalendarWidget" name="m_calendar"/></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;">Why not KDatePicker or KDateTable?  It localizes the calendar to the KDE calendar, the Qt one will only ever give you Gregorian.  If you need extra features added let me know.</pre>
 </blockquote>



 <p>On October 23rd, 2010, 6:27 a.m., <b>Sebastian Trueg</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;">Actually it would be nice to be able to hide the extra day selection gui at the bottom of KDatePicker since that is where the range selection should be.</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;">I'll have a look at that, should be easy and safe to do. I know there are others who want a more flexible KDatePicker/KDateTable.  The pim guys have also talked about merging their date widgets into kdelibs so it's something that really needs working on.</pre>
<br />




<p>- John</p>


<br />
<p>On October 22nd, 2010, 6:53 p.m., Sebastian Trueg wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://svn.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 kdelibs and Vishesh Handa.</div>
<div>By Sebastian Trueg.</div>


<p style="color: grey;"><i>Updated 2010-10-22 18:53:14</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;">I have been struggling with creating a good facet API for a long time now. I finally reached a point where I am happy with the result. IMHO this is essential enough to get into kdelibs/nepomuk. The first usage will obviously be Dolphin, closely followed by the file dialog. All in all this will make it so much simpler to provide Nepomuk powered search capabilities in applications.
Anyway, this review request is intended for an API review before I commit.</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>trunk/KDE/kdelibs/includes/CMakeLists.txt <span style="color: grey">(1187872)</span></li>

 <li>trunk/KDE/kdelibs/includes/Nepomuk/Utils/DynamicResourceFacet <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/includes/Nepomuk/Utils/Facet <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/includes/Nepomuk/Utils/FacetWidget <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/includes/Nepomuk/Utils/ResourceModel <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/includes/Nepomuk/Utils/SearchWidget <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/includes/Nepomuk/Utils/SimpleFacet <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/includes/Nepomuk/Utils/SimpleResourceModel <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/Mainpage.dox <span style="color: grey">(1187872)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/CMakeLists.txt <span style="color: grey">(1187872)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/datefacet.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/datefacet.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/daterange.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/daterange.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/daterangeselectionwidget.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/daterangeselectionwidget.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/daterangeselectionwidget.ui <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/dynamicresourcefacet.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/dynamicresourcefacet.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facet.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facet.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facetdelegate.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facetdelegate.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facetfiltermodel.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facetfiltermodel.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facetmodel.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facetmodel.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facetwidget.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/facetwidget.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/resourcemodel.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/resourcemodel.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/searchlineedit.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/searchlineedit.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/searchwidget.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/searchwidget.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/searchwidget_p.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/simplefacet.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/simplefacet.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/simpleresourcemodel.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdelibs/nepomuk/utils/simpleresourcemodel.cpp <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

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




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








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