<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/100120/">http://git.reviewboard.kde.org/r/100120/</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 31st, 2010, 8:14 p.m., <b>Alex Merry</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://git.reviewboard.kde.org/r/100120/diff/1/?file=2895#file2895line350" style="color: black; font-weight: bold; text-decoration: underline;">src/EngineController.h</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </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; ">Q_SIGNALS:</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">344</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span class="cm">     * Called when the playback is paused.</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;">But not when it resumes, right?  This should be clarified in the docs.</pre>
 </blockquote>



 <p>On November 1st, 2010, 11:47 p.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;">Wow. very pedantic. 
For resuming we have the trackPlaying signal.
But I will update the comments anyway.</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;">Yes, I am when it comes to apidocs :-)

My attitude is that apidocs should be detailed enough that you shouldn&#39;t have to read the code to use the API.  This is one of those things where I look at it and go &quot;well, it probably isn&#39;t triggered by a resume, but I&#39;m not certain - I&#39;ll check the code&quot;.  Better to make that explicit.</pre>
<br />

<blockquote style="margin-left: 1em; border-left: 2px solid #d0d0d0; padding-left: 10px;">
 <p style="margin-top: 0;">On October 31st, 2010, 8:14 p.m., <b>Alex Merry</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://git.reviewboard.kde.org/r/100120/diff/1/?file=2895#file2895line425" style="color: black; font-weight: bold; text-decoration: underline;">src/EngineController.h</a>
    <span style="font-weight: normal;">

     (Diff revision 1)

    </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; ">Q_SIGNALS:</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">419</font></th>
    <td bgcolor="#c5ffc4" width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; ">    <span class="kt">void</span> <span class="n">trackPositionChanged</span><span class="p">(</span> <span class="n">qint64</span> <span class="n">position</span><span class="p">,</span> <span class="n">bool</span> <span class="n">userSeek</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;">The apidocs should be clearer about &quot;userSeek&quot; - when it is false, it means that the position change is due to normal playback progression.

Perhaps this should be split into two signals, one for each value of userSeek - would this be more efficient, with a reduced number of listeners when the track is just progressing normally?

Perhaps seeked( qint64 position ) and trackPositionChanged( qint64 position ), with the former being connected to the latter?</pre>
 </blockquote>



 <p>On November 1st, 2010, 11:56 p.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;">Not many objects are connecting to this signal and I have not seen that as a big problem.
None of the connected objects cared about userSeek so it might as well be removed.</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;">None?  I&#39;m pretty sure the MPRIS interface makes use of the userSeek attribute.</pre>
<br />




<p>- Alex</p>


<br />
<p>On October 31st, 2010, 3:53 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-10-31 15:53:10</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;">Remove EngineObserver and the observer pattern.
Instead we have several new signals and functions in EngineController.
Also the EngineController is now a MetaObserver for the current track and exporting the relevant signals.

This patch improves the tread safety and reduces the complexity of the code by a lot.
Over 600 lines of codes could be removed while at the same time fixing the image update problems and several small problems where classes listened for the album meta changed but forgot that the album could change when a user changed the track.
</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>playground/src/context/applets/coverbling/CoverBlingApplet.h <span style="color: grey">(a3ff113)</span></li>

 <li>playground/src/context/applets/coverbling/CoverBlingApplet.cpp <span style="color: grey">(a2a50e7)</span></li>

 <li>playground/src/context/applets/video/Video.h <span style="color: grey">(1d52f0b)</span></li>

 <li>playground/src/context/applets/video/Video.cpp <span style="color: grey">(8471497)</span></li>

 <li>src/ActionClasses.h <span style="color: grey">(aa67ec7)</span></li>

 <li>src/ActionClasses.cpp <span style="color: grey">(61e8af8)</span></li>

 <li>src/App.cpp <span style="color: grey">(e6006b9)</span></li>

 <li>src/EngineController.h <span style="color: grey">(aae4503)</span></li>

 <li>src/EngineController.cpp <span style="color: grey">(65b3f2e)</span></li>

 <li>src/KNotificationBackend.h <span style="color: grey">(02cc9d8)</span></li>

 <li>src/KNotificationBackend.cpp <span style="color: grey">(b98391c)</span></li>

 <li>src/MainWindow.h <span style="color: grey">(4593d47)</span></li>

 <li>src/MainWindow.cpp <span style="color: grey">(9102558)</span></li>

 <li>src/TrayIcon.h <span style="color: grey">(d1ffd43)</span></li>

 <li>src/TrayIcon.cpp <span style="color: grey">(47f56bf)</span></li>

 <li>src/amarokurls/AmarokUrlHandler.cpp <span style="color: grey">(1d8cd46)</span></li>

 <li>src/context/ContextView.h <span style="color: grey">(a3f36fb)</span></li>

 <li>src/context/ContextView.cpp <span style="color: grey">(ccfe4f3)</span></li>

 <li>src/context/applets/photos/PhotosApplet.h <span style="color: grey">(4cac9ea)</span></li>

 <li>src/context/applets/photos/PhotosApplet.cpp <span style="color: grey">(0b47da9)</span></li>

 <li>src/context/applets/similarartists/SimilarArtistsApplet.h <span style="color: grey">(3a2d7ea)</span></li>

 <li>src/context/applets/similarartists/SimilarArtistsApplet.cpp <span style="color: grey">(0cf2c76)</span></li>

 <li>src/context/applets/videoclip/VideoclipApplet.h <span style="color: grey">(a0704c6)</span></li>

 <li>src/context/applets/videoclip/VideoclipApplet.cpp <span style="color: grey">(789173e)</span></li>

 <li>src/context/engines/current/CurrentEngine.h <span style="color: grey">(0369065)</span></li>

 <li>src/context/engines/current/CurrentEngine.cpp <span style="color: grey">(2c32f75)</span></li>

 <li>src/context/engines/labels/LabelsEngine.h <span style="color: grey">(626a030)</span></li>

 <li>src/context/engines/labels/LabelsEngine.cpp <span style="color: grey">(65278b4)</span></li>

 <li>src/context/engines/lyrics/LyricsEngine.h <span style="color: grey">(771bf6f)</span></li>

 <li>src/context/engines/lyrics/LyricsEngine.cpp <span style="color: grey">(527cd0d)</span></li>

 <li>src/context/engines/similarartists/SimilarArtistsEngine.h <span style="color: grey">(fea9bf5)</span></li>

 <li>src/context/engines/similarartists/SimilarArtistsEngine.cpp <span style="color: grey">(97bc109)</span></li>

 <li>src/context/engines/upcomingevents/UpcomingEventsEngine.h <span style="color: grey">(c57b004)</span></li>

 <li>src/context/engines/upcomingevents/UpcomingEventsEngine.cpp <span style="color: grey">(66131fd)</span></li>

 <li>src/context/engines/wikipedia/WikipediaEngine.h <span style="color: grey">(5d53082)</span></li>

 <li>src/context/engines/wikipedia/WikipediaEngine.cpp <span style="color: grey">(4c65799)</span></li>

 <li>src/core-impl/meta/stream/Stream_p.h <span style="color: grey">(cd217bf)</span></li>

 <li>src/core-impl/meta/timecode/TimecodeObserver.h <span style="color: grey">(b727196)</span></li>

 <li>src/core-impl/meta/timecode/TimecodeObserver.cpp <span style="color: grey">(dea809d)</span></li>

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

 <li>src/core/engine/EngineObserver.h <span style="color: grey">(5a93062)</span></li>

 <li>src/core/engine/EngineObserver.cpp <span style="color: grey">(7d5728b)</span></li>

 <li>src/dbus/mpris1/PlayerHandler.h <span style="color: grey">(8f90f27)</span></li>

 <li>src/dbus/mpris1/PlayerHandler.cpp <span style="color: grey">(0afeb59)</span></li>

 <li>src/dbus/mpris2/Mpris2DBusHandler.h <span style="color: grey">(a767c79)</span></li>

 <li>src/dbus/mpris2/Mpris2DBusHandler.cpp <span style="color: grey">(59afbf3)</span></li>

 <li>src/dialogs/ScriptManager.h <span style="color: grey">(6104dcf)</span></li>

 <li>src/dialogs/ScriptManager.cpp <span style="color: grey">(e98f45f)</span></li>

 <li>src/dynamic/BiasSolver.cpp <span style="color: grey">(bf8e3c8)</span></li>

 <li>src/dynamic/biases/EchoNest.h <span style="color: grey">(9a6ecc7)</span></li>

 <li>src/dynamic/biases/EchoNest.cpp <span style="color: grey">(16f26f4)</span></li>

 <li>src/mac/GrowlInterface.h <span style="color: grey">(3bb35d2)</span></li>

 <li>src/mac/GrowlInterface.cpp <span style="color: grey">(862d019)</span></li>

 <li>src/playlist/PlaylistActions.h <span style="color: grey">(035ff77)</span></li>

 <li>src/playlist/PlaylistActions.cpp <span style="color: grey">(2358b29)</span></li>

 <li>src/playlist/PlaylistController.cpp <span style="color: grey">(d38c9d6)</span></li>

 <li>src/playlist/view/listview/PrettyItemDelegate.cpp <span style="color: grey">(ab19ccc)</span></li>

 <li>src/scriptengine/AmarokEngineScript.h <span style="color: grey">(55e275c)</span></li>

 <li>src/scriptengine/AmarokEngineScript.cpp <span style="color: grey">(15f7b6e)</span></li>

 <li>src/services/lastfm/ScrobblerAdapter.h <span style="color: grey">(ef7a7c1)</span></li>

 <li>src/services/lastfm/ScrobblerAdapter.cpp <span style="color: grey">(1b4da4a)</span></li>

 <li>src/services/lastfm/biases/LastFmBias.h <span style="color: grey">(6ba571d)</span></li>

 <li>src/services/lastfm/biases/LastFmBias.cpp <span style="color: grey">(4093104)</span></li>

 <li>src/statemanagement/DefaultApplicationController.cpp <span style="color: grey">(8205aab)</span></li>

 <li>src/statusbar/StatusBar.h <span style="color: grey">(b785714)</span></li>

 <li>src/statusbar/StatusBar.cpp <span style="color: grey">(48df821)</span></li>

 <li>src/toolbar/CurrentTrackToolbar.h <span style="color: grey">(c8293f3)</span></li>

 <li>src/toolbar/CurrentTrackToolbar.cpp <span style="color: grey">(22408ea)</span></li>

 <li>src/toolbar/MainToolbar.h <span style="color: grey">(fc29ba2)</span></li>

 <li>src/toolbar/MainToolbar.cpp <span style="color: grey">(abeedc6)</span></li>

 <li>src/toolbar/SlimToolbar.h <span style="color: grey">(dcfaf22)</span></li>

 <li>src/toolbar/SlimToolbar.cpp <span style="color: grey">(e69df7c)</span></li>

 <li>src/toolbar/VolumePopupButton.h <span style="color: grey">(a0f5d56)</span></li>

 <li>src/toolbar/VolumePopupButton.cpp <span style="color: grey">(fb5fcb1)</span></li>

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

 <li>src/widgets/Osd.cpp <span style="color: grey">(af4b24b)</span></li>

 <li>src/widgets/ProgressWidget.h <span style="color: grey">(3fba490)</span></li>

 <li>src/widgets/ProgressWidget.cpp <span style="color: grey">(211cea7)</span></li>

 <li>src/widgets/VolumeWidget.h <span style="color: grey">(910e9f1)</span></li>

 <li>src/widgets/VolumeWidget.cpp <span style="color: grey">(e1d01f1)</span></li>

 <li>tests/core-impl/meta/multi/CMakeLists.txt <span style="color: grey">(8a51249)</span></li>

 <li>tests/playlist/CMakeLists.txt <span style="color: grey">(01703fe)</span></li>

</ul>

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




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








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