aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-07-30 04:14:01 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-07-30 04:14:01 +0000
commitabe2df52d008cd7a7ba90020320f5387b2e2d3c5 (patch)
treeb908f4c466c86af46944ee3bd14679b31671c311 /src
parentc972afdc150cb400a90bc518ac1500e57a4bcd60 (diff)
added new account option 'Put signature before quote (not recommended)'.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2645 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src')
-rw-r--r--src/compose.c23
-rw-r--r--src/prefs_account_dialog.c11
2 files changed, 30 insertions, 4 deletions
diff --git a/src/compose.c b/src/compose.c
index c132ff96..771adb4d 100644
--- a/src/compose.c
+++ b/src/compose.c
@@ -881,6 +881,16 @@ void compose_reply(MsgInfo *msginfo, FolderItem *item, ComposeMode mode,
if (item)
compose_entries_set_from_item(compose, item, COMPOSE_REPLY);
+ buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(compose->text));
+
+ if (account->sig_before_quote && prefs_common.auto_sig) {
+ GtkTextMark *mark;
+ compose_insert_sig(compose, TRUE, FALSE, FALSE);
+ mark = gtk_text_buffer_get_insert(buffer);
+ gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ }
+
if (quote) {
gchar *qmark;
gchar *quote_str;
@@ -895,13 +905,12 @@ void compose_reply(MsgInfo *msginfo, FolderItem *item, ComposeMode mode,
qmark, body);
}
- if (prefs_common.auto_sig)
+ if (!account->sig_before_quote && prefs_common.auto_sig)
compose_insert_sig(compose, TRUE, FALSE, FALSE);
if (quote && prefs_common.linewrap_quote)
compose_wrap_all(compose);
- buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(compose->text));
gtk_text_buffer_get_start_iter(buffer, &iter);
gtk_text_buffer_place_cursor(buffer, &iter);
@@ -991,6 +1000,14 @@ void compose_forward(GSList *mlist, FolderItem *item, gboolean as_attach,
text = GTK_TEXT_VIEW(compose->text);
buffer = gtk_text_view_get_buffer(text);
+ if (account->sig_before_quote && prefs_common.auto_sig) {
+ GtkTextMark *mark;
+ compose_insert_sig(compose, TRUE, FALSE, FALSE);
+ mark = gtk_text_buffer_get_insert(buffer);
+ gtk_text_buffer_get_iter_at_mark(buffer, &iter, mark);
+ gtk_text_buffer_insert(buffer, &iter, "\n", 1);
+ }
+
for (cur = mlist; cur != NULL; cur = cur->next) {
msginfo = (MsgInfo *)cur->data;
@@ -1040,7 +1057,7 @@ void compose_forward(GSList *mlist, FolderItem *item, gboolean as_attach,
}
}
- if (prefs_common.auto_sig)
+ if (!account->sig_before_quote && prefs_common.auto_sig)
compose_insert_sig(compose, TRUE, FALSE, FALSE);
if (prefs_common.linewrap_quote)
diff --git a/src/prefs_account_dialog.c b/src/prefs_account_dialog.c
index a9d9dac1..1358bf8f 100644
--- a/src/prefs_account_dialog.c
+++ b/src/prefs_account_dialog.c
@@ -1,6 +1,6 @@
/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2007 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2010 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -124,6 +124,7 @@ static struct Compose {
GtkWidget *sig_text;
GtkTextBuffer *sig_buffer;
GtkWidget *sigpath_entry;
+ GtkWidget *sig_before_quote_chkbtn;
GtkWidget *autocc_chkbtn;
GtkWidget *autocc_entry;
@@ -306,6 +307,8 @@ static PrefsUIData ui_data[] = {
prefs_set_data_from_entry, prefs_set_entry},
{"signature_text", &compose.sig_text,
prefs_set_data_from_text, prefs_set_text},
+ {"signature_before_quote", &compose.sig_before_quote_chkbtn,
+ prefs_set_data_from_toggle, prefs_set_toggle},
{"set_autocc", &compose.autocc_chkbtn,
prefs_set_data_from_toggle, prefs_set_toggle},
{"auto_cc", &compose.autocc_entry,
@@ -1233,6 +1236,7 @@ static void prefs_account_compose_create(void)
GtkWidget *sigfile_radiobtn;
GtkWidget *sigcmd_radiobtn;
GtkWidget *sigpath_entry;
+ GtkWidget *sig_before_quote_chkbtn;
GtkWidget *frame;
GtkWidget *table;
GtkWidget *autocc_chkbtn;
@@ -1300,6 +1304,9 @@ static void prefs_account_compose_create(void)
gtk_widget_show (sigpath_entry);
gtk_box_pack_start (GTK_BOX (sig_vbox), sigpath_entry, TRUE, TRUE, 0);
+ PACK_CHECK_BUTTON (sig_vbox, sig_before_quote_chkbtn,
+ _("Put signature before quote (not recommended)"));
+
SET_TOGGLE_SENSITIVITY (sig_radiobtn, sig_text);
SET_TOGGLE_SENSITIVITY (sigfile_radiobtn, sigpath_entry);
SET_TOGGLE_SENSITIVITY (sigcmd_radiobtn, sigpath_entry);
@@ -1364,6 +1371,8 @@ static void prefs_account_compose_create(void)
compose.sig_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(sig_text));
+ compose.sig_before_quote_chkbtn = sig_before_quote_chkbtn;
+
compose.autocc_chkbtn = autocc_chkbtn;
compose.autocc_entry = autocc_entry;
compose.autobcc_chkbtn = autobcc_chkbtn;