*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#ifdef HAVE_CONFIG_H
#include "prefs_common.h"
#include "prefs_gtk.h"
#include "prefs_summary_column.h"
+#include "prefs_folder_column.h"
#include "gtk/menu.h"
#include "gtk/gtkutils.h"
GtkWidget *chkbtn_transhdr;
GtkWidget *chkbtn_folder_unread;
GtkWidget *spinbtn_ng_abbrev_len;
- GtkWidget *chkbtn_swapfrom;
GtkWidget *chkbtn_useaddrbook;
GtkWidget *chkbtn_threadsubj;
GtkWidget *button_datefmt;
GtkWidget *entry_datefmt;
GtkWidget *checkbtn_always_show_msg;
- GtkWidget *checkbtn_openunread;
GtkWidget *checkbtn_mark_as_read_on_newwin;
- GtkWidget *checkbtn_openinbox;
GtkWidget *checkbtn_immedexec;
+ GtkWidget *checkbtn_ask_mark_all_read;
+ GtkWidget *optmenu_select_on_entry;
GtkWidget *optmenu_nextunreadmsgdialog;
} SummariesPage;
GtkWidget *label_ng_abbrev;
GtkWidget *spinbtn_ng_abbrev_len;
GtkObject *spinbtn_ng_abbrev_len_adj;
- GtkWidget *frame_summary;
GtkWidget *vbox2;
- GtkWidget *chkbtn_swapfrom;
GtkWidget *chkbtn_useaddrbook;
GtkWidget *chkbtn_threadsubj;
GtkWidget *vbox3;
GtkWidget *label_datefmt;
GtkWidget *button_datefmt;
GtkWidget *entry_datefmt;
+ GtkWidget *hbox_dispitem;
+ GtkWidget *frame_dispitem;
GtkWidget *button_dispitem;
+ GtkWidget *vbox4;
+ GtkWidget *hbox2;
GtkWidget *checkbtn_always_show_msg;
- GtkWidget *checkbtn_openunread;
GtkWidget *checkbtn_mark_as_read_on_newwin;
- GtkWidget *checkbtn_openinbox;
GtkWidget *checkbtn_immedexec;
+ GtkWidget *checkbtn_ask_mark_all_read;
GtkTooltips *immedexec_tooltip;
GtkWidget *label;
GtkWidget *menu;
GtkWidget *menuitem;
GtkWidget *button_keybind;
+ GtkWidget *hbox_select_on_entry;
+ GtkWidget *optmenu_select_on_entry;
GtkWidget *hbox_nextunreadmsgdialog;
GtkWidget *optmenu_nextunreadmsgdialog;
PACK_CHECK_BUTTON (vbox2, chkbtn_folder_unread,
_("Display unread number next to folder name"));
- PACK_VSPACER(vbox2, vbox3, VSPACING_NARROW_2);
+ PACK_VSPACER(vbox1, vbox2, VSPACING_NARROW_2);
hbox1 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox1);
gtk_spin_button_set_numeric (GTK_SPIN_BUTTON (spinbtn_ng_abbrev_len),
TRUE);
- label_ng_abbrev = gtk_label_new
- (_("letters"));
+ label_ng_abbrev = gtk_label_new (_("letters"));
gtk_widget_show (label_ng_abbrev);
gtk_box_pack_start (GTK_BOX (hbox1), label_ng_abbrev, FALSE, FALSE, 0);
/* ---- Summary ---- */
- PACK_FRAME(vbox1, frame_summary, _("Summary View"));
-
- vbox2 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox2);
- gtk_container_add (GTK_CONTAINER (frame_summary), vbox2);
- gtk_container_set_border_width (GTK_CONTAINER (vbox2), 8);
+ vbox3 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox3);
+ gtk_container_add (GTK_CONTAINER (vbox2), vbox3);
+ gtk_container_set_border_width (GTK_CONTAINER (vbox3), 0);
PACK_CHECK_BUTTON
- (vbox2, chkbtn_swapfrom,
- _("Display recipient in 'From' column if sender is yourself"));
- PACK_CHECK_BUTTON
- (vbox2, chkbtn_useaddrbook,
+ (vbox3, chkbtn_useaddrbook,
_("Display sender using address book"));
PACK_CHECK_BUTTON
- (vbox2, chkbtn_threadsubj,
+ (vbox3, chkbtn_threadsubj,
_("Thread using subject in addition to standard headers"));
PACK_VSPACER(vbox2, vbox3, VSPACING_NARROW_2);
hbox1 = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, TRUE, 0);
label_datefmt = gtk_label_new (_("Date format"));
gtk_widget_show (label_datefmt);
PACK_VSPACER(vbox2, vbox3, VSPACING_NARROW);
- hbox1 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, TRUE, 0);
+ PACK_FRAME(vbox3, frame_dispitem, _("Set displayed columns"));
+ hbox_dispitem = gtk_hbox_new (FALSE, 8);
+ gtk_widget_show (hbox_dispitem);
+ gtk_container_add (GTK_CONTAINER (frame_dispitem), hbox_dispitem);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox_dispitem), 8);
+
+ button_dispitem = gtk_button_new_with_label
+ (_(" Folder list... "));
+ gtk_widget_show (button_dispitem);
+ gtk_box_pack_start (GTK_BOX (hbox_dispitem), button_dispitem, FALSE, FALSE, 0);
+ g_signal_connect (G_OBJECT (button_dispitem), "clicked",
+ G_CALLBACK (prefs_folder_column_open),
+ NULL);
+
button_dispitem = gtk_button_new_with_label
- (_(" Set displayed items in summary... "));
+ (_(" Message list... "));
gtk_widget_show (button_dispitem);
- gtk_box_pack_start (GTK_BOX (hbox1), button_dispitem, FALSE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox_dispitem), button_dispitem, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (button_dispitem), "clicked",
G_CALLBACK (prefs_summary_column_open),
NULL);
- vbox2 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox2);
- gtk_box_pack_start (GTK_BOX (vbox1), vbox2, FALSE, FALSE, 0);
+ vbox4 = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox4);
+ gtk_box_pack_start (GTK_BOX (vbox1), vbox4, FALSE, FALSE, 0);
/* PACK_CHECK_BUTTON (vbox2, checkbtn_emacs,
_("Emulate the behavior of mouse operation of\n"
gtk_label_set_justify (GTK_LABEL (GTK_BIN (checkbtn_emacs)->child),
GTK_JUSTIFY_LEFT); */
- PACK_CHECK_BUTTON
- (vbox2, checkbtn_always_show_msg,
- _("Always open messages in summary when selected"));
-
- PACK_CHECK_BUTTON
- (vbox2, checkbtn_openunread,
- _("Open first unread message when entering a folder"));
-
- PACK_CHECK_BUTTON
- (vbox2, checkbtn_mark_as_read_on_newwin,
- _("Only mark message as read when opened in new window"));
-
- PACK_CHECK_BUTTON
- (vbox2, checkbtn_openinbox,
- _("Go to inbox after receiving new mail"));
-
- vbox3 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox3);
- gtk_box_pack_start (GTK_BOX (vbox2), vbox3, FALSE, FALSE, 0);
-
immedexec_tooltip = gtk_tooltips_new();
PACK_CHECK_BUTTON
- (vbox3, checkbtn_immedexec,
+ (vbox4, checkbtn_immedexec,
_("Execute immediately when moving or deleting messages"));
gtk_tooltips_set_tip(GTK_TOOLTIPS(immedexec_tooltip), checkbtn_immedexec,
_("Messages will be marked until execution"
" if this is turned off"),
NULL);
+ PACK_CHECK_BUTTON
+ (vbox4, checkbtn_ask_mark_all_read,
+ _("Confirm before marking all mails in a folder as read"));
+
+ PACK_CHECK_BUTTON
+ (vbox4, checkbtn_always_show_msg,
+ _("Always open message when selected"));
+
+ PACK_CHECK_BUTTON
+ (vbox4, checkbtn_mark_as_read_on_newwin,
+ _("Only mark message as read when opened in a new window"));
+
hbox1 = gtk_hbox_new (FALSE, 0);
gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox3), hbox1, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (vbox4), hbox1, FALSE, FALSE, 0);
+
+ hbox_select_on_entry = gtk_hbox_new (FALSE, 8);
+ gtk_widget_show (hbox_select_on_entry);
+ gtk_box_pack_start (GTK_BOX (vbox1), hbox_select_on_entry, FALSE, FALSE, 0);
+
+ label = gtk_label_new (_("When entering a folder"));
+ gtk_widget_show (label);
+ gtk_box_pack_start (GTK_BOX (hbox_select_on_entry), label, FALSE, FALSE, 8);
- /* Next Unread Message Dialog */
+ optmenu_select_on_entry = gtk_option_menu_new ();
+ gtk_widget_show (optmenu_select_on_entry);
+ gtk_box_pack_start (GTK_BOX (hbox_select_on_entry),
+ optmenu_select_on_entry, FALSE, FALSE, 8);
+
+ menu = gtk_menu_new ();
+ MENUITEM_ADD (menu, menuitem, _("Do nothing"), 0);
+ MENUITEM_ADD (menu, menuitem, _("Select first unread (or new) message"),
+ SELECTONENTRY_UNREAD);
+ MENUITEM_ADD (menu, menuitem, _("Select first new (or unread) message"),
+ SELECTONENTRY_NEW);
+
+ gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu_select_on_entry), menu);
+
+ /* Next Unread Message Dialog */
hbox_nextunreadmsgdialog = gtk_hbox_new (FALSE, 8);
gtk_widget_show (hbox_nextunreadmsgdialog);
gtk_box_pack_start (GTK_BOX (vbox1), hbox_nextunreadmsgdialog, FALSE, FALSE, 0);
- label = gtk_label_new (_("Show no-unread-message dialog"));
+ label = gtk_label_new (_("Show \"no unread (or new) message\" dialog"));
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (hbox_nextunreadmsgdialog), label, FALSE, FALSE, 8);
gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu_nextunreadmsgdialog), menu);
- hbox1 = gtk_hbox_new (FALSE, 8);
- gtk_widget_show (hbox1);
- gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
+ hbox2 = gtk_hbox_new (FALSE, 8);
+ gtk_widget_show (hbox2);
+ gtk_box_pack_start (GTK_BOX (vbox1), hbox2, FALSE, FALSE, 0);
button_keybind = gtk_button_new_with_label (_(" Set key bindings... "));
gtk_widget_show (button_keybind);
- gtk_box_pack_start (GTK_BOX (hbox1), button_keybind, FALSE, FALSE, 0);
+ gtk_box_pack_start (GTK_BOX (hbox2), button_keybind, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (button_keybind), "clicked",
G_CALLBACK (prefs_keybind_select), NULL);
prefs_common.trans_hdr);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_folder_unread),
prefs_common.display_folder_unread);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_swapfrom),
- prefs_common.swap_from);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_useaddrbook),
prefs_common.use_addr_book);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(chkbtn_threadsubj),
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_always_show_msg),
prefs_common.always_show_msg);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_openunread),
- prefs_common.open_unread_on_enter);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_mark_as_read_on_newwin),
prefs_common.mark_as_read_on_new_window);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_openinbox),
- prefs_common.open_inbox_on_inc);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_immedexec),
prefs_common.immediate_exec);
+ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_ask_mark_all_read),
+ prefs_common.ask_mark_all_read);
+ gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu_select_on_entry),
+ prefs_common.select_on_entry);
gtk_option_menu_set_history(GTK_OPTION_MENU(optmenu_nextunreadmsgdialog),
prefs_common.next_unread_msg_dialog);
prefs_summaries->chkbtn_transhdr = chkbtn_transhdr;
prefs_summaries->chkbtn_folder_unread = chkbtn_folder_unread;
prefs_summaries->spinbtn_ng_abbrev_len = spinbtn_ng_abbrev_len;
- prefs_summaries->chkbtn_swapfrom = chkbtn_swapfrom;
prefs_summaries->chkbtn_useaddrbook = chkbtn_useaddrbook;
prefs_summaries->chkbtn_threadsubj = chkbtn_threadsubj;
prefs_summaries->entry_datefmt = entry_datefmt;
prefs_summaries->checkbtn_always_show_msg = checkbtn_always_show_msg;
- prefs_summaries->checkbtn_openunread = checkbtn_openunread;
prefs_summaries->checkbtn_mark_as_read_on_newwin = checkbtn_mark_as_read_on_newwin;
- prefs_summaries->checkbtn_openinbox = checkbtn_openinbox;
prefs_summaries->checkbtn_immedexec = checkbtn_immedexec;
+ prefs_summaries->checkbtn_ask_mark_all_read = checkbtn_ask_mark_all_read;
+ prefs_summaries->optmenu_select_on_entry = optmenu_select_on_entry;
prefs_summaries->optmenu_nextunreadmsgdialog = optmenu_nextunreadmsgdialog;
prefs_summaries->page.widget = vbox1;
GTK_TOGGLE_BUTTON(page->chkbtn_transhdr));
prefs_common.display_folder_unread = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->chkbtn_folder_unread));
- prefs_common.swap_from = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(page->chkbtn_swapfrom));
prefs_common.use_addr_book = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->chkbtn_useaddrbook));
prefs_common.thread_by_subject = gtk_toggle_button_get_active(
prefs_common.always_show_msg = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->checkbtn_always_show_msg));
- prefs_common.open_unread_on_enter = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(page->checkbtn_openunread));
prefs_common.mark_as_read_on_new_window = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->checkbtn_mark_as_read_on_newwin));
- prefs_common.open_inbox_on_inc = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(page->checkbtn_openinbox));
prefs_common.immediate_exec = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->checkbtn_immedexec));
+ prefs_common.ask_mark_all_read = gtk_toggle_button_get_active(
+ GTK_TOGGLE_BUTTON(page->checkbtn_ask_mark_all_read));
+ menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(page->optmenu_select_on_entry));
+ menuitem = gtk_menu_get_active(GTK_MENU(menu));
+ prefs_common.select_on_entry = GPOINTER_TO_INT
+ (g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
+
menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(page->optmenu_nextunreadmsgdialog));
menuitem = gtk_menu_get_active(GTK_MENU(menu));
prefs_common.next_unread_msg_dialog = GPOINTER_TO_INT
(g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
+ main_window_reflect_prefs_all();
}
static void prefs_summaries_destroy_widget(PrefsPage *_page)