From 3e66a3c4823b6996d8b52ddd02d0b2d70fdd2d81 Mon Sep 17 00:00:00 2001 From: hiro Date: Tue, 20 Dec 2005 05:47:26 +0000 Subject: reflect display_folder_unread setting immediately. git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@843 ee746299-78ed-0310-b773-934348b2243d --- src/folderview.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'src/folderview.c') diff --git a/src/folderview.c b/src/folderview.c index 50b8ef10..52184244 100644 --- a/src/folderview.c +++ b/src/folderview.c @@ -120,6 +120,7 @@ static void folderview_append_folder (FolderView *folderview, static void folderview_update_row (FolderView *folderview, GtkTreeIter *iter); +static void folderview_update_row_all (FolderView *folderview); static gint folderview_folder_name_compare (GtkTreeModel *model, GtkTreeIter *a, @@ -496,6 +497,8 @@ FolderView *folderview_create(void) folderview->news_popup = news_popup; folderview->news_factory = news_factory; + folderview->display_folder_unread = prefs_common.display_folder_unread; + folderview_set_columns(folderview); gtk_widget_show_all(scrolledwin); @@ -523,6 +526,12 @@ void folderview_init(FolderView *folderview) void folderview_reflect_prefs(FolderView *folderview) { folderview_set_columns(folderview); + if (folderview->display_folder_unread != + prefs_common.display_folder_unread) { + folderview->display_folder_unread = + prefs_common.display_folder_unread; + folderview_update_row_all(folderview); + } } FolderView *folderview_get(void) @@ -1227,13 +1236,13 @@ static void folderview_update_row(FolderView *folderview, GtkTreeIter *iter) gtk_tree_path_free(path); if (item->stype == F_QUEUE && item->total > 0 && - prefs_common.display_folder_unread) { + folderview->display_folder_unread) { str = g_strdup_printf("%s (%d%s)", name, item->total, add_unread_mark ? "+" : ""); g_free(name); name = str; } else if ((item->unread > 0 || add_unread_mark) && - prefs_common.display_folder_unread) { + folderview->display_folder_unread) { if (item->unread > 0) str = g_strdup_printf("%s (%d%s)", name, item->unread, add_unread_mark ? "+" : ""); @@ -1294,6 +1303,20 @@ static void folderview_update_row(FolderView *folderview, GtkTreeIter *iter) folderview_update_row(folderview, &parent); } +static void folderview_update_row_all(FolderView *folderview) +{ + GtkTreeModel *model = GTK_TREE_MODEL(folderview->store); + GtkTreeIter iter; + gboolean valid; + + valid = gtk_tree_model_get_iter_first(model, &iter); + + while (valid) { + folderview_update_row(folderview, &iter); + valid = gtkut_tree_model_next(model, &iter); + } +} + void folderview_update_item(FolderItem *item, gboolean update_summary) { FolderView *folderview; -- cgit v1.2.3