diff options
author | Milan Crha <mcrha@redhat.com> | 2011-09-26 18:42:47 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-09-26 18:56:08 +0800 |
commit | c76f301a7d5c7121cd9216e239708da1dbaa1623 (patch) | |
tree | a18aa541043e7c3a2ee900ea479826267bb5f5e2 | |
parent | 17cd0cb7dff468ae90eaef89126ef4ddc1014e75 (diff) | |
download | gsoc2013-evolution-c76f301a7d5c7121cd9216e239708da1dbaa1623.tar gsoc2013-evolution-c76f301a7d5c7121cd9216e239708da1dbaa1623.tar.gz gsoc2013-evolution-c76f301a7d5c7121cd9216e239708da1dbaa1623.tar.bz2 gsoc2013-evolution-c76f301a7d5c7121cd9216e239708da1dbaa1623.tar.lz gsoc2013-evolution-c76f301a7d5c7121cd9216e239708da1dbaa1623.tar.xz gsoc2013-evolution-c76f301a7d5c7121cd9216e239708da1dbaa1623.tar.zst gsoc2013-evolution-c76f301a7d5c7121cd9216e239708da1dbaa1623.zip |
Bug #659568 - One day delay in calendar view
-rw-r--r-- | calendar/gui/e-cal-model.c | 18 | ||||
-rw-r--r-- | calendar/gui/gnome-cal.c | 40 | ||||
-rw-r--r-- | modules/calendar/e-cal-shell-view.c | 16 |
3 files changed, 47 insertions, 27 deletions
diff --git a/calendar/gui/e-cal-model.c b/calendar/gui/e-cal-model.c index f177913ca2..1ab56926cd 100644 --- a/calendar/gui/e-cal-model.c +++ b/calendar/gui/e-cal-model.c @@ -3160,20 +3160,24 @@ redo_queries (ECalModel *model) if (priv->start != -1 && priv->end != -1) { gchar *iso_start, *iso_end; + const gchar *default_tzloc = NULL; iso_start = isodate_from_time_t (priv->start); iso_end = isodate_from_time_t (priv->end); + if (priv->zone && priv->zone != icaltimezone_get_utc_timezone ()) + default_tzloc = icaltimezone_get_location (priv->zone); + if (!default_tzloc) + default_tzloc = ""; + if (priv->search_sexp) { - priv->full_sexp = g_strdup_printf ("(and (occur-in-time-range? (make-time \"%s\")" - " (make-time \"%s\"))" - " %s)", - iso_start, iso_end, + priv->full_sexp = g_strdup_printf ( + "(and (occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"%s\") %s)", + iso_start, iso_end, default_tzloc, priv->search_sexp ? priv->search_sexp : ""); } else { - priv->full_sexp = g_strdup_printf ("(occur-in-time-range? (make-time \"%s\")" - " (make-time \"%s\"))", - iso_start, iso_end); + priv->full_sexp = g_strdup_printf ("(occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"%s\")", + iso_start, iso_end, default_tzloc); } g_free (iso_start); diff --git a/calendar/gui/gnome-cal.c b/calendar/gui/gnome-cal.c index cf1a12deab..654eb1898a 100644 --- a/calendar/gui/gnome-cal.c +++ b/calendar/gui/gnome-cal.c @@ -1016,6 +1016,24 @@ get_date_navigator_range (GnomeCalendar *gcal, *end_time = icaltime_as_timet_with_zone (end_tt, timezone); } +static const gchar * +gcal_get_default_tzloc (GnomeCalendar *gcal) +{ + ECalModel *model; + icaltimezone *timezone; + const gchar *tzloc = NULL; + + g_return_val_if_fail (gcal != NULL, ""); + + model = gnome_calendar_get_model (gcal); + timezone = e_cal_model_get_timezone (model); + + if (timezone && timezone != icaltimezone_get_utc_timezone ()) + tzloc = icaltimezone_get_location (timezone); + + return tzloc ? tzloc : ""; +} + /* Adjusts a given query sexp with the time range of the date navigator */ static gchar * adjust_client_view_sexp (GnomeCalendar *gcal, @@ -1033,15 +1051,12 @@ adjust_client_view_sexp (GnomeCalendar *gcal, end = isodate_from_time_t (end_time); if (sexp) { - new_sexp = g_strdup_printf ("(and (occur-in-time-range? (make-time \"%s\")" - " (make-time \"%s\"))" - " %s)", - start, end, + new_sexp = g_strdup_printf ("(and (occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"%s\") %s)", + start, end, gcal_get_default_tzloc (gcal), sexp); } else { - new_sexp = g_strdup_printf ("(occur-in-time-range? (make-time \"%s\")" - " (make-time \"%s\"))", - start, end); + new_sexp = g_strdup_printf ("(occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"%s\")", + start, end, gcal_get_default_tzloc (gcal)); } g_free (start); @@ -1366,10 +1381,8 @@ update_memo_view (GnomeCalendar *gcal) g_free (priv->memo_sexp); priv->memo_sexp = g_strdup_printf ( - "(and (or (not (has-start?)) " - "(occur-in-time-range? (make-time \"%s\")" - " (make-time \"%s\"))) %s)", - iso_start, iso_end, + "(and (or (not (has-start?)) (occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"%s\")) %s)", + iso_start, iso_end, gcal_get_default_tzloc (gcal), priv->sexp ? priv->sexp : ""); e_cal_model_set_search_query (model, priv->memo_sexp); @@ -2243,9 +2256,8 @@ gnome_calendar_purge (GnomeCalendar *gcal, start = isodate_from_time_t (0); end = isodate_from_time_t (older_than); - sexp = g_strdup_printf ("(occur-in-time-range? (make-time \"%s\")" - " (make-time \"%s\"))", - start, end); + sexp = g_strdup_printf ("(occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"%s\")", + start, end, gcal_get_default_tzloc (gcal)); gcal_update_status_message (gcal, _("Purging"), -1); diff --git a/modules/calendar/e-cal-shell-view.c b/modules/calendar/e-cal-shell-view.c index 61a2d9c27a..0a9b7701f8 100644 --- a/modules/calendar/e-cal-shell-view.c +++ b/modules/calendar/e-cal-shell-view.c @@ -70,6 +70,7 @@ cal_shell_view_execute_search (EShellView *shell_view) ECalModel *model; GtkRadioAction *action; icaltimezone *timezone; + const gchar *default_tzloc = NULL; struct icaltimetype current_time; time_t start_range; time_t end_range; @@ -95,6 +96,11 @@ cal_shell_view_execute_search (EShellView *shell_view) current_time = icaltime_current_time_with_zone (timezone); now_time = time_day_begin (icaltime_as_timet (current_time)); + if (timezone && timezone != icaltimezone_get_utc_timezone ()) + default_tzloc = icaltimezone_get_location (timezone); + if (!default_tzloc) + default_tzloc = ""; + action = GTK_RADIO_ACTION (ACTION (CALENDAR_SEARCH_ANY_FIELD_CONTAINS)); value = gtk_radio_action_get_current_value (action); @@ -165,9 +171,8 @@ cal_shell_view_execute_search (EShellView *shell_view) end = isodate_from_time_t (end_range); temp = g_strdup_printf ( - "(and %s (occur-in-time-range? " - "(make-time \"%s\") (make-time \"%s\")))", - query, start, end); + "(and %s (occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"%s\"))", + query, start, end, default_tzloc); g_free (query); query = temp; @@ -181,9 +186,8 @@ cal_shell_view_execute_search (EShellView *shell_view) end = isodate_from_time_t (end_range); temp = g_strdup_printf ( - "(and %s (occur-in-time-range? " - "(make-time \"%s\") (make-time \"%s\")))", - query, start, end); + "(and %s (occur-in-time-range? (make-time \"%s\") (make-time \"%s\") \"%s\"))", + query, start, end, default_tzloc); g_free (query); query = temp; |