** Fix for bug #271864 from Hiroyuki Ikezoe

svn path=/trunk/; revision=33775
This commit is contained in:
Srinivasa Ragavan
2007-07-09 03:04:39 +00:00
parent a739c97352
commit 58af720ebb
2 changed files with 33 additions and 40 deletions

View File

@ -1,3 +1,9 @@
2007-07-09 Srinivasa Ragavan <sragavan@novell.com>
** Fix for bug #271864 from Hiroyuki Ikezoe
* mail-component.c: (view_changed):
2007-07-09 Srinivasa Ragavan <sragavan@novell.com>
** Fix for bug #347782 from hggdh

View File

@ -510,6 +510,7 @@ view_changed(EMFolderView *emfv, EComponentView *component_view)
if (emfv->folder) {
char *name, *title;
guint32 visible, unread, deleted, junked;
GPtrArray *selected;
GString *tmp = g_string_new("");
camel_object_get(emfv->folder, NULL,
@ -519,52 +520,38 @@ view_changed(EMFolderView *emfv, EComponentView *component_view)
CAMEL_FOLDER_JUNKED, &junked,
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 (CAMEL_IS_VTRASH_FOLDER(emfv->folder)) {
if (((CamelVTrashFolder *)emfv->folder)->type == CAMEL_VTRASH_FOLDER_TRASH)
if (((CamelVTrashFolder *)emfv->folder)->type == CAMEL_VTRASH_FOLDER_TRASH) {
g_string_append_printf(tmp, ngettext ("%d deleted", "%d deleted", deleted), deleted);
else
} else {
g_string_append_printf(tmp, ngettext ("%d junk", "%d junk", junked), junked);
} else {
int bits = 0;
GPtrArray *selected;
/* This is so that if any of these are
* shared/reused, we fallback to the standard
* display behaviour */
selected = message_list_get_selected(emfv->list);
if (em_utils_folder_is_drafts(emfv->folder, emfv->folder_uri))
bits |= 1;
if (em_utils_folder_is_sent(emfv->folder, emfv->folder_uri))
bits |= 2;
if (em_utils_folder_is_outbox(emfv->folder, emfv->folder_uri))
bits |= 4;
/* HACK: hardcoded inbox or maildir '.' folder */
if (g_ascii_strcasecmp(emfv->folder->full_name, "inbox") == 0
|| g_ascii_strcasecmp(emfv->folder->full_name, ".") == 0)
bits |= 8;
if (selected->len > 1)
g_string_append_printf(tmp, ngettext ("%d selected, ", "%d selected, ", selected->len), selected->len);
if (bits == 1)
g_string_append_printf(tmp, ngettext ("%d draft", "%d drafts", visible), visible);
else if (bits == 2)
g_string_append_printf(tmp, ngettext ("%d sent", "%d sent", visible), visible);
else if (bits == 4)
g_string_append_printf(tmp, ngettext ("%d unsent", "%d unsent", visible), visible);
else {
if (!emfv->hide_deleted)
visible += 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);
} 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;
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);
}
if (selected->len > 1)
g_string_append_printf(tmp, ngettext (" %d selected, ", " %d selected, ", selected->len), selected->len);
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")))