seahorse r2724 - in seahorse-plugins/trunk: . plugins/nautilus
- From: sadam svn gnome org
- To: svn-commits-list gnome org
- Subject: seahorse r2724 - in seahorse-plugins/trunk: . plugins/nautilus
- Date: Sun, 1 Feb 2009 12:28:50 +0000 (UTC)
Author: sadam
Date: Sun Feb 1 12:28:50 2009
New Revision: 2724
URL: http://svn.gnome.org/viewvc/seahorse?rev=2724&view=rev
Log:
2009-02-01 Adam Schreiber <sadam clemson edu>
* plugins/nautilus/seahorse-tool.c: Don't prompt for signer if only
one
private key. Fixes bug #553474
Modified:
seahorse-plugins/trunk/ChangeLog
seahorse-plugins/trunk/plugins/nautilus/seahorse-tool.c
Modified: seahorse-plugins/trunk/plugins/nautilus/seahorse-tool.c
==============================================================================
--- seahorse-plugins/trunk/plugins/nautilus/seahorse-tool.c (original)
+++ seahorse-plugins/trunk/plugins/nautilus/seahorse-tool.c Sun Feb 1 12:28:50 2009
@@ -31,6 +31,7 @@
#include <dbus/dbus-glib-bindings.h>
#include "cryptui.h"
+#include "cryptui-key-store.h"
#include "seahorse-secure-memory.h"
#include "seahorse-tool.h"
@@ -285,26 +286,45 @@
* SIGN
*/
+static gboolean
+signer_filter (CryptUIKeyset *ckset, const gchar *key, gpointer user_data)
+{
+ guint flags = cryptui_keyset_key_flags (ckset, key);
+ return flags & CRYPTUI_FLAG_CAN_SIGN;
+}
+
static gpgme_key_t
prompt_signer ()
{
gpgme_error_t gerr = GPG_OK;
CryptUIKeyset *keyset;
+ CryptUIKeyStore *ckstore;
gpgme_key_t key = NULL;
gpgme_ctx_t ctx = NULL;
gchar *signer;
gchar *id;
+ guint count;
+ GList *keys;
keyset = cryptui_keyset_new ("openpgp", TRUE);
+ ckstore = cryptui_key_store_new (keyset, TRUE, NULL);
+ cryptui_key_store_set_filter (ckstore, signer_filter, NULL);
- if (cryptui_keyset_get_count (keyset) == 0) {
+ count = cryptui_key_store_get_count (ckstore);
+
+ if (count == 0) {
cryptui_need_to_get_keys ();
return NULL;
+ } else if (count == 1) {
+ keys = cryptui_key_store_get_all_keys (ckstore);
+ signer = (gchar*) keys->data;
+ g_list_free (keys);
+ } else {
+ signer = cryptui_prompt_signer (keyset, _("Choose Signer"));
}
- signer = cryptui_prompt_signer (keyset, _("Choose Signer"));
if (signer) {
-
+
id = cryptui_keyset_key_raw_keyid (keyset, signer);
g_free (signer);
@@ -320,7 +340,8 @@
if (!GPG_IS_OK (gerr))
seahorse_util_handle_gpgme (gerr, _("Couldn't load keys"));
}
-
+
+ g_object_unref (ckstore);
g_object_unref (keyset);
return key;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]