banshee r3752 - in trunk/banshee: . src/Core/Banshee.ThickClient/Banshee.Collection.Gui



Author: abock
Date: Thu Apr 10 18:33:01 2008
New Revision: 3752
URL: http://svn.gnome.org/viewvc/banshee?rev=3752&view=rev

Log:
2008-04-10  Aaron Bockover  <abock gnome org>

    * src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs:
    Refresh when a track info updated event is raised by the player engine;
    this fixes BGO #524865



Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Banshee.Collection.Gui/AlbumListView.cs	Thu Apr 10 18:33:01 2008
@@ -33,6 +33,7 @@
 
 using Banshee.Collection;
 using Banshee.ServiceStack;
+using Banshee.MediaEngine;
 using Banshee.Gui;
 
 namespace Banshee.Collection.Gui
@@ -52,9 +53,12 @@
             RowHeightProvider = renderer.ComputeRowHeight;
             
             RowActivated += delegate {
-                ServiceManager.PlaybackController.Source = (ServiceManager.SourceManager.ActiveSource as Banshee.Sources.ITrackModelSource);
+                ServiceManager.PlaybackController.Source = (ServiceManager.SourceManager.ActiveSource 
+                    as Banshee.Sources.ITrackModelSource);
                 ServiceManager.PlaybackController.Next ();
             };
+            
+            ServiceManager.PlayerEngine.EventChanged += OnPlayerEngineEventChanged;
         }
 
         protected override bool OnFocusInEvent(Gdk.EventFocus evnt)
@@ -68,5 +72,14 @@
             ServiceManager.Get<InterfaceActionService> ().TrackActions.UnsuppressSelectActions ();
             return base.OnFocusOutEvent(evnt);
         }
+        
+        private void OnPlayerEngineEventChanged (object o, PlayerEngineEventArgs args)
+        {
+            if (args.Event == PlayerEngineEvent.TrackInfoUpdated) {
+                // TODO: a) Figure out if the track that changed is actually in view
+                //       b) xfade the artwork if it is, that'd be slick
+                QueueDraw ();
+            }
+        }
     }
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]