From 8648d27d3a1d02fe76e639f521241eae8fed679d Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Mon, 10 Nov 2003 19:26:25 +0000 Subject: Remove get-vtype check from the completed-tasks query (and don't leak the * gui/e-tasks.c (e_tasks_delete_completed): Remove get-vtype check from the completed-tasks query (and don't leak the sexp string). * gui/e-cal-model.c (update_e_cal_view_for_client): Don't adjust the sexp to use get-vtype. * gui/gnome-cal.c (adjust_e_cal_view_sexp, gnome_calendar_purge): Remove get-vtype check from queries svn path=/trunk/; revision=23263 --- calendar/ChangeLog | 11 +++++++++++ calendar/gui/e-cal-model.c | 37 +------------------------------------ calendar/gui/e-tasks.c | 18 +++--------------- calendar/gui/gnome-cal.c | 8 +++----- 4 files changed, 18 insertions(+), 56 deletions(-) diff --git a/calendar/ChangeLog b/calendar/ChangeLog index 6ff83fb99d..57e3c5a670 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,14 @@ +2003-11-10 Dan Winship + + * gui/e-tasks.c (e_tasks_delete_completed): Remove get-vtype check + from the completed-tasks query (and don't leak the sexp string). + + * gui/e-cal-model.c (update_e_cal_view_for_client): Don't adjust + the sexp to use get-vtype. + + * gui/gnome-cal.c (adjust_e_cal_view_sexp, gnome_calendar_purge): + Remove get-vtype check from queries + 2003-11-07 JP Rosevear * gui/Makefile.am: remove includes for toplevel libical dir diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c index 9e5dc34b2c..b6210e22f9 100644 --- a/calendar/gui/e-cal-model.c +++ b/calendar/gui/e-cal-model.c @@ -1249,42 +1249,10 @@ e_cal_view_done_cb (ECalView *query, ECalendarStatus status, gpointer user_data) /* FIXME Clear status bar */ } -/* Builds a complete query sexp for the calendar model by adding the predicates - * to filter only for the type of objects that the model supports, and - * whether we want completed tasks. - */ -static char * -adjust_e_cal_view_sexp (ECalModel *model, const char *sexp) -{ - ECalModelPrivate *priv; - char *type_sexp, *new_sexp; - - priv = model->priv; - - if (priv->kind == ICAL_NO_COMPONENT) - type_sexp = g_strdup ("#t"); - else { - if (priv->kind == ICAL_VEVENT_COMPONENT) - type_sexp = g_strdup ("(or (= (get-vtype) \"VEVENT\"))"); - else if (priv->kind == ICAL_VTODO_COMPONENT) - type_sexp = g_strdup ("(or (= (get-vtype) \"VTODO\"))"); - else if (priv->kind == ICAL_VJOURNAL_COMPONENT) - type_sexp = g_strdup ("(or (= (get-vtype) \"VJOURNAL\"))"); - else - type_sexp = g_strdup ("#t"); - } - - new_sexp = g_strdup_printf ("(and %s %s)", type_sexp, sexp); - g_free (type_sexp); - - return new_sexp; -} - static void update_e_cal_view_for_client (ECalModel *model, ECalModelClient *client_data) { ECalModelPrivate *priv; - gchar *real_sexp; priv = model->priv; @@ -1298,15 +1266,12 @@ update_e_cal_view_for_client (ECalModel *model, ECalModelClient *client_data) /* prepare the query */ g_assert (priv->sexp != NULL); - real_sexp = adjust_e_cal_view_sexp (model, priv->sexp); - if (!e_cal_get_query (client_data->client, real_sexp, &client_data->query, NULL)) { + if (!e_cal_get_query (client_data->client, priv->sexp, &client_data->query, NULL)) { g_warning (G_STRLOC ": Unable to get query"); - g_free (real_sexp); return; } - g_free (real_sexp); g_signal_connect (client_data->query, "objects_added", G_CALLBACK (e_cal_view_objects_added_cb), model); g_signal_connect (client_data->query, "objects_modified", G_CALLBACK (e_cal_view_objects_modified_cb), model); diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c index a5b9eac4e8..6a73b14455 100644 --- a/calendar/gui/e-tasks.c +++ b/calendar/gui/e-tasks.c @@ -929,19 +929,6 @@ e_tasks_delete_selected (ETasks *tasks) set_status_message (tasks, NULL); } -static char * -create_sexp (void) -{ - char *sexp; - - sexp = g_strdup ("(and (= (get-vtype) \"VTODO\") (is-completed?))"); -#if 0 - g_print ("Calendar model sexp:\n%s\n", sexp); -#endif - - return sexp; -} - /** * e_tasks_expunge: * @tasks: A tasks control widget @@ -962,16 +949,17 @@ e_tasks_delete_completed (ETasks *tasks) /* FIXME Confirm expunge */ - sexp = create_sexp (); - set_status_message (tasks, _("Expunging")); + sexp = g_strdup ("(is-completed?)"); if (!e_cal_get_object_list (priv->client, sexp, &objects, NULL)) { set_status_message (tasks, NULL); + g_free (sexp); g_warning (G_STRLOC ": Could not get the objects"); return; } + g_free (sexp); for (l = objects; l; l = l->next) { /* FIXME Better error handling */ diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index a14678f3e3..3e00a714ce 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -557,8 +557,7 @@ adjust_e_cal_view_sexp (GnomeCalendar *gcal, const char *sexp) start = isodate_from_time_t (start_time); end = isodate_from_time_t (end_time); - new_sexp = g_strdup_printf ("(and (= (get-vtype) \"VEVENT\")" - " (occur-in-time-range? (make-time \"%s\")" + new_sexp = g_strdup_printf ("(and (occur-in-time-range? (make-time \"%s\")" " (make-time \"%s\"))" " %s)", start, end, @@ -2894,9 +2893,8 @@ gnome_calendar_purge (GnomeCalendar *gcal, time_t older_than) start = isodate_from_time_t (0); end = isodate_from_time_t (older_than); - sexp = g_strdup_printf ("(and (= (get-vtype) \"VEVENT\")" - " (occur-in-time-range? (make-time \"%s\")" - " (make-time \"%s\")))", + sexp = g_strdup_printf ("(occur-in-time-range? (make-time \"%s\")" + " (make-time \"%s\"))", start, end); e_calendar_view_set_status_message (E_CALENDAR_VIEW (priv->week_view), _("Purging")); -- cgit