diff options
author | Dan Winship <danw@src.gnome.org> | 2000-10-03 03:08:20 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2000-10-03 03:08:20 +0800 |
commit | e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2 (patch) | |
tree | e70ca64851c0167f959a9e6c0c38179cd0de102b /camel/camel-store.h | |
parent | 46d07e9e465e336a5c39d8c27c846cb380fbc6fb (diff) | |
download | gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.gz gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.bz2 gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.lz gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.xz gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.tar.zst gsoc2013-evolution-e9dc30dbf0c018bbc845f253bfe0b26baddbeaf2.zip |
Remove camel_folder_{get,free}_subfolder_info, as we want to be able to
* camel-folder.[ch]: Remove
camel_folder_{get,free}_subfolder_info, as we want to be able to
scan the whole subfolder tree without having to open any folders,
so this needs to be in CamelStore. Remove can_hold_folders and
can_hold_messages flags; things that don't hold messages are no
longer considered CamelFolders.
* camel-folder-summary.[ch]: Remove CamelFolderInfo stuff.
* camel-store.[ch]: Add camel_store_{get,free}_folder_info, as
well as camel_store_free_folder_info_full and ..._nop for default
implementations, and camel_folder_info_free and
camel_folder_info_build as convenience functions. Turn
CamelFolderInfo into a tree structure and also add an "url"
member.
* providers/*/camel-*-folder.c: Remove subfolder_info and can_hold
stuff.
* providers/*/camel-*-store.c: Add folder_info stuff.
* providers/imap/camel-imap-folder.c (imap_summary_free): Free the
summary elements with camel_message_info_free, not
camel_folder_info_free. Oops.
* providers/imap/camel-imap-utils.c: const poison
svn path=/trunk/; revision=5663
Diffstat (limited to 'camel/camel-store.h')
-rw-r--r-- | camel/camel-store.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/camel/camel-store.h b/camel/camel-store.h index 1ba2ff9869..07ee939c6f 100644 --- a/camel/camel-store.h +++ b/camel/camel-store.h @@ -37,6 +37,14 @@ extern "C" { #include <camel/camel-object.h> #include <camel/camel-service.h> + +typedef struct _CamelFolderInfo { + struct _CamelFolderInfo *sibling, *child; + char *url, *full_name, *name; + int message_count, unread_message_count; +} CamelFolderInfo; + + #define CAMEL_STORE_TYPE (camel_store_get_type ()) #define CAMEL_STORE(obj) (CAMEL_CHECK_CAST((obj), CAMEL_STORE_TYPE, CamelStore)) #define CAMEL_STORE_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), CAMEL_STORE_TYPE, CamelStoreClass)) @@ -84,6 +92,14 @@ typedef struct { void (*uncache_folder) (CamelStore *store, CamelFolder *folder); + CamelFolderInfo *(*get_folder_info) (CamelStore *store, + const char *top, + gboolean fase, + gboolean recursive, + CamelException *ex); + void (*free_folder_info) (CamelStore *store, + CamelFolderInfo *fi); + } CamelStoreClass; @@ -108,6 +124,26 @@ void camel_store_rename_folder (CamelStore *store, const char *new_name, CamelException *ex); +CamelFolderInfo *camel_store_get_folder_info (CamelStore *store, + const char *top, + gboolean fase, + gboolean recursive, + CamelException *ex); +void camel_store_free_folder_info (CamelStore *store, + CamelFolderInfo *fi); + + +void camel_store_free_folder_info_full (CamelStore *store, + CamelFolderInfo *fi); +void camel_store_free_folder_info_nop (CamelStore *store, + CamelFolderInfo *fi); + +void camel_folder_info_free (CamelFolderInfo *fi); +void camel_folder_info_build (GPtrArray *folders, + CamelFolderInfo *top, + char separator, + gboolean short_names); + #ifdef __cplusplus } #endif /* __cplusplus */ |