aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-store.c
diff options
context:
space:
mode:
authorNot Zed <NotZed@Ximian.com>2004-02-05 13:14:04 +0800
committerMichael Zucci <zucchi@src.gnome.org>2004-02-05 13:14:04 +0800
commitab318a91925aa31a10e0b225d2ef7fd9b0fa9a4c (patch)
tree0531c5e1372700ac9d7d2cbed113cfc3b5283d1a /camel/camel-store.c
parent1771797074cb50808f2b9fe4132be177d7fae2a8 (diff)
downloadgsoc2013-evolution-ab318a91925aa31a10e0b225d2ef7fd9b0fa9a4c.tar
gsoc2013-evolution-ab318a91925aa31a10e0b225d2ef7fd9b0fa9a4c.tar.gz
gsoc2013-evolution-ab318a91925aa31a10e0b225d2ef7fd9b0fa9a4c.tar.bz2
gsoc2013-evolution-ab318a91925aa31a10e0b225d2ef7fd9b0fa9a4c.tar.lz
gsoc2013-evolution-ab318a91925aa31a10e0b225d2ef7fd9b0fa9a4c.tar.xz
gsoc2013-evolution-ab318a91925aa31a10e0b225d2ef7fd9b0fa9a4c.tar.zst
gsoc2013-evolution-ab318a91925aa31a10e0b225d2ef7fd9b0fa9a4c.zip
** See bug #53553.
2004-02-05 Not Zed <NotZed@Ximian.com> ** See bug #53553. * camel-provider.c (camel_provider_init): changed to return a hashtable of url protocols to CamelProviderModule structs, rather than simple strings. * camel-session.c (get_provider): if we load a provider module, mark it as loaded. (ensure_loaded): Check the module loaded flag before trying to load it. * providers/local/libcamellocal.urls: Remove spoold from the list, since it doesn't exist anymore. Actually fixes #53553, the rest is to robustify the code. 2004-02-05 Not Zed <NotZed@Ximian.com> * camel-session.c (CS_CLASS): dont typecheck cast. * camel-store.c (camel_vjunk_folder_new): removed, use vtrash_new(junk). (setup_special): changed to get_special, with a type now, and dont add vtrash folders to the sources. (get_trash, get_junk): down to 1 liners, call get_special * camel-vtrash-folder.c (CF_CLASS): dont use cast typecheck macros here, makes debugging easier and removes redundant checks. (camel_vtrash_folder_init): dont set flags here. (camel_vtrash_folder_new): takes a new argument, type, for junk folders too, removed name arg (taken from type). (vtrash_transfer_messages_to): parameterise flag processing. svn path=/trunk/; revision=24625
Diffstat (limited to 'camel/camel-store.c')
-rw-r--r--camel/camel-store.c40
1 files changed, 11 insertions, 29 deletions
diff --git a/camel/camel-store.c b/camel/camel-store.c
index 556d8daf52..d4ebdc89b8 100644
--- a/camel/camel-store.c
+++ b/camel/camel-store.c
@@ -517,53 +517,35 @@ camel_store_get_inbox (CamelStore *store, CamelException *ex)
return folder;
}
-/* FIXME: derive vjunk folder object from vee_folder */
-#include "camel-vee-store.h"
static CamelFolder *
-camel_vjunk_folder_new (CamelStore *parent_store, const char *name)
+get_special(CamelStore *store, enum _camel_vtrash_folder_t type)
{
- CamelFolder *vjunk;
-
- vjunk = (CamelFolder *)camel_object_new (camel_vee_folder_get_type ());
- vjunk->folder_flags |= CAMEL_FOLDER_IS_JUNK;
- camel_vee_folder_construct (CAMEL_VEE_FOLDER (vjunk), parent_store, name,
- CAMEL_STORE_FOLDER_PRIVATE | CAMEL_STORE_FOLDER_CREATE | CAMEL_STORE_VEE_FOLDER_AUTO);
- camel_vee_folder_set_expression((CamelVeeFolder *)vjunk, "(match-all (system-flag \"Junk\"))");
-
- return vjunk;
-}
-
-static void
-setup_special(CamelStore *store, CamelFolder *folder)
-{
- GPtrArray *folders = camel_object_bag_list(store->folders);
+ CamelFolder *folder;
+ GPtrArray *folders;
int i;
+ folder = camel_vtrash_folder_new(store, type);
+ folders = camel_object_bag_list(store->folders);
for (i=0;i<folders->len;i++) {
- camel_vee_folder_add_folder((CamelVeeFolder *)folder, (CamelFolder *)folders->pdata[i]);
+ if (!CAMEL_IS_VTRASH_FOLDER(folders->pdata[i]))
+ camel_vee_folder_add_folder((CamelVeeFolder *)folder, (CamelFolder *)folders->pdata[i]);
camel_object_unref(folders->pdata[i]);
}
g_ptr_array_free(folders, TRUE);
+
+ return folder;
}
static CamelFolder *
get_trash(CamelStore *store, CamelException *ex)
{
- CamelFolder *folder = camel_vtrash_folder_new(store, CAMEL_VTRASH_NAME);
-
- setup_special(store, folder);
-
- return folder;
+ return get_special(store, CAMEL_VTRASH_FOLDER_TRASH);
}
static CamelFolder *
get_junk(CamelStore *store, CamelException *ex)
{
- CamelFolder *folder = camel_vjunk_folder_new(store, CAMEL_VJUNK_NAME);
-
- setup_special(store, folder);
-
- return folder;
+ return get_special(store, CAMEL_VTRASH_FOLDER_JUNK);
}
/**