X-Git-Url: http://git.claws-mail.org/?p=claws.git;a=blobdiff_plain;f=src%2Ffiltering.h;h=3f8ef26ac2ca0330cc42de8d4be9c243a107118a;hp=09e8e4ecb0a28b154bf6db3f2cdbd1e9e4df0b6d;hb=b4fcf00d283a9ec2e73bfffe897296e4bbb9f85c;hpb=2896acb268211322e0f3cd3909481730029aa4cc;ds=sidebyside diff --git a/src/filtering.h b/src/filtering.h index 09e8e4ecb..3f8ef26ac 100644 --- a/src/filtering.h +++ b/src/filtering.h @@ -1,10 +1,10 @@ /* * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client - * Copyright (C) 1999-2006 Hiroyuki Yamamoto & The Sylpheed Claws Team + * Copyright (C) 1999-2012 Hiroyuki Yamamoto & The Claws Mail Team * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or + * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, @@ -13,8 +13,8 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * along with this program. If not, see . + * */ #ifndef FILTER_NEW_H @@ -31,6 +31,7 @@ struct _FilteringAction { gchar *destination; gint labelcolor; gint score; + gchar *header; }; typedef struct _FilteringAction FilteringAction; @@ -38,24 +39,46 @@ typedef struct _FilteringAction FilteringAction; struct _FilteringProp { gboolean enabled; gchar *name; + gint account_id; MatcherList * matchers; GSList * action_list; }; typedef struct _FilteringProp FilteringProp; +enum { + FILTERING_ACCOUNT_RULES_SKIP = 0, + FILTERING_ACCOUNT_RULES_FORCE = 1, + FILTERING_ACCOUNT_RULES_USE_CURRENT = 2 +}; + +typedef enum { + FILTERING_INCORPORATION, + FILTERING_MANUALLY, + FILTERING_FOLDER_PROCESSING, + FILTERING_PRE_PROCESSING, + FILTERING_POST_PROCESSING +} FilteringInvocationType; + +typedef enum { + FILTERING_DEBUG_LEVEL_LOW, + FILTERING_DEBUG_LEVEL_MED, + FILTERING_DEBUG_LEVEL_HIGH +} FilteringDebugLevel; + /* extern GSList * prefs_filtering; */ FilteringAction * filteringaction_new(int type, int account_id, gchar * destination, - gint labelcolor, gint score); + gint labelcolor, gint score, gchar *header); void filteringaction_free(FilteringAction *action); FilteringAction * filteringaction_parse(gchar **str); gboolean filteringaction_apply_action_list (GSList *action_list, MsgInfo *info); FilteringProp * filteringprop_new(gboolean enabled, const gchar *name, + gint account_id, MatcherList *matchers, GSList *action_list); void filteringprop_free(FilteringProp *prop); @@ -63,9 +86,10 @@ void filteringprop_free(FilteringProp *prop); FilteringProp * filteringprop_parse(gchar **str); void filter_msginfo_move_or_delete(GSList *filtering_list, MsgInfo *info); -gboolean filter_message_by_msginfo(GSList *flist, MsgInfo *info); +gboolean filter_message_by_msginfo(GSList *flist, MsgInfo *info, PrefsAccount *ac_prefs, + FilteringInvocationType context, gchar *extra_info); -gchar * filteringaction_to_string(gchar *dest, gint destlen, FilteringAction *action); +gchar * filteringaction_to_string(FilteringAction *action); void prefs_filtering_write_config(void); void prefs_filtering_read_config(void); gchar * filteringaction_list_to_string(GSList * action_list); @@ -73,13 +97,17 @@ gchar * filteringprop_to_string(FilteringProp *prop); void prefs_filtering_clear(void); void prefs_filtering_clear_folder(Folder *folder); -void prefs_filtering_free(GSList *prefs_filtering); FilteringProp * filteringprop_copy(FilteringProp *src); void filtering_move_and_copy_msgs(GSList *msglist); -void filtering_move_and_copy_msg(MsgInfo *msginfo); extern GSList * filtering_rules; extern GSList * pre_global_processing; extern GSList * post_global_processing; +gboolean filtering_peek_per_account_rules(GSList *filtering_list); + +GSList *filtering_action_list_sort(GSList *action_list); +gboolean filtering_action_list_rename_path(GSList *action_list, const gchar *old_path, + const gchar *new_path); + #endif