From d3a3c1c3f0616f9bf1559f88b073b70d8e5d0bfc Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Sun, 24 May 2009 15:24:15 -0400 Subject: Use named icons in the folder tree instead of pixbufs. --- mail/em-folder-tree-model.c | 62 ++++++++++++++++++++++++++++----------------- 1 file changed, 39 insertions(+), 23 deletions(-) (limited to 'mail/em-folder-tree-model.c') diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c index 04e66e2c86..94b5e4f0bc 100644 --- a/mail/em-folder-tree-model.c +++ b/mail/em-folder-tree-model.c @@ -54,6 +54,7 @@ #include "mail-folder-cache.h" #include "em-utils.h" +#include "em-folder-utils.h" #include #include @@ -66,11 +67,13 @@ static GType col_types[] = { G_TYPE_STRING, /* display name */ G_TYPE_POINTER, /* store object */ - G_TYPE_STRING, /* path */ + G_TYPE_STRING, /* full name */ + G_TYPE_STRING, /* icon name */ G_TYPE_STRING, /* uri */ G_TYPE_UINT, /* unread count */ G_TYPE_UINT, /* flags */ G_TYPE_BOOLEAN, /* is a store node */ + G_TYPE_BOOLEAN, /* is a folder node */ G_TYPE_BOOLEAN, /* has not-yet-loaded subfolders */ }; @@ -439,6 +442,7 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite CamelFolderInfo *fi, int fully_loaded) { GtkTreeRowReference *uri_row, *path_row; + GtkTreeStore *tree_store; unsigned int unread; GtkTreePath *path; GtkTreeIter sub; @@ -446,12 +450,15 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite struct _CamelFolder *folder; gboolean emitted = FALSE; const char *name; + const gchar *icon_name; guint32 flags; /* make sure we don't already know about it? */ if (g_hash_table_lookup (si->full_hash, fi->full_name)) return; - + + tree_store = GTK_TREE_STORE (model); + if (!fully_loaded) load = fi->child == NULL && !(fi->flags & (CAMEL_FOLDER_NOCHILDREN | CAMEL_FOLDER_NOINFERIORS)); @@ -516,31 +523,40 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite } } - gtk_tree_store_set ((GtkTreeStore *) model, iter, - COL_STRING_DISPLAY_NAME, name, - COL_POINTER_CAMEL_STORE, si->store, - COL_STRING_FULL_NAME, fi->full_name, - COL_STRING_URI, fi->uri, - COL_UINT_FLAGS, flags, - COL_BOOL_IS_STORE, FALSE, - COL_BOOL_LOAD_SUBDIRS, load, - -1); + /* Choose an icon name for the folder. */ + icon_name = em_folder_utils_get_icon_name (flags); + + gtk_tree_store_set ( + tree_store, iter, + COL_STRING_DISPLAY_NAME, name, + COL_POINTER_CAMEL_STORE, si->store, + COL_STRING_FULL_NAME, fi->full_name, + COL_STRING_ICON_NAME, icon_name, + COL_STRING_URI, fi->uri, + COL_UINT_FLAGS, flags, + COL_BOOL_IS_STORE, FALSE, + COL_BOOL_IS_FOLDER, TRUE, + COL_BOOL_LOAD_SUBDIRS, load, + -1); if (unread != ~0) - gtk_tree_store_set ((GtkTreeStore *) model, iter, COL_UINT_UNREAD, unread, -1); + gtk_tree_store_set (tree_store, iter, COL_UINT_UNREAD, unread, -1); if (load) { /* create a placeholder node for our subfolders... */ - gtk_tree_store_append ((GtkTreeStore *) model, &sub, iter); - gtk_tree_store_set ((GtkTreeStore *) model, &sub, - COL_STRING_DISPLAY_NAME, _("Loading..."), - COL_POINTER_CAMEL_STORE, NULL, - COL_STRING_FULL_NAME, NULL, - COL_BOOL_LOAD_SUBDIRS, FALSE, - COL_BOOL_IS_STORE, FALSE, - COL_STRING_URI, NULL, - COL_UINT_UNREAD, 0, - -1); + gtk_tree_store_append (tree_store, &sub, iter); + gtk_tree_store_set ( + tree_store, &sub, + COL_STRING_DISPLAY_NAME, _("Loading..."), + COL_POINTER_CAMEL_STORE, NULL, + COL_STRING_FULL_NAME, NULL, + COL_STRING_ICON_NAME, NULL, + COL_BOOL_LOAD_SUBDIRS, FALSE, + COL_BOOL_IS_STORE, FALSE, + COL_BOOL_IS_FOLDER, FALSE, + COL_STRING_URI, NULL, + COL_UINT_UNREAD, 0, + -1); path = gtk_tree_model_get_path ((GtkTreeModel *) model, iter); g_signal_emit (model, signals[LOADING_ROW], 0, path, iter); @@ -552,7 +568,7 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model, GtkTreeIter *ite fi = fi->child; do { - gtk_tree_store_append ((GtkTreeStore *) model, &sub, iter); + gtk_tree_store_append (tree_store, &sub, iter); if (!emitted) { path = gtk_tree_model_get_path ((GtkTreeModel *) model, iter); -- cgit v1.2.3 From 0cf607076dfc2c481ca1164a04cecdb0661e6bd0 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 26 May 2009 10:58:25 -0400 Subject: Fix compiler warnings in mail. --- mail/em-folder-tree-model.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'mail/em-folder-tree-model.c') diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c index 94b5e4f0bc..e3a2eda2bc 100644 --- a/mail/em-folder-tree-model.c +++ b/mail/em-folder-tree-model.c @@ -96,6 +96,8 @@ enum { LAST_SIGNAL }; +extern CamelStore *vfolder_store; + static guint signals[LAST_SIGNAL] = { 0, }; static GtkTreeStoreClass *parent_class = NULL; @@ -186,7 +188,6 @@ em_folder_tree_model_class_init (EMFolderTreeModelClass *klass) static int sort_cb (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, gpointer user_data) { - extern CamelStore *vfolder_store; char *aname, *bname; CamelStore *store; gboolean is_store; -- cgit v1.2.3 From e4afd3f9fb962ea1295a0657ec9f83a427829171 Mon Sep 17 00:00:00 2001 From: Matthew Barnes Date: Tue, 26 May 2009 23:21:02 -0400 Subject: Remove trailing whitespace, again. --- mail/em-folder-tree-model.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'mail/em-folder-tree-model.c') diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c index e3a2eda2bc..d90bcbbacb 100644 --- a/mail/em-folder-tree-model.c +++ b/mail/em-folder-tree-model.c @@ -10,7 +10,7 @@ * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with the program; if not, see + * License along with the program; if not, see * * * Authors: -- cgit v1.2.3