configure 'go to next folder' dialog
This commit is contained in:
parent
5f73445df8
commit
c40e66153c
6 changed files with 141 additions and 18 deletions
1
AUTHORS
1
AUTHORS
|
@ -81,3 +81,4 @@ contributors (beside the above; based on Changelog)
|
||||||
David Looney
|
David Looney
|
||||||
Eric Limpens
|
Eric Limpens
|
||||||
Paul Evans
|
Paul Evans
|
||||||
|
wwp
|
||||||
|
|
|
@ -1,3 +1,13 @@
|
||||||
|
2001-09-25 [paul]
|
||||||
|
|
||||||
|
* 0.6.2claws4
|
||||||
|
|
||||||
|
* src/prefs_common.[ch], src/summaryview.c
|
||||||
|
'next unread msg' 'go to next folder?' dialog can be
|
||||||
|
given default behaviour, either always show dialog,
|
||||||
|
or assume 'yes', or assume 'no'
|
||||||
|
Submitted by wwp <subscript@free.fr>
|
||||||
|
|
||||||
2001-09-25 [melvin]
|
2001-09-25 [melvin]
|
||||||
|
|
||||||
* src/compose.c src/gtkspell.[ch]
|
* src/compose.c src/gtkspell.[ch]
|
||||||
|
|
|
@ -8,7 +8,7 @@ MINOR_VERSION=6
|
||||||
MICRO_VERSION=2
|
MICRO_VERSION=2
|
||||||
INTERFACE_AGE=0
|
INTERFACE_AGE=0
|
||||||
BINARY_AGE=0
|
BINARY_AGE=0
|
||||||
EXTRA_VERSION=claws3
|
EXTRA_VERSION=claws4
|
||||||
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
|
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
|
|
|
@ -188,6 +188,7 @@ static struct Interface {
|
||||||
GtkWidget *checkbtn_warnqueued;
|
GtkWidget *checkbtn_warnqueued;
|
||||||
GtkWidget *checkbtn_addaddrbyclick;
|
GtkWidget *checkbtn_addaddrbyclick;
|
||||||
GtkWidget *optmenu_recvdialog;
|
GtkWidget *optmenu_recvdialog;
|
||||||
|
GtkWidget *optmenu_nextunreadmsgdialog;
|
||||||
} interface;
|
} interface;
|
||||||
|
|
||||||
static struct Other {
|
static struct Other {
|
||||||
|
@ -221,6 +222,8 @@ static void prefs_common_default_signkey_set_optmenu (PrefParam *pparam);
|
||||||
#endif
|
#endif
|
||||||
static void prefs_common_recv_dialog_set_data_from_optmenu(PrefParam *pparam);
|
static void prefs_common_recv_dialog_set_data_from_optmenu(PrefParam *pparam);
|
||||||
static void prefs_common_recv_dialog_set_optmenu(PrefParam *pparam);
|
static void prefs_common_recv_dialog_set_optmenu(PrefParam *pparam);
|
||||||
|
static void prefs_nextunreadmsgdialog_set_data_from_optmenu(PrefParam *pparam);
|
||||||
|
static void prefs_nextunreadmsgdialog_set_optmenu(PrefParam *pparam);
|
||||||
|
|
||||||
#if USE_PSPELL
|
#if USE_PSPELL
|
||||||
static void prefs_dictionary_set_data_from_optmenu(PrefParam *param);
|
static void prefs_dictionary_set_data_from_optmenu(PrefParam *param);
|
||||||
|
@ -605,6 +608,10 @@ static PrefParam param[] = {
|
||||||
&interface.optmenu_recvdialog,
|
&interface.optmenu_recvdialog,
|
||||||
prefs_common_recv_dialog_set_data_from_optmenu,
|
prefs_common_recv_dialog_set_data_from_optmenu,
|
||||||
prefs_common_recv_dialog_set_optmenu},
|
prefs_common_recv_dialog_set_optmenu},
|
||||||
|
{"nextunreadmsg_dialog", NULL, &prefs_common.next_unread_msg_dialog, P_ENUM,
|
||||||
|
&interface.optmenu_nextunreadmsgdialog,
|
||||||
|
prefs_nextunreadmsgdialog_set_data_from_optmenu,
|
||||||
|
prefs_nextunreadmsgdialog_set_optmenu},
|
||||||
|
|
||||||
{"add_address_by_click", "FALSE", &prefs_common.add_address_by_click,
|
{"add_address_by_click", "FALSE", &prefs_common.add_address_by_click,
|
||||||
P_BOOL, &interface.checkbtn_addaddrbyclick,
|
P_BOOL, &interface.checkbtn_addaddrbyclick,
|
||||||
|
@ -2041,6 +2048,11 @@ static void prefs_interface_create(void)
|
||||||
GtkWidget *checkbtn_askonclean;
|
GtkWidget *checkbtn_askonclean;
|
||||||
GtkWidget *checkbtn_warnqueued;
|
GtkWidget *checkbtn_warnqueued;
|
||||||
|
|
||||||
|
GtkWidget *hbox2;
|
||||||
|
GtkWidget *optmenu_nextunreadmsgdialog;
|
||||||
|
GtkWidget *optmenu_nextunreadmsgdialog_menu;
|
||||||
|
GtkWidget *nextunreadmsgdialog_menuitem;
|
||||||
|
|
||||||
vbox1 = gtk_vbox_new (FALSE, VSPACING);
|
vbox1 = gtk_vbox_new (FALSE, VSPACING);
|
||||||
gtk_widget_show (vbox1);
|
gtk_widget_show (vbox1);
|
||||||
gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
|
gtk_container_add (GTK_CONTAINER (dialog.notebook), vbox1);
|
||||||
|
@ -2116,6 +2128,32 @@ static void prefs_interface_create(void)
|
||||||
(vbox_addr, checkbtn_addaddrbyclick,
|
(vbox_addr, checkbtn_addaddrbyclick,
|
||||||
_("Add address to destination when double-clicked"));
|
_("Add address to destination when double-clicked"));
|
||||||
|
|
||||||
|
/* Next Unread Message Dialog */
|
||||||
|
hbox2 = gtk_hbox_new (FALSE, 8);
|
||||||
|
gtk_widget_show (hbox2);
|
||||||
|
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
label = gtk_label_new (_("Show no-unread-message dialog"));
|
||||||
|
gtk_widget_show (label);
|
||||||
|
gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
optmenu_nextunreadmsgdialog = gtk_option_menu_new ();
|
||||||
|
gtk_widget_show (optmenu_nextunreadmsgdialog);
|
||||||
|
gtk_box_pack_start (GTK_BOX (hbox2), optmenu_nextunreadmsgdialog,
|
||||||
|
FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
optmenu_nextunreadmsgdialog_menu = gtk_menu_new ();
|
||||||
|
MENUITEM_ADD (optmenu_nextunreadmsgdialog_menu, nextunreadmsgdialog_menuitem,
|
||||||
|
_("Always"), NEXTUNREADMSGDIALOG_ALWAYS);
|
||||||
|
MENUITEM_ADD (optmenu_nextunreadmsgdialog_menu, nextunreadmsgdialog_menuitem,
|
||||||
|
_("Assume 'Yes'"), NEXTUNREADMSGDIALOG_ASSUME_YES);
|
||||||
|
MENUITEM_ADD (optmenu_nextunreadmsgdialog_menu, nextunreadmsgdialog_menuitem,
|
||||||
|
_("Assume 'No'"), NEXTUNREADMSGDIALOG_ASSUME_NO);
|
||||||
|
|
||||||
|
gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu_nextunreadmsgdialog),
|
||||||
|
optmenu_nextunreadmsgdialog_menu);
|
||||||
|
|
||||||
|
|
||||||
/* Receive Dialog */
|
/* Receive Dialog */
|
||||||
/* hbox = gtk_hbox_new (FALSE, 8);
|
/* hbox = gtk_hbox_new (FALSE, 8);
|
||||||
gtk_widget_show (hbox);
|
gtk_widget_show (hbox);
|
||||||
|
@ -2167,6 +2205,7 @@ static void prefs_interface_create(void)
|
||||||
interface.checkbtn_immedexec = checkbtn_immedexec;
|
interface.checkbtn_immedexec = checkbtn_immedexec;
|
||||||
interface.optmenu_recvdialog = optmenu_recvdialog;
|
interface.optmenu_recvdialog = optmenu_recvdialog;
|
||||||
interface.checkbtn_addaddrbyclick = checkbtn_addaddrbyclick;
|
interface.checkbtn_addaddrbyclick = checkbtn_addaddrbyclick;
|
||||||
|
interface.optmenu_nextunreadmsgdialog = optmenu_nextunreadmsgdialog;
|
||||||
interface.checkbtn_confonexit = checkbtn_confonexit;
|
interface.checkbtn_confonexit = checkbtn_confonexit;
|
||||||
interface.checkbtn_cleanonexit = checkbtn_cleanonexit;
|
interface.checkbtn_cleanonexit = checkbtn_cleanonexit;
|
||||||
interface.checkbtn_askonclean = checkbtn_askonclean;
|
interface.checkbtn_askonclean = checkbtn_askonclean;
|
||||||
|
@ -3280,6 +3319,44 @@ static void prefs_common_apply(void)
|
||||||
inc_autocheck_timer_set();
|
inc_autocheck_timer_set();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void prefs_nextunreadmsgdialog_set_data_from_optmenu(PrefParam *pparam)
|
||||||
|
{
|
||||||
|
GtkWidget *menu;
|
||||||
|
GtkWidget *menuitem;
|
||||||
|
|
||||||
|
menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(*pparam->widget));
|
||||||
|
menuitem = gtk_menu_get_active(GTK_MENU(menu));
|
||||||
|
*((NextUnreadMsgDialogShow *)pparam->data) = GPOINTER_TO_INT
|
||||||
|
(gtk_object_get_user_data(GTK_OBJECT(menuitem)));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void prefs_nextunreadmsgdialog_set_optmenu(PrefParam *pparam)
|
||||||
|
{
|
||||||
|
NextUnreadMsgDialogShow dialog_show;
|
||||||
|
GtkOptionMenu *optmenu = GTK_OPTION_MENU(*pparam->widget);
|
||||||
|
GtkWidget *menu;
|
||||||
|
GtkWidget *menuitem;
|
||||||
|
|
||||||
|
dialog_show = *((NextUnreadMsgDialogShow *)pparam->data);
|
||||||
|
|
||||||
|
switch (dialog_show) {
|
||||||
|
case NEXTUNREADMSGDIALOG_ALWAYS:
|
||||||
|
gtk_option_menu_set_history(optmenu, 0);
|
||||||
|
break;
|
||||||
|
case NEXTUNREADMSGDIALOG_ASSUME_YES:
|
||||||
|
gtk_option_menu_set_history(optmenu, 1);
|
||||||
|
break;
|
||||||
|
case NEXTUNREADMSGDIALOG_ASSUME_NO:
|
||||||
|
gtk_option_menu_set_history(optmenu, 2);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
}
|
||||||
|
|
||||||
|
menu = gtk_option_menu_get_menu(optmenu);
|
||||||
|
menuitem = gtk_menu_get_active(GTK_MENU(menu));
|
||||||
|
gtk_menu_item_activate(GTK_MENU_ITEM(menuitem));
|
||||||
|
}
|
||||||
|
|
||||||
static void prefs_common_cancel(void)
|
static void prefs_common_cancel(void)
|
||||||
{
|
{
|
||||||
gtk_widget_hide(dialog.window);
|
gtk_widget_hide(dialog.window);
|
||||||
|
|
|
@ -38,6 +38,13 @@ typedef enum {
|
||||||
RECV_DIALOG_NEVER
|
RECV_DIALOG_NEVER
|
||||||
} RecvDialogMode;
|
} RecvDialogMode;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
NEXTUNREADMSGDIALOG_ALWAYS,
|
||||||
|
NEXTUNREADMSGDIALOG_ASSUME_YES,
|
||||||
|
NEXTUNREADMSGDIALOG_ASSUME_NO
|
||||||
|
} NextUnreadMsgDialogShow;
|
||||||
|
|
||||||
struct _PrefsCommon
|
struct _PrefsCommon
|
||||||
{
|
{
|
||||||
/* Receive */
|
/* Receive */
|
||||||
|
@ -199,6 +206,7 @@ struct _PrefsCommon
|
||||||
gboolean open_inbox_on_inc;
|
gboolean open_inbox_on_inc;
|
||||||
gboolean immediate_exec;
|
gboolean immediate_exec;
|
||||||
RecvDialogMode recv_dialog_mode;
|
RecvDialogMode recv_dialog_mode;
|
||||||
|
NextUnreadMsgDialogShow next_unread_msg_dialog;
|
||||||
gboolean add_address_by_click;
|
gboolean add_address_by_click;
|
||||||
|
|
||||||
gboolean confirm_on_exit;
|
gboolean confirm_on_exit;
|
||||||
|
|
|
@ -1098,10 +1098,23 @@ void summary_select_prev_unread(SummaryView *summaryview)
|
||||||
if (!node) {
|
if (!node) {
|
||||||
AlertValue val;
|
AlertValue val;
|
||||||
|
|
||||||
|
switch (prefs_common.next_unread_msg_dialog) {
|
||||||
|
case NEXTUNREADMSGDIALOG_ALWAYS:
|
||||||
val = alertpanel(_("No more unread messages"),
|
val = alertpanel(_("No more unread messages"),
|
||||||
_("No unread message found. "
|
_("No unread message found. "
|
||||||
"Search from the end?"),
|
"Search from the end?"),
|
||||||
_("Yes"), _("No"), NULL);
|
_("Yes"), _("No"), NULL);
|
||||||
|
break;
|
||||||
|
case NEXTUNREADMSGDIALOG_ASSUME_YES:
|
||||||
|
val = G_ALERTDEFAULT;
|
||||||
|
break;
|
||||||
|
case NEXTUNREADMSGDIALOG_ASSUME_NO:
|
||||||
|
val = !G_ALERTDEFAULT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
debug_print(
|
||||||
|
_("Internal error: unexpected value for prefs_common.next_unread_msg_dialog\n"));
|
||||||
|
}
|
||||||
if (val != G_ALERTDEFAULT) return;
|
if (val != G_ALERTDEFAULT) return;
|
||||||
node = summary_find_prev_unread_msg(summaryview, NULL);
|
node = summary_find_prev_unread_msg(summaryview, NULL);
|
||||||
}
|
}
|
||||||
|
@ -1135,10 +1148,24 @@ void summary_select_next_unread(SummaryView *summaryview)
|
||||||
} else {
|
} else {
|
||||||
AlertValue val;
|
AlertValue val;
|
||||||
|
|
||||||
|
switch (prefs_common.next_unread_msg_dialog) {
|
||||||
|
case NEXTUNREADMSGDIALOG_ALWAYS:
|
||||||
val = alertpanel(_("No more unread messages"),
|
val = alertpanel(_("No more unread messages"),
|
||||||
_("No unread message found. "
|
_("No unread message found. "
|
||||||
"Go to next folder?"),
|
"Go to next folder?"),
|
||||||
_("Yes"), _("No"), NULL);
|
_("Yes"), _("No"), NULL);
|
||||||
|
break;
|
||||||
|
case NEXTUNREADMSGDIALOG_ASSUME_YES:
|
||||||
|
val = G_ALERTDEFAULT;
|
||||||
|
break;
|
||||||
|
case NEXTUNREADMSGDIALOG_ASSUME_NO:
|
||||||
|
val = !G_ALERTDEFAULT;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
debug_print(
|
||||||
|
_("Internal error: unexpected value for prefs_common.next_unread_msg_dialog\n"));
|
||||||
|
}
|
||||||
|
|
||||||
if (val == G_ALERTDEFAULT) {
|
if (val == G_ALERTDEFAULT) {
|
||||||
if (gtk_signal_n_emissions_by_name
|
if (gtk_signal_n_emissions_by_name
|
||||||
(GTK_OBJECT(ctree), "key_press_event") > 0)
|
(GTK_OBJECT(ctree), "key_press_event") > 0)
|
||||||
|
|
Loading…
Reference in a new issue