diff options
author | robxnano <12855608-robxnano@users.noreply.gitlab.com> | 2023-11-07 18:35:42 +0300 |
---|---|---|
committer | robxnano <12855608-robxnano@users.noreply.gitlab.com> | 2023-11-08 20:32:16 +0300 |
commit | de799c43940ee4a792dfacfe926bed07173f5f4e (patch) | |
tree | a4b11aa7ce9c64f35b26e623b1d95270adaf6715 | |
parent | 5855830865ba9c4a6fb7598eab654569ccf50902 (diff) |
Add filters to import/export file choosers
-rw-r--r-- | src/remmina_main.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/remmina_main.c b/src/remmina_main.c index 64c42aeec..f55d280cb 100644 --- a/src/remmina_main.c +++ b/src/remmina_main.c @@ -1231,6 +1231,27 @@ static void remmina_main_action_tools_import_on_response(GtkNativeDialog *dialog gtk_native_dialog_destroy(dialog); } +static void remmina_set_file_chooser_filters(GtkFileChooser *chooser) +{ + GtkFileFilter *filter; + + g_return_if_fail(GTK_IS_FILE_CHOOSER(chooser)); + + filter = gtk_file_filter_new(); + gtk_file_filter_set_name(filter, _("RDP Files")); + gtk_file_filter_add_pattern(filter, "*.rdp"); + gtk_file_filter_add_pattern(filter, "*.rdpx"); + gtk_file_filter_add_pattern(filter, "*.RDP"); + gtk_file_filter_add_pattern(filter, "*.RDPX"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser), filter); + gtk_file_chooser_set_filter(GTK_FILE_CHOOSER(chooser), filter); + + filter = gtk_file_filter_new(); + gtk_file_filter_set_name(filter, _("All Files")); + gtk_file_filter_add_pattern(filter, "*"); + gtk_file_chooser_add_filter(chooser, filter); +} + void remmina_main_on_action_tools_import(GSimpleAction *action, GVariant *param, gpointer data) { TRACE_CALL(__func__); @@ -1239,6 +1260,7 @@ void remmina_main_on_action_tools_import(GSimpleAction *action, GVariant *param, chooser = gtk_file_chooser_native_new(_("Import"), remminamain->window, GTK_FILE_CHOOSER_ACTION_OPEN, _("Import"), _("_Cancel")); gtk_native_dialog_set_modal(GTK_NATIVE_DIALOG(chooser), TRUE); + remmina_set_file_chooser_filters(GTK_FILE_CHOOSER(chooser)); gtk_file_chooser_set_select_multiple(GTK_FILE_CHOOSER(chooser), TRUE); g_signal_connect(chooser, "response", G_CALLBACK(remmina_main_action_tools_import_on_response), NULL); gtk_native_dialog_show(GTK_NATIVE_DIALOG(chooser)); @@ -1288,6 +1310,7 @@ void remmina_main_on_action_tools_export(GSimpleAction *action, GVariant *param, chooser = gtk_file_chooser_native_new(plugin->export_hints, remminamain->window, GTK_FILE_CHOOSER_ACTION_SAVE, _("_Save"), _("_Cancel")); gtk_native_dialog_set_modal(GTK_NATIVE_DIALOG(chooser), TRUE); + remmina_set_file_chooser_filters(GTK_FILE_CHOOSER(chooser)); g_signal_connect(chooser, "response", G_CALLBACK(on_export_save_response), remminafile); gtk_native_dialog_show(GTK_NATIVE_DIALOG(chooser)); } else |