*
* 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,
* 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 <http://www.gnu.org/licenses/>.
+ *
*/
#ifdef HAVE_CONFIG_H
CRITERIA_SPAM = 22,
CRITERIA_COLORLABEL = 23,
CRITERIA_IGNORE_THREAD = 24,
+ CRITERIA_WATCH_THREAD = 25,
- CRITERIA_SCORE_GREATER = 25,
- CRITERIA_SCORE_LOWER = 26,
- CRITERIA_SCORE_EQUAL = 27,
+ CRITERIA_SCORE_GREATER = 26,
+ CRITERIA_SCORE_LOWER = 27,
+ CRITERIA_SCORE_EQUAL = 28,
- CRITERIA_TEST = 28,
+ CRITERIA_TEST = 29,
- CRITERIA_SIZE_GREATER = 29,
- CRITERIA_SIZE_SMALLER = 30,
- CRITERIA_SIZE_EQUAL = 31,
+ CRITERIA_SIZE_GREATER = 30,
+ CRITERIA_SIZE_SMALLER = 31,
+ CRITERIA_SIZE_EQUAL = 32,
- CRITERIA_PARTIAL = 32,
+ CRITERIA_PARTIAL = 33,
- CRITERIA_FOUND_IN_ADDRESSBOOK = 33,
+ CRITERIA_FOUND_IN_ADDRESSBOOK = 34,
+
+ CRITERIA_TAG = 35,
+ CRITERIA_TAGGED = 36
};
/*!
*\brief Descriptive text for conditions
*/
-static const gchar *criteria_text [] = {
- N_("All messages"), N_("Subject"),
- N_("From"), N_("To"), N_("Cc"), N_("To or Cc"),
- N_("Newsgroups"), N_("In reply to"), N_("References"),
- N_("Age greater than"), N_("Age lower than"),
- N_("Header"), N_("Headers part"),
- N_("Body part"), N_("Whole message"),
- N_("Unread flag"), N_("New flag"),
- N_("Marked flag"), N_("Deleted flag"),
- N_("Replied flag"), N_("Forwarded flag"),
- N_("Locked flag"),
- N_("Spam flag"),
- N_("Color label"),
- N_("Ignored thread"),
- N_("Score greater than"), N_("Score lower than"),
- N_("Score equal to"),
- N_("Test"),
- N_("Size greater than"),
- N_("Size smaller than"),
- N_("Size exactly"),
- N_("Partially downloaded"),
- N_("Found in addressbook")
+typedef struct _struct_criteria_text struct_criteria_text;
+struct _struct_criteria_text {
+ const gchar *text;
+ gboolean contains_header_name;
+ /* if contains_header_name is TRUE, prefs_common_translated_headername(text)
+ will be used
+ */
+};
+
+static struct_criteria_text criteria_text [] = {
+ { N_("All messages"), FALSE },
+ { N_("Subject"), TRUE },
+ { N_("From"), TRUE },
+ { N_("To"), TRUE },
+ { N_("Cc"), TRUE },
+ { N_("To or Cc"), TRUE },
+ { N_("Newsgroups"), TRUE },
+ { N_("In reply to"), TRUE },
+ { N_("References"), TRUE },
+ { N_("Age greater than (days)"), FALSE },
+ { N_("Age less than (days)"), FALSE },
+ { N_("Header"), FALSE },
+ { N_("Headers part"), FALSE },
+ { N_("Body part"), FALSE },
+ { N_("Whole message"), FALSE },
+ { N_("Unread flag"), FALSE },
+ { N_("New flag"), FALSE },
+ { N_("Marked flag"), FALSE },
+ { N_("Deleted flag"), FALSE },
+ { N_("Replied flag"), FALSE },
+ { N_("Forwarded flag"), FALSE },
+ { N_("Locked flag"), FALSE },
+ { N_("Spam flag"), FALSE },
+ { N_("Color label"), FALSE },
+ { N_("Ignored thread"), FALSE },
+ { N_("Watched thread"), FALSE },
+ { N_("Score greater than"), FALSE },
+ { N_("Score lower than"), FALSE },
+ { N_("Score equal to"), FALSE },
+ { N_("Test"), FALSE },
+ { N_("Size greater than (bytes)"), FALSE },
+ { N_("Size smaller than (bytes)"), FALSE },
+ { N_("Size exactly (bytes)"), FALSE },
+ { N_("Partially downloaded"), FALSE },
+ { N_("Found in addressbook"), FALSE },
+ { N_("Tags"), FALSE },
+ { N_("Tagged"), FALSE },
+ { NULL, FALSE }
};
/*!
if (!matcher.window) {
prefs_matcher_create();
+ } else {
+ /* update color label menu */
+ gtk_option_menu_set_menu(GTK_OPTION_MENU(matcher.color_optmenu),
+ colorlabel_create_color_menu());
}
manage_window_set_transient(GTK_WINDOW(matcher.window));
combo_items = NULL;
- for (i = 0; i < (gint) (sizeof(criteria_text) / sizeof(gchar *)); i++) {
- combo_items = g_list_append(combo_items,
- (gpointer) _(criteria_text[i]));
+ for (i = 0; criteria_text[i].text != NULL; i++) {
+ if (criteria_text[i].contains_header_name)
+ combo_items = g_list_append(combo_items,
+ (gpointer) prefs_common_translated_header_name(criteria_text[i].text));
+ else
+ combo_items = g_list_append(combo_items,
+ (gpointer) gettext(criteria_text[i].text));
}
gtk_combo_set_popdown_strings(GTK_COMBO(criteria_combo), combo_items);
g_list_free(combo_items);
- gtk_widget_set_size_request(criteria_combo, 170, -1);
+ gtk_widget_set_size_request(criteria_combo, 190, -1);
gtk_table_attach(GTK_TABLE(criteria_table), criteria_combo, 0, 1, 1, 2,
0, 0, 0, 0);
criteria_list = GTK_COMBO(criteria_combo)->list;
case MATCHCRITERIA_IGNORE_THREAD:
case MATCHCRITERIA_NOT_IGNORE_THREAD:
return CRITERIA_IGNORE_THREAD;
+ case MATCHCRITERIA_WATCH_THREAD:
+ case MATCHCRITERIA_NOT_WATCH_THREAD:
+ return CRITERIA_WATCH_THREAD;
case MATCHCRITERIA_NOT_SUBJECT:
case MATCHCRITERIA_SUBJECT:
return CRITERIA_SUBJECT;
case MATCHCRITERIA_NOT_TO_AND_NOT_CC:
case MATCHCRITERIA_TO_OR_CC:
return CRITERIA_TO_OR_CC;
+ case MATCHCRITERIA_NOT_TAG:
+ case MATCHCRITERIA_TAG:
+ return CRITERIA_TAG;
+ case MATCHCRITERIA_NOT_TAGGED:
+ case MATCHCRITERIA_TAGGED:
+ return CRITERIA_TAGGED;
case MATCHCRITERIA_NOT_BODY_PART:
case MATCHCRITERIA_BODY_PART:
return CRITERIA_BODY_PART;
return MATCHCRITERIA_COLORLABEL;
case CRITERIA_IGNORE_THREAD:
return MATCHCRITERIA_IGNORE_THREAD;
+ case CRITERIA_WATCH_THREAD:
+ return MATCHCRITERIA_WATCH_THREAD;
case CRITERIA_SUBJECT:
return MATCHCRITERIA_SUBJECT;
case CRITERIA_FROM:
return MATCHCRITERIA_CC;
case CRITERIA_TO_OR_CC:
return MATCHCRITERIA_TO_OR_CC;
+ case CRITERIA_TAG:
+ return MATCHCRITERIA_TAG;
+ case CRITERIA_TAGGED:
+ return MATCHCRITERIA_TAGGED;
case CRITERIA_NEWSGROUPS:
return MATCHCRITERIA_NEWSGROUPS;
case CRITERIA_INREPLYTO:
return MATCHCRITERIA_NOT_COLORLABEL;
case MATCHCRITERIA_IGNORE_THREAD:
return MATCHCRITERIA_NOT_IGNORE_THREAD;
+ case MATCHCRITERIA_WATCH_THREAD:
+ return MATCHCRITERIA_NOT_WATCH_THREAD;
case MATCHCRITERIA_SUBJECT:
return MATCHCRITERIA_NOT_SUBJECT;
case MATCHCRITERIA_FROM:
return MATCHCRITERIA_NOT_CC;
case MATCHCRITERIA_TO_OR_CC:
return MATCHCRITERIA_NOT_TO_AND_NOT_CC;
+ case MATCHCRITERIA_TAG:
+ return MATCHCRITERIA_NOT_TAG;
+ case MATCHCRITERIA_TAGGED:
+ return MATCHCRITERIA_NOT_TAGGED;
case MATCHCRITERIA_NEWSGROUPS:
return MATCHCRITERIA_NOT_NEWSGROUPS;
case MATCHCRITERIA_INREPLYTO:
case CRITERIA_TEST:
case CRITERIA_COLORLABEL:
case CRITERIA_IGNORE_THREAD:
+ case CRITERIA_WATCH_THREAD:
case CRITERIA_FOUND_IN_ADDRESSBOOK:
+ case CRITERIA_TAGGED:
if (value_pred_flag == PREDICATE_FLAG_DISABLED)
criteria = prefs_matcher_not_criteria(criteria);
break;
case CRITERIA_TO:
case CRITERIA_CC:
case CRITERIA_TO_OR_CC:
+ case CRITERIA_TAG:
case CRITERIA_NEWSGROUPS:
case CRITERIA_INREPLYTO:
case CRITERIA_REFERENCES:
case CRITERIA_SPAM:
case CRITERIA_PARTIAL:
case CRITERIA_IGNORE_THREAD:
+ case CRITERIA_WATCH_THREAD:
+ case CRITERIA_TAGGED:
break;
case CRITERIA_SUBJECT:
case CRITERIA_TO:
case CRITERIA_CC:
case CRITERIA_TO_OR_CC:
+ case CRITERIA_TAG:
case CRITERIA_NEWSGROUPS:
case CRITERIA_INREPLYTO:
case CRITERIA_REFERENCES:
case CRITERIA_SPAM:
case CRITERIA_PARTIAL:
case CRITERIA_IGNORE_THREAD:
+ case CRITERIA_WATCH_THREAD:
+ case CRITERIA_TAGGED:
prefs_matcher_disable_widget(matcher.header_combo);
prefs_matcher_disable_widget(matcher.header_label);
prefs_matcher_disable_widget(matcher.header_addr_combo);
case CRITERIA_TO:
case CRITERIA_CC:
case CRITERIA_TO_OR_CC:
+ case CRITERIA_TAG:
case CRITERIA_NEWSGROUPS:
case CRITERIA_INREPLYTO:
case CRITERIA_REFERENCES:
case MATCHCRITERIA_NOT_PARTIAL:
case MATCHCRITERIA_NOT_COLORLABEL:
case MATCHCRITERIA_NOT_IGNORE_THREAD:
+ case MATCHCRITERIA_NOT_WATCH_THREAD:
case MATCHCRITERIA_NOT_SUBJECT:
case MATCHCRITERIA_NOT_FROM:
case MATCHCRITERIA_NOT_TO:
case MATCHCRITERIA_NOT_CC:
case MATCHCRITERIA_NOT_TO_AND_NOT_CC:
+ case MATCHCRITERIA_NOT_TAG:
+ case MATCHCRITERIA_NOT_TAGGED:
case MATCHCRITERIA_NOT_NEWSGROUPS:
case MATCHCRITERIA_NOT_INREPLYTO:
case MATCHCRITERIA_NOT_REFERENCES:
case MATCHCRITERIA_NOT_TO:
case MATCHCRITERIA_NOT_CC:
case MATCHCRITERIA_NOT_TO_AND_NOT_CC:
+ case MATCHCRITERIA_NOT_TAG:
case MATCHCRITERIA_NOT_NEWSGROUPS:
case MATCHCRITERIA_NOT_INREPLYTO:
case MATCHCRITERIA_NOT_REFERENCES:
case MATCHCRITERIA_TO:
case MATCHCRITERIA_CC:
case MATCHCRITERIA_TO_OR_CC:
+ case MATCHCRITERIA_TAG:
case MATCHCRITERIA_NEWSGROUPS:
case MATCHCRITERIA_INREPLYTO:
case MATCHCRITERIA_REFERENCES: