aboutsummaryrefslogtreecommitdiffstats
path: root/smime/gui/certificate-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'smime/gui/certificate-manager.c')
-rw-r--r--smime/gui/certificate-manager.c55
1 files changed, 49 insertions, 6 deletions
diff --git a/smime/gui/certificate-manager.c b/smime/gui/certificate-manager.c
index 94698d2264..a59f8a0d96 100644
--- a/smime/gui/certificate-manager.c
+++ b/smime/gui/certificate-manager.c
@@ -33,6 +33,7 @@
#include <glade/glade.h>
#include "evolution-config-control.h"
+#include "ca-trust-dialog.h"
#include "certificate-manager.h"
#include "certificate-viewer.h"
@@ -192,8 +193,12 @@ view_your (GtkWidget *widget, CertificateManagerData *cfm)
4, &cert,
-1);
- if (cert)
- certificate_viewer_show (cert);
+ if (cert) {
+ GtkWidget *dialog = certificate_viewer_show (cert);
+ g_signal_connect (dialog, "response",
+ G_CALLBACK (gtk_widget_destroy), NULL);
+ gtk_widget_show (dialog);
+ }
}
}
@@ -305,8 +310,12 @@ view_contact (GtkWidget *widget, CertificateManagerData *cfm)
3, &cert,
-1);
- if (cert)
- certificate_viewer_show (cert);
+ if (cert) {
+ GtkWidget *dialog = certificate_viewer_show (cert);
+ g_signal_connect (dialog, "response",
+ G_CALLBACK (gtk_widget_destroy), NULL);
+ gtk_widget_show (dialog);
+ }
}
}
@@ -452,8 +461,39 @@ view_ca (GtkWidget *widget, CertificateManagerData *cfm)
1, &cert,
-1);
- if (cert)
- certificate_viewer_show (cert);
+ if (cert) {
+ GtkWidget *dialog = certificate_viewer_show (cert);
+ g_signal_connect (dialog, "response",
+ G_CALLBACK (gtk_widget_destroy), NULL);
+ gtk_widget_show (dialog);
+ }
+ }
+}
+
+static void
+edit_ca (GtkWidget *widget, CertificateManagerData *cfm)
+{
+ GtkTreeIter iter;
+
+ if (gtk_tree_selection_get_selected (gtk_tree_view_get_selection (GTK_TREE_VIEW(cfm->authoritycerts_treeview)),
+ NULL,
+ &iter)) {
+ ECert *cert;
+
+ gtk_tree_model_get (GTK_TREE_MODEL (cfm->authoritycerts_streemodel),
+ &iter,
+ 1, &cert,
+ -1);
+
+ if (cert) {
+ GtkWidget *dialog = ca_trust_dialog_show (cert, FALSE);
+
+ gtk_dialog_run (GTK_DIALOG (dialog));
+
+ /* XXX more stuff here surely */
+
+ gtk_widget_destroy (dialog);
+ }
}
}
@@ -556,6 +596,9 @@ initialize_authoritycerts_ui (CertificateManagerData *cfm)
if (cfm->view_ca_button)
g_signal_connect (cfm->view_ca_button, "clicked", G_CALLBACK (view_ca), cfm);
+ if (cfm->edit_ca_button)
+ g_signal_connect (cfm->edit_ca_button, "clicked", G_CALLBACK (edit_ca), cfm);
+
if (cfm->import_ca_button)
g_signal_connect (cfm->import_ca_button, "clicked", G_CALLBACK (import_ca), cfm);