From 3827cbee4ce7bce71da9f811459daba287d896ed Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 16 Oct 2009 11:20:31 +0200 Subject: Bug #522783 - Signature separator for HTML E-mails Reapplied patch from bug #551470, as this got dropped on merging. Be sure you all also gconftool-2 --install-schema-file=$PREFIX/etc/gconf/schemas/evolution-mail.schemas as new key had been added. --- composer/e-composer-private.h | 2 -- composer/e-msg-composer.c | 23 ++++++++++++++++++++--- mail/evolution-mail.schemas.in | 13 +++++++++++++ modules/mail/e-mail-shell-settings.c | 4 ++++ 4 files changed, 37 insertions(+), 5 deletions(-) diff --git a/composer/e-composer-private.h b/composer/e-composer-private.h index 7695df5179..3288f0bcca 100644 --- a/composer/e-composer-private.h +++ b/composer/e-composer-private.h @@ -63,8 +63,6 @@ COMPOSER_GCONF_PREFIX "/request_receipt" #define COMPOSER_GCONF_TOP_SIGNATURE_KEY \ COMPOSER_GCONF_PREFIX "/top_signature" -#define COMPOSER_GCONF_NO_SIGNATURE_DELIM_KEY \ - COMPOSER_GCONF_PREFIX "/no_signature_delim" #define COMPOSER_GCONF_SEND_HTML_KEY \ COMPOSER_GCONF_PREFIX "/send_html" #define COMPOSER_GCONF_SPELL_LANGUAGES_KEY \ diff --git a/composer/e-msg-composer.c b/composer/e-msg-composer.c index 0737d358b5..65bc2acf5e 100644 --- a/composer/e-msg-composer.c +++ b/composer/e-msg-composer.c @@ -1210,6 +1210,18 @@ is_top_signature (EMsgComposer *composer) return e_shell_settings_get_boolean (shell_settings, "composer-top-signature"); } +static gboolean +add_signature_delim (void) +{ + EShell *shell; + EShellSettings *shell_settings; + + shell = e_shell_get_default (); + shell_settings = e_shell_get_shell_settings (shell); + + return !e_shell_settings_get_boolean (shell_settings, "composer-no-signature-delim"); +} + #define CONVERT_SPACES CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES #define NO_SIGNATURE_TEXT \ "" \ @@ -1221,7 +1233,7 @@ get_signature_html (EMsgComposer *composer) EComposerHeaderTable *table; gchar *text = NULL, *html = NULL; ESignature *signature; - gboolean format_html; + gboolean format_html, add_delim; table = e_msg_composer_get_header_table (composer); signature = e_composer_header_table_get_signature (table); @@ -1229,6 +1241,8 @@ get_signature_html (EMsgComposer *composer) if (!signature) return NULL; + add_delim = add_signature_delim (); + if (!e_signature_get_autogenerated (signature)) { const gchar *filename; @@ -1258,7 +1272,8 @@ get_signature_html (EMsgComposer *composer) name = id->name ? camel_text_to_html (id->name, CONVERT_SPACES, 0) : NULL; organization = id->organization ? camel_text_to_html (id->organization, CONVERT_SPACES, 0) : NULL; - text = g_strdup_printf ("--
%s%s%s%s%s%s%s%s", + text = g_strdup_printf ("%s%s%s%s%s%s%s%s%s", + add_delim ? "-- \n
" : "", name ? name : "", (address && *address) ? " <" : "-- \n"; + const gchar *sig_delim_ent = format_html ? "\n-- \n
" : "\n-- \n"; if (signature) encoded_uid = encode_signature_uid (signature); @@ -1291,7 +1308,7 @@ get_signature_html (EMsgComposer *composer) "%s", encoded_uid ? encoded_uid : "", format_html ? "" : "
\n",
-					format_html || (!strncmp ("-- \n", text, 4) || strstr (text, "\n-- \n")) ? "" : "-- \n",
+					!add_delim ? "" : (!strncmp (sig_delim, text, strlen (sig_delim)) || strstr (text, sig_delim_ent)) ? "" : sig_delim,
 					text,
 					format_html ? "" : "
\n", is_top_signature (composer) ? "
" : ""); diff --git a/mail/evolution-mail.schemas.in b/mail/evolution-mail.schemas.in index 7a975531df..418e57d371 100644 --- a/mail/evolution-mail.schemas.in +++ b/mail/evolution-mail.schemas.in @@ -247,6 +247,19 @@ + + /schemas/apps/evolution/mail/composer/no_signature_delim + /apps/evolution/mail/composer/no_signature_delim + evolution-mail + bool + false + + Do not add signature delimiter + Set to TRUE in case you do not want to add signature delimiter + before your signature when composing a mail. + + + /schemas/apps/evolution/mail/composer/width /apps/evolution/mail/composer/width diff --git a/modules/mail/e-mail-shell-settings.c b/modules/mail/e-mail-shell-settings.c index 907c5fb643..c20f57ce43 100644 --- a/modules/mail/e-mail-shell-settings.c +++ b/modules/mail/e-mail-shell-settings.c @@ -226,4 +226,8 @@ e_mail_shell_settings_init (EShell *shell) e_shell_settings_install_property_for_key ( "composer-top-signature", "/apps/evolution/mail/composer/top_signature"); + + e_shell_settings_install_property_for_key ( + "composer-no-signature-delim", + "/apps/evolution/mail/composer/no_signature_delim"); } -- cgit v1.2.3