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


<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.</div>
<div>By John Layt.</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;">This is related to the KLocalizedDate review 5692.  I realised in that review that KLocalizedDate should now be the only api people use to localize dates, and so rather than exactly matching the old KCalendarSystem api I could make some changes to simplify / improve the api.  (The bits matching the QDate api won't change).

As part of this, I want to introduce an enum for CalendarSystem to replace the current QString Calendar Type, e.g. replace "hebrew" with KLocale::HebrewCalendar.  This is obviously clearer, safer and less error prone.

Note that I had to put the enum in KLocale rather than KCalendarSystem as the KCalendarSystem api already uses KLocale enums in the header, so I can't use any KCalendarSystem enums in the KLocale api and header (you can't forward-declare enums).

The awkward part was naming the enums, particularly the default QDate hybrid Julian/Gregorian system.  I chose to call this KLocale::QDateCalendar rather than KLocale::GregorianCalendar which I've used for the proper one.  Any better suggestions welcome.  I've also renamed the Hijri to IslamicCivilCalendar to distinguish from the lunar calendar.  I'll probably rename the derived calendar classes to match the enum, which should be BC safe as they are not exported, but I'll do that later to save cluttering up the diff. [Random thought: do we even need the private classes derived from the base class anymore, the derived private d_ptr class should be enough?]

You probably don't want to look too closely at the KCalendarSystem spaghetti, you'll go cross-eyed, the KLocale is of more interest :-)</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;">All existing unit tests pass, new unit tests written.  (Note, ignore the KLocalizedDate tests below, it's just the overlap from the other review, they will be committed separately.)</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/kdecore/date/kcalendarsystem.h <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystem.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemcoptic.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemcopticprivate_p.h <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemethiopian.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemgregorian.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemgregorianproleptic.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemgregorianprolepticprivate_p.h <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemhebrew.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemhijri.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemindiannational.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemjalali.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemjapanese.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemjulian.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemminguo.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemprivate_p.h <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/date/kcalendarsystemthai.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/localization/klocale.h <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/localization/klocale.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/localization/klocale_kde.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/localization/klocale_p.h <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/tests/kcalendartest.h <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/tests/kcalendartest.cpp <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/tests/klocaletest.h <span style="color: grey">(1190608)</span></li>

 <li>/trunk/KDE/kdelibs/kdecore/tests/klocaletest.cpp <span style="color: grey">(1190608)</span></li>

</ul>

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




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




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