[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/amarok/src
From:       Soren Harward <stharward () gmail ! com>
Date:       2008-09-06 15:43:13
Message-ID: 1220715793.223896.28081.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 857842 by stharward:

Update the system tray and its associated tooltip when the track
changes.  This is really just a workaround until Phonon bug 170538 is
fixed.

BUG: 169699

 M  +11 -1     App.cpp  
 M  +1 -0      App.h  
 M  +7 -2      Systray.cpp  
 M  +1 -0      Systray.h  
 M  +4 -0      widgets/TrackTooltip.cpp  


--- trunk/extragear/multimedia/amarok/src/App.cpp #857841:857842
@@ -602,7 +602,6 @@
     case Phonon::StoppedState:
     case Phonon::LoadingState:
         mainWindow()->setPlainCaption( i18n( AMAROK_CAPTION ) );
-        TrackToolTip::instance()->clear();
         Amarok::OSD::instance()->setImage( QImage( KIconLoader::global()->iconPath( \
"amarok", -KIconLoader::SizeHuge ) ) );  break;
 
@@ -628,6 +627,17 @@
     }
 }
 
+void App::engineNewTrackPlaying()
+{
+    DEBUG_BLOCK
+
+    Meta::TrackPtr currentTrack = The::engineController()->currentTrack();
+    debug() << "engineNewTrackPlaying:" << currentTrack->prettyName();
+    if( !currentTrack )
+        return;
+    TrackToolTip::instance()->setTrack( currentTrack );
+}
+
 void App::engineNewMetaData( const QHash<qint64, QString> &newMetaData, bool \
trackChanged )  {
     DEBUG_BLOCK
--- trunk/extragear/multimedia/amarok/src/App.h #857841:857842
@@ -66,6 +66,7 @@
 
     protected: /* for OSD, tray, and dcop */
         void engineStateChanged( Phonon::State state, Phonon::State oldState = \
Phonon::StoppedState ); +        void engineNewTrackPlaying();
         void engineNewMetaData( const QHash<qint64, QString> &newMetaData, bool \
                trackChanged );
         void engineTrackPositionChanged( long position, bool /*userSeek*/ );
         void engineVolumeChanged( int );
--- trunk/extragear/multimedia/amarok/src/Systray.cpp #857841:857842
@@ -217,13 +217,18 @@
 }
 
 void
+Amarok::TrayIcon::engineNewTrackPlaying( )
+{
+    setupMenu();
+}
+
+void
 Amarok::TrayIcon::engineNewMetaData( const QHash<qint64, QString> &newMetaData, bool \
trackChanged )  {
     Q_UNUSED( trackChanged )
     trackLength = newMetaData.value( Meta::valLength ).toInt() * 1000;
 
     setupMenu();
-
 }
 
 void
@@ -360,7 +365,7 @@
         Meta::CurrentTrackActionsCapability *cac = \
track->as<Meta::CurrentTrackActionsCapability>();  if( cac )
         {
-            //remove the two bottom itmes, so we can push them to the button again
+            //remove the two bottom items, so we can push them to the button again
             contextMenu()->removeAction( actionCollection()->action( "file_quit" ) \
                );
             contextMenu()->removeAction( actionCollection()->action( \
"minimizeRestore" ) );  
--- trunk/extragear/multimedia/amarok/src/Systray.h #857841:857842
@@ -45,6 +45,7 @@
 protected:
     // reimpl from engineobserver
     virtual void engineStateChanged( Phonon::State state, Phonon::State oldState = \
Phonon::StoppedState ); +    virtual void engineNewTrackPlaying();
     virtual void engineNewMetaData( const QHash<qint64, QString> &newMetaData, bool \
                trackChanged );
     virtual void engineTrackPositionChanged( long position, bool /*userSeek*/ );
     // get notified of 'highlight' color change
--- trunk/extragear/multimedia/amarok/src/widgets/TrackTooltip.cpp #857841:857842
@@ -17,6 +17,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.      *
  ******************************************************************************/
 
+#define DEBUG_PREFIX "TrackTooltip"
+
 #include "TrackTooltip.h"
 
 #include "Amarok.h"
@@ -267,6 +269,8 @@
 
 void TrackToolTip::clear()
 {
+    DEBUG_BLOCK
+
     m_trackPosition = 0;
     m_tooltip = i18n( "Amarok - No track playing." );
     m_track = Meta::TrackPtr();


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic