rework Display/Summaries
authorPaul <paul@claws-mail.org>
Fri, 9 Nov 2018 11:09:06 +0000 (11:09 +0000)
committerPaul <paul@claws-mail.org>
Fri, 9 Nov 2018 11:09:06 +0000 (11:09 +0000)
spilt the page into 3 notebook pages.
rearrange some options.
add some options for new folder defaults

src/folder.c
src/prefs_common.c
src/prefs_common.h
src/prefs_other.c
src/prefs_summaries.c

index abe80721628bedc10f11b66421f350dd6d651990..ea240d3c7aaad7bbf6a14a51eddf1817728a89af 100644 (file)
@@ -379,8 +379,11 @@ FolderItem *folder_item_new(Folder *folder, const gchar *name, const gchar *path
        item->no_sub = FALSE;
        item->no_select = FALSE;
        item->collapsed = FALSE;
-       item->thread_collapsed = FALSE;
-       item->threaded  = TRUE;
+       item->thread_collapsed = prefs_common.folder_default_thread_collapsed;
+       item->threaded  = prefs_common.folder_default_thread;
+       item->hide_read_threads = prefs_common.folder_default_hide_read_threads;
+       item->hide_read_msgs = prefs_common.folder_default_hide_read_msgs;
+       item->hide_del_msgs = prefs_common.folder_default_hide_del_msgs;
        item->ret_rcpt  = FALSE;
        item->opened    = FALSE;
        item->node = g_node_new(item);
index bdca614e2d141c5d70fae843fc226a41fc7cb818..a305c729432293dec70bcbc091685d229ac08140 100644 (file)
@@ -459,8 +459,6 @@ static PrefParam param[] = {
         {"bold_unread", "TRUE", &prefs_common.bold_unread, P_BOOL,
         NULL, NULL, NULL},
 
-       {"enable_thread", "TRUE", &prefs_common.enable_thread, P_BOOL,
-        NULL, NULL, NULL},
 #ifndef GENERIC_UMPC
        {"toolbar_style", "3", &prefs_common.toolbar_style, P_ENUM,
         NULL, NULL, NULL},
@@ -618,6 +616,18 @@ static PrefParam param[] = {
        {"folder_col_size_total", "32",
         &prefs_common.folder_col_size[F_COL_TOTAL], P_INT, NULL, NULL, NULL},
 #endif
+
+       {"folder_default_thread", "TRUE", &prefs_common.folder_default_thread, P_BOOL,
+        NULL, NULL, NULL},
+       {"folder_default_thread_collapsed", "FALSE", &prefs_common.folder_default_thread_collapsed, P_BOOL,
+        NULL, NULL, NULL},
+       {"folder_default_hide_read_threads", "FALSE", &prefs_common.folder_default_hide_read_threads, P_BOOL,
+        NULL, NULL, NULL},
+       {"folder_default_hide_read_msgs", "FALSE", &prefs_common.folder_default_hide_read_msgs, P_BOOL,
+        NULL, NULL, NULL},
+       {"folder_default_hide_del_msgs", "FALSE", &prefs_common.folder_default_hide_del_msgs, P_BOOL,
+        NULL, NULL, NULL},
+
        {"summaryview_width", "500", &prefs_common.summaryview_width, P_INT,
         NULL, NULL, NULL},
        {"summaryview_height", "244", &prefs_common.summaryview_height, P_INT,
index d53db9a25c0cda6955597e033b92efe27aa43fad..f2ad1416259908ed4617dbb7f107fb212ff959e6 100644 (file)
@@ -252,7 +252,6 @@ struct _PrefsCommon
        gint ng_abbrev_len;
 
        gboolean show_searchbar;
-       gboolean expand_thread;
        gboolean swap_from;
        gboolean use_addr_book;
        gchar *date_format;
@@ -264,12 +263,16 @@ struct _PrefsCommon
        gboolean enable_hscrollbar;
        gboolean bold_unread;
        gboolean next_on_delete;
-       gboolean enable_thread;
        gboolean thread_by_subject;
        gint thread_by_subject_max_age; /*!< Max. age of a thread which was threaded
                                         *   by subject (days) */
        FolderSortKey default_sort_key;
        FolderSortType default_sort_type;
+       gboolean folder_default_thread;
+       gboolean folder_default_thread_collapsed;
+       gboolean folder_default_hide_read_threads;
+       gboolean folder_default_hide_read_msgs;
+       gboolean folder_default_hide_del_msgs;
 
        gchar *last_opened_folder;
        gboolean goto_last_folder_on_startup;
index 56ef8850bca7f57da374e6a21f2010c34687bedb..9bd90e24b5db8b9e1200245343c856a714678192 100644 (file)
@@ -65,6 +65,7 @@ typedef struct _OtherPage
        GtkWidget *checkbtn_real_time_sync;
        GtkWidget *flush_metadata_faster_radiobtn;
        GtkWidget *flush_metadata_safer_radiobtn;
+       GtkWidget *checkbtn_transhdr;
 #ifndef PASSWORD_CRYPTO_OLD
        GtkWidget *checkbtn_use_passphrase;
 #endif
@@ -461,6 +462,7 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window,
        GtkAdjustment *spinbtn_iotimeout_adj;
 
        GtkWidget *vbox2;
+       GtkWidget *checkbtn_transhdr;
        GtkWidget *checkbtn_askonclean;
        GtkWidget *checkbtn_askonfilter;
        GtkWidget *checkbtn_use_shred;
@@ -575,6 +577,11 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_widget_show (vbox2);
        gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
 
+       PACK_CHECK_BUTTON(vbox2, checkbtn_transhdr,
+                          _("Translate header names"));
+       CLAWS_SET_TIP(checkbtn_transhdr,
+                            _("The display of standard headers (such as 'From:', 'Subject:') "
+                            "will be translated into your language."));
        PACK_CHECK_BUTTON (vbox2, checkbtn_askonclean, 
                           _("Ask before emptying trash"));
        PACK_CHECK_BUTTON (vbox2, checkbtn_askonfilter,
@@ -639,6 +646,8 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_spin_button_set_value(GTK_SPIN_BUTTON(spinbtn_iotimeout),
                prefs_common.io_timeout_secs);
 
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_transhdr),
+               prefs_common.trans_hdr);
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_askonfilter), 
                prefs_common.ask_apply_per_account_filtering_rules);
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_use_shred), 
@@ -659,6 +668,7 @@ static void prefs_other_create_widget(PrefsPage *_page, GtkWindow *window,
        prefs_other->checkbtn_askonclean = checkbtn_askonclean;
        prefs_other->checkbtn_warnqueued = checkbtn_warnqueued;
        prefs_other->spinbtn_iotimeout = spinbtn_iotimeout;
+       prefs_other->checkbtn_transhdr = checkbtn_transhdr;
        prefs_other->checkbtn_gtk_can_change_accels = checkbtn_gtk_can_change_accels;
        prefs_other->checkbtn_askonfilter = checkbtn_askonfilter;
        prefs_other->checkbtn_use_shred = checkbtn_use_shred;
@@ -694,6 +704,8 @@ static void prefs_other_save(PrefsPage *_page)
 #ifdef HAVE_LIBETPAN
        imap_main_set_timeout(prefs_common.io_timeout_secs);
 #endif
+       prefs_common.trans_hdr = gtk_toggle_button_get_active(
+                       GTK_TOGGLE_BUTTON(page->checkbtn_transhdr));
        prefs_common.ask_apply_per_account_filtering_rules = 
                gtk_toggle_button_get_active(
                        GTK_TOGGLE_BUTTON(page->checkbtn_askonfilter)); 
index 6509077bc53bc2c6f89446b1901a791feacfb927..8aabaaa07d2495d0e2dd7fe9faf25caa6c7d4382 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2005-2015 Colin Leroy and The Claws Mail Team
+ * Copyright (C) 2005-2018 Colin Leroy and The Claws Mail Team
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -54,7 +54,6 @@ typedef struct _SummariesPage
 
        GtkWidget *window;
 
-       GtkWidget *checkbtn_transhdr;
        GtkWidget *optmenu_folder_unread;
        GtkWidget *spinbtn_ng_abbrev_len;
        GtkWidget *checkbtn_useaddrbook;
@@ -78,6 +77,11 @@ typedef struct _SummariesPage
        GtkWidget *optmenu_sort_key;
        GtkWidget *optmenu_sort_type;
        GtkWidget *optmenu_nextunreadmsgdialog;
+       GtkWidget *checkbtn_folder_default_thread;
+       GtkWidget *checkbtn_folder_default_thread_collapsed;
+       GtkWidget *checkbtn_folder_default_hide_read_threads;
+       GtkWidget *checkbtn_folder_default_hide_read_msgs;
+       GtkWidget *checkbtn_folder_default_hide_del_msgs;
 
 } SummariesPage;
 
@@ -319,9 +323,10 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
 {
        SummariesPage *prefs_summaries = (SummariesPage *) _page;
        
-       GtkWidget *checkbtn_transhdr;
+       GtkWidget *notebook;
        GtkWidget *hbox0, *hbox1, *hbox2;
        GtkWidget *vbox1, *vbox2, *vbox3, *vbox4;
+       GtkWidget *frame_new_folders;
        GtkWidget *optmenu_folder_unread;
        GtkWidget *label_ng_abbrev;
        GtkWidget *spinbtn_ng_abbrev_len;
@@ -350,23 +355,29 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        GtkListStore *menu;
        GtkTreeIter iter;
        GtkWidget *optmenu_nextunreadmsgdialog;
-       GtkWidget *folderview_frame;
-       GtkWidget *summaryview_frame;
        GtkWidget *button_edit_actions;
        GtkWidget *radio_mark_as_read_on_select;
        GtkWidget *radio_mark_as_read_on_new_win;
        GtkWidget *optmenu_sort_key;
        GtkWidget *optmenu_sort_type;
+       GtkWidget *checkbtn_folder_default_thread;
+       GtkWidget *checkbtn_folder_default_thread_collapsed;
+       GtkWidget *checkbtn_folder_default_hide_read_threads;
+       GtkWidget *checkbtn_folder_default_hide_read_msgs;
+       GtkWidget *checkbtn_folder_default_hide_del_msgs;
+
+       notebook = gtk_notebook_new();
+       gtk_widget_show(notebook);
 
        vbox1 = gtk_vbox_new (FALSE, VSPACING);
        gtk_widget_show (vbox1);
        gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
+       gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox1,
+                                gtk_label_new(_("Folder list")));
        
-       vbox2 = gtkut_get_options_frame(vbox1, &folderview_frame, _("Folder list"));
-
        hbox0 = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox0);
-       gtk_box_pack_start(GTK_BOX (vbox2), hbox0, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX (vbox1), hbox0, FALSE, FALSE, 0);
 
        label = gtk_label_new (_("Display message count next to folder name"));
        gtk_widget_show (label);
@@ -385,10 +396,10 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
 
        hbox1 = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox1);
-       gtk_box_pack_start(GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
+       gtk_box_pack_start(GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
 
        PACK_CHECK_BUTTON
-               (vbox2, checkbtn_reopen_last_folder,
+               (vbox1, checkbtn_reopen_last_folder,
                 _("Open last opened folder at start-up"));
 
        label_ng_abbrev = gtk_label_new
@@ -411,7 +422,7 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
 
        hbox_dispitem = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox_dispitem);
-       gtk_box_pack_start(GTK_BOX(vbox2), hbox_dispitem, FALSE, TRUE, 0);
+       gtk_box_pack_start(GTK_BOX(vbox1), hbox_dispitem, FALSE, TRUE, 0);
 
        label = gtk_label_new(_("Displayed columns"));
        gtk_widget_show(label);
@@ -423,63 +434,16 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
                          G_CALLBACK (prefs_folder_column_open),
                          NULL);
 
-       vbox2 = gtkut_get_options_frame(vbox1, &summaryview_frame, _("Message list"));
-
-       hbox1 = gtk_hbox_new(FALSE, 10);
-       gtk_widget_show(hbox1);
-       gtk_box_pack_start(GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
-
-       label = gtk_label_new(_("Sort new folders by"));
-       gtk_widget_show(label);
-       gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0);
-
-       optmenu_sort_key = gtkut_sc_combobox_create(NULL, FALSE);
-       menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu_sort_key)));
-       gtk_widget_show(optmenu_sort_key);
-
-       COMBOBOX_ADD(menu, _("Number"), SORT_BY_NUMBER);
-       COMBOBOX_ADD(menu, _("Size"), SORT_BY_SIZE);
-       COMBOBOX_ADD(menu, _("Date"), SORT_BY_DATE);
-       COMBOBOX_ADD(menu, _("Thread date"), SORT_BY_THREAD_DATE);
-       COMBOBOX_ADD(menu, _("From"), SORT_BY_FROM);
-       COMBOBOX_ADD(menu, _("To"), SORT_BY_TO);
-       COMBOBOX_ADD(menu, _("Subject"), SORT_BY_SUBJECT);
-       COMBOBOX_ADD(menu, _("Color label"), SORT_BY_LABEL);
-       COMBOBOX_ADD(menu, _("Tag"), SORT_BY_TAGS);
-       COMBOBOX_ADD(menu, _("Mark"), SORT_BY_MARK);
-       COMBOBOX_ADD(menu, _("Status"), SORT_BY_STATUS);
-       COMBOBOX_ADD(menu, _("Attachment"), SORT_BY_MIME);
-       COMBOBOX_ADD(menu, _("Score"), SORT_BY_SCORE);
-       COMBOBOX_ADD(menu, _("Locked"), SORT_BY_LOCKED);
-       COMBOBOX_ADD(menu, _("Don't sort"), SORT_BY_NONE);
-
-       gtk_box_pack_start(GTK_BOX(hbox1), optmenu_sort_key, FALSE, FALSE, 0);
-
-       optmenu_sort_type = gtkut_sc_combobox_create(NULL, FALSE);
-       menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu_sort_type)));
-       gtk_widget_show(optmenu_sort_type);
-
-       COMBOBOX_ADD(menu, _("Ascending"), SORT_ASCENDING);
-       COMBOBOX_ADD(menu, _("Descending"), SORT_DESCENDING);
-
-       gtk_box_pack_start(GTK_BOX(hbox1), optmenu_sort_type, FALSE, FALSE, 0);
-
-       hbox1 = gtk_hbox_new (FALSE, 10);
-       gtk_widget_show (hbox1);
-       gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 0);
-
-       button_edit_actions = gtk_button_new_with_label(_("Set default selection when entering a folder"));
-       gtk_widget_show (button_edit_actions);
-       gtk_box_pack_start (GTK_BOX (hbox1), button_edit_actions,
-                         FALSE, TRUE, 0);
-       g_signal_connect (G_OBJECT (button_edit_actions), "clicked",
-                         G_CALLBACK (prefs_summary_open_open),
-                         NULL);
+       vbox1 = gtk_vbox_new (FALSE, VSPACING);
+       gtk_widget_show (vbox1);
+       gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
+       gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox1,
+                                gtk_label_new(_("Message list")));
 
        /* Next Unread Message Dialog */
        hbox1 = gtk_hbox_new (FALSE, 10);
        gtk_widget_show (hbox1);
-       gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);   
+       gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);   
 
        label = gtk_label_new (_("Show \"no unread (or new) message\" dialog"));
        gtk_widget_show (label);
@@ -497,7 +461,7 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_box_pack_start(GTK_BOX(hbox1), optmenu_nextunreadmsgdialog, FALSE, FALSE, 0);
 
        /* Open message on select policy */
-       vbox4 = gtkut_get_options_frame(vbox2, NULL, _("Open message when selected"));
+       vbox4 = gtkut_get_options_frame(vbox1, NULL, _("Open message when selected"));
 
        PACK_CHECK_BUTTON(vbox4, checkbtn_always_show_msg,
                        _("Always"));
@@ -513,17 +477,17 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
                        _("When using directional keys"));
 
        PACK_CHECK_BUTTON
-               (vbox2, checkbtn_threadsubj,
+               (vbox1, checkbtn_threadsubj,
                 _("Thread using subject in addition to standard headers"));
 
        PACK_CHECK_BUTTON
-               (vbox2, checkbtn_immedexec,
+               (vbox1, checkbtn_immedexec,
                 _("Execute immediately when moving or deleting messages"));
        CLAWS_SET_TIP(checkbtn_immedexec,
                             _("Defers moving, copying and deleting of messages"
                               " until you choose 'Tools/Execute'"));
 
-       vbox3 = gtkut_get_options_frame(vbox2, NULL, _("Mark message as read"));
+       vbox3 = gtkut_get_options_frame(vbox1, NULL, _("Mark message as read"));
 
        radio_mark_as_read_on_select = gtk_radio_button_new_with_label(NULL,
                        _("when selected, after"));
@@ -549,18 +513,18 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_box_pack_start (GTK_BOX (vbox3), radio_mark_as_read_on_new_win,
                        FALSE, FALSE, 0);
        gtk_widget_show_all(vbox3);
-                                                                                             
+
        PACK_CHECK_BUTTON
-               (vbox2, checkbtn_useaddrbook,
+               (vbox1, checkbtn_useaddrbook,
                 _("Display sender using address book"));
                 
        PACK_CHECK_BUTTON
-               (vbox2, checkbtn_show_tooltips,
+               (vbox1, checkbtn_show_tooltips,
                 _("Show tooltips"));
 
        hbox2 = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox2);
-       gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, TRUE, 0);
+       gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, TRUE, 0);
 
        label_datefmt = gtk_label_new (_("Date format"));
        gtk_widget_show (label_datefmt);
@@ -585,7 +549,7 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
                             
        hbox_dispitem = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox_dispitem);
-       gtk_box_pack_start(GTK_BOX(vbox2), hbox_dispitem, FALSE, TRUE, 0);
+       gtk_box_pack_start(GTK_BOX(vbox1), hbox_dispitem, FALSE, TRUE, 0);
        
        label = gtk_label_new(_("Displayed columns"));
        gtk_widget_show(label);
@@ -603,18 +567,86 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        PACK_CHECK_BUTTON
                (vbox1, checkbtn_ask_override_colorlabel,
                 _("Confirm when changing color labels"));
-       PACK_CHECK_BUTTON
-               (vbox1, checkbtn_transhdr,
-                _("Translate header names"));
-       CLAWS_SET_TIP(checkbtn_transhdr,
-                            _("The display of standard headers (such as 'From:', 'Subject:') "
-                            "will be translated into your language."));
        
        hbox2 = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox2);
        gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, FALSE, 0);
 
-       prefs_summaries->checkbtn_transhdr = checkbtn_transhdr;
+       vbox1 = gtk_vbox_new (FALSE, VSPACING);
+       gtk_widget_show (vbox1);
+       gtk_container_set_border_width (GTK_CONTAINER (vbox1), VBOX_BORDER);
+       gtk_notebook_append_page(GTK_NOTEBOOK(notebook), vbox1,
+                                gtk_label_new(_("Defaults")));
+
+       hbox1 = gtk_hbox_new (FALSE, 10);
+       gtk_widget_show (hbox1);
+       gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, TRUE, 0);
+
+       button_edit_actions = gtk_button_new_with_label(_("Set selection when entering a folder"));
+       gtk_widget_show (button_edit_actions);
+       gtk_box_pack_start (GTK_BOX (hbox1), button_edit_actions,
+                         FALSE, TRUE, 0);
+       g_signal_connect (G_OBJECT (button_edit_actions), "clicked",
+                         G_CALLBACK (prefs_summary_open_open),
+                         NULL);
+
+       vbox2 = gtkut_get_options_frame(vbox1, &frame_new_folders, _("New folders"));
+
+       hbox1 = gtk_hbox_new(FALSE, 10);
+       gtk_widget_show(hbox1);
+       gtk_box_pack_start(GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
+
+       label = gtk_label_new(_("Sort by"));
+       gtk_widget_show(label);
+       gtk_box_pack_start(GTK_BOX(hbox1), label, FALSE, FALSE, 0);
+
+       optmenu_sort_key = gtkut_sc_combobox_create(NULL, FALSE);
+       menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu_sort_key)));
+       gtk_widget_show(optmenu_sort_key);
+
+       COMBOBOX_ADD(menu, _("Number"), SORT_BY_NUMBER);
+       COMBOBOX_ADD(menu, _("Size"), SORT_BY_SIZE);
+       COMBOBOX_ADD(menu, _("Date"), SORT_BY_DATE);
+       COMBOBOX_ADD(menu, _("Thread date"), SORT_BY_THREAD_DATE);
+       COMBOBOX_ADD(menu, _("From"), SORT_BY_FROM);
+       COMBOBOX_ADD(menu, _("To"), SORT_BY_TO);
+       COMBOBOX_ADD(menu, _("Subject"), SORT_BY_SUBJECT);
+       COMBOBOX_ADD(menu, _("Color label"), SORT_BY_LABEL);
+       COMBOBOX_ADD(menu, _("Tag"), SORT_BY_TAGS);
+       COMBOBOX_ADD(menu, _("Mark"), SORT_BY_MARK);
+       COMBOBOX_ADD(menu, _("Status"), SORT_BY_STATUS);
+       COMBOBOX_ADD(menu, _("Attachment"), SORT_BY_MIME);
+       COMBOBOX_ADD(menu, _("Score"), SORT_BY_SCORE);
+       COMBOBOX_ADD(menu, _("Locked"), SORT_BY_LOCKED);
+       COMBOBOX_ADD(menu, _("Don't sort"), SORT_BY_NONE);
+
+       gtk_box_pack_start(GTK_BOX(hbox1), optmenu_sort_key, FALSE, FALSE, 0);
+
+       optmenu_sort_type = gtkut_sc_combobox_create(NULL, FALSE);
+       menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu_sort_type)));
+       gtk_widget_show(optmenu_sort_type);
+
+       COMBOBOX_ADD(menu, _("Ascending"), SORT_ASCENDING);
+       COMBOBOX_ADD(menu, _("Descending"), SORT_DESCENDING);
+
+       gtk_box_pack_start(GTK_BOX(hbox1), optmenu_sort_type, FALSE, FALSE, 0);
+
+       PACK_CHECK_BUTTON
+               (vbox2, checkbtn_folder_default_thread,
+                _("Enable threads"));
+       PACK_CHECK_BUTTON
+               (vbox2, checkbtn_folder_default_thread_collapsed,
+                _("Collapse threads"));
+       PACK_CHECK_BUTTON
+               (vbox2, checkbtn_folder_default_hide_read_threads,
+                _("Hide read threads"));
+       PACK_CHECK_BUTTON
+               (vbox2, checkbtn_folder_default_hide_read_msgs,
+                _("Hide read messages"));
+       PACK_CHECK_BUTTON
+               (vbox2, checkbtn_folder_default_hide_del_msgs,
+                _("Hide deleted messages"));
+
        prefs_summaries->optmenu_folder_unread = optmenu_folder_unread;
        prefs_summaries->spinbtn_ng_abbrev_len = spinbtn_ng_abbrev_len;
        prefs_summaries->checkbtn_useaddrbook = checkbtn_useaddrbook;
@@ -639,6 +671,12 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        prefs_summaries->optmenu_sort_type = optmenu_sort_type;
        prefs_summaries->optmenu_nextunreadmsgdialog = optmenu_nextunreadmsgdialog;
 
+       prefs_summaries->checkbtn_folder_default_thread = checkbtn_folder_default_thread;
+       prefs_summaries->checkbtn_folder_default_thread_collapsed = checkbtn_folder_default_thread_collapsed;
+       prefs_summaries->checkbtn_folder_default_hide_read_threads = checkbtn_folder_default_hide_read_threads;
+       prefs_summaries->checkbtn_folder_default_hide_read_msgs = checkbtn_folder_default_hide_read_msgs;
+       prefs_summaries->checkbtn_folder_default_hide_del_msgs = checkbtn_folder_default_hide_del_msgs;
+
        prefs_summaries->page.widget = vbox1;
        g_signal_connect(G_OBJECT(checkbtn_always_show_msg), "toggled",
                        G_CALLBACK(always_show_msg_toggled), prefs_summaries);
@@ -649,8 +687,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
 
        prefs_summaries->window                 = GTK_WIDGET(window);
        
-       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_transhdr),
-                       prefs_common.trans_hdr);
        combobox_select_by_data(GTK_COMBO_BOX(optmenu_folder_unread),
                        prefs_common.display_folder_unread);
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_useaddrbook),
@@ -697,16 +733,27 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
 
        combobox_select_by_data(GTK_COMBO_BOX(optmenu_nextunreadmsgdialog),
                        prefs_common.next_unread_msg_dialog);
+
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_folder_default_thread),
+                       prefs_common.folder_default_thread);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_folder_default_thread_collapsed),
+                       prefs_common.folder_default_thread_collapsed);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_folder_default_hide_read_threads),
+                       prefs_common.folder_default_hide_read_threads);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_folder_default_hide_read_msgs),
+                       prefs_common.folder_default_hide_read_msgs);
+       gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_folder_default_hide_del_msgs),
+                       prefs_common.folder_default_hide_del_msgs);
+
+       gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 0);
+               
+       prefs_summaries->page.widget = notebook;
 }
 
 static void prefs_summaries_save(PrefsPage *_page)
 {
        SummariesPage *page = (SummariesPage *) _page;
 
-       prefs_common.trans_hdr = gtk_toggle_button_get_active(
-                       GTK_TOGGLE_BUTTON(page->checkbtn_transhdr));
-
-
        prefs_common.display_folder_unread = combobox_get_active_data(
                        GTK_COMBO_BOX(page->optmenu_folder_unread));