<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/101575/">http://git.reviewboard.kde.org/r/101575/</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 kdelibs, KDEPIM, KPhotoAlbum, Skrooge, Zanshin, Kevin Ottens, and David Jarvie.</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;">[Sorry this is a post-commit review and took so long to remember to post. Bad coder, no cookie for you!]

This review is for some new replacement widgets for the popular KDEPIM KDateEdit and KTimeEdit widgets which were copied into a number of other projects.  These new widgets are clean rewrites (the original widgets have history back to KDE2 days) with slightly changed api but otherwise should replicate the same functionality with a couple of new features.  They will be available for use by any apps using kdelibs 4.7.

The 3 new widgets are:

KDateComboBox: A date entry widget derived from KComboBox, the drop-down menu can display a date picker and list of "fancy" dates to choose from.  The list of dates can be configured.

KTimeComboBox: A time entry widget derived from KComboBox, the drop-down menu can display a list of times to choose from.  The list of times can be configured.

KDateTimeEdit: A KDateTime entry widget combining KDateComboBox and KTimeComboBox with optional combo's to select the calendar system and time spec as well. This widget should only be used if you want time spec aware data entry.

All widgets can accept a null or invalid input, it is up to the coder to check for validity of input using isValid() if required.  All feature options of the widgets can be configured.  All widgets can optionally display a warning box on focus out if the entry is invalid.  All widgets can be used in Qt Designer.

I'm particularly looking for input on the api, and what QWidget event virtual methods I should be reimplementing to make the classes BIC future-proof.</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;">Unit tests written for non-gui functionality.  Gui functionality tested in Qt Designer.  KDateTimeEdit still has a couple of minor bugs, but I didn't want to hold the review up any longer.</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>kdeui/CMakeLists.txt <span style="color: grey">(1e8b259)</span></li>

 <li>includes/KDateComboBox <span style="color: grey">(PRE-CREATION)</span></li>

 <li>includes/KDateTimeEdit <span style="color: grey">(PRE-CREATION)</span></li>

 <li>includes/KTimeComboBox <span style="color: grey">(PRE-CREATION)</span></li>

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

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

 <li>kdeui/tests/kdatecomboboxtest.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/tests/kdatecomboboxtest.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/tests/kdatetimeedittest.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/tests/kdatetimeedittest.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/tests/ktimecomboboxtest.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/tests/ktimecomboboxtest.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/widgets/kdatecombobox.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/widgets/kdatecombobox.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/widgets/kdatetimeedit.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/widgets/kdatetimeedit.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/widgets/kdatetimeedit.ui <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/widgets/ktimecombobox.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdeui/widgets/ktimecombobox.cpp <span style="color: grey">(PRE-CREATION)</span></li>

 <li>kdewidgets/kde.widgets <span style="color: grey">(9040538)</span></li>

</ul>

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



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

<div>

 <a href="http://git.reviewboard.kde.org/r/101575/s/180/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2011/06/10/DatetimeAll_400x100.png" style="border: 1px black solid;" alt="Qt Designer Preview" /></a>

 <a href="http://git.reviewboard.kde.org/r/101575/s/181/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2011/06/10/DateCombo_400x100.png" style="border: 1px black solid;" alt="KDateComboBox" /></a>

 <a href="http://git.reviewboard.kde.org/r/101575/s/182/"><img src="http://git.reviewboard.kde.org/media/uploaded/images/2011/06/10/TimeCombo_400x100.png" style="border: 1px black solid;" alt="KTimeComboBox" /></a>

</div>


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




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