164
164
FolderView *folderview);
166
static void mark_all_read_handler (GtkAction *action,
166
170
static void mark_all_read_cb (GtkAction *action,
172
static void mark_all_read_recursive_cb (GtkAction *action,
169
175
static void folderview_empty_trash_cb (GtkAction *action,
229
235
{"FolderViewPopup", NULL, "FolderViewPopup" },
230
236
{"FolderViewPopup/MarkAllRead", NULL, N_("Mark all re_ad"), NULL, NULL, G_CALLBACK(mark_all_read_cb) },
237
{"FolderViewPopup/MarkAllReadRec", NULL, N_("Mark all read recursi_vely"), NULL, NULL, G_CALLBACK(mark_all_read_recursive_cb) },
231
238
{"FolderViewPopup/---", NULL, "---" },
232
239
{"FolderViewPopup/RunProcessing", NULL, N_("R_un processing rules"), NULL, NULL, G_CALLBACK(folderview_run_processing_cb) },
233
240
{"FolderViewPopup/SearchFolder", NULL, N_("_Search folder..."), NULL, NULL, G_CALLBACK(folderview_search_cb) },
811
818
static void mark_all_read_cb(GtkAction *action, gpointer data)
820
mark_all_read_handler(action, data, FALSE);
823
static void mark_all_read_recursive_cb(GtkAction *action, gpointer data)
825
mark_all_read_handler(action, data, TRUE);
828
static void mark_all_read_handler(GtkAction *action, gpointer data, gboolean recursive)
813
830
FolderView *folderview = (FolderView *)data;
814
831
FolderItem *item;
817
835
item = folderview_get_selected_item(folderview);
818
836
if (item == NULL)
821
if (folderview->summaryview->folder_item != item
822
&& prefs_common.ask_mark_all_read) {
839
message = recursive? _("Do you really want to mark all mails in this "
840
"folder and its sub-folders as read?") :
841
_("Do you really want to mark all mails in this "
843
if (folderview->summaryview->folder_item != item &&
844
prefs_common.ask_mark_all_read) {
823
845
val = alertpanel_full(_("Mark all as read"),
824
_("Do you really want to mark all mails in this "
825
"folder as read?"), GTK_STOCK_NO, GTK_STOCK_YES, NULL,
846
message, GTK_STOCK_NO, GTK_STOCK_YES, NULL,
826
847
TRUE, NULL, ALERT_QUESTION, G_ALERTDEFAULT);
828
849
if ((val & ~G_ALERTDISABLE) != G_ALERTALTERNATE)
830
851
else if (val & G_ALERTDISABLE)
831
852
prefs_common.ask_mark_all_read = FALSE;
835
855
folder_item_update_freeze();
836
if (folderview->summaryview->folder_item != item)
856
if (folderview->summaryview->folder_item != item && !recursive)
837
857
summary_lock(folderview->summaryview);
839
859
summary_freeze(folderview->summaryview);
841
folderutils_mark_all_read(item);
862
folderutils_mark_all_read_recursive(item);
864
folderutils_mark_all_read(item);
843
if (folderview->summaryview->folder_item != item)
866
if (folderview->summaryview->folder_item != item && !recursive)
844
867
summary_unlock(folderview->summaryview);
846
869
summary_thaw(folderview->summaryview);
883
gtk_cmclist_freeze(GTK_CMCLIST(ctree));
860
884
gtkut_ctree_expand_parent_all(ctree, node);
862
886
folderview->open_folder = TRUE;
863
887
gtkut_ctree_set_focus_row(ctree, node);
864
888
gtk_cmctree_select(ctree, node);
889
gtk_cmclist_thaw(GTK_CMCLIST(ctree));
865
890
if ((folderview->summaryview->folder_item &&
866
891
folderview->summaryview->folder_item->total_msgs > 0) ||
867
892
prefs_common.layout_mode == SMALL_LAYOUT)
1820
1845
fpopup->add_menuitems(ui_manager, item);
1822
1847
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "MarkAllRead", "FolderViewPopup/MarkAllRead", GTK_UI_MANAGER_MENUITEM)
1848
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "MarkAllReadRec", "FolderViewPopup/MarkAllReadRec", GTK_UI_MANAGER_MENUITEM)
1823
1849
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "Separator1", "FolderViewPopup/---", GTK_UI_MANAGER_SEPARATOR)
1824
1850
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "RunProcessing", "FolderViewPopup/RunProcessing", GTK_UI_MANAGER_MENUITEM)
1825
1851
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "SearchFolder", "FolderViewPopup/SearchFolder", GTK_UI_MANAGER_MENUITEM)
1850
1876
cm_menu_set_sensitive_full(ui_manager, "Popup/"name, sens)
1852
1878
SET_SENS("FolderViewPopup/MarkAllRead", item->unread_msgs >= 1);
1879
SET_SENS("FolderViewPopup/MarkAllReadRec", folderview_have_unread_children(folderview,item));
1853
1880
SET_SENS("FolderViewPopup/SearchFolder", item->total_msgs >= 1 &&
1854
1881
folderview->selected == folderview->opened);
1855
1882
SET_SENS("FolderViewPopup/Properties", TRUE);
2475
2502
statusbar_verbosity_set(FALSE);
2476
2503
folder_item_update_freeze();
2504
gtk_cmclist_freeze(GTK_CMCLIST(folderview->ctree));
2477
2505
if ((status = folder_item_move_to(from_folder, to_folder, &new_folder, copy)) == F_MOVE_OK) {
2478
2506
statusbar_verbosity_set(FALSE);
2479
2507
main_window_cursor_normal(folderview->mainwin);
2485
2513
gtk_cmctree_find_by_row_data(GTK_CMCTREE(folderview->ctree),
2486
2514
NULL, to_folder), new_folder->folder);
2487
2515
folderview_select(folderview, new_folder);
2516
gtk_cmclist_thaw(GTK_CMCLIST(folderview->ctree));
2489
2518
statusbar_verbosity_set(FALSE);
2490
2519
main_window_cursor_normal(folderview->mainwin);
2491
2520
STATUSBAR_POP(folderview->mainwin);
2521
gtk_cmclist_thaw(GTK_CMCLIST(folderview->ctree));
2492
2522
folder_item_update_thaw();
2493
2523
switch (status) {
2494
2524
case F_MOVE_FAILED_DEST_IS_PARENT: