aboutsummaryrefslogtreecommitdiffstats
path: root/e-util/e-util.c
diff options
context:
space:
mode:
Diffstat (limited to 'e-util/e-util.c')
-rw-r--r--e-util/e-util.c34
1 files changed, 33 insertions, 1 deletions
diff --git a/e-util/e-util.c b/e-util/e-util.c
index 88fcfaebfb..8f91558823 100644
--- a/e-util/e-util.c
+++ b/e-util/e-util.c
@@ -1457,7 +1457,12 @@ e_util_get_category_filter_options (void)
clist = e_categories_get_list ();
for (l = clist; l; l = l->next) {
const gchar *cname = l->data;
- struct _filter_option *fo = g_new0 (struct _filter_option, 1);
+ struct _filter_option *fo;
+
+ if (!e_categories_is_searchable (cname))
+ continue;
+
+ fo = g_new0 (struct _filter_option, 1);
fo->title = g_strdup (cname);
fo->value = g_strdup (cname);
@@ -1470,6 +1475,33 @@ e_util_get_category_filter_options (void)
}
/**
+ * e_util_get_searchable_categories:
+ *
+ * Returns list of searchable categories only. The list should
+ * be freed with g_list_free() when done with it, but the items
+ * are internal strings, names of categories, which should not
+ * be touched in other than read-only way, in other words the same
+ * restrictions as for e_categories_get_list() applies here too.
+ **/
+GList *
+e_util_get_searchable_categories (void)
+{
+ GList *res = NULL, *all_categories, *l;
+
+ all_categories = e_categories_get_list ();
+ for (l = all_categories; l; l = l->next) {
+ const gchar *cname = l->data;
+
+ if (e_categories_is_searchable (cname))
+ res = g_list_prepend (res, (gpointer) cname);
+ }
+
+ g_list_free (all_categories);
+
+ return g_list_reverse (res);
+}
+
+/**
* e_util_set_source_combo_box_list:
* @source_combo_box: an #ESourceComboBox
* @source_gconf_path: GConf path with sources to use in an #ESourceList