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 --- ChangeLog | 5 +++++ ChangeLog.ja | 5 +++++ src/folderview.c | 27 +++++++++++++++++++++++++-- src/folderview.h | 2 ++ 4 files changed, 37 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index fe365161..f7d8269b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2005-12-20 + + * src/folderview.[ch]: reflect display_folder_unread setting + immediately. + 2005-12-20 * src/filesel.c: filesel_select_file_full(): fixed preselected diff --git a/ChangeLog.ja b/ChangeLog.ja index 6afb15fd..c71339d9 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,8 @@ +2005-12-20 + + * src/folderview.[ch]: display_folder_unread の設定をすぐに反映させる + ようにした。 + 2005-12-20 * src/filesel.c: filesel_select_file_full(): GTK+ 2.8 で事前に選択 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; diff --git a/src/folderview.h b/src/folderview.h index 24d84750..7c283574 100644 --- a/src/folderview.h +++ b/src/folderview.h @@ -53,6 +53,8 @@ struct _FolderView GtkTreeRowReference *opened; GtkTreeRowReference *prev_selected; + gboolean display_folder_unread; + gboolean open_folder; guint expand_timeout; -- cgit v1.2.3