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

Mike Massonnet mmassonnet at xfce.org
Fri Mar 21 22:01:36 CET 2008


Author: mmassonnet
Date: 2008-03-21 21:01:36 +0000 (Fri, 21 Mar 2008)
New Revision: 4081

Modified:
   xfmpc/trunk/src/playlist.c
   xfmpc/trunk/src/playlist.h
Log:
Add a new public function to refresh the current song in the playlist (with bold)
* src/playlist.c,
  src/playlist.h:
  - New public function xfmpc_playlist_refresh_current_song
  - Drop code from cb_song_changed and cb_playlist_changed
  - Remove the argument gboolean is_current from xfmpc_playlist_append


Modified: xfmpc/trunk/src/playlist.c
===================================================================
--- xfmpc/trunk/src/playlist.c	2008-03-21 21:01:30 UTC (rev 4080)
+++ xfmpc/trunk/src/playlist.c	2008-03-21 21:01:36 UTC (rev 4081)
@@ -264,8 +264,7 @@
 xfmpc_playlist_append (XfmpcPlaylist *playlist,
                        gint id,
                        gchar *song,
-                       gchar *length,
-                       gboolean is_current)
+                       gchar *length)
 {
   XfmpcPlaylistPrivate *priv = XFMPC_PLAYLIST_GET_PRIVATE (playlist);
   GtkTreeIter           iter;
@@ -275,7 +274,7 @@
                       COLUMN_ID, id,
                       COLUMN_SONG, song,
                       COLUMN_LENGTH, length,
-                      COLUMN_WEIGHT, is_current ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL,
+                      COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
                       -1);
 }
 
@@ -331,29 +330,37 @@
   g_list_free (list);
 }
 
-
-
-static void
-cb_song_changed (XfmpcPlaylist *playlist)
+void
+xfmpc_playlist_refresh_current_song (XfmpcPlaylist *playlist)
 {
   XfmpcPlaylistPrivate *priv = XFMPC_PLAYLIST_GET_PRIVATE (playlist);
-  gint                  id, current;
 
   /* Remove the bold from the "last" current song */
   GtkTreeIter iter;
   GtkTreePath *path = gtk_tree_path_new_from_indices (priv->current, -1);
-  gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->store), &iter, path);
-  gtk_list_store_set (priv->store, &iter,
-                      COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
-                      -1);
+  if (gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->store), &iter, path))
+    gtk_list_store_set (priv->store, &iter,
+                        COLUMN_WEIGHT, PANGO_WEIGHT_NORMAL,
+                        -1);
 
-  /* Find the iter of the current song, set it bold and select it */
+  /* Set the current song bold */
   priv->current = xfmpc_mpdclient_get_pos (playlist->mpdclient);
   path = gtk_tree_path_new_from_indices (priv->current, -1);
   gtk_tree_model_get_iter (GTK_TREE_MODEL (priv->store), &iter, path);
   gtk_list_store_set (priv->store, &iter,
                       COLUMN_WEIGHT, PANGO_WEIGHT_BOLD,
                       -1);
+}
+
+
+
+static void
+cb_song_changed (XfmpcPlaylist *playlist)
+{
+  XfmpcPlaylistPrivate *priv = XFMPC_PLAYLIST_GET_PRIVATE (playlist);
+
+  xfmpc_playlist_refresh_current_song (playlist);
+
   /* don't autocenter if a filter is typped in */
   if (gtk_entry_get_text (GTK_ENTRY (priv->filter_entry))[0] == '\0' && priv->autocenter)
     xfmpc_playlist_select_row (playlist, priv->current);
@@ -371,12 +378,13 @@
   xfmpc_playlist_clear (playlist);
   while (xfmpc_mpdclient_playlist_read (playlist->mpdclient, &id, &song, &length))
     {
-      xfmpc_playlist_append (playlist, id, song, length, current == id);
+      xfmpc_playlist_append (playlist, id, song, length);
       g_free (song);
       g_free (length);
     }
 
-  priv->current = xfmpc_mpdclient_get_pos (playlist->mpdclient);
+  xfmpc_playlist_refresh_current_song (playlist);
+
   /* don't autocenter if a filter is typped in */
   if (gtk_entry_get_text (GTK_ENTRY (priv->filter_entry))[0] == '\0' && priv->autocenter)
     xfmpc_playlist_select_row (playlist, priv->current);

Modified: xfmpc/trunk/src/playlist.h
===================================================================
--- xfmpc/trunk/src/playlist.h	2008-03-21 21:01:30 UTC (rev 4080)
+++ xfmpc/trunk/src/playlist.h	2008-03-21 21:01:36 UTC (rev 4081)
@@ -42,14 +42,16 @@
 void                    xfmpc_playlist_append                   (XfmpcPlaylist *playlist,
                                                                  gint id,
                                                                  gchar *song,
-                                                                 gchar *length,
-                                                                 gboolean is_current);
+                                                                 gchar *length);
 void                    xfmpc_playlist_clear                    (XfmpcPlaylist *playlist);
 
 void                    xfmpc_playlist_select_row               (XfmpcPlaylist *playlist,
                                                                  gint i);
 void                    xfmpc_playlist_delete_selection         (XfmpcPlaylist *playlist);
 
+void                    xfmpc_playlist_refresh_current_song     (XfmpcPlaylist *playlist);
+
+
 G_END_DECLS
 
 #endif




More information about the Goodies-commits mailing list