aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-23 09:37:11 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2005-05-23 09:37:11 +0000
commitcb38c25474b1e7823ff8696155fcebba7de5e07d (patch)
treedf07611eccfbb8d0c09900a811f364f217a9d572 /src
parent91146ec1ec9d8cba872f0d9b564c6130ef700d30 (diff)
added PGP Sign/Encrypt check button on the compose window.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@279 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r--src/compose.c74
-rw-r--r--src/compose.h3
-rw-r--r--src/prefs_account.c16
-rw-r--r--src/prefs_account.h2
4 files changed, 81 insertions, 14 deletions
diff --git a/src/compose.c b/src/compose.c
index 3470636c..b99ca996 100644
--- a/src/compose.c
+++ b/src/compose.c
@@ -384,6 +384,11 @@ static void compose_allsel_cb (Compose *compose);
static void compose_grab_focus_cb (GtkWidget *widget,
Compose *compose);
+static void compose_signing_toggled (GtkWidget *widget,
+ Compose *compose);
+static void compose_encrypt_toggled (GtkWidget *widget,
+ Compose *compose);
+
static void compose_changed_cb (GtkTextBuffer *textbuf,
Compose *compose);
@@ -3674,6 +3679,8 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
GtkWidget *vbox2;
GtkWidget *table_vbox;
+ GtkWidget *table;
+ GtkWidget *hbox;
GtkWidget *label;
GtkWidget *from_optmenu_hbox;
GtkWidget *to_entry;
@@ -3690,6 +3697,12 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
GtkWidget *followup_entry;
GtkWidget *followup_hbox;
+#if USE_GPGME
+ GtkWidget *gpg_hbox;
+ GtkWidget *signing_chkbtn;
+ GtkWidget *encrypt_chkbtn;
+#endif /* USE_GPGME */
+
GtkWidget *paned;
GtkWidget *attach_scrwin;
@@ -3705,9 +3718,6 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
GtkClipboard *clipboard;
GtkTextTag *sig_tag;
- GtkWidget *table;
- GtkWidget *hbox;
-
UndoMain *undostruct;
gchar *titles[N_ATTACH_COLS];
@@ -3774,8 +3784,7 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
table_vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox2), table_vbox, FALSE, TRUE, 0);
- gtk_container_set_border_width(GTK_CONTAINER(table_vbox),
- BORDER_WIDTH * 2);
+ gtk_container_set_border_width(GTK_CONTAINER(table_vbox), BORDER_WIDTH);
table = gtk_table_new(8, 2, FALSE);
gtk_box_pack_start(GTK_BOX(table_vbox), table, FALSE, TRUE, 0);
@@ -3840,6 +3849,21 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
g_signal_connect(G_OBJECT(subject_entry), "grab_focus",
G_CALLBACK(compose_grab_focus_cb), compose);
+#if USE_GPGME
+ gpg_hbox = gtk_hbox_new(FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(vbox2), gpg_hbox, FALSE, FALSE, 0);
+
+ signing_chkbtn = gtk_check_button_new_with_label(_("PGP Sign"));
+ gtk_box_pack_start(GTK_BOX(gpg_hbox), signing_chkbtn, FALSE, FALSE, 8);
+ encrypt_chkbtn = gtk_check_button_new_with_label(_("PGP Encrypt"));
+ gtk_box_pack_start(GTK_BOX(gpg_hbox), encrypt_chkbtn, FALSE, FALSE, 8);
+
+ g_signal_connect(G_OBJECT(signing_chkbtn), "toggled",
+ G_CALLBACK(compose_signing_toggled), compose);
+ g_signal_connect(G_OBJECT(encrypt_chkbtn), "toggled",
+ G_CALLBACK(compose_encrypt_toggled), compose);
+#endif /* USE_GPGME */
+
/* attachment list */
attach_scrwin = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(attach_scrwin),
@@ -4035,6 +4059,11 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode)
compose->followup_hbox = followup_hbox;
compose->followup_entry = followup_entry;
+#if USE_GPGME
+ compose->signing_chkbtn = signing_chkbtn;
+ compose->encrypt_chkbtn = encrypt_chkbtn;
+#endif /* USE_GPGME */
+
compose->paned = paned;
compose->attach_scrwin = attach_scrwin;
@@ -5670,6 +5699,35 @@ static void compose_grab_focus_cb(GtkWidget *widget, Compose *compose)
compose->focused_editable = widget;
}
+#if USE_GPGME
+static void compose_signing_toggled(GtkWidget *widget, Compose *compose)
+{
+ GtkItemFactory *ifactory;
+
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+ compose->use_signing = TRUE;
+ else
+ compose->use_signing = FALSE;
+
+ ifactory = gtk_item_factory_from_widget(compose->menubar);
+ menu_set_active(ifactory, "/Tools/PGP Sign", compose->use_signing);
+}
+
+static void compose_encrypt_toggled(GtkWidget *widget, Compose *compose)
+{
+ GtkItemFactory *ifactory;
+
+ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)))
+ compose->use_encryption = TRUE;
+ else
+ compose->use_encryption = FALSE;
+
+ ifactory = gtk_item_factory_from_widget(compose->menubar);
+ menu_set_active(ifactory, "/Tools/PGP Encrypt",
+ compose->use_encryption);
+}
+#endif /* USE_GPGME */
+
static void compose_changed_cb(GtkTextBuffer *textbuf, Compose *compose)
{
if (compose->modified == FALSE) {
@@ -5848,6 +5906,9 @@ static void compose_toggle_sign_cb(gpointer data, guint action,
compose->use_signing = TRUE;
else
compose->use_signing = FALSE;
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(compose->signing_chkbtn),
+ compose->use_signing);
}
static void compose_toggle_encrypt_cb(gpointer data, guint action,
@@ -5859,6 +5920,9 @@ static void compose_toggle_encrypt_cb(gpointer data, guint action,
compose->use_encryption = TRUE;
else
compose->use_encryption = FALSE;
+
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(compose->encrypt_chkbtn),
+ compose->use_encryption);
}
#endif /* USE_GPGME */
diff --git a/src/compose.h b/src/compose.h
index 95928f3f..14f95a51 100644
--- a/src/compose.h
+++ b/src/compose.h
@@ -105,6 +105,9 @@ struct _Compose
GtkWidget *followup_hbox;
GtkWidget *followup_entry;
+ GtkWidget *signing_chkbtn;
+ GtkWidget *encrypt_chkbtn;
+
GtkWidget *paned;
GtkWidget *attach_scrwin;
diff --git a/src/prefs_account.c b/src/prefs_account.c
index c8a790d9..f9c98857 100644
--- a/src/prefs_account.c
+++ b/src/prefs_account.c
@@ -126,8 +126,8 @@ static struct Compose {
#if USE_GPGME
static struct Privacy {
- GtkWidget *default_encrypt_chkbtn;
GtkWidget *default_sign_chkbtn;
+ GtkWidget *default_encrypt_chkbtn;
GtkWidget *ascii_armored_chkbtn;
GtkWidget *clearsign_chkbtn;
GtkWidget *defaultkey_radiobtn;
@@ -357,12 +357,12 @@ static PrefParam param[] = {
#if USE_GPGME
/* Privacy */
- {"default_encrypt", "FALSE", &tmp_ac_prefs.default_encrypt, P_BOOL,
- &privacy.default_encrypt_chkbtn,
- prefs_set_data_from_toggle, prefs_set_toggle},
{"default_sign", "FALSE", &tmp_ac_prefs.default_sign, P_BOOL,
&privacy.default_sign_chkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
+ {"default_encrypt", "FALSE", &tmp_ac_prefs.default_encrypt, P_BOOL,
+ &privacy.default_encrypt_chkbtn,
+ prefs_set_data_from_toggle, prefs_set_toggle},
{"ascii_armored", "FALSE", &tmp_ac_prefs.ascii_armored, P_BOOL,
&privacy.ascii_armored_chkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
@@ -1434,8 +1434,8 @@ static void prefs_account_privacy_create(void)
GtkWidget *vbox2;
GtkWidget *hbox1;
GtkWidget *label;
- GtkWidget *default_encrypt_chkbtn;
GtkWidget *default_sign_chkbtn;
+ GtkWidget *default_encrypt_chkbtn;
GtkWidget *ascii_armored_chkbtn;
GtkWidget *clearsign_chkbtn;
GtkWidget *defaultkey_radiobtn;
@@ -1452,10 +1452,10 @@ static void prefs_account_privacy_create(void)
gtk_widget_show (vbox2);
gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
- PACK_CHECK_BUTTON (vbox2, default_encrypt_chkbtn,
- _("Encrypt message by default"));
PACK_CHECK_BUTTON (vbox2, default_sign_chkbtn,
_("Sign message by default"));
+ PACK_CHECK_BUTTON (vbox2, default_encrypt_chkbtn,
+ _("Encrypt message by default"));
PACK_CHECK_BUTTON (vbox2, ascii_armored_chkbtn,
_("Use ASCII-armored format for encryption"));
PACK_CHECK_BUTTON (vbox2, clearsign_chkbtn,
@@ -1517,8 +1517,8 @@ static void prefs_account_privacy_create(void)
SET_TOGGLE_SENSITIVITY (customkey_radiobtn, customkey_entry);
- privacy.default_encrypt_chkbtn = default_encrypt_chkbtn;
privacy.default_sign_chkbtn = default_sign_chkbtn;
+ privacy.default_encrypt_chkbtn = default_encrypt_chkbtn;
privacy.ascii_armored_chkbtn = ascii_armored_chkbtn;
privacy.clearsign_chkbtn = clearsign_chkbtn;
privacy.defaultkey_radiobtn = defaultkey_radiobtn;
diff --git a/src/prefs_account.h b/src/prefs_account.h
index efa659f8..54521c9d 100644
--- a/src/prefs_account.h
+++ b/src/prefs_account.h
@@ -125,8 +125,8 @@ struct _PrefsAccount
#if USE_GPGME
/* Privacy */
- gboolean default_encrypt;
gboolean default_sign;
+ gboolean default_encrypt;
gboolean ascii_armored;
gboolean clearsign;
SignKeyType sign_key;