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
path: root/src
diff options
context:
space:
mode:
authorbhatman1441 <blackhat1441@protonmail.com>2023-06-16 18:34:04 +0300
committerbhatman1441 <blackhat1441@protonmail.com>2023-06-16 18:34:04 +0300
commitfa20967b583581020e9478233fe68466722eb043 (patch)
tree45ab96266a1836a54365c3e37fb0c7ce582fd3e0 /src
parent7407cc3a27eb25ba4ddddeab565f67fd688324ed (diff)
Remove ssh key file strings from remmina file if check box is unchecked
Diffstat (limited to 'src')
-rw-r--r--src/remmina_file_editor.c38
1 files changed, 30 insertions, 8 deletions
diff --git a/src/remmina_file_editor.c b/src/remmina_file_editor.c
index 477e5196f..f75beef1b 100644
--- a/src/remmina_file_editor.c
+++ b/src/remmina_file_editor.c
@@ -1433,15 +1433,28 @@ static void remmina_file_editor_save_ssh_tunnel_tab(RemminaFileEditor *gfe)
priv->remmina_file,
"ssh_tunnel_auth",
ssh_tunnel_auth);
- remmina_file_set_string(
+
+ // If box is unchecked for private key and certfile file choosers,
+ // set the string to NULL in the remmina file
+ if (gtk_widget_get_sensitive(priv->ssh_tunnel_privatekey_chooser)) {
+ remmina_file_set_string(
priv->remmina_file,
"ssh_tunnel_privatekey",
(priv->ssh_tunnel_privatekey_chooser ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv->ssh_tunnel_privatekey_chooser)) : NULL));
-
- remmina_file_set_string(
- priv->remmina_file,
- "ssh_tunnel_certfile",
- (priv->ssh_tunnel_certfile_chooser ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv->ssh_tunnel_certfile_chooser)) : NULL));
+ }
+ else {
+ remmina_file_set_string(priv->remmina_file, "ssh_tunnel_privatekey", NULL);
+ }
+
+ if (gtk_widget_get_sensitive(priv->ssh_tunnel_certfile_chooser)) {
+ remmina_file_set_string(
+ priv->remmina_file,
+ "ssh_tunnel_certfile",
+ (priv->ssh_tunnel_certfile_chooser ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv->ssh_tunnel_certfile_chooser)) : NULL));
+ }
+ else {
+ remmina_file_set_string(priv->remmina_file, "ssh_tunnel_certfile", NULL);
+ }
remmina_file_set_string(
priv->remmina_file,
@@ -1549,10 +1562,14 @@ static GError *remmina_file_editor_update_settings(RemminaFileEditor * gfe,
g_hash_table_iter_init(&iter, priv->setting_widgets);
while (g_hash_table_iter_next(&iter, &key, &widget)) {
+
// We don't want to save or validate grayed-out settings.
- if (!gtk_widget_get_sensitive(GTK_WIDGET(widget))) {
+ // If widget is a file chooser, it was made not sensitive because
+ // the box was unchecked. In that case, don't continue. The
+ // relevant file strings will be set to NULL in the remmina file.
+ if (!gtk_widget_get_sensitive(GTK_WIDGET(widget)) && !GTK_IS_FILE_CHOOSER(widget)) {
g_debug("Grayed-out setting-widget '%s' will not be saved.",
- gtk_widget_get_name(widget));
+ gtk_widget_get_name(widget));
continue;
}
@@ -1597,6 +1614,11 @@ static GError *remmina_file_editor_update_settings(RemminaFileEditor * gfe,
} else if (GTK_IS_FILE_CHOOSER(widget)) {
gchar *value = gtk_widget_get_sensitive(GTK_WIDGET(widget)) ? gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(widget)) : NULL;
+ if (!gtk_widget_get_sensitive(GTK_WIDGET(widget))) {
+ remmina_file_set_string(priv->remmina_file, (gchar *)key, value);
+ continue;
+ }
+
if (!remmina_file_editor_validate_settings(gfe, (gchar *)key, value, &err)) {
// Error while validating!
// err should be set now.