evolution r36901 - in branches/kill-bonobo: doc/reference/shell doc/reference/shell/tmpl mail



Author: mbarnes
Date: Tue Dec 16 05:05:11 2008
New Revision: 36901
URL: http://svn.gnome.org/viewvc/evolution?rev=36901&view=rev

Log:
- Mail: Update the sidebar on folder selection.


Modified:
   branches/kill-bonobo/doc/reference/shell/Makefile.am
   branches/kill-bonobo/doc/reference/shell/tmpl/e-shell.sgml
   branches/kill-bonobo/doc/reference/shell/tmpl/eshell-unused.sgml
   branches/kill-bonobo/mail/e-mail-shell-content.c
   branches/kill-bonobo/mail/e-mail-shell-module.c
   branches/kill-bonobo/mail/e-mail-shell-view-private.c
   branches/kill-bonobo/mail/e-mail-shell-view-private.h
   branches/kill-bonobo/mail/mail-component.c

Modified: branches/kill-bonobo/doc/reference/shell/Makefile.am
==============================================================================
--- branches/kill-bonobo/doc/reference/shell/Makefile.am	(original)
+++ branches/kill-bonobo/doc/reference/shell/Makefile.am	Tue Dec 16 05:05:11 2008
@@ -106,7 +106,6 @@
 	$(top_builddir)/filter/.libs/filter-file.o			\
 	$(top_builddir)/filter/.libs/filter-input.o			\
 	$(top_builddir)/filter/.libs/filter-int.o			\
-	$(top_builddir)/filter/.libs/filter-label.o			\
 	$(top_builddir)/filter/.libs/filter-option.o			\
 	$(top_builddir)/filter/.libs/filter-part.o			\
 	$(top_builddir)/filter/.libs/filter-rule.o			\

Modified: branches/kill-bonobo/doc/reference/shell/tmpl/e-shell.sgml
==============================================================================
--- branches/kill-bonobo/doc/reference/shell/tmpl/e-shell.sgml	(original)
+++ branches/kill-bonobo/doc/reference/shell/tmpl/e-shell.sgml	Tue Dec 16 05:05:11 2008
@@ -40,6 +40,22 @@
 @arg1: 
 @Returns: 
 
+<!-- ##### SIGNAL EShell::prepare-for-offline ##### -->
+<para>
+
+</para>
+
+ eshell: the object which received the signal.
+ arg1: 
+
+<!-- ##### SIGNAL EShell::prepare-for-online ##### -->
+<para>
+
+</para>
+
+ eshell: the object which received the signal.
+ arg1: 
+
 <!-- ##### SIGNAL EShell::send-receive ##### -->
 <para>
 
@@ -64,26 +80,21 @@
 @eshell: the object which received the signal.
 @arg1: 
 
-<!-- ##### ARG EShell:online-mode ##### -->
+<!-- ##### ARG EShell:network-available ##### -->
 <para>
 
 </para>
 
-<!-- ##### ARG EShell:settings ##### -->
+<!-- ##### ARG EShell:online-mode ##### -->
 <para>
 
 </para>
 
-<!-- ##### ENUM EShellLineStatus ##### -->
+<!-- ##### ARG EShell:settings ##### -->
 <para>
 
 </para>
 
- E_SHELL_LINE_STATUS_ONLINE: 
- E_SHELL_LINE_STATUS_GOING_OFFLINE: 
- E_SHELL_LINE_STATUS_OFFLINE: 
- E_SHELL_LINE_STATUS_FORCED_OFFLINE: 
-
 <!-- ##### FUNCTION e_shell_get_default ##### -->
 <para>
 
@@ -195,24 +206,6 @@
 @online_mode: 
 
 
-<!-- ##### FUNCTION e_shell_get_line_status ##### -->
-<para>
-
-</para>
-
- shell: 
- Returns: 
-
-
-<!-- ##### FUNCTION e_shell_set_line_status ##### -->
-<para>
-
-</para>
-
- shell: 
- status: 
-
-
 <!-- ##### FUNCTION e_shell_get_preferences_window ##### -->
 <para>
 

Modified: branches/kill-bonobo/doc/reference/shell/tmpl/eshell-unused.sgml
==============================================================================
--- branches/kill-bonobo/doc/reference/shell/tmpl/eshell-unused.sgml	(original)
+++ branches/kill-bonobo/doc/reference/shell/tmpl/eshell-unused.sgml	Tue Dec 16 05:05:11 2008
@@ -433,6 +433,16 @@
 @minor: 
 @revision: 
 
+<!-- ##### ENUM EShellLineStatus ##### -->
+<para>
+
+</para>
+
+ E_SHELL_LINE_STATUS_ONLINE: 
+ E_SHELL_LINE_STATUS_GOING_OFFLINE: 
+ E_SHELL_LINE_STATUS_OFFLINE: 
+ E_SHELL_LINE_STATUS_FORCED_OFFLINE: 
+
 <!-- ##### STRUCT EShellWindowPrivate ##### -->
 <para>
 
@@ -1721,6 +1731,14 @@
 @revision: 
 @Returns: 
 
+<!-- ##### FUNCTION e_shell_get_line_status ##### -->
+<para>
+
+</para>
+
+ shell: 
+ Returns: 
+
 <!-- ##### FUNCTION e_shell_marshal_BOOLEAN__STRING ##### -->
 <para>
 
@@ -1766,6 +1784,14 @@
 @online: 
 @Returns: 
 
+<!-- ##### FUNCTION e_shell_set_line_status ##### -->
+<para>
+
+</para>
+
+ shell: 
+ status: 
+
 <!-- ##### FUNCTION e_shell_upgrade_attempt ##### -->
 <para>
 

Modified: branches/kill-bonobo/mail/e-mail-shell-content.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-content.c	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-content.c	Tue Dec 16 05:05:11 2008
@@ -450,7 +450,12 @@
 	view_collection = shell_view_class->view_collection;
 
 	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
-	g_return_if_fail (folder_view->folder != NULL);
+
+	/* If no folder is selected, return silently. */
+	if (folder_view->folder == NULL)
+		return;
+
+	/* If we have a folder, we should also have a URI. */
 	g_return_if_fail (folder_view->folder_uri != NULL);
 
 	if (mail_shell_content->priv->view_instance != NULL) {

Modified: branches/kill-bonobo/mail/e-mail-shell-module.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-module.c	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-module.c	Tue Dec 16 05:05:11 2008
@@ -110,6 +110,11 @@
 static EMFolderTreeModel *folder_tree_model;
 static CamelStore *local_store;
 
+static gint mail_sync_in_progress;
+static guint mail_sync_timeout_source_id;
+
+extern gint camel_application_is_exiting;
+
 G_LOCK_DEFINE_STATIC (local_store);
 
 static StoreInfo *
@@ -465,6 +470,44 @@
 }
 
 static void
+mail_shell_module_sync_store_done_cb (CamelStore *store,
+                                      gpointer user_data)
+{
+	mail_sync_in_progress--;
+}
+
+static void
+mail_shell_module_sync_store_cb (CamelStore *store)
+{
+	if (!camel_application_is_exiting) {
+		mail_sync_in_progress++;
+		mail_sync_store (
+			store, FALSE,
+			mail_shell_module_sync_store_done_cb, NULL);
+	}
+}
+
+static gboolean
+mail_shell_module_mail_sync (EShellModule *shell_module)
+{
+	if (camel_application_is_exiting)
+		return FALSE;
+
+	if (mail_sync_in_progress)
+		goto exit;
+
+	if (session == NULL || !camel_session_is_online (session))
+		goto exit;
+
+	e_mail_shell_module_stores_foreach (
+		shell_module, (GHFunc)
+		mail_shell_module_sync_store_cb, NULL);
+
+exit:
+	return !camel_application_is_exiting;
+}
+
+static void
 mail_shell_module_notify_online_mode_cb (EShell *shell,
                                          GParamSpec *pspec,
                                          EShellModule *shell_module)
@@ -693,6 +736,14 @@
 		&enable_search_folders, NULL);
 	if (enable_search_folders)
 		vfolder_load_storage ();
+
+	mail_autoreceive_init (session);
+
+	if (g_getenv ("CAMEL_FLUSH_CHANGES") != NULL)
+		mail_sync_timeout_source_id = g_timeout_add_seconds (
+			mail_config_get_sync_timeout (),
+			(GSourceFunc) mail_shell_module_mail_sync,
+			shell_module);
 }
 
 /******************************** Public API *********************************/

Modified: branches/kill-bonobo/mail/e-mail-shell-view-private.c
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-view-private.c	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-view-private.c	Tue Dec 16 05:05:11 2008
@@ -60,6 +60,17 @@
 }
 
 static void
+mail_shell_view_folder_view_changed_cb (EMailShellView *mail_shell_view,
+                                        EMFolderView *folder_view)
+{
+	EMailShellContent *mail_shell_content;
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	e_mail_shell_content_update_view_instance (mail_shell_content);
+	e_mail_shell_view_update_sidebar (mail_shell_view);
+}
+
+static void
 mail_shell_view_load_view_collection (EShellViewClass *shell_view_class)
 {
 	GalViewCollection *collection;
@@ -129,11 +140,15 @@
 e_mail_shell_view_private_constructed (EMailShellView *mail_shell_view)
 {
 	EMailShellViewPrivate *priv = mail_shell_view->priv;
+	EMailShellContent *mail_shell_content;
 	EMailShellSidebar *mail_shell_sidebar;
 	EShellView *shell_view;
 	EShellContent *shell_content;
 	EShellSidebar *shell_sidebar;
+	EMFolderTreeModel *folder_tree_model;
 	EMFolderTree *folder_tree;
+	EMFolderView *folder_view;
+	gchar *uri;
 
 	shell_view = E_SHELL_VIEW (mail_shell_view);
 	shell_content = e_shell_view_get_shell_content (shell_view);
@@ -143,6 +158,9 @@
 	priv->mail_shell_content = g_object_ref (shell_content);
 	priv->mail_shell_sidebar = g_object_ref (shell_content);
 
+	mail_shell_content = E_MAIL_SHELL_CONTENT (shell_content);
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+
 	mail_shell_sidebar = E_MAIL_SHELL_SIDEBAR (shell_sidebar);
 	folder_tree = e_mail_shell_sidebar_get_folder_tree (mail_shell_sidebar);
 
@@ -156,7 +174,36 @@
 		G_CALLBACK (mail_shell_view_folder_tree_popup_event_cb),
 		mail_shell_view);
 
+	g_signal_connect_swapped (
+		folder_view, "changed",
+		G_CALLBACK (mail_shell_view_folder_view_changed_cb),
+		mail_shell_view);
+
+	/* Use the same callback as "changed". */
+	g_signal_connect_swapped (
+		folder_view, "loaded",
+		G_CALLBACK (mail_shell_view_folder_view_changed_cb),
+		mail_shell_view);
+
 	e_mail_shell_view_actions_init (mail_shell_view);
+
+	/* Restore the previously selected folder. */
+	folder_tree_model = em_folder_tree_get_model (folder_tree);
+	uri = em_folder_tree_model_get_selected (folder_tree_model);
+	if (uri != NULL) {
+		gboolean expanded;
+
+		expanded = em_folder_tree_model_get_expanded_uri (
+			folder_tree_model, uri);
+		em_folder_tree_set_selected (folder_tree, uri, FALSE);
+		em_folder_view_set_folder_uri (folder_view, uri);
+
+		if (!expanded)
+			em_folder_tree_model_set_expanded_uri (
+				folder_tree_model, uri, expanded);
+
+		g_free (uri);
+	}
 }
 
 void
@@ -175,3 +222,153 @@
 e_mail_shell_view_private_finalize (EMailShellView *mail_shell_view)
 {
 }
+
+void
+e_mail_shell_view_update_sidebar (EMailShellView *mail_shell_view)
+{
+	EMailShellContent *mail_shell_content;
+	EShellSidebar *shell_sidebar;
+	EShellModule *shell_module;
+	EShellView *shell_view;
+	EMFolderView *folder_view;
+	CamelStore *local_store;
+	CamelFolder *folder;
+	GPtrArray *selected;
+	GString *buffer;
+	const gchar *display_name;
+	const gchar *folder_uri;
+	gchar *folder_name;
+	gchar *title;
+	guint32 num_deleted;
+	guint32 num_junked;
+	guint32 num_junked_not_deleted;
+	guint32 num_unread;
+	guint32 num_visible;
+
+	g_return_if_fail (E_IS_MAIL_SHELL_VIEW (mail_shell_view));
+
+	shell_view = E_SHELL_VIEW (mail_shell_view);
+	shell_module = e_shell_view_get_shell_module (shell_view);
+	shell_sidebar = e_shell_view_get_shell_sidebar (shell_view);
+	local_store = e_mail_shell_module_get_local_store (shell_module);
+
+	mail_shell_content = mail_shell_view->priv->mail_shell_content;
+	folder_view = e_mail_shell_content_get_folder_view (mail_shell_content);
+	folder_uri = folder_view->folder_uri;
+	folder = folder_view->folder;
+
+	/* If no folder is selected, reset the sidebar banners
+	 * to their default values and stop. */
+	if (folder == NULL) {
+		GtkAction *action;
+		gchar *label;
+
+		action = e_shell_view_get_action (shell_view);
+		g_object_get (action, "label", &label, NULL);
+		e_shell_sidebar_set_primary_text (shell_sidebar, label);
+		e_shell_sidebar_set_secondary_text (shell_sidebar, NULL);
+		e_shell_view_set_title (shell_view, label);
+		g_free (label);
+		return;
+	}
+
+	camel_object_get (
+		folder, NULL,
+		CAMEL_FOLDER_NAME, &folder_name,
+		CAMEL_FOLDER_DELETED, &num_deleted,
+		CAMEL_FOLDER_JUNKED, &num_junked,
+		CAMEL_FOLDER_JUNKED_NOT_DELETED, &num_junked_not_deleted,
+		CAMEL_FOLDER_UNREAD, &num_unread,
+		CAMEL_FOLDER_VISIBLE, &num_visible,
+		NULL);
+
+	buffer = g_string_sized_new (256);
+	selected = message_list_get_selected (folder_view->list);
+
+	if (selected->len > 1)
+		g_string_append_printf (
+			buffer, ngettext ("%d selected, ", "%d selected, ",
+			selected->len), selected->len);
+
+	if (CAMEL_IS_VTRASH_FOLDER (folder)) {
+		CamelVTrashFolder *trash_folder;
+
+		trash_folder = (CamelVTrashFolder *) folder;
+
+		/* "Trash" folder */
+		if (trash_folder->type == CAMEL_VTRASH_FOLDER_TRASH)
+			g_string_append_printf (
+				buffer, ngettext ("%d deleted",
+				"%d deleted", num_deleted), num_deleted);
+
+		/* "Junk" folder (hide deleted messages) */
+		else if (folder_view->hide_deleted)
+			g_string_append_printf (
+				buffer, ngettext ("%d junk",
+				"%d junk", num_junked_not_deleted),
+				num_junked_not_deleted);
+
+		/* "Junk" folder (show deleted messages) */
+		else
+			g_string_append_printf (
+				buffer, ngettext ("%d junk", "%d junk",
+				num_junked), num_junked);
+
+	/* "Drafts" folder */
+	} else if (em_utils_folder_is_drafts (folder, folder_uri)) {
+		g_string_append_printf (
+			buffer, ngettext ("%d draft", "%d drafts",
+			num_visible), num_visible);
+
+	/* "Outbox" folder */
+	} else if (em_utils_folder_is_outbox (folder, folder_uri)) {
+		g_string_append_printf (
+			buffer, ngettext ("%d unsent", "%d unsent",
+			num_visible), num_visible);
+
+	/* "Sent" folder */
+	} else if (em_utils_folder_is_sent (folder, folder_uri)) {
+		g_string_append_printf (
+			buffer, ngettext ("%d sent", "%d sent",
+			num_visible), num_visible);
+
+	/* Normal folder */
+	} else {
+		if (!folder_view->hide_deleted)
+			num_visible +=
+				num_deleted - num_junked +
+				num_junked_not_deleted;
+
+		if (num_unread > 0 && selected->len <= 1)
+			g_string_append_printf (
+				buffer, ngettext ("%d unread, ",
+				"%d unread, ", num_unread), num_unread);
+		g_string_append_printf (
+			buffer, ngettext ("%d total", "%d total",
+			num_visible), num_visible);
+	}
+
+	message_list_free_uids (folder_view->list, selected);
+
+	/* Choose a suitable folder name for displaying. */
+	if (folder->parent_store == local_store && (
+		strcmp (folder_name, "Drafts") == 0 ||
+		strcmp (folder_name, "Inbox") == 0 ||
+		strcmp (folder_name, "Outbox") == 0 ||
+		strcmp (folder_name, "Sent") == 0 ||
+		strcmp (folder_name, "Templates") == 0))
+		display_name = _(folder_name);
+	else if (strcmp (folder_name, "INBOX") == 0)
+		display_name = _("Inbox");
+	else
+		display_name = folder_name;
+
+	title = g_strdup_printf ("%s (%s)", display_name, buffer->str);
+	e_shell_sidebar_set_primary_text (shell_sidebar, display_name);
+	e_shell_sidebar_set_secondary_text (shell_sidebar, buffer->str);
+	e_shell_view_set_title (shell_view, title);
+	g_free (title);
+
+	camel_object_free (folder, CAMEL_FOLDER_NAME, folder_name);
+	g_string_free (buffer, TRUE);
+}

Modified: branches/kill-bonobo/mail/e-mail-shell-view-private.h
==============================================================================
--- branches/kill-bonobo/mail/e-mail-shell-view-private.h	(original)
+++ branches/kill-bonobo/mail/e-mail-shell-view-private.h	Tue Dec 16 05:05:11 2008
@@ -25,12 +25,15 @@
 #include "e-mail-shell-view.h"
 
 #include <glib/gi18n.h>
+#include <camel/camel-vtrash-folder.h>
 
 #include "e-util/gconf-bridge.h"
-
 #include "widgets/menus/gal-view-instance.h"
 
+#include "em-utils.h"
+
 #include "e-mail-shell-content.h"
+#include "e-mail-shell-module.h"
 #include "e-mail-shell-sidebar.h"
 #include "e-mail-shell-view-actions.h"
 
@@ -120,6 +123,8 @@
 
 void		e_mail_shell_view_actions_init
 					(EMailShellView *mail_shell_view);
+void		e_mail_shell_view_update_sidebar
+					(EMailShellView *mail_shell_view);
 
 G_END_DECLS
 

Modified: branches/kill-bonobo/mail/mail-component.c
==============================================================================
--- branches/kill-bonobo/mail/mail-component.c	(original)
+++ branches/kill-bonobo/mail/mail-component.c	Tue Dec 16 05:05:11 2008
@@ -518,86 +518,86 @@
 	e_activity_handler_set_message (priv->activity_handler, nice_url);
 }
 
-static void
-view_changed(EMFolderView *emfv, EComponentView *component_view)
-{
-	EInfoLabel *el = g_object_get_data((GObject *)component_view, "info-label");
-	CORBA_Environment ev;
-
-	CORBA_exception_init(&ev);
-
-	if (emfv->folder) {
-		char *name, *title;
-		const char *use_name; /* will contain localized name, if necessary */
-		guint32 visible, unread, deleted, junked, junked_not_deleted;
-		GPtrArray *selected;
-		GString *tmp = g_string_new("");
-
-		camel_object_get(emfv->folder, NULL,
-				 CAMEL_FOLDER_NAME, &name,
-				 CAMEL_FOLDER_DELETED, &deleted,
-				 CAMEL_FOLDER_VISIBLE, &visible,
-				 CAMEL_FOLDER_JUNKED, &junked,
-				 CAMEL_FOLDER_JUNKED_NOT_DELETED, &junked_not_deleted,
-				 CAMEL_FOLDER_UNREAD, &unread, NULL);
-
-		selected = message_list_get_selected(emfv->list);
-
-		/* This is so that if any of these are
-		 * shared/reused, we fallback to the standard
-		 * display behaviour */
-		if (selected->len > 1)
-			g_string_append_printf(tmp, ngettext ("%d selected, ", "%d selected, ", selected->len), selected->len);
-
-		if (CAMEL_IS_VTRASH_FOLDER(emfv->folder)) {
-			if (((CamelVTrashFolder *)emfv->folder)->type == CAMEL_VTRASH_FOLDER_TRASH) {
-				g_string_append_printf(tmp, ngettext ("%d deleted", "%d deleted", deleted), deleted);
-			} else {
-				guint32 num = junked_not_deleted;
-
-				if (!emfv->hide_deleted)
-					num = junked;
-
-				g_string_append_printf (tmp, ngettext ("%d junk", "%d junk", num), num);
-			}
-		} else if (em_utils_folder_is_drafts(emfv->folder, emfv->folder_uri)) {
-			g_string_append_printf(tmp, ngettext ("%d draft", "%d drafts", visible), visible);
-		} else if (em_utils_folder_is_sent(emfv->folder, emfv->folder_uri)) {
-			g_string_append_printf(tmp, ngettext ("%d sent", "%d sent", visible), visible);
-		} else if (em_utils_folder_is_outbox(emfv->folder, emfv->folder_uri)) {
-			g_string_append_printf(tmp, ngettext ("%d unsent", "%d unsent", visible), visible);
-			/* HACK: hardcoded inbox or maildir '.' folder */
-		} else {
-			if (!emfv->hide_deleted)
-				visible += deleted - junked + junked_not_deleted;
-			if (unread && selected->len <= 1)
-				g_string_append_printf(tmp, ngettext ("%d unread, ", "%d unread, ", unread), unread);
-			g_string_append_printf(tmp, ngettext ("%d total", "%d total", visible), visible);
-		}
-
-		message_list_free_uids(emfv->list, selected);
-
-		if (emfv->folder->parent_store == mail_component_peek_local_store(NULL)
-		    && (!strcmp (name, "Drafts") || !strcmp (name, "Inbox")
-			|| !strcmp (name, "Outbox") || !strcmp (name, "Sent") || !strcmp (name, "Templates")))
-			use_name = _(name);
-		else if (!strcmp (name, "INBOX"))
- 			use_name = _("Inbox");
-		else
-			use_name = name;
-
-		e_info_label_set_info (el, use_name, tmp->str);
-		title = g_strdup_printf ("%s (%s)", use_name, tmp->str);
-		e_component_view_set_title(component_view, title);
-		g_free(title);
-
-		g_string_free(tmp, TRUE);
-		camel_object_free(emfv->folder, CAMEL_FOLDER_NAME, name);
-	} else {
-		e_info_label_set_info(el, _("Mail"), "");
-		e_component_view_set_title(component_view, _("Mail"));
-	}
-}
+//static void
+//view_changed(EMFolderView *emfv, EComponentView *component_view)
+//{
+//	EInfoLabel *el = g_object_get_data((GObject *)component_view, "info-label");
+//	CORBA_Environment ev;
+//
+//	CORBA_exception_init(&ev);
+//
+//	if (emfv->folder) {
+//		char *name, *title;
+//		const char *use_name; /* will contain localized name, if necessary */
+//		guint32 visible, unread, deleted, junked, junked_not_deleted;
+//		GPtrArray *selected;
+//		GString *tmp = g_string_new("");
+//
+//		camel_object_get(emfv->folder, NULL,
+//				 CAMEL_FOLDER_NAME, &name,
+//				 CAMEL_FOLDER_DELETED, &deleted,
+//				 CAMEL_FOLDER_VISIBLE, &visible,
+//				 CAMEL_FOLDER_JUNKED, &junked,
+//				 CAMEL_FOLDER_JUNKED_NOT_DELETED, &junked_not_deleted,
+//				 CAMEL_FOLDER_UNREAD, &unread, NULL);
+//
+//		selected = message_list_get_selected(emfv->list);
+//
+//		/* This is so that if any of these are
+//		 * shared/reused, we fallback to the standard
+//		 * display behaviour */
+//		if (selected->len > 1)
+//			g_string_append_printf(tmp, ngettext ("%d selected, ", "%d selected, ", selected->len), selected->len);
+//
+//		if (CAMEL_IS_VTRASH_FOLDER(emfv->folder)) {
+//			if (((CamelVTrashFolder *)emfv->folder)->type == CAMEL_VTRASH_FOLDER_TRASH) {
+//				g_string_append_printf(tmp, ngettext ("%d deleted", "%d deleted", deleted), deleted);
+//			} else {
+//				guint32 num = junked_not_deleted;
+//
+//				if (!emfv->hide_deleted)
+//					num = junked;
+//
+//				g_string_append_printf (tmp, ngettext ("%d junk", "%d junk", num), num);
+//			}
+//		} else if (em_utils_folder_is_drafts(emfv->folder, emfv->folder_uri)) {
+//			g_string_append_printf(tmp, ngettext ("%d draft", "%d drafts", visible), visible);
+//		} else if (em_utils_folder_is_sent(emfv->folder, emfv->folder_uri)) {
+//			g_string_append_printf(tmp, ngettext ("%d sent", "%d sent", visible), visible);
+//		} else if (em_utils_folder_is_outbox(emfv->folder, emfv->folder_uri)) {
+//			g_string_append_printf(tmp, ngettext ("%d unsent", "%d unsent", visible), visible);
+//			/* HACK: hardcoded inbox or maildir '.' folder */
+//		} else {
+//			if (!emfv->hide_deleted)
+//				visible += deleted - junked + junked_not_deleted;
+//			if (unread && selected->len <= 1)
+//				g_string_append_printf(tmp, ngettext ("%d unread, ", "%d unread, ", unread), unread);
+//			g_string_append_printf(tmp, ngettext ("%d total", "%d total", visible), visible);
+//		}
+//
+//		message_list_free_uids(emfv->list, selected);
+//
+//		if (emfv->folder->parent_store == mail_component_peek_local_store(NULL)
+//		    && (!strcmp (name, "Drafts") || !strcmp (name, "Inbox")
+//			|| !strcmp (name, "Outbox") || !strcmp (name, "Sent") || !strcmp (name, "Templates")))
+//			use_name = _(name);
+//		else if (!strcmp (name, "INBOX"))
+// 			use_name = _("Inbox");
+//		else
+//			use_name = name;
+//
+//		e_info_label_set_info (el, use_name, tmp->str);
+//		title = g_strdup_printf ("%s (%s)", use_name, tmp->str);
+//		e_component_view_set_title(component_view, title);
+//		g_free(title);
+//
+//		g_string_free(tmp, TRUE);
+//		camel_object_free(emfv->folder, CAMEL_FOLDER_NAME, name);
+//	} else {
+//		e_info_label_set_info(el, _("Mail"), "");
+//		e_component_view_set_title(component_view, _("Mail"));
+//	}
+//}
 
 static void
 view_changed_timeout_remove (EComponentView *component_view)
@@ -733,22 +733,22 @@
 		em_folder_browser_suppress_message_selection (
 			(EMFolderBrowser *) view_widget);
 
-	tree_widget = (GtkWidget *) em_folder_tree_new_with_model (priv->model);
-	em_folder_tree_set_excluded ((EMFolderTree *) tree_widget, 0);
-	em_folder_tree_enable_drag_and_drop ((EMFolderTree *) tree_widget);
+//	tree_widget = (GtkWidget *) em_folder_tree_new_with_model (priv->model);
+//	em_folder_tree_set_excluded ((EMFolderTree *) tree_widget, 0);
+//	em_folder_tree_enable_drag_and_drop ((EMFolderTree *) tree_widget);
 
-	if ((uri = em_folder_tree_model_get_selected (priv->model))) {
-		gboolean expanded;
-
-		expanded = em_folder_tree_model_get_expanded_uri (priv->model, uri);
-		em_folder_tree_set_selected ((EMFolderTree *) tree_widget, uri, FALSE);
-		em_folder_view_set_folder_uri ((EMFolderView *) view_widget, uri);
-
-		if (!expanded)
-			em_folder_tree_model_set_expanded_uri (priv->model, uri, expanded);
-
-		g_free (uri);
-	}
+//	if ((uri = em_folder_tree_model_get_selected (priv->model))) {
+//		gboolean expanded;
+//
+//		expanded = em_folder_tree_model_get_expanded_uri (priv->model, uri);
+//		em_folder_tree_set_selected ((EMFolderTree *) tree_widget, uri, FALSE);
+//		em_folder_view_set_folder_uri ((EMFolderView *) view_widget, uri);
+//
+//		if (!expanded)
+//			em_folder_tree_model_set_expanded_uri (priv->model, uri, expanded);
+//
+//		g_free (uri);
+//	}
 
 	em_format_set_session ((EMFormat *) ((EMFolderView *) view_widget)->preview, session);
 
@@ -781,12 +781,12 @@
 
 
 	g_signal_connect (component_view->view_control, "activate", G_CALLBACK (view_control_activate_cb), view_widget);
-	g_signal_connect (tree_widget, "folder-selected", G_CALLBACK (folder_selected_cb), view_widget);
+//	g_signal_connect (tree_widget, "folder-selected", G_CALLBACK (folder_selected_cb), view_widget);
 
 	g_signal_connect((EMFolderBrowser *)view_widget, "account_search_cleared", G_CALLBACK (enable_folder_tree), tree_widget);
 	g_signal_connect(((EMFolderBrowser *)view_widget), "account_search_activated", G_CALLBACK (disable_folder_tree), tree_widget);
-	g_signal_connect(view_widget, "changed", G_CALLBACK(view_changed_cb), component_view);
-	g_signal_connect(view_widget, "loaded", G_CALLBACK(view_changed_cb), component_view);
+//	g_signal_connect(view_widget, "changed", G_CALLBACK(view_changed_cb), component_view);
+//	g_signal_connect(view_widget, "loaded", G_CALLBACK(view_changed_cb), component_view);
 
 	g_object_set_data((GObject*)info, "folderview", view_widget);
 	g_object_set_data((GObject*)view_widget, "foldertree", tree_widget);
@@ -1089,42 +1089,42 @@
 //	camel_exception_clear (&ex);
 //}
 
-static void
-mc_sync_store_done (CamelStore *store, void *data)
-{
-	MailComponent *mc = (MailComponent *) data;
-
-	mc->priv->mail_sync_in_progress--;
-}
-
-static void
-mc_sync_store (gpointer key, gpointer value, gpointer user_data)
-{
-	extern int camel_application_is_exiting;
-	MailComponent *mc = (MailComponent *) user_data;
-
-	mc->priv->mail_sync_in_progress++;
-
-	if (!camel_application_is_exiting)
-		mail_sync_store (CAMEL_STORE (key), FALSE, mc_sync_store_done, mc);
-	else
-		mc_sync_store_done (CAMEL_STORE (key), mc);
-}
-
-static gboolean
-call_mail_sync (gpointer user_data)
-{
-	extern int camel_application_is_exiting;
-	MailComponent *mc = (MailComponent *)user_data;
-
-	if (camel_application_is_exiting)
-		return FALSE;
+//static void
+//mc_sync_store_done (CamelStore *store, void *data)
+//{
+//	MailComponent *mc = (MailComponent *) data;
+//
+//	mc->priv->mail_sync_in_progress--;
+//}
 
-	if (!mc->priv->mail_sync_in_progress && session && camel_session_is_online (session))
-		mail_component_stores_foreach (mc, mc_sync_store, mc);
+//static void
+//mc_sync_store (gpointer key, gpointer value, gpointer user_data)
+//{
+//	extern int camel_application_is_exiting;
+//	MailComponent *mc = (MailComponent *) user_data;
+//
+//	mc->priv->mail_sync_in_progress++;
+//
+//	if (!camel_application_is_exiting)
+//		mail_sync_store (CAMEL_STORE (key), FALSE, mc_sync_store_done, mc);
+//	else
+//		mc_sync_store_done (CAMEL_STORE (key), mc);
+//}
 
-	return !camel_application_is_exiting;
-}
+//static gboolean
+c//all_mail_sync (gpointer user_data)
+//{
+//	extern int camel_application_is_exiting;
+//	MailComponent *mc = (MailComponent *)user_data;
+//
+//	if (camel_application_is_exiting)
+//		return FALSE;
+//
+//	if (!mc->priv->mail_sync_in_progress && session && camel_session_is_online (session))
+//		mail_component_stores_foreach (mc, mc_sync_store, mc);
+//
+//	return !camel_application_is_exiting;
+//}
 
 //struct _setline_data {
 //	GNOME_Evolution_Listener listener;
@@ -1276,42 +1276,42 @@
 	priv->lock = g_mutex_new();
 	priv->quit_state = -1;
 
-	/* FIXME This is used as both a filename and URI path throughout
-	 *       the mail code.  Need to clean this up; maybe provide a
-	 *       mail_component_get_base_uri() function. */
-	priv->base_directory = g_build_filename (e_get_user_data_dir (), "mail", NULL);
-#ifdef G_OS_WIN32
-	{
-		char *p = priv->base_directory;
-		while ((p = strchr(p, '\\')))
-			*p++ = '/';
-	}
-#endif
+//	/* FIXME This is used as both a filename and URI path throughout
+//	 *       the mail code.  Need to clean this up; maybe provide a
+//	 *       mail_component_get_base_uri() function. */
+//	priv->base_directory = g_build_filename (e_get_user_data_dir (), "mail", NULL);
+//#ifdef G_OS_WIN32
+//	{
+//		char *p = priv->base_directory;
+//		while ((p = strchr(p, '\\')))
+//			*p++ = '/';
+//	}
+//#endif
 
-	if (g_mkdir_with_parents (e_get_user_data_dir (), 0777) == -1 && errno != EEXIST)
-		abort ();
+//	if (g_mkdir_with_parents (e_get_user_data_dir (), 0777) == -1 && errno != EEXIST)
+//		abort ();
 
-	priv->model = em_folder_tree_model_new (e_get_user_data_dir ());
+//	priv->model = em_folder_tree_model_new (e_get_user_data_dir ());
 	priv->logger = e_logger_create ("mail");
 	priv->activity_handler = e_activity_handler_new ();
 	e_activity_handler_set_logger (priv->activity_handler, priv->logger);
 	e_activity_handler_set_error_flush_time (priv->activity_handler, mail_config_get_error_timeout ()*1000);
 
-	mail_session_init (e_get_user_data_dir ());
+//	mail_session_init (e_get_user_data_dir ());
 
-	priv->async_event = mail_async_event_new();
-	priv->store_hash = g_hash_table_new_full (
-		NULL, NULL,
-		(GDestroyNotify) NULL,
-		(GDestroyNotify) store_hash_free);
-
-	mail_autoreceive_init (session);
-
-	priv->mail_sync_in_progress = 0;
-	if (g_getenv("CAMEL_FLUSH_CHANGES"))
-		priv->mail_sync_id = g_timeout_add_seconds (mail_config_get_sync_timeout (), call_mail_sync, component);
-	else 
-		priv->mail_sync_id = 0;
+//	priv->async_event = mail_async_event_new();
+//	priv->store_hash = g_hash_table_new_full (
+//		NULL, NULL,
+//		(GDestroyNotify) NULL,
+//		(GDestroyNotify) store_hash_free);
+
+//	mail_autoreceive_init (session);
+
+//	priv->mail_sync_in_progress = 0;
+//	if (g_getenv("CAMEL_FLUSH_CHANGES"))
+//		priv->mail_sync_id = g_timeout_add_seconds (mail_config_get_sync_timeout (), call_mail_sync, component);
+//	else 
+//		priv->mail_sync_id = 0;
 }
 
 /* Public API.  */



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