[Xfce4-commits] <parole:master> Finished connecting Shuffle/Repeat buttons and menu items.

Sean Davis noreply at xfce.org
Mon Jul 23 01:24:45 CEST 2012


Updating branch refs/heads/master
         to c1d80be637ebdaeed5aa4e893dc1afb6459b2a70 (commit)
       from c4c147a4844c406d820bea16b26d2003d7d437cb (commit)

commit c1d80be637ebdaeed5aa4e893dc1afb6459b2a70
Author: Sean Davis <smd.seandavis at gmail.com>
Date:   Sat Jul 14 19:34:34 2012 -0400

    Finished connecting Shuffle/Repeat buttons and menu items.

 src/parole-medialist.c |   46 +++++++++++++++++++++++++++++-----------------
 src/parole-medialist.h |    6 ++++++
 src/parole-player.c    |   31 ++++---------------------------
 3 files changed, 39 insertions(+), 44 deletions(-)

diff --git a/src/parole-medialist.c b/src/parole-medialist.c
index 41ace6b..9ada493 100644
--- a/src/parole-medialist.c
+++ b/src/parole-medialist.c
@@ -42,6 +42,7 @@
 #include "interfaces/save-playlist_ui.h"
 
 #include "parole-builder.h"
+#include "parole-player.h"
 #include "parole-medialist.h"
 #include "parole-mediachooser.h"
 #include "parole-open-location.h"
@@ -169,9 +170,8 @@ struct ParoleMediaListPrivate
     GtkTreeSelection    *sel;
     
     GtkWidget		*remove;
-    GtkWidget		*up;
-    GtkWidget		*down;
-    GtkWidget		*save;
+    GtkWidget		*shuffle;
+    GtkWidget		*repeat;
 };
 
 enum
@@ -191,10 +191,7 @@ G_DEFINE_TYPE (ParoleMediaList, parole_media_list, GTK_TYPE_VBOX)
 static void
 parole_media_list_set_widget_sensitive (ParoleMediaList *list, gboolean sensitive)
 {
-    gtk_widget_set_sensitive (GTK_WIDGET (list->priv->up), sensitive);
     gtk_widget_set_sensitive (GTK_WIDGET (list->priv->remove), sensitive);
-    gtk_widget_set_sensitive (GTK_WIDGET (list->priv->down), sensitive);
-    gtk_widget_set_sensitive (GTK_WIDGET (list->priv->save), sensitive);
 }
 
 /**
@@ -251,9 +248,6 @@ parole_media_list_add (ParoleMediaList *list, ParoleFile *file, gboolean emit, g
     
     if ( nch == 1 )
     {
-	gtk_widget_set_sensitive (list->priv->up, FALSE);
-	gtk_widget_set_sensitive (list->priv->down, FALSE);
-	gtk_widget_set_sensitive (list->priv->save, TRUE);
 	gtk_widget_set_sensitive (list->priv->remove, TRUE);
     }
     else
@@ -865,11 +859,6 @@ parole_media_list_remove_clicked_cb (GtkButton *button, ParoleMediaList *list)
 	 */
 	g_signal_emit (G_OBJECT (list), signals [MEDIA_CURSOR_CHANGED], 0, FALSE);
     }
-    else if ( nch == 1 )
-    {
-	gtk_widget_set_sensitive (list->priv->up, FALSE);
-	gtk_widget_set_sensitive (list->priv->down, FALSE);
-    }
 }
 
 /**
@@ -1516,10 +1505,9 @@ parole_media_list_init (ParoleMediaList *list)
 
     gtk_box_pack_start (GTK_BOX (list), box, TRUE, TRUE, 0);
 
-    list->priv->up = GTK_WIDGET (gtk_builder_get_object (builder, "media-up"));
-    list->priv->down = GTK_WIDGET (gtk_builder_get_object (builder, "media-down"));
     list->priv->remove = GTK_WIDGET (gtk_builder_get_object (builder, "remove-media"));
-    list->priv->save = GTK_WIDGET (gtk_builder_get_object (builder, "save-playlist"));
+    list->priv->repeat = GTK_WIDGET (gtk_builder_get_object (builder, "repeat-media"));
+    list->priv->shuffle = GTK_WIDGET (gtk_builder_get_object (builder, "shuffle-media"));
 
     g_object_unref (builder);
     
@@ -1910,3 +1898,27 @@ void parole_media_list_grab_focus (ParoleMediaList *list)
     if (GTK_WIDGET_VISIBLE (list->priv->view) )
 	gtk_widget_grab_focus (list->priv->view);
 }
+
+void 
+parole_media_list_set_repeat_toggled (ParoleMediaList *list,
+									  gboolean repeat_toggled)
+{
+	gboolean toggled;
+    
+    toggled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (list->priv->repeat));
+    
+    if (toggled != repeat_toggled)
+    	gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON (list->priv->repeat), repeat_toggled );
+}
+																
+void 
+parole_media_list_set_shuffle_toggled (ParoleMediaList *list,
+									  gboolean shuffle_toggled)
+{
+	gboolean toggled;
+    
+    toggled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (list->priv->shuffle));
+    
+    if (toggled != shuffle_toggled)
+    	gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON (list->priv->shuffle), shuffle_toggled );
+}
diff --git a/src/parole-medialist.h b/src/parole-medialist.h
index 321a23e..73ac6e6 100644
--- a/src/parole-medialist.h
+++ b/src/parole-medialist.h
@@ -124,6 +124,12 @@ void				 parole_media_list_save_list	    (ParoleMediaList *list);
 
 void				 parole_media_list_grab_focus       (ParoleMediaList *list);
 
+void				 parole_media_list_set_repeat_toggled		(ParoleMediaList *list,
+																gboolean repeat_toggled);
+																
+void 				 parole_media_list_set_shuffle_toggled		(ParoleMediaList *list,
+																gboolean shuffle_toggled);
+
 G_END_DECLS
 
 #endif /* __PAROLE_MEDIA_LIST_H */
diff --git a/src/parole-player.c b/src/parole-player.c
index e5da2fe..ee4caf3 100644
--- a/src/parole-player.c
+++ b/src/parole-player.c
@@ -295,15 +295,6 @@ struct ParolePlayerPrivate
         
 };
 
-enum
-{
-    SHUFFLE_TOGGLED,
-    REPEAT_TOGGLED,
-    LAST_SIGNAL
-};
-
-static guint signals [LAST_SIGNAL] = { 0 };
-
 G_DEFINE_TYPE (ParolePlayer, parole_player, G_TYPE_OBJECT)
 
 void parole_show_about	(GtkWidget *widget)
@@ -1445,6 +1436,8 @@ void parole_player_shuffle_toggled_cb (GtkWidget *widget, ParolePlayer *player)
     g_object_set (G_OBJECT (player->priv->conf),
 		  "shuffle", toggled,
 		  NULL);
+		  
+	parole_media_list_set_shuffle_toggled(player->priv->list, toggled);
 }
 
 void parole_player_repeat_toggled_cb (GtkWidget *widget, ParolePlayer *player)
@@ -1456,6 +1449,8 @@ void parole_player_repeat_toggled_cb (GtkWidget *widget, ParolePlayer *player)
     g_object_set (G_OBJECT (player->priv->conf),
 		  "repeat", toggled,
 		  NULL);
+		  
+	parole_media_list_set_repeat_toggled(player->priv->list, toggled);
 }
 
 static void
@@ -2204,24 +2199,6 @@ parole_player_dbus_class_init (ParolePlayerClass *klass)
     dbus_g_object_type_install_info (G_TYPE_FROM_CLASS (klass),
 				     &dbus_glib_parole_player_object_info);
 				     
-	signals[SHUFFLE_TOGGLED] = 
-        g_signal_new ("shuffle-toggled",
-                      PAROLE_TYPE_PLAYER,
-                      G_SIGNAL_RUN_LAST,
-                      G_STRUCT_OFFSET (ParolePlayerClass, shuffle_toggled),
-                      NULL, NULL,
-                      g_cclosure_marshal_VOID__BOOLEAN,
-                      G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-                      
-	signals[REPEAT_TOGGLED] = 
-        g_signal_new ("repeat-toggled",
-                      PAROLE_TYPE_PLAYER,
-                      G_SIGNAL_RUN_LAST,
-                      G_STRUCT_OFFSET (ParolePlayerClass, repeat_toggled),
-                      NULL, NULL,
-                      g_cclosure_marshal_VOID__BOOLEAN,
-                      G_TYPE_NONE, 1, G_TYPE_BOOLEAN);
-				     
 }
 
 static void


More information about the Xfce4-commits mailing list