* Fixes NB#100011, just created child folders are visible again
[modest] / src / widgets / modest-folder-view.c
index b7bda4d..cd9ad27 100644 (file)
@@ -543,6 +543,10 @@ format_compact_style (gchar **item_name,
                        gchar *new_item_name;
 
                        new_item_name = g_strdup (*item_name + strlen (prefix));
+                       if (!g_ascii_strcasecmp (new_item_name, "Inbox")) {
+                               g_free (new_item_name);
+                               new_item_name = g_strdup (_("mcen_me_folder_inbox"));
+                       }
                        g_free (*item_name);
                        *item_name = new_item_name;
                }
@@ -1760,6 +1764,9 @@ foreach_folder_with_id (GtkTreeModel *model,
                }
        }
 
+       if (instance)
+               g_object_unref (instance);
+
        return info->found;
        
 }
@@ -1991,8 +1998,22 @@ filter_row (GtkTreeModel *model, GtkTreeIter *iter, gpointer data)
        }
 
        if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_HIDE_LOCAL_FOLDERS)) {
-               if (!modest_tny_folder_store_is_remote (TNY_FOLDER_STORE (instance))) {
-                       return FALSE;
+               if (TNY_IS_ACCOUNT (instance)) {
+                       if (modest_tny_account_is_virtual_local_folders (TNY_ACCOUNT (instance)))
+                               return FALSE;
+               } else if (TNY_IS_FOLDER (instance)) {
+                       if (modest_tny_folder_is_local_folder (TNY_FOLDER (instance)))
+                               return FALSE;
+               }
+       }
+
+       if (retval && (priv->filter & MODEST_FOLDER_VIEW_FILTER_HIDE_MCC_FOLDERS)) {
+               if (TNY_IS_ACCOUNT (instance)) {
+                       if (modest_tny_account_is_memory_card_account (TNY_ACCOUNT (instance)))
+                               return FALSE;
+               } else if (TNY_IS_FOLDER (instance)) {
+                       if (modest_tny_folder_is_memory_card_folder (TNY_FOLDER (instance)))
+                               return FALSE;
                }
        }