banshee r3078 - in trunk/banshee: . src/Core/Banshee.ThickClient/Resources src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue src/Extensions/Banshee.PlayQueue/Resources



Author: abock
Date: Tue Jan 29 03:42:09 2008
New Revision: 3078
URL: http://svn.gnome.org/viewvc/banshee?rev=3078&view=rev

Log:
2008-01-28  Aaron Bockover  <abock gnome org>

    * src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs:
    Implemented a clear queue action and set visibility and sensitivity of
    the queue actions properly

    * src/Extensions/Banshee.PlayQueue/Resources/Actions.xml: Added actions

    * src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml:
    Added some more placeholders



Modified:
   trunk/banshee/ChangeLog
   trunk/banshee/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
   trunk/banshee/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
   trunk/banshee/src/Extensions/Banshee.PlayQueue/Resources/Actions.xml

Modified: trunk/banshee/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml
==============================================================================
--- trunk/banshee/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml	(original)
+++ trunk/banshee/src/Core/Banshee.ThickClient/Resources/core-ui-actions-layout.xml	Tue Jan 29 03:42:09 2008
@@ -5,6 +5,7 @@
         <toolitem action="NextAction" />
         <placeholder name="SeekSlider" />
         <placeholder name="TrackInfoDisplay" />
+        <placeholder name="SourceActions" />
         <placeholder name="VolumeButton" />
     </toolbar>
 

Modified: trunk/banshee/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs	(original)
+++ trunk/banshee/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs	Tue Jan 29 03:42:09 2008
@@ -70,10 +70,21 @@
             uia_service.UIManager.AddUiFromResource ("Actions.xml");
             uia_service.TrackActions.Add (new ActionEntry [] {
                 new ActionEntry ("AddToPlayQueueAction", Stock.Add,
-                    Catalog.GetString ("Add _to Play Queue"), null,
+                    Catalog.GetString ("Add to Play Queue"), null,
                     Catalog.GetString ("Append selected songs to the play queue"),
                     OnAddToPlayQueue)
             });
+            
+            uia_service.GlobalActions.Add (new ActionEntry [] {
+                new ActionEntry ("ClearPlayQueueAction", Stock.Clear,
+                    Catalog.GetString ("Clear Play Queue"), null,
+                    Catalog.GetString ("Remove all tracks from the play queue"),
+                    OnClearPlayQueue)
+            });
+            
+            UpdateActions ();
+            
+            ServiceManager.SourceManager.ActiveSourceChanged += delegate { UpdateActions (); };
         }
         
         private void BindToDatabase ()
@@ -93,6 +104,12 @@
             }
         }
         
+        protected override void OnUpdated ()
+        {
+            UpdateActions ();
+            base.OnUpdated ();
+        }
+        
         private void OnCanonicalPlaybackControllerTransition (object o, EventArgs args)
         {
             if (Count > 0) {
@@ -112,6 +129,33 @@
             AddSelectedTracks (ServiceManager.Get<InterfaceActionService> ().TrackActions.TrackSelector.TrackModel);
         }
         
+        private void OnClearPlayQueue (object o, EventArgs args)
+        {
+            RemoveTrackRange ((TrackListDatabaseModel)TrackModel, new Hyena.Collections.RangeCollection.Range (0, Count));
+            Reload ();
+        }
+        
+        private void UpdateActions ()
+        {
+            InterfaceActionService uia_service = ServiceManager.Get <InterfaceActionService> ();
+            if (uia_service == null) {
+                return;
+            }
+            
+            Source source = ServiceManager.SourceManager.ActiveSource;
+            
+            Action clear_action = uia_service.GlobalActions["ClearPlayQueueAction"]; 
+            if (clear_action != null) {
+                clear_action.Visible = ServiceManager.SourceManager.ActiveSource == this;
+                clear_action.Sensitive = Count > 0;
+            }
+            
+            Action add_to_queue_action = uia_service.TrackActions["AddToPlayQueueAction"];
+            if (add_to_queue_action != null) {
+                add_to_queue_action.Visible = ServiceManager.SourceManager.ActiveSource != this;
+            }
+        }
+        
         void IBasicPlaybackController.First ()
         {
         }

Modified: trunk/banshee/src/Extensions/Banshee.PlayQueue/Resources/Actions.xml
==============================================================================
--- trunk/banshee/src/Extensions/Banshee.PlayQueue/Resources/Actions.xml	(original)
+++ trunk/banshee/src/Extensions/Banshee.PlayQueue/Resources/Actions.xml	Tue Jan 29 03:42:09 2008
@@ -1,4 +1,9 @@
 <ui>
+    <toolbar name="HeaderToolbar">
+        <placeholder name="SourceActions">
+            <toolitem action="ClearPlayQueueAction" />
+        </placeholder>
+    </toolbar>
     <popup name="TrackContextMenu" action="TrackContextMenuAction">
         <placeholder name="AboveAddToPlaylist">
             <menuitem name="AddToPlayQueue" action="AddToPlayQueueAction"></menuitem>



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