[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