mirror of https://github.com/GNOME/gimp.git
Bug 681699 - Inapplicable files are listed with 'All images' filter...
In order the fix the obvious confusion, add another file filter which contains all the types that are savable with the dialog, name it either "All XCF images" or "All export images", and make it the default filter.
This commit is contained in:
parent
ed94e55be9
commit
14f6d5ee44
|
@ -94,12 +94,15 @@ static void gimp_file_dialog_add_preview (GimpFileDialog *dialo
|
|||
Gimp *gimp);
|
||||
static void gimp_file_dialog_add_filters (GimpFileDialog *dialog,
|
||||
Gimp *gimp,
|
||||
GimpFileChooserAction
|
||||
action,
|
||||
GSList *file_procs,
|
||||
GSList *file_procs_all_images);
|
||||
static void gimp_file_dialog_process_procedure (GimpPlugInProcedure
|
||||
*file_proc,
|
||||
GtkFileFilter **filter_out,
|
||||
GtkFileFilter *all);
|
||||
GtkFileFilter **filter_out,
|
||||
GtkFileFilter *all,
|
||||
GtkFileFilter *all_savable);
|
||||
static void gimp_file_dialog_add_proc_selection (GimpFileDialog *dialog,
|
||||
Gimp *gimp,
|
||||
GSList *file_procs,
|
||||
|
@ -402,8 +405,7 @@ gimp_file_dialog_new (Gimp *gimp,
|
|||
|
||||
gimp_file_dialog_add_preview (dialog, gimp);
|
||||
|
||||
gimp_file_dialog_add_filters (dialog,
|
||||
gimp,
|
||||
gimp_file_dialog_add_filters (dialog, gimp, action,
|
||||
file_procs,
|
||||
file_procs_all_images);
|
||||
|
||||
|
@ -774,19 +776,22 @@ gimp_file_dialog_add_preview (GimpFileDialog *dialog,
|
|||
* gimp_file_dialog_add_filters:
|
||||
* @dialog:
|
||||
* @gimp:
|
||||
* @action:
|
||||
* @file_procs: The image types that can be chosen from
|
||||
* the drop down
|
||||
* the file type list
|
||||
* @file_procs_all_images: The additional images types shown when
|
||||
* "All images" is selected
|
||||
*
|
||||
**/
|
||||
static void
|
||||
gimp_file_dialog_add_filters (GimpFileDialog *dialog,
|
||||
Gimp *gimp,
|
||||
GSList *file_procs,
|
||||
GSList *file_procs_all_images)
|
||||
gimp_file_dialog_add_filters (GimpFileDialog *dialog,
|
||||
Gimp *gimp,
|
||||
GimpFileChooserAction action,
|
||||
GSList *file_procs,
|
||||
GSList *file_procs_all_images)
|
||||
{
|
||||
GtkFileFilter *all;
|
||||
GtkFileFilter *all_savable = NULL;
|
||||
GSList *list;
|
||||
|
||||
all = gtk_file_filter_new ();
|
||||
|
@ -798,6 +803,16 @@ gimp_file_dialog_add_filters (GimpFileDialog *dialog,
|
|||
gtk_file_filter_set_name (all, _("All images"));
|
||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), all);
|
||||
|
||||
if (file_procs_all_images)
|
||||
{
|
||||
all_savable = gtk_file_filter_new ();
|
||||
if (action == GIMP_FILE_CHOOSER_ACTION_SAVE)
|
||||
gtk_file_filter_set_name (all_savable, _("All XCF images"));
|
||||
else
|
||||
gtk_file_filter_set_name (all_savable, _("All export images"));
|
||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog), all_savable);
|
||||
}
|
||||
|
||||
/* Add the normal file procs */
|
||||
for (list = file_procs; list; list = g_slist_next (list))
|
||||
{
|
||||
|
@ -806,7 +821,7 @@ gimp_file_dialog_add_filters (GimpFileDialog *dialog,
|
|||
|
||||
gimp_file_dialog_process_procedure (file_proc,
|
||||
&filter,
|
||||
all);
|
||||
all, all_savable);
|
||||
if (filter)
|
||||
{
|
||||
gtk_file_chooser_add_filter (GTK_FILE_CHOOSER (dialog),
|
||||
|
@ -824,10 +839,13 @@ gimp_file_dialog_add_filters (GimpFileDialog *dialog,
|
|||
|
||||
gimp_file_dialog_process_procedure (file_proc,
|
||||
NULL,
|
||||
all);
|
||||
all, NULL);
|
||||
}
|
||||
|
||||
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), all);
|
||||
if (all_savable)
|
||||
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), all_savable);
|
||||
else
|
||||
gtk_file_chooser_set_filter (GTK_FILE_CHOOSER (dialog), all);
|
||||
}
|
||||
|
||||
|
||||
|
@ -836,6 +854,7 @@ gimp_file_dialog_add_filters (GimpFileDialog *dialog,
|
|||
* @file_proc:
|
||||
* @filter_out:
|
||||
* @all:
|
||||
* @all_savable:
|
||||
*
|
||||
* Creates a #GtkFileFilter of @file_proc and adds the extensions to
|
||||
* the @all filter. The returned #GtkFileFilter has a normal ref and
|
||||
|
@ -844,7 +863,8 @@ gimp_file_dialog_add_filters (GimpFileDialog *dialog,
|
|||
static void
|
||||
gimp_file_dialog_process_procedure (GimpPlugInProcedure *file_proc,
|
||||
GtkFileFilter **filter_out,
|
||||
GtkFileFilter *all)
|
||||
GtkFileFilter *all,
|
||||
GtkFileFilter *all_savable)
|
||||
{
|
||||
GtkFileFilter *filter = NULL;
|
||||
GString *str = NULL;
|
||||
|
@ -872,6 +892,8 @@ gimp_file_dialog_process_procedure (GimpPlugInProcedure *file_proc,
|
|||
pattern = gimp_file_dialog_pattern_from_extension (extension);
|
||||
gtk_file_filter_add_pattern (filter, pattern);
|
||||
gtk_file_filter_add_pattern (all, pattern);
|
||||
if (all_savable)
|
||||
gtk_file_filter_add_pattern (all_savable, pattern);
|
||||
g_free (pattern);
|
||||
|
||||
if (i == 0)
|
||||
|
|
Loading…
Reference in New Issue