[evolution-data-server/wip/camel-more-gobject] Seal CamelVTrashFolder properties
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/wip/camel-more-gobject] Seal CamelVTrashFolder properties
- Date: Thu, 3 Nov 2016 15:10:26 +0000 (UTC)
commit b01f69292211824ddbff2be6348abd1672d68eeb
Author: Milan Crha <mcrha redhat com>
Date: Thu Nov 3 16:10:38 2016 +0100
Seal CamelVTrashFolder properties
src/camel/camel-folder-summary.c | 8 ++++----
src/camel/camel-vtrash-folder.c | 36 ++++++++++++++++++++++++++++++------
src/camel/camel-vtrash-folder.h | 8 +++++---
3 files changed, 39 insertions(+), 13 deletions(-)
---
diff --git a/src/camel/camel-folder-summary.c b/src/camel/camel-folder-summary.c
index c08d468..13c0043 100644
--- a/src/camel/camel-folder-summary.c
+++ b/src/camel/camel-folder-summary.c
@@ -355,8 +355,8 @@ folder_summary_update_counts_by_flags (CamelFolderSummary *summary,
if (summary->priv->folder && CAMEL_IS_VTRASH_FOLDER (summary->priv->folder)) {
CamelVTrashFolder *vtrash = CAMEL_VTRASH_FOLDER (summary->priv->folder);
- is_junk_folder = vtrash && vtrash->type == CAMEL_VTRASH_FOLDER_JUNK;
- is_trash_folder = vtrash && vtrash->type == CAMEL_VTRASH_FOLDER_TRASH;
+ is_junk_folder = vtrash && camel_vtrash_folder_get_folder_type (vtrash) ==
CAMEL_VTRASH_FOLDER_JUNK;
+ is_trash_folder = vtrash && camel_vtrash_folder_get_folder_type (vtrash) ==
CAMEL_VTRASH_FOLDER_TRASH;
}
if (!(flags & CAMEL_MESSAGE_SEEN))
@@ -554,8 +554,8 @@ camel_folder_summary_replace_flags (CamelFolderSummary *summary,
if (summary->priv->folder && CAMEL_IS_VTRASH_FOLDER (summary->priv->folder)) {
CamelVTrashFolder *vtrash = CAMEL_VTRASH_FOLDER (summary->priv->folder);
- is_junk_folder = vtrash && vtrash->type == CAMEL_VTRASH_FOLDER_JUNK;
- is_trash_folder = vtrash && vtrash->type == CAMEL_VTRASH_FOLDER_TRASH;
+ is_junk_folder = vtrash && camel_vtrash_folder_get_folder_type (vtrash) ==
CAMEL_VTRASH_FOLDER_JUNK;
+ is_trash_folder = vtrash && camel_vtrash_folder_get_folder_type (vtrash) ==
CAMEL_VTRASH_FOLDER_TRASH;
}
added_flags = new_flags & (~(old_flags & new_flags));
diff --git a/src/camel/camel-vtrash-folder.c b/src/camel/camel-vtrash-folder.c
index e3194af..79198e8 100644
--- a/src/camel/camel-vtrash-folder.c
+++ b/src/camel/camel-vtrash-folder.c
@@ -31,6 +31,11 @@
#include "camel-vtrash-folder.h"
#include "camel-string-utils.h"
+struct _CamelVTrashFolderPrivate {
+ CamelVTrashFolderType type;
+ guint32 bit;
+};
+
static struct {
const gchar *full_name;
const gchar *name;
@@ -104,7 +109,7 @@ vtrash_folder_append_message_sync (CamelFolder *folder,
{
g_set_error (
error, CAMEL_ERROR, CAMEL_ERROR_GENERIC, "%s",
- _(vdata[((CamelVTrashFolder *) folder)->type].error_copy));
+ _(vdata[((CamelVTrashFolder *) folder)->priv->type].error_copy));
return FALSE;
}
@@ -123,7 +128,7 @@ vtrash_folder_transfer_messages_to_sync (CamelFolder *source,
GHashTable *batch = NULL;
const gchar *tuid;
struct _transfer_data *md;
- guint32 sbit = ((CamelVTrashFolder *) source)->bit;
+ guint32 sbit = ((CamelVTrashFolder *) source)->priv->bit;
/* This is a special case of transfer_messages_to: Either the
* source or the destination is a vtrash folder (but not both
@@ -138,7 +143,7 @@ vtrash_folder_transfer_messages_to_sync (CamelFolder *source,
if (!delete_originals) {
g_set_error (
error, CAMEL_ERROR, CAMEL_ERROR_GENERIC, "%s",
- _(vdata[((CamelVTrashFolder *) dest)->type].error_copy));
+ _(vdata[((CamelVTrashFolder *) dest)->priv->type].error_copy));
return FALSE;
}
@@ -146,7 +151,7 @@ vtrash_folder_transfer_messages_to_sync (CamelFolder *source,
for (i = 0; i < uids->len; i++)
camel_folder_set_message_flags (
source, uids->pdata[i],
- ((CamelVTrashFolder *) dest)->bit, ~0);
+ ((CamelVTrashFolder *) dest)->priv->bit, ~0);
return TRUE;
}
@@ -218,6 +223,8 @@ camel_vtrash_folder_class_init (CamelVTrashFolderClass *class)
{
CamelFolderClass *folder_class;
+ g_type_class_add_private (class, sizeof (CamelVTrashFolderPrivate));
+
folder_class = CAMEL_FOLDER_CLASS (class);
folder_class->append_message_sync = vtrash_folder_append_message_sync;
folder_class->transfer_messages_to_sync = vtrash_folder_transfer_messages_to_sync;
@@ -226,6 +233,7 @@ camel_vtrash_folder_class_init (CamelVTrashFolderClass *class)
static void
camel_vtrash_folder_init (CamelVTrashFolder *vtrash_folder)
{
+ vtrash_folder->priv = G_TYPE_INSTANCE_GET_PRIVATE (vtrash_folder, CAMEL_TYPE_VTRASH_FOLDER,
CamelVTrashFolderPrivate);
}
/**
@@ -259,8 +267,24 @@ camel_vtrash_folder_new (CamelStore *parent_store,
camel_folder_set_flags (CAMEL_FOLDER (vtrash), camel_folder_get_flags (CAMEL_FOLDER (vtrash)) |
vdata[type].flags);
camel_vee_folder_set_expression ((CamelVeeFolder *) vtrash, vdata[type].expr);
- vtrash->bit = vdata[type].bit;
- vtrash->type = type;
+ vtrash->priv->bit = vdata[type].bit;
+ vtrash->priv->type = type;
return (CamelFolder *) vtrash;
}
+
+/**
+ * camel_vtrash_folder_get_folder_type:
+ * @vtrash_folder: a #CamelVTrashFolder
+ *
+ * Returns: a @vtrash_folder folder type (#CamelVTrashFolderType)
+ *
+ * Since: 3.24
+ **/
+CamelVTrashFolderType
+camel_vtrash_folder_get_folder_type (CamelVTrashFolder *vtrash_folder)
+{
+ g_return_val_if_fail (CAMEL_IS_VTRASH_FOLDER (vtrash_folder), CAMEL_VTRASH_FOLDER_LAST);
+
+ return vtrash_folder->priv->type;
+}
diff --git a/src/camel/camel-vtrash-folder.h b/src/camel/camel-vtrash-folder.h
index 0c226d3..94bd73b 100644
--- a/src/camel/camel-vtrash-folder.h
+++ b/src/camel/camel-vtrash-folder.h
@@ -53,6 +53,7 @@ G_BEGIN_DECLS
typedef struct _CamelVTrashFolder CamelVTrashFolder;
typedef struct _CamelVTrashFolderClass CamelVTrashFolderClass;
+typedef struct _CamelVTrashFolderPrivate CamelVTrashFolderPrivate;
typedef enum {
CAMEL_VTRASH_FOLDER_TRASH,
@@ -62,9 +63,7 @@ typedef enum {
struct _CamelVTrashFolder {
CamelVeeFolder parent;
-
- CamelVTrashFolderType type;
- guint32 bit;
+ CamelVTrashFolderPrivate *priv;
};
struct _CamelVTrashFolderClass {
@@ -77,6 +76,9 @@ struct _CamelVTrashFolderClass {
GType camel_vtrash_folder_get_type (void);
CamelFolder * camel_vtrash_folder_new (CamelStore *parent_store,
CamelVTrashFolderType type);
+CamelVTrashFolderType
+ camel_vtrash_folder_get_folder_type
+ (CamelVTrashFolder *vtrash_folder);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]