aboutsummaryrefslogtreecommitdiff
path: root/src/summaryview.c
diff options
context:
space:
mode:
authorhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-12-22 08:44:10 +0000
committerhiro <hiro@ee746299-78ed-0310-b773-934348b2243d>2010-12-22 08:44:10 +0000
commitc77c6ae995dedbe433fa36f1e4fc75ece4537039 (patch)
treee2cd5933e9824e946a1e41ac3729dde5a51a9e9b /src/summaryview.c
parentd2327d919562327399c0799b36e71178defe9e93 (diff)
Automatically select appropriate Junk folder on filtering.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@2767 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/summaryview.c')
-rw-r--r--src/summaryview.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/summaryview.c b/src/summaryview.c
index 80e8adb9..0349f55c 100644
--- a/src/summaryview.c
+++ b/src/summaryview.c
@@ -4643,8 +4643,7 @@ static gboolean summary_filter_junk_func(GtkTreeModel *model, GtkTreePath *path,
fltinfo = filter_info_new();
fltinfo->flags = msginfo->flags;
- filter_apply_msginfo(prefs_common.manual_junk_fltlist,
- msginfo, fltinfo);
+ filter_apply_msginfo(summaryview->junk_fltlist, msginfo, fltinfo);
if (fltinfo->actions[FLT_ACTION_MOVE] ||
fltinfo->actions[FLT_ACTION_COPY] ||
@@ -4761,9 +4760,25 @@ void summary_filter(SummaryView *summaryview, gboolean selected_only)
void summary_filter_junk(SummaryView *summaryview, gboolean selected_only)
{
- if (prefs_common.manual_junk_fltlist)
+ FilterRule *rule;
+ GSList junk_fltlist = {NULL, NULL};
+ FolderItem *item = summaryview->folder_item;
+ FolderItem *junk = NULL;
+
+ if (!item)
+ return;
+
+ if (item->folder)
+ junk = folder_get_junk(item->folder);
+ rule = filter_junk_rule_create(NULL, junk, TRUE);
+ if (rule) {
+ junk_fltlist.data = rule;
+ summaryview->junk_fltlist = &junk_fltlist;
summary_filter_real(summaryview, summary_filter_junk_func,
selected_only);
+ summaryview->junk_fltlist = NULL;
+ filter_rule_free(rule);
+ }
}
void summary_filter_open(SummaryView *summaryview, FilterCreateType type)