aboutsummaryrefslogtreecommitdiffstats
path: root/mail/em-folder-tree-model.c
diff options
context:
space:
mode:
authorJeffrey Stedfast <fejj@ximian.com>2003-12-11 02:36:13 +0800
committerJeffrey Stedfast <fejj@src.gnome.org>2003-12-11 02:36:13 +0800
commite3262cdc7e24aece3074a0c92ce3e529acf3568e (patch)
treedc850b54b73d9a9b448158e4da830699c1142136 /mail/em-folder-tree-model.c
parent82bfd7cc1cc8f00cd86c87a6132678145bfa0776 (diff)
downloadgsoc2013-evolution-e3262cdc7e24aece3074a0c92ce3e529acf3568e.tar.gz
gsoc2013-evolution-e3262cdc7e24aece3074a0c92ce3e529acf3568e.tar.zst
gsoc2013-evolution-e3262cdc7e24aece3074a0c92ce3e529acf3568e.zip
Update the unread count in the model if the folder got new mail.
2003-12-10 Jeffrey Stedfast <fejj@ximian.com> * mail-folder-cache.c (real_flush_updates): Update the unread count in the model if the folder got new mail. * em-folder-selection.c (em_select_folder): Updated. * em-folder-selection-button.c (em_folder_selection_button_clicked): Updated. * em-folder-tree-model.c (em_folder_tree_model_set_unread_count): New function to update the unread count for a folder. * mail-component.c (mail_component_peek_tree_model): Don't ref the model. Also renamed s/get/peek/ svn path=/trunk/; revision=23910
Diffstat (limited to 'mail/em-folder-tree-model.c')
-rw-r--r--mail/em-folder-tree-model.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c
index 1e6df96fbf..e7a766cc61 100644
--- a/mail/em-folder-tree-model.c
+++ b/mail/em-folder-tree-model.c
@@ -1197,3 +1197,36 @@ em_folder_tree_model_save_expanded (EMFolderTreeModel *model)
unlink (tmpname);
g_free (tmpname);
}
+
+
+void
+em_folder_tree_model_set_unread_count (EMFolderTreeModel *model, CamelStore *store, const char *path, int unread)
+{
+ struct _EMFolderTreeModelStoreInfo *si;
+ GtkTreeRowReference *row;
+ GtkTreePath *tree_path;
+ GtkTreeIter iter;
+
+ g_return_if_fail (EM_IS_FOLDER_TREE_MODEL (model));
+ g_return_if_fail (CAMEL_IS_STORE (store));
+ g_return_if_fail (path != NULL);
+
+ if (unread < 0)
+ unread = 0;
+
+ if (!(si = g_hash_table_lookup (model->store_hash, store)))
+ return;
+
+ if (!(row = g_hash_table_lookup (si->path_hash, path)))
+ return;
+
+ tree_path = gtk_tree_row_reference_get_path (row);
+ if (!gtk_tree_model_get_iter ((GtkTreeModel *) model, &iter, tree_path)) {
+ gtk_tree_path_free (tree_path);
+ return;
+ }
+
+ gtk_tree_path_free (tree_path);
+
+ gtk_tree_store_set ((GtkTreeStore *) model, &iter, COL_UINT_UNREAD, unread, -1);
+}