diff options
author | Tobias Brunner <tobias@strongswan.org> | 2010-10-14 17:01:08 +0200 |
---|---|---|
committer | Tobias Brunner <tobias@strongswan.org> | 2010-10-14 17:36:20 +0200 |
commit | 070b63d7046ce1c5cd181037ea2c1e33524cfe91 (patch) | |
tree | b038826d4c45a7477bb3e4cd84595ed35834847a | |
parent | 889c7947a6e832cf32d2aa4a47e6100204354144 (diff) | |
download | strongswan-070b63d7046ce1c5cd181037ea2c1e33524cfe91.tar.bz2 strongswan-070b63d7046ce1c5cd181037ea2c1e33524cfe91.tar.xz |
Maemo: Added a widget to "unselect" a certificate.
-rw-r--r-- | src/frontends/maemo/src/strongswan-connection.c | 4 | ||||
-rw-r--r-- | src/frontends/maemo/src/strongswan-settings.c | 38 |
2 files changed, 38 insertions, 4 deletions
diff --git a/src/frontends/maemo/src/strongswan-connection.c b/src/frontends/maemo/src/strongswan-connection.c index 977c0f5a3..c7d0db355 100644 --- a/src/frontends/maemo/src/strongswan-connection.c +++ b/src/frontends/maemo/src/strongswan-connection.c @@ -248,6 +248,10 @@ strongswan_connection_save_to_key_file (GKeyFile *key_file, { g_key_file_set_string (key_file, name, "cert", priv->cert); } + else + { + g_key_file_remove_key (key_file, name, "cert", NULL); + } if (priv->user) { g_key_file_set_string (key_file, name, "user", priv->user); diff --git a/src/frontends/maemo/src/strongswan-settings.c b/src/frontends/maemo/src/strongswan-settings.c index 07f58dc2c..9773590f6 100644 --- a/src/frontends/maemo/src/strongswan-settings.c +++ b/src/frontends/maemo/src/strongswan-settings.c @@ -35,17 +35,47 @@ struct { } ListDialog = { 0, }; /** + * Callback if no certificate should be selected + */ +void no_certificate(HildonButton *button, gpointer user_data) +{ + gtk_dialog_response (GTK_DIALOG (user_data), GTK_RESPONSE_REJECT); +} + +/** * Callback to select a certificate */ void select_cert(HildonButton *button, gpointer user_data) { GtkWidget *selector = hildon_file_chooser_dialog_new (GTK_WINDOW (user_data), GTK_FILE_CHOOSER_ACTION_OPEN); + GtkWidget *nocert = hildon_button_new (HILDON_SIZE_FINGER_HEIGHT | + HILDON_SIZE_AUTO_WIDTH, + HILDON_BUTTON_ARRANGEMENT_VERTICAL); + hildon_button_set_text (HILDON_BUTTON (nocert), + "No certificate", + "Use system-wide CA certificates"); + hildon_button_set_alignment (HILDON_BUTTON (nocert), 0, 0.5, 1, 1); + g_signal_connect (nocert, "clicked", G_CALLBACK (no_certificate), selector); + hildon_file_chooser_dialog_add_extra (HILDON_FILE_CHOOSER_DIALOG (selector), + nocert); gtk_widget_show_all (selector); - if (gtk_dialog_run (GTK_DIALOG (selector)) == GTK_RESPONSE_OK) + + switch (gtk_dialog_run (GTK_DIALOG (selector))) { - gchar *file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (selector)); - hildon_button_set_value (button, file); - g_free(file); + case GTK_RESPONSE_OK: + { + gchar *file = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (selector)); + hildon_button_set_value (button, file); + g_free(file); + break; + } + case GTK_RESPONSE_REJECT: + { + hildon_button_set_value (button, "None"); + break; + } + default: + break; } gtk_widget_destroy (selector); } |