[evolution] Add option to unset colors provided in HTML mails for preview into Preferences
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Add option to unset colors provided in HTML mails for preview into Preferences
- Date: Tue, 1 Feb 2022 10:26:00 +0000 (UTC)
commit ed36776c405565fb6909328d0578aa099e38d398
Author: Milan Crha <mcrha redhat com>
Date: Tue Feb 1 11:23:40 2022 +0100
Add option to unset colors provided in HTML mails for preview into Preferences
It's located in Edit->Preferences->Mail Preferences->HTML Messages->Unset
colors provided in HTML mails in message preview.
Related to https://gitlab.gnome.org/GNOME/evolution/issues/695
data/webkit/e-web-view.js | 11 +++++++----
src/mail/e-mail-display.c | 34 +++++++++++++++++++++++++++++-----
src/mail/mail-config.ui | 18 +++++++++++++++++-
src/modules/mail/em-mailer-prefs.c | 6 ++++++
4 files changed, 59 insertions(+), 10 deletions(-)
---
diff --git a/data/webkit/e-web-view.js b/data/webkit/e-web-view.js
index c01707b070..7f47fe4b26 100644
--- a/data/webkit/e-web-view.js
+++ b/data/webkit/e-web-view.js
@@ -1069,10 +1069,10 @@ Evo.unsetHTMLColors = function(doc)
continue;
if (rule.style.color)
- rule.style.color = "inherit";
+ rule.style.removeProperty("color");
if (rule.style.backgroundColor)
- rule.style.backgroundColor = "inherit";
+ rule.style.removeProperty("background-color");
}
}
@@ -1086,10 +1086,13 @@ Evo.unsetHTMLColors = function(doc)
if (elem.tagName != "HTML" && elem.tagName != "IFRAME" && elem.tagName != "INPUT" &&
elem.tagName != "BUTTON" && elem.tagName != "IMG") {
if (elem.style) {
if (elem.style.color)
- elem.style.color = "inherit";
+ elem.style.removeProperty("color");
if (elem.style.backgroundColor)
- elem.style.backgroundColor = "inherit";
+ elem.style.removeProperty("background-color");
+
+ if (!elem.style.length)
+ elem.removeAttribute("style");
}
elem.removeAttribute("color");
diff --git a/src/mail/e-mail-display.c b/src/mail/e-mail-display.c
index ba0ec8892a..fabe6f9c94 100644
--- a/src/mail/e-mail-display.c
+++ b/src/mail/e-mail-display.c
@@ -2108,12 +2108,13 @@ mail_display_drag_data_get (GtkWidget *widget,
g_free (uri);
}
-static void
-e_mail_display_test_change_and_update_fonts_cb (EMailDisplay *mail_display,
- const gchar *key,
- GSettings *settings)
+static gboolean
+e_mail_display_test_key_changed (EMailDisplay *mail_display,
+ const gchar *key,
+ GSettings *settings)
{
GVariant *new_value, *old_value;
+ gboolean changed = FALSE;
new_value = g_settings_get_value (settings, key);
old_value = g_hash_table_lookup (mail_display->priv->old_settings, key);
@@ -2124,10 +2125,30 @@ e_mail_display_test_change_and_update_fonts_cb (EMailDisplay *mail_display,
else
g_hash_table_remove (mail_display->priv->old_settings, key);
- e_web_view_update_fonts (E_WEB_VIEW (mail_display));
+ changed = TRUE;
} else if (new_value) {
g_variant_unref (new_value);
}
+
+ return changed;
+}
+
+static void
+e_mail_display_test_change_and_update_fonts_cb (EMailDisplay *mail_display,
+ const gchar *key,
+ GSettings *settings)
+{
+ if (e_mail_display_test_key_changed (mail_display, key, settings))
+ e_web_view_update_fonts (E_WEB_VIEW (mail_display));
+}
+
+static void
+e_mail_display_test_change_and_reload_cb (EMailDisplay *mail_display,
+ const gchar *key,
+ GSettings *settings)
+{
+ if (e_mail_display_test_key_changed (mail_display, key, settings))
+ e_mail_display_reload (mail_display);
}
static void
@@ -2408,6 +2429,9 @@ e_mail_display_init (EMailDisplay *display)
g_signal_connect_swapped (
display->priv->settings , "changed::use-custom-font",
G_CALLBACK (e_mail_display_test_change_and_update_fonts_cb), display);
+ g_signal_connect_swapped (
+ display->priv->settings , "changed::preview-unset-html-colors",
+ G_CALLBACK (e_mail_display_test_change_and_reload_cb), display);
g_signal_connect (
display, "load-changed",
diff --git a/src/mail/mail-config.ui b/src/mail/mail-config.ui
index 7a92ef2d63..890837162a 100644
--- a/src/mail/mail-config.ui
+++ b/src/mail/mail-config.ui
@@ -2407,6 +2407,22 @@
<property name="position">0</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="chkUnsetHTMLColors">
+ <property name="label" translatable="yes">Unset colors provided in HTML mails in
message previe_w</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0.5</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
<child>
<object class="GtkCheckButton" id="chkPromptWantHTML">
<property name="label" translatable="yes">_Prompt on sending HTML mail to contacts
that do not want them</property>
@@ -2420,7 +2436,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
</object>
diff --git a/src/modules/mail/em-mailer-prefs.c b/src/modules/mail/em-mailer-prefs.c
index e83fdf228c..fa5af4a2ea 100644
--- a/src/modules/mail/em-mailer-prefs.c
+++ b/src/modules/mail/em-mailer-prefs.c
@@ -1786,6 +1786,12 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs,
widget, "active",
G_SETTINGS_BIND_DEFAULT);
+ widget = e_builder_get_widget (prefs->priv->builder, "chkUnsetHTMLColors");
+ g_settings_bind (
+ settings, "preview-unset-html-colors",
+ widget, "active",
+ G_SETTINGS_BIND_DEFAULT);
+
widget = e_builder_get_widget (prefs->priv->builder, "chkPromptWantHTML");
g_settings_bind (
settings, "prompt-on-unwanted-html",
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]