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





<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On February 16th, 2012, 12:35 a.m., <b>Ian Wadham</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;">Looks fine to me and I agree with splitting off the view part, but I would like to go further someday (probably within the 4.9 development cycle).  I would like to be able to supply my own KCombobox, rather than be forced to use the default of having it in the status bar.  For example, I recently had to add a status bar to KSudoku just so that I could use the standard KDE Games difficulty widget.  The said status bar looks a bit like feathers on a dog at the moment...

I would be happy to make that change after KgDifficulty has "settled in" (i.e. unbinding from the status bar), if you could point me in the right direction.</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;">In Tagaro, buried deep in a branch, I have a DifficultySlider class. It's a QSlider with a QLabel underneath, which moves with the slider and changes color to reflect the difficulty, i.e. "Easy" is green, while "Hard" is red. This widget is designed for a touch interface, but it could also be useful in the desktop form factor. I'll get you a copy, perhaps as a separate review, if you like.</pre>
<br />








<p>- Stefan</p>


<br />
<p>On February 15th, 2012, 9:33 p.m., Stefan Majewsky wrote:</p>






<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('http://svn.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 KDE Games.</div>
<div>By Stefan Majewsky.</div>


<p style="color: grey;"><i>Updated Feb. 15, 2012, 9:33 p.m.</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;">Another day, another updated libkdegames component. KgDifficulty is a rewrite of KGameDifficulty which splits logic from GUI and provides a cleaner API for the logic part.

New features:
* KgDifficulty automatically saves and restores the level selection across application runs.
* The new KgDifficultyLevel base class allows applications to add more data and logic to their difficulty levels. (Usage of standard difficulty levels is simple as ever, and even simpler, thanks to the new addStandardLevelRange method.)
* Everything in KgDifficulty is exposed through Q_PROPERTY for QML-readiness.

Removed features:
* The standard level KGameDifficulty::Configurable has been removed since it's the same as ::Custom from the KgDifficulty point of view.
* setRestartOnChange() has been removed. If you want that behavior, call setGameRunning() as appropriate. If you don't want that behavior, just don't.
* The localization API (e.g. localizedLevelStrings) has been removed. The information can be retrieved by iterating over the levels(). This is the only point where application code is going to be more complex right now, but I plan to make KgDifficulty a first class citizen of KScoreDialog when I merge my old KScore2 branch (then as KgScore).

Compatibility: Highscore data which was created using KGameDifficulty metadata continues to work since the same data values, translations etc. are used internally. Since the difficulty level selection logic moves from the application to the library, compatibility cannot be retained, but that's a minor one-time issue caused by the update. I do not consider that problematic.

The fine print: The QtWidgets-dependent part has been separated into the KgDifficultyGUI namespace containing the single method KgDifficultyGUI::init. I intend to move this to a separate library once all QtWidgets dependencies are split from the core libkdegames.</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;">My usual guinea pig (KDiamond) behaves fine. The tab selection in KScoreDialog (through setConfigGroup()) is broken for some reason, but I confirmed that it was already broken before the port. Might have to do with the deprecation warning for KScoreDialog::setConfigGroup().</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/kdegames/kdiamond/src/board.h <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/kdiamond/src/board.cpp <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/kdiamond/src/game.h <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/kdiamond/src/game.cpp <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/kdiamond/src/main.cpp <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/kdiamond/src/mainwindow.h <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/kdiamond/src/mainwindow.cpp <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/libkdegames/CMakeLists.txt <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/libkdegames/includes/CMakeLists.txt <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/libkdegames/includes/KgDifficulty <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdegames/libkdegames/kgamedifficulty.h <span style="color: grey">(1280243)</span></li>

 <li>trunk/KDE/kdegames/libkdegames/kgdifficulty.h <span style="color: grey">(PRE-CREATION)</span></li>

 <li>trunk/KDE/kdegames/libkdegames/kgdifficulty.cpp <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

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




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








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