[evolution] Bug #659568 - One day delay in calendar view
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution] Bug #659568 - One day delay in calendar view
- Date: Mon, 26 Sep 2011 10:43:20 +0000 (UTC)
commit 10d9a80d698479d8c96f0ba46a64a9fb5521edff
Author: Milan Crha <mcrha redhat com>
Date: Mon Sep 26 12:42:47 2011 +0200
Bug #659568 - One day delay in calendar view
calendar/gui/e-cal-model.c | 18 +++++++++------
calendar/gui/gnome-cal.c | 40 ++++++++++++++++++++++------------
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 f177913..1ab5692 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 cf1a12d..654eb18 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 61a2d9c..0a9b770 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;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]