diff options
author | Bastien Nocera <hadess@hadess.net> | 2008-07-28 17:35:38 +0000 |
---|---|---|
committer | Bastien Nocera <hadess@src.gnome.org> | 2008-07-28 17:35:38 +0000 |
commit | ee2b7e711b896bda43626d64ec0f6a29c29d223e (patch) | |
tree | 8bd400d3b5dadaba36b9d8ab1f03263710808253 /capplets | |
parent | e8779d1c8bea155ae268108557d9d1a04c756c2e (diff) | |
download | gnome-control-center-ee2b7e711b896bda43626d64ec0f6a29c29d223e.tar.gz |
When selecting custom files, listen to "update-preview", and try to play
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)
svn path=/trunk/; revision=8810
Diffstat (limited to 'capplets')
-rw-r--r-- | capplets/sound/ChangeLog | 6 | ||||
-rw-r--r-- | capplets/sound/sound-theme.c | 27 |
2 files changed, 33 insertions, 0 deletions
diff --git a/capplets/sound/ChangeLog b/capplets/sound/ChangeLog index 5354190b2..c68a533b4 100644 --- a/capplets/sound/ChangeLog +++ b/capplets/sound/ChangeLog @@ -1,5 +1,11 @@ 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) + +2008-07-28 Bastien Nocera <hadess@hadess.net> + * sound-theme.c (save_custom_theme): Fix permissions on the custom theme directory, otherwise not even the user can read the files in there diff --git a/capplets/sound/sound-theme.c b/capplets/sound/sound-theme.c index 2fdd6c961..4858420db 100644 --- a/capplets/sound/sound-theme.c +++ b/capplets/sound/sound-theme.c @@ -451,6 +451,30 @@ setting_set_func (GtkTreeViewColumn *tree_column, 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 @@ get_sound_filename (GladeXML *dialog) 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); |