[git] GPA - branch, master, updated. gpa-0.9.10-26-g83227b8

by Werner Koch cvs at cvs.gnupg.org
Tue Oct 16 13:03:34 CEST 2018


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Assistant".

The branch, master has been updated
       via  83227b81ae3f61d68526a87998498ec2f7b95334 (commit)
       via  1ca0eb42967a9cc822eadb295f8dacc770d816de (commit)
       via  210c7c375df1222e2e10c0ea44e8b62a1ad569fa (commit)
      from  38bdae22d127e05903310ea1596d97c562ecd7c5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 83227b81ae3f61d68526a87998498ec2f7b95334
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Oct 16 13:03:25 2018 +0200

    In --locate-key mode ley Retrieve_Key not search in Local.
    
    * src/gpaimportserverop.c (search_keys): Do not search in local
    keyring.
    * src/gparecvkeydlg.c (gpa_receive_key_dialog_init): Make Enter work
    in the input field.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/src/gpaimportserverop.c b/src/gpaimportserverop.c
index a99a961..9b2cac1 100644
--- a/src/gpaimportserverop.c
+++ b/src/gpaimportserverop.c
@@ -136,6 +136,7 @@ search_keys (GpaImportOperation *operation, const char *keyid)
 
   keyarray = g_malloc0_n (MAX_KEYSEARCH_RESULTS + 1, sizeof *keyarray);
 
+
   /* We need to use a separate context because the operation's context
      has already been setup and the done signal would relate to the
      actual import operation done later.  */
@@ -152,6 +153,9 @@ search_keys (GpaImportOperation *operation, const char *keyid)
       /* We already extracted the mbox - use it directly than letting
        * gnupg extract it.  */
       keyid = mbox;
+
+      gpgme_set_ctx_flag (context->ctx, "auto-key-locate",
+                          "clear,nodefault,wkd,keyserver");
     }
 #endif /* GPGME >= 1.7.1 */
   err = gpgme_set_keylist_mode (context->ctx, listmode);
diff --git a/src/gparecvkeydlg.c b/src/gparecvkeydlg.c
index 758190e..21d7821 100644
--- a/src/gparecvkeydlg.c
+++ b/src/gparecvkeydlg.c
@@ -112,6 +112,7 @@ gpa_receive_key_dialog_init (GpaReceiveKeyDialog *dialog)
 		      TRUE, 10);
 
   dialog->entry = gtk_entry_new ();
+  gtk_entry_set_activates_default (GTK_ENTRY (dialog->entry), TRUE);
   if (is_gpg_version_at_least ("2.1.0"))
     {
       gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox),

commit 1ca0eb42967a9cc822eadb295f8dacc770d816de
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Oct 16 12:20:50 2018 +0200

    Add more details buttons to error dialogs.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/src/gpaexportop.c b/src/gpaexportop.c
index d20f785..7275c94 100644
--- a/src/gpaexportop.c
+++ b/src/gpaexportop.c
@@ -284,7 +284,7 @@ gpa_export_operation_done_error_cb (GpaContext *context, gpg_error_t err,
       /* Ignore these */
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpafileencryptop.c b/src/gpafileencryptop.c
index a76c4e0..5bb6574 100644
--- a/src/gpafileencryptop.c
+++ b/src/gpafileencryptop.c
@@ -772,10 +772,11 @@ gpa_file_encrypt_operation_done_error_cb (GpaContext *context, gpg_error_t err,
       /* Ignore these */
       break;
     case GPG_ERR_BAD_PASSPHRASE:
-      gpa_window_error (_("Wrong passphrase!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("Wrong passphrase!"));
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpafileimportop.c b/src/gpafileimportop.c
index bb78c3f..48cfc18 100644
--- a/src/gpafileimportop.c
+++ b/src/gpafileimportop.c
@@ -289,7 +289,7 @@ gpa_file_import_operation_done_error_cb (GpaContext *context, gpg_error_t err,
       break;
 
     case GPG_ERR_NO_DATA:
-      gpa_show_warn (GPA_OPERATION (op)->window, NULL,
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
                         file_item->direct_name
                         ? _("\"%s\" contained no OpenPGP data.")
                         : _("The file \"%s\" contained no OpenPGP"
@@ -300,12 +300,13 @@ gpa_file_import_operation_done_error_cb (GpaContext *context, gpg_error_t err,
       break;
 
     default:
-      gpa_show_warn (GPA_OPERATION (op)->window, NULL,
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
                         _("Error importing \"%s\": %s <%s>"),
                         file_item->direct_name
                         ? file_item->direct_name
                         : file_item->filename_in,
                         gpg_strerror (err), gpg_strsource (err));
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpafilesignop.c b/src/gpafilesignop.c
index b926d17..ebdadd7 100644
--- a/src/gpafilesignop.c
+++ b/src/gpafilesignop.c
@@ -525,10 +525,11 @@ gpa_file_sign_operation_done_error_cb (GpaContext *context, gpg_error_t err,
       /* Ignore these */
       break;
     case GPG_ERR_BAD_PASSPHRASE:
-      gpa_window_error (_("Wrong passphrase!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("Wrong passphrase!"));
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpafileverifyop.c b/src/gpafileverifyop.c
index 67fc412..13022da 100644
--- a/src/gpafileverifyop.c
+++ b/src/gpafileverifyop.c
@@ -469,7 +469,6 @@ gpa_file_verify_operation_done_error_cb (GpaContext *context, gpg_error_t err,
 					 GpaFileVerifyOperation *op)
 {
   gpa_file_item_t file_item = GPA_FILE_OPERATION (op)->current->data;
-  gchar *message;
 
   switch (gpg_err_code (err))
     {
@@ -478,22 +477,21 @@ gpa_file_verify_operation_done_error_cb (GpaContext *context, gpg_error_t err,
       /* Ignore these */
       break;
     case GPG_ERR_NO_DATA:
-      message = g_strdup_printf (file_item->direct_name
-				 ? _("\"%s\" contained no OpenPGP data.")
-				 : _("The file \"%s\" contained no OpenPGP"
-				     "data."),
-				 file_item->direct_name
-				 ? file_item->direct_name
-				 : file_item->filename_in);
-
-      gpa_window_error (message, GPA_OPERATION (op)->window);
-      g_free (message);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     file_item->direct_name
+                     ? _("\"%s\" contained no OpenPGP data.")
+                     : _("The file \"%s\" contained no OpenPGP"
+                         "data."),
+                     file_item->direct_name
+                     ? file_item->direct_name
+                     : file_item->filename_in);
       break;
     case GPG_ERR_BAD_PASSPHRASE:
-      gpa_window_error (_("Wrong passphrase!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("Wrong passphrase!"));
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpagenkeyadvop.c b/src/gpagenkeyadvop.c
index 3ad1d69..cd802bf 100644
--- a/src/gpagenkeyadvop.c
+++ b/src/gpagenkeyadvop.c
@@ -29,10 +29,10 @@
 
 static GObjectClass *parent_class = NULL;
 
-static void gpa_gen_key_advanced_operation_done_cb (GpaContext *context, 
+static void gpa_gen_key_advanced_operation_done_cb (GpaContext *context,
 						    gpg_error_t err,
 						    GpaGenKeyAdvancedOperation *op);
-static void gpa_gen_key_advanced_operation_done_error_cb (GpaContext *context, 
+static void gpa_gen_key_advanced_operation_done_error_cb (GpaContext *context,
 							  gpg_error_t err,
 							  GpaGenKeyAdvancedOperation *op);
 
@@ -95,7 +95,7 @@ static void
 gpa_gen_key_advanced_operation_class_init (GpaGenKeyAdvancedOperationClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  
+
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->constructor = gpa_gen_key_advanced_operation_constructor;
@@ -106,7 +106,7 @@ GType
 gpa_gen_key_advanced_operation_get_type (void)
 {
   static GType operation_type = 0;
-  
+
   if (!operation_type)
     {
       static const GTypeInfo operation_info =
@@ -121,22 +121,22 @@ gpa_gen_key_advanced_operation_get_type (void)
         0,              /* n_preallocs */
         (GInstanceInitFunc) gpa_gen_key_advanced_operation_init,
       };
-      
+
       operation_type = g_type_register_static (GPA_GEN_KEY_OPERATION_TYPE,
 					       "GpaGenKeyAdvancedOperation",
 					       &operation_info, 0);
     }
-  
+
   return operation_type;
 }
 
 /* API */
 
-GpaGenKeyAdvancedOperation* 
+GpaGenKeyAdvancedOperation*
 gpa_gen_key_advanced_operation_new (GtkWidget *window)
 {
   GpaGenKeyAdvancedOperation *op;
-  
+
   op = g_object_new (GPA_GEN_KEY_ADVANCED_OPERATION_TYPE,
 		     "window", window, NULL);
 
@@ -151,7 +151,7 @@ gpa_gen_key_advanced_operation_idle_cb (gpointer data)
   GpaGenKeyAdvancedOperation *op = data;
   gpg_error_t err;
   gpa_keygen_para_t *parms;
-  
+
   parms = gpa_key_gen_run_dialog (GPA_OPERATION (op)->window, NULL);
   if (!parms)
     g_signal_emit_by_name (op, "completed", gpg_error (GPG_ERR_CANCELED));
@@ -171,7 +171,7 @@ gpa_gen_key_advanced_operation_idle_cb (gpointer data)
 
 
 static void
-gpa_gen_key_advanced_operation_done_cb (GpaContext *context, 
+gpa_gen_key_advanced_operation_done_cb (GpaContext *context,
 					gpg_error_t err,
 					GpaGenKeyAdvancedOperation *op)
 {
@@ -185,7 +185,7 @@ gpa_gen_key_advanced_operation_done_cb (GpaContext *context,
 
 
 static void
-gpa_gen_key_advanced_operation_done_error_cb (GpaContext *context, 
+gpa_gen_key_advanced_operation_done_error_cb (GpaContext *context,
 					      gpg_error_t err,
 					      GpaGenKeyAdvancedOperation *op)
 {
@@ -196,7 +196,7 @@ gpa_gen_key_advanced_operation_done_error_cb (GpaContext *context,
       /* Ignore these */
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpagenkeycardop.c b/src/gpagenkeycardop.c
index 1746776..24914d9 100644
--- a/src/gpagenkeycardop.c
+++ b/src/gpagenkeycardop.c
@@ -31,11 +31,11 @@
 
 static GObjectClass *parent_class = NULL;
 
-static void gpa_gen_key_card_operation_done_cb (GpaContext *context, 
+static void gpa_gen_key_card_operation_done_cb (GpaContext *context,
 						    gpg_error_t err,
 						    GpaGenKeyCardOperation *op);
 
-static void gpa_gen_key_card_operation_done_error_cb (GpaContext *context, 
+static void gpa_gen_key_card_operation_done_error_cb (GpaContext *context,
 							  gpg_error_t err,
 							  GpaGenKeyCardOperation *op);
 
@@ -102,7 +102,7 @@ static void
 gpa_gen_key_card_operation_class_init (GpaGenKeyCardOperationClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  
+
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->constructor = gpa_gen_key_card_operation_constructor;
@@ -113,7 +113,7 @@ GType
 gpa_gen_key_card_operation_get_type (void)
 {
   static GType operation_type = 0;
-  
+
   if (!operation_type)
     {
       static const GTypeInfo operation_info =
@@ -128,22 +128,22 @@ gpa_gen_key_card_operation_get_type (void)
         0,              /* n_preallocs */
         (GInstanceInitFunc) gpa_gen_key_card_operation_init,
       };
-      
+
       operation_type = g_type_register_static (GPA_GEN_KEY_OPERATION_TYPE,
 					       "GpaGenKeyCardOperation",
 					       &operation_info, 0);
     }
-  
+
   return operation_type;
 }
 
 /* API */
 
-GpaGenKeyCardOperation* 
+GpaGenKeyCardOperation*
 gpa_gen_key_card_operation_new (GtkWidget *window, const char *keyattr)
 {
   GpaGenKeyCardOperation *op;
-  
+
   op = g_object_new (GPA_GEN_KEY_CARD_OPERATION_TYPE,
 		     "window", window, NULL);
   op->key_attributes = g_strdup (keyattr);
@@ -158,8 +158,8 @@ gpa_gen_key_card_operation_idle_cb (gpointer data)
 {
   GpaGenKeyCardOperation *op = data;
   gpg_error_t err;
-  
-  op->parms = gpa_key_gen_run_dialog 
+
+  op->parms = gpa_key_gen_run_dialog
     (GPA_OPERATION (op)->window, op->key_attributes? op->key_attributes : "");
 
   if (!op->parms)
@@ -181,7 +181,7 @@ gpa_gen_key_card_operation_idle_cb (gpointer data)
 
 
 static void
-gpa_gen_key_card_operation_done_cb (GpaContext *context, 
+gpa_gen_key_card_operation_done_cb (GpaContext *context,
 				    gpg_error_t err,
 				    GpaGenKeyCardOperation *op)
 {
@@ -197,7 +197,7 @@ gpa_gen_key_card_operation_done_cb (GpaContext *context,
 
 
 static void
-gpa_gen_key_card_operation_done_error_cb (GpaContext *context, 
+gpa_gen_key_card_operation_done_error_cb (GpaContext *context,
 					  gpg_error_t err,
 					  GpaGenKeyCardOperation *op)
 {
@@ -209,11 +209,13 @@ gpa_gen_key_card_operation_done_error_cb (GpaContext *context,
       break;
 
     case GPG_ERR_BAD_PIN:
-      gpa_window_error (gpg_strerror (err), NULL);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     "%s", gpg_strerror (err));
       break;
 
     default:
-      gpa_gpgme_warning_ext (err, op->parms? op->parms->r_error_desc : NULL);
+      gpa_gpgme_warn (err, op->parms? op->parms->r_error_desc : NULL,
+                      GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpagenkeysimpleop.c b/src/gpagenkeysimpleop.c
index a298ac7..43b0d44 100644
--- a/src/gpagenkeysimpleop.c
+++ b/src/gpagenkeysimpleop.c
@@ -221,7 +221,7 @@ gpa_gen_key_simple_operation_done_error_cb (GpaContext *context,
       /* Ignore these */
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpaimportop.c b/src/gpaimportop.c
index 15b38cd..9117326 100644
--- a/src/gpaimportop.c
+++ b/src/gpaimportop.c
@@ -248,7 +248,7 @@ gpa_import_operation_done_error_cb (GpaContext *context, gpg_error_t err,
       /* Ignore these */
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpaimportserverop.c b/src/gpaimportserverop.c
index 7e347a2..a99a961 100644
--- a/src/gpaimportserverop.c
+++ b/src/gpaimportserverop.c
@@ -124,7 +124,7 @@ search_keys (GpaImportOperation *operation, const char *keyid)
 {
   gpg_error_t err;
   gboolean result = FALSE;
-  gpgme_ctx_t ctx;
+  GpaContext *context;
   gpgme_key_t key;
   gpgme_key_t *keyarray;
   int i, nkeys;
@@ -136,11 +136,11 @@ search_keys (GpaImportOperation *operation, const char *keyid)
 
   keyarray = g_malloc0_n (MAX_KEYSEARCH_RESULTS + 1, sizeof *keyarray);
 
-  /* We need to use a separate context because the operaion's context
+  /* We need to use a separate context because the operation's context
      has already been setup and the done signal would relate to the
      actual import operation done later.  */
-  ctx = gpa_gpgme_new ();
-  gpgme_set_protocol (ctx, GPGME_PROTOCOL_OpenPGP);
+  context = gpa_context_new ();
+  gpgme_set_protocol (context->ctx, GPGME_PROTOCOL_OpenPGP);
   /* Switch to extern-only or locate list mode.  We use --locate-key
    * iff KEYID is a single mail address.  */
   listmode = GPGME_KEYLIST_MODE_EXTERN;
@@ -154,19 +154,19 @@ search_keys (GpaImportOperation *operation, const char *keyid)
       keyid = mbox;
     }
 #endif /* GPGME >= 1.7.1 */
-  err = gpgme_set_keylist_mode (ctx, listmode);
+  err = gpgme_set_keylist_mode (context->ctx, listmode);
   if (err)
     gpa_gpgme_error (err);
 
   /* List keys matching the given keyid.  Actually all kind of search
      specifications can be given.  */
   nkeys = 0;
-  err = gpgme_op_keylist_start (ctx, keyid, 0);
-  while (!err && !(err = gpgme_op_keylist_next (ctx, &key)))
+  err = gpgme_op_keylist_start (context->ctx, keyid, 0);
+  while (!err && !(err = gpgme_op_keylist_next (context->ctx, &key)))
     {
       if (nkeys >= MAX_KEYSEARCH_RESULTS)
         {
-          gpa_show_warn (GPA_OPERATION (operation)->window, NULL,
+          gpa_show_warn (GPA_OPERATION (operation)->window, context,
                             _("More than %d keys match your search pattern.\n"
                               "Use the long keyid or a fingerprint "
                               "for a better match"), nkeys);
@@ -176,14 +176,14 @@ search_keys (GpaImportOperation *operation, const char *keyid)
         }
       keyarray[nkeys++] = key;
     }
-  gpgme_op_keylist_end (ctx);
+  gpgme_op_keylist_end (context->ctx);
   if (gpg_err_code (err) == GPG_ERR_EOF)
     err = 0;
 
   if (!err && !nkeys)
     {
-      gpa_show_warn (GPA_OPERATION (operation)->window, NULL,
-                        _("No keys were found."));
+      gpa_show_warn (GPA_OPERATION (operation)->window, context,
+                     _("No keys were found."));
     }
   else if (!err)
     {
@@ -192,9 +192,9 @@ search_keys (GpaImportOperation *operation, const char *keyid)
       result = TRUE;
     }
   else if (gpg_err_code (err) != GPG_ERR_TRUNCATED)
-    gpa_gpgme_warning (err);
+    gpa_gpgme_warn (err, NULL, context);
 
-  gpgme_release (ctx);
+  g_object_unref (context);
   if (keyarray)
     {
       for (i=0; keyarray[i]; i++)
diff --git a/src/gpakeydeleteop.c b/src/gpakeydeleteop.c
index c41c206..de0b2f7 100644
--- a/src/gpakeydeleteop.c
+++ b/src/gpakeydeleteop.c
@@ -206,7 +206,7 @@ static void gpa_key_delete_operation_done_error_cb (GpaContext *context,
       /* Ignore these */
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpakeyexpireop.c b/src/gpakeyexpireop.c
index 677b7c1..981f42b 100644
--- a/src/gpakeyexpireop.c
+++ b/src/gpakeyexpireop.c
@@ -38,10 +38,10 @@
 
 /* Internal functions */
 static gboolean gpa_key_expire_operation_idle_cb (gpointer data);
-static void gpa_key_expire_operation_done_error_cb (GpaContext *context, 
+static void gpa_key_expire_operation_done_error_cb (GpaContext *context,
 						    gpg_error_t err,
 						    GpaKeyExpireOperation *op);
-static void gpa_key_expire_operation_done_cb (GpaContext *context, 
+static void gpa_key_expire_operation_done_cb (GpaContext *context,
 					      gpg_error_t err,
 					      GpaKeyExpireOperation *op);
 
@@ -101,7 +101,7 @@ static void
 gpa_key_expire_operation_class_init (GpaKeyExpireOperationClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  
+
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->constructor = gpa_key_expire_operation_constructor;
@@ -124,7 +124,7 @@ GType
 gpa_key_expire_operation_get_type (void)
 {
   static GType key_expire_operation_type = 0;
-  
+
   if (!key_expire_operation_type)
     {
       static const GTypeInfo key_expire_operation_info =
@@ -139,12 +139,12 @@ gpa_key_expire_operation_get_type (void)
         0,              /* n_preallocs */
         (GInstanceInitFunc) gpa_key_expire_operation_init,
       };
-      
-      key_expire_operation_type = g_type_register_static 
+
+      key_expire_operation_type = g_type_register_static
 	(GPA_KEY_OPERATION_TYPE, "GpaKeyExpireOperation",
 	 &key_expire_operation_info, 0);
     }
-  
+
   return key_expire_operation_type;
 }
 
@@ -156,7 +156,7 @@ GpaKeyExpireOperation*
 gpa_key_expire_operation_new (GtkWidget *window, GList *keys)
 {
   GpaKeyExpireOperation *op;
-  
+
   op = g_object_new (GPA_KEY_EXPIRE_OPERATION_TYPE,
 		     "window", window,
 		     "keys", keys,
@@ -169,7 +169,7 @@ gpa_key_expire_operation_new (GtkWidget *window, GList *keys)
 
 static gpg_error_t
 gpa_key_expire_operation_start (GpaKeyExpireOperation *op)
-{ 
+{
   gpg_error_t err;
   gpgme_key_t key;
   GDate *date;
@@ -224,8 +224,8 @@ gpa_key_expire_operation_next (GpaKeyExpireOperation *op)
 }
 
 
-static void 
-gpa_key_expire_operation_done_error_cb (GpaContext *context, 
+static void
+gpa_key_expire_operation_done_error_cb (GpaContext *context,
                                         gpg_error_t err,
                                         GpaKeyExpireOperation *op)
 {
@@ -237,28 +237,29 @@ gpa_key_expire_operation_done_error_cb (GpaContext *context,
       /* Ignore these */
       break;
     case GPG_ERR_BAD_PASSPHRASE:
-      gpa_window_error (_("Wrong passphrase!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("Wrong passphrase!"));
       break;
     case GPG_ERR_INV_TIME:
-      gpa_window_error 
-        (_("Invalid time given.\n"
-           "(you may not set the expiration time to the past.)"),
-         GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("Invalid time given.\n"
+                       "(you may not set the expiration time to the past.)"));
       break;
     default:
       gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
 
-static void 
+static void
 gpa_key_expire_operation_done_cb (GpaContext *context,
                                   gpg_error_t err,
                                   GpaKeyExpireOperation *op)
 {
   if (! err)
     /* The expiration was changed.  */
-    g_signal_emit_by_name (op, "new_expiration", 
+    g_signal_emit_by_name (op, "new_expiration",
 			   GPA_KEY_OPERATION (op)->current->data, op->date);
 
   /* Clean previous date.  */
diff --git a/src/gpakeypasswdop.c b/src/gpakeypasswdop.c
index 537f70c..d6bc0b0 100644
--- a/src/gpakeypasswdop.c
+++ b/src/gpakeypasswdop.c
@@ -37,10 +37,10 @@
 
 /* Internal functions */
 static gboolean gpa_key_passwd_operation_idle_cb (gpointer data);
-static void gpa_key_passwd_operation_done_error_cb (GpaContext *context, 
+static void gpa_key_passwd_operation_done_error_cb (GpaContext *context,
 						    gpg_error_t err,
 						    GpaKeyPasswdOperation *op);
-static void gpa_key_passwd_operation_done_cb (GpaContext *context, 
+static void gpa_key_passwd_operation_done_cb (GpaContext *context,
 					      gpg_error_t err,
 					      GpaKeyPasswdOperation *op);
 
@@ -90,7 +90,7 @@ static void
 gpa_key_passwd_operation_class_init (GpaKeyPasswdOperationClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  
+
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->constructor = gpa_key_passwd_operation_constructor;
@@ -101,7 +101,7 @@ GType
 gpa_key_passwd_operation_get_type (void)
 {
   static GType key_passwd_operation_type = 0;
-  
+
   if (!key_passwd_operation_type)
     {
       static const GTypeInfo key_passwd_operation_info =
@@ -116,12 +116,12 @@ gpa_key_passwd_operation_get_type (void)
         0,              /* n_preallocs */
         (GInstanceInitFunc) gpa_key_passwd_operation_init,
       };
-      
-      key_passwd_operation_type = g_type_register_static 
+
+      key_passwd_operation_type = g_type_register_static
 	(GPA_KEY_OPERATION_TYPE, "GpaKeyPasswdOperation",
 	 &key_passwd_operation_info, 0);
     }
-  
+
   return key_passwd_operation_type;
 }
 
@@ -133,7 +133,7 @@ GpaKeyPasswdOperation*
 gpa_key_passwd_operation_new (GtkWidget *window, GList *keys)
 {
   GpaKeyPasswdOperation *op;
-  
+
   op = g_object_new (GPA_KEY_PASSWD_OPERATION_TYPE,
 		     "window", window,
 		     "keys", keys,
@@ -146,7 +146,7 @@ gpa_key_passwd_operation_new (GtkWidget *window, GList *keys)
 
 static gpg_error_t
 gpa_key_passwd_operation_start (GpaKeyPasswdOperation *op)
-{ 
+{
   gpg_error_t err;
   gpgme_key_t key;
 
@@ -172,7 +172,7 @@ gpa_key_passwd_operation_idle_cb (gpointer data)
 
   err = gpa_key_passwd_operation_start (op);
 
-  if (err) 
+  if (err)
     g_signal_emit_by_name (GPA_OPERATION (op), "completed", err);
 
   return FALSE;
@@ -195,7 +195,7 @@ gpa_key_passwd_operation_next (GpaKeyPasswdOperation *op)
 }
 
 
-static void gpa_key_passwd_operation_done_error_cb (GpaContext *context, 
+static void gpa_key_passwd_operation_done_error_cb (GpaContext *context,
 						  gpg_error_t err,
 						  GpaKeyPasswdOperation *op)
 {
@@ -206,15 +206,16 @@ static void gpa_key_passwd_operation_done_error_cb (GpaContext *context,
       /* Ignore these */
       break;
     case GPG_ERR_BAD_PASSPHRASE:
-      gpa_window_error (_("Wrong passphrase!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("Wrong passphrase!"));
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
 
-static void gpa_key_passwd_operation_done_cb (GpaContext *context, 
+static void gpa_key_passwd_operation_done_cb (GpaContext *context,
 					      gpg_error_t err,
 					      GpaKeyPasswdOperation *op)
 {
diff --git a/src/gpakeysignop.c b/src/gpakeysignop.c
index ede4be8..ed85565 100644
--- a/src/gpakeysignop.c
+++ b/src/gpakeysignop.c
@@ -237,24 +237,25 @@ gpa_key_sign_operation_done_error_cb (GpaContext *context,
       /* Ignore these */
       break;
     case GPG_ERR_BAD_PASSPHRASE:
-      gpa_window_error (_("Wrong passphrase!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("Wrong passphrase!"));
       break;
     case GPG_ERR_UNUSABLE_PUBKEY:
       /* Couldn't sign because the key was expired */
-      gpa_window_error (_("This key has expired! "
-			  "Unable to sign."), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("This key has expired! Unable to sign."));
       break;
     case GPG_ERR_CONFLICT:
-      gpa_window_error (_("This key has already been signed with "
-			  "your own!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("This key has already been signed with your own!"));
       break;
     case GPG_ERR_NO_SECKEY:
       /* Couldn't sign because there is no default key */
-      gpa_window_error (_("You haven't selected a default key "
-			  "to sign with!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("You haven't selected a default key to sign with!"));
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpakeytrustop.c b/src/gpakeytrustop.c
index b5af37a..7be97d5 100644
--- a/src/gpakeytrustop.c
+++ b/src/gpakeytrustop.c
@@ -38,10 +38,10 @@
 
 /* Internal functions */
 static gboolean gpa_key_trust_operation_idle_cb (gpointer data);
-static void gpa_key_trust_operation_done_error_cb (GpaContext *context, 
+static void gpa_key_trust_operation_done_error_cb (GpaContext *context,
 						    gpg_error_t err,
 						    GpaKeyTrustOperation *op);
-static void gpa_key_trust_operation_done_cb (GpaContext *context, 
+static void gpa_key_trust_operation_done_cb (GpaContext *context,
 					      gpg_error_t err,
 					      GpaKeyTrustOperation *op);
 
@@ -92,7 +92,7 @@ static void
 gpa_key_trust_operation_class_init (GpaKeyTrustOperationClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  
+
   parent_class = g_type_class_peek_parent (klass);
 
   object_class->constructor = gpa_key_trust_operation_constructor;
@@ -103,7 +103,7 @@ GType
 gpa_key_trust_operation_get_type (void)
 {
   static GType key_trust_operation_type = 0;
-  
+
   if (!key_trust_operation_type)
     {
       static const GTypeInfo key_trust_operation_info =
@@ -118,12 +118,12 @@ gpa_key_trust_operation_get_type (void)
         0,              /* n_preallocs */
         (GInstanceInitFunc) gpa_key_trust_operation_init,
       };
-      
-      key_trust_operation_type = g_type_register_static 
+
+      key_trust_operation_type = g_type_register_static
 	(GPA_KEY_OPERATION_TYPE, "GpaKeyTrustOperation",
 	 &key_trust_operation_info, 0);
     }
-  
+
   return key_trust_operation_type;
 }
 
@@ -135,7 +135,7 @@ GpaKeyTrustOperation*
 gpa_key_trust_operation_new (GtkWidget *window, GList *keys)
 {
   GpaKeyTrustOperation *op;
-  
+
   op = g_object_new (GPA_KEY_TRUST_OPERATION_TYPE,
 		     "window", window,
 		     "keys", keys,
@@ -148,7 +148,7 @@ gpa_key_trust_operation_new (GtkWidget *window, GList *keys)
 
 static gpg_error_t
 gpa_key_trust_operation_start (GpaKeyTrustOperation *op)
-{ 
+{
   gpg_error_t err;
   gpgme_key_t key;
   gpgme_validity_t trust;
@@ -202,7 +202,7 @@ gpa_key_trust_operation_next (GpaKeyTrustOperation *op)
 }
 
 
-static void gpa_key_trust_operation_done_error_cb (GpaContext *context, 
+static void gpa_key_trust_operation_done_error_cb (GpaContext *context,
 						  gpg_error_t err,
 						  GpaKeyTrustOperation *op)
 {
@@ -214,12 +214,12 @@ static void gpa_key_trust_operation_done_error_cb (GpaContext *context,
       /* Ignore these */
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
 
-static void gpa_key_trust_operation_done_cb (GpaContext *context, 
+static void gpa_key_trust_operation_done_cb (GpaContext *context,
 					      gpg_error_t err,
 					      GpaKeyTrustOperation *op)
 {
diff --git a/src/gpastreamencryptop.c b/src/gpastreamencryptop.c
index 70a5e24..1db8448 100644
--- a/src/gpastreamencryptop.c
+++ b/src/gpastreamencryptop.c
@@ -455,7 +455,7 @@ done_error_cb (GpaContext *context, gpg_error_t err,
 /*       gpa_window_error (_("Wrong passphrase!"), GPA_OPERATION (op)->window); */
 /*       break; */
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpastreamsignop.c b/src/gpastreamsignop.c
index a19b0a3..907967e 100644
--- a/src/gpastreamsignop.c
+++ b/src/gpastreamsignop.c
@@ -422,10 +422,11 @@ done_error_cb (GpaContext *context, gpg_error_t err,
       /* Ignore these */
       break;
     case GPG_ERR_BAD_PASSPHRASE:
-      gpa_window_error (_("Wrong passphrase!"), GPA_OPERATION (op)->window);
+      gpa_show_warn (GPA_OPERATION (op)->window, GPA_OPERATION (op)->context,
+                     _("Wrong passphrase!"));
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }
diff --git a/src/gpastreamverifyop.c b/src/gpastreamverifyop.c
index 6aacc5f..4c6ffac 100644
--- a/src/gpastreamverifyop.c
+++ b/src/gpastreamverifyop.c
@@ -255,7 +255,7 @@ done_error_cb (GpaContext *context, gpg_error_t err,
       /* Ignore these */
       break;
     default:
-      gpa_gpgme_warning (err);
+      gpa_gpgme_warn (err, NULL, GPA_OPERATION (op)->context);
       break;
     }
 }

commit 210c7c375df1222e2e10c0ea44e8b62a1ad569fa
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Oct 16 11:38:12 2018 +0200

    Make diagnostic dialog scrollable.
    
    * src/gpacontext.c (gpa_context_get_diag): Prepend version info.
    * src/gtktools.c (create_diagnostics_dialog): New.
    (show_gtk_message): Use new dialog.
    
    Signed-off-by: Werner Koch <wk at gnupg.org>

diff --git a/src/gpacontext.c b/src/gpacontext.c
index 72d532f..951e7d1 100644
--- a/src/gpacontext.c
+++ b/src/gpacontext.c
@@ -248,8 +248,10 @@ gpa_context_get_diag (GpaContext *context)
 {
 #if GPGME_VERSION_NUMBER >= 0x010c00 /* >= 1.12 */
   gpgme_data_t diag;
-  char *buffer, *result;
+  char *info, *buffer, *result;
   gpg_error_t err;
+  gpgme_engine_info_t engine;
+  gpgme_protocol_t proto;
 
   if (!context)
     return NULL;
@@ -265,12 +267,24 @@ gpa_context_get_diag (GpaContext *context)
       return NULL;  /* No data.  */
     }
 
+  proto = gpgme_get_protocol (context->ctx);
+  gpgme_get_engine_info (&engine);
+  for (; engine; engine = engine->next)
+    if (engine->protocol == proto)
+      break;
+  info = g_strdup_printf ("[GPA %s, GPGME %s, GnuPG %s]\n",
+                          VERSION,
+                          gpgme_check_version (NULL),
+                          engine? engine->version : "?");
+
   /* Append a trailing zero and return the string.  */
   gpgme_data_seek (diag, 0, SEEK_END);
   gpgme_data_write (diag, "", 1);
   buffer = gpgme_data_release_and_get_mem (diag, NULL);
-  result = g_strdup (buffer);
+  result = g_strconcat (info, buffer, NULL);
   gpgme_free (buffer);
+  g_free (info);
+
   return result;
 #else
   return NULL;
diff --git a/src/gtktools.c b/src/gtktools.c
index b0f9ba8..2116769 100644
--- a/src/gtktools.c
+++ b/src/gtktools.c
@@ -50,11 +50,56 @@ gpa_window_message (const gchar *message, GtkWidget * messenger)
 }
 
 
+/* Create a dialog with a textview containing STRING.  */
+static GtkWidget *
+create_diagnostics_dialog (GtkWidget *parent, const char *string)
+{
+  GtkWidget *widget, *scrollwidget, *textview;
+  GtkDialog *dialog;
+  GtkTextBuffer *textbuffer;
+
+  widget = gtk_dialog_new_with_buttons ("Diagnostics",
+                                        parent? GTK_WINDOW (parent):NULL,
+                                        GTK_DIALOG_MODAL,
+                                        GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL,
+                                        NULL);
+  dialog = GTK_DIALOG (widget);
+  gtk_dialog_set_has_separator (dialog, FALSE);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
+  gtk_box_set_spacing (GTK_BOX (dialog->vbox), 2);
+  gtk_container_set_border_width (GTK_CONTAINER (dialog->action_area), 5);
+  gtk_window_set_default_size (GTK_WINDOW (dialog), 570, 320);
+  gtk_dialog_set_default_response (dialog, GTK_RESPONSE_CANCEL);
+
+  scrollwidget = gtk_scrolled_window_new (NULL, NULL);
+  gtk_container_set_border_width (GTK_CONTAINER (scrollwidget), 5);
+  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrollwidget),
+                                       GTK_SHADOW_IN);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollwidget),
+                                  GTK_POLICY_AUTOMATIC,
+                                  GTK_POLICY_AUTOMATIC);
+  gtk_box_pack_start (GTK_BOX (dialog->vbox), scrollwidget, TRUE, TRUE, 0);
+
+  textview = gtk_text_view_new ();
+  gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview), GTK_WRAP_NONE);
+  gtk_text_view_set_editable (GTK_TEXT_VIEW (textview), FALSE);
+  gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (textview), FALSE);
+  textbuffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview));
+  gtk_text_buffer_set_text (textbuffer, string, -1);
+
+  gtk_container_add (GTK_CONTAINER (scrollwidget), textview);
+
+  gtk_widget_show_all (widget);
+
+  return widget;
+}
+
+
 static void
 show_gtk_message (GtkWidget *parent, GtkMessageType mtype, GpaContext *ctx,
                   const char *format, va_list arg_ptr)
 {
-  GtkWidget *dialog;
+  GtkWidget *dialog, *dialog2;
   char *buffer;
 
   buffer = g_strdup_vprintf (format, arg_ptr);
@@ -79,8 +124,10 @@ show_gtk_message (GtkWidget *parent, GtkMessageType mtype, GpaContext *ctx,
         gpa_show_info (parent, "No diagnostic data available");
       else
         {
-          gpa_show_info (parent, "Diagnostics:\n%s", buffer);
+          dialog2 = create_diagnostics_dialog (parent, buffer);
           g_free (buffer);
+          gtk_dialog_run (GTK_DIALOG (dialog2));
+          gtk_widget_destroy (dialog2);
         }
     }
 

-----------------------------------------------------------------------

Summary of changes:
 src/gpacontext.c         | 18 +++++++++++++++--
 src/gpaexportop.c        |  2 +-
 src/gpafileencryptop.c   |  5 +++--
 src/gpafileimportop.c    |  5 +++--
 src/gpafilesignop.c      |  5 +++--
 src/gpafileverifyop.c    | 24 +++++++++++------------
 src/gpagenkeyadvop.c     | 24 +++++++++++------------
 src/gpagenkeycardop.c    | 30 +++++++++++++++-------------
 src/gpagenkeysimpleop.c  |  2 +-
 src/gpaimportop.c        |  2 +-
 src/gpaimportserverop.c  | 30 ++++++++++++++++------------
 src/gpakeydeleteop.c     |  2 +-
 src/gpakeyexpireop.c     | 37 ++++++++++++++++++-----------------
 src/gpakeypasswdop.c     | 29 ++++++++++++++-------------
 src/gpakeysignop.c       | 17 ++++++++--------
 src/gpakeytrustop.c      | 24 +++++++++++------------
 src/gparecvkeydlg.c      |  1 +
 src/gpastreamencryptop.c |  2 +-
 src/gpastreamsignop.c    |  5 +++--
 src/gpastreamverifyop.c  |  2 +-
 src/gtktools.c           | 51 ++++++++++++++++++++++++++++++++++++++++++++++--
 21 files changed, 195 insertions(+), 122 deletions(-)


hooks/post-receive
-- 
The GNU Privacy Assistant
http://git.gnupg.org




More information about the Gnupg-commits mailing list