[banshee] [PlayQueue] Allow to clear while in Populate mode (bgo#613816)



commit e16cc88004e42a2e3e3a759de08de98fa1c0fe37
Author: Samuel Gyger <samuel gyger at>
Date:   Wed Nov 17 23:35:07 2010 +0200

    [PlayQueue] Allow to clear while in Populate mode (bgo#613816)
    
    Signed-off-by: Bertrand Lorentz <bertrand lorentz gmail com>

 .../Banshee.PlayQueue/HeaderWidget.cs              |    5 +++++
 .../Banshee.PlayQueue/PlayQueueActions.cs          |    3 +--
 .../Banshee.PlayQueue/PlayQueueSource.cs           |   10 +++++++++-
 3 files changed, 15 insertions(+), 3 deletions(-)
---
diff --git a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/HeaderWidget.cs b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/HeaderWidget.cs
index 4eb9d87..ca8109a 100644
--- a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/HeaderWidget.cs
+++ b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/HeaderWidget.cs
@@ -99,6 +99,11 @@ namespace Banshee.PlayQueue
             shuffler.RandomModeRemoved += (r) => mode_combo.Remove (r);
         }
 
+        public void SetManual () {
+            ThreadAssist.AssertInMainThread ();
+            mode_combo.ActiveValue = mode_combo.Default;
+        }
+
         private void OnModeComboChanged (object o, EventArgs args)
         {
             var random_by = mode_combo.ActiveValue;
diff --git a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueActions.cs b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueActions.cs
index c7e5b4e..1a8caa9 100644
--- a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueActions.cs
+++ b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueActions.cs
@@ -220,8 +220,7 @@ namespace Banshee.PlayQueue
                 UpdateAction ("RefreshPlayQueueAction", playqueue.Populate);
                 UpdateAction ("AddPlayQueueTracksAction", playqueue.Populate);
                 UpdateAction ("ShufflePlayQueue", !playqueue.Populate, playqueue.Count > 1);
-                UpdateAction ("ClearPlayQueueAction", !playqueue.Populate, playqueue.Count > 0);
-                UpdateAction ("ClearPlayQueueOnQuitAction", !playqueue.Populate);
+                UpdateAction ("ClearPlayQueueAction", true, playqueue.Count > 0);
                 UpdateAction ("AddToPlayQueueAction", db_source != null && db_source != playqueue, true);
             }
         }
diff --git a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
index ae5ef0c..13ed474 100644
--- a/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
+++ b/src/Extensions/Banshee.PlayQueue/Banshee.PlayQueue/PlayQueueSource.cs
@@ -497,6 +497,14 @@ namespace Banshee.PlayQueue
 
         private void Clear (bool disposing)
         {
+            if (Populate) {
+                if (disposing) {
+                    PopulateModeSchema.Set ("off");
+                } else {
+                    header_widget.SetManual ();
+                }
+            }
+
             ServiceManager.DbConnection.Execute (@"
                 DELETE FROM CorePlaylistEntries
                 WHERE PlaylistID = ?", DbId
@@ -536,7 +544,7 @@ namespace Banshee.PlayQueue
                 header_widget = null;
             }
 
-            if (!Populate && ClearOnQuitSchema.Get ()) {
+            if (ClearOnQuitSchema.Get ()) {
                 Clear (true);
             }
         }



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