+2007-02-14 [colin] 2.7.2cvs45
+
+ * src/plugins/pgpcore/prefs_gpg.c
+ * src/plugins/pgpcore/prefs_gpg.h
+ * src/plugins/pgpcore/sgpgme.c
+ * src/plugins/pgpinline/pgpinline.c
+ * src/plugins/pgpmime/pgpmime.c
+ Add an option "Use gpg-agent if available". Fixes
+ annoyances with distro-installed gpg-agent, when
+ no pinentry program is installed, and the user's
+ at a loss on why "decryption failed". Makes more
+ clear why passphrase isn't saved when gpg-agent is
+ used. Defaults to true, to avoid changing the
+ current behaviour.
+
2007-02-14 [wwp] 2.7.2cvs44
* src/matcher_parser_parse.y
{"auto_check_signatures", "FALSE",
&prefs_gpg.auto_check_signatures, P_BOOL,
NULL, NULL, NULL},
+ {"use_agent_if_available", "TRUE", &prefs_gpg.use_agent_if_available, P_BOOL,
+ NULL, NULL, NULL},
{"store_passphrase", "FALSE", &prefs_gpg.store_passphrase, P_BOOL,
NULL, NULL, NULL},
{"store_passphrase_timeout", "0",
PrefsPage page;
GtkWidget *checkbtn_auto_check_signatures;
+ GtkWidget *checkbtn_use_agent_if_available;
GtkWidget *checkbtn_store_passphrase;
GtkWidget *spinbtn_store_passphrase;
GtkWidget *checkbtn_passphrase_grab;
struct GPGPage *page = (struct GPGPage *) _page;
struct GPGConfig *config;
+ GtkWidget *checkbtn_use_agent_if_available;
GtkWidget *checkbtn_passphrase_grab;
GtkWidget *checkbtn_store_passphrase;
GtkWidget *checkbtn_auto_check_signatures;
GtkWidget *spinbtn_store_passphrase;
GtkWidget *label_expire2;
GtkWidget *frame_passphrase;
+ GtkWidget *label;
GtkTooltips *tooltips;
-
+
tooltips = gtk_tooltips_new();
vbox1 = gtk_vbox_new (FALSE, VSPACING);
vbox2 = gtkut_get_options_frame(vbox1, &frame_passphrase, _("Passphrase"));
+ PACK_CHECK_BUTTON (vbox2, checkbtn_use_agent_if_available,
+ _("Use gpg-agent if it is available"));
+
+ label = gtk_label_new(_("Else,"));
+ gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);
+ gtk_widget_show (label);
+
+ gtk_box_pack_start(GTK_BOX(vbox2), label, FALSE, FALSE, 0);
+
PACK_CHECK_BUTTON (vbox2, checkbtn_store_passphrase,
_("Store passphrase in memory"));
config = prefs_gpg_get_config();
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_auto_check_signatures), config->auto_check_signatures);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_use_agent_if_available), config->use_agent_if_available);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_store_passphrase), config->store_passphrase);
gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_store_passphrase), (float) config->store_passphrase_timeout);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_passphrase_grab), config->passphrase_grab);
page->spinbtn_store_passphrase = spinbtn_store_passphrase;
page->checkbtn_passphrase_grab = checkbtn_passphrase_grab;
page->checkbtn_gpg_warning = checkbtn_gpg_warning;
-
+ page->checkbtn_use_agent_if_available = checkbtn_use_agent_if_available;
page->page.widget = vbox1;
}
config->auto_check_signatures =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_auto_check_signatures));
+ config->use_agent_if_available =
+ gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_use_agent_if_available));
config->store_passphrase =
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(page->checkbtn_store_passphrase));
config->store_passphrase_timeout =