[Goodies-commits] r4133 - xfmpc/trunk/src

Mike Massonnet mmassonnet at xfce.org
Sun Mar 30 07:59:10 CEST 2008


Author: mmassonnet
Date: 2008-03-30 05:59:10 +0000 (Sun, 30 Mar 2008)
New Revision: 4133

Modified:
   xfmpc/trunk/src/extended-interface.c
   xfmpc/trunk/src/interface.c
   xfmpc/trunk/src/mpdclient.c
   xfmpc/trunk/src/mpdclient.h
Log:
Add "Clear Playlist" and "Refresh Database" buttons beneath the combo box
* src/interface.c(xfmpc_interface_init):
  - Add a GtkHSeparator between XfmpcInterface and XfmpcExtendedInterface
* src/mpdclient.c,
  src/mpdclient.h:
  - Two new functions _playlist_clear and _database_refresh
* src/extended-interface.c:
  - Add two GtkButton to clear to clear the playlist and refresh the database


Modified: xfmpc/trunk/src/extended-interface.c
===================================================================
--- xfmpc/trunk/src/extended-interface.c	2008-03-30 05:59:02 UTC (rev 4132)
+++ xfmpc/trunk/src/extended-interface.c	2008-03-30 05:59:10 UTC (rev 4133)
@@ -24,6 +24,7 @@
 #include <libxfce4util/libxfce4util.h>
 
 #include "extended-interface.h"
+#include "mpdclient.h"
 #include "playlist.h"
 #include "dbbrowser.h"
 
@@ -64,6 +65,7 @@
 {
   GtkVBox                           parent;
   XfmpcExtendedInterfacePrivate    *priv;
+  XfmpcMpdclient                   *mpdclient;
 };
 
 struct _XfmpcExtendedInterfacePrivate
@@ -126,12 +128,41 @@
 {
   XfmpcExtendedInterfacePrivate *priv = XFMPC_EXTENDED_INTERFACE_GET_PRIVATE (extended_interface);
 
+  extended_interface->mpdclient = xfmpc_mpdclient_new ();
+
+  /* Hbox  */
+  GtkWidget *hbox = gtk_hbox_new (FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (extended_interface), hbox, FALSE, FALSE, 2);
+
+  /* Clear playlist */
+  GtkWidget *widget = gtk_button_new ();
+  gtk_widget_set_tooltip_text (widget, _("Clear Playlist"));
+  gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 0);
+  g_signal_connect_swapped (widget, "clicked",
+                            G_CALLBACK (xfmpc_mpdclient_playlist_clear), extended_interface->mpdclient);
+
+  GtkWidget *image = gtk_image_new_from_stock (GTK_STOCK_NEW, GTK_ICON_SIZE_MENU);
+  gtk_button_set_image (GTK_BUTTON (widget), image);
+
+  /* Refresh database */
+  widget = gtk_button_new ();
+  gtk_widget_set_tooltip_text (widget, _("Refresh Database"));
+  gtk_box_pack_start (GTK_BOX (hbox), widget, FALSE, FALSE, 2);
+  g_signal_connect_swapped (widget, "clicked",
+                            G_CALLBACK (xfmpc_mpdclient_database_refresh), extended_interface->mpdclient);
+
+  image = gtk_image_new_from_stock (GTK_STOCK_REFRESH, GTK_ICON_SIZE_MENU);
+  gtk_button_set_image (GTK_BUTTON (widget), image);
+
   /* Combo box */
   priv->list_store = gtk_list_store_new (N_COLUMNS,
                                          G_TYPE_STRING,
                                          G_TYPE_POINTER);
 
   priv->combobox = gtk_combo_box_new_with_model (GTK_TREE_MODEL (priv->list_store));
+  gtk_box_pack_start (GTK_BOX (hbox), priv->combobox, TRUE, TRUE, 0);
+  g_signal_connect (priv->combobox, "changed",
+                    G_CALLBACK (cb_xfmpc_extended_interface_combobox_changed), extended_interface);
 
   GtkCellRenderer *cell = gtk_cell_renderer_text_new ();
   gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (priv->combobox), cell, TRUE);
@@ -141,6 +172,8 @@
 
   /* Notebook */
   priv->notebook = gtk_notebook_new ();
+  gtk_box_pack_start (GTK_BOX (extended_interface), priv->notebook, TRUE, TRUE, 0);
+
   gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE);
 
   /* Extended interface widgets */
@@ -149,14 +182,6 @@
 
   child = xfmpc_dbbrowser_new ();
   xfmpc_extended_interface_append_child (extended_interface, child, _("Browse database"));
-
-  /* Containers */
-  gtk_box_pack_start (GTK_BOX (extended_interface), priv->combobox, FALSE, FALSE, BORDER);
-  gtk_box_pack_start (GTK_BOX (extended_interface), priv->notebook, TRUE, TRUE, 0);
-
-  /* Signals */
-  g_signal_connect (priv->combobox, "changed",
-                    G_CALLBACK (cb_xfmpc_extended_interface_combobox_changed), extended_interface);
 }
 
 static void

Modified: xfmpc/trunk/src/interface.c
===================================================================
--- xfmpc/trunk/src/interface.c	2008-03-30 05:59:02 UTC (rev 4132)
+++ xfmpc/trunk/src/interface.c	2008-03-30 05:59:10 UTC (rev 4133)
@@ -223,6 +223,8 @@
   gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (control), 1.0);
   gtk_container_add (GTK_CONTAINER (progress_box), control);
 
+  GtkWidget *separator = gtk_hseparator_new ();
+
   interface->extended_interface = xfmpc_extended_interface_new ();
 
   /* Title */
@@ -273,6 +275,8 @@
   gtk_container_add (GTK_CONTAINER (box), priv->title);
   gtk_container_add (GTK_CONTAINER (box), priv->subtitle);
 
+  gtk_box_pack_start (GTK_BOX (vbox), separator, FALSE, FALSE, 0);
+
   gtk_box_pack_start (GTK_BOX (vbox), interface->extended_interface, TRUE, TRUE, 0);
 
   /* === Accelerators === */

Modified: xfmpc/trunk/src/mpdclient.c
===================================================================
--- xfmpc/trunk/src/mpdclient.c	2008-03-30 05:59:02 UTC (rev 4132)
+++ xfmpc/trunk/src/mpdclient.c	2008-03-30 05:59:10 UTC (rev 4133)
@@ -632,6 +632,17 @@
 }
 
 gboolean
+xfmpc_mpdclient_playlist_clear (XfmpcMpdclient *mpdclient)
+{
+  XfmpcMpdclientPrivate *priv = XFMPC_MPDCLIENT_GET_PRIVATE (mpdclient);
+
+  if (mpd_playlist_clear (priv->mi) != FALSE)
+    return FALSE;
+
+  return TRUE;
+}
+
+gboolean
 xfmpc_mpdclient_database_read (XfmpcMpdclient *mpdclient,
                                const gchar *dir,
                                gchar **filename,
@@ -689,3 +700,14 @@
   return NULL != data;
 }
 
+gboolean
+xfmpc_mpdclient_database_refresh (XfmpcMpdclient *mpdclient)
+{
+  XfmpcMpdclientPrivate *priv = XFMPC_MPDCLIENT_GET_PRIVATE (mpdclient);
+
+  if (mpd_database_update_dir (priv->mi, "") != MPD_OK)
+    return FALSE;
+
+  return TRUE;
+}
+

Modified: xfmpc/trunk/src/mpdclient.h
===================================================================
--- xfmpc/trunk/src/mpdclient.h	2008-03-30 05:59:02 UTC (rev 4132)
+++ xfmpc/trunk/src/mpdclient.h	2008-03-30 05:59:10 UTC (rev 4133)
@@ -97,12 +97,16 @@
                                                                  gint *id,
                                                                  gchar **song,
                                                                  gchar **length);
+gboolean                xfmpc_mpdclient_playlist_clear          (XfmpcMpdclient *mpdclient);
+
 gboolean                xfmpc_mpdclient_database_read           (XfmpcMpdclient *mpdclient,
                                                                  const gchar *dir,
                                                                  gchar **filename,
                                                                  gchar **basename,
                                                                  gboolean *is_dir);
+gboolean                xfmpc_mpdclient_database_refresh        (XfmpcMpdclient *mpdclient);
 
+
 G_END_DECLS
 
 #endif




More information about the Goodies-commits mailing list