X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-tny-local-folders-account.c;h=892933037f2af3d56e3a7ecf4f85cf96ae8b8e1b;hp=01202d0e66d594cbe874b8d7b5e79c575fb3d14d;hb=74fd9d79e3716232f6d34fa7bec4b63989fc8daf;hpb=73ff5631e341099af1b9a442dade4cf9d8e600ee diff --git a/src/modest-tny-local-folders-account.c b/src/modest-tny-local-folders-account.c index 01202d0..8929330 100644 --- a/src/modest-tny-local-folders-account.c +++ b/src/modest-tny-local-folders-account.c @@ -39,6 +39,7 @@ #include #include #include +#include G_DEFINE_TYPE (ModestTnyLocalFoldersAccount, modest_tny_local_folders_account, @@ -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)) @@ -239,7 +240,7 @@ modest_tny_local_folders_account_add_folder_to_outbox (ModestTnyLocalFoldersAcco /* 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); @@ -248,3 +249,28 @@ modest_tny_local_folders_account_add_folder_to_outbox (ModestTnyLocalFoldersAcco /* Add outbox to the global OUTBOX folder */ tny_merge_folder_add_folder (priv->outbox_folder, per_account_outbox); } + +void +modest_tny_local_folders_account_remove_folder_from_outbox (ModestTnyLocalFoldersAccount *self, + TnyFolder *per_account_outbox) +{ + ModestTnyLocalFoldersAccountPrivate *priv; + TnyList *merged_folders = NULL; + + g_return_if_fail (MODEST_IS_TNY_LOCAL_FOLDERS_ACCOUNT (self)); + g_return_if_fail (TNY_IS_FOLDER (per_account_outbox)); + + priv = TNY_LOCAL_FOLDERS_ACCOUNT_GET_PRIVATE (self); + + /* Remove outbox from the global OUTBOX folder */ + tny_merge_folder_remove_folder (priv->outbox_folder, per_account_outbox); + + /* If there is no folder in the outbox the delete it */ + merged_folders = tny_simple_list_new (); + tny_merge_folder_get_folders (priv->outbox_folder, merged_folders); + if (tny_list_get_length (merged_folders) == 0) { + g_object_unref (priv->outbox_folder); + priv->outbox_folder = NULL; + } + g_object_unref (merged_folders); +}