[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