Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/Remmina/Remmina.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrobxnano <12855608-robxnano@users.noreply.gitlab.com>2023-11-07 18:35:42 +0300
committerrobxnano <12855608-robxnano@users.noreply.gitlab.com>2023-11-08 20:32:16 +0300
commitde799c43940ee4a792dfacfe926bed07173f5f4e (patch)
treea4b11aa7ce9c64f35b26e623b1d95270adaf6715
parent5855830865ba9c4a6fb7598eab654569ccf50902 (diff)
Add filters to import/export file choosers
-rw-r--r--src/remmina_main.c23
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