From d48d40c7cea47dc69e10988417e99c525b877a16 Mon Sep 17 00:00:00 2001 From: Jeffrey Stedfast Date: Fri, 31 Jan 2003 19:40:31 +0000 Subject: New function to return a cached list of labels. 2003-01-31 Jeffrey Stedfast * mail-config.c (mail_config_get_labels): New function to return a cached list of labels. (mail_config_get_label_color_by_name): New convenience function to search the cached labels. (mail_config_get_label_color_by_index): Same. (mail_config_init): Cache the labels and also listen for changes to them in the gconf db. (config_cache_labels): Internal function to cache the labels. * folder-browser.c (on_right_click): Fixed the label colours in the menu by using the cached linked list of labels. * mail-preferences.c (colorpicker_set_color): Now takes a string argument allowing us to get rid of converting a string into an rgb guint32 all over the place when trying to set defaults, since we now store colors in gconf as strings. (mail_preferences_construct): Use the cached labels (they are already parsed for us). svn path=/trunk/; revision=19694 --- mail/message-list.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'mail/message-list.c') diff --git a/mail/message-list.c b/mail/message-list.c index b050259cfc..17278893db 100644 --- a/mail/message-list.c +++ b/mail/message-list.c @@ -990,8 +990,14 @@ ml_tree_value_at (ETreeModel *etm, ETreePath path, int col, void *model_data) completed = camel_tag_get ((CamelTag **) &msg_info->user_tags, "completed-on"); label = camel_tag_get ((CamelTag **) &msg_info->user_tags, "label"); if (colour == NULL) { + find_colour: if (label != NULL) { - colour = mail_config_get_label_color_string (filter_label_index (label)); + colour = mail_config_get_label_color_by_name (label); + if (colour == NULL) { + /* dead label? */ + label = NULL; + goto find_colour; + } } else if (msg_info->flags & CAMEL_MESSAGE_FLAGGED) { /* FIXME: extract from the xpm somehow. */ colour = "#A7453E"; -- cgit v1.2.3