aboutsummaryrefslogtreecommitdiffstats
path: root/modules/settings/e-settings-mail-formatter.c
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2013-06-05 21:24:02 +0800
committerMatthew Barnes <mbarnes@redhat.com>2013-06-06 01:03:45 +0800
commit3e8b6ddf8d9e090e0769faede1d68337e240e58d (patch)
treec5a0ec9d9489564180a73ab10650dabfee4dfccf /modules/settings/e-settings-mail-formatter.c
parentd388f9b5cf89e6e0c39def1946997baa1aa8b814 (diff)
downloadgsoc2013-evolution-3e8b6ddf8d9e090e0769faede1d68337e240e58d.tar
gsoc2013-evolution-3e8b6ddf8d9e090e0769faede1d68337e240e58d.tar.gz
gsoc2013-evolution-3e8b6ddf8d9e090e0769faede1d68337e240e58d.tar.bz2
gsoc2013-evolution-3e8b6ddf8d9e090e0769faede1d68337e240e58d.tar.lz
gsoc2013-evolution-3e8b6ddf8d9e090e0769faede1d68337e240e58d.tar.xz
gsoc2013-evolution-3e8b6ddf8d9e090e0769faede1d68337e240e58d.tar.zst
gsoc2013-evolution-3e8b6ddf8d9e090e0769faede1d68337e240e58d.zip
Add "show-headers" settings key.
Replaces the "headers" key. Whereas "headers" is an array of XML blobs, the "show-headers" key is an array of string/boolean pairs. Also update the appropriate places to get/set the new key.
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