diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2010-12-22 08:44:10 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2010-12-22 08:44:10 +0000 |
commit | c77c6ae995dedbe433fa36f1e4fc75ece4537039 (patch) | |
tree | e2cd5933e9824e946a1e41ac3729dde5a51a9e9b /src/summaryview.c | |
parent | d2327d919562327399c0799b36e71178defe9e93 (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.c | 21 |
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) |