~ubuntu-branches/debian/sid/claws-mail/sid

« back to all changes in this revision

Viewing changes to src/folderview.c

  • Committer: Package Import Robot
  • Author(s): Ricardo Mones
  • Date: 2015-08-18 16:37:25 UTC
  • mfrom: (1.3.7)
  • Revision ID: package-import@ubuntu.com-20150818163725-1it32n9mzqkwy2ef
Tags: 3.12.0-1
* New upstream release:
- 'cannot reorganize mailboxes' (Closes: #777208)
- 'dropdown menu bar has disappeared…'(Closes: #778886)
- 'depends on plugins libraries'  (Closes: #779824)
- 'new upstream version (3.12.0)…' (Closes: #793665)
* 14CVE_2010_5109.patch, 15fix_crash_open_folder.patch,
  13desktop_file_categories.patch
- Remove patches applied upstream
* debian/control, debian/copyright, debian/claws-mail-managesieve*
- Add managesieve plugin (new in this release)
* debian/rules
- Set perl-plugin manpage release version automatically
* 12fix_manpage_header.patch
- Update patch to cope with upstream changes
* debian/control, debian/watch
- Update VCS-* and watch URLs (thanks Julian Wollrath)

Show diffs side-by-side

added added

removed removed

Lines of Context:
163
163
                                         gint            width,
164
164
                                         FolderView     *folderview);
165
165
 
 
166
static void mark_all_read_handler       (GtkAction      *action,
 
167
                                         gpointer        data,
 
168
                                         gboolean        recursive);
 
169
 
166
170
static void mark_all_read_cb            (GtkAction      *action,
167
171
                                         gpointer        data);
 
172
static void mark_all_read_recursive_cb  (GtkAction      *action,
 
173
                                         gpointer        data);
168
174
 
169
175
static void folderview_empty_trash_cb   (GtkAction      *action,
170
176
                                         gpointer        data);
228
234
{
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) },
810
817
 
811
818
static void mark_all_read_cb(GtkAction *action, gpointer data)
812
819
{
 
820
        mark_all_read_handler(action, data, FALSE);
 
821
}
 
822
 
 
823
static void mark_all_read_recursive_cb(GtkAction *action, gpointer data)
 
824
{
 
825
        mark_all_read_handler(action, data, TRUE);
 
826
}
 
827
 
 
828
static void mark_all_read_handler(GtkAction *action, gpointer data, gboolean recursive)
 
829
{
813
830
        FolderView *folderview = (FolderView *)data;
814
831
        FolderItem *item;
815
832
        AlertValue val;
 
833
        gchar *message;
816
834
        
817
835
        item = folderview_get_selected_item(folderview);
818
836
        if (item == NULL)
819
837
                return;
820
838
 
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 "
 
842
                               "folder as read?");
 
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);
827
848
 
828
849
                if ((val & ~G_ALERTDISABLE) != G_ALERTALTERNATE)
830
851
                else if (val & G_ALERTDISABLE)
831
852
                        prefs_common.ask_mark_all_read = FALSE;
832
853
        }
833
 
 
834
854
        
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);
838
858
        else
839
859
                summary_freeze(folderview->summaryview);
840
860
                
841
 
        folderutils_mark_all_read(item);
 
861
        if (recursive)
 
862
                folderutils_mark_all_read_recursive(item);
 
863
        else
 
864
                folderutils_mark_all_read(item);
842
865
        
843
 
        if (folderview->summaryview->folder_item != item)
 
866
        if (folderview->summaryview->folder_item != item && !recursive)
844
867
                summary_unlock(folderview->summaryview);
845
868
        else
846
869
                summary_thaw(folderview->summaryview);
857
880
                return;
858
881
        }
859
882
 
 
883
        gtk_cmclist_freeze(GTK_CMCLIST(ctree));
860
884
        gtkut_ctree_expand_parent_all(ctree, node);
861
885
 
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);
1821
1846
 
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)
1851
1877
 
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);
2474
2501
 
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));
2488
2517
        } else {
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: