From 14e8637d6b1a98b4ed6bedc70d0fca744b7b3e0f Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sat, 7 Feb 2009 20:04:52 +0000 Subject: Rewrite the mail label code from top to bottom. - Kill the e-util-labels API and read label information into a single-column GtkListStore. Use GConfBridge to automatically keep GConf synched with the list store. - The list store (a singleton instance) is stored in EShellSettings so it's available everywhere. - The list store serves as the model for EMailLabelTreeView, which itself is embedded in EMailLabelManager; a complete label management UI as seen in the preferences dialog. - EMailLabelDialog is used to add or edit a label. Avoid using a color button, instead embed a GtkColorSelection directly in the dialog so everything is in one window. Open issues: - The weird toggle/color/text menu items in the popup menu aren't there. For now they're just regular toggle items. I'll deal with it later. - Filter intergration is broken at the moment. svn path=/branches/kill-bonobo/; revision=37233 --- mail/mail-config.c | 53 ----------------------------------------------------- 1 file changed, 53 deletions(-) (limited to 'mail/mail-config.c') diff --git a/mail/mail-config.c b/mail/mail-config.c index 00c847b3c4..2186ce0e21 100644 --- a/mail/mail-config.c +++ b/mail/mail-config.c @@ -52,7 +52,6 @@ #include #include #include -#include "e-util/e-util-labels.h" #include "e-util/e-account-utils.h" #include "e-util/e-signature-utils.h" @@ -191,33 +190,6 @@ config_write_style (void) gtk_rc_reparse_all (); } -static void -config_clear_labels (void) -{ - if (!config) - return; - - e_util_labels_free (config->labels); - config->labels = NULL; -} - -static void -config_cache_labels (GConfClient *client) -{ - if (!config) - return; - - config->labels = e_util_labels_parse (client); -} - -static void -gconf_labels_changed (GConfClient *client, guint cnxn_id, - GConfEntry *entry, gpointer user_data) -{ - config_clear_labels (); - config_cache_labels (client); -} - static void gconf_style_changed (GConfClient *client, guint cnxn_id, GConfEntry *entry, gpointer user_data) @@ -449,18 +421,6 @@ mail_config_init (void) gconf_client_notify_add ( config->gconf, key, func, NULL, NULL, NULL); - /* Label Configuration */ - - gconf_client_add_dir ( - config->gconf, E_UTIL_LABELS_GCONF_KEY, - GCONF_CLIENT_PRELOAD_ONELEVEL, NULL); - - gconf_client_notify_add ( - config->gconf, E_UTIL_LABELS_GCONF_KEY, - gconf_labels_changed, NULL, NULL, NULL); - - config_cache_labels (config->gconf); - /* MIME Type Configuration */ gconf_client_add_dir ( @@ -525,7 +485,6 @@ mail_config_clear (void) if (!config) return; - config_clear_labels (); config_clear_mime_types (); } @@ -696,18 +655,6 @@ mail_config_get_enable_magic_spacebar () return config->magic_spacebar; } -/** - * mail_config_get_labels - * - * @return list of known labels, each member data is EUtilLabel structure. - * Returned list should not be freed, neither data inside it. - **/ -GSList * -mail_config_get_labels (void) -{ - return config->labels; -} - const char ** mail_config_get_allowable_mime_types (void) { -- cgit