aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--ChangeLog.ja5
-rw-r--r--src/folderview.c27
-rw-r--r--src/folderview.h2
4 files changed, 37 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index fe365161..f7d8269b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2005-12-20
+ * src/folderview.[ch]: reflect display_folder_unread setting
+ immediately.
+
+2005-12-20
+
* src/filesel.c: filesel_select_file_full(): fixed preselected
directory with GTK+ 2.8.
diff --git a/ChangeLog.ja b/ChangeLog.ja
index 6afb15fd..c71339d9 100644
--- a/ChangeLog.ja
+++ b/ChangeLog.ja
@@ -1,5 +1,10 @@
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;