X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-tny-local-folders-account.c;h=e16597e8fa8948d882e9cd2809621d6d504dc3b6;hp=892933037f2af3d56e3a7ecf4f85cf96ae8b8e1b;hb=cc7eb2df1b76f25204d8ca57b2f16df14aebe4c1;hpb=74fd9d79e3716232f6d34fa7bec4b63989fc8daf diff --git a/src/modest-tny-local-folders-account.c b/src/modest-tny-local-folders-account.c index 8929330..e16597e 100644 --- a/src/modest-tny-local-folders-account.c +++ b/src/modest-tny-local-folders-account.c @@ -67,6 +67,13 @@ static TnyFolder* create_folder (TnyFolderStore *self, static void modest_tny_local_folders_account_finalize (GObject *object) { + ModestTnyLocalFoldersAccountPrivate *priv; + + priv = TNY_LOCAL_FOLDERS_ACCOUNT_GET_PRIVATE (object); + if (priv->outbox_folder) { + g_object_unref (priv->outbox_folder); + priv->outbox_folder = NULL; + } G_OBJECT_CLASS (modest_tny_local_folders_account_parent_class)->finalize (object); } @@ -80,8 +87,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 @@ -154,7 +161,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); @@ -175,14 +182,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_ERROR_DOMAIN, + 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); } /*****************************/ @@ -232,10 +239,6 @@ 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 */ @@ -274,3 +277,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; +}