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

Mike Massonnet mmassonnet at xfce.org
Tue Aug 26 15:43:26 CEST 2008


Author: mmassonnet
Date: 2008-08-26 13:43:25 +0000 (Tue, 26 Aug 2008)
New Revision: 5308

Modified:
   xfmpc/trunk/IDEAS
   xfmpc/trunk/src/dbbrowser.c
   xfmpc/trunk/src/dbbrowser.h
   xfmpc/trunk/src/mpdclient.c
   xfmpc/trunk/src/mpdclient.h
Log:
Add Replace to the right click menu in the database browser

* src/mpdclient.c(xfmpc_mpdclient_queue_clear):
  - New function that removes all the songs from the playlist without
  commiting to MPD
* src/mpdclient.c(xfmpc_mpdclient_playlist_read):
  - Possibility to pass NULL to song and length
* src/dbbrowser.c(xfmpc_dbbrowser_replace_with_selected_rows):
  - New function to replace the playlist with the selected rows
* src/dbbrowser.c(xfmpc_dbbrowser_init):
  - Add Replace item in the right click menu

Modified: xfmpc/trunk/IDEAS
===================================================================
--- xfmpc/trunk/IDEAS	2008-08-25 20:19:49 UTC (rev 5307)
+++ xfmpc/trunk/IDEAS	2008-08-26 13:43:25 UTC (rev 5308)
@@ -1,7 +1,8 @@
 Next release
 
-  - The 0.8.0 announcement
-  - On a search, have the ability to go to the directory of the song
+  - The 0.0.8 announcement
+  - On a search, have the ability to go to the directory of the song and such
+  - Menu item to replace the playlist with the selection in the database browser
 
 Unpredictable future
 

Modified: xfmpc/trunk/src/dbbrowser.c
===================================================================
--- xfmpc/trunk/src/dbbrowser.c	2008-08-25 20:19:49 UTC (rev 5307)
+++ xfmpc/trunk/src/dbbrowser.c	2008-08-26 13:43:25 UTC (rev 5308)
@@ -204,11 +204,20 @@
   /* Menu */
   priv->menu = gtk_menu_new ();
 
+  /* Menu -> Add */
   GtkWidget *mi = gtk_image_menu_item_new_from_stock (GTK_STOCK_ADD, NULL);
   gtk_menu_shell_append (GTK_MENU_SHELL (priv->menu), mi);
   g_signal_connect_swapped (mi, "activate",
                             G_CALLBACK (xfmpc_dbbrowser_add_selected_rows), dbbrowser);
 
+  /* Menu -> Replace */
+  mi = gtk_image_menu_item_new_with_mnemonic (_("_Replace"));
+  gtk_menu_shell_append (GTK_MENU_SHELL (priv->menu), mi);
+  g_signal_connect_swapped (mi, "activate",
+                            G_CALLBACK (xfmpc_dbbrowser_replace_with_selected_rows), dbbrowser);
+  GtkWidget *image = gtk_image_new_from_stock (GTK_STOCK_CUT, GTK_ICON_SIZE_MENU);
+  gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (mi), image);
+
   gtk_widget_show_all (priv->menu);
 
   /* === Search entry === */
@@ -334,6 +343,13 @@
 }
 
 void
+xfmpc_dbbrowser_replace_with_selected_rows (XfmpcDbbrowser *dbbrowser)
+{
+  xfmpc_mpdclient_queue_clear (dbbrowser->mpdclient);
+  xfmpc_dbbrowser_add_selected_rows (dbbrowser);
+}
+
+void
 xfmpc_dbbrowser_reload (XfmpcDbbrowser *dbbrowser)
 {
   XfmpcDbbrowserPrivate    *priv = XFMPC_DBBROWSER_GET_PRIVATE (dbbrowser);

Modified: xfmpc/trunk/src/dbbrowser.h
===================================================================
--- xfmpc/trunk/src/dbbrowser.h	2008-08-25 20:19:49 UTC (rev 5307)
+++ xfmpc/trunk/src/dbbrowser.h	2008-08-26 13:43:25 UTC (rev 5308)
@@ -35,28 +35,27 @@
 typedef struct _XfmpcDbbrowser              XfmpcDbbrowser;
 typedef struct _XfmpcDbbrowserPrivate       XfmpcDbbrowserPrivate;
 
-GType           xfmpc_dbbrowser_get_type                () G_GNUC_CONST;
+GType           xfmpc_dbbrowser_get_type                       () G_GNUC_CONST;
 
-GtkWidget *     xfmpc_dbbrowser_new                     ();
+GtkWidget *     xfmpc_dbbrowser_new                            ();
 
-void            xfmpc_dbbrowser_clear                   (XfmpcDbbrowser *dbbrowser);
+void            xfmpc_dbbrowser_clear                          (XfmpcDbbrowser *dbbrowser);
+void            xfmpc_dbbrowser_append                         (XfmpcDbbrowser *dbbrowser,
+                                                                gchar *filename,
+                                                                gchar *basename,
+                                                                gboolean is_dir);
 
-void            xfmpc_dbbrowser_append                  (XfmpcDbbrowser *dbbrowser,
-                                                         gchar *filename,
-                                                         gchar *basename,
-                                                         gboolean is_dir);
-void            xfmpc_dbbrowser_add_selected_rows       (XfmpcDbbrowser *dbbrowser);
+void            xfmpc_dbbrowser_add_selected_rows              (XfmpcDbbrowser *dbbrowser);
+void            xfmpc_dbbrowser_replace_with_selected_rows     (XfmpcDbbrowser *dbbrowser);
+void            xfmpc_dbbrowser_reload                         (XfmpcDbbrowser *dbbrowser);
+void            xfmpc_dbbrowser_search                         (XfmpcDbbrowser *dbbrowser,
+                                                                const gchar *query);
 
-void            xfmpc_dbbrowser_reload                  (XfmpcDbbrowser *dbbrowser);
+void            xfmpc_dbbrowser_set_wdir                       (XfmpcDbbrowser *dbbrowser,
+                                                                const gchar *dir);
+gboolean        xfmpc_dbbrowser_wdir_is_root                   (XfmpcDbbrowser *dbbrowser);
+gchar *         xfmpc_dbbrowser_get_parent_wdir                (XfmpcDbbrowser *dbbrowser);
 
-void            xfmpc_dbbrowser_search                  (XfmpcDbbrowser *dbbrowser,
-                                                         const gchar *query);
-void            xfmpc_dbbrowser_set_wdir                (XfmpcDbbrowser *dbbrowser,
-                                                         const gchar *dir);
-gboolean        xfmpc_dbbrowser_wdir_is_root            (XfmpcDbbrowser *dbbrowser);
-
-gchar *         xfmpc_dbbrowser_get_parent_wdir         (XfmpcDbbrowser *dbbrowser);
-
 G_END_DECLS
 
 #endif

Modified: xfmpc/trunk/src/mpdclient.c
===================================================================
--- xfmpc/trunk/src/mpdclient.c	2008-08-25 20:19:49 UTC (rev 5307)
+++ xfmpc/trunk/src/mpdclient.c	2008-08-26 13:43:25 UTC (rev 5308)
@@ -570,6 +570,7 @@
 
   return mpd_player_get_random (priv->mi);
 }
+
 gboolean
 xfmpc_mpdclient_is_playing (XfmpcMpdclient *mpdclient)
 {
@@ -678,8 +679,17 @@
   return TRUE;
 }
 
+gboolean
+xfmpc_mpdclient_queue_clear (XfmpcMpdclient *mpdclient)
+{
+  gint id;
 
+  while (xfmpc_mpdclient_playlist_read (mpdclient, &id, NULL, NULL))
+    xfmpc_mpdclient_queue_remove_id (mpdclient, id);
+}
 
+
+
 gboolean
 xfmpc_mpdclient_playlist_read (XfmpcMpdclient *mpdclient,
                                gint *id,
@@ -696,8 +706,10 @@
 
   if (NULL != data)
     {
-      *song = _get_formatted_name (data->song);
-      *length = g_strdup_printf ("%d:%02d", data->song->time / 60, data->song->time % 60);
+      if (NULL != song)
+        *song = _get_formatted_name (data->song);
+      if (NULL != length)
+        *length = g_strdup_printf ("%d:%02d", data->song->time / 60, data->song->time % 60);
       *id = data->song->id;
     }
 

Modified: xfmpc/trunk/src/mpdclient.h
===================================================================
--- xfmpc/trunk/src/mpdclient.h	2008-08-25 20:19:49 UTC (rev 5307)
+++ xfmpc/trunk/src/mpdclient.h	2008-08-26 13:43:25 UTC (rev 5308)
@@ -38,25 +38,15 @@
 GType                   xfmpc_mpdclient_get_type                () G_GNUC_CONST;
 
 XfmpcMpdclient *        xfmpc_mpdclient_get                     ();
-
 gboolean                xfmpc_mpdclient_connect                 (XfmpcMpdclient *mpdclient);
-
 void                    xfmpc_mpdclient_disconnect              (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_is_connected            (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_previous                (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_pp                      (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_play                    (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_pause                   (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_stop                    (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_next                    (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_set_id                  (XfmpcMpdclient *mpdclient,
                                                                  gint id);
 gboolean                xfmpc_mpdclient_set_song_time           (XfmpcMpdclient *mpdclient,
@@ -67,40 +57,30 @@
                                                                  gboolean repeat);
 gboolean                xfmpc_mpdclient_set_random              (XfmpcMpdclient *mpdclient,
                                                                  gboolean random);
-gint                    xfmpc_mpdclient_get_pos                 (XfmpcMpdclient *mpdclient);
 
+gint                    xfmpc_mpdclient_get_pos                 (XfmpcMpdclient *mpdclient);
 gint                    xfmpc_mpdclient_get_id                  (XfmpcMpdclient *mpdclient);
-
 const gchar *           xfmpc_mpdclient_get_artist              (XfmpcMpdclient *mpdclient);
-
 const gchar *           xfmpc_mpdclient_get_title               (XfmpcMpdclient *mpdclient);
-
 const gchar *           xfmpc_mpdclient_get_album               (XfmpcMpdclient *mpdclient);
-
 const gchar *           xfmpc_mpdclient_get_date                (XfmpcMpdclient *mpdclient);
-
 gint                    xfmpc_mpdclient_get_time                (XfmpcMpdclient *mpdclient);
-
 gint                    xfmpc_mpdclient_get_total_time          (XfmpcMpdclient *mpdclient);
-
 guint8                  xfmpc_mpdclient_get_volume              (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_get_repeat              (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_get_repeat              (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_is_playing              (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_is_stopped              (XfmpcMpdclient *mpdclient);
 
 void                    xfmpc_mpdclient_update_status           (XfmpcMpdclient *mpdclient);
 
 gboolean                xfmpc_mpdclient_queue_commit            (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_queue_add               (XfmpcMpdclient *mpdclient,
                                                                  const gchar *path);
 gboolean                xfmpc_mpdclient_queue_remove_id         (XfmpcMpdclient *mpdclient,
                                                                  gint id);
+gboolean                xfmpc_mpdclient_queue_clear             (XfmpcMpdclient *mpdclient);
+
 gboolean                xfmpc_mpdclient_playlist_read           (XfmpcMpdclient *mpdclient,
                                                                  gint *id,
                                                                  gchar **song,
@@ -108,7 +88,6 @@
 gboolean                xfmpc_mpdclient_playlist_clear          (XfmpcMpdclient *mpdclient);
 
 gboolean                xfmpc_mpdclient_database_refresh        (XfmpcMpdclient *mpdclient);
-
 gboolean                xfmpc_mpdclient_database_read           (XfmpcMpdclient *mpdclient,
                                                                  const gchar *dir,
                                                                  gchar **filename,




More information about the Goodies-commits mailing list