aboutsummaryrefslogtreecommitdiffstats
path: root/modules/settings/e-settings-mail-formatter.c
diff options
context:
space:
mode:
Diffstat (limited to 'modules/settings/e-settings-mail-formatter.c')
-rw-r--r--modules/settings/e-settings-mail-formatter.c27
1 files changed, 13 insertions, 14 deletions
diff --git a/modules/settings/e-settings-mail-formatter.c b/modules/settings/e-settings-mail-formatter.c
index ae53291874..2c3b4697fc 100644
--- a/modules/settings/e-settings-mail-formatter.c
+++ b/modules/settings/e-settings-mail-formatter.c
@@ -74,31 +74,30 @@ settings_mail_formatter_headers_changed_cb (GSettings *settings,
ESettingsMailFormatter *extension)
{
EMailFormatter *formatter;
- gchar **headers;
- gint ii;
+ GVariant *variant;
+ gsize ii, n_children;
formatter = settings_mail_formatter_get_extensible (extension);
+ e_mail_formatter_clear_headers (formatter);
- headers = g_settings_get_strv (settings, "headers");
+ variant = g_settings_get_value (settings, "show-headers");
+ n_children = g_variant_n_children (variant);
- e_mail_formatter_clear_headers (formatter);
- for (ii = 0; headers && headers[ii]; ii++) {
- EMailReaderHeader *h;
- const gchar *xml = headers[ii];
+ for (ii = 0; ii < n_children; ii++) {
+ const gchar *name = NULL;
+ gboolean enabled = FALSE;
- h = e_mail_reader_header_from_xml (xml);
- if (h && h->enabled)
+ g_variant_get_child (variant, ii, "(&sb)", &name, &enabled);
+ if (name != NULL && enabled)
e_mail_formatter_add_header (
- formatter, h->name, NULL,
+ formatter, name, NULL,
E_MAIL_FORMATTER_HEADER_FLAG_BOLD);
-
- e_mail_reader_header_free (h);
}
- if (!headers || !headers[0])
+ if (n_children == 0)
e_mail_formatter_set_default_headers (formatter);
- g_strfreev (headers);
+ g_variant_unref (variant);
}
static void