summaryrefslogtreecommitdiff
path: root/src/prefs_common_dialog.c
diff options
context:
space:
mode:
authorSimeon Simeonov2018-02-26 12:17:39 +0100
committerSimeon Simeonov2018-02-26 12:17:39 +0100
commitade95c14a055a404fd1f2b9cb6da94d12cc61a98 (patch)
treec38f7fe5e34beef03e18ce8e1d0e3aee14164a64 /src/prefs_common_dialog.c
parent0b3cbf57875fd692e4ba0b336fefa4bee1ed00dc (diff)
Signature box patch
Diffstat (limited to 'src/prefs_common_dialog.c')
-rw-r--r--src/prefs_common_dialog.c122
1 files changed, 121 insertions, 1 deletions
diff --git a/src/prefs_common_dialog.c b/src/prefs_common_dialog.c
index b46c9b7..fa4be4e 100644
--- a/src/prefs_common_dialog.c
+++ b/src/prefs_common_dialog.c
@@ -205,6 +205,7 @@ static struct JunkMail {
205static struct Privacy { 205static struct Privacy {
206 GtkWidget *checkbtn_auto_check_signatures; 206 GtkWidget *checkbtn_auto_check_signatures;
207 GtkWidget *checkbtn_gpg_signature_popup; 207 GtkWidget *checkbtn_gpg_signature_popup;
208 GtkWidget *radiobtn_gpg_signature_all;
208 GtkWidget *checkbtn_store_passphrase; 209 GtkWidget *checkbtn_store_passphrase;
209 GtkWidget *spinbtn_store_passphrase; 210 GtkWidget *spinbtn_store_passphrase;
210 GtkObject *spinbtn_store_passphrase_adj; 211 GtkObject *spinbtn_store_passphrase_adj;
@@ -314,6 +315,13 @@ static void prefs_common_attach_toolbtn_pos_set_radiobtn (PrefParam *pparam);
314static void prefs_common_online_mode_set_data_from_radiobtn(PrefParam *pparam); 315static void prefs_common_online_mode_set_data_from_radiobtn(PrefParam *pparam);
315static void prefs_common_online_mode_set_radiobtn (PrefParam *pparam); 316static void prefs_common_online_mode_set_radiobtn (PrefParam *pparam);
316 317
318#if USE_GPGME
319static void prefs_common_gpg_signature_popup_mode_set_data_from_radiobtn(
320 PrefParam *pparam);
321static void prefs_common_gpg_signature_popup_mode_set_radiobtn(
322 PrefParam *pparam);
323#endif
324
317static PrefsUIData ui_data[] = { 325static PrefsUIData ui_data[] = {
318 /* Receive */ 326 /* Receive */
319 {"autochk_newmail", &receive.checkbtn_autochk, 327 {"autochk_newmail", &receive.checkbtn_autochk,
@@ -540,6 +548,9 @@ static PrefsUIData ui_data[] = {
540 prefs_set_data_from_toggle, prefs_set_toggle}, 548 prefs_set_data_from_toggle, prefs_set_toggle},
541 {"gpg_signature_popup", &privacy.checkbtn_gpg_signature_popup, 549 {"gpg_signature_popup", &privacy.checkbtn_gpg_signature_popup,
542 prefs_set_data_from_toggle, prefs_set_toggle}, 550 prefs_set_data_from_toggle, prefs_set_toggle},
551 {"gpg_signature_popup_mode", &privacy.radiobtn_gpg_signature_all,
552 prefs_common_gpg_signature_popup_mode_set_data_from_radiobtn,
553 prefs_common_gpg_signature_popup_mode_set_radiobtn},
543 {"store_passphrase", &privacy.checkbtn_store_passphrase, 554 {"store_passphrase", &privacy.checkbtn_store_passphrase,
544 prefs_set_data_from_toggle, prefs_set_toggle}, 555 prefs_set_data_from_toggle, prefs_set_toggle},
545 {"store_passphrase_timeout", &privacy.spinbtn_store_passphrase, 556 {"store_passphrase_timeout", &privacy.spinbtn_store_passphrase,
@@ -2478,10 +2489,14 @@ static void prefs_privacy_create(void)
2478 GtkWidget *vbox2; 2489 GtkWidget *vbox2;
2479 GtkWidget *vbox3; 2490 GtkWidget *vbox3;
2480 GtkWidget *hbox1; 2491 GtkWidget *hbox1;
2492 GtkWidget *vbox_sign_popup_mode;
2493 GtkWidget *hbox_sign_popup_mode;
2481 GtkWidget *hbox_spc; 2494 GtkWidget *hbox_spc;
2482 GtkWidget *label; 2495 GtkWidget *label;
2483 GtkWidget *checkbtn_auto_check_signatures; 2496 GtkWidget *checkbtn_auto_check_signatures;
2484 GtkWidget *checkbtn_gpg_signature_popup; 2497 GtkWidget *checkbtn_gpg_signature_popup;
2498 GtkWidget *radiobtn_gpg_signature_all;
2499 GtkWidget *radiobtn_gpg_signature_bad;
2485 GtkWidget *checkbtn_store_passphrase; 2500 GtkWidget *checkbtn_store_passphrase;
2486 GtkObject *spinbtn_store_passphrase_adj; 2501 GtkObject *spinbtn_store_passphrase_adj;
2487 GtkWidget *spinbtn_store_passphrase; 2502 GtkWidget *spinbtn_store_passphrase;
@@ -2505,6 +2520,56 @@ static void prefs_privacy_create(void)
2505 PACK_CHECK_BUTTON (vbox2, checkbtn_gpg_signature_popup, 2520 PACK_CHECK_BUTTON (vbox2, checkbtn_gpg_signature_popup,
2506 _("Show signature check result in a popup window")); 2521 _("Show signature check result in a popup window"));
2507 2522
2523 vbox_sign_popup_mode = gtk_vbox_new (FALSE, VSPACING_NARROW);
2524 gtk_widget_show (vbox_sign_popup_mode);
2525 gtk_box_pack_start (GTK_BOX (vbox2), vbox_sign_popup_mode, FALSE, FALSE, 0);
2526
2527 hbox_sign_popup_mode = gtk_hbox_new (FALSE, 8);
2528 gtk_widget_show (hbox_sign_popup_mode);
2529 gtk_box_pack_start (GTK_BOX (vbox_sign_popup_mode),
2530 hbox_sign_popup_mode,
2531 FALSE,
2532 FALSE,
2533 0);
2534
2535 hbox_spc = gtk_hbox_new (FALSE, 0);
2536 gtk_widget_show (hbox_spc);
2537 gtk_box_pack_start (GTK_BOX (hbox_sign_popup_mode),
2538 hbox_spc,
2539 FALSE,
2540 FALSE,
2541 0);
2542 gtk_widget_set_size_request (hbox_spc, 12, -1);
2543
2544 radiobtn_gpg_signature_all = gtk_radio_button_new_with_label(
2545 NULL,
2546 _("All signatures"));
2547 gtk_widget_show(radiobtn_gpg_signature_all);
2548 gtk_box_pack_start(GTK_BOX (hbox_sign_popup_mode),
2549 radiobtn_gpg_signature_all,
2550 FALSE,
2551 FALSE,
2552 0);
2553 g_object_set_data(G_OBJECT (radiobtn_gpg_signature_all),
2554 MENU_VAL_ID,
2555 GINT_TO_POINTER (1));
2556
2557 radiobtn_gpg_signature_bad = gtk_radio_button_new_with_label_from_widget(
2558 GTK_RADIO_BUTTON (radiobtn_gpg_signature_all),
2559 _("Bad signatures only"));
2560 gtk_widget_show(radiobtn_gpg_signature_bad);
2561 gtk_box_pack_start(GTK_BOX (hbox_sign_popup_mode),
2562 radiobtn_gpg_signature_bad,
2563 FALSE,
2564 FALSE,
2565 0);
2566 g_object_set_data(G_OBJECT (radiobtn_gpg_signature_bad),
2567 MENU_VAL_ID,
2568 GINT_TO_POINTER (0));
2569
2570 SET_TOGGLE_SENSITIVITY (checkbtn_gpg_signature_popup,
2571 hbox_sign_popup_mode);
2572
2508 PACK_CHECK_BUTTON (vbox2, checkbtn_store_passphrase, 2573 PACK_CHECK_BUTTON (vbox2, checkbtn_store_passphrase,
2509 _("Store passphrase in memory temporarily")); 2574 _("Store passphrase in memory temporarily"));
2510 2575
@@ -2572,7 +2637,8 @@ static void prefs_privacy_create(void)
2572 = checkbtn_auto_check_signatures; 2637 = checkbtn_auto_check_signatures;
2573 privacy.checkbtn_gpg_signature_popup 2638 privacy.checkbtn_gpg_signature_popup
2574 = checkbtn_gpg_signature_popup; 2639 = checkbtn_gpg_signature_popup;
2575 privacy.checkbtn_store_passphrase = checkbtn_store_passphrase; 2640 privacy.radiobtn_gpg_signature_all = radiobtn_gpg_signature_all;
2641 privacy.checkbtn_store_passphrase = checkbtn_store_passphrase;
2576 privacy.spinbtn_store_passphrase = spinbtn_store_passphrase; 2642 privacy.spinbtn_store_passphrase = spinbtn_store_passphrase;
2577 privacy.spinbtn_store_passphrase_adj = spinbtn_store_passphrase_adj; 2643 privacy.spinbtn_store_passphrase_adj = spinbtn_store_passphrase_adj;
2578#ifndef G_OS_WIN32 2644#ifndef G_OS_WIN32
@@ -4719,6 +4785,60 @@ static void prefs_common_online_mode_set_radiobtn(PrefParam *pparam)
4719 } 4785 }
4720} 4786}
4721 4787
4788#if USE_GPGME
4789static void prefs_common_gpg_signature_popup_mode_set_data_from_radiobtn(
4790 PrefParam *pparam)
4791{
4792 PrefsUIData *ui_data;
4793 GtkRadioButton *radiobtn;
4794 GSList *group;
4795
4796 ui_data = (PrefsUIData *)pparam->ui_data;
4797 g_return_if_fail(ui_data != NULL);
4798 g_return_if_fail(*ui_data->widget != NULL);
4799
4800 radiobtn = GTK_RADIO_BUTTON(*ui_data->widget);
4801 group = gtk_radio_button_get_group(radiobtn);
4802 while (group != NULL) {
4803 GtkToggleButton *btn = GTK_TOGGLE_BUTTON(group->data);
4804
4805 if (gtk_toggle_button_get_active(btn)) {
4806 prefs_common.gpg_signature_popup_mode =
4807 GPOINTER_TO_INT(g_object_get_data(G_OBJECT(btn), MENU_VAL_ID));
4808 break;
4809 }
4810 group = group->next;
4811 }
4812}
4813
4814static void prefs_common_gpg_signature_popup_mode_set_radiobtn(
4815 PrefParam *pparam)
4816{
4817 PrefsUIData *ui_data;
4818 GtkRadioButton *radiobtn;
4819 GSList *group;
4820
4821 ui_data = (PrefsUIData *)pparam->ui_data;
4822 g_return_if_fail(ui_data != NULL);
4823 g_return_if_fail(*ui_data->widget != NULL);
4824
4825 radiobtn = GTK_RADIO_BUTTON(*ui_data->widget);
4826 group = gtk_radio_button_get_group(radiobtn);
4827 while (group != NULL) {
4828 GtkToggleButton *btn = GTK_TOGGLE_BUTTON(group->data);
4829 gint data;
4830
4831 data = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(btn),
4832 MENU_VAL_ID));
4833 if (data == prefs_common.gpg_signature_popup_mode) {
4834 gtk_toggle_button_set_active(btn, TRUE);
4835 break;
4836 }
4837 group = group->next;
4838 }
4839}
4840#endif
4841
4722static void prefs_common_dispitem_clicked(void) 4842static void prefs_common_dispitem_clicked(void)
4723{ 4843{
4724 prefs_summary_column_open(FOLDER_ITEM_IS_SENT_FOLDER 4844 prefs_summary_column_open(FOLDER_ITEM_IS_SENT_FOLDER