* Renamed a function
[modest] / src / modest-tny-folder.c
index 1dfeefd..9b13e75 100644 (file)
@@ -379,39 +379,27 @@ modest_tny_folder_get_account (TnyFolder *folder)
 }
 
 gboolean 
-modest_tny_folder_same_subfolder (TnyFolderStore *parent,
-                                 const gchar *new_name)
+modest_tny_folder_has_subfolder_with_name (TnyFolderStore *parent,
+                                          const gchar *name)
 {
-       TnyList *subfolders = NULL;
-       TnyIterator *iter = NULL;
-       TnyFolder *folder = NULL;
-       GError *err = NULL;
-       const gchar *name = NULL;
-       gboolean same_subfolder = FALSE;
+       TnyList *list;
+       TnyFolderStoreQuery *query;
+       guint length;
 
        g_return_val_if_fail (TNY_IS_FOLDER_STORE (parent), FALSE);
+       g_return_val_if_fail (name, FALSE);
 
-       /* Get direct subfolders */
-       subfolders = tny_simple_list_new ();
-       tny_folder_store_get_folders (parent, subfolders, NULL, &err);
+       /* Create the query */
+       list = tny_simple_list_new ();
+       query = tny_folder_store_query_new ();
+       tny_folder_store_query_add_item (query, name,
+                                        TNY_FOLDER_STORE_QUERY_OPTION_MATCH_ON_NAME);
 
-       /* Check names */
-       iter = tny_list_create_iterator (subfolders);
-       while (!tny_iterator_is_done (iter) && !same_subfolder) {
-               folder = TNY_FOLDER(tny_iterator_get_current (iter));
-               name = tny_folder_get_name (folder);
-               
-               same_subfolder = !strcmp(name, new_name);
+       /* Get subfolders */
+       tny_folder_store_get_folders (parent, list, query, NULL);       
+       length = tny_list_get_length (list);
+       g_object_unref (query);
+       g_object_unref (list);
 
-               g_object_unref (folder);
-               tny_iterator_next(iter);
-       }
-       
-       /* free */
-       if (iter != NULL)
-               g_object_unref (iter);
-       if (subfolders != NULL)
-               g_object_unref (subfolders);
-               
-       return same_subfolder;
+       return (length > 0) ? TRUE : FALSE;
 }