[evolution-exchange] Adapt to Camel API changes.



commit 65ccb590db734e7b802880a55ce5333427f43cbd
Author: Matthew Barnes <mbarnes redhat com>
Date:   Thu Apr 29 23:36:03 2010 -0400

    Adapt to Camel API changes.

 camel/camel-exchange-folder.c |   29 ++++++++++++++---------------
 camel/camel-exchange-folder.h |    4 ++--
 camel/camel-exchange-store.c  |   16 +++++++++++++---
 3 files changed, 29 insertions(+), 20 deletions(-)
---
diff --git a/camel/camel-exchange-folder.c b/camel/camel-exchange-folder.c
index 636faa6..19866f7 100644
--- a/camel/camel-exchange-folder.c
+++ b/camel/camel-exchange-folder.c
@@ -1020,26 +1020,25 @@ camel_exchange_folder_update_message_tag (CamelExchangeFolder *exch,
  * Return value: success or failure.
  **/
 gboolean
-camel_exchange_folder_construct (CamelFolder *folder, CamelStore *parent,
-				 const gchar *name, guint32 camel_flags,
+camel_exchange_folder_construct (CamelFolder *folder,
+				 guint32 camel_flags,
                                  const gchar *folder_dir,
                                  gint offline_state,
                                  CamelException *ex)
 {
 	CamelExchangeFolder *exch = (CamelExchangeFolder *)folder;
-	const gchar *short_name;
 	gchar *summary_file, *journal_file, *path;
 	GPtrArray *summary, *uids, *hrefs;
 	GByteArray *flags;
 	guint32 folder_flags;
 	CamelMessageInfo *info;
 	CamelExchangeMessageInfo *einfo;
+	CamelStore *parent_store;
+	const gchar *full_name;
 	gint i, len = 0;
 
-	short_name = strrchr (name, '/');
-	if (!short_name++)
-		short_name = name;
-	camel_folder_construct (folder, parent, name, short_name);
+	full_name = camel_folder_get_full_name (folder);
+	parent_store = camel_folder_get_parent_store (folder);
 
 	if (g_mkdir_with_parents (folder_dir, S_IRWXU) != 0) {
 		camel_exception_setv (ex, CAMEL_EXCEPTION_SYSTEM,
@@ -1054,7 +1053,7 @@ camel_exchange_folder_construct (CamelFolder *folder, CamelStore *parent,
 	if (!folder->summary) {
 		camel_exception_setv (
 			ex, CAMEL_EXCEPTION_SYSTEM,
-			_("Could not load summary for %s"), name);
+			_("Could not load summary for %s"), full_name);
 		return FALSE;
 	}
 
@@ -1062,7 +1061,7 @@ camel_exchange_folder_construct (CamelFolder *folder, CamelStore *parent,
 	if (!exch->cache) {
 		camel_exception_setv (
 			ex, CAMEL_EXCEPTION_SYSTEM,
-			_("Could not create cache for %s"), name);
+			_("Could not create cache for %s"), full_name);
 		return FALSE;
 	}
 
@@ -1072,12 +1071,12 @@ camel_exchange_folder_construct (CamelFolder *folder, CamelStore *parent,
 	if (!exch->journal) {
 		camel_exception_setv (
 			ex, CAMEL_EXCEPTION_SYSTEM,
-			_("Could not create journal for %s"), name);
+			_("Could not create journal for %s"), full_name);
 		return FALSE;
 	}
 
 	path = g_build_filename (folder_dir, "cmeta", NULL);
-	camel_object_set (folder, NULL, CAMEL_OBJECT_STATE_FILE, path, NULL);
+	camel_object_set_state_filename (CAMEL_OBJECT (folder), path);
 	g_free (path);
 	camel_object_state_read (CAMEL_OBJECT (folder));
 
@@ -1098,7 +1097,7 @@ camel_exchange_folder_construct (CamelFolder *folder, CamelStore *parent,
 		camel_message_info_free(info);
 	}
 
-	if (parent != NULL) {
+	if (parent_store != NULL) {
 		gboolean ok, create = camel_flags & CAMEL_STORE_FOLDER_CREATE, readonly = FALSE;
 
 		camel_folder_summary_prepare_fetch_all (folder->summary, ex);
@@ -1121,8 +1120,8 @@ camel_exchange_folder_construct (CamelFolder *folder, CamelStore *parent,
 
 		camel_operation_start (NULL, _("Scanning for changed messages"));
 		ok = camel_exchange_utils_get_folder (
-			CAMEL_SERVICE (parent),
-			name, create, uids, flags, hrefs,
+			CAMEL_SERVICE (parent_store),
+			full_name, create, uids, flags, hrefs,
 			CAMEL_EXCHANGE_SUMMARY (folder->summary)->high_article_num,
 			&folder_flags, &exch->source, &readonly, ex);
 		camel_operation_end (NULL);
@@ -1148,7 +1147,7 @@ camel_exchange_folder_construct (CamelFolder *folder, CamelStore *parent,
 
 		camel_operation_start (NULL, _("Fetching summary information for new messages"));
 		ok = camel_exchange_utils_refresh_folder (
-			CAMEL_SERVICE (parent), name, ex);
+			CAMEL_SERVICE (parent_store), full_name, ex);
 		camel_operation_end (NULL);
 		if (!ok)
 			return FALSE;
diff --git a/camel/camel-exchange-folder.h b/camel/camel-exchange-folder.h
index ed688b5..8e77485 100644
--- a/camel/camel-exchange-folder.h
+++ b/camel/camel-exchange-folder.h
@@ -48,8 +48,8 @@ struct _CamelExchangeFolderClass {
 
 GType    camel_exchange_folder_get_type (void);
 
-gboolean camel_exchange_folder_construct            (CamelFolder *folder, CamelStore *parent,
-						     const gchar *name, guint32 camel_flags,
+gboolean camel_exchange_folder_construct            (CamelFolder *folder,
+						     guint32 camel_flags,
 						     const gchar *folder_dir,
 						     gint offline_state,
 						     CamelException *ex);
diff --git a/camel/camel-exchange-store.c b/camel/camel-exchange-store.c
index 6c25048..5b98e18 100644
--- a/camel/camel-exchange-store.c
+++ b/camel/camel-exchange-store.c
@@ -423,6 +423,7 @@ exchange_store_get_folder (CamelStore *store,
 {
 	CamelExchangeStore *exch = CAMEL_EXCHANGE_STORE (store);
 	CamelFolder *folder;
+	const gchar *short_name;
 	gchar *folder_dir;
 
 	RETURN_VAL_IF_NOT_CONNECTED (exch, ex, NULL);
@@ -454,12 +455,21 @@ exchange_store_get_folder (CamelStore *store,
 		return folder;
 	}
 
-	folder = g_object_new (CAMEL_TYPE_EXCHANGE_FOLDER, NULL);
+	short_name = strrchr (folder_name, '/');
+	if (!short_name++)
+		short_name = folder_name;
+
+	folder = g_object_new (
+		CAMEL_TYPE_EXCHANGE_FOLDER,
+		"name", short_name, "full-name", folder_name,
+		"parent-store", store, NULL);
 	g_hash_table_insert (exch->folders, g_strdup (folder_name), folder);
 	g_mutex_unlock (exch->folders_lock);
 
-	if (!camel_exchange_folder_construct (folder, store, folder_name,
-			flags, folder_dir, ((CamelOfflineStore *) store)->state, ex)) {
+	if (!camel_exchange_folder_construct (
+		folder, flags, folder_dir,
+		((CamelOfflineStore *) store)->state, ex)) {
+
 		gchar *key;
 		g_mutex_lock (exch->folders_lock);
 		if (g_hash_table_lookup_extended (exch->folders, folder_name,



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]