aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/modules/e-memo-shell-view-private.c
diff options
context:
space:
mode:
Diffstat (limited to 'calendar/modules/e-memo-shell-view-private.c')
-rw-r--r--calendar/modules/e-memo-shell-view-private.c48
1 files changed, 27 insertions, 21 deletions
diff --git a/calendar/modules/e-memo-shell-view-private.c b/calendar/modules/e-memo-shell-view-private.c
index e8ff33570e..4c2312a9d2 100644
--- a/calendar/modules/e-memo-shell-view-private.c
+++ b/calendar/modules/e-memo-shell-view-private.c
@@ -322,6 +322,7 @@ e_memo_shell_view_execute_search (EMemoShellView *memo_shell_view)
const gchar *format;
const gchar *text;
gchar *query;
+ gchar *temp;
gint value;
shell_view = E_SHELL_VIEW (memo_shell_view);
@@ -364,27 +365,32 @@ e_memo_shell_view_execute_search (EMemoShellView *memo_shell_view)
/* Apply selected filter. */
value = e_shell_content_get_filter_value (shell_content);
- if (value == MEMO_FILTER_UNMATCHED) {
- gchar *temp;
-
- temp = g_strdup_printf (
- "(and (has-categories? #f) %s", query);
- g_free (query);
- query = temp;
- } else if (value >= 0) {
- GList *categories;
- const gchar *category_name;
- gchar *temp;
-
- categories = e_categories_get_list ();
- category_name = g_list_nth_data (categories, value);
- g_list_free (categories);
-
- temp = g_strdup_printf (
- "(and (has-categories? \"%s\") %s)",
- category_name, query);
- g_free (query);
- query = temp;
+ switch (value) {
+ case MEMO_FILTER_ANY_CATEGORY:
+ break;
+
+ case MEMO_FILTER_UNMATCHED:
+ temp = g_strdup_printf (
+ "(and (has-categories? #f) %s", query);
+ g_free (query);
+ query = temp;
+ break;
+
+ default:
+ {
+ GList *categories;
+ const gchar *category_name;
+
+ categories = e_categories_get_list ();
+ category_name = g_list_nth_data (categories, value);
+ g_list_free (categories);
+
+ temp = g_strdup_printf (
+ "(and (has-categories? \"%s\") %s)",
+ category_name, query);
+ g_free (query);
+ query = temp;
+ }
}
/* XXX This is wrong. We need to programmatically construct a