commit 11966fb32846c2c557cca86c1bc7e938d2a1c927
Author: phantomjinx <p.g.richard...@phantomjinx.co.uk>
Date:   Sat Oct 15 22:42:29 2011 +0100

    Add multi-playlist support to context menu delete actions
    
    * playlist_display_context_menu.c
     * When multiple playlists are selected, allow the delete actions
       to delete all of them.

 .../playlist_display/playlist_display_actions.c    |    9 +++--
 .../playlist_display_context_menu.c                |   30 ++++++++++++++++++-
 2 files changed, 33 insertions(+), 6 deletions(-)
---
diff --git a/plugins/playlist_display/playlist_display_actions.c 
b/plugins/playlist_display/playlist_display_actions.c
index f8954b9..f153011 100644
--- a/plugins/playlist_display/playlist_display_actions.c
+++ b/plugins/playlist_display/playlist_display_actions.c
@@ -627,16 +627,17 @@ void on_pl_for_each_rating_activate(GtkAction *action, 
PlaylistDisplayPlugin* pl
 static void delete_selected_playlists(DeleteAction deleteaction) {
     GList *playlists = pm_get_selected_playlists();
 
+    if (! playlists) {
+        message_sb_no_playlist_selected();
+        return;
+    }
+
     while (playlists) {
         Playlist *pl = playlists->data;
         if (pl) {
             gtkpod_set_current_playlist(pl);
             delete_playlist_head(deleteaction);
         }
-        else {
-            message_sb_no_playlist_selected();
-        }
-
         playlists = playlists->next;
     }
 }
diff --git a/plugins/playlist_display/playlist_display_context_menu.c 
b/plugins/playlist_display/playlist_display_context_menu.c
index 2e8adda..72b1bf5 100644
--- a/plugins/playlist_display/playlist_display_context_menu.c
+++ b/plugins/playlist_display/playlist_display_context_menu.c
@@ -47,12 +47,38 @@
 
 static void context_menu_delete_playlist_head(GtkMenuItem *mi, gpointer data) {
     DeleteAction deleteaction = GPOINTER_TO_INT (data);
-    delete_playlist_head(deleteaction);
+    GList *playlists = pm_get_selected_playlists();
+    if (! playlists) {
+        message_sb_no_playlist_selected();
+        return;
+    }
+
+    while (playlists) {
+        Playlist *pl = playlists->data;
+        if (pl) {
+            gtkpod_set_current_playlist(pl);
+            delete_playlist_head(deleteaction);
+        }
+        playlists = playlists->next;
+    }
 }
 
 void context_menu_delete_track_head(GtkMenuItem *mi, gpointer data) {
     DeleteAction deleteaction = GPOINTER_TO_INT (data);
-    delete_track_head(deleteaction);
+    GList *playlists = pm_get_selected_playlists();
+    if (! playlists) {
+        message_sb_no_playlist_selected();
+        return;
+    }
+
+    while (playlists) {
+        Playlist *pl = playlists->data;
+        if (pl) {
+            gtkpod_set_current_playlist(pl);
+            delete_track_head(deleteaction);
+        }
+        playlists = playlists->next;
+    }
 }
 
 static GtkWidget *add_delete_all_tracks_from_ipod(GtkWidget *menu) {

------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2d-oct
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to