diff options
author | Milan Crha <mcrha@redhat.com> | 2012-12-12 02:48:07 +0800 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2012-12-12 02:48:07 +0800 |
commit | 8a1eb1f24e2a4624d78d3eeb4ab563d9e48ec865 (patch) | |
tree | a1bc41f9d06c7206fc4ba9a217b356966a99a569 /smime/gui/certificate-manager.c | |
parent | c18043684137440e5853d5c952f89751148b6c24 (diff) | |
download | gsoc2013-evolution-8a1eb1f24e2a4624d78d3eeb4ab563d9e48ec865.tar gsoc2013-evolution-8a1eb1f24e2a4624d78d3eeb4ab563d9e48ec865.tar.gz gsoc2013-evolution-8a1eb1f24e2a4624d78d3eeb4ab563d9e48ec865.tar.bz2 gsoc2013-evolution-8a1eb1f24e2a4624d78d3eeb4ab563d9e48ec865.tar.lz gsoc2013-evolution-8a1eb1f24e2a4624d78d3eeb4ab563d9e48ec865.tar.xz gsoc2013-evolution-8a1eb1f24e2a4624d78d3eeb4ab563d9e48ec865.tar.zst gsoc2013-evolution-8a1eb1f24e2a4624d78d3eeb4ab563d9e48ec865.zip |
Use the same certificate-viewer as the trust-prompt from eds
This way it'll be possible to copy whole files if change in one
of them will be done. A real code reuse, rather than copy, would be
ideal, but the trust-prompt is just a module for evolution-user-prompter.
Diffstat (limited to 'smime/gui/certificate-manager.c')
-rw-r--r-- | smime/gui/certificate-manager.c | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/smime/gui/certificate-manager.c b/smime/gui/certificate-manager.c index 548c9c7d79..109bbba515 100644 --- a/smime/gui/certificate-manager.c +++ b/smime/gui/certificate-manager.c @@ -531,7 +531,13 @@ view_cert (GtkWidget *button, -1); if (cert) { - GtkWidget *dialog = certificate_viewer_show (cert); + GtkWidget *dialog, *parent; + + parent = gtk_widget_get_toplevel (button); + if (!parent || !GTK_IS_WINDOW (parent)) + parent = NULL; + + dialog = e_cert_manager_new_certificate_viewer ((GtkWindow *) parent, cert); g_signal_connect ( dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL); @@ -1107,3 +1113,28 @@ e_cert_manager_config_new (EPreferencesWindow *window) return GTK_WIDGET (ecmc); } + +GtkWidget * +e_cert_manager_new_certificate_viewer (GtkWindow *parent, + ECert *cert) +{ + GtkWidget *dialog; + GList *chain, *citer; + GSList *issuers = NULL; + + g_return_val_if_fail (cert != NULL, NULL); + + chain = e_cert_get_issuers_chain (cert); + for (citer = chain; citer; citer = g_list_next (citer)) { + issuers = g_slist_append (issuers, e_cert_get_internal_cert (citer->data)); + } + + dialog = certificate_viewer_new ((GtkWindow *) parent, + e_cert_get_internal_cert (cert), + issuers); + + g_list_free_full (chain, g_object_unref); + g_slist_free (issuers); + + return dialog; +} |