[evolution-data-server] Camel: Add CAMEL_STORE_CAN_EDIT_FOLDERS flag.
- From: Matthew Barnes <mbarnes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Camel: Add CAMEL_STORE_CAN_EDIT_FOLDERS flag.
- Date: Thu, 18 Aug 2011 03:31:33 +0000 (UTC)
commit 5afcc11f3ce3a5a97af9eca4d49f8f20dd9572df
Author: Matthew Barnes <mbarnes redhat com>
Date: Wed Aug 17 19:52:25 2011 -0400
Camel: Add CAMEL_STORE_CAN_EDIT_FOLDERS flag.
Basically for the NNTP provider to clear, or I suppose if you're
proxying someone else's account. Evolution can check for this flag
and disable folder create/delete/rename actions in the context of a
newsgroup server.
Related to bug 656720.
camel/camel-enums.h | 3 ++-
camel/camel-store.c | 13 +++++++++++--
camel/providers/nntp/camel-nntp-store.c | 3 ++-
docs/reference/camel/tmpl/camel-store.sgml | 1 +
4 files changed, 16 insertions(+), 4 deletions(-)
---
diff --git a/camel/camel-enums.h b/camel/camel-enums.h
index 03f3b76..057bc54 100644
--- a/camel/camel-enums.h
+++ b/camel/camel-enums.h
@@ -294,7 +294,8 @@ typedef enum { /*< flags >*/
CAMEL_STORE_VJUNK = 1 << 1,
CAMEL_STORE_PROXY = 1 << 2,
CAMEL_STORE_IS_MIGRATING = 1 << 3,
- CAMEL_STORE_REAL_JUNK_FOLDER = 1 << 4
+ CAMEL_STORE_REAL_JUNK_FOLDER = 1 << 4,
+ CAMEL_STORE_CAN_EDIT_FOLDERS = 1 << 5
} CamelStoreFlags;
/**
diff --git a/camel/camel-store.c b/camel/camel-store.c
index 2a5a732..4b9a998 100644
--- a/camel/camel-store.c
+++ b/camel/camel-store.c
@@ -1216,8 +1216,17 @@ camel_store_init (CamelStore *store)
{
store->priv = CAMEL_STORE_GET_PRIVATE (store);
- /* set vtrash and vjunk on by default */
- store->flags = CAMEL_STORE_VTRASH | CAMEL_STORE_VJUNK;
+ /* Default CamelStore capabilities:
+ *
+ * - Include a virtual Junk folder.
+ * - Include a virtual Trash folder.
+ * - Allow creating/deleting/renaming folders.
+ */
+ store->flags =
+ CAMEL_STORE_VJUNK |
+ CAMEL_STORE_VTRASH |
+ CAMEL_STORE_CAN_EDIT_FOLDERS;
+
store->mode = CAMEL_STORE_READ | CAMEL_STORE_WRITE;
g_static_rec_mutex_init (&store->priv->folder_lock);
diff --git a/camel/providers/nntp/camel-nntp-store.c b/camel/providers/nntp/camel-nntp-store.c
index 469f476..2342197 100644
--- a/camel/providers/nntp/camel-nntp-store.c
+++ b/camel/providers/nntp/camel-nntp-store.c
@@ -1464,7 +1464,8 @@ camel_nntp_store_init (CamelNNTPStore *nntp_store)
{
nntp_store->mem = (CamelStreamMem *) camel_stream_mem_new ();
- /* Clear the VJUNK and VTRASH flags, which are set by default. */
+ /* Clear the default flags. We don't want a virtual Junk or Trash
+ * folder and the user can't create/delete/rename newsgroup folders. */
CAMEL_STORE (nntp_store)->flags = 0;
}
diff --git a/docs/reference/camel/tmpl/camel-store.sgml b/docs/reference/camel/tmpl/camel-store.sgml
index 0c23504..1bc9ee6 100644
--- a/docs/reference/camel/tmpl/camel-store.sgml
+++ b/docs/reference/camel/tmpl/camel-store.sgml
@@ -138,6 +138,7 @@ CamelStore
@CAMEL_STORE_PROXY:
@CAMEL_STORE_IS_MIGRATING:
@CAMEL_STORE_REAL_JUNK_FOLDER:
+ CAMEL_STORE_CAN_EDIT_FOLDERS:
<!-- ##### ENUM CamelStorePermissionFlags ##### -->
<para>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]