From 347a9a04cf4c1fbacdb7c44f872e9d67bc0801b0 Mon Sep 17 00:00:00 2001 From: Not Zed Date: Tue, 1 Feb 2005 07:41:49 +0000 Subject: use the type hint to sort for inbox, not the name. 2005-02-01 Not Zed * em-folder-tree-model.c (sort_cb): use the type hint to sort for inbox, not the name. (emft_is_special_local_folder): removed. (em_folder_tree_model_set_folder_info): special-case the local-store case, handle translated names and the name hints. * em-folder-tree.c (render_pixbuf): use the camel folderinfo folder type to determine the icon, don't hardcode based on name. ** See bug #71310 * em-composer-prefs.c (sig_add_script_response): force a save of the signatures as soon as they change. Also save the script name if we were just editing it, not just the signature name. svn path=/trunk/; revision=28653 --- mail/em-folder-tree.c | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) (limited to 'mail/em-folder-tree.c') diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c index d8741e0c71..ad88721c5b 100644 --- a/mail/em-folder-tree.c +++ b/mail/em-folder-tree.c @@ -279,7 +279,6 @@ render_pixbuf (GtkTreeViewColumn *column, GtkCellRenderer *renderer, GdkPixbuf *pixbuf = NULL; gboolean is_store; guint32 flags; - char *full_name; if (!initialised) { folder_icons[FOLDER_ICON_NORMAL] = e_icon_factory_get_icon ("stock_folder", E_ICON_SIZE_MENU); @@ -292,27 +291,33 @@ render_pixbuf (GtkTreeViewColumn *column, GtkCellRenderer *renderer, initialised = TRUE; } - gtk_tree_model_get (model, iter, COL_STRING_FULL_NAME, &full_name, - COL_BOOL_IS_STORE, &is_store, COL_UINT_FLAGS, &flags, -1); - if (!is_store && full_name != NULL) { - if (!g_ascii_strcasecmp (full_name, "Inbox")) + gtk_tree_model_get (model, iter, COL_BOOL_IS_STORE, &is_store, COL_UINT_FLAGS, &flags, -1); + + if (!is_store) { + switch((flags & CAMEL_FOLDER_TYPE_MASK)) { + case CAMEL_FOLDER_TYPE_INBOX: pixbuf = folder_icons[FOLDER_ICON_INBOX]; - else if (!g_ascii_strcasecmp (full_name, "Outbox")) + break; + case CAMEL_FOLDER_TYPE_OUTBOX: pixbuf = folder_icons[FOLDER_ICON_OUTBOX]; - else if (!strcmp (full_name, CAMEL_VTRASH_NAME)) + break; + case CAMEL_FOLDER_TYPE_TRASH: pixbuf = folder_icons[FOLDER_ICON_TRASH]; - else if (!strcmp (full_name, CAMEL_VJUNK_NAME)) + break; + case CAMEL_FOLDER_TYPE_JUNK: pixbuf = folder_icons[FOLDER_ICON_JUNK]; - else if (flags & CAMEL_FOLDER_SHARED_TO_ME) - pixbuf = folder_icons[FOLDER_ICON_SHARED_TO_ME]; - else if (flags & CAMEL_FOLDER_SHARED_BY_ME) - pixbuf = folder_icons[FOLDER_ICON_SHARED_BY_ME]; - else - pixbuf = folder_icons[FOLDER_ICON_NORMAL]; + break; + default: + if (flags & CAMEL_FOLDER_SHARED_TO_ME) + pixbuf = folder_icons[FOLDER_ICON_SHARED_TO_ME]; + else if (flags & CAMEL_FOLDER_SHARED_BY_ME) + pixbuf = folder_icons[FOLDER_ICON_SHARED_BY_ME]; + else + pixbuf = folder_icons[FOLDER_ICON_NORMAL]; + } } g_object_set (renderer, "pixbuf", pixbuf, "visible", !is_store, NULL); - g_free (full_name); } static void -- cgit