Update of /cvsroot/gtkpod/gtkpod/src
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6785/src

Modified Files:
        display.c display.h display_playlists.c 
Log Message:
         * re-enable delete menu (in addition to context menu).



Index: display.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/display.c,v
retrieving revision 1.126
retrieving revision 1.127
diff -u -d -r1.126 -r1.127
--- display.c   9 Dec 2005 15:59:12 -0000       1.126
+++ display.c   10 Dec 2005 08:21:59 -0000      1.127
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-10 00:51:22 jcs>
+/* Time-stamp: <2005-12-10 17:12:50 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -87,7 +87,7 @@
     g_set_print_handler ((GPrintFunc)gtkpod_warning);
 
     /* activate the delete menus correctly */
-    display_adjust_delete_menus ();
+    display_adjust_menus ();
     /* activate/deactive the menu item 'check iPod' */
     display_set_check_ipod_menu ();
     /* activate status bars */
@@ -179,51 +179,179 @@
 
 
 /* make sure only suitable delete menu items are available */
-void display_adjust_delete_menus (void)
+void display_adjust_menus (void)
 {
-    GtkWidget *d  = gtkpod_xml_get_widget (main_window_xml, "delete_menu");
-    GtkWidget *dp = gtkpod_xml_get_widget (main_window_xml, 
"delete_playlist_menu");
-    GtkWidget *df  = gtkpod_xml_get_widget (main_window_xml, 
"delete_full_menu");
-    GtkWidget *dfp = gtkpod_xml_get_widget (main_window_xml, 
"delete_full_playlist_menu");
-#if 0
-/* not used */
-    GtkWidget *de = gtkpod_xml_get_widget (main_window_xml, 
"delete_tab_entry_menu");
-    GtkWidget *dt = gtkpod_xml_get_widget (main_window_xml, 
"delete_tracks_menu");
-    GtkWidget *dfe = gtkpod_xml_get_widget (main_window_xml,
-                                   "delete_full_tab_entry_menu");
-    GtkWidget *dft = gtkpod_xml_get_widget (main_window_xml, 
"delete_full_tracks_menu");
-#endif
+    GtkWidget *delete, *edit;
+    GtkWidget *dtfpl, *dtfip, *dtfdb, *dtfhd;
+    GtkWidget *defpl, *defip, *defdb, *defhd;
+    GtkWidget *dpl, *dpltfip, *dpltfdb, *dpltfhd;
+    GtkWidget *dsep1, *dsep2;
+    GtkWidget *espl;
+    Playlist *pl;
+
+    delete = gtkpod_xml_get_widget (main_window_xml, "delete_menu");
+    edit = gtkpod_xml_get_widget (main_window_xml, "edit_menu");
+    dtfpl = gtkpod_xml_get_widget (main_window_xml,
+                                  "delete_selected_tracks_from_playlist");
+    dtfip = gtkpod_xml_get_widget (main_window_xml,
+                                  "delete_selected_tracks_from_ipod");
+    dtfdb = gtkpod_xml_get_widget (main_window_xml,
+                                  "delete_selected_tracks_from_database");
+    dtfhd = gtkpod_xml_get_widget (main_window_xml,
+                                  "delete_selected_tracks_from_harddisk");
+    defpl = gtkpod_xml_get_widget (main_window_xml,
+                                  "delete_selected_entry_from_playlist");
+    defip = gtkpod_xml_get_widget (main_window_xml,
+                                  "delete_selected_entry_from_ipod");
+    defdb = gtkpod_xml_get_widget (main_window_xml,
+                                  "delete_selected_entry_from_database");
+    defhd = gtkpod_xml_get_widget (main_window_xml,
+                                  "delete_selected_entry_from_harddisk");
+    dpl = gtkpod_xml_get_widget (main_window_xml,
+                                "delete_selected_playlist");
+    dpltfip = gtkpod_xml_get_widget (main_window_xml,
+                                    
"delete_selected_playlist_including_tracks_from_ipod");
+    dpltfdb = gtkpod_xml_get_widget (main_window_xml,
+                                    
"delete_selected_playlist_including_tracks_from_database");
+    dpltfhd = gtkpod_xml_get_widget (main_window_xml,
+                                    
"delete_selected_playlist_including_tracks_from_harddisk");
+    dsep1 = gtkpod_xml_get_widget (main_window_xml, "delete_separator1");
+    dsep2 = gtkpod_xml_get_widget (main_window_xml, "delete_separator2");
+    espl = gtkpod_xml_get_widget (main_window_xml,
+                                 "edit_smart_playlist");
+
+
+    pl = pm_get_selected_playlist ();
 
-    Playlist *pl = pm_get_selected_playlist ();
     if (pl == NULL)
     {
-       gtk_widget_set_sensitive (d, FALSE);
-       gtk_widget_set_sensitive (df, FALSE);
+       gtk_widget_set_sensitive (delete, FALSE);
+       gtk_widget_set_sensitive (edit, FALSE);
     }
     else
     {
-       if (itdb_playlist_is_mpl (pl))
-       {   /* Master Playlist */
-           gtk_widget_set_sensitive (d, FALSE);
-           gtk_widget_set_sensitive (df, TRUE);
-           gtk_widget_set_sensitive (dfp, FALSE);
+       iTunesDB *itdb = pl->itdb;
+       g_return_if_fail (itdb);
+
+       gtk_widget_set_sensitive (delete, TRUE);
+       gtk_widget_set_sensitive (edit, TRUE);
+
+       gtk_widget_hide (dtfpl);
+       gtk_widget_hide (dtfip);
+       gtk_widget_hide (dtfdb);
+       gtk_widget_hide (dtfhd);
+
+       gtk_widget_hide (defpl);
+       gtk_widget_hide (defip);
+       gtk_widget_hide (defdb);
+       gtk_widget_hide (defhd);
+
+       gtk_widget_hide (dpl);
+       gtk_widget_hide (dpltfip);
+       gtk_widget_hide (dpltfdb);
+       gtk_widget_hide (dpltfhd);
+
+       gtk_widget_hide (dsep1);
+       gtk_widget_hide (dsep2);
+
+       gtk_widget_set_sensitive (espl, FALSE);
+
+       if (pl->is_spl)
+       {
+           gtk_widget_set_sensitive (espl, TRUE);
        }
-       else
+
+       if (itdb->usertype & GP_ITDB_TYPE_IPOD)
        {
-           if (itdb_playlist_is_podcasts (pl))
-           {   /* Podcasts playlist */
-               /* FIXME: not well thought over yet */
-               gtk_widget_set_sensitive (d, TRUE);
-               gtk_widget_set_sensitive (df, TRUE);
-               gtk_widget_set_sensitive (dp, TRUE);
-               gtk_widget_set_sensitive (dfp, TRUE);
+           if (itdb_playlist_is_mpl (pl))
+           {
+               gtk_widget_show (dtfip);
+               gtk_widget_show (defip);
            }
            else
-           {   /* normal playlist */
-               gtk_widget_set_sensitive (d, TRUE);
-               gtk_widget_set_sensitive (df, TRUE);
-               gtk_widget_set_sensitive (dp, TRUE);
-               gtk_widget_set_sensitive (dfp, TRUE);
+           {
+               if (itdb_playlist_is_podcasts (pl))
+               {
+                   gtk_widget_show (dtfip);
+                   gtk_widget_show (defip);
+               }
+               else
+               {
+                   gtk_widget_show (dpl);
+                   gtk_widget_show (dpltfip);
+
+                   gtk_widget_show (dsep1);
+
+                   gtk_widget_show (defpl);
+                   gtk_widget_show (defip);
+
+                   gtk_widget_show (dsep2);
+
+                   gtk_widget_show (dtfpl);
+                   gtk_widget_show (dtfip);
+               }
+           }
+       }
+       if (itdb->usertype & GP_ITDB_TYPE_LOCAL)
+       {
+           if (itdb_playlist_is_mpl (pl))
+           {
+               gtk_widget_show (dtfdb);
+               gtk_widget_show (dtfhd);
+
+               gtk_widget_show (dsep2);
+
+               gtk_widget_show (defdb);
+               gtk_widget_show (defhd);
+           }
+           else
+           {
+               gtk_widget_show (dtfpl);
+               gtk_widget_show (dtfdb);
+               gtk_widget_show (dtfhd);
+
+               gtk_widget_show (dsep1);
+
+               gtk_widget_show (defpl);
+               gtk_widget_show (defdb);
+               gtk_widget_show (defhd);
+
+               gtk_widget_show (dsep2);
+
+               gtk_widget_show (dpl);
+               gtk_widget_show (dpltfdb);
+               gtk_widget_show (dpltfhd);
+           }
+       }
+       if (itdb->usertype & GP_ITDB_TYPE_PODCASTS)
+       {
+           if (itdb_playlist_is_mpl (pl))
+           {
+               gtk_widget_show (dtfdb);
+               gtk_widget_show (dtfhd);
+
+               gtk_widget_show (dsep2);
+
+               gtk_widget_show (defdb);
+               gtk_widget_show (defhd);
+           }
+           else
+           {
+               gtk_widget_show (dtfpl);
+               gtk_widget_show (dtfdb);
+               gtk_widget_show (dtfhd);
+
+               gtk_widget_show (dsep1);
+
+               gtk_widget_show (defpl);
+               gtk_widget_show (defdb);
+               gtk_widget_show (defhd);
+
+               gtk_widget_show (dsep2);
+
+               gtk_widget_show (dpl);
+               gtk_widget_show (dpltfdb);
+               gtk_widget_show (dpltfhd);
            }
        }
     }
@@ -876,65 +1004,168 @@
 }
 
 
-void
-on_delete_tracks_activate               (GtkMenuItem     *menuitem,
-                                       gpointer         user_data)
+void on_edit_smart_playlist (GtkMenuItem *mi,
+                            gpointer data)
 {
-    g_print ("not supported yet");
-//    delete_track_head (FALSE);
+    Playlist *pl = pm_get_selected_playlist ();
+
+    if (!pl)
+    {
+       gtkpod_statusbar_message (_("No playlist selected"));
+       return;
+    }
+    spl_edit (pl);
 }
 
 
-void
-on_delete_playlist_activate                (GtkMenuItem     *menuitem,
-                                       gpointer         user_data)
+static void delete_selected_tracks (DeleteAction deleteaction)
 {
-    g_print ("not supported yet");
-//    delete_playlist_head (FALSE);
+    GList *tracks = tm_get_selected_tracks ();
+
+    if (tracks)
+    {
+       delete_track_head (deleteaction);
+       g_list_free (tracks);
+    }
+    else
+    {
+       gtkpod_statusbar_message (_("No tracks selected"));
+    }
+}    
+
+static void delete_selected_entry (DeleteAction deleteaction,
+                                  gchar *text)
+{
+    TabEntry *entry;
+    gint inst;
+
+    inst = get_sort_tab_number (text);
+    if (inst == -1) return;
+
+    entry = st_get_selected_entry (inst);
+    if (!entry)
+    {
+       gchar *str = g_strdup_printf(_("No entry selected in Sort Tab %d"),
+                                    inst+1);
+       gtkpod_statusbar_message (str);
+       g_free (str);
+       return;
+    }
+    delete_entry_head (inst, deleteaction);
 }
 
-void
-on_delete_tab_entry_activate           (GtkMenuItem     *menuitem,
-                                       gpointer         user_data)
+static void delete_selected_playlist (DeleteAction deleteaction)
 {
-    g_print ("not supported yet");
-/*     gint inst = get_sort_tab_number ( */
-/*     _("Delete selected entry of which sort tab?")); */
+    Playlist *pl = pm_get_selected_playlist ();
 
-/*     if (inst != -1)   delete_entry_head (inst, FALSE); */
+    if (!pl)
+    {
+       gtkpod_statusbar_message (_("No playlist selected"));
+       return;
+    }
+    delete_playlist_head (deleteaction);
+}
+
+void on_delete_selected_tracks_from_database (GtkMenuItem *mi,
+                                             gpointer data)
+{
+    delete_selected_tracks (DELETE_ACTION_DATABASE);
 }
 
 void
-on_delete_full_tracks_activate               (GtkMenuItem     *menuitem,
-                                       gpointer         user_data)
+on_delete_selected_playlist_including_tracks_from_harddisk (GtkMenuItem *mi,
+                                                           gpointer data)
 {
-    g_print ("not supported yet");
-//     delete_track_head (TRUE);
+    delete_selected_playlist (DELETE_ACTION_LOCAL);
 }
 
 
-void
-on_delete_full_playlist_activate                (GtkMenuItem     *menuitem,
-                                       gpointer         user_data)
+void on_delete_selected_entry_from_database (GtkMenuItem *mi,
+                                            gpointer data)
 {
-    g_print ("not supported yet");
-//    delete_playlist_head (TRUE);
+    delete_selected_entry (DELETE_ACTION_DATABASE, 
+                          _("Remove entry of which sort tab from database?"));
+}
+
+
+void on_delete_selected_entry_from_ipod (GtkMenuItem *mi,
+                                        gpointer data)
+{
+    delete_selected_entry (DELETE_ACTION_IPOD,
+                          _("Remove tracks in selected entry of which filter 
tab from the iPod?"));
 }
 
+
+void on_delete_selected_tracks_from_playlist (GtkMenuItem *mi,
+                                             gpointer data)
+{
+    delete_selected_tracks (DELETE_ACTION_PLAYLIST);
+}
+
+
+void on_delete_selected_tracks_from_harddisk (GtkMenuItem *mi,
+                                             gpointer data)
+{
+    GList *tracks = tm_get_selected_tracks ();
+
+    if (tracks)
+    {
+       delete_track_head (DELETE_ACTION_LOCAL);
+       g_list_free (tracks);
+    }
+    else
+    {
+       gtkpod_statusbar_message (_("No tracks selected"));
+    }
+}
+
+
+void on_delete_selected_entry_from_harddisk (GtkMenuItem *mi,
+                                            gpointer data)
+{
+    delete_selected_entry (DELETE_ACTION_LOCAL,
+                          _("Remove tracks in selected entry of which filter 
tab from the harddisk?"));
+}
+
+
+void on_delete_selected_tracks_from_ipod (GtkMenuItem *mi,
+                                         gpointer data)
+{
+    delete_selected_tracks (DELETE_ACTION_IPOD);
+}
+
+
+void on_delete_selected_playlist (GtkMenuItem *mi,
+                                 gpointer data)
+{
+    delete_selected_playlist (DELETE_ACTION_PLAYLIST);
+}
+
+
 void
-on_delete_full_tab_entry_activate           (GtkMenuItem     *menuitem,
-                                       gpointer         user_data)
+on_delete_selected_playlist_including_tracks_from_database (GtkMenuItem *mi,
+                                                           gpointer data)
 {
-    g_print ("not supported yet");
-/*     gint inst = get_sort_tab_number ( */
-/*     _("Delete selected entry of which sort tab?")); */
+    delete_selected_playlist (DELETE_ACTION_DATABASE);
+}
 
-/*     if (inst != -1) */
-/*     { */
-/*     delete_entry_head (inst, TRUE); */
-/*     } */
+
+void on_delete_selected_entry_from_playlist (GtkMenuItem *mi,
+                                            gpointer data)
+{
+    delete_selected_entry (DELETE_ACTION_PLAYLIST,
+                          _("Remove tracks in selected entry of which filter 
tab from playlist?"));
 }
 
+
+void
+on_delete_selected_playlist_including_tracks_from_ipod (GtkMenuItem *mi,
+                                                       gpointer data)
+{
+    delete_selected_playlist (DELETE_ACTION_IPOD);
+}
+
+
 void
 on_ipod_directories_menu               (GtkMenuItem     *menuitem,
                                        gpointer         user_data)

Index: display.h
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/display.h,v
retrieving revision 1.108
retrieving revision 1.109
diff -u -d -r1.108 -r1.109
--- display.h   5 Dec 2005 16:35:17 -0000       1.108
+++ display.h   10 Dec 2005 08:21:59 -0000      1.109
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-12-06 01:14:27 jcs>
+/* Time-stamp: <2005-12-10 14:43:34 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -257,7 +257,7 @@
 
 void display_create (void);
 void display_cleanup (void);
-void display_adjust_delete_menus (void);
+void display_adjust_menus (void);
 void display_disable_gtkpod_import_buttons(void);
 void display_show_hide_toolbar (void);
 void display_reset (gint inst);

Index: display_playlists.c
===================================================================
RCS file: /cvsroot/gtkpod/gtkpod/src/display_playlists.c,v
retrieving revision 1.70
retrieving revision 1.71
diff -u -d -r1.70 -r1.71
--- display_playlists.c 26 Nov 2005 13:44:41 -0000      1.70
+++ display_playlists.c 10 Dec 2005 08:21:59 -0000      1.71
@@ -1,4 +1,4 @@
-/* Time-stamp: <2005-11-25 23:52:14 jcs>
+/* Time-stamp: <2005-12-10 14:43:34 jcs>
 |
 |  Copyright (C) 2002-2005 Jorg Schuler <jcsjcs at users sourceforge net>
 |  Part of the gtkpod project.
@@ -1382,7 +1382,7 @@
          time.tv_sec % 3600, time.tv_usec);
 #endif 
   /* make only suitable delete menu items available */
-  display_adjust_delete_menus ();
+  display_adjust_menus ();
 }
 
 /* Callback function called when the selection



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
gtkpod-cvs2 mailing list
gtkpod-cvs2@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtkpod-cvs2

Reply via email to