diff options
author | 0 <NotZed@Ximian.com> | 2001-09-21 06:58:23 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2001-09-21 06:58:23 +0800 |
commit | a6aba35df1c77772c1417354a68a310f90944ced (patch) | |
tree | 861e43b059646000b3f087648ca2630438a39fcd /camel/providers/local | |
parent | c503814d7ff5b5656cf1ac92c3f51a327859f76f (diff) | |
download | gsoc2013-evolution-a6aba35df1c77772c1417354a68a310f90944ced.tar gsoc2013-evolution-a6aba35df1c77772c1417354a68a310f90944ced.tar.gz gsoc2013-evolution-a6aba35df1c77772c1417354a68a310f90944ced.tar.bz2 gsoc2013-evolution-a6aba35df1c77772c1417354a68a310f90944ced.tar.lz gsoc2013-evolution-a6aba35df1c77772c1417354a68a310f90944ced.tar.xz gsoc2013-evolution-a6aba35df1c77772c1417354a68a310f90944ced.tar.zst gsoc2013-evolution-a6aba35df1c77772c1417354a68a310f90944ced.zip |
Build the path on the folderinfo.
2001-09-20 <NotZed@Ximian.com>
* providers/local/camel-maildir-store.c (camel_folder_info_new):
Build the path on the folderinfo.
* providers/local/camel-spool-store.c (get_folder_info): If we
have this folder open, then set unread from the folder itself.
(get_folder_info): Change the INBOX path to not include the
leading /.
* providers/local/camel-spool-folder.c
(camel_spool_folder_construct): Fix path.
(camel_spool_folder_construct): Properly setup the url field when
we say we've got a new folder created.
* providers/imap/camel-imap-store.c (unsubscribe_folder): Build
path on folderinfo.
* camel-store.c (camel_folder_info_build_path): Prepend / to path.
* camel-vee-folder.c (camel_vee_folder_construct): Use macro for
unmatched folder name.
(camel_vee_folder_new): "
* camel-vee-store.c (vee_get_folder_info): Use macro for unmatched
folder name.
(vee_delete_folder): "
(vee_rename_folder): "
(vee_get_folder): Prepend / onto path.
(vee_delete_folder): Setup path in folderinfo.
(vee_get_folder_info): Fix path in folderinfo.
* camel-vee-folder.h (CAMEL_UNMATCHED_NAME): New define for
unmatched (internal) name.
svn path=/trunk/; revision=13022
Diffstat (limited to 'camel/providers/local')
-rw-r--r-- | camel/providers/local/camel-local-folder.c | 9 | ||||
-rw-r--r-- | camel/providers/local/camel-local-store.c | 3 | ||||
-rw-r--r-- | camel/providers/local/camel-maildir-store.c | 1 | ||||
-rw-r--r-- | camel/providers/local/camel-spool-folder.c | 4 | ||||
-rw-r--r-- | camel/providers/local/camel-spool-store.c | 17 |
5 files changed, 22 insertions, 12 deletions
diff --git a/camel/providers/local/camel-local-folder.c b/camel/providers/local/camel-local-folder.c index bce610bc70..2887fcce73 100644 --- a/camel/providers/local/camel-local-folder.c +++ b/camel/providers/local/camel-local-folder.c @@ -226,12 +226,9 @@ camel_local_folder_construct(CamelLocalFolder *lf, CamelStore *parent_store, con fi->name = g_strdup (name); fi->url = g_strdup (lf->folder_path); fi->unread_message_count = -1; - fi->path = g_strdup (full_name); - - camel_object_trigger_event (CAMEL_OBJECT (parent_store), - "folder_created", fi); - - camel_folder_info_free (fi); + camel_folder_info_build_path(fi, '/'); + camel_object_trigger_event(CAMEL_OBJECT (parent_store), "folder_created", fi); + camel_folder_info_free(fi); return lf; } diff --git a/camel/providers/local/camel-local-store.c b/camel/providers/local/camel-local-store.c index 20f90ce315..92e5159f1b 100644 --- a/camel/providers/local/camel-local-store.c +++ b/camel/providers/local/camel-local-store.c @@ -303,7 +303,8 @@ delete_folder(CamelStore *store, const char *folder_name, CamelException *ex) fi->name = g_strdup (g_basename (folder_name)); fi->url = g_strdup_printf ("%s%s", CAMEL_SERVICE(store)->url->path, folder_name); fi->unread_message_count = -1; - + camel_folder_info_build_path(fi, '/'); + camel_object_trigger_event (CAMEL_OBJECT (store), "folder_deleted", fi); diff --git a/camel/providers/local/camel-maildir-store.c b/camel/providers/local/camel-maildir-store.c index 09188ad863..974a66a038 100644 --- a/camel/providers/local/camel-maildir-store.c +++ b/camel/providers/local/camel-maildir-store.c @@ -224,6 +224,7 @@ static CamelFolderInfo *camel_folder_info_new(const char *url, const char *full, fi->full_name = g_strdup(full); fi->name = g_strdup(name); fi->unread_message_count = unread; + camel_folder_info_build_path(fi, '/'); return fi; } diff --git a/camel/providers/local/camel-spool-folder.c b/camel/providers/local/camel-spool-folder.c index 43b8abec60..8e8b3758a5 100644 --- a/camel/providers/local/camel-spool-folder.c +++ b/camel/providers/local/camel-spool-folder.c @@ -206,9 +206,9 @@ camel_spool_folder_construct(CamelSpoolFolder *lf, CamelStore *parent_store, con fi = g_malloc0(sizeof(*fi)); fi->full_name = g_strdup(full_name); fi->name = g_strdup(name); - fi->url = g_strdup(lf->folder_path); + fi->url = g_strdup_printf("spool:%s#%s", ((CamelService *)parent_store)->url->path, fi->name); fi->unread_message_count = camel_folder_get_unread_message_count(folder); - fi->path = g_strdup (full_name); + camel_folder_info_build_path(fi, '/'); camel_object_trigger_event(CAMEL_OBJECT(parent_store), "folder_created", fi); camel_folder_info_free (fi); diff --git a/camel/providers/local/camel-spool-store.c b/camel/providers/local/camel-spool-store.c index 998c97597c..c10c0f252d 100644 --- a/camel/providers/local/camel-spool-store.c +++ b/camel/providers/local/camel-spool-store.c @@ -34,6 +34,7 @@ #include "camel-spool-folder.h" #include "camel-exception.h" #include "camel-url.h" +#include "camel-private.h" #define d(x) @@ -186,14 +187,24 @@ get_folder_info (CamelStore *store, const char *top, { CamelFolderInfo *fi = NULL; CamelService *service = (CamelService *)store; + CamelFolder *folder; - if (top == NULL || strcmp(top, "/INBOX") == 0) { + if (top == NULL || strcmp(top, "INBOX") == 0) { /* FIXME: if the folder is opened we could look it up? */ fi = g_malloc0(sizeof(*fi)); - fi->full_name = "/INBOX"; + fi->full_name = "INBOX"; fi->name = "INBOX"; fi->url = g_strdup_printf("spool:%s#%s", service->url->path, fi->name); - fi->unread_message_count = -1; + + CAMEL_STORE_LOCK(store, cache_lock); + folder = g_hash_table_lookup(store->folders, fi->full_name); + if (folder) + fi->unread_message_count = camel_folder_get_message_count(folder); + else + fi->unread_message_count = -1; + CAMEL_STORE_UNLOCK(store, cache_lock); + + camel_folder_info_build_path(fi, '/'); } return fi; |