From a1ac37ed191675c7a560d03e84ed2d0b80b81ff4 Mon Sep 17 00:00:00 2001 From: Sven Neumann Date: Tue, 27 Jul 2004 00:26:14 +0000 Subject: [PATCH] show extensions in the filters menu. 2004-07-27 Sven Neumann * app/widgets/gimpfiledialog.c (gimp_file_dialog_add_filters): show extensions in the filters menu. --- ChangeLog | 5 +++++ app/widgets/gimpfiledialog.c | 29 ++++++++++++++++++++--------- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 80a2c7dea2..9694650264 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-07-27 Sven Neumann + + * app/widgets/gimpfiledialog.c (gimp_file_dialog_add_filters): + show extensions in the filters menu. + 2004-07-27 Sven Neumann * libgimp/gimpbrushmenu.c diff --git a/app/widgets/gimpfiledialog.c b/app/widgets/gimpfiledialog.c index d065b987d5..257dbf41f0 100644 --- a/app/widgets/gimpfiledialog.c +++ b/app/widgets/gimpfiledialog.c @@ -313,7 +313,7 @@ gimp_file_dialog_add_filters (GimpFileDialog *dialog, GSList *list; filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, _("All Files")); + gtk_file_filter_set_name (filter, _("All Files (*.*)")); gtk_file_filter_add_pattern (filter, "*"); gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), filter); @@ -325,26 +325,37 @@ gimp_file_dialog_add_filters (GimpFileDialog *dialog, if (file_proc->menu_paths && file_proc->extensions_list) { const gchar *domain; - gchar *label; + GString *label; GSList *ext; + gboolean first = TRUE; domain = plug_ins_locale_domain (gimp, file_proc->prog, NULL); - label = plug_in_proc_def_get_label (file_proc, domain); + + label = g_string_new (plug_in_proc_def_get_label (file_proc, domain)); filter = gtk_file_filter_new (); - gtk_file_filter_set_name (filter, label); - g_free (label); - for (ext = file_proc->extensions_list; - ext; - ext = g_slist_next (ext)) + for (ext = file_proc->extensions_list; ext; ext = g_slist_next (ext)) { - gchar *pattern = g_strdup_printf ("*.%s", (gchar *) ext->data); + const gchar *extension = ext->data; + gchar *pattern = g_strdup_printf ("*.%s", extension); gtk_file_filter_add_pattern (filter, pattern); g_free (pattern); + + if (first) + { + g_string_append (label, " (*."); + first = FALSE; + } + + g_string_append (label, extension); + g_string_append (label, ext->next ? ", *." : ")"); } + gtk_file_filter_set_name (filter, label->str); + g_string_free (label, TRUE); + gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), filter); } }