From 29149f57b4faed6a92960f3ca30aa299f608ef99 Mon Sep 17 00:00:00 2001 From: Sergio Villar Senin Date: Fri, 13 Feb 2009 15:37:46 +0000 Subject: [PATCH] WIP pmo-trunk-r7487 --- src/widgets/modest-folder-view.c | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/widgets/modest-folder-view.c b/src/widgets/modest-folder-view.c index 628f449..51c67a2 100644 --- a/src/widgets/modest-folder-view.c +++ b/src/widgets/modest-folder-view.c @@ -500,7 +500,7 @@ convert_parent_folders_to_dots (gchar **item_name) } static void -format_compact_style (gchar **item_name, +format_compact_style (gchar **item_name, GObject *instance, gboolean bold, gboolean multiaccount, @@ -604,17 +604,11 @@ text_cell_data (GtkTreeViewColumn *column, } } - if (type == TNY_FOLDER_TYPE_INBOX) { - if (inbox_is_special (TNY_FOLDER_STORE (instance))) { - g_free (fname); - fname = g_strdup (_("mcen_me_folder_inbox")); - } - } - - /* note: we cannot reliably get the counts from the tree model, we need - * to use explicit calls on tny_folder for some reason. - */ - /* Select the number to show: the unread or unsent messages. in case of outbox/drafts, show all */ + /* note: we cannot reliably get the counts from the + * tree model, we need to use explicit calls on + * tny_folder for some reason. Select the number to + * show: the unread or unsent messages. in case of + * outbox/drafts, show all */ if ((type == TNY_FOLDER_TYPE_DRAFTS) || (type == TNY_FOLDER_TYPE_OUTBOX) || (type == TNY_FOLDER_TYPE_MERGE)) { /* _OUTBOX actually returns _MERGE... */ @@ -887,6 +881,13 @@ get_folder_icons (TnyFolderType type, GObject *instance) type = modest_tny_folder_guess_folder_type (TNY_FOLDER (instance)); } + /* It's not enough with check the folder type. We need to + ensure that we're not giving a special folder icon to a + normal folder with the same name than a special folder */ + if (TNY_IS_FOLDER (instance) && + get_cmp_pos (type, TNY_FOLDER (instance)) == 4) + type = TNY_FOLDER_TYPE_NORMAL; + /* Remote folders should not be treated as special folders */ if (TNY_IS_FOLDER_STORE (instance) && !TNY_IS_ACCOUNT (instance) && @@ -2138,6 +2139,8 @@ inbox_is_special (TnyFolderStore *folder_store) last_inbox_bar = g_strrstr (downcase, "inbox/"); if ((last_inbox_bar == NULL) || (last_inbox_bar + 5 != last_bar)) is_special = FALSE; + } else { + is_special = FALSE; } g_free (downcase); } @@ -2164,7 +2167,7 @@ get_cmp_pos (TnyFolderType t, TnyFolder *folder_store) * inbox of the account, or if it's a submailbox inbox. To do * this we'll apply an heuristic rule: Find last "/" and check * if it's preceeded by another Inbox */ - is_special = is_special && inbox_is_special (TNY_FOLDER_STORE (folder_store)); + is_special = is_special && !inbox_is_special (TNY_FOLDER_STORE (folder_store)); g_object_unref (account); return is_special?0:4; } -- 1.7.9.5