aboutsummaryrefslogtreecommitdiffstats
path: root/mail/message-list.c
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2010-04-01 20:02:43 +0800
committerMilan Crha <mcrha@redhat.com>2010-04-01 20:02:43 +0800
commit94cc603cca2152ad8aedcbec3cd0e28110e9a21c (patch)
treeee455b029fff412b0ce84004d7b5161912841fba /mail/message-list.c
parent73c01425323bb9208ad477fc06ff96cc33d1cafc (diff)
downloadgsoc2013-evolution-94cc603cca2152ad8aedcbec3cd0e28110e9a21c.tar
gsoc2013-evolution-94cc603cca2152ad8aedcbec3cd0e28110e9a21c.tar.gz
gsoc2013-evolution-94cc603cca2152ad8aedcbec3cd0e28110e9a21c.tar.bz2
gsoc2013-evolution-94cc603cca2152ad8aedcbec3cd0e28110e9a21c.tar.lz
gsoc2013-evolution-94cc603cca2152ad8aedcbec3cd0e28110e9a21c.tar.xz
gsoc2013-evolution-94cc603cca2152ad8aedcbec3cd0e28110e9a21c.tar.zst
gsoc2013-evolution-94cc603cca2152ad8aedcbec3cd0e28110e9a21c.zip
Bug #374533 - Read window stays open after last email is deleted
Diffstat (limited to 'mail/message-list.c')
-rw-r--r--mail/message-list.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/mail/message-list.c b/mail/message-list.c
index 88a711085b..453e261574 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -3851,6 +3851,33 @@ message_list_set_selected(MessageList *ml, GPtrArray *uids)
g_ptr_array_free(paths, TRUE);
}
+struct ml_count_data {
+ MessageList *ml;
+ guint count;
+};
+
+static void
+ml_getcount_cb (ETreePath path, gpointer user_data)
+{
+ struct ml_count_data *data = user_data;
+
+ if (!e_tree_model_node_is_root (data->ml->model, path))
+ data->count++;
+}
+
+guint
+message_list_count (MessageList *message_list)
+{
+ struct ml_count_data data = { message_list, 0 };
+
+ g_return_val_if_fail (message_list != NULL, 0);
+ g_return_val_if_fail (IS_MESSAGE_LIST (message_list), 0);
+
+ e_tree_path_foreach (E_TREE (message_list), ml_getcount_cb, &data);
+
+ return data.count;
+}
+
void
message_list_freeze(MessageList *ml)
{