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.
This commit is contained in:
Milan Crha
2009-10-16 11:20:31 +02:00
parent 527e9e472f
commit 3827cbee4c
4 changed files with 37 additions and 5 deletions

View File

@ -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 \

View File

@ -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 \
"<!--+GtkHTML:<DATA class=\"ClueFlow\" key=\"signature\" value=\"1\">-->" \
@ -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 ("-- <BR>%s%s%s%s%s%s%s%s",
text = g_strdup_printf ("%s%s%s%s%s%s%s%s%s",
add_delim ? "-- \n<BR>" : "",
name ? name : "",
(address && *address) ? " &lt;<A HREF=\"mailto:" : "",
address ? address : "",
@ -1276,6 +1291,8 @@ get_signature_html (EMsgComposer *composer)
/* printf ("text: %s\n", text); */
if (text) {
gchar *encoded_uid = NULL;
const gchar *sig_delim = format_html ? "-- \n<BR>" : "-- \n";
const gchar *sig_delim_ent = format_html ? "\n-- \n<BR>" : "\n-- \n";
if (signature)
encoded_uid = encode_signature_uid (signature);
@ -1291,7 +1308,7 @@ get_signature_html (EMsgComposer *composer)
"%s</TD></TR></TABLE>",
encoded_uid ? encoded_uid : "",
format_html ? "" : "<PRE>\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 ? "" : "</PRE>\n",
is_top_signature (composer) ? "<BR>" : "");

View File

@ -247,6 +247,19 @@
</locale>
</schema>
<schema>
<key>/schemas/apps/evolution/mail/composer/no_signature_delim</key>
<applyto>/apps/evolution/mail/composer/no_signature_delim</applyto>
<owner>evolution-mail</owner>
<type>bool</type>
<default>false</default>
<locale name="C">
<short>Do not add signature delimiter</short>
<long>Set to TRUE in case you do not want to add signature delimiter
before your signature when composing a mail.</long>
</locale>
</schema>
<schema>
<key>/schemas/apps/evolution/mail/composer/width</key>
<applyto>/apps/evolution/mail/composer/width</applyto>

View File

@ -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");
}