From 319c71b6cf5cf4f756875ecff7bd3b5ab8aad355 Mon Sep 17 00:00:00 2001 From: Parthasarathi Susarla Date: Tue, 20 Dec 2005 06:34:12 +0000 Subject: ** See bug 234008 2005-12-20 Parthasarathi Susarla ** See bug 234008 * em-folder-tree-model.c: * mail-folder-cache.c: Make sure that the Draft folder highlights the number of messages in it svn path=/trunk/; revision=30891 --- mail/ChangeLog | 9 +++++++++ mail/em-folder-tree-model.c | 14 ++++++++++++++ mail/mail-folder-cache.c | 4 +++- 3 files changed, 26 insertions(+), 1 deletion(-) (limited to 'mail') diff --git a/mail/ChangeLog b/mail/ChangeLog index 0a00cb29fe..3d4a9e0774 100644 --- a/mail/ChangeLog +++ b/mail/ChangeLog @@ -1,3 +1,12 @@ +2005-12-20 Parthasarathi Susarla + + ** See bug 234008 + + * em-folder-tree-model.c: + * mail-folder-cache.c: + Make sure that the Draft folder highlights the number of messages in + it + 2005-12-18 Tor Lillqvist * Makefile.am: Use THREADS_CFLAGS and _LIBS. Don't need CAMEL_LIBS. diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c index 7cc83be033..5b30993ce3 100644 --- a/mail/em-folder-tree-model.c +++ b/mail/em-folder-tree-model.c @@ -443,6 +443,7 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite g_hash_table_insert (si->full_hash, g_strdup (fi->full_name), path_row); /* HACK: if we have the folder, and its the outbox folder, we need the total count, not unread */ + /* HACK2: We do the same to the draft folder */ /* This is duplicated in mail-folder-cache too, should perhaps be functionised */ unread = fi->unread; if (mail_note_get_folder_from_uri(fi->uri, &folder) && folder) { @@ -456,9 +457,22 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite total -= deleted; } + unread = total > 0 ? total : 0; + } + if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS)) { + int total; + + if ((total = camel_folder_get_message_count (folder)) > 0) { + int deleted = camel_folder_get_deleted_message_count (folder); + + if (deleted != -1) + total -= deleted; + } + unread = total > 0 ? total : 0; } camel_object_unref(folder); + } /* TODO: maybe this should be handled by mail_get_folderinfo (except em-folder-tree doesn't use it, duh) */ diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c index 6f4fda244e..ce41ed69fd 100644 --- a/mail/mail-folder-cache.c +++ b/mail/mail-folder-cache.c @@ -352,10 +352,12 @@ update_1folder(struct _folder_info *mfi, int new, CamelFolderInfo *info) d(printf("update 1 folder '%s'\n", folder->full_name)); if ((count_trash && (CAMEL_IS_VTRASH_FOLDER (folder))) || folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX) + || folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS) || (count_sent && folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_SENT))) { d(printf(" total count\n")); unread = camel_folder_get_message_count (folder); - if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX)) { + if (folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_OUTBOX) + || folder == mail_component_get_folder(NULL, MAIL_COMPONENT_FOLDER_DRAFTS)) { if ((deleted = camel_folder_get_deleted_message_count (folder)) > 0) unread -= deleted; } -- cgit