diff options
author | Chris Toshok <toshok@ximian.com> | 2004-05-01 05:04:15 +0800 |
---|---|---|
committer | Chris Toshok <toshok@src.gnome.org> | 2004-05-01 05:04:15 +0800 |
commit | 343d0d815a4b59c13316e7125ef392be7ccdefcb (patch) | |
tree | 118be876a19402602d108772a0324c869a9efe56 /smime/gui | |
parent | 5135f65c83b0256b275a4166c3dbfbe4315509b7 (diff) | |
download | gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.tar.gz gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.tar.zst gsoc2013-evolution-343d0d815a4b59c13316e7125ef392be7ccdefcb.zip |
[ fixes bug #52724 ]
2004-04-30 Chris Toshok <toshok@ximian.com>
[ fixes bug #52724 ]
* gui/ca-trust-dialog.c (ca_trust_dialog_set_trust): new function,
set the toggle buttons' states.
* gui/ca-trust-dialog.h (ca_trust_dialog_set_trust): add
prototype.
* gui/certificate-manager.c (edit_ca): flesh out the rest of the
editing here. set the existing trust levels and get them back
from the dialog when OK is clicked (and store them to the cert
db.)
svn path=/trunk/; revision=25726
Diffstat (limited to 'smime/gui')
-rw-r--r-- | smime/gui/ca-trust-dialog.c | 14 | ||||
-rw-r--r-- | smime/gui/ca-trust-dialog.h | 1 | ||||
-rw-r--r-- | smime/gui/certificate-manager.c | 27 |
3 files changed, 38 insertions, 4 deletions
diff --git a/smime/gui/ca-trust-dialog.c b/smime/gui/ca-trust-dialog.c index 2e97653601..b59e189b9e 100644 --- a/smime/gui/ca-trust-dialog.c +++ b/smime/gui/ca-trust-dialog.c @@ -99,6 +99,20 @@ ca_trust_dialog_show (ECert *cert, gboolean importing) } void +ca_trust_dialog_set_trust (GtkWidget *widget, gboolean ssl, gboolean email, gboolean objsign) +{ + CATrustDialogData *ctd_data; + + ctd_data = g_object_get_data (G_OBJECT (widget), "CATrustDialogData"); + if (!ctd_data) + return; + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ctd_data->ssl_checkbutton), ssl); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ctd_data->email_checkbutton), email); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (ctd_data->objsign_checkbutton), objsign); +} + +void ca_trust_dialog_get_trust (GtkWidget *widget, gboolean *ssl, gboolean *email, gboolean *objsign) { CATrustDialogData *ctd_data; diff --git a/smime/gui/ca-trust-dialog.h b/smime/gui/ca-trust-dialog.h index e15d98170a..8345da2901 100644 --- a/smime/gui/ca-trust-dialog.h +++ b/smime/gui/ca-trust-dialog.h @@ -28,6 +28,7 @@ GtkWidget* ca_trust_dialog_show (ECert *cert, gboolean importing); +void ca_trust_dialog_set_trust (GtkWidget *widget, gboolean ssl, gboolean email, gboolean objsign); void ca_trust_dialog_get_trust (GtkWidget *widget, gboolean *ssl, gboolean *email, gboolean *objsign); #endif /* _CA_TRUST_DIALOG_H_ */ diff --git a/smime/gui/certificate-manager.c b/smime/gui/certificate-manager.c index a59f8a0d96..f291fffea4 100644 --- a/smime/gui/certificate-manager.c +++ b/smime/gui/certificate-manager.c @@ -487,10 +487,29 @@ edit_ca (GtkWidget *widget, CertificateManagerData *cfm) if (cert) { GtkWidget *dialog = ca_trust_dialog_show (cert, FALSE); - - gtk_dialog_run (GTK_DIALOG (dialog)); - - /* XXX more stuff here surely */ + CERTCertificate *icert = e_cert_get_internal_cert (cert); + + ca_trust_dialog_set_trust (dialog, + e_cert_trust_has_trusted_ca (icert->trust, TRUE, FALSE, FALSE), + e_cert_trust_has_trusted_ca (icert->trust, FALSE, TRUE, FALSE), + e_cert_trust_has_trusted_ca (icert->trust, FALSE, FALSE, TRUE)); + + if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_OK) { + gboolean trust_ssl, trust_email, trust_objsign; + CERTCertTrust trust; + + ca_trust_dialog_get_trust (dialog, + &trust_ssl, &trust_email, &trust_objsign); + + e_cert_trust_init (&trust); + e_cert_trust_set_valid_ca (&trust); + e_cert_trust_add_ca_trust (&trust, + trust_ssl, + trust_email, + trust_objsign); + + CERT_ChangeCertTrust (e_cert_db_peek (), icert, &trust); + } gtk_widget_destroy (dialog); } |