Added new method modest_tny_folder_get_display_name
authorJose Dapena Paz <jdapena@igalia.com>
Fri, 9 Jan 2009 12:49:23 +0000 (12:49 +0000)
committerJose Dapena Paz <jdapena@igalia.com>
Fri, 9 Jan 2009 12:49:23 +0000 (12:49 +0000)
pmo-trunk-r7089

src/modest-tny-folder.c
src/modest-tny-folder.h

index 62149cb..8188eeb 100644 (file)
@@ -489,3 +489,38 @@ modest_tny_folder_is_ancestor (TnyFolder *folder,
        }
        return found;
 }
        }
        return found;
 }
+
+gchar * 
+modest_tny_folder_get_display_name (TnyFolder *folder)
+{
+       TnyFolderType type = TNY_FOLDER_TYPE_UNKNOWN;
+       gchar *fname;
+
+       g_return_val_if_fail (TNY_IS_FOLDER (folder), NULL);
+
+       fname = g_strdup (tny_folder_get_name (folder));
+       type = tny_folder_get_folder_type (folder);
+
+       if (modest_tny_folder_is_local_folder (TNY_FOLDER (folder)) ||
+           modest_tny_folder_is_memory_card_folder (TNY_FOLDER (folder))) {
+               type = modest_tny_folder_get_local_or_mmc_folder_type (TNY_FOLDER (folder));
+               if (type != TNY_FOLDER_TYPE_UNKNOWN) {
+                       g_free (fname);
+                               fname = g_strdup (modest_local_folder_info_get_type_display_name (type));
+               }
+       } else {
+               /* Sometimes an special folder is reported by the server as
+                  NORMAL, like some versions of Dovecot */
+               if (type == TNY_FOLDER_TYPE_NORMAL ||
+                   type == TNY_FOLDER_TYPE_UNKNOWN) {
+                       type = modest_tny_folder_guess_folder_type (TNY_FOLDER (folder));
+               }
+       }
+
+       if (type == TNY_FOLDER_TYPE_INBOX) {
+               g_free (fname);
+               fname = g_strdup (_("mcen_me_folder_inbox"));
+       }
+
+       return fname;
+}
index 585739a..c11f3a7 100644 (file)
@@ -203,6 +203,16 @@ gboolean modest_tny_folder_has_subfolder_with_name (TnyFolderStore *folder,
 gboolean modest_tny_folder_is_ancestor (TnyFolder *folder,
                                        TnyFolderStore *ancestor);
 
 gboolean modest_tny_folder_is_ancestor (TnyFolder *folder,
                                        TnyFolderStore *ancestor);
 
+/**
+ * modest_tny_folder_get_display_name:
+ * @folder: a #TnyFolder
+ *
+ * obtain the display name for @folder
+ *
+ * Returns: a newly allocated string
+ */
+gchar * modest_tny_folder_get_display_name (TnyFolder *folder);
+
 G_END_DECLS
 
 #endif /* __MODEST_TNY_FOLDER_H__*/
 G_END_DECLS
 
 #endif /* __MODEST_TNY_FOLDER_H__*/