evolution-data-server r9859 - in trunk: camel/providers/groupwise servers/groupwise



Author: psankar
Date: Fri Jan  2 05:57:52 2009
New Revision: 9859
URL: http://svn.gnome.org/viewvc/evolution-data-server?rev=9859&view=rev

Log:
2009-01-02  Sankar P  <psankar novell com>

	** Fix for bnc bug #446290

	* camel/providers/groupwise/camel-groupwise-folder.c:
	* servers/groupwise/e-gw-connection.c:
	Parallel clients support and (un)read count handling

Modified:
   trunk/camel/providers/groupwise/ChangeLog
   trunk/camel/providers/groupwise/camel-groupwise-folder.c
   trunk/servers/groupwise/ChangeLog
   trunk/servers/groupwise/e-gw-connection.c

Modified: trunk/camel/providers/groupwise/camel-groupwise-folder.c
==============================================================================
--- trunk/camel/providers/groupwise/camel-groupwise-folder.c	(original)
+++ trunk/camel/providers/groupwise/camel-groupwise-folder.c	Fri Jan  2 05:57:52 2009
@@ -1200,10 +1200,6 @@
 		if (gw_store->current_folder != folder) {
 			gw_store->current_folder = folder;
 		}
-
-		if (list) {
-			gw_update_cache (folder, list, ex, FALSE);
-		}
 		
 		if (check_all && !is_proxy) {
 				EGwContainer *container;
@@ -1214,8 +1210,15 @@
 
 				if (camel_folder_summary_count (folder->summary) == e_gw_container_get_total_count (container))
 						check_all = FALSE;
+
+				folder->summary->unread_count = e_gw_container_get_unread_count (container);
+				folder->summary->visible_count = e_gw_container_get_total_count (container);
 				g_object_unref (container);
 		}
+
+		if (list) {
+			gw_update_cache (folder, list, ex, FALSE);
+		}
 	}
 
 
@@ -1352,6 +1355,8 @@
 				mi->info.content->type = camel_content_type_new ("multipart", "mixed");	
 			}
 
+			mi->info.flags = 0;
+
 			if (type == E_GW_ITEM_TYPE_APPOINTMENT || type == E_GW_ITEM_TYPE_TASK || type == E_GW_ITEM_TYPE_NOTE)
 				camel_message_info_set_user_flag ((CamelMessageInfo*)mi, "$has_cal", TRUE);
 		}
@@ -1368,16 +1373,12 @@
 
 		item_status = e_gw_item_get_item_status (item);
 		if (item_status & E_GW_ITEM_STAT_READ)
-			status_flags |= CAMEL_MESSAGE_SEEN;
+			mi->info.flags |= CAMEL_MESSAGE_SEEN;
 		else 
 			mi->info.flags &= ~CAMEL_MESSAGE_SEEN;
 
 		if (item_status & E_GW_ITEM_STAT_REPLIED)
-			status_flags |= CAMEL_MESSAGE_ANSWERED;
-		if (exists) 
-			mi->info.flags |= status_flags;
-		else 
-			mi->info.flags = status_flags;
+			mi->info.flags |= CAMEL_MESSAGE_ANSWERED;
 
 		priority = e_gw_item_get_priority (item);
 		if (priority && !(g_ascii_strcasecmp (priority,"High"))) {
@@ -1468,6 +1469,7 @@
 			}
 		}
 
+		mi->info.dirty = TRUE;
 		if (exists) {
 			camel_folder_change_info_change_uid (changes, mi->info.uid);
 			camel_message_info_free (pmi);
@@ -1475,12 +1477,7 @@
 			mi->info.uid = camel_pstring_strdup (e_gw_item_get_id(item));
 			mi->info.size = e_gw_item_get_mail_size (item);	
 			mi->info.subject = camel_pstring_strdup(e_gw_item_get_subject(item));
-			mi->info.dirty = TRUE;
 			
-			folder->summary->visible_count ++;
-			if (!(mi->info.flags & CAMEL_MESSAGE_SEEN))
-					folder->summary->unread_count ++;
-
 			camel_folder_summary_add (folder->summary,(CamelMessageInfo *)mi);
 			camel_folder_change_info_add_uid (changes, mi->info.uid);
 			camel_folder_change_info_recent_uid (changes, mi->info.uid);

Modified: trunk/servers/groupwise/e-gw-connection.c
==============================================================================
--- trunk/servers/groupwise/e-gw-connection.c	(original)
+++ trunk/servers/groupwise/e-gw-connection.c	Fri Jan  2 05:57:52 2009
@@ -840,7 +840,7 @@
 		}
 
 		e_gw_message_write_string_parameter (msg, "uid", NULL, uid);
-		e_gw_message_write_string_parameter (msg, "view", NULL, "count");
+		e_gw_message_write_string_parameter (msg, "view", NULL, "count unreadCount");
 		e_gw_message_write_footer (msg);
 
 		/* send message to server */
@@ -2772,7 +2772,7 @@
 
 	if (buffer && buf_length && atoi (buf_length) > 0) {
 		gsize len = atoi (buf_length) ;
-		*attachment = g_base64_decode (buffer,&len) ;
+		*attachment = (char *) g_base64_decode (buffer,&len) ;
 		*attach_length = len ;
 	} else {
 		*attachment = NULL;



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