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 20:15:10 +0300
committerbhatman1441 <blackhat1441@protonmail.com>2023-06-16 20:15:10 +0300
commit6db25f95778d3d3c69a96fc39d449d9be99d630b (patch)
tree9a8abe4c204f658b9ef356484573530ef71a2447 /src
parent8a7e8b43eb4cdf5b12ac9a33c5c45f99b1a07c87 (diff)
parent91c8f395691d40d665993b77df3d784337da3c4f (diff)
Merge branch 'uncheck-ssh-files' into 'master'
Remove SSH file paths from remmina file when unchecking box in profile edit See merge request Remmina/Remmina!2506
Diffstat (limited to 'src')
-rw-r--r--src/remmina_file_editor.c40
1 files changed, 30 insertions, 10 deletions
diff --git a/src/remmina_file_editor.c b/src/remmina_file_editor.c
index 63de7acf4..89f0f1e44 100644
--- a/src/remmina_file_editor.c
+++ b/src/remmina_file_editor.c
@@ -389,8 +389,6 @@ static void remmina_file_editor_ssh_tunnel_enabled_check_on_toggled(GtkToggleBut
gtk_widget_set_sensitive(GTK_WIDGET(gfe->priv->ssh_tunnel_username_entry), enabled);
gtk_widget_set_sensitive(GTK_WIDGET(gfe->priv->ssh_tunnel_auth_password), enabled);
gtk_widget_set_sensitive(GTK_WIDGET(gfe->priv->ssh_tunnel_auth_combo), enabled);
- gtk_widget_set_sensitive(GTK_WIDGET(gfe->priv->ssh_tunnel_privatekey_chooser), enabled);
- gtk_widget_set_sensitive(GTK_WIDGET(gfe->priv->ssh_tunnel_certfile_chooser), enabled);
//}
g_free(p);
}
@@ -1418,15 +1416,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,
@@ -1534,10 +1545,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;
}
@@ -1582,6 +1597,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.