<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 />


<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>





<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>