[Goodies-commits] r6851 - in xfmpc/trunk: . src

Mike Massonnet mmassonnet at xfce.org
Fri Mar 6 00:14:55 CET 2009


Author: mmassonnet
Date: 2009-03-05 23:14:55 +0000 (Thu, 05 Mar 2009)
New Revision: 6851

Modified:
   xfmpc/trunk/ChangeLog
   xfmpc/trunk/src/dbbrowser.c
   xfmpc/trunk/src/extended-interface.c
   xfmpc/trunk/src/extended-interface.h
   xfmpc/trunk/src/playlist.c
   xfmpc/trunk/src/preferences.h
Log:
Rework "API" in XfmpcExtendedInterface

Modified: xfmpc/trunk/ChangeLog
===================================================================
--- xfmpc/trunk/ChangeLog	2009-03-05 20:12:29 UTC (rev 6850)
+++ xfmpc/trunk/ChangeLog	2009-03-05 23:14:55 UTC (rev 6851)
@@ -1,5 +1,22 @@
 2009-03-04	Mike Massonnet <mmassonnet at xfce.org>
 
+Rework "API" in XfmpcExtendedInterface
+	* src/extended-interface.[ch]:
+	  - Rename xfmpc_preferences_dialog_show to cb_preferences
+	  - Moved and simplified xfmpc_extended_interface_update_notebook to
+	  xfmpc_extended_interface_set_active
+	  - Declare an enum XfmpcExtendedInterfaceWidget to represent the
+	  playlist and the dbbrowser useful for the new set_active function
+	* src/playlist.c(cb_browse_selection):
+	  - Use new function xfmpc_extended_interface_set_active
+	* src/dbbrowser.c(popup_menu):
+	  - Always display the "Browse" menu item on a search, and update the
+	  sensitivity
+	* src/dbbrowser.c(cb_browse):
+	  - Fix leak -- forgot to free the GtkTreePath and GList
+
+2009-03-04	Mike Massonnet <mmassonnet at xfce.org>
+
 Fix in custom format
 	* src/preferences.[ch]:
 	  - Put "Album - Title" at the second line

Modified: xfmpc/trunk/src/dbbrowser.c
===================================================================
--- xfmpc/trunk/src/dbbrowser.c	2009-03-05 20:12:29 UTC (rev 6850)
+++ xfmpc/trunk/src/dbbrowser.c	2009-03-05 23:14:55 UTC (rev 6851)
@@ -633,8 +633,11 @@
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->treeview));
   count = gtk_tree_selection_count_selected_rows (selection);
 
-  if (priv->is_searching && count == 1)
-    gtk_widget_show (priv->mi_browse);
+  if (priv->is_searching)
+    {
+      gtk_widget_show (priv->mi_browse);
+      gtk_widget_set_sensitive (priv->mi_browse, count == 1 ? TRUE : FALSE);
+    }
   else
     gtk_widget_hide (priv->mi_browse);
 
@@ -674,6 +677,9 @@
       g_free (filename);
       g_free (dir);
     }
+
+  g_list_foreach (list, (GFunc)gtk_tree_path_free, NULL);
+  g_list_free (list);
 }
 
 

Modified: xfmpc/trunk/src/extended-interface.c
===================================================================
--- xfmpc/trunk/src/extended-interface.c	2009-03-05 20:12:29 UTC (rev 6850)
+++ xfmpc/trunk/src/extended-interface.c	2009-03-05 23:14:55 UTC (rev 6851)
@@ -57,7 +57,6 @@
 
 static void xfmpc_extended_interface_context_menu_new         (XfmpcExtendedInterface *extended_interface,
                                                                GtkWidget *attach_widget);
-static void xfmpc_preferences_dialog_show                     (XfmpcExtendedInterface *extended_interface);
 
 static void cb_interface_changed                              (GtkComboBox *widget,
                                                                XfmpcExtendedInterface *extended_interface);
@@ -65,6 +64,7 @@
 static void cb_random_switch                                  (XfmpcExtendedInterface *extended_interface);
 static void cb_context_menu_clicked                           (GtkToggleButton *button,
                                                                XfmpcExtendedInterface *extended_interface);
+static void cb_preferences                                    (XfmpcExtendedInterface *extended_interface);
 static void cb_context_menu_deactivate                        (GtkMenuShell *menu,
                                                                GtkWidget *attach_widget);
 static void popup_context_menu                                (XfmpcExtendedInterface *extended_interface);
@@ -210,7 +210,8 @@
 
   gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE);
 
-  /* Extended interface widgets */
+  /* Extended interface widgets ; added in the same order as the
+   * XfmpcExtendedInterfaceWidget enum */
   GtkWidget *playlist = xfmpc_playlist_new ();
   xfmpc_extended_interface_append_child (extended_interface, playlist, _("Current Playlist"));
 
@@ -278,6 +279,14 @@
   gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (priv->notebook), child, TRUE, TRUE, GTK_PACK_START);
 }
 
+void
+xfmpc_extended_interface_set_active (XfmpcExtendedInterface *extended_interface,
+                                     XfmpcExtendedInterfaceWidget active_widget)
+{
+  XfmpcExtendedInterfacePrivate *priv = extended_interface->priv;
+  gtk_combo_box_set_active (GTK_COMBO_BOX (priv->combobox), active_widget);
+}
+
 static void
 xfmpc_extended_interface_context_menu_new (XfmpcExtendedInterface *extended_interface,
                                            GtkWidget *attach_widget)
@@ -311,38 +320,14 @@
   mi = gtk_image_menu_item_new_with_label (_("Preferences"));
   gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), image);
   g_signal_connect_swapped (mi, "activate",
-                            G_CALLBACK (xfmpc_preferences_dialog_show), extended_interface);
+                            G_CALLBACK (cb_preferences), extended_interface);
   gtk_menu_shell_append (GTK_MENU_SHELL (menu), mi);
 
   gtk_widget_show_all (menu);
 }
 
-static void
-xfmpc_preferences_dialog_show (XfmpcExtendedInterface *extended_interface)
-{
-  GtkWidget *dialog = xfmpc_preferences_dialog_new (NULL);
-  gtk_widget_show (dialog);
-}
 
-void
-xfmpc_extended_interface_update_notebook (XfmpcExtendedInterface *extended_interface)
-{
-  XfmpcExtendedInterfacePrivate *priv = XFMPC_EXTENDED_INTERFACE (extended_interface)->priv;
 
-  if (gtk_combo_box_get_active (GTK_COMBO_BOX (priv->combobox)) == 1)
-    {
-      gtk_notebook_prev_page (GTK_NOTEBOOK (priv->notebook));
-      gtk_combo_box_set_active (GTK_COMBO_BOX (priv->combobox), 0);
-    }
-  else if (gtk_combo_box_get_active (GTK_COMBO_BOX (priv->combobox)) == 0)
-    {
-      gtk_notebook_next_page (GTK_NOTEBOOK (priv->notebook));
-      gtk_combo_box_set_active (GTK_COMBO_BOX (priv->combobox), 1);
-    }
-}
-
-
-
 static void
 cb_interface_changed (GtkComboBox *widget,
                       XfmpcExtendedInterface *extended_interface)
@@ -389,6 +374,13 @@
 }
 
 static void
+cb_preferences (XfmpcExtendedInterface *extended_interface)
+{
+  GtkWidget *dialog = xfmpc_preferences_dialog_new (NULL);
+  gtk_widget_show (dialog);
+}
+
+static void
 cb_context_menu_deactivate (GtkMenuShell *menu,
                             GtkWidget *attach_widget)
 {

Modified: xfmpc/trunk/src/extended-interface.h
===================================================================
--- xfmpc/trunk/src/extended-interface.h	2009-03-05 20:12:29 UTC (rev 6850)
+++ xfmpc/trunk/src/extended-interface.h	2009-03-05 23:14:55 UTC (rev 6851)
@@ -21,6 +21,12 @@
 
 G_BEGIN_DECLS
 
+typedef enum
+{
+  XFMPC_EXTENDED_INTERFACE_PLAYLIST,
+  XFMPC_EXTENDED_INTERFACE_DBBROWSER,
+} XfmpcExtendedInterfaceWidget;
+
 #define XFMPC_TYPE_EXTENDED_INTERFACE               (xfmpc_extended_interface_get_type())
 
 #define XFMPC_EXTENDED_INTERFACE(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFMPC_TYPE_EXTENDED_INTERFACE, XfmpcExtendedInterface))
@@ -43,7 +49,8 @@
                                                                   GtkWidget *child,
                                                                   const gchar *title);
 
-void                    xfmpc_extended_interface_update_notebook (XfmpcExtendedInterface *extended_interface);
+void                    xfmpc_extended_interface_set_active      (XfmpcExtendedInterface *extended_interface,
+                                                                  XfmpcExtendedInterfaceWidget active_widget);
 
 G_END_DECLS
 

Modified: xfmpc/trunk/src/playlist.c
===================================================================
--- xfmpc/trunk/src/playlist.c	2009-03-05 20:12:29 UTC (rev 6850)
+++ xfmpc/trunk/src/playlist.c	2009-03-05 23:14:55 UTC (rev 6851)
@@ -1,5 +1,6 @@
 /*
  *  Copyright (c) 2008-2009 Mike Massonnet <mmassonnet at xfce.org>
+ *  Copyright (c) 2009 Vincent Legout <vincent at xfce.org>
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -634,9 +635,8 @@
       dir = g_path_get_dirname (filename);
       xfmpc_dbbrowser_set_wdir (dbbrowser, dir);
       xfmpc_dbbrowser_reload (dbbrowser);
+      xfmpc_extended_interface_set_active (extended_interface, XFMPC_EXTENDED_INTERFACE_DBBROWSER);
 
-      xfmpc_extended_interface_update_notebook (extended_interface);
-
       g_free (filename);
       g_free (dir);
     }

Modified: xfmpc/trunk/src/preferences.h
===================================================================
--- xfmpc/trunk/src/preferences.h	2009-03-05 20:12:29 UTC (rev 6850)
+++ xfmpc/trunk/src/preferences.h	2009-03-05 23:14:55 UTC (rev 6851)
@@ -31,6 +31,7 @@
   XFMPC_SONG_FORMAT_ARTIST_ALBUM_TRACK_TITLE,
   XFMPC_SONG_FORMAT_CUSTOM,
 } XfmpcSongFormat;
+
 GType xfmpc_song_format_get_type () G_GNUC_CONST;
 #define XFMPC_TYPE_SONG_FORMAT (xfmpc_song_format_get_type ())
 




More information about the Goodies-commits mailing list