2007-11-27 [colin] 3.1.0cvs40
authorColin Leroy <colin@colino.net>
Tue, 27 Nov 2007 18:28:40 +0000 (18:28 +0000)
committerColin Leroy <colin@colino.net>
Tue, 27 Nov 2007 18:28:40 +0000 (18:28 +0000)
* src/folder.c
* src/mbox.c
* src/summaryview.c
Make filtering faster on flags change: Batch original
folderitem, where we'll do flags/tags changes.

ChangeLog
PATCHSETS
configure.ac
src/folder.c
src/mbox.c
src/summaryview.c

index 7ff396a09dbbda8fef8b79489dddee23cd655203..f50514ffb54befe138f9e77d4bfe38674ab71229 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-11-27 [colin]     3.1.0cvs40
+
+       * src/folder.c
+       * src/mbox.c
+       * src/summaryview.c
+               Make filtering faster on flags change: Batch original 
+               folderitem, where we'll do flags/tags changes.
+
 2007-11-27 [colin]     3.1.0cvs39
 
        * src/filtering.c
index 5915152baef10ee6f5b3fe61cab8dcb9221caf8e..ca9217d997fdfe1324a7a816ae629f12567cb787 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.60.2.109 -r 1.60.2.110 src/addressbook.c;  cvs diff -u -r 1.204.2.156 -r 1.204.2.157 src/prefs_common.c;  ) > 3.1.0cvs37.patchset
 ( cvs diff -u -r 1.1.2.14 -r 1.1.2.15 src/edittags.c;  cvs diff -u -r 1.395.2.340 -r 1.395.2.341 src/summaryview.c;  ) > 3.1.0cvs38.patchset
 ( cvs diff -u -r 1.60.2.41 -r 1.60.2.42 src/filtering.c;  ) > 3.1.0cvs39.patchset
+( cvs diff -u -r 1.213.2.169 -r 1.213.2.170 src/folder.c;  cvs diff -u -r 1.28.2.41 -r 1.28.2.42 src/mbox.c;  cvs diff -u -r 1.395.2.341 -r 1.395.2.342 src/summaryview.c;  ) > 3.1.0cvs40.patchset
index cf611aa0fd13a2bfa27bc977d6d9b7aafe7586c0..42428c844540d8b55c92a1415ff3ddb46f419521 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=1
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=39
+EXTRA_VERSION=40
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 55b83899b2a678f06c00266f53f422d4043649f7..7b63b5bb371ed0e1dfe31e4ab4a698ea565e88c4 100644 (file)
@@ -2139,9 +2139,12 @@ gint folder_item_scan_full(FolderItem *item, gboolean filtering)
 
                if (do_filter) {
                        GSList *unfiltered;
+                       
+                       folder_item_set_batch(item, TRUE);
                        procmsg_msglist_filter(newmsg_list, item->folder->account, 
                                        &to_filter, &unfiltered, 
                                        TRUE);
+                       folder_item_set_batch(item, FALSE);
                        
                        filtering_move_and_copy_msgs(newmsg_list);
                        if (to_filter != NULL) {
@@ -4045,6 +4048,7 @@ void folder_item_apply_processing(FolderItem *item)
        last_apply_per_account = prefs_common.apply_per_account_filtering_rules;
        prefs_common.apply_per_account_filtering_rules = FILTERING_ACCOUNT_RULES_SKIP;
 
+       folder_item_set_batch(item, TRUE);
        for (cur = mlist ; cur != NULL ; cur = cur->next) {
                MsgInfo * msginfo;
 
@@ -4070,6 +4074,8 @@ void folder_item_apply_processing(FolderItem *item)
                if (curmsg % 1000 == 0)
                        GTK_EVENTS_FLUSH();
        }
+       folder_item_set_batch(item, FALSE);
+
        prefs_common.apply_per_account_filtering_rules = last_apply_per_account;
 
        if (pre_global_processing || processing_list
index 0e695a6ce8d5ddef91225752c05538c20abe3e26..1bbd0f17d00f8e6873fccb48ef52651ce5d941b7 100644 (file)
@@ -266,8 +266,11 @@ gint proc_mbox(FolderItem *dest, const gchar *mbox, gboolean apply_filter,
                statusbar_pop_all();
 
        if (apply_filter) {
+
+               folder_item_set_batch(dropfolder, FALSE);
                procmsg_msglist_filter(to_filter, account, 
                                &filtered, &unfiltered, TRUE);
+               folder_item_set_batch(dropfolder, TRUE);
 
                filtering_move_and_copy_msgs(to_filter);
                for (cur = filtered; cur; cur = g_slist_next(cur)) {
index 36f81c86e3f648c7ed173a69cc7dccd23093e9f1..796d8c3d2502471edbaae243bba2feb80443db69 100644 (file)
@@ -5128,10 +5128,15 @@ void summary_filter(SummaryView *summaryview, gboolean selected_only)
        } else {
                mlist = folder_item_get_msg_list(summaryview->folder_item);
        }
+       
+       folder_item_set_batch(summaryview->folder_item, TRUE);
        for (cur_list = mlist; cur_list; cur_list = cur_list->next) {
                summary_filter_func((MsgInfo *)cur_list->data);
        }
+       folder_item_set_batch(summaryview->folder_item, FALSE);
+       
        filtering_move_and_copy_msgs(mlist);
+       
        for (cur_list = mlist; cur_list; cur_list = cur_list->next) {
                procmsg_msginfo_free((MsgInfo *)cur_list->data);
        }