* src/modest-tny-local-folders-account.[ch]:
[modest] / src / modest-tny-local-folders-account.c
index cf244d1..1891dea 100644 (file)
@@ -39,6 +39,7 @@
 #include <tny-camel-folder.h>
 #include <tny-merge-folder.h>
 #include <tny-simple-list.h>
+#include <tny-gtk-lockable.h>
 
 G_DEFINE_TYPE (ModestTnyLocalFoldersAccount, 
        modest_tny_local_folders_account, 
@@ -79,8 +80,8 @@ modest_tny_local_folders_account_class_init (ModestTnyLocalFoldersAccountClass *
        object_class->finalize = modest_tny_local_folders_account_finalize;
          
        /* Override virtual functions from the parent class: */
-       TNY_CAMEL_STORE_ACCOUNT_CLASS(klass)->get_folders_func = get_folders;
-       TNY_CAMEL_STORE_ACCOUNT_CLASS(klass)->create_folder_func = create_folder;
+       TNY_CAMEL_STORE_ACCOUNT_CLASS(klass)->get_folders = get_folders;
+       TNY_CAMEL_STORE_ACCOUNT_CLASS(klass)->create_folder = create_folder;
 }
 
 static void
@@ -113,7 +114,7 @@ modest_tny_local_folders_account_query_passes (TnyFolderStoreQuery *query, TnyFo
                        TnyFolderStoreQueryItem *item = (TnyFolderStoreQueryItem*) tny_iterator_get_current (iterator);
                        if (item) {
                                TnyFolderStoreQueryOption options = tny_folder_store_query_item_get_options (item);
-                               regex_t *regex = tny_folder_store_query_item_get_regex (item);
+                               const regex_t *regex = tny_folder_store_query_item_get_regex (item);
 
                                if ((options & TNY_FOLDER_STORE_QUERY_OPTION_SUBSCRIBED) &&
                                   tny_folder_is_subscribed (folder))
@@ -153,7 +154,7 @@ get_folders (TnyFolderStore *self, TnyList *list, TnyFolderStoreQuery *query, GE
 
        /* Call the base class implementation: */
        parent_class = g_type_class_peek_parent (MODEST_TNY_LOCAL_FOLDERS_ACCOUNT_GET_CLASS (self));
-       parent_class->get_folders_func (self, list, query, err);
+       parent_class->get_folders (self, list, query, err);
        
        /* Add our extra folder only if it passes the query */
        priv = TNY_LOCAL_FOLDERS_ACCOUNT_GET_PRIVATE (self);
@@ -174,14 +175,14 @@ create_folder (TnyFolderStore *self,
 
        /* If the folder name is been used by our extra folders */
        if (modest_tny_local_folders_account_folder_name_in_use (MODEST_TNY_LOCAL_FOLDERS_ACCOUNT (self), name)) {
-               g_set_error (err, TNY_FOLDER_STORE_ERROR, 
-                            TNY_FOLDER_STORE_ERROR_CREATE_FOLDER,
+               g_set_error (err, TNY_SERVICE_ERROR, 
+                            TNY_SERVICE_ERROR_FOLDER_CREATE,
                             "Folder name already in use");
                return NULL;
        }
 
        /* Call the base class implementation: */
-       return parent_class->create_folder_func (self, name, err);
+       return parent_class->create_folder (self, name, err);
 }
 
 /*****************************/
@@ -231,15 +232,11 @@ modest_tny_local_folders_account_add_folder_to_outbox (ModestTnyLocalFoldersAcco
        g_return_if_fail (MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (self));
        g_return_if_fail (TNY_IS_FOLDER (per_account_outbox));
 
-       /* We can not test it yet, because there is no API to set the
-          type of a folder */
-/*     g_return_if_fail (tny_folder_get_folder_type (per_account_outbox) == TNY_FOLDER_TYPE_OUTBOX); */
-
        priv = TNY_LOCAL_FOLDERS_ACCOUNT_GET_PRIVATE (self);
 
        /* Create on-demand */
        if (!priv->outbox_folder) {
-               priv->outbox_folder = TNY_MERGE_FOLDER (tny_merge_folder_new (_("mcen_me_folder_outbox")));
+               priv->outbox_folder = TNY_MERGE_FOLDER (tny_merge_folder_new_with_ui_locker (_("mcen_me_folder_outbox"), tny_gtk_lockable_new ()));
        
                /* Set type to outbox */
                tny_merge_folder_set_folder_type (priv->outbox_folder, TNY_FOLDER_TYPE_OUTBOX);
@@ -273,3 +270,16 @@ modest_tny_local_folders_account_remove_folder_from_outbox (ModestTnyLocalFolder
        }
        g_object_unref (merged_folders);
 }
+
+TnyFolder *
+modest_tny_local_folders_account_get_merged_outbox (ModestTnyLocalFoldersAccount *self)
+{
+       ModestTnyLocalFoldersAccountPrivate *priv;
+       g_return_val_if_fail (MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (self), NULL);
+
+       priv = TNY_LOCAL_FOLDERS_ACCOUNT_GET_PRIVATE (self);
+       if (priv->outbox_folder)
+               return g_object_ref (priv->outbox_folder);
+       else
+               return NULL;
+}