From: Tobias Brunner Date: Thu, 14 Oct 2010 15:01:08 +0000 (+0200) Subject: Maemo: Added a widget to "unselect" a certificate. X-Git-Tag: 4.5.0~40 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=070b63d7046ce1c5cd181037ea2c1e33524cfe91;p=thirdparty%2Fstrongswan.git Maemo: Added a widget to "unselect" a certificate. --- diff --git a/src/frontends/maemo/src/strongswan-connection.c b/src/frontends/maemo/src/strongswan-connection.c index 977c0f5a3e..c7d0db355d 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 07f58dc2c4..9773590f6c 100644 --- a/src/frontends/maemo/src/strongswan-settings.c +++ b/src/frontends/maemo/src/strongswan-settings.c @@ -34,18 +34,48 @@ struct { StrongswanConnections *conns; } 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); }