app: show relevant files only by default.

Just like it was until now, the default filtering should not be all
files, but only relevant files (i.e. XCF when saving, exportable images
when exporting and loadable images/XCF when opening).
Now all files will only be available through the "Show All Files"
checkbox.

This is simpler than previous implementations where the list was
proposing "All Files", "All Images" and "All XCF/export images". That is
just too much.

With this default, I get the "All Files" checkbox out of the expander so
that it is visible immediately even when the format list is unexpanded
(you don't want people to get pissed when not finding how to display all
their files).
This commit is contained in:
Jehan 2018-07-25 16:50:05 +02:00
parent 6369445874
commit 6b4b3bad13
2 changed files with 22 additions and 26 deletions

View File

@ -732,25 +732,23 @@ gimp_file_dialog_add_proc_selection (GimpFileDialog *dialog)
GtkWidget *scrolled_window;
GtkWidget *checkbox;
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1);
gimp_file_dialog_add_extra_widget (dialog, box, TRUE, TRUE, 0);
gtk_widget_show (box);
dialog->proc_expander = gtk_expander_new_with_mnemonic (NULL);
gtk_expander_set_resize_toplevel (GTK_EXPANDER (dialog->proc_expander), TRUE);
gtk_widget_set_hexpand (GTK_WIDGET (dialog->proc_expander), TRUE);
gimp_file_dialog_add_extra_widget (dialog,
dialog->proc_expander,
TRUE, TRUE, 0);
gtk_box_pack_end (GTK_BOX (box), dialog->proc_expander, FALSE, FALSE, 1);
gtk_widget_show (dialog->proc_expander);
box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 1);
gtk_container_add (GTK_CONTAINER (dialog->proc_expander), box);
gtk_widget_show (box);
/* The list of file formats. */
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window),
GTK_SHADOW_IN);
gtk_box_pack_start (GTK_BOX (box), scrolled_window, TRUE, TRUE, 1);
gtk_container_add (GTK_CONTAINER (dialog->proc_expander), scrolled_window);
gtk_widget_show (scrolled_window);
gtk_widget_set_size_request (scrolled_window, -1, 200);
@ -772,7 +770,7 @@ gimp_file_dialog_add_proc_selection (GimpFileDialog *dialog)
checkbox = gimp_prop_check_button_new (G_OBJECT (dialog),
"show-all-files",
_("Show All Files"));
gtk_box_pack_start (GTK_BOX (box), checkbox, FALSE, FALSE, 1);
gtk_box_pack_end (GTK_BOX (box), checkbox, FALSE, FALSE, 1);
gtk_widget_show (checkbox);
}
@ -804,12 +802,7 @@ gimp_file_dialog_proc_changed (GimpFileProcView *view,
if (name)
{
gchar *label;
if (dialog->show_all_files)
label = g_strdup_printf (_("Select File _Type (%s) - Show All Files"), name);
else
label = g_strdup_printf (_("Select File _Type (%s)"), name);
gchar *label = g_strdup_printf (_("Select File _Type (%s)"), name);
gtk_expander_set_label (GTK_EXPANDER (dialog->proc_expander), label);

View File

@ -61,7 +61,8 @@ static void gimp_file_proc_view_finalize (GObject
static void gimp_file_proc_view_selection_changed (GtkTreeSelection *selection,
GimpFileProcView *view);
static GtkFileFilter * gimp_file_proc_view_process_procedure (GimpPlugInProcedure *file_proc);
static GtkFileFilter * gimp_file_proc_view_process_procedure (GimpPlugInProcedure *file_proc,
GtkFileFilter *all);
static gchar * gimp_file_proc_view_pattern_from_extension (const gchar *extension);
@ -116,6 +117,7 @@ gimp_file_proc_view_new (Gimp *gimp,
const gchar *automatic,
const gchar *automatic_help_id)
{
GtkFileFilter *all_filter;
GtkTreeView *view;
GtkTreeViewColumn *column;
GtkCellRenderer *cell;
@ -139,6 +141,8 @@ gimp_file_proc_view_new (Gimp *gimp,
g_object_unref (store);
all_filter = gtk_file_filter_new ();
for (list = procedures; list; list = g_slist_next (list))
{
GimpPlugInProcedure *proc = list->data;
@ -153,7 +157,7 @@ gimp_file_proc_view_new (Gimp *gimp,
{
GtkFileFilter *filter;
filter = gimp_file_proc_view_process_procedure (proc);
filter = gimp_file_proc_view_process_procedure (proc, all_filter);
gtk_list_store_append (store, &iter);
gtk_list_store_set (store, &iter,
COLUMN_PROC, proc,
@ -182,18 +186,12 @@ gimp_file_proc_view_new (Gimp *gimp,
if (automatic)
{
GtkFileFilter *filter = gtk_file_filter_new ();
gtk_list_store_prepend (store, &iter);
gtk_file_filter_set_name (filter, _("All files"));
gtk_file_filter_add_pattern (filter, "*");
gtk_list_store_set (store, &iter,
COLUMN_PROC, NULL,
COLUMN_LABEL, automatic,
COLUMN_HELP_ID, automatic_help_id,
COLUMN_FILTER, filter,
COLUMN_FILTER, all_filter,
-1);
}
@ -353,13 +351,16 @@ gimp_file_proc_view_selection_changed (GtkTreeSelection *selection,
/**
* gimp_file_proc_view_process_procedure:
* @file_proc:
* @all:
*
* Creates a #GtkFileFilter of @file_proc.
* Creates a #GtkFileFilter of @file_proc and adds the extensions to
* the @all filter.
* The returned #GtkFileFilter has a normal ref and must be unreffed
* when used.
**/
static GtkFileFilter *
gimp_file_proc_view_process_procedure (GimpPlugInProcedure *file_proc)
gimp_file_proc_view_process_procedure (GimpPlugInProcedure *file_proc,
GtkFileFilter *all)
{
GtkFileFilter *filter;
GString *str;
@ -382,6 +383,7 @@ gimp_file_proc_view_process_procedure (GimpPlugInProcedure *file_proc)
const gchar *mime_type = list->data;
gtk_file_filter_add_mime_type (filter, mime_type);
gtk_file_filter_add_mime_type (all, mime_type);
}
for (list = file_proc->extensions_list, i = 0;
@ -393,6 +395,7 @@ gimp_file_proc_view_process_procedure (GimpPlugInProcedure *file_proc)
pattern = gimp_file_proc_view_pattern_from_extension (extension);
gtk_file_filter_add_pattern (filter, pattern);
gtk_file_filter_add_pattern (all, pattern);
g_free (pattern);
if (i == 0)