From abe2df52d008cd7a7ba90020320f5387b2e2d3c5 Mon Sep 17 00:00:00 2001 From: hiro Date: Fri, 30 Jul 2010 04:14:01 +0000 Subject: 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 --- src/compose.c | 23 ++++++++++++++++++++--- src/prefs_account_dialog.c | 11 ++++++++++- 2 files changed, 30 insertions(+), 4 deletions(-) (limited to 'src') 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; -- cgit v1.2.3