From 1dc76861d81c012c80871738ae6d18ed4fc881fe Mon Sep 17 00:00:00 2001 From: Not Zed Date: Fri, 28 May 2004 07:52:37 +0000 Subject: ** See bugs #52061 & #52669. 2004-05-28 Not Zed ** See bugs #52061 & #52669. * gui/smime-ui.glade: added cert-trust-dialog and tweaked the ca-trust-dialog. * gui/ca-trust-dialog.c (ca_trust_dialog_show): Fix the %s in the label. Slack. (ca_trust_dialog_show): slight rearrangement. * gui/certificate-manager.c (add_contact_cert): fill out fields. * lib/e-cert.c (e_cert_get_usage): helper to get the usage of a cert. * gui/certificate-manager.c (edit_ca): use the right certdb, not the e-one. (add_user_cert): fill out missing columns. * lib/e-cert.c (e_cert_get_ca_cert): new method to find the ca cert of a cert. * gui/cert-trust-dialog.[ch]: peer cert trust editor. * gui/certificate-manager.c (edit_contact): implement. svn path=/trunk/; revision=26119 --- smime/gui/certificate-manager.c | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) (limited to 'smime/gui/certificate-manager.c') diff --git a/smime/gui/certificate-manager.c b/smime/gui/certificate-manager.c index f291fffea4..81a392f463 100644 --- a/smime/gui/certificate-manager.c +++ b/smime/gui/certificate-manager.c @@ -34,10 +34,12 @@ #include #include "evolution-config-control.h" #include "ca-trust-dialog.h" +#include "cert-trust-dialog.h" #include "certificate-manager.h" #include "certificate-viewer.h" #include "e-cert.h" +#include "e-cert-trust.h" #include "e-cert-db.h" #include "nss.h" @@ -319,6 +321,30 @@ view_contact (GtkWidget *widget, CertificateManagerData *cfm) } } +static void +edit_contact (GtkWidget *widget, CertificateManagerData *cfm) +{ + GtkTreeIter iter; + + if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->contactcerts_treeview)), + NULL, + &iter)) { + ECert *cert; + + gtk_tree_model_get (GTK_TREE_MODEL (cfm->contactcerts_streemodel), + &iter, + 3, &cert, + -1); + + if (cert) { + GtkWidget *dialog = cert_trust_dialog_show (cert); + g_signal_connect (dialog, "response", + G_CALLBACK (gtk_widget_destroy), NULL); + gtk_widget_show (dialog); + } + } +} + static void import_contact (GtkWidget *widget, CertificateManagerData *cfm) { @@ -438,6 +464,9 @@ initialize_contactcerts_ui (CertificateManagerData *cfm) if (cfm->view_contact_button) g_signal_connect (cfm->view_contact_button, "clicked", G_CALLBACK (view_contact), cfm); + if (cfm->edit_contact_button) + g_signal_connect (cfm->edit_contact_button, "clicked", G_CALLBACK (edit_contact), cfm); + if (cfm->import_contact_button) g_signal_connect (cfm->import_contact_button, "clicked", G_CALLBACK (import_contact), cfm); @@ -508,7 +537,7 @@ edit_ca (GtkWidget *widget, CertificateManagerData *cfm) trust_email, trust_objsign); - CERT_ChangeCertTrust (e_cert_db_peek (), icert, &trust); + CERT_ChangeCertTrust (CERT_GetDefaultCertDB(), icert, &trust); } gtk_widget_destroy (dialog); @@ -654,11 +683,17 @@ add_user_cert (CertificateManagerData *cfm, ECert *cert) if (e_cert_get_cn (cert)) gtk_tree_store_set (GTK_TREE_STORE (model), &iter, 0, e_cert_get_cn (cert), + 1, e_cert_get_usage(cert), + 2, e_cert_get_serial_number(cert), + 3, e_cert_get_expires_on(cert), 4, cert, -1); else gtk_tree_store_set (GTK_TREE_STORE (model), &iter, 0, e_cert_get_nickname (cert), + 1, e_cert_get_usage(cert), + 2, e_cert_get_serial_number(cert), + 3, e_cert_get_expires_on(cert), 4, cert, -1); } @@ -693,12 +728,14 @@ add_contact_cert (CertificateManagerData *cfm, ECert *cert) gtk_tree_store_set (GTK_TREE_STORE (model), &iter, 0, e_cert_get_cn (cert), 1, e_cert_get_email (cert), + 2, e_cert_get_usage(cert), 3, cert, -1); else gtk_tree_store_set (GTK_TREE_STORE (model), &iter, 0, e_cert_get_nickname (cert), 1, e_cert_get_email (cert), + 2, e_cert_get_usage(cert), 3, cert, -1); } -- cgit v1.2.3