diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2013-06-05 21:24:02 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2013-06-06 01:03:45 +0800 |
commit | 3e8b6ddf8d9e090e0769faede1d68337e240e58d (patch) | |
tree | c5a0ec9d9489564180a73ab10650dabfee4dfccf /modules/settings/e-settings-mail-formatter.c | |
parent | d388f9b5cf89e6e0c39def1946997baa1aa8b814 (diff) | |
download | gsoc2013-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.c | 27 |
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 |