Maemo: Added a widget to "unselect" a certificate.
This commit is contained in:
@@ -248,6 +248,10 @@ strongswan_connection_save_to_key_file (GKeyFile *key_file,
|
|||||||
{
|
{
|
||||||
g_key_file_set_string (key_file, name, "cert", priv->cert);
|
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)
|
if (priv->user)
|
||||||
{
|
{
|
||||||
g_key_file_set_string (key_file, name, "user", priv->user);
|
g_key_file_set_string (key_file, name, "user", priv->user);
|
||||||
|
|||||||
@@ -34,18 +34,48 @@ struct {
|
|||||||
StrongswanConnections *conns;
|
StrongswanConnections *conns;
|
||||||
} ListDialog = { 0, };
|
} 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
|
* Callback to select a certificate
|
||||||
*/
|
*/
|
||||||
void select_cert(HildonButton *button, gpointer user_data)
|
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 *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);
|
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));
|
case GTK_RESPONSE_OK:
|
||||||
hildon_button_set_value (button, file);
|
{
|
||||||
g_free(file);
|
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);
|
gtk_widget_destroy (selector);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user