From 8cda6025f0a11278c8d2f01482ad1656a2b5e5b1 Mon Sep 17 00:00:00 2001 From: Lucas Rocha Date: Mon, 21 Apr 2008 20:47:38 +0000 Subject: Add support for file filter in file selection dialog through the new 2008-04-21 Lucas Rocha Add support for file filter in file selection dialog through the new --file-filter command line option (Fixes bug #409843). * src/option.c, src/zenity.h: added supporting variable and new GOptionEntry entry for the new command line option. * src/fileselection.c (zenity_fileselection): add file filters based on command line input. svn path=/trunk/; revision=1362 --- src/option.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src/option.c') diff --git a/src/option.c b/src/option.c index b56d5f09..9cbf490c 100644 --- a/src/option.c +++ b/src/option.c @@ -61,10 +61,11 @@ static gboolean zenity_error_active; static gboolean zenity_info_active; /* File Selection Dialog Options */ -static gboolean zenity_file_active; -static gboolean zenity_file_directory; -static gboolean zenity_file_save; -static gboolean zenity_file_confirm_overwrite; +static gboolean zenity_file_active; +static gboolean zenity_file_directory; +static gboolean zenity_file_save; +static gboolean zenity_file_confirm_overwrite; +static GtkFileFilter *zenity_file_filter; /* List Dialog Options */ static gboolean zenity_list_active; @@ -394,6 +395,15 @@ static GOptionEntry file_selection_options[] = { N_("Confirm file selection if filename already exists"), NULL }, + { + "file-filter", + '\0', + 0, + G_OPTION_ARG_STRING_ARRAY, + &zenity_file_filter, + N_("Sets a filename filter"), + N_("NAME | PATTERN1 PATTERN2 ..."), + }, { NULL } @@ -981,6 +991,7 @@ zenity_file_pre_callback (GOptionContext *context, zenity_file_directory = FALSE; zenity_file_save = FALSE; zenity_file_confirm_overwrite = FALSE; + zenity_file_filter = NULL; return TRUE; } @@ -1233,6 +1244,7 @@ zenity_file_post_callback (GOptionContext *context, results->file_data->save = zenity_file_save; results->file_data->confirm_overwrite = zenity_file_confirm_overwrite; results->file_data->separator = zenity_general_separator; + results->file_data->filter = zenity_file_filter; } else { if (zenity_file_directory) zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_directory), @@ -1241,6 +1253,10 @@ zenity_file_post_callback (GOptionContext *context, if (zenity_file_save) zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_save), ERROR_SUPPORT); + + if (zenity_file_filter) + zenity_option_error (zenity_option_get_name (file_selection_options, &zenity_file_filter), + ERROR_SUPPORT); } return TRUE; -- cgit