Add open_selected_on_folder_open to common prefs.
[claws.git] / src / prefs_summaries.c
index a3e52cea0392d27e65f51fd1abfb8dd0a60ce68f..3b2b3a2e24abfc8b996819fbffa7a22d97b67575 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 2005-2012 Colin Leroy <colin@colino.net> & The Claws Mail Team
+ * Claws Mail -- a GTK+ based, lightweight, and fast e-mail client
+ * Copyright (C) 2005-2015 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
  *
  * You should have received a copy of the GNU General Public License
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
- * 
  */
 
 #ifdef HAVE_CONFIG_H
 #  include "config.h"
+#include "claws-features.h"
 #endif
 
 #include "defs.h"
@@ -69,7 +69,9 @@ typedef struct _SummariesPage
        GtkWidget *spinbtn_mark_as_read_delay;
        GtkWidget *checkbtn_immedexec;
        GtkWidget *checkbtn_ask_mark_all_read;
-       GtkWidget *optmenu_nextunreadmsgdialog;
+       GtkWidget *optmenu_sort_key;
+       GtkWidget *optmenu_sort_type;
+       GtkWidget *optmenu_nextunreadmsgdialog;
 
 } SummariesPage;
 
@@ -296,10 +298,10 @@ static GtkWidget *date_format_create(GtkButton *button, void *data)
                         label3);
 
        gtk_window_set_position(GTK_WINDOW(datefmt_win), GTK_WIN_POS_CENTER);
-       gtk_window_set_modal(GTK_WINDOW(datefmt_win), TRUE);
 
        gtk_widget_show(datefmt_win);
        manage_window_set_transient(GTK_WINDOW(datefmt_win));
+       gtk_window_set_modal(GTK_WINDOW(datefmt_win), TRUE);
 
        gtk_widget_grab_focus(ok_btn);
 
@@ -345,6 +347,8 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        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;
 
        vbox1 = gtk_vbox_new (FALSE, VSPACING);
        gtk_widget_show (vbox1);
@@ -356,7 +360,7 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_widget_show (hbox0);
        gtk_box_pack_start(GTK_BOX (vbox2), hbox0, FALSE, FALSE, 0);
 
-       label = gtk_label_new (_("Display message number next to folder name"));
+       label = gtk_label_new (_("Display message count next to folder name"));
        gtk_widget_show (label);
        gtk_box_pack_start(GTK_BOX(hbox0), label, FALSE, FALSE, 0);
 
@@ -384,7 +388,7 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_widget_show (label_ng_abbrev);
        gtk_box_pack_start (GTK_BOX (hbox1), label_ng_abbrev, FALSE, FALSE, 0);
 
-       spinbtn_ng_abbrev_len_adj = gtk_adjustment_new (16, 0, 999, 1, 10, 0);
+       spinbtn_ng_abbrev_len_adj = GTK_ADJUSTMENT(gtk_adjustment_new (16, 0, 999, 1, 10, 0));
        spinbtn_ng_abbrev_len = gtk_spin_button_new
                (GTK_ADJUSTMENT (spinbtn_ng_abbrev_len_adj), 1, 0);
        gtk_widget_show (spinbtn_ng_abbrev_len);
@@ -414,6 +418,45 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
 
        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);
@@ -458,9 +501,9 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        menu = GTK_LIST_STORE(gtk_combo_box_get_model(
                                GTK_COMBO_BOX(optmenu_always_show_msg)));
        gtk_widget_show (optmenu_always_show_msg);
-       COMBOBOX_ADD (menu, _("Never"), OPENMSG_REQUEST_ONLY);
-       COMBOBOX_ADD (menu, _("Always"), OPENMSG_ALWAYS);
-       COMBOBOX_ADD (menu, _("When message view is visible"),
+       COMBOBOX_ADD (menu, _("No"), OPENMSG_NO);
+       COMBOBOX_ADD (menu, _("Yes"), OPENMSG_YES);
+       COMBOBOX_ADD (menu, _("Only when message view is visible"),
                        OPENMSG_WHEN_VIEW_VISIBLE);
        gtk_box_pack_start(GTK_BOX(hbox1), optmenu_always_show_msg, FALSE, FALSE, 0);
 
@@ -483,7 +526,7 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        hbox1 = gtk_hbox_new (FALSE, 8);
        gtk_box_pack_start (GTK_BOX (hbox1), radio_mark_as_read_on_select, FALSE, FALSE, 0);
 
-       spinbtn_mark_as_read_delay_adj = gtk_adjustment_new (0, 0, 60, 1, 10, 0);
+       spinbtn_mark_as_read_delay_adj = GTK_ADJUSTMENT(gtk_adjustment_new (0, 0, 60, 1, 10, 0));
        spinbtn_mark_as_read_delay = gtk_spin_button_new
                        (GTK_ADJUSTMENT (spinbtn_mark_as_read_delay_adj), 1, 0);
        gtk_box_pack_start (GTK_BOX (hbox1), spinbtn_mark_as_read_delay,
@@ -511,9 +554,6 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
                (vbox2, checkbtn_show_tooltips,
                 _("Show tooltips"));
 
-#if !GTK_CHECK_VERSION(2,12,0) && !GENERIC_UMPC
-       gtk_widget_hide(checkbtn_show_tooltips);
-#endif
        hbox2 = gtk_hbox_new (FALSE, 8);
        gtk_widget_show (hbox2);
        gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, TRUE, 0);
@@ -602,6 +642,11 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_ask_mark_all_read),
                        prefs_common.ask_mark_all_read);
 
+       combobox_select_by_data(GTK_COMBO_BOX(optmenu_sort_key),
+                       prefs_common.default_sort_key);
+       combobox_select_by_data(GTK_COMBO_BOX(optmenu_sort_type),
+                       prefs_common.default_sort_type);
+
        combobox_select_by_data(GTK_COMBO_BOX(optmenu_nextunreadmsgdialog),
                        prefs_common.next_unread_msg_dialog);
 
@@ -619,6 +664,8 @@ static void prefs_summaries_create_widget(PrefsPage *_page, GtkWindow *window,
        prefs_summaries->spinbtn_mark_as_read_delay = spinbtn_mark_as_read_delay;
        prefs_summaries->checkbtn_immedexec = checkbtn_immedexec;
        prefs_summaries->checkbtn_ask_mark_all_read = checkbtn_ask_mark_all_read;
+       prefs_summaries->optmenu_sort_key = optmenu_sort_key;
+       prefs_summaries->optmenu_sort_type = optmenu_sort_type;
        prefs_summaries->optmenu_nextunreadmsgdialog = optmenu_nextunreadmsgdialog;
 
        prefs_summaries->page.widget = vbox1;
@@ -661,6 +708,10 @@ static void prefs_summaries_save(PrefsPage *_page)
        prefs_common.mark_as_read_delay = gtk_spin_button_get_value_as_int(
                        GTK_SPIN_BUTTON(page->spinbtn_mark_as_read_delay));
 
+       prefs_common.default_sort_key = combobox_get_active_data(
+                       GTK_COMBO_BOX(page->optmenu_sort_key));
+       prefs_common.default_sort_type = combobox_get_active_data(
+                       GTK_COMBO_BOX(page->optmenu_sort_type));
        prefs_common.next_unread_msg_dialog = combobox_get_active_data(
                        GTK_COMBO_BOX(page->optmenu_nextunreadmsgdialog));
        main_window_reflect_prefs_all();