2005-03-19 [holger] 1.0.3cvs4
authorHolger Berndt <hb@claws-mail.org>
Sat, 19 Mar 2005 03:13:23 +0000 (03:13 +0000)
committerHolger Berndt <hb@claws-mail.org>
Sat, 19 Mar 2005 03:13:23 +0000 (03:13 +0000)
* src/summaryview.c
* src/summaryview.h
Add plugin hook for manual filtering invocation,
remove some dead code.

ChangeLog.claws
PATCHSETS
configure.ac
src/summaryview.c
src/summaryview.h

index adfdc1c29678f12f66bf0b4f12f8d63d9d08f509..b5a33912b18405263815423aefd3b271c8e273cb 100644 (file)
@@ -1,3 +1,10 @@
+2005-03-19 [holger]    1.0.3cvs4
+
+       * src/summaryview.c
+       * src/summaryview.h
+               Add plugin hook for manual filtering invocation,
+               remove some dead code.
+
 2005-03-18 [paul]      1.0.3cvs3
 
        * AUTHORS
index 92cc4fa7ba85886a21d71ba7252f6112fa0148c0..4ea974511d08a141c894c77e007c70f6c06bf3cf 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.22 -r 1.23 po/ru.po; ) > 1.0.3cvs1.patchset
 ( cvs diff -u -r 1.18 -r 1.19 src/plugins/trayicon/trayicon.c; ) > 1.0.3cvs2.patchset
 ( cvs diff -u -r 1.129 -r 1.130 AUTHORS; cvs diff -u -r 1.7 -r 1.8 src/gtk/about.c; cvs diff -u -r 1.1 -r 1.2 src/pixmaps/sylpheed_logo.xpm; ) > 1.0.3cvs3.patchset
+( cvs diff -u -r 1.458 -r 1.459 src/summaryview.c; cvs diff -u -r 1.75 -r 1.76 src/summaryview.h; ) > 1.0.3cvs4.patchset
index 4fa2e0d3713b4ba67a9c22e8b3732f0add7a6a3f..2683fb04ffa28ab08644a3841ae97380df5eee4f 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=0
 MICRO_VERSION=3
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=3
+EXTRA_VERSION=4
 EXTRA_RELEASE=
 
 if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
index d87da2f7d6589fbd119093a8a3b2282d0faa8853..45c771c3cb9a58cf5f3164cb01f60ff4c98ddcb1 100644 (file)
@@ -3863,11 +3863,6 @@ void summary_collapse_threads(SummaryView *summaryview)
 
 void summary_filter(SummaryView *summaryview, gboolean selected_only)
 {
-       if (!filtering_rules) {
-               alertpanel_error(_("No filter rules defined."));
-               return;
-       }
-
        summary_lock(summaryview);
 
        folder_item_update_freeze();
@@ -3878,37 +3873,21 @@ void summary_filter(SummaryView *summaryview, gboolean selected_only)
 
        gtk_clist_freeze(GTK_CLIST(summaryview->ctree));
 
-       if (filtering_rules == NULL) {
+       if (selected_only) {
+               GList *cur;
+
+               for (cur = GTK_CLIST(summaryview->ctree)->selection;
+                    cur != NULL; cur = cur->next) {
+                       summary_filter_func(GTK_CTREE(summaryview->ctree),
+                                           GTK_CTREE_NODE(cur->data),
+                                           summaryview);
+               }
+       } else {
                gtk_ctree_pre_recursive(GTK_CTREE(summaryview->ctree), NULL,
                                        GTK_CTREE_FUNC(summary_filter_func),
                                        summaryview);
-               
-               gtk_clist_thaw(GTK_CLIST(summaryview->ctree));
-               
-               if (prefs_common.immediate_exec) {
-                       summary_unlock(summaryview);
-                       summary_execute(summaryview);
-                       summary_lock(summaryview);
-               } else
-                       summary_status_show(summaryview);
-       }
-       else {
-               if (selected_only) {
-                       GList *cur;
-
-                       for (cur = GTK_CLIST(summaryview->ctree)->selection;
-                            cur != NULL; cur = cur->next) {
-                               summary_filter_func(GTK_CTREE(summaryview->ctree),
-                                                   GTK_CTREE_NODE(cur->data),
-                                                   summaryview);
-                       }
-               } else {
-                       gtk_ctree_pre_recursive(GTK_CTREE(summaryview->ctree), NULL,
-                                               GTK_CTREE_FUNC(summary_filter_func),
-                                               summaryview);
-               }
-               gtk_clist_thaw(GTK_CLIST(summaryview->ctree));
        }
+       gtk_clist_thaw(GTK_CLIST(summaryview->ctree));
 
        folder_item_update_thaw();
        debug_print("done.\n");
@@ -3921,16 +3900,19 @@ void summary_filter(SummaryView *summaryview, gboolean selected_only)
         * CLAWS: summary_show() only valid after having a lock. ideally
         * we want the lock to be context aware...  
         */
-       if (filtering_rules) {
-               summary_show(summaryview, summaryview->folder_item);
-       }               
+       summary_show(summaryview, summaryview->folder_item);
 }
 
 static void summary_filter_func(GtkCTree *ctree, GtkCTreeNode *node,
                                gpointer data)
 {
+       MailFilteringData mail_filtering_data;
        MsgInfo *msginfo = GTKUT_CTREE_NODE_GET_ROW_DATA(node);
 
+       mail_filtering_data.msginfo = msginfo;
+       if (hooks_invoke(MAIL_MANUAL_FILTERING_HOOKLIST, &mail_filtering_data))
+               return;
+
        filter_message_by_msginfo(filtering_rules, msginfo);
 }
 
index 93781a8fb1332d57882fba35686b12caed272b47..a8fc6a7da109322b948826018ddaa8152f722d9c 100644 (file)
@@ -33,6 +33,8 @@
 typedef struct _SummaryView            SummaryView;
 typedef struct _SummaryColumnState     SummaryColumnState;
 
+#define MAIL_MANUAL_FILTERING_HOOKLIST "mail_manual_filtering_hooklist"
+
 typedef enum
 {
        S_COL_MARK,