From 46b0df7692a7b598954374cf8e3d44e5987d6366 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Thu, 19 Sep 2019 15:18:24 -0300 Subject: [PATCH] Fixing bug on file selection dialog. --- src/dialogs/linux/select.c | 48 +++++------------------------------------------- src/dialogs/save/save.c | 4 +--- src/dialogs/transfer.c | 4 +--- src/dialogs/windows/select.c | 2 +- src/filetransfer/activitylist.c | 8 ++------ src/filetransfer/settings.c | 5 +---- src/filetransfer/v3270ft.c | 15 ++++----------- src/include/internals.h | 2 +- src/trace/trace.c | 4 +--- 9 files changed, 17 insertions(+), 75 deletions(-) diff --git a/src/dialogs/linux/select.c b/src/dialogs/linux/select.c index 3ad978c..4a2f0ac 100644 --- a/src/dialogs/linux/select.c +++ b/src/dialogs/linux/select.c @@ -33,12 +33,14 @@ /*--[ Implement ]------------------------------------------------------------------------------------*/ -gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename, const gchar *filter, ...) +gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename) { gchar *rc = NULL; #if GTK_CHECK_VERSION(3,20,0) + debug("%s action=%d",__FUNCTION__,(int) action); + GtkFileChooserNative *native = gtk_file_chooser_native_new ( @@ -54,26 +56,6 @@ gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *bu if(filename && *filename) gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(native),filename); - // Setup filters - va_list args; - va_start (args, filter); - while(filter) - { - const gchar * name = va_arg(args, const gchar *); - if(!name) - break; - - const gchar * pattern = va_arg(args, const gchar *); - if(!pattern) - break; - - GtkFileFilter *filter = gtk_file_filter_new(); - gtk_file_filter_set_name(filter,name); - gtk_file_filter_add_pattern(filter, pattern); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(native), filter); - - } - va_end(args); // Run dialog if(gtk_native_dialog_run(GTK_NATIVE_DIALOG (native)) == GTK_RESPONSE_ACCEPT) { @@ -84,6 +66,8 @@ gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *bu #else + debug("%s action=%d",__FUNCTION__,(int) action); + GtkWidget * chooser = gtk_file_chooser_dialog_new ( @@ -98,34 +82,12 @@ gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *bu if(filename && *filename) gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(chooser),filename); - // Setup filters - va_list args; - va_start (args, filter); - while(filter) - { - const gchar * name = va_arg(args, const gchar *); - if(!name) - break; - - const gchar * pattern = va_arg(args, const gchar *); - if(!pattern) - break; - - GtkFileFilter *filter = gtk_file_filter_new(); - gtk_file_filter_set_name(filter,name); - gtk_file_filter_add_pattern(filter, pattern); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); - - } - va_end(args); - if(gtk_dialog_run(GTK_DIALOG(chooser)) == GTK_RESPONSE_ACCEPT) { rc = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); } gtk_widget_destroy(chooser); - #endif // GTK 3.20 return rc; diff --git a/src/dialogs/save/save.c b/src/dialogs/save/save.c index ce66c4c..d34b741 100644 --- a/src/dialogs/save/save.c +++ b/src/dialogs/save/save.c @@ -113,9 +113,7 @@ static void icon_press(GtkEntry G_GNUC_UNUSED(*entry), G_GNUC_UNUSED GtkEntryIco _( "Select destination file"), _("Select"), GTK_FILE_CHOOSER_ACTION_SAVE, - gtk_entry_get_text(GTK_ENTRY(widget->filename)), - N_("All files"), "*.*", - NULL + gtk_entry_get_text(GTK_ENTRY(widget->filename)) ); if(filename && *filename) { diff --git a/src/dialogs/transfer.c b/src/dialogs/transfer.c index db947c3..7d958a3 100644 --- a/src/dialogs/transfer.c +++ b/src/dialogs/transfer.c @@ -72,9 +72,7 @@ static void save_activity_clicked(GtkWidget *button, GObject *activity) _("Save transfer activity to file"), _("Save"), GTK_FILE_CHOOSER_ACTION_SAVE, - NULL, - N_("XML file"), "*.xml", - NULL ); + NULL); if(filename) { diff --git a/src/dialogs/windows/select.c b/src/dialogs/windows/select.c index d50508a..4333bd4 100644 --- a/src/dialogs/windows/select.c +++ b/src/dialogs/windows/select.c @@ -145,7 +145,7 @@ gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *bu } */ -gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename, const gchar *filter, ...) +gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename) { gchar *rc = NULL; diff --git a/src/filetransfer/activitylist.c b/src/filetransfer/activitylist.c index 361fa86..02c3a5d 100644 --- a/src/filetransfer/activitylist.c +++ b/src/filetransfer/activitylist.c @@ -382,9 +382,7 @@ widget, _("Load queue from file"), _("Load"), GTK_FILE_CHOOSER_ACTION_OPEN, - "", - N_("XML file"), "*.xml", - NULL ); + ""); if(filename) { g_free(list->filename); @@ -454,9 +452,7 @@ _("Save queue to file"), _("Save"), GTK_FILE_CHOOSER_ACTION_SAVE, - list->filename, - N_("XML file"), "*.xml", - NULL ); + list->filename); if(filename) { g_free(list->filename); diff --git a/src/filetransfer/settings.c b/src/filetransfer/settings.c index 043ae0b..32ea56c 100644 --- a/src/filetransfer/settings.c +++ b/src/filetransfer/settings.c @@ -208,10 +208,7 @@ static void open_select_file_dialog(GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconP _("Select local file"), _("Select"), GTK_FILE_CHOOSER_ACTION_OPEN, - gtk_entry_get_text(entry), - N_("All files"), "*.*", - N_("Text files"), "*.txt", - NULL + gtk_entry_get_text(entry) ); if(filename) { diff --git a/src/filetransfer/v3270ft.c b/src/filetransfer/v3270ft.c index 797a01a..1b13a9d 100644 --- a/src/filetransfer/v3270ft.c +++ b/src/filetransfer/v3270ft.c @@ -196,9 +196,7 @@ static void load_file(G_GNUC_UNUSED GtkButton *button, v3270ft *dialog) { GTK_WIDGET(dialog), _("Load queue from file"), _("Load"), GTK_FILE_CHOOSER_ACTION_OPEN, - "", - N_("XML file"), "*.xml", - NULL ); + ""); if(filename) { v3270ft_load(GTK_WIDGET(dialog),filename); @@ -216,9 +214,7 @@ static void save_file(G_GNUC_UNUSED GtkButton *button, v3270ft *dialog) { _("Save queue to file"), _("Save"), GTK_FILE_CHOOSER_ACTION_SAVE, - "", - N_("XML file"), "*.xml", - NULL ); + ""); if(filename) { v3270ft_save(GTK_WIDGET(dialog),filename); @@ -299,17 +295,14 @@ static gboolean spin_format(GtkSpinButton *spin, G_GNUC_UNUSED gpointer data) { static void icon_press(G_GNUC_UNUSED GtkEntry *entry, G_GNUC_UNUSED GtkEntryIconPosition icon_pos, G_GNUC_UNUSED GdkEvent *event, v3270ft *dialog) { //#endif // WIN32 - debug("%s",__FUNCTION__); + debug("%s: action=%d",__FUNCTION__, (int) GTK_FILE_CHOOSER_ACTION_OPEN); gchar *filename = v3270_select_file( GTK_WIDGET(dialog), _("Select local file"), _("Select"), GTK_FILE_CHOOSER_ACTION_OPEN, - gtk_entry_get_text(dialog->local), - N_("All files"), "*.*", - N_("Text files"), "*.txt", - NULL ); + gtk_entry_get_text(dialog->local)); if(filename) { diff --git a/src/include/internals.h b/src/include/internals.h index 454678c..e539960 100644 --- a/src/include/internals.h +++ b/src/include/internals.h @@ -142,7 +142,7 @@ G_GNUC_INTERNAL void v3270_activity_list_save(GtkWidget *widget); G_GNUC_INTERNAL void v3270_activity_list_save_as(GtkWidget *widget); - G_GNUC_INTERNAL gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename, const gchar *filter, ... ) G_GNUC_NULL_TERMINATED; + G_GNUC_INTERNAL gchar * v3270_select_file(GtkWidget *widget, const gchar *title, const gchar *button, GtkFileChooserAction action, const gchar *filename); #if ! GTK_CHECK_VERSION(3,16,0) G_GNUC_INTERNAL void gtk_text_view_set_monospace (GtkTextView *text_view, gboolean monospace); diff --git a/src/trace/trace.c b/src/trace/trace.c index ceb61dd..989c2b5 100644 --- a/src/trace/trace.c +++ b/src/trace/trace.c @@ -497,9 +497,7 @@ _("Save trace to file"), _("Save"), GTK_FILE_CHOOSER_ACTION_SAVE, - trace->filename, - N_("Text file"), "*.txt", - NULL + trace->filename ); if(filename) { -- libgit2 0.21.2