gnome-control-center r8810 - trunk/capplets/sound



Author: hadess
Date: Mon Jul 28 17:35:38 2008
New Revision: 8810
URL: http://svn.gnome.org/viewvc/gnome-control-center?rev=8810&view=rev

Log:
2008-07-28  Bastien Nocera  <hadess hadess net>

	* sound-theme.c (play_sound_preview), (get_sound_filename):
	When selecting custom files, listen to "update-preview", and try
	to play everything that the user might select (Closes: #545056)



Modified:
   trunk/capplets/sound/ChangeLog
   trunk/capplets/sound/sound-theme.c

Modified: trunk/capplets/sound/sound-theme.c
==============================================================================
--- trunk/capplets/sound/sound-theme.c	(original)
+++ trunk/capplets/sound/sound-theme.c	Mon Jul 28 17:35:38 2008
@@ -451,6 +451,30 @@
 	g_free (filename);
 }
 
+static void
+play_sound_preview (GtkFileChooser *chooser,
+		    gpointer user_data)
+{
+	char *filename;
+	ca_context *ctx;
+
+	filename = gtk_file_chooser_get_preview_filename (GTK_FILE_CHOOSER (chooser));
+	if (filename == NULL)
+		return;
+
+	ctx = ca_gtk_context_get ();
+	ca_gtk_play_for_widget (GTK_WIDGET (chooser), 0,
+				CA_PROP_APPLICATION_NAME, _("Sound Preferences"),
+				CA_PROP_MEDIA_FILENAME, filename,
+				CA_PROP_EVENT_DESCRIPTION, _("Testing event sound"),
+				CA_PROP_CANBERRA_CACHE_CONTROL, "never",
+#ifdef CA_PROP_CANBERRA_ENABLE
+				CA_PROP_CANBERRA_ENABLE, "1",
+#endif
+				NULL);
+	g_free (filename);
+}
+
 static char *
 get_sound_filename (GladeXML *dialog)
 {
@@ -478,6 +502,9 @@
 	gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (chooser), filter);
 	gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (chooser), filter);
 
+	g_signal_connect (G_OBJECT (chooser), "update-preview",
+			  G_CALLBACK (play_sound_preview), NULL);
+
 	data_dirs = g_get_system_data_dirs ();
 	for (i = 0; data_dirs[i] != NULL; i++) {
 		path = g_build_filename (data_dirs[i], "sounds", NULL);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]